This can be used to have the execution code directly swizzle the plane pointers, instead of swizzling the data via SWS_OP_SWIZZLE.
Allows this backend to process op lists without a read, e.g.
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 ....
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 ....
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.
This avoids needing expensive roundtrips when reading/writing to images, mainly in the decoder.
Descriptor buffers were a neat attempt at organizing descriptors.
The C encoder does not support GBRP, this just adds info fields so the Vulkan encoder can use it.
Add SET_PARAMETER support, this allows sending SET_PARAMETER requests to the server using the API.
This new API adds the ability to send commands to the demuxer and also receive replies to these commands.
Based on the Makefile variables, "make fate-audio" is supposed to include the tests for several audio codecs with their own Makefile.
loudnorm provides stats output that's meant to be used for two-pass normalization.
Fixes segfaults when handling files with odd chroma subsampled dimensions in some scenarios like using the hstack filter.
The sidebar allows multiple-selection, do DnD should also work.
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.