summaryrefslogtreecommitdiff
authorMichael Niedermayer <michaelni@gmx.at>2012-11-26 03:06:19 (GMT)
committer Michael Niedermayer <michaelni@gmx.at>2012-11-26 03:06:19 (GMT)
commitb5e0e327ceb738c1d329f741e731f77eea8c976a (patch)
tree2dc5cbf9c130d525d2dde408a722a71b9ab78f36
parent4bd6d73fc8d4bc367668f2770d92a06b0c79146d (diff)
downloadffmpeg-b5e0e327ceb738c1d329f741e731f77eea8c976a.zip
ffmpeg-b5e0e327ceb738c1d329f741e731f77eea8c976a.tar.gz
ffmpeg-b5e0e327ceb738c1d329f741e731f77eea8c976a.tar.bz2
ffmpeg: fix swr filter_type for auto inserted aresample filters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat
-rw-r--r--ffmpeg.h1
-rw-r--r--ffmpeg_filter.c2
-rw-r--r--ffmpeg_opt.c1
3 files changed, 4 insertions, 0 deletions
diff --git a/ffmpeg.h b/ffmpeg.h
index e981a74..d260222 100644
--- 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;
diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c
index d960f1f..5e37128 100644
--- a/ffmpeg_filter.c
+++ b/ffmpeg_filter.c
@@ -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)
diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index 612bdc6..df85230 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -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);