diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-04-05 06:33:40 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-04-05 06:33:40 +0200 |
commit | 1a5c08eef6d64ec980dde74f97ddd9938e38936d (patch) | |
tree | 1838e92b0381b582ddf420e460d447fdb3c6030f | |
parent | ca2b450cee232bbb483984ebf5a20f1411023e0d (diff) | |
download | ffmpeg-1a5c08eef6d64ec980dde74f97ddd9938e38936d.tar.gz |
vf_idet: Add last_type variable to make code more readable.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavfilter/vf_idet.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index eee1671f58..d5147d4045 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -37,7 +37,7 @@ typedef struct { float interlace_threshold; float progressive_threshold; - + Type last_type; Type prestat[4]; AVFilterBufferRef *cur; @@ -107,32 +107,32 @@ 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; } idet->prestat[type] ++; - if (type == TFF){ - av_log(ctx, AV_LOG_INFO, "Interlaced, top field first\n"); + if (type != UNDETERMINED) + idet->last_type = type; + + if (idet->last_type == TFF){ idet->cur->video->top_field_first = 1; idet->cur->video->interlaced = 1; - }else if(type == BFF){ - av_log(ctx, AV_LOG_INFO, "Interlaced, bottom field first\n"); + }else if(idet->last_type == BFF){ idet->cur->video->top_field_first = 0; idet->cur->video->interlaced = 1; - }else if(type == PROGRSSIVE){ - av_log(ctx, AV_LOG_INFO, "Progressive\n"); + }else if(idet->last_type == PROGRSSIVE){ idet->cur->video->interlaced = 0; - }else{ - av_log(ctx, AV_LOG_INFO, "Undetermined\n"); - idet->cur->video->interlaced = idet->prev->video->interlaced; - idet->cur->video->top_field_first = idet->prev->video->top_field_first; } } @@ -265,6 +265,8 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) if (args) sscanf(args, "%f:%f", &idet->interlace_threshold, &idet->progressive_threshold); + idet->last_type = UNDETERMINED; + idet->filter_line = filter_line_c; return 0; |