On Thu, Feb 16, 2006 at 03:25:07PM +0000, Ian Malone wrote:> (You really don't want to know this I'm sure) > I gave this a go this morning on the samples from > <http://wiki.xiph.org/index.php/Metadata>, which > are there mainly for the purpose of breaking things. > They don't validate (which neither surprises nor upsets > me), but I downloaded the oggz source and built oggz-validate > to find out why and discovered that it segfaults, which it > probably shouldn't (I didn't have time to look into the cause). > As far as I know they are valid ogg bitstreams (ogginfo passes > them okay), even if the contents aren't proper media types.ok, I did know that oggz-validate only passes things which are known media types (currently it knows about Vorbis, Theora, Speex, Flac, CMML, OggPCM(draft2) and Skeleton). I guess this is because the original reason for oggz-validate was to check interleaving order, for which it needs to be able to interpret granulepos. It's probably worth adding an option to disable those checks and only check the bitstream packing.> On a completely irrelevant point, are the Annodex people > aware of <http://www.songbirdnest.com/>? This is going > to be an itunes-like media player/web browser built around > XULRunner. From their website: "Songbird can view Web > pages as dynamic playlists that it can play, save, or > automatically download every day."very cool :) Conrad.
Conrad Parker wrote:> On Thu, Feb 16, 2006 at 03:25:07PM +0000, Ian Malone wrote: > >>(You really don't want to know this I'm sure) >>I gave this a go this morning on the samples from >><http://wiki.xiph.org/index.php/Metadata>, which >>are there mainly for the purpose of breaking things. >>They don't validate (which neither surprises nor upsets >>me), but I downloaded the oggz source and built oggz-validate >>to find out why and discovered that it segfaults, which it >>probably shouldn't (I didn't have time to look into the cause). >>As far as I know they are valid ogg bitstreams (ogginfo passes >>them okay), even if the contents aren't proper media types. > > > ok, I did know that oggz-validate only passes things which are known > media types (currently it knows about Vorbis, Theora, Speex, Flac, CMML, > OggPCM(draft2) and Skeleton). I guess this is because the original > reason for oggz-validate was to check interleaving order, for which it > needs to be able to interpret granulepos. It's probably worth adding an > option to disable those checks and only check the bitstream packing. > >I think it's simpler than that: /src/tools/oggz-validate.c Line 176, the return value of ot_page_identify is not checked before being handed to strcmp. Inserting a check for a valid pointer seems to fix it, the multi-xml packet streams then give a string of: 00:00:00.002: serialno 1044457395: Packet out of order (previous 00:00:00.944) errors, which is as it should be since the granulepos of the xml packets is nonsensical. (Monotonically increasing, but nonsensical, the aim of those streams is testing that applications can ignore them for seeking.) -- imalone
On Thu, Feb 16, 2006 at 09:15:29PM +0000, Ian Malone wrote:> > I think it's simpler than that: > /src/tools/oggz-validate.c > Line 176, the return value of ot_page_identify is not checked before > being handed to strcmp. > > Inserting a check for a valid pointer seems to fix it, the multi-xml > packet streams then give a string of: > 00:00:00.002: serialno 1044457395: Packet out of order (previous > 00:00:00.944) > errors, which is as it should be since the granulepos of the xml > packets is nonsensical. (Monotonically increasing, but nonsensical, > the aim of those streams is testing that applications can ignore them > for seeking.)Hi Ian, sorry, I missed the word "segfault" in your previous email :) In my defence, I'd only just woken up and not had coffee yet. I've committed the fix you suggested (changeset:2065) and also audited the same problem in the other tools (changeset:2066), though there it only happens if you were filtering on content type (eg. you try to do "oggzdump -c vorbis" on one of those streams, to dump only the vorbis). It's 9am and there's an empty coffee cup next to me, which I don't at all recall drinking. cheers, Conrad.