[FFmpeg-devel] [PATCH V5] avcodec/libvpxenc: add ROI-based encoding support for VP8/VP9 support

Guo, Yejun yejun.guo at intel.com
Tue Aug 27 09:30:34 EEST 2019



> -----Original Message-----
> From: James Zern [mailto:jzern at google.com]
> Sent: Tuesday, August 27, 2019 12:03 PM
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Cc: Guo, Yejun <yejun.guo at intel.com>
> Subject: Re: [FFmpeg-devel] [PATCH V5] avcodec/libvpxenc: add ROI-based
> encoding support for VP8/VP9 support
> 
> Hi,
> 
> On Thu, Aug 22, 2019 at 5:56 PM Guo, Yejun <yejun.guo at intel.com> wrote:
> >
> > example command line to verify it:
> > ./ffmpeg -i input.stream -vf addroi=0:0:iw/3:ih/3:-0.8 -c:v libvpx -b:v 2M
> tmp.webm
> >
> > Signed-off-by: Guo, Yejun <yejun.guo at intel.com>
> > ---
> >  libavcodec/libvpxenc.c | 194
> +++++++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 194 insertions(+)
> >
> 
> Looks OK overall, just a few minor comments and you should bump the
> micro version number for this change.

thanks,
do you mean bump LIBAVCODEC_VERSION_MICRO in file libavcodec/version.h? thanks.

> 
> > [...]
> > +
> > +            segment_mapping[mapping_index] = segment_id + 1;
> > +            roi_map->delta_q[segment_id] = delta_q;
> > +            segment_id++;
> > +        }
> > +    }
> > +
> > +
> 
> This line can go.

do you mean the next line av_assert0 can be removed? thanks.

> 
> > [...]
> > +
> > +    av_assert0(!roi_supported);
> > +    if (!ctx->roi_warned) {
> > +        ctx->roi_warned = 1;
> > +        av_log(avctx, AV_LOG_WARNING, "ROI is not supported, please
> upgrade libvpx to version >= 1.8.1, "
> > +                                      "and you might need to build
> ffmpeg again.\n");
> 
> This could be "...to version >= 1.8.1. You may need to rebuild ffmpeg.\n"

thanks, will change.

> 
> > [...]
> > +
> > +        if (sd) {
> > +            if (avctx->codec_id == AV_CODEC_ID_VP8)
> > +                vp8_encode_set_roi(avctx, frame->width,
> frame->height, sd);
> > +            else if (avctx->codec_id == AV_CODEC_ID_VP9)
> 
> This is the only other option, it can just be 'else'. Other checks in
> the code assume this already.

ok, will only keep 'else'

> 
> > +                vp9_encode_set_roi(avctx, frame->width,
> frame->height, sd);
> > +        }
> >      }


More information about the ffmpeg-devel mailing list