[FFmpeg-devel] [PATCH 1/8] lavu/pix_fmt: add new pixel format y210

Carl Eugen Hoyos ceffmpeg at gmail.com
Sun Jan 12 18:41:23 EET 2020


Am So., 12. Jan. 2020 um 08:57 Uhr schrieb Fu, Linjie <linjie.fu at intel.com>:
>
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> > Mark Thompson
> > Sent: Thursday, January 9, 2020 05:47
> > To: ffmpeg-devel at ffmpeg.org
> > Subject: Re: [FFmpeg-devel] [PATCH 1/8] lavu/pix_fmt: add new pixel format
> > y210
> >
> > On 29/12/2019 16:28, Linjie Fu wrote:
> > > Add some packed 4:2:2 10-bit pixel formats for hardware decode support
> > > in VAAPI and QSV.
> > >
> > > Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> > > ---
> > >  libavutil/pixdesc.c              | 23 +++++++++++++++++++++++
> > >  libavutil/pixfmt.h               |  5 +++++
> > >  libavutil/version.h              |  2 +-
> > >  tests/ref/fate/sws-pixdesc-query |  7 +++++++
> > >  4 files changed, 36 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> > > index 05dd4a1..1e118ef 100644
> > > --- a/libavutil/pixdesc.c
> > > +++ b/libavutil/pixdesc.c
> > > @@ -205,6 +205,29 @@ static const AVPixFmtDescriptor
> > av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
> > >              { 0, 4, 1, 0, 8, 3, 7, 2 },        /* V */
> > >          },
> > >      },
> > > +    [AV_PIX_FMT_Y210LE] = {
> > > +        .name = "y210le",
> > > +        .nb_components = 3,
> > > +        .log2_chroma_w = 1,
> > > +        .log2_chroma_h = 0,
> > > +        .comp = {
> > > +            { 0, 4, 0, 6, 10, 3, 9, 1 },        /* Y */
> > > +            { 0, 8, 2, 6, 10, 7, 9, 3 },        /* U */
> > > +            { 0, 8, 6, 6, 10, 7, 9, 7 },        /* V */
> > > +        },
> > > +    },
> > > +    [AV_PIX_FMT_Y210BE] = {
> > > +        .name = "y210be",
> > > +        .nb_components = 3,
> > > +        .log2_chroma_w = 1,
> > > +        .log2_chroma_h = 0,
> > > +        .comp = {
> > > +            { 0, 4, 0, 6, 10, 3, 9, 1 },        /* Y */
> > > +            { 0, 8, 2, 6, 10, 7, 9, 3 },        /* U */
> > > +            { 0, 8, 6, 6, 10, 7, 9, 7 },        /* V */
> > > +        },
> > > +        .flags = AV_PIX_FMT_FLAG_BE,
> > > +    },
> > >      [AV_PIX_FMT_RGB24] = {
> > >          .name = "rgb24",
> > >          .nb_components = 3,
> > > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> > > index 37ecebd..7ffa5a0 100644
> > > --- a/libavutil/pixfmt.h
> > > +++ b/libavutil/pixfmt.h
> > > @@ -348,6 +348,9 @@ enum AVPixelFormat {
> > >      AV_PIX_FMT_NV24,      ///< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1
> > plane for the UV components, which are interleaved (first byte U and the
> > following byte V)
> > >      AV_PIX_FMT_NV42,      ///< as above, but U and V bytes are swapped
> > >
> > > +    AV_PIX_FMT_Y210BE,    ///< packed YUV 4:2:2, 32bpp, Y0 Cb Y1 Cr, big-
> > endian
> > > +    AV_PIX_FMT_Y210LE,    ///< packed YUV 4:2:2, 32bpp, Y0 Cb Y1 Cr, little-
> > endian
> >
> > These comments should be clear that the data are in the high bits (like P010),
> > rather than in the low bits (like most formats used by software codecs).
> >
> > Being consistent with other comments would write 20bpp rather than 32bpp,
> > though I'm not sure how much information that number is really adding.
> >
> Would update the comments like:
> packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, zeros in the low bits, big-endian

Please do not write "zeros in the low bits", this is just confusing.

Carl Eugen


More information about the ffmpeg-devel mailing list