GNOME Bugzilla – Bug 679437
[0.11] [riff] fails to parse audio codec data
Last modified: 2012-07-06 13:25:55 UTC
Trying to play an AVI file with playbin using the 0.11.92 backported packages in Ubuntu Precise (64bit) I get this error: ** (video-player-1.0:28911): CRITICAL **: gst_base_parse_finish_frame: assertion `size > 0 || frame->out_buffer' failed on_error(): (GError('Internal data stream error.',), 'gstavidemux.c(5224): gst_avi_demux_loop (): /GstPipeline:pipeline0/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstAviDemux:avidemux0:\nstreaming stopped, reason error') This 164MB video is one that triggers it (md5 83afebedc42ab66a65068609c724ce8d): http://cdn.novacut.com/Jon_Masters.avi The AVIs I have that trigger this were rendered by PiTiVi, but that's just what I have handy to test with. Not sure if some quirk with these files is the issue, or if this is a general avidemux problem. `gst-launch-1.0 filesrc ! decodebin ! fakesink` is enough to trigger this, and this is the code I first discovered it with: http://bazaar.launchpad.net/~jderose/+junk/gst-examples/view/head:/video-player-1.0
Still an issue with git master: 0:00:01.520183186 32633 0x7fffec002de0 LOG baseparse gstbaseparse.c:1732:gst_base_parse_prepare_frame:<aacparse0> marking as new frame 0:00:01.520195268 32633 0x7fffec002de0 DEBUG aacparse gstaacparse.c:708:gst_aac_parse_detect_stream:<aacparse0> Parsing header data 0:00:01.520206792 32633 0x7fffec002de0 DEBUG aacparse gstaacparse.c:723:gst_aac_parse_detect_stream:<aacparse0> Found ADIF signature at offset 0 0:00:01.520218456 32633 0x7fffec002de0 INFO aacparse gstaacparse.c:746:gst_aac_parse_detect_stream: ADTS ID: 0, framesize: 0 0:00:01.520231935 32633 0x7fffec002de0 LOG baseparse gstbaseparse.c:3212:gst_base_parse_set_frame_rate:<aacparse0> estimated update interval to 140 frames 0:00:01.520244227 32633 0x7fffec002de0 LOG baseparse gstbaseparse.c:3216:gst_base_parse_set_frame_rate:<aacparse0> set fps: 96000/1024 => duration: 10 ms 0:00:01.520256589 32633 0x7fffec002de0 LOG baseparse gstbaseparse.c:3220:gst_base_parse_set_frame_rate:<aacparse0> set lead in: 2 frames = 21 ms, lead out: 2 frames = 21 ms 0:00:01.520268811 32633 0x7fffec002de0 DEBUG aacparse gstaacparse.c:756:gst_aac_parse_detect_stream: ADTS: samplerate 96000, channels 0, objtype 0, version 4 0:00:01.529807734 32633 0x7fffec002de0 INFO baseparse gstbaseparse.c:3256:gst_base_parse_set_syncable:<aacparse0> syncable: yes 0:00:01.529833994 32633 0x7fffec002de0 LOG aacparse gstaacparse.c:983:gst_aac_parse_handle_frame:<aacparse0> rate: 96000, chans: 0 0:00:01.529846914 32633 0x7fffec002de0 DEBUG aacparse gstaacparse.c:990:gst_aac_parse_handle_frame:<aacparse0> here 0:00:01.529858578 32633 0x7fffec002de0 DEBUG aacparse gstaacparse.c:172:gst_aac_parse_set_src_caps:<aacparse0> sink caps: (NULL) 0:00:01.529912217 32633 0x7fffec002de0 DEBUG aacparse gstaacparse.c:206:gst_aac_parse_set_src_caps:<aacparse0> setting src caps: audio/mpeg, framed=(boolean)true, mpegversion=(int)4, rate=(int)96000, stream-format=(string)adts 0:00:01.530081652 32633 0x7fffec002de0 DEBUG baseparse gstbaseparse.c:1189:gst_base_parse_src_event:<aacparse0> event 61441, reconfigure 0:00:01.532600826 32633 0x7fffec002de0 DEBUG baseparse gstbaseparse.c:1189:gst_base_parse_src_event:<aacparse0> event 61441, reconfigure 0:00:01.532654604 32633 0x7fffec002de0 DEBUG baseparse gstbaseparse.c:1189:gst_base_parse_src_event:<aacparse0> event 61441, reconfigure 0:00:01.543664595 32633 0x7fffec002de0 LOG baseparse gstbaseparse.c:3344:gst_base_parse_src_query:<aacparse0> handling query: GstQueryCaps, filter=(GstCaps)NULL, caps=(GstCaps)NULL; 0:00:01.543720887 32633 0x7fffec002de0 DEBUG baseparse gstbaseparse.c:1189:gst_base_parse_src_event:<aacparse0> event 61441, reconfigure 0:00:01.543922938 32633 0x7fffec002de0 LOG baseparse gstbaseparse.c:3216:gst_base_parse_set_frame_rate:<aacparse0> set fps: 96000/1024 => duration: 10 ms 0:00:01.543941097 32633 0x7fffec002de0 LOG baseparse gstbaseparse.c:3220:gst_base_parse_set_frame_rate:<aacparse0> set lead in: 2 frames = 21 ms, lead out: 2 frames = 21 ms ** (gst-launch-1.0:32633): CRITICAL **: gst_base_parse_finish_frame: assertion `size > 0 || frame->out_buffer' failed Program received signal SIGTRAP, Trace/breakpoint trap.
+ Trace 230472
Thread 140737251608320 (LWP 32639)
Problem due to avidemux not providing codec_data in caps (and so aacparse is left trying to parse raw aac data), which is due to a glitch in riff porting, fixed by following commit: commit 713b80f1913e78dae795c2f1732c38c86a72825a Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Fri Jul 6 14:57:51 2012 +0200 riff: fixup 0.11 port mishap in reading extra data length field Fixes #679437.