After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 679437 - [0.11] [riff] fails to parse audio codec data
[0.11] [riff] fails to parse audio codec data
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.11.x
Other Linux
: Normal critical
: 0.11.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-07-05 09:26 UTC by Jason Gerard DeRose
Modified: 2012-07-06 13:25 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jason Gerard DeRose 2012-07-05 09:26:27 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
Comment 1 Tim-Philipp Müller 2012-07-05 12:10:50 UTC
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.

Thread 140737251608320 (LWP 32639)

  • #0 g_logv
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmessages.h line 101
  • #1 g_log
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmessages.c line 792
  • #2 g_return_if_fail_warning
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmessages.c line 801
  • #3 gst_base_parse_finish_frame
    at gstbaseparse.c line 2153
  • #4 gst_aac_parse_handle_frame
    at gstaacparse.c line 1047
  • #5 gst_base_parse_handle_buffer
    at gstbaseparse.c line 1775
  • #6 gst_base_parse_chain
    at gstbaseparse.c line 2598
  • #7 gst_pad_chain_data_unchecked
    at gstpad.c line 3599
  • #8 gst_pad_push_data
    at gstpad.c line 3814
  • #9 gst_pad_push
    at gstpad.c line 3917
  • #10 gst_single_queue_push_one
    at gstmultiqueue.c line 1065
  • #11 gst_multi_queue_loop
    at gstmultiqueue.c line 1311
  • #12 gst_task_func
    at gsttask.c line 316
  • #13 g_thread_pool_thread_proxy
    at /tmp/buildd/glib2.0-2.32.3/./glib/gthreadpool.c line 309
  • #14 g_thread_proxy
    at /tmp/buildd/glib2.0-2.32.3/./glib/gthread.c line 801
  • #15 start_thread
    at pthread_create.c line 304
  • #16 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #17 ??

Comment 2 Mark Nauwelaerts 2012-07-06 13:25:55 UTC
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.