diff options
author | wanzhang <wanzhanghuang@foxmail.com> | 2015-07-30 01:16:43 +0800 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-12-25 02:10:48 +0100 |
commit | 9cc1e644f39ed6a32e3a9bf5d0d6d663ca5791ab (patch) | |
tree | 59f66e722780959b42065c3b52e20e8b26e0ee3c | |
parent | b83d8be6bff7d645469a623aee0b380541da15cf (diff) | |
download | ffmpeg-9cc1e644f39ed6a32e3a9bf5d0d6d663ca5791ab.tar.gz |
ffplay: Fix auto insertion point of rotation filter
Fixes watermark rotation for videos using auto rotation
Closes #141
-rw-r--r-- | ffplay.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -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; |