Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhexpointer <hexptr@gmx.com>2017-07-07 12:54:47 +0300
committerMichael Niedermayer <michael@niedermayer.cc>2017-07-08 19:13:43 +0300
commit3fa8f263abf90650b62d43cb532cdb8cc5bd7c13 (patch)
tree96b3024d86b47a54a8ef9eb8707e4ad2f5d84b16 /libswresample/swresample_frame.c
parent01e545d04680d6398e85eb1b6d937b608b3f72a2 (diff)
libswresample: check input to swr_convert_frame for NULL
When 'out' is an AVFrame that does not have buffers preallocated, swr_convert_frame tries to allocate buffers of the right size. However in calculating this size it failed to check for whether 'in' is NULL (requesting that swr's internal buffers are to be flushed). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libswresample/swresample_frame.c')
-rw-r--r--libswresample/swresample_frame.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libswresample/swresample_frame.c b/libswresample/swresample_frame.c
index 71d3ed711a..2853266d6c 100644
--- a/libswresample/swresample_frame.c
+++ b/libswresample/swresample_frame.c
@@ -139,9 +139,10 @@ int swr_convert_frame(SwrContext *s,
if (out) {
if (!out->linesize[0]) {
- out->nb_samples = swr_get_delay(s, s->out_sample_rate)
- + in->nb_samples*(int64_t)s->out_sample_rate / s->in_sample_rate
- + 3;
+ out->nb_samples = swr_get_delay(s, s->out_sample_rate) + 3;
+ if (in) {
+ out->nb_samples += in->nb_samples*(int64_t)s->out_sample_rate / s->in_sample_rate;
+ }
if ((ret = av_frame_get_buffer(out, 0)) < 0) {
if (setup)
swr_close(s);