LAVFilters is a mature Windows DirectShow filter suite for media playback. It consists of three COM-registered filters: LAV Splitter (a demuxer/source filter), LAV Audio Decoder, and LAV Video Decoder. The splitter wraps FFmpeg's libavformat to read virtually any container, while the decoders use FFmpeg's libavcodec plus hardware acceleration backends (DXVA2, D3D11VA, NVIDIA CUVID, Intel QuickSync) and expose property pages and programmatic COM settings interfaces. The code is predominantly C++ with heavy use of DirectShow base classes, COM plumbing, and low-level SIMD pixel-conversion routines.
This repository provides safe Rust bindings to FFmpeg multimedia libraries (avcodec, avformat, avfilter, avutil, swscale, swresample). It functions as a multimedia processing library enabling audio/video decoding, encoding, filtering, muxing/demuxing, and device handling through idiomatic Rust abstractions over FFmpeg's C API. The architecture follows FFmpeg's subsystem organization with modules for codecs, formats, filters, software scaling/resampling, and utilities. Key entry points include ffmpeg::init() for initialization, format::context for I/O handling, codec::context for encoder/decoder setup, and filter::graph for filter chains. Data flows typically involve opening input contexts, decoding packets to frames, optional processing (filtering/scaling), encoding frames, and writing output contexts. The crate maintains compatibility with FFmpeg versions 3.4-9.0 via feature-gated version tracking.