ffmpeg: fix swr filter_type for auto inserted aresample filters
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 26 Nov 2012 03:06:19 +0000 (04:06 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 26 Nov 2012 03:06:19 +0000 (04:06 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg.h
ffmpeg_filter.c
ffmpeg_opt.c

index e981a74..d260222 100644 (file)
--- a/ffmpeg.h
+++ b/ffmpeg.h
@@ -326,6 +326,7 @@ typedef struct OutputStream {
     char *avfilter;
 
     int64_t sws_flags;
+    int64_t swr_filter_type;
     int64_t swr_dither_method;
     double swr_dither_scale;
     AVDictionary *opts;
index d960f1f..5e37128 100644 (file)
@@ -727,6 +727,8 @@ int configure_filtergraph(FilterGraph *fg)
         fg->graph->scale_sws_opts = av_strdup(args);
 
         args[0] = 0;
+        if (ost->swr_filter_type != SWR_FILTER_TYPE_KAISER)
+            av_strlcatf(args, sizeof(args), "filter_type=%d:", (int)ost->swr_filter_type);
         if (ost->swr_dither_method)
             av_strlcatf(args, sizeof(args), "dither_method=%d:", (int)ost->swr_dither_method);
         if (ost->swr_dither_scale != 1.0)
index 612bdc6..df85230 100644 (file)
@@ -1015,6 +1015,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
         st->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
 
     av_opt_get_int(sws_opts, "sws_flags", 0, &ost->sws_flags);
+    av_opt_get_int   (swr_opts, "filter_type"  , 0, &ost->swr_filter_type);
     av_opt_get_int   (swr_opts, "dither_method", 0, &ost->swr_dither_method);
     av_opt_get_double(swr_opts, "dither_scale" , 0, &ost->swr_dither_scale);