FFmpeg
FFmpeg is a popular open-source multimedia framework commonly used for audio/video encode and decode functionality to a variety of codecs.
www.ffmpeg.org
Other Activity This Week
- swscale/ops: switch from AVRational to AVRational64
Niklas Haas: This has two immediate consequences:
1. - swscale/rational64: add 64-bit rational type
Niklas Haas: This is needed by the ops code, to represent intermediate values for 32-bit formats, which can exceed the value range of int32_t (especially for intermediate products).
I copied the math almost 1:1 from rational.c, but adapted to use the 128-bit integer wrappers defined by int128.h. - avutil/int128: add header for 128-bit integers
Niklas Haas: These can be implemented efficiently on most modern 64-bit compilers. - avcodec/nvenc: remove support for SDK versions older than 11.1
Timo Rothenpieler - avfilter/cuda: support P012/P212 and MSB 4:4:4 in scale/transpose/thumbnail
Diego de Souza: NVDEC and CUVID now output AV_PIX_FMT_P012 (12-bit 4:2:0), AV_PIX_FMT_P212 (12-bit 4:2:2) and AV_PIX_FMT_YUV444P10MSB / AV_PIX_FMT_YUV444P12MSB (10/12-bit 4:4:4) for high-bit-depth content, but these CUDA filters rejected the formats in their supported-format lists, breaking pipelines such as "-hwaccel cuda ... - avutil/hwcontext_cuda: add P012 and P212 to supported formats
Diego de Souza: NVDEC and CUVID decode 12-bit 4:2:0 content to AV_PIX_FMT_P012 and 12-bit 4:2:2 to AV_PIX_FMT_P212, but these formats were missing from the CUDA frames context supported format list. - avfilter/vf_scale_cuda: add `use_filters` option
Niklas Haas: This may be faster or slower than the existing specialized kernels, so I opted not to prefer it by default. - avfilter/vf_scale_cuda: add generic 1D filter kernel
Niklas Haas: This can be useful for any sort of separable filtering with arbitrary weights. - avformat/http: make short-seek logic more robust
Niklas Haas: This avoids an underflow if short_seek is negative (which can happen if e.g. - swscale/tests/sws_ops: split passes when printing ops lists
Niklas Haas: This affects a large number of conversions across the board, either:
1. - swscale/ops_dispatch: add option to split const/copied subpasses
Niklas Haas: This already helps performance as-is, but will help performance massively once we add the ability for the memcpy backend to do a refcopy instead of an actual copy. - swscale/ops_dispatch: add option to link subpass outputs together
Niklas Haas: Not needed currently but will be used for parallel splits. - swscale/ops: keep track of copied/cleared components
Niklas Haas: These represent components which have not (yet) been modified from their input values (i.e. - avfilter/dnn: add ONNX Runtime backend with GPU execution provider support
stevxiao: This patch adds ONNX Runtime as a new DNN backend for FFmpeg's dnn_processing filter, enabling hardware-accelerated neural network inference on multiple GPU and NPU platforms.
Execution Providers Supported:- CPU execution provider (default)- CUDA execution provider (NVIDIA GPUs)- DirectML execution provider (AMD/Intel/NVIDIA GPUs on Windows)- VitisAI execution provider (AMD Ryzen AI NPU)
The options for dnn_processing with dnn_backend=onnx:- device: execution provider — cpu, cuda, dml, or vitisai (default: cpu)- device_id: GPU device index (default: 0)- threads_per_operation: inference thread count for CPU EP (default: 0, auto)- input: input tensor name. - avutil/hwcontext_d3d11va: support native P016 format
Kacper Michajłow: Map DXGI_FORMAT_P016 to AV_PIX_FMT_P016 and keep the 12-bit P012 as a compatibility entry, matching how Y216 and Y416 already expose both their native 16-bit and 12-bit variants.