Commit 6c704d9c authored by Michael Niedermayer's avatar Michael Niedermayer

ffmpeg: support changing dither parameters for swr

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent be4cde22
...@@ -276,6 +276,8 @@ typedef struct OutputStream { ...@@ -276,6 +276,8 @@ typedef struct OutputStream {
AVFilterGraph *graph; AVFilterGraph *graph;
int64_t sws_flags; int64_t sws_flags;
int64_t swr_dither_method;
double swr_dither_scale;
AVDictionary *opts; AVDictionary *opts;
int is_past_recording_time; int is_past_recording_time;
int stream_copy; int stream_copy;
...@@ -1199,6 +1201,8 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost, ...@@ -1199,6 +1201,8 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost,
enc->channel_layout, enc->sample_fmt, enc->sample_rate, enc->channel_layout, enc->sample_fmt, enc->sample_rate,
dec->channel_layout, dec->sample_fmt, dec->sample_rate, dec->channel_layout, dec->sample_fmt, dec->sample_rate,
0, NULL); 0, NULL);
av_opt_set_int(ost->swr, "dither_method", ost->swr_dither_method,0);
av_opt_set_int(ost->swr, "dither_scale", ost->swr_dither_scale,0);
if (ost->audio_channels_mapped) if (ost->audio_channels_mapped)
swr_set_channel_mapping(ost->swr, ost->audio_channels_map); swr_set_channel_mapping(ost->swr, ost->audio_channels_map);
av_opt_set_double(ost->swr, "rmvol", ost->rematrix_volume, 0); av_opt_set_double(ost->swr, "rmvol", ost->rematrix_volume, 0);
...@@ -3965,6 +3969,8 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e ...@@ -3965,6 +3969,8 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
st->codec->flags |= CODEC_FLAG_GLOBAL_HEADER; st->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
av_opt_get_int(sws_opts, "sws_flags", 0, &ost->sws_flags); av_opt_get_int(sws_opts, "sws_flags", 0, &ost->sws_flags);
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);
ost->source_index = source_index; ost->source_index = source_index;
if (source_index >= 0) { if (source_index >= 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment