summaryrefslogtreecommitdiff
path: root/libavfilter/af_asyncts.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-05-22 20:44:07 +0200
committerAnton Khirnov <anton@khirnov.net>2012-05-22 21:28:20 +0200
commitf297dd3812510fc83080e265dc4534a3898005b0 (patch)
treee5563106f9f2415491fcd75bfb8c26e38692de82 /libavfilter/af_asyncts.c
parent713548cbad4735d691ea286f23adfb67900e6700 (diff)
asyncts: reset delta to 0 when it's not used.
Fixes an invalid write.
Diffstat (limited to 'libavfilter/af_asyncts.c')
-rw-r--r--libavfilter/af_asyncts.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libavfilter/af_asyncts.c b/libavfilter/af_asyncts.c
index 5cde0bf00a..adb5347a80 100644
--- a/libavfilter/af_asyncts.c
+++ b/libavfilter/af_asyncts.c
@@ -182,10 +182,13 @@ static void 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;
- } else if (s->resample) {
- int comp = av_clip(delta, -s->max_comp, s->max_comp);
- av_log(ctx, AV_LOG_VERBOSE, "Compensating %d samples per second.\n", comp);
- avresample_set_compensation(s->avr, delta, inlink->sample_rate);
+ } else {
+ if (s->resample) {
+ int comp = av_clip(delta, -s->max_comp, s->max_comp);
+ av_log(ctx, AV_LOG_VERBOSE, "Compensating %d samples per second.\n", comp);
+ avresample_set_compensation(s->avr, delta, inlink->sample_rate);
+ }
+ delta = 0;
}
if (out_size > 0) {