[vorbis-dev] Reading OGG embedded in a pack file - small patch to sdl_mixer and example file

Andre Krause post at andre-krause.net
Tue May 4 10:41:04 PDT 2004



Hello, i had the same problem , streaming oggs from an archive. I found a
very simple solution, just changing a little in sdl_mixer.
Look here:
http://www.videofiles.de/SDL_mixer_patch_ogg_streaming_from_sdlrwops.zip
The zip contains an example file using the great lib PHYSfs (
http://icculus.org/physfs/ ) for archive support. No need to bother with
seek - callbacks if you first extract the complete ogg into memory (ok, not
optimal, but who cares today about 2-5 megs less working mem) and then using
SDL_RWFromMem to create an rwops. The ogg then is streamed from mem using
sdl_mixer.

<p><p><p>        SDL_RWops * rw=NULL;

        //First thing you need to do is initialize the filesystem. reason:
linux needs this whyever..
        PHYSFS_init(argv[0]);
        // add the contents of myzip to the end of the "searchpath" (0 to
the front)
        PHYSFS_addToSearchPath("oggs.zip", 1); 
        PHYSFS_file* filehande;
        char* myBuf=NULL;
        if(PHYSFS_exists("test1.ogg"))
        {
                filehande=PHYSFS_openRead("test1.ogg");
                cerr << "\nfilelength:" << PHYSFS_fileLength(filehande);
                myBuf = new char[PHYSFS_fileLength(filehande)];
                int bytesread=PHYSFS_read (filehande, myBuf, sizeof(char),
PHYSFS_fileLength(filehande));
                cerr << "\nbytes read into mem:" << bytesread;
                rw = SDL_RWFromConstMem(myBuf,bytesread*sizeof(char));
                PHYSFS_close(filehande);
        }
        
        Mix_Music *music = Mix_LoadMUS_RW(rw);

<p>> -----Original Message-----
> From: owner-vorbis-dev at xiph.org 
> [mailto:owner-vorbis-dev at xiph.org] On Behalf Of Ken Rogoway
> Sent: Dienstag, 4. Mai 2004 18:53
> To: vorbis-dev at xiph.org
> Subject: Re: [vorbis-dev] Reading OGG embedded in a pack file
> 
> 
> > I'm the guy who did the fishmixer thing. It's a patch to SDL_mixer 
> > that replaces the ogg/vorbis loader with fishsound, letting 
> SDL_mixer 
> > load vorbis and speex. Since libfishsound doesn't provide a 
> pcm-total, 
> > and since I hate having to know pcm-total in advance anyway, the 
> > fishmixer patch grows the sound buffer as more samples come in.
> > 
> > So I make a buffer that's big enough without having to 
> allocate that 
> > buffer at the start. You might give it a look - since you're having 
> > trouble with pcm-total, just don't use it at all.
> 
> Thanks Daniel.  I will take a look at libfishsound.
> 
> - Ken
> 
> --- >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.
> 
> 

--- >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