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