[FFmpeg-cvslog] lavfi/select: store scene score in buf ref metadata.

Clément Bœsch git at videolan.org
Sun Oct 21 17:56:47 CEST 2012


ffmpeg | branch: master | Clément Bœsch <ubitux at gmail.com> | Wed Oct 10 00:36:19 2012 +0200| [de23953de2d827381886c900b02e9ead02ad56a3] | committer: Clément Bœsch

lavfi/select: store scene score in buf ref metadata.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=de23953de2d827381886c900b02e9ead02ad56a3
---

 libavfilter/version.h                      |    2 +-
 libavfilter/vf_select.c                    |    7 ++++++-
 tests/fate/filter.mak                      |   10 ++++++++++
 tests/ref/fate/filter-metadata-scenedetect |   11 +++++++++++
 4 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/libavfilter/version.h b/libavfilter/version.h
index eeb7805..0ad7372 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -30,7 +30,7 @@
 
 #define LIBAVFILTER_VERSION_MAJOR  3
 #define LIBAVFILTER_VERSION_MINOR  20
-#define LIBAVFILTER_VERSION_MICRO 100
+#define LIBAVFILTER_VERSION_MICRO 101
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
                                                LIBAVFILTER_VERSION_MINOR, \
diff --git a/libavfilter/vf_select.c b/libavfilter/vf_select.c
index 7cb5aae..341361d 100644
--- a/libavfilter/vf_select.c
+++ b/libavfilter/vf_select.c
@@ -241,8 +241,13 @@ static int select_frame(AVFilterContext *ctx, AVFilterBufferRef *picref)
     AVFilterLink *inlink = ctx->inputs[0];
     double res;
 
-    if (CONFIG_AVCODEC && select->do_scene_detect)
+    if (CONFIG_AVCODEC && select->do_scene_detect) {
+        char buf[32];
         select->var_values[VAR_SCENE] = get_scene_score(ctx, picref);
+        // TODO: document metadata
+        snprintf(buf, sizeof(buf), "%f", select->var_values[VAR_SCENE]);
+        av_dict_set(&picref->metadata, "lavfi.scene_score", buf, 0);
+    }
     if (isnan(select->var_values[VAR_START_PTS]))
         select->var_values[VAR_START_PTS] = TS2D(picref->pts);
     if (isnan(select->var_values[VAR_START_T]))
diff --git a/tests/fate/filter.mak b/tests/fate/filter.mak
index 3d563c8..e01d21b 100644
--- a/tests/fate/filter.mak
+++ b/tests/fate/filter.mak
@@ -44,5 +44,15 @@ fate-filter-yadif-mode1: CMD = framecrc -flags bitexact -idct simple -i $(SAMPLE
 
 FATE_FILTER-$(CONFIG_YADIF_FILTER) += $(FATE_YADIF)
 
+#
+# Metadata tests
+#
+FILTER_METADATA_COMMAND = ffprobe$(EXESUF) -show_frames -of compact=nk=1:p=0 -bitexact -f lavfi
+
+FATE_FILTER-$(call ALLYES, FFPROBE LAVFI_INDEV MOVIE_FILTER SELECT_FILTER AVCODEC MOV_DEMUXER SVQ3_DECODER ZLIB) += fate-filter-metadata-scenedetect
+fate-filter-metadata-scenedetect: SRC = $(SAMPLES)/svq3/Vertical400kbit.sorenson3.mov
+fate-filter-metadata-scenedetect: CMD = run $(FILTER_METADATA_COMMAND) "movie=$(SRC),select=gt(scene\,.4)"
+
+
 FATE_SAMPLES_AVCONV += $(FATE_FILTER-yes)
 fate-filter: $(FATE_FILTER-yes)
diff --git a/tests/ref/fate/filter-metadata-scenedetect b/tests/ref/fate/filter-metadata-scenedetect
new file mode 100644
index 0000000..21cc548
--- /dev/null
+++ b/tests/ref/fate/filter-metadata-scenedetect
@@ -0,0 +1,11 @@
+video|1|20|0.033333|20|0.033333|1|0.001667|29927|320|240|rgb24|1:1|I|0|0|0|0|0|0|1.000000
+video|1|1640|2.733333|1640|2.733333|1|0.001667|164269|320|240|rgb24|1:1|I|0|0|0|0|0|0|1.000000
+video|1|4160|6.933333|4160|6.933333|1|0.001667|808833|320|240|rgb24|1:1|I|0|0|0|0|0|0|0.870000
+video|1|5820|9.700000|5820|9.700000|1|0.001667|933313|320|240|rgb24|1:1|I|0|0|0|0|0|0|1.000000
+video|1|6740|11.233333|6740|11.233333|1|0.001667|1040437|320|240|rgb24|1:1|I|0|0|0|0|0|0|0.460000
+video|1|8180|13.633333|8180|13.633333|1|0.001667|1248589|320|240|rgb24|1:1|I|0|0|0|0|0|0|1.000000
+video|1|9780|16.300000|9780|16.300000|1|0.001667|1348821|320|240|rgb24|1:1|I|0|0|0|0|0|0|1.000000
+video|1|14100|23.500000|14100|23.500000|1|0.001667|2006431|320|240|rgb24|1:1|I|0|0|0|0|0|0|0.850000
+video|1|15720|26.200000|15720|26.200000|1|0.001667|2151283|320|240|rgb24|1:1|I|0|0|0|0|0|0|1.000000
+video|1|18520|30.866667|18520|30.866667|1|0.001667|2515017|320|240|rgb24|1:1|I|0|0|0|0|0|0|0.470000
+video|1|21780|36.300000|21780|36.300000|1|0.001667|2933379|320|240|rgb24|1:1|I|0|0|0|0|0|0|1.000000



More information about the ffmpeg-cvslog mailing list