diff --git a/ffmpeg.h b/ffmpeg.h index d8a963ece5..b89a5ac626 100644 --- a/ffmpeg.h +++ b/ffmpeg.h @@ -198,6 +198,7 @@ typedef struct FilterGraph { const char *graph_desc; AVFilterGraph *graph; + int reconfiguration; InputFilter **inputs; int nb_inputs; diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c index 7a9efeaf05..1919f78e24 100644 --- a/ffmpeg_filter.c +++ b/ffmpeg_filter.c @@ -675,6 +675,8 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter, av_strlcatf(args, sizeof(args), "async=%d", audio_sync_method); if (audio_drift_threshold != 0.1) av_strlcatf(args, sizeof(args), ":min_hard_comp=%f", audio_drift_threshold); + if (!fg->reconfiguration) + av_strlcatf(args, sizeof(args), ":first_pts=0"); AUTO_INSERT_FILTER_INPUT("-async", "aresample", args); } @@ -796,6 +798,7 @@ int configure_filtergraph(FilterGraph *fg) } } + fg->reconfiguration = 1; return 0; }