[FFmpeg-devel] [PATCH] h264: update avctx width/height when flushing

Michael Niedermayer michaelni at gmx.at
Wed Jun 10 12:01:02 CEST 2015


On Wed, Jun 10, 2015 at 11:43:16AM +0200, Michael Niedermayer wrote:
> On Tue, Jun 09, 2015 at 11:53:03PM +0200, Andreas Cadhalpun wrote:
> > Inconsistencies between the dimensions of avctx and the frame can
> > confuse API users. For example this can crash the demuxing_decoding
> > example.
> > 
> > Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> > ---
> >  libavcodec/h264.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/libavcodec/h264.c b/libavcodec/h264.c
> > index 9a00214..d1eaa5e 100644
> > --- a/libavcodec/h264.c
> > +++ b/libavcodec/h264.c
> > @@ -1757,6 +1757,8 @@ static int h264_decode_frame(AVCodecContext *avctx, void *data,
> >              if (ret < 0)
> >                  return ret;
> >              *got_frame = 1;
> > +            avctx->width  = pict->width;
> > +            avctx->height = pict->height;
> >          }
> 
> iam not sure this is not breaking something, other parts of the h264
> decoder expect this to be set relative to the last frame in coding
> order.
> also avctx->pix_fmt would then still potentially not match the last
> output frame, also pix_fmt has the same problem as above
> 
> ive fixed one use of width/height not to depend on the AVCodecContext
> value but a 2nd remains

actually theres more code that uses it
ff_h264_draw_horiz_band() and its callers use h->avctx->height too


[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150610/eab1eeb3/attachment.asc>


More information about the ffmpeg-devel mailing list