summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-10-03 18:25:35 +0100
committerSebastian Dröge <sebastian@centricular.com>2015-10-05 12:15:44 +0100
commit4d1a6a0896ba25e8d88fca179222ae54d7e0efc8 (patch)
tree9a81b567c8a74dd5eb21db02ed84884a5fe9d678
parentba101f919f6c37aa553400d258f08f3ff78952b9 (diff)
downloadgst-libav-4d1a6a0896ba25e8d88fca179222ae54d7e0efc8.tar.gz
avcodecmap: Don't allocate dummy codec data anymore, it causes crashes nowadays
Multithreaded encoders are going to free this dummy codec data twice, e.g. with this pipeline gst-launch-1.0 videotestsrc num-buffers=40 ! \ videoconvert ! avenc_mjpeg ! fakesink
-rw-r--r--ext/libav/gstavcodecmap.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c
index 23bf04e..126919e 100644
--- a/ext/libav/gstavcodecmap.c
+++ b/ext/libav/gstavcodecmap.c
@@ -2967,12 +2967,8 @@ gst_ffmpeg_caps_with_codecid (enum AVCodecID codec_id,
GST_DEBUG ("have codec data of size %" G_GSIZE_FORMAT, map.size);
gst_buffer_unmap (buf, &map);
- } else if (context->extradata == NULL && codec_id != AV_CODEC_ID_AAC_LATM &&
- codec_id != AV_CODEC_ID_FLAC) {
- /* no extradata, alloc dummy with 0 sized, some codecs insist on reading
- * extradata anyway which makes then segfault. */
- context->extradata =
- av_mallocz (GST_ROUND_UP_16 (FF_INPUT_BUFFER_PADDING_SIZE));
+ } else {
+ context->extradata = NULL;
context->extradata_size = 0;
GST_DEBUG ("no codec data");
}