diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-05-22 20:44:07 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-05-22 21:28:20 +0200 |
commit | f297dd3812510fc83080e265dc4534a3898005b0 (patch) | |
tree | e5563106f9f2415491fcd75bfb8c26e38692de82 /libavfilter | |
parent | 713548cbad4735d691ea286f23adfb67900e6700 (diff) | |
download | ffmpeg-f297dd3812510fc83080e265dc4534a3898005b0.tar.gz |
asyncts: reset delta to 0 when it's not used.
Fixes an invalid write.
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/af_asyncts.c | 11 |
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) { |