aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/imm5.c
diff options
context:
space:
mode:
authorPhilip Langdale <philipl@overt.org>2022-08-13 13:50:07 -0700
committerPhilip Langdale <philipl@overt.org>2022-09-03 16:19:40 -0700
commitd75c4693fef51e8f0a1b88798530f4c5147ea906 (patch)
tree98c8932c0ab54834a9e040319726ca1b24a2999a /libavcodec/imm5.c
parent620e6e14878de7392f9b5fd109cc8f5ed90dd835 (diff)
downloadffmpeg-d75c4693fef51e8f0a1b88798530f4c5147ea906.tar.gz
lavu/pixfmt: Add P012, Y212, XV30, and XV36 formats
These are the formats we want/need to use when dealing with the Intel VAAPI decoder for 12bit 4:2:0, 12bit 4:2:2, 10bit 4:4:4 and 12bit 4:4:4 respectively. As with the already supported Y210 and YUVX (XVUY) formats, they are based on formats Microsoft picked as their preferred 4:2:2 and 4:4:4 video formats, and Intel ran with it. P12 and Y212 are simply an extension of 10 bit formats to say 12 bits will be used, with 4 unused bits instead of 6. XV30, and XV36, as exotic as they sound, are variants of Y410 and Y412 where the alpha channel is left formally undefined. We prefer these over the alpha versions because the hardware cannot actually do anything with the alpha channel and respecting it is just overhead. Y412/XV46 is a normal looking packed 4 channel format where each channel is 16bits wide but only the 12msb are used (like P012). Y410/XV30 packs three 10bit channels in 32bits with 2bits of alpha, like A/X2RGB10 style formats. This annoying layout forced me to define the BE version as a bitstream format. It seems like our pixdesc infrastructure can handle the LE version being byte-defined, but not when it's reversed. If there's a better way to handle this, please let me know. Our existing X2 formats all have the 2 bits at the MSB end, but this format places them at the LSB end and that seems to be the root of the problem.
Diffstat (limited to 'libavcodec/imm5.c')
0 files changed, 0 insertions, 0 deletions