On Sun, 20 Nov 2016 14:35:51 -0800 Philip Langdale <phil...@overt.org> wrote:
> P016 is the 16-bit variant of NV12 (planar luma, packed chroma), using > two bytes per component. > > It may, and in fact is most likely to, be used in situations where > there are less than 16 bits of data. It is the responsibility of > the writer to zero out any unused LSBs. > > Signed-off-by: Philip Langdale <phil...@overt.org> > --- > libavutil/pixdesc.c | 24 ++++++++++++++++++++++++ > libavutil/pixfmt.h | 4 ++++ > 2 files changed, 28 insertions(+) > > diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c > index f8092ef..3b9c45d 100644 > --- a/libavutil/pixdesc.c > +++ b/libavutil/pixdesc.c > @@ -2078,6 +2078,30 @@ static const AVPixFmtDescriptor > av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { > }, > .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE, > }, > + [AV_PIX_FMT_P016LE] = { > + .name = "p016le", > + .nb_components = 3, > + .log2_chroma_w = 1, > + .log2_chroma_h = 1, > + .comp = { > + { 0, 2, 0, 0, 16, 1, 15, 1 }, /* Y */ > + { 1, 4, 0, 0, 16, 3, 15, 1 }, /* U */ > + { 1, 4, 2, 0, 16, 3, 15, 3 }, /* V */ > + }, > + .flags = AV_PIX_FMT_FLAG_PLANAR, > + }, > + [AV_PIX_FMT_P016BE] = { > + .name = "p016be", > + .nb_components = 3, > + .log2_chroma_w = 1, > + .log2_chroma_h = 1, > + .comp = { > + { 0, 2, 0, 0, 16, 1, 15, 1 }, /* Y */ > + { 1, 4, 0, 0, 16, 3, 15, 1 }, /* U */ > + { 1, 4, 2, 0, 16, 3, 15, 3 }, /* V */ > + }, > + .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE, > + }, > [AV_PIX_FMT_GBRAP12LE] = { > .name = "gbrap12le", > .nb_components = 4, > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h > index 96860ce..dfb1b11 100644 > --- a/libavutil/pixfmt.h > +++ b/libavutil/pixfmt.h > @@ -311,6 +311,9 @@ enum AVPixelFormat { > AV_PIX_FMT_GRAY10BE, ///< Y , 10bpp, big-endian > AV_PIX_FMT_GRAY10LE, ///< Y , 10bpp, little-endian > > + AV_PIX_FMT_P016LE, ///< like NV12, with 16bpp per component, > little-endian > + AV_PIX_FMT_P016BE, ///< like NV12, with 16bpp per component, big-endian > + > AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if > you want to link with shared libav* because the number of formats might > differ between versions > }; > > @@ -389,6 +392,7 @@ enum AVPixelFormat { > #define AV_PIX_FMT_NV20 AV_PIX_FMT_NE(NV20BE, NV20LE) > #define AV_PIX_FMT_AYUV64 AV_PIX_FMT_NE(AYUV64BE, AYUV64LE) > #define AV_PIX_FMT_P010 AV_PIX_FMT_NE(P010BE, P010LE) > +#define AV_PIX_FMT_P016 AV_PIX_FMT_NE(P016BE, P016LE) > > /** > * Chromaticity coordinates of the source primaries. Probably fine, though these pixdesc fields are all kinds of tricky. You changed shift from 6 to 0 and depth from 10 to 16, which looks right. Probably lacks a libavutil minor bump or so. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel