swscale/ops: add input/output plane swizzle mask to SwsOpList

19 February 19:44 - FFmpeg - Niklas Haas

This can be used to have the execution code directly swizzle the plane pointers, instead of swizzling the data via SWS_OP_SWIZZLE.

swscale/x86/ops: make the presence of a read op optional

19 February 19:44 - FFmpeg - Niklas Haas

Allows this backend to process op lists without a read, e.g.

swscale/optimizer: allow commuting CLEAR past SWAP_BYTES

19 February 19:44 - FFmpeg - Niklas Haas

This requires a bit of a manual check in the 32-bit integer case to make sure we don't exceed the value range of AVRational; but it still allows quite a number of optimizations despite that restriction. e.g. rgb24 -> yuva444p9be:- [u16 ...X -> ++++] SWS_OP_CLEAR : {_ _ _ 511}- [u16 ....

swscale/optimizer: promote component swizzles to plane swizzles

19 February 19:44 - FFmpeg - Niklas Haas

In some cases, we can just directly swizzle the order of input/output planes, rather than applying a swizzle operation on the data itself. This can eliminate some such swizzle operations entirely, for example yuv444p -> vuya is now just a read, clear and write. Results in a lot of simplifications like this: rgb24 -> gbrp: [ u8 XXXX -> +++X] SWS_OP_READ : 3 elem(s) packed >> 0- [ u8 ...X -> +++X] SWS_OP_SWIZZLE : 1203- [ u8 ...X -> +++X] SWS_OP_WRITE : 3 elem(s) planar >> 0 + [ u8 ...X -> +++X] SWS_OP_WRITE : 3 elem(s) planar >> 0, via {2, 0, 1} rgb24 -> gbrap16le: [ u8 XXXX -> +++X] SWS_OP_READ : 3 elem(s) packed >> 0 [ u8 ...X -> +++X] SWS_OP_CONVERT : u8 -> u16 (expand)- [u16 ...X -> +++X] SWS_OP_SWIZZLE : 1203 [u16 ...X -> ++++] SWS_OP_CLEAR : {_ _ _ 65535}- [u16 ....

swscale/optimizer: try pushing all swizzles towards the output

19 February 19:44 - FFmpeg - Niklas Haas

Now that we can directly promote these to plane swizzles, we generally want to try pushing them in one direction - ideally towards the output, as in the case of split subpasses, the output is guaranteed to be planar.

vulkan/ffv1: add current linecache for encode/decode

19 February 18:42 - FFmpeg - Lynne

This avoids needing expensive roundtrips when reading/writing to images, mainly in the decoder.

vulkan: drop support for descriptor buffers

19 February 18:42 - FFmpeg - Lynne

Descriptor buffers were a neat attempt at organizing descriptors.

ffv1enc: add descriptor information for GBRP

19 February 18:42 - FFmpeg - Lynne

The C encoder does not support GBRP, this just adds info fields so the Vulkan encoder can use it.

vulkan_ffv1: implement parallel probability adaptation

19 February 18:42 - FFmpeg - Lynne

avformat/rtspdec: Add SET_PARAMETER command support

19 February 16:18 - FFmpeg - Marvin Scholz

Add SET_PARAMETER support, this allows sending SET_PARAMETER requests to the server using the API.

avformat: Add new demuxer command API

19 February 16:18 - FFmpeg - Marvin Scholz

This new API adds the ability to send commands to the demuxer and also receive replies to these commands.

tests/fate/{dca,qoa,truehd}: Make fate-audio work

19 February 13:35 - FFmpeg - Andreas Rheinhardt

Based on the Makefile variables, "make fate-audio" is supposed to include the tests for several audio codecs with their own Makefile.

avfilter/af_loudnorm: add stats_file option

19 February 12:48 - FFmpeg - Adam Jensen

loudnorm provides stats output that's meant to be used for two-pass normalization.


avfilter/framepool: add a few padding lines by aligning height

17 February 23:19 - FFmpeg - James Almer

Fixes segfaults when handling files with odd chroma subsampled dimensions in some scenarios like using the hstack filter.

Allow to drag multiple regions from source-list to editor

17 February 16:27 - Ardour - Robin Gareus

The sidebar allows multiple-selection, do DnD should also work.


avcodec/libvpxdec: add support for decoding pixel formats other than YUV420 with alpha

15 February 19:28 - FFmpeg - Marton Balint

avcodec/libvpxenc: add experimental support for alpha pixel formats other than YUV 4:2:0.

15 February 19:28 - FFmpeg - Marton Balint

I could not find any documentation which disallows the use of transparency for pixel formats other than YUV 4:2:0, so this patch adds support for transparency using 4:2:2, 4:4:4, RGB, and their high bit depth variants. It is not quite clear if the alpha channel should be encoded using the same pixel format as the normal channels, or it should be always YUV 4:2:0.