Browse Source

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>
tags/n3.4
hexpointer Michael Niedermayer 7 years ago
parent
commit
3fa8f263ab
1 changed files with 4 additions and 3 deletions
  1. +4
    -3
      libswresample/swresample_frame.c

+ 4
- 3
libswresample/swresample_frame.c View File

@@ -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);


Loading…
Cancel
Save