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 788416 - GStreamer no longer plays Vorbis files with invalid packets
GStreamer no longer plays Vorbis files with invalid packets
Status: RESOLVED DUPLICATE of bug 784530
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.12.2
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-10-02 08:24 UTC by Tristan Miller
Modified: 2017-12-15 08:17 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Vorbis file with invalid packet (152.42 KB, video/ogg)
2017-10-02 08:26 UTC, Tristan Miller
Details

Description Tristan Miller 2017-10-02 08:24:53 UTC
After a recent update (probably from GStreamer 1.12.0 to 1.12.1) GStreamer-based media players no longer play many of my Ogg Vorbis files.  An example, with the attached foo.ogg:

$ gst-play-1.0 foo.ogg
Press 'k' to see a list of keyboard shortcuts.
Now playing /tmp/foo.ogg
ERROR Could not decode stream. for file:///tmp/foo.ogg
ERROR debug information: gstvorbisdec.c(352): vorbis_handle_header_packet (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstVorbisDec:vorbisdec0:
couldn't read header packet (-132)
Reached end of play list.

ogginfo doesn't report any problems with the file, but FFmpeg does:

$ ffmpeg -v error -i foo.ogg -f null -
[Vorbis parser @ 0x55de9d387700] Invalid packet

Despite this, FFmpeg-based players can still play the file.

I suppose that if the Vorbis files aren't to spec, then technically it's OK for GStreamer to fail.  But it had been playing them perfectly and without complaint for the last 15 years, so it's a bit annoying that it's suddenly refusing to play them now.  Is there any chance that the old behaviour could be restored, so that GStreamer at least *attempts* to play the Vorbis files rather than failing outright?

This problem may be related to Bug 784530, which is about GStreamer refusing to play Vorbis streams with a different kind of corruption.
Comment 1 Tristan Miller 2017-10-02 08:26:50 UTC
Created attachment 360740 [details]
Vorbis file with invalid packet
Comment 2 Tristan Miller 2017-12-14 21:19:12 UTC
git-bisect indicates that the problem was introduced on Thu Feb 9 12:44:51 2017 +0000 in commit b95725c37e70ad3c1ec8dadb401388db375df482.  This is the same commit that triggered the behaviour described in Bug 784530.  The commit message was as follows:

>    vorbisdec: reset decoder on vorbis headers update
>    
>    if the vorbis encoder receives new headers it must be
>    reset and re-initialized to continue decoding, e. g.
>    for live streams

Commit details: https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=b95725c37e70ad3c1ec8dadb401388db375df482
Comment 3 Sebastian Dröge (slomo) 2017-12-15 08:17:30 UTC
Let's close it as a duplicate of the other one then. Same problem really.

*** This bug has been marked as a duplicate of bug 784530 ***