aboutsummaryrefslogtreecommitdiffstats
path: root/avconv.c
diff options
context:
space:
mode:
authorKostya <kostya.shishkov@gmail.com>2011-08-13 16:44:04 +0000
committerAnton Khirnov <anton@khirnov.net>2011-08-15 11:53:40 +0200
commit428c59d9114ac97754f2bc06d07c4d1ba1860464 (patch)
tree39f0ff8a4d1c3a1906be68c54913a4bd227845b0 /avconv.c
parent24efdea7fd024431f8ddd2b08c9390eba08c91f1 (diff)
downloadffmpeg-428c59d9114ac97754f2bc06d07c4d1ba1860464.tar.gz
avtools: reinitialise filter chain when input video stream changes dimensions
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'avconv.c')
-rw-r--r--avconv.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/avconv.c b/avconv.c
index 877079c887..18c5f07380 100644
--- a/avconv.c
+++ b/avconv.c
@@ -1211,7 +1211,20 @@ static void do_video_out(AVFormatContext *s,
sws_scale(ost->img_resample_ctx, formatted_picture->data, formatted_picture->linesize,
0, ost->resample_height, final_picture->data, final_picture->linesize);
}
+#else
+ if (resample_changed) {
+ avfilter_graph_free(&ost->graph);
+ if (configure_video_filters(ist, ost)) {
+ fprintf(stderr, "Error reinitialising filters!\n");
+ exit_program(1);
+ }
+ }
#endif
+ if (resample_changed) {
+ ost->resample_width = dec->width;
+ ost->resample_height = dec->height;
+ ost->resample_pix_fmt = dec->pix_fmt;
+ }
/* duplicates frame if needed */
for(i=0;i<nb_frames;i++) {