On Fri, Feb 22, 2013 at 02:11:41PM +0100, Luca Barbato wrote:
> On 22/02/13 12:05, Kostya Shishkov wrote:
> > ---
> > Why: I need to dump 8- and 10-bit data into frames at work, so I've picked 
> > the
> > simplest format standard tools (e.g. ImageMagic) can handle.
> > But since Libav couldn't handle it I tried to add higher bitdepth support 
> > for
> > its PGMYUV decoder, and tried to do it properly, and tried to add encoder
> > counterpart too. Hence this patch.
> > 
> > P.S. FATE test would be nice too.
> > ---
> >  libavcodec/pnm.c    |    9 ++++++++-
> >  libavcodec/pnmdec.c |   45 +++++++++++++++++++++++++++++++++++++++++++++
> >  libavcodec/pnmenc.c |   15 ++++++++++++---
> >  3 files changed, 65 insertions(+), 4 deletions(-)
> > 
> > diff --git a/libavcodec/pnm.c b/libavcodec/pnm.c
> > index 5d13650..094e03d 100644
> > --- a/libavcodec/pnm.c
> > +++ b/libavcodec/pnm.c
> > @@ -157,6 +157,13 @@ int ff_pnm_decode_header(AVCodecContext *avctx, 
> > PNMContext * const s)
> >              } else if (avctx->pix_fmt == AV_PIX_FMT_RGB24) {
> >                  if (s->maxval > 255)
> >                      avctx->pix_fmt = AV_PIX_FMT_RGB48BE;
> > +            } else if (avctx->pix_fmt == AV_PIX_FMT_YUV420P && s->maxval < 
> > 65536) {

                                                                    
^^^^^^^^^^^^^^^^^
                                                                    
|||||||||||||||||

> > +                if (s->maxval < 512)
> > +                    avctx->pix_fmt = AV_PIX_FMT_YUV420P9BE;
> > +                else if (s->maxval < 1024)
> > +                    avctx->pix_fmt = AV_PIX_FMT_YUV420P10BE;
> > +                else
> > +                    avctx->pix_fmt = AV_PIX_FMT_YUV420P16;
> 
> Is there an upper limit for 16bit?

of course, 65535
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to