[FFmpeg-devel] [PATCH V2 2/2] Don't overwrite previously setup dimensions for all codecs

Li, Zhong zhong.li at intel.com
Sat Jan 27 05:57:44 EET 2018


> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> Of Michael Niedermayer
> Sent: Saturday, January 27, 2018 8:05 AM
> To: FFmpeg development discussions and patches
> <ffmpeg-devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH V2 2/2] Don't overwrite previously setup
> dimensions for all codecs
> 
> On Thu, Jan 18, 2018 at 01:03:34PM +0800, Zhong Li wrote:
> > Currently a hacky way is used for some specific codecs such as
> > H264/VP6F/DXV (and "lowres" case is broken now).
> > Replace with a more generic way(an evolution based on a libav commit
> > 9de9b828 but hasn't been merged since it breaks lowres).
> >
> > V1->V2: add "lowres" handle code
> >
> > Signed-off-by: Zhong Li <zhong.li at intel.com>
> > ---
> >  libavcodec/utils.c | 8 ++------
> >  1 file changed, 2 insertions(+), 6 deletions(-)
> >
> > diff --git a/libavcodec/utils.c b/libavcodec/utils.c index
> > 427f612..fdd1b46 100644
> > --- a/libavcodec/utils.c
> > +++ b/libavcodec/utils.c
> > @@ -684,16 +684,12 @@ int attribute_align_arg
> avcodec_open2(AVCodecContext *avctx, const AVCodec *code
> >          goto free_and_end;
> >      }
> >
> > -    // only call ff_set_dimensions() for non H.264/VP6F/DXV codecs so as
> not to overwrite previously setup dimensions
> > -    if (!(avctx->coded_width && avctx->coded_height && avctx->width
> && avctx->height &&
> > -          (avctx->codec_id == AV_CODEC_ID_H264 || avctx->codec_id
> == AV_CODEC_ID_VP6F || avctx->codec_id == AV_CODEC_ID_DXV))) {
> > -    if (avctx->coded_width && avctx->coded_height)
> > +    if (avctx->coded_width && avctx->coded_height && (!avctx->width
> > + && !avctx->height || avctx->lowles))
> >          ret = ff_set_dimensions(avctx, avctx->coded_width,
> avctx->coded_height);
> > -    else if (avctx->width && avctx->height)
> > +    else if (avctx->width && avctx->height && (!avctx->coded_width &&
> > + !avctx->coded_height || avctx->lowles))
> >          ret = ff_set_dimensions(avctx, avctx->width, avctx->height);
> >      if (ret < 0)
> >          goto free_and_end;
> > -    }
> 
> This has typos in variable names, it will not work nor build
> 
> please make sure that submitted patches have been tested before

Really sorry for that, I fixed it locally but forgot to submit.
I've sent an updated patch now.



More information about the ffmpeg-devel mailing list