[FFmpeg-devel] [PATCH V3 3/3] add an example to show how to fill the ROI info

Guo, Yejun yejun.guo at intel.com
Thu Dec 27 13:06:38 EET 2018


This patch is just a quick example to show how to fill the ROI info,
it does not ask for upstreaming, just for your reference.

to verify the ROI feature with this example, the command line looks like:
./ffmpeg -i .../path_to_1920x1080_video_file -vf scale=1920:1080 -c:v libx264 -b:v 2000k -y tmp.264

Signed-off-by: Guo, Yejun <yejun.guo at intel.com>
---
 libavfilter/vf_scale.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index f741419..561391c 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -437,6 +437,20 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
             return ret;
     }
 
+    // just to show how a filter fills the ROI info
+    size_t nb_rois = 1;
+    AVFrameSideData *sd = av_frame_new_side_data(in, AV_FRAME_DATA_ROIS, nb_rois * sizeof(AVROI));
+    if (!sd) {
+        av_frame_free(&in);
+        return AVERROR(ENOMEM);
+    }
+    AVROI* rois = (AVROI*)sd->data;
+    rois[0].top = 0;
+    rois[0].left = 0;
+    rois[0].bottom = in->height;
+    rois[0].right = in->width/2;
+    rois[0].qoffset = -15;
+
     if (!scale->sws)
         return ff_filter_frame(outlink, in);
 
-- 
2.7.4



More information about the ffmpeg-devel mailing list