|
| 1 | +# Augment Guidelines for FFmpeg Repository |
| 2 | + |
| 3 | +project: |
| 4 | + name: "FFmpeg" |
| 5 | + description: | |
| 6 | + A complete, cross-platform solution to record, convert and stream audio and video. |
| 7 | + type: "media" |
| 8 | + |
| 9 | +architecture: |
| 10 | + overview: | |
| 11 | + FFmpeg is organized into several core libraries that handle different aspects of |
| 12 | + multimedia processing. The codebase follows a modular design where each library |
| 13 | + can be used independently or together. FFmpeg also provides command-line tools |
| 14 | + built on top of these libraries. |
| 15 | + |
| 16 | + key_directories: |
| 17 | + - path: "libavcodec" |
| 18 | + description: | |
| 19 | + Implements encoders and decoders for audio/video codecs and bitstream processing |
| 20 | + - path: "libavdevice" |
| 21 | + description: | |
| 22 | + Provides abstraction for accessing capture and playback devices |
| 23 | + - path: "libavfilter" |
| 24 | + description: | |
| 25 | + Implements media filtering framework for processing audio and video |
| 26 | + - path: "libavformat" |
| 27 | + description: | |
| 28 | + Handles container formats, muxing/demuxing, and I/O protocols |
| 29 | + - path: "libavutil" |
| 30 | + description: | |
| 31 | + Contains utility functions, data structures, and common components shared across |
| 32 | + libraries |
| 33 | + - path: "libswresample" |
| 34 | + description: | |
| 35 | + Implements audio mixing and resampling routines |
| 36 | + - path: "tests" |
| 37 | + description: | |
| 38 | + Contains test suites and validation tools for FFmpeg functionality |
| 39 | + |
| 40 | +components: |
| 41 | + - name: "WHIP" |
| 42 | + description: | |
| 43 | + WebRTC-HTTP Ingestion Protocol implementation for low-latency streaming. Handles |
| 44 | + SDP exchange, ICE connectivity, DTLS handshake, SRTP encryption, and RTP |
| 45 | + packetization for WebRTC streaming. |
| 46 | + related_files: |
| 47 | + - path: "libavformat/whip.c" |
| 48 | + description: | |
| 49 | + Core implementation of the WHIP protocol, including SDP offer/answer exchange, |
| 50 | + ICE connectivity, DTLS handshake setup, and SRTP encryption for RTP packets |
| 51 | + - path: "libavformat/tls.h" |
| 52 | + description: | |
| 53 | + Header defining the DTLS interface used by WHIP for secure communication, |
| 54 | + including functions for certificate handling and DTLS state management |
| 55 | + - path: "libavformat/tls.c" |
| 56 | + description: | |
| 57 | + Common DTLS implementation shared across different SSL backends, providing |
| 58 | + UDP socket setup for DTLS connections |
| 59 | + - path: "libavformat/tls_openssl.c" |
| 60 | + description: | |
| 61 | + OpenSSL-specific implementation of DTLS functionality, including handshake |
| 62 | + procedures and SRTP key material export |
0 commit comments