[vorbis-dev] Problem with 'ov_open'...
Michael Smith
msmith at xiph.org
Mon Feb 9 17:19:20 PST 2004
On Tuesday 10 February 2004 06:49, Ryan Ashley wrote:
> Hey, I've coded an OGG player for Win32 (it uses AL for playback so it's
> portable to Linux/Mac), but every time the program gets to the 'ov_open()'
> function, the app completely freezes, and I have to use the task-manager to
> kill it. I am supplying it with a valid file handle that was just opened
> (FILE*) and the vorbis file is also a pointer that is not in use (set to
> null). Any ideas why this is happenening? Here is my actual source.
>
> FILE *SoundFile;
> OggVorbis_File *OVFile;
This is wrong, you only have a pointer to the struct here, no actual struct.
So you need to allocate some storage for it. You can stack-allocate this with
OggVorbis_File OvFile;
>
> if(SoundFile != NULL)
> CloseOGG();
This is wrong, you haven't opened the file yet - you need to do this later
(after the fopen()).
>
> if((SoundFile = fopen(Filename, "rb")) == NULL)
> return false;
>
> if((ov_open(SoundFile, OVFile, NULL, 0)) < 0)
> return false;
And here, you need to actually pass a pointer to an OggVorbis_File, not just a
pointer that doesn't point to anything at all. Given the suggestion above,
this becomes:
if((ov_open(SoundFile, &OVFile, NULL, 0)) < 0)
return false;
>
> I've put debug messages that my log-class logs, and it logs everything just
> fine up to the ov_open() check, then nothing.
Why it's hanging here I don't know - given your code, I'd expect it to just
crash. Perhaps Jon's suggestion that you're using the wrong libraries is
correct? Also, make sure you have version 1.0.1 of the libraries - version
1.0 had some bugs that could, for certain unusual streams (mostly very short
ones, i think) cause some hangs.
Mike
<p>--- >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 at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the Vorbis-dev
mailing list