[FFmpeg-cvslog] ffplay: reorder the filters to ensure that inputs of the custom filters are merged first

Marton Balint git at videolan.org
Wed Feb 5 14:26:20 CET 2014


ffmpeg | branch: master | Marton Balint <cus at passwd.hu> | Wed Jan 29 23:00:52 2014 +0100| [cec6dec7c8b248b101646940af1b0893564dba26] | committer: Marton Balint

ffplay: reorder the filters to ensure that inputs of the custom filters are merged first

For more info see http://ffmpeg.org/pipermail/ffmpeg-user/2013-December/018761.html

Signed-off-by: Marton Balint <cus at passwd.hu>

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

 ffplay.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ffplay.c b/ffplay.c
index d8dcf84..0e173dc 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1727,7 +1727,8 @@ static int get_video_frame(VideoState *is, AVFrame *frame, AVPacket *pkt, int *s
 static int configure_filtergraph(AVFilterGraph *graph, const char *filtergraph,
                                  AVFilterContext *source_ctx, AVFilterContext *sink_ctx)
 {
-    int ret;
+    int ret, i;
+    int nb_filters = graph->nb_filters;
     AVFilterInOut *outputs = NULL, *inputs = NULL;
 
     if (filtergraph) {
@@ -1755,6 +1756,10 @@ static int configure_filtergraph(AVFilterGraph *graph, const char *filtergraph,
             goto fail;
     }
 
+    /* Reorder the filters to ensure that inputs of the custom filters are merged first */
+    for (i = 0; i < graph->nb_filters - nb_filters; i++)
+        FFSWAP(AVFilterContext*, graph->filters[i], graph->filters[i + nb_filters]);
+
     ret = avfilter_graph_config(graph, NULL);
 fail:
     avfilter_inout_free(&outputs);



More information about the ffmpeg-cvslog mailing list