summaryrefslogtreecommitdiff
path: root/avconv.c
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2016-07-25 15:04:02 +0200
committerDiego Biurrun <diego@biurrun.de>2016-07-27 10:59:48 +0200
commite46a6fb7732a7caef97a916a4f765ec0f779d195 (patch)
treeb5c51d2ab3244e75be209626281a3e0bd2bc0b21 /avconv.c
parent100fb0ddfda958da70f98feac81f924c02483789 (diff)
avconv: Check that muxing_queue exists before reading from it
This avoids a segfault on nonexisting codec names.
Diffstat (limited to 'avconv.c')
-rw-r--r--avconv.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/avconv.c b/avconv.c
index 57c02ac4fc..43d67e8d17 100644
--- a/avconv.c
+++ b/avconv.c
@@ -203,13 +203,15 @@ static void avconv_cleanup(int ret)
avcodec_free_context(&ost->enc_ctx);
- while (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_log(NULL, AV_LOG_INFO, "after av_fifo_size()\n");
+ av_fifo_generic_read(ost->muxing_queue, &pkt, sizeof(pkt), NULL);
+ av_packet_unref(&pkt);
+ }
+ av_fifo_free(ost->muxing_queue);
}
- av_fifo_free(ost->muxing_queue);
-
av_freep(&output_streams[i]);
}
for (i = 0; i < nb_input_files; i++) {