[cvs-annodex] commit (/annodex):
libfishsound/branches/1.0-stable/src/libfishsound/vorbis.c
conrad
nobody at lists.annodex.net
Tue Aug 16 16:50:42 EST 2005
Update of /annodex (new revision 1431)
Modified files:
libfishsound/branches/1.0-stable/src/libfishsound/vorbis.c
Log Message:
libfishsound-stable: cleanup typesafety of vorbis decode / decode_ilv
Modified: libfishsound/branches/1.0-stable/src/libfishsound/vorbis.c
===================================================================
--- libfishsound/branches/1.0-stable/src/libfishsound/vorbis.c 2005-08-16 04:46:35 UTC (rev 1430)
+++ libfishsound/branches/1.0-stable/src/libfishsound/vorbis.c 2005-08-16 06:50:39 UTC (rev 1431)
@@ -111,7 +111,7 @@
{
FishSoundVorbisInfo * fsv = (FishSoundVorbisInfo *)fsound->codec_data;
ogg_packet op;
- float ** pcm, **retpcm;
+ float ** pcm;
long samples;
int ret;
@@ -146,12 +146,18 @@
vorbis_block_init (&fsv->vd, &fsv->vb);
}
} else {
+ FishSoundDecoded_FloatIlv df;
+ FishSoundDecoded_Float dfi;
+
if (vorbis_synthesis (&fsv->vb, &op) == 0)
vorbis_synthesis_blockin (&fsv->vd, &fsv->vb);
while ((samples = vorbis_synthesis_pcmout (&fsv->vd, &pcm)) > 0) {
vorbis_synthesis_read (&fsv->vd, samples);
+ if (fsound->frameno != -1)
+ fsound->frameno += samples;
+
if (fsound->interleave) {
if (samples > fsv->max_pcm) {
fsv->ipcm = realloc (fsv->ipcm, sizeof(float) * samples *
@@ -160,19 +166,13 @@
}
_fs_interleave (pcm, (float **)fsv->ipcm, samples,
fsound->info.channels, 1.0);
- retpcm = (float **)fsv->ipcm;
+
+ dfi = (FishSoundDecoded_FloatIlv)fsound->callback.decoded_float_ilv;
+ dfi (fsound, (float **)fsv->ipcm, samples, fsound->user_data);
} else {
- retpcm = pcm;
+ df = (FishSoundDecoded_Float)fsound->callback.decoded_float;
+ df (fsound, pcm, samples, fsound->user_data);
}
-
- if (fsound->frameno != -1)
- fsound->frameno += samples;
-
- if (fsound->callback.decoded_float) {
- ((FishSoundDecoded_Float)fsound->callback.decoded_float) (fsound,
- retpcm, samples,
- fsound->user_data);
- }
}
}
--
conrad
More information about the cvs-annodex
mailing list