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 662108 - Assertion in base audio decoder when decoding vorbis
Assertion in base audio decoder when decoding vorbis
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal critical
: 0.10.36
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-10-18 16:18 UTC by Vincent Penquerc'h
Modified: 2011-10-19 14:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
log of the failing command (10.84 KB, application/x-bzip)
2011-10-18 16:20 UTC, Vincent Penquerc'h
  Details
vorbisdec: only finish header packet frame if received in-stream (1.17 KB, patch)
2011-10-18 19:44 UTC, Mark Nauwelaerts
committed Details | Review
vorbisdec: do not try to read past the buffer array (896 bytes, patch)
2011-10-19 14:30 UTC, Vincent Penquerc'h
committed Details | Review

Description Vincent Penquerc'h 2011-10-18 16:18:54 UTC
$ gst-launch filesrc location=test.ogg ! oggdemux ! 'audio/x-vorbis' ! oggmux ! oggdemux ! vorbisdec ! audioconvert ! alsasink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
**
ERROR:gstaudiodecoder.c:759:gst_audio_decoder_finish_frame: code should not be reached
Aborted (core dumped)


Not doing the remux works:

$ gst-launch filesrc location=test.ogg ! oggdemux ! 'audio/x-vorbis'  ! vorbisdec ! audioconvert ! alsasink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
^CCaught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 1997285076 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
Comment 1 Vincent Penquerc'h 2011-10-18 16:20:28 UTC
Created attachment 199346 [details]
log of the failing command
Comment 2 Mark Nauwelaerts 2011-10-18 19:44:27 UTC
Created attachment 199361 [details] [review]
vorbisdec: only finish header packet frame if received in-stream

Ah, having an assert there caught some minor bug in vorbisdec.

Attached patch should take care of that.
Comment 3 Vincent Penquerc'h 2011-10-19 14:30:05 UTC
Created attachment 199439 [details] [review]
vorbisdec: do not try to read past the buffer array
Comment 4 Vincent Penquerc'h 2011-10-19 14:30:44 UTC
Above patch is also needed for the pipeline in first post.
Comment 5 Mark Nauwelaerts 2011-10-19 14:56:04 UTC
commit 1f900dc20d2d74a7255f7aeab2304bbed3a7c45c
Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Date:   Wed Oct 19 15:28:44 2011 +0100

    vorbisdec: do not try to read past the buffer array
    
    https://bugzilla.gnome.org/show_bug.cgi?id=662108

commit 43928e33e6ec9817c9c8ef3e289442b646508168
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Tue Oct 18 21:40:54 2011 +0200

    vorbisdec: only finish header packet frame if received in-stream
    
    ... rather than scaring audiodecoder with a frame extracted from caps.
    
    Fixes #662108 (partially).