[FFmpeg-devel] [PATCH] Fix memory leak in theora encoder
Art Clarke
aclarke
Mon Jul 6 23:58:24 CEST 2009
--
http://www.xuggle.com/
xu?ggle (z?' gl) v. To freely encode, decode, and experience audio and
video.
Use Xuggle to get the power of FFmpeg in Java.
-------------- next part --------------
Index: libavcodec/libtheoraenc.c
===================================================================
--- libavcodec/libtheoraenc.c (revision 19361)
+++ libavcodec/libtheoraenc.c (working copy)
@@ -150,6 +150,11 @@
if (concatenate_packet( &offset, avc_context, &o_packet ) != 0) {
return -1;
}
+ /* Clear up theora_comment struct before we reset the packet */
+ theora_comment_clear( &t_comment );
+ /* And despite documentation to the contrary, theora_comment_clear
+ * does not release the packet */
+ ogg_packet_clear(&o_packet);
/* Tables */
theora_encode_tables( &(h->t_state), &o_packet );
@@ -157,9 +162,6 @@
return -1;
}
- /* Clear up theora_comment struct */
- theora_comment_clear( &t_comment );
-
/* Set up the output AVFrame */
avc_context->coded_frame= avcodec_alloc_frame();
@@ -249,6 +251,10 @@
result = theora_encode_packetout( &(h->t_state), 1, &o_packet );
theora_clear( &(h->t_state) );
+ av_freep(&avc_context->coded_frame);
+ av_freep(&avc_context->extradata);
+ avc_context->extradata_size = 0;
+
switch (result) {
case 0:/* No packet is ready */
case -1:/* Encoding finished */
More information about the ffmpeg-devel
mailing list