diff utils.c @ 540:26a477a5ebda libavformat

move free() of AVStream priv data to av_write_trailer()
author michael
date Fri, 01 Oct 2004 16:30:15 +0000
parents 76c47c58064f
children be81a0f1974d
line wrap: on
line diff
--- a/utils.c	Fri Oct 01 16:00:00 2004 +0000
+++ b/utils.c	Fri Oct 01 16:30:15 2004 +0000
@@ -2094,13 +2094,13 @@
  * @return 0 if OK. AVERROR_xxx if error.  */
 int av_write_trailer(AVFormatContext *s)
 {
-    int ret;
+    int ret, i;
     
     for(;;){
         AVPacket pkt;
         ret= av_interleave_packet(s, &pkt, NULL, 1);
         if(ret<0) //FIXME cleanup needed for ret<0 ?
-            return ret;
+            goto fail;
         if(!ret)
             break;
         
@@ -2110,10 +2110,13 @@
         av_free_packet(&pkt);
         
         if(ret<0)
-            return ret; 
+            goto fail;
     }
 
     ret = s->oformat->write_trailer(s);
+fail:
+    for(i=0;i<s->nb_streams;i++)
+        av_freep(&s->streams[i]->priv_data);
     av_freep(&s->priv_data);
     return ret;
 }