[Vorbis] Fixing Ogg Vorbis files with incorrectly framed headers

Tristan Miller psychonaut at nothingisreal.com
Thu Jul 27 19:18:42 UTC 2017


Greetings.

Possibly as the result of buggy tagging software, several hundred of my
Ogg Vorbis files exhibit the following warning when examined by ogginfo:

WARNING: Vorbis stream 1 does not have headers correctly framed.
Terminal header page contains additional packets or has non-zero
granulepos

Nonetheless, most media players can play these files without any
problem.  A notable exception is any player using the recently released
GStreamer 1.12.1 (see
<https://bugzilla.gnome.org/show_bug.cgi?id=784530>).  In fact, even
though my files were corrupted several years ago, I hadn't noticed
this until a few weeks ago when I upgraded GStreamer to the latest
version.

Can anyone advise me how I can fix my files short of re-encoding them?
I already tried using vorbiscomment to extract and then re-apply the
tags to the file.  In this case ogginfo no longer issues any warning
about the file, but GStreamer applications still refuse to play it, as
the following example demonstrates.  A sample corrupted file can be
obtained at <https://bugzilla.gnome.org/attachment.cgi?id=354903>.

$ ogginfo somefile.ogg
Processing file "somefile.ogg"...

New logical stream (#1, serial: 34778229): type vorbis
WARNING: Vorbis stream 1 does not have headers correctly framed.
Terminal header page contains additional packets or has non-zero
granulepos Vorbis headers parsed for stream 1, information follows...
Version: 0 Vendor: Xiph.Org libVorbis I 20040629 (1.1.0)
Channels: 2
Rate: 44100
[…]

$ gst-play-1.0 somefile.ogg
Press 'k' to see a list of keyboard shortcuts.
Now playing /tmp/somefile.ogg
ERROR Could not decode stream. for file:///tmp/somefile.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.

$ vorbiscomment --list  --raw --escapes somefile.ogg >somefile.txt

$ vorbiscomment --write --raw --escapes somefile.ogg <somefile.txt

$ ogginfo somefile.ogg || echo "File has warnings"

$ gst-play-1.0 somefile.ogg
Press 'k' to see a list of keyboard shortcuts.
Now playing /tmp/somefile.ogg
ERROR Could not decode stream. for file:///tmp/somefile.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.

Regards,
Tristan

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                  Tristan Miller
Free Software developer, ferret herder, logologist
             https://logological.org/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.xiph.org/pipermail/vorbis/attachments/20170727/eb112f02/attachment.sig>


More information about the Vorbis mailing list