mirror of https://git.ffmpeg.org/ffmpeg.git
ffplay: dont leave swresampler in half initialized state
On init failure, let's just free it, so next time it will be recreated from start. Also fixes Coverity CID 1241515. Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
8c6992bf0c
commit
ce928d7d2b
4
ffplay.c
4
ffplay.c
|
@ -2419,6 +2419,7 @@ static int audio_decode_frame(VideoState *is)
|
|||
"Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n",
|
||||
is->frame->sample_rate, av_get_sample_fmt_name(is->frame->format), av_frame_get_channels(is->frame),
|
||||
is->audio_tgt.freq, av_get_sample_fmt_name(is->audio_tgt.fmt), is->audio_tgt.channels);
|
||||
swr_free(&is->swr_ctx);
|
||||
break;
|
||||
}
|
||||
is->audio_src.channel_layout = dec_channel_layout;
|
||||
|
@ -2454,7 +2455,8 @@ static int audio_decode_frame(VideoState *is)
|
|||
}
|
||||
if (len2 == out_count) {
|
||||
av_log(NULL, AV_LOG_WARNING, "audio buffer is probably too small\n");
|
||||
swr_init(is->swr_ctx);
|
||||
if (swr_init(is->swr_ctx) < 0)
|
||||
swr_free(&is->swr_ctx);
|
||||
}
|
||||
is->audio_buf = is->audio_buf1;
|
||||
resampled_data_size = len2 * is->audio_tgt.channels * av_get_bytes_per_sample(is->audio_tgt.fmt);
|
||||
|
|
Loading…
Reference in New Issue