diff --git a/ffmpeg.c b/ffmpeg.c index f9fadbd9f2..63fc1bc5f4 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -555,12 +555,14 @@ static void ffmpeg_cleanup(int ret) avcodec_free_context(&ost->enc_ctx); avcodec_parameters_free(&ost->ref_par); - while (ost->muxing_queue && av_fifo_size(ost->muxing_queue)) { - AVPacket pkt; - av_fifo_generic_read(ost->muxing_queue, &pkt, sizeof(pkt), NULL); - av_packet_unref(&pkt); + if (ost->muxing_queue) { + while (av_fifo_size(ost->muxing_queue)) { + AVPacket pkt; + av_fifo_generic_read(ost->muxing_queue, &pkt, sizeof(pkt), NULL); + av_packet_unref(&pkt); + } + av_fifo_freep(&ost->muxing_queue); } - av_fifo_freep(&ost->muxing_queue); av_freep(&output_streams[i]); }