[Vorbis-dev] Skipping of sample in ogg writing
charan
charan.dsouza at creativegenius.co.in
Fri Dec 11 20:23:10 PST 2009
Hi All,
I m having a strange problem with the Ogg-Vorbis writting code. The code
I m using to write is skipping some samples at the end of the file. For
example I m converting the 10000 sample .wav file ( 441000 sample rate ,
16 bit depth , stereo ) to ogg format. But while reading the ogg file I
only find 5824 samples in the ogg file. Can any one suggest what could
be wrong in the code. Is there anything like bug in ogg itself or am I
missing something critical step.
Here is the code for writing the ogg file.
//==============================================================================
bool write (const int** samplesToWrite, int numSamples)
{
if (numSamples > 0)
{
float** const vorbisBuffer = vorbis_analysis_buffer (&vd,
numSamples);
for (int i = numChannels; --i >= 0;)
{
float* const dst = vorbisBuffer[i];
const int* const src = samplesToWrite [i];
if (src != 0 && dst != 0)
{
for (int j = 0; j < numSamples; ++j)
dst[j] = (float) src[j];
}
}
}
vorbis_analysis_wrote (&vd, numSamples);
while (vorbis_analysis_blockout (&vd, &vb) == 1)
{
vorbis_analysis (&vb, 0);
vorbis_bitrate_addblock (&vb);
while (vorbis_bitrate_flushpacket (&vd, &op))
{
ogg_stream_packetin (&os, &op);
for (;;)
{
if (ogg_stream_pageout (&os, &og) == 0)
break;
mywrite (og.header, og.header_len);
mywrite (og.body, og.body_len);
if (ogg_page_eos (&og))
break;
}
}
}
return true;
}
//==============================================================================
Thanks and Regards,
Charan D'Souza
More information about the Vorbis-dev
mailing list