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

Guo, Yejun yejun.guo at intel.com
Sat Jul 13 09:27:00 EEST 2019



> -----Original Message-----
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
> Jun Zhao
> Sent: Saturday, July 13, 2019 1:44 PM
> To: ffmpeg-devel at ffmpeg.org
> Cc: Jun Zhao <barryjzhao at tencent.com>
> Subject: [FFmpeg-devel] [PATCH V1 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 |   25 +++++++++++++++++++++++++
>  1 files changed, 25 insertions(+), 0 deletions(-)
> 
> diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
> index e41c330..f6f8f49 100644
> --- a/libavfilter/vf_showinfo.c
> +++ b/libavfilter/vf_showinfo.c
> @@ -111,6 +111,28 @@ static void dump_stereo3d(AVFilterContext *ctx,
> AVFrameSideData *sd)
>          av_log(ctx, AV_LOG_INFO, " (inverted)");
>  }
> 
> +static void dump_roi(AVFilterContext *ctx, AVFrameSideData *sd)
> +{
> +    int nb_rois;
> +    const AVRegionOfInterest *roi;
> +    uint32_t roi_size;
> +
> +    roi = (const AVRegionOfInterest *)sd->data;
> +    roi_size = roi->self_size;
> +    if (!roi_size || sd->size % roi_size != 0) {
> +        av_log(ctx, AV_LOG_ERROR, "Invalid
> AVRegionOfInterest.self_size.\n");
> +        return;
> +    }
> +    nb_rois = sd->size / roi_size;
> +
> +    av_log(ctx, AV_LOG_INFO, "Regions Of Interest(RoI) information: ");
> +    for (int i = 0; i < nb_rois; i++) {
> +        roi = (const AVRegionOfInterest *)(sd->data + roi_size * i);
> +        av_log(ctx, AV_LOG_INFO, "index: %d, region: (%d, %d)/(%d, %d),
> qp offset: %d/%d.\n",
> +               i, 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 +268,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);

looks good to me, thanks.

> --
> 1.7.1
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list