aboutsummaryrefslogtreecommitdiffstats
path: root/ffplay.c
diff options
context:
space:
mode:
authorwanzhang <wanzhanghuang@foxmail.com>2015-07-30 01:16:43 +0800
committerMichael Niedermayer <michael@niedermayer.cc>2015-12-25 02:10:48 +0100
commit9cc1e644f39ed6a32e3a9bf5d0d6d663ca5791ab (patch)
tree59f66e722780959b42065c3b52e20e8b26e0ee3c /ffplay.c
parentb83d8be6bff7d645469a623aee0b380541da15cf (diff)
downloadffmpeg-9cc1e644f39ed6a32e3a9bf5d0d6d663ca5791ab.tar.gz
ffplay: Fix auto insertion point of rotation filter
Fixes watermark rotation for videos using auto rotation Closes #141
Diffstat (limited to 'ffplay.c')
-rw-r--r--ffplay.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ffplay.c b/ffplay.c
index 3baefccdc7..2f8a0bf4ef 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1905,7 +1905,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
char sws_flags_str[512] = "";
char buffersrc_args[256];
int ret;
- AVFilterContext *filt_src = NULL, *filt_out = NULL, *last_filter = NULL;
+ AVFilterContext *filt_src = NULL, *filt_out = NULL, *head_filter, *last_filter = NULL;
AVCodecContext *codec = is->video_st->codec;
AVRational fr = av_guess_frame_rate(is->ic, is->video_st, NULL);
AVDictionaryEntry *e = NULL;
@@ -1945,6 +1945,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
goto fail;
last_filter = filt_out;
+ head_filter = filt_src;
/* Note: this macro adds a filter before the lastly added filter, so the
* processing order of the filters is in reverse */
@@ -1957,11 +1958,11 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
if (ret < 0) \
goto fail; \
\
- ret = avfilter_link(filt_ctx, 0, last_filter, 0); \
+ ret = avfilter_link(head_filter, 0, filt_ctx, 0); \
if (ret < 0) \
goto fail; \
\
- last_filter = filt_ctx; \
+ head_filter = filt_ctx; \
} while (0)
/* SDL YUV code is not handling odd width/height for some driver
@@ -1985,7 +1986,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
}
}
- if ((ret = configure_filtergraph(graph, vfilters, filt_src, last_filter)) < 0)
+ if ((ret = configure_filtergraph(graph, vfilters, head_filter, last_filter)) < 0)
goto fail;
is->in_video_filter = filt_src;