On Monday 15 December 2003 17:18, John Morton wrote:> I've been playing around with using ov_test and ov_test_open as an
> alternative to ov_open in the xmms plugin's vorbis_check_file function.
> xmms never bothers to cache the result of a file check, so it tends to
> happen rather a lot. Unfortunately ov_test_open returns OV_EINVAL because
> ov_test seems to have left vf->ready_state to OPEN rather than PARTOPEN.
>
> I'm presuming this is a bug in libvorbisfile-1.0 - has it been fixed in
> 1.0.1?
There were a lot of vorbisfile bugs fixed between 1.0 and 1.0.1 - you could
try checking bugzilla if you want to be sure, but it might just be easier to
try the newer library. This does sound like one of the bugs fixed, though.
>
> On another matter, what would be the best way to find out if a given
> logical stream is valid vorbis? ov_test and ov_open will fail if the first
> stream isn't vorbis (bit of a pain, that, as subsequant streams could
be
> vorbis. Not way to work around it without abandoning libvorbisfile, I
> think). I've tried checking for ov_info returning NULL on the remaining
> streams but it returns a struct packed with nonsense anyway. Any better
> solutions?
<p>Vorbisfile deliberately only supports degenerate ogg vorbis streams
(physical
ogg bitstreams with no multiplexing and where all logical ogg bitstreams are
vorbis). So you shouldn't really expect ov_open() to successfully open it
unless all the streams are valid vorbis. In some cases, it might do so - but
you should definately NOT rely on this behaviour.
Don't use vorbisfile at all if you're trying to deal with multiplexed
ogg
streams (but be prepared to deal with a lot of complexity if you want to
implement seeking). Vorbis I players are only required (and really only
expected, since this is all vorbisfile supports) to support degenerate ogg
vorbis streams.
Mike
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to
'vorbis-dev-request@xiph.org'
containing only the word 'unsubscribe' in the body. No subject is
needed.
Unsubscribe messages sent to the list will be ignored/filtered.