[vorbis-dev] vorbisfile ov_pack_pcm patch
John Morton
jwm at eslnz.co.nz
Mon May 12 20:30:43 PDT 2003
Here's a patch to vorbisfile.c in libvorbis that splits the float to integer
pcm packing out of ov_read into it's own function.
The good stuff:
- ov_pack_pcm can be used by folks who decode to float pcm with
ov_read_float to do various sound manipulations (eg, preamp, fades,
replaygain). No more need to roll your own, which will really begin to
pay off when 24 bit output gets implimented.
- ov_read is now implimented in terms of ov_read_float and ov_pack_pcm to
reduce code duplication.
- I've included patches against libvorbis-1.0 and the latest main branch CVS
- The api change is minimal enough that anything that uses libvorbisfile
will keep on working without need of a rebuild, after rebuilding libvorbis.
The not so good stuff:
- ov_read takes a minor performance hit from not doing the work inline. It
also ends up calculating bytespersample twice, in order to keep the
ov_pack_pcm call nice and consistant. Not that this will really matter, I
think.
- The patch has been tested against libvorbis-1.0, and certainly applies to
main branch CVS, but I haven't thoroughly tested that yet. If it doesn't
work, it's probably something cheesy.
- My C-fu is weak. I'm probably doing something dumb with float **pcm,
but I don't have a copy of K&R handy to bail me out. Do enlighten me if I'm
doing something silly :-)
John
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libvorbis-1.0-ov_pack_pcm.patch
Type: text/x-diff
Size: 6809 bytes
Desc: libvorbis-1.0-ov_pack_pcm.patch
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20030513/ca83b361/libvorbis-1.0-ov_pack_pcm-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libvorbis-cvs-ov_pack_pcm.patch
Type: text/x-diff
Size: 6769 bytes
Desc: libvorbis-cvs-ov_pack_pcm.patch
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20030513/ca83b361/libvorbis-cvs-ov_pack_pcm-0001.bin
More information about the Vorbis-dev
mailing list