[FFmpeg-cvslog] vf_idet: Print both the single frame based detection and the multi frame one.

Michael Niedermayer git at videolan.org
Thu Apr 5 07:02:38 CEST 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Apr  5 06:38:48 2012 +0200| [0477254dd23d936d27739d8a54a3c45ef8171ccb] | committer: Michael Niedermayer

vf_idet: Print both the single frame based detection and the multi frame one.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavfilter/vf_idet.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c
index d5147d4..1a2c36d 100644
--- a/libavfilter/vf_idet.c
+++ b/libavfilter/vf_idet.c
@@ -49,6 +49,16 @@ typedef struct {
     const AVPixFmtDescriptor *csp;
 } IDETContext;
 
+static const char *type2str(Type type)
+{
+    switch(type) {
+        case TFF         : return "Top Field First   ";
+        case BFF         : return "Bottom Field First";
+        case PROGRSSIVE  : return "Progressive       ";
+        case UNDETERMINED: return "Undetermined      ";
+    }
+    return NULL;
+}
 
 static int filter_line_c(const uint8_t *a, const uint8_t *b, const uint8_t *c, int w)
 {
@@ -107,16 +117,12 @@ static void filter(AVFilterContext *ctx)
 #endif
 
     if      (alpha[0] / (float)alpha[1] > idet->interlace_threshold){
-        av_log(ctx, AV_LOG_INFO, "Interlaced, top field first\n");
         type = TFF;
     }else if(alpha[1] / (float)alpha[0] > idet->interlace_threshold){
-        av_log(ctx, AV_LOG_INFO, "Interlaced, bottom field first\n");
         type = BFF;
     }else if(alpha[1] / (float)delta    > idet->progressive_threshold){
-        av_log(ctx, AV_LOG_INFO, "Progressive\n");
         type = PROGRSSIVE;
     }else{
-        av_log(ctx, AV_LOG_INFO, "Undetermined\n");
         type = UNDETERMINED;
     }
 
@@ -134,6 +140,8 @@ static void filter(AVFilterContext *ctx)
     }else if(idet->last_type == PROGRSSIVE){
         idet->cur->video->interlaced = 0;
     }
+
+    av_log(ctx, AV_LOG_INFO, "Single frame:%s, Multi frame:%s\n", type2str(type), type2str(idet->last_type));
 }
 
 static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)



More information about the ffmpeg-cvslog mailing list