Monty Montgomery
2009-Jun-25 17:10 UTC
[ogg-dev] Fixing ogg vorbis corruption caused by bad metadata
Vorbose -v reports the following for the beginning of the file:
INFO page: Capture pattern OggS, format version 0
Flags: first page of logical stream
Granule position: 0x0000000000000000
Stream serialno : 0x490f5cff
Sequence number : 0
Checksum : 0xee9c02b9
Total segments : 1
Total packets : 1 completed
( 30)
info header: Vorbis identification header parsed:
Stream version : 0
Output channels : 2
Output sample rate : 44100 Hz
Bitrate targets : unset/224000/unset
Block sizes : 256/2048 samples
WARN stream: 53638 bytes of garbage before page 1
info stream: All identification header pages parsed.
1 logical stream muxed in this link.
INFO page: Capture pattern OggS, format version 0
Flags: packet continued from previous page
Granule position: 0x0000000000000000
Stream serialno : 0x490f5cff
Sequence number : 13
Checksum : 0xab096acc
Total segments : 6
Total packets : 1 completed (1 cont)
(255, 255, 255, 255, 255, 113)
In short, this file's Ogg encapsulation is corrupt. There's no chance
of this being a vorbis_comment_add_tag() bug as that would be corrupt
data inside valid Ogg. The Ogg structure itself is invalid here.
Monty
Adam Rosi-Kessel
2009-Jun-25 17:54 UTC
[ogg-dev] Fixing ogg vorbis corruption caused by bad metadata
Monty Montgomery wrote, on 6/25/2009 1:10 PM:> Vorbose -v reports the following for the beginning of the file: > > INFO page: Capture pattern OggS, format version 0 > Flags: first page of logical stream > > Granule position: 0x0000000000000000 > Stream serialno : 0x490f5cff > Sequence number : 0 > Checksum : 0xee9c02b9 > Total segments : 1 > Total packets : 1 completed > ( 30) > > info header: Vorbis identification header parsed: > Stream version : 0 > Output channels : 2 > Output sample rate : 44100 Hz > Bitrate targets : unset/224000/unset > Block sizes : 256/2048 samples > > WARN stream: 53638 bytes of garbage before page 1 > > info stream: All identification header pages parsed. > 1 logical stream muxed in this link. > > INFO page: Capture pattern OggS, format version 0 > Flags: packet continued from previous page > > Granule position: 0x0000000000000000 > Stream serialno : 0x490f5cff > Sequence number : 13 > Checksum : 0xab096acc > Total segments : 6 > Total packets : 1 completed (1 cont) > (255, 255, 255, 255, 255, 113) > > In short, this file's Ogg encapsulation is corrupt. There's no chance > of this being a vorbis_comment_add_tag() bug as that would be corrupt > data inside valid Ogg. The Ogg structure itself is invalid here.Is there any way to understand exactly how it is invalid? I can replicate this corruption simply by adding large album art to any ogg file with the latest release of MediaMonkey. Adam
Monty Montgomery
2009-Jun-25 18:16 UTC
[ogg-dev] Fixing ogg vorbis corruption caused by bad metadata
> Is there any way to understand exactly how it is invalid? I can replicate > this corruption simply by adding large album art to any ogg file with the > latest release of MediaMonkey.The second page is corrupt. The basic structure looks correct, first guess would be bad checksum. I'll look more closely in just a bit. This might explain why some players might accept it--- if they're ignoring checksumming and error detection. Monty