[vorbis-dev] decoder_example -- event driven?
Wayne F Davis
wfdavis at seas.upenn.edu
Thu Apr 5 22:58:12 PDT 2001
I'm trying to adapt decoder_example to to support more of an event driven
model. I'm building an RTSP client/server where the client will have a
function called everytime a new packet comes in. So, I want to queue
up these packets to be played.
My current attack is as follows (note this isn't very robust and I
For first and second packet i grab all the header stuff in the same way
as decoder_example. From the third packet on, I send it to a bunch of
bytes = 4096;
buffer = memcpy (buffer, data, bytes);
ogg_stream_pagein(&os,&og); /* can safely ignore errors at
this point */
/* we have a packet. Decode it */
if(vorbis_synthesis(&vb,&op)==0) /* test for success! */
**pcm is a multichannel float vector. In stereo, for
example, pcm is left, and pcm is right. samples is
the size of each channel. Convert the float values
(-1.<=range<=1.) to whatever PCM format and write it out */
"\nhoebag, i made it the while loop");
/* convert floats to 16 bit signed ints (host order) and
#else /* optional dither */
/* might as well guard against clipping */
fprintf(stderr,"Clipping in frame %ld\n",(long)(vd.sequence));
write (mywav, convbuffer, 2*vi.channels*bout);
vorbis_synthesis_read(&vd,bout); /* tell libvorbis how
many samples we
actually consumed */
So, the first packets come in fine because I can retrieve the title, etc
properly. All of the packets come in correctly because I write them out
to disk and it is the same file as the original file. However, when I put
the packets through the above code, I lose a lot of information and the
mywav file is a small portion of what it should be.
If anyone has some ideas how I can solve this problem, I would appreciate
Wayne Davis - wfdavis at seas.upenn.edu - PGP Key Available
--- >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