GNOME Bugzilla – Bug 741783
qtmux: crash when trying to mux ALAC
Last modified: 2015-03-04 16:25:24 UTC
I'm trying to encode with ALAC codec, I think the pipeline should be something like "avenc_alac ! mp4mux", but it crashes GStreamer : [cerbero-linux-x86_64]:~/cerbero$ gst-launch-1.0 filesrc location=/tmp/blow.flac ! decodebin ! avenc_alac ! mp4mux ! filesink location=/tmp/blow.flac.m4a Setting pipeline to PAUSED ... Pipeline is PREROLLING ... (gst-launch-1.0:211): GStreamer-CRITICAL **: gst_buffer_extract: assertion 'dest != NULL' failed Caught SIGSEGV Spinning. Please run 'gdb gst-launch-1.0 211' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core. I've tested on Ubuntu 14.04, Fedora 21 and git gstreamer, same crash.
Thanks for taking the time to report this bug. Without a stack trace from the crash it's very hard to determine what caused it. Can you get us a stack trace? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance! You can also use G_DEBUG=fatal_criticals to get the stack trace at the moment of that assertion
Thanks for the bug report. Should be fixed in git master now: commit aa94fc6beb95ef6b811bec53696403fe47fa1f42 Author: Tim-Philipp Müller <tim@centricular.com> Date: Thu Dec 25 21:32:40 2014 +0000 qtmux: fix ALAC muxing Actually copy the codec data instead of copying nothing and then bombing out because there's no data. Fixes: gst-launch-1.0 audiotestsrc ! avenc_alac ! qtmux ! fakesink https://bugzilla.gnome.org/show_bug.cgi?id=741783
For the record, here's the stack trace: 0:00:00.471982545 9698 0x7fffec04d0a0 DEBUG qtmux gstqtmux.c:2669:gst_qt_mux_audio_sink_set_caps:<mp4mux0> mp4mux0:audio_0, caps=audio/x-alac, channels=(int)2, rate=(int)44100, channel-mask=(bitmask)0x0000000000000003, samplesize=(int)0, codec_data=(buffer)00000024616c616300000000000010000010280a0e02000000004004001588800000ac44 (gst-launch-1.0:9698): GStreamer-CRITICAL **: gst_buffer_extract: assertion 'dest != NULL' failed Program received signal SIGTRAP, Trace/breakpoint trap.
+ Trace 234453
Thread 140737250060032 (LWP 9704)
data->data was NULL because the codec_config GstBuffer had a length of 0, so nothing got allocated, and it was 0 because no data was copied because of flags=NONE passed to gst_buffer_copy_region().
*** Bug 745619 has been marked as a duplicate of this bug. ***