On 08/10/2018 09:24, Marton Balint wrote:
On Sun, 7 Oct 2018, Philip Langdale wrote:Currently, ffmpeg defines a set of YUV444P formats for use where the bits-per-pixel are between 8 and 16 bits. In these formats, the bits are packed in the MSBs of the 16 bits of available storage. On the other hand, all the hardware vendors have defined their equivalent formats with the bits packed in the LSBs, which has the virtue of making the memory layouts compatible with being treated as full 16 bit values (which is also why P010 is defined this way). So, to be able to use these hardware compatible formats, we need definitions for them in ffmpeg. Right now, I need this for nvdec, but Vulkan also uses the same format definitions.MSB and LSB is mixed up as far as I understand.In classic formats ffmpeg stores data in low bits, the least significant bits of 16 bit values.In P010 and so on the docs says "zeros are in the low bits", therefore data is in the high bits, which are the most significant ones.Am I missing something?Otherwise, I dont't disagree that this is the fastest/easiest/least-error-prone way to add support for this, but it sure feels like JUVJ formats all over again.
Yes, the padding is in the LSB, data in MSB. _MSB is probably the better name then.
I don't think it's YUVJ all over again, as it was the exact same bit layout than normal YUV, while this one is actually different.
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel