summaryrefslogtreecommitdiff
path: root/libavfilter/vf_bbox.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2013-05-26 09:53:03 +0000
committerPaul B Mahol <onemda@gmail.com>2013-05-26 14:00:10 +0000
commitc8e9c9275ff9f9edcbaf0ce69d84efe26bc0637f (patch)
tree67a0cbbbf2f6967b09ae9765393bd6bf952dc05c /libavfilter/vf_bbox.c
parentadd8c63ce4dd91bacc8044351d292ded85d5724f (diff)
lavfi/bbox: export bbox info to frame metadata
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavfilter/vf_bbox.c')
-rw-r--r--libavfilter/vf_bbox.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libavfilter/vf_bbox.c b/libavfilter/vf_bbox.c
index 3b511cae2c..a5f0204a5c 100644
--- a/libavfilter/vf_bbox.c
+++ b/libavfilter/vf_bbox.c
@@ -60,12 +60,17 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
+#define SET_META(key, value) \
+ snprintf(buf, sizeof(buf), "%d", value); \
+ av_dict_set(metadata, #key, buf, 0); \
+
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
{
AVFilterContext *ctx = inlink->dst;
BBoxContext *bbox = ctx->priv;
FFBoundingBox box;
int has_bbox, w, h;
+ char buf[32];
has_bbox =
ff_calculate_bounding_box(&box,
@@ -79,6 +84,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
av_ts2str(frame->pts), av_ts2timestr(frame->pts, &inlink->time_base));
if (has_bbox) {
+ AVDictionary **metadata = avpriv_frame_get_metadatap(frame);
+
+ SET_META("lavfi.bbox.x1", box.x1)
+ SET_META("lavfi.bbox.x2", box.x2)
+ SET_META("lavfi.bbox.y1", box.y1)
+ SET_META("lavfi.bbox.y2", box.y2)
+ SET_META("lavfi.bbox.w", w)
+ SET_META("lavfi.bbox.h", h)
+
av_log(ctx, AV_LOG_INFO,
" x1:%d x2:%d y1:%d y2:%d w:%d h:%d"
" crop=%d:%d:%d:%d drawbox=%d:%d:%d:%d",