diff options
author | Philip Langdale <philipl@overt.org> | 2022-08-13 13:50:07 -0700 |
---|---|---|
committer | Philip Langdale <philipl@overt.org> | 2022-09-03 16:19:40 -0700 |
commit | d75c4693fef51e8f0a1b88798530f4c5147ea906 (patch) | |
tree | 98c8932c0ab54834a9e040319726ca1b24a2999a /libavcodec/imm5.c | |
parent | 620e6e14878de7392f9b5fd109cc8f5ed90dd835 (diff) | |
download | ffmpeg-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