X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg_filter.c;h=5e371282c9414f17b3c395b35f56c94626f37e3f;hb=a0958949ebe115e5dd661c9292c29a8ab7958c22;hp=358e1edb6eb86b416b555aa130f1d3f2fd69ec59;hpb=3db32ec119e5a7811e7ee1d41e3becc261fbb296;p=ffmpeg diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c index 358e1edb6eb..5e371282c94 100644 --- a/ffmpeg_filter.c +++ b/ffmpeg_filter.c @@ -28,6 +28,7 @@ #include "libavutil/avstring.h" #include "libavutil/bprint.h" #include "libavutil/channel_layout.h" +#include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "libavutil/pixfmt.h" #include "libavutil/imgutils.h" @@ -724,6 +725,17 @@ int configure_filtergraph(FilterGraph *fg) char args[255]; snprintf(args, sizeof(args), "flags=0x%X", (unsigned)ost->sws_flags); 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) + av_strlcatf(args, sizeof(args), "dither_scale=%f:", ost->swr_dither_scale); + if (strlen(args)) + args[strlen(args)-1] = 0; + av_opt_set(fg->graph, "aresample_swr_opts", args, 0); } if ((ret = avfilter_graph_parse2(fg->graph, graph_desc, &inputs, &outputs)) < 0)