[FFmpeg-devel] [PATCH 2/2] lavfi/showinfo: support regions of interest sidedata

Thomas Xu oddstone at gmail.com
Sat Mar 9 17:44:26 EET 2019


+    for (int index = 0; index < nb_rois; index++) {
+        av_log(ctx, AV_LOG_INFO, "index: %d, region: (%d %d)/(%d %d), qp
offset: %d/%d",
+               index, roi->left, roi->top, roi->right, roi->bottom,
roi->qoffset.num, roi->qoffset.den);
+    }

pointer roi never ++, it always point to the first
AVRegionOfInterest structure.


On Sat, Mar 9, 2019 at 5:36 PM Guo, Yejun <yejun.guo at intel.com> wrote:

>
>
> > -----Original Message-----
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> > Of Jun Zhao
> > Sent: Saturday, March 09, 2019 4:34 PM
> > To: ffmpeg-devel at ffmpeg.org
> > Cc: Jun Zhao <barryjzhao at tencent.com>
> > Subject: [FFmpeg-devel] [PATCH 2/2] lavfi/showinfo: support regions of
> > interest sidedata
> >
> > From: Jun Zhao <barryjzhao at tencent.com>
> >
> > support regions of interest sidedata
> >
> > Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
> > ---
> >  libavfilter/vf_showinfo.c |   23 +++++++++++++++++++++++
> >  1 files changed, 23 insertions(+), 0 deletions(-)
> >
> > diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
> > index 9e84197..b51c1ae 100644
> > --- a/libavfilter/vf_showinfo.c
> > +++ b/libavfilter/vf_showinfo.c
> > @@ -111,6 +111,26 @@ static void dump_stereo3d(AVFilterContext *ctx,
> > AVFrameSideData *sd)
> >          av_log(ctx, AV_LOG_INFO, " (inverted)");
> >  }
> >
> > +static void dump_roi(AVFilterContext *ctx, AVFrameSideData *sd)
> > +{
> > +    AVRegionOfInterest *roi;
> > +    int nb_rois;
> > +
> > +    if (sd->size < sizeof(*roi)) {
> > +        av_log(ctx, AV_LOG_INFO, "invalid data");
> > +        return;
> > +    }
>
> roi = (const AVRegionOfInterest *)sd->data;
> if (roi->self_size == 0 || sd->size % roi->self_size != 0) {
>     //report error and return.
> }
>
> > +
> > +    roi = (AVRegionOfInterest *)sd->data;
> > +    nb_rois = sd->size / sizeof(*roi);
>
> nb_rois = sd->size / roi->self_size;
>
> > +
> > +    av_log(ctx, AV_LOG_INFO, "Regions Of Interest(RoI) informations: ");
> > +    for (int index = 0; index < nb_rois; index++) {
> > +        av_log(ctx, AV_LOG_INFO, "index: %d, region: (%d %d)/(%d %d), qp
> > offset: %d/%d",
> > +               index, roi->left, roi->top, roi->right, roi->bottom,
> roi->qoffset.num,
> > roi->qoffset.den);
> > +    }
> > +}
> > +
> >  static void dump_color_property(AVFilterContext *ctx, AVFrame *frame)
> >  {
> >      const char *color_range_str     = av_color_range_name(frame-
> > >color_range);
> > @@ -246,6 +266,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame
> > *frame)
> >          case AV_FRAME_DATA_AFD:
> >              av_log(ctx, AV_LOG_INFO, "afd: value of %"PRIu8,
> sd->data[0]);
> >              break;
> > +        case AV_FRAME_DATA_REGIONS_OF_INTEREST:
> > +            dump_roi(ctx, sd);
> > +            break;
> >          default:
> >              av_log(ctx, AV_LOG_WARNING, "unknown side data type %d (%d
> > bytes)",
> >                     sd->type, sd->size);
> > --
> > 1.7.1
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list