diff --git a/doc/filters.texi b/doc/filters.texi index d3543b39c0..58a690309a 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -205,6 +205,13 @@ adding/dropping samples. @item max_comp Maximum compensation in samples per second. +@item first_pts +Assume the first pts should be this value. +This allows for padding/trimming at the start of stream. By default, no +assumption is made about the first frame's expected pts, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream. + @end table @section channelsplit diff --git a/libavfilter/af_asyncts.c b/libavfilter/af_asyncts.c index 4052fbdce7..5a12a6f6da 100644 --- a/libavfilter/af_asyncts.c +++ b/libavfilter/af_asyncts.c @@ -49,6 +49,7 @@ static const AVOption options[] = { { "min_delta", "Minimum difference between timestamps and audio data " "(in seconds) to trigger padding/trimmin the data.", OFFSET(min_delta_sec), AV_OPT_TYPE_FLOAT, { 0.1 }, 0, INT_MAX, A }, { "max_comp", "Maximum compensation in samples per second.", OFFSET(max_comp), AV_OPT_TYPE_INT, { 500 }, 0, INT_MAX, A }, + { "first_pts", "Assume the first pts should be this value.", OFFSET(pts), AV_OPT_TYPE_INT64, { AV_NOPTS_VALUE }, INT64_MIN, INT64_MAX, A }, { NULL }, }; @@ -73,8 +74,6 @@ static int init(AVFilterContext *ctx, const char *args) } av_opt_free(s); - s->pts = AV_NOPTS_VALUE; - return 0; }