diff options
author | Paul B Mahol <onemda@gmail.com> | 2013-05-26 09:53:03 +0000 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2013-05-26 14:00:10 +0000 |
commit | c8e9c9275ff9f9edcbaf0ce69d84efe26bc0637f (patch) | |
tree | 67a0cbbbf2f6967b09ae9765393bd6bf952dc05c | |
parent | add8c63ce4dd91bacc8044351d292ded85d5724f (diff) | |
download | ffmpeg-c8e9c9275ff9f9edcbaf0ce69d84efe26bc0637f.tar.gz |
lavfi/bbox: export bbox info to frame metadata
Signed-off-by: Paul B Mahol <onemda@gmail.com>
-rw-r--r-- | libavfilter/vf_bbox.c | 14 |
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", |