[FFmpeg-devel] [PATCH 1/5] avutil: Add YUV444P10_LSB and YUV444P12_LSB pixel formats

Carl Eugen Hoyos ceffmpeg at gmail.com
Mon Oct 8 21:31:35 EEST 2018


2018-10-07 19:50 GMT+02:00, Philip Langdale <philipl at overt.org>:
> 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).

(This does not sound like a good reason but this is not related to
this patch.)

> 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.

Sorry if this was already done and I forgot but please explain why
you cannot use YUV444P16 for this use-case.

If the only thing missing is libavfilter understanding bits_per_raw_sample
we should add it there: It is needed in any case and would save us a few
pix_fmts and could speed up many use cases compared to your solution.

Thank you, Carl Eugen


More information about the ffmpeg-devel mailing list