From 70d71b58018e640a09a4d919993766a2050cef8d Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Sat, 28 Jul 2012 12:57:05 -0400 Subject: af_asyncts: add first_pts option 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. --- libavfilter/af_asyncts.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'libavfilter/af_asyncts.c') 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; } -- cgit v1.2.3 From be51e589cdf84d75e865cec31e722a36332a64f9 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Sat, 28 Jul 2012 13:12:38 -0400 Subject: af_asyncts: avoid overflow in out_size with large delta values --- libavfilter/af_asyncts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libavfilter/af_asyncts.c') diff --git a/libavfilter/af_asyncts.c b/libavfilter/af_asyncts.c index 5a12a6f6da..21850dd1d2 100644 --- a/libavfilter/af_asyncts.c +++ b/libavfilter/af_asyncts.c @@ -186,7 +186,7 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) if (labs(delta) > s->min_delta) { av_log(ctx, AV_LOG_VERBOSE, "Discontinuity - %"PRId64" samples.\n", delta); - out_size += delta; + out_size = av_clipl_int32((int64_t)out_size + delta); } else { if (s->resample) { int comp = av_clip(delta, -s->max_comp, s->max_comp); -- cgit v1.2.3