[theora] Cleaning app

Ralph Giles giles at xiph.org
Fri May 25 10:54:29 PDT 2007

On Fri, May 25, 2007 at 11:39:19AM +0100, Kostas Kostiadis wrote:

> yuv_buffer yuv;
> theora_decode_YUVout(&td,&yuv);
> I'm guessing a bunch of stuff gets newed/malloced for yuv.y, yuv.u, and
> yuv.u.

theora_decode_YUVout() fills out the yuv_buffer to point to internal 
storage inside td. So the pointers are only valid until the next call
to theora_decode_packetin(). Freeing the memory is the library's 
responsibility and happens when you call theora_clear().

If you're mantaining a decoded frame queue, you need to copy the 
referenced data, and then managing the copies is your responsibility.

theora_encode_YUVin() copies the data you pass in. In this cast it's
up to you to allocate/free the yuv.y, yuv.u and yuv.v buffers.


More information about the theora mailing list