aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2011-01-15 00:32:36 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2011-01-15 00:32:36 +0000
commita51c71bb54c53ccb22e7972f8f60819f7f4f2c9f (patch)
treeb9d5066ee90fac72e37adc35f48b96b1bf2874b4
parent3cdf69eefa055ec6a08972e9e69f7e90854e42f9 (diff)
downloadffmpeg-a51c71bb54c53ccb22e7972f8f60819f7f4f2c9f.tar.gz
In yadif filter, default to top field first if interlacing is unknown
Originally committed as revision 26347 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--doc/filters.texi2
-rw-r--r--libavfilter/vf_yadif.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/doc/filters.texi b/doc/filters.texi
index a66900e160..3842886521 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -996,6 +996,8 @@ enable automatic detection
@end table
Default value is -1.
+If interlacing is unknown or decoder does not export this information,
+top field first will be assumed.
@c man end VIDEO FILTERS
diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
index d96e5877e9..bd0a9de877 100644
--- a/libavfilter/vf_yadif.c
+++ b/libavfilter/vf_yadif.c
@@ -167,7 +167,14 @@ static void return_frame(AVFilterContext *ctx, int is_second)
{
YADIFContext *yadif = ctx->priv;
AVFilterLink *link= ctx->outputs[0];
- int tff = yadif->parity == -1 ? yadif->cur->video->top_field_first : (yadif->parity^1);
+ int tff;
+
+ if (yadif->parity == -1) {
+ tff = yadif->cur->video->interlaced ?
+ yadif->cur->video->top_field_first : 1;
+ } else {
+ tff = yadif->parity^1;
+ }
if (is_second)
yadif->out = avfilter_get_video_buffer(link, AV_PERM_WRITE | AV_PERM_PRESERVE |