Browse Source

ffmpeg: use AUTO_INSERT_FILTER() for -async option.

tags/n0.11
Clément Bœsch 13 years ago
parent
commit
d8e075b1a0
1 changed files with 9 additions and 23 deletions
  1. +9
    -23
      ffmpeg.c

+ 9
- 23
ffmpeg.c View File

@@ -872,29 +872,6 @@ static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
*out_filter = format;
}

if (audio_sync_method > 0) {
AVFilterContext *aswr;
char args[256] = {0};

av_strlcatf(args, sizeof(args), "min_comp=0.001:min_hard_comp=%f", audio_drift_threshold);

if (audio_sync_method > 1)
av_strlcatf(args, sizeof(args), ":max_soft_comp=%f", audio_sync_method/(double)icodec->sample_rate);

av_log(NULL, AV_LOG_INFO, "-async %d is forwarded to lavfi similarly to -af aresample=%s\n", audio_sync_method, args);

ret = avfilter_graph_create_filter(&aswr, avfilter_get_by_name("aresample"),
"aresample", args, NULL, fg->graph);
if (ret < 0)
return ret;

ret = avfilter_link(*in_filter, 0, aswr, 0);
if (ret < 0)
return ret;

*in_filter = aswr;
}

#define AUTO_INSERT_FILTER(opt_name, filter_name, arg) do { \
AVFilterContext *filt_ctx; \
\
@@ -914,6 +891,15 @@ static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
*in_filter = filt_ctx; \
} while (0)

if (audio_sync_method > 0) {
char args[256] = {0};

av_strlcatf(args, sizeof(args), "min_comp=0.001:min_hard_comp=%f", audio_drift_threshold);
if (audio_sync_method > 1)
av_strlcatf(args, sizeof(args), ":max_soft_comp=%f", audio_sync_method/(double)icodec->sample_rate);
AUTO_INSERT_FILTER("-async", "aresample", args);
}

if (ost->audio_channels_mapped) {
int i;
AVBPrint pan_buf;


Loading…
Cancel
Save