Dear List, I'm just creating a little application for my openmoko freerunner, unfortunately in python, so that I have to use pyogg and pyvorbis(http://ekyo.nerim.net/software/pyogg/index.html) as wrappers around the C-functions and objects. I've got it all installed, after applying some patches and trying to run an example of encoding a wave-file I just get an empty ogg-file, the right header and so on, but no data has been written. The python-example is the following: _____________________________ #!/usr/bin/env python '''An example of encoding using the Python wave module''' import ogg.vorbis, wave fout = open('out.ogg', 'wb') inwav = wave.open('in.wav','rb') channels = inwav.getnchannels() vd = ogg.vorbis.VorbisInfo(channels = channels, rate = inwav.getframerate(), quality = 0.2).analysis_init() os = ogg.OggStreamState(5) map(os.packetin, vd.headerout()) og = os.flush() while og: og.writeout(fout) og = os.flush() nsamples = 1024 eos = 0 total = 0 while not eos: data = inwav.readframes(nsamples) total = total + nsamples if not data: vd.write(None) break vd.write_wav(data) #print 100.0 * total / inwav.getnframes() vb = vd.blockout() while vb: vb.analysis() vb.addblock() op = vd.bitrate_flushpacket() while op: os.packetin(op) while not eos: og = os.pageout() if not og: break og.writeout(fout) eos = og.eos() op = vd.bitrate_flushpacket() vb = vd.blockout() _________________________ Only knowing very few about C and just something about the vorbis-codec, I found that the problem occurs here: og = os.pageout() if not og: break no page is actually written, it returns None. And consequently it breaks. The wrapper-source says this: /* TODO: You can't keep a page between calls to flush or pageout!! */ static PyObject * py_ogg_stream_pageout(PyObject *self, PyObject *args) { ogg_page op; int res; if (!PyArg_ParseTuple(args, "")) return NULL; res = ogg_stream_pageout(PY_OGG_STREAM(self), &op); if (res == 0) { Py_INCREF(Py_None); return Py_None; } return py_ogg_page_from_page(&op); } And ogg_stream_pageout always returns 0, so, insufficent data has been accumulated to write a page. Can anyone help me and guess, where the fault may be. After all I've read this seems to be the right encoding procedure. So is it the python-wrapper? Is it the data I've been using (16Bit-Little Endian, 16000Hz, Mono wav-file) wrong? Thank you very much! Matthias