OSDN Git Service

* fixing a memory leak in DV format.
authorBrian Brice <bbrice@gmail.com>
Wed, 8 Nov 2006 18:57:02 +0000 (18:57 +0000)
committerRoman Shaposhnik <roman@shaposhnik.org>
Wed, 8 Nov 2006 18:57:02 +0000 (18:57 +0000)
    Patch by Brian Brice bbrice at newtek dot com

Originally committed as revision 6945 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/dvenc.c

index 5555144..79cee7a 100644 (file)
@@ -279,7 +279,7 @@ int dv_assemble_frame(DVMuxContext *c, AVStream* st,
 
 DVMuxContext* dv_init_mux(AVFormatContext* s)
 {
-    DVMuxContext *c;
+    DVMuxContext *c = (DVMuxContext *)s->priv_data;
     AVStream *vst = NULL;
     int i;
 
@@ -287,10 +287,6 @@ DVMuxContext* dv_init_mux(AVFormatContext* s)
     if (s->nb_streams > 3)
         return NULL;
 
-    c = av_mallocz(sizeof(DVMuxContext));
-    if (!c)
-        return NULL;
-
     c->n_ast = 0;
     c->ast[0] = c->ast[1] = NULL;
 
@@ -345,7 +341,6 @@ DVMuxContext* dv_init_mux(AVFormatContext* s)
     return c;
 
 bail_out:
-    av_free(c);
     return NULL;
 }
 
@@ -359,8 +354,7 @@ void dv_delete_mux(DVMuxContext *c)
 #ifdef CONFIG_MUXERS
 static int dv_write_header(AVFormatContext *s)
 {
-    s->priv_data = dv_init_mux(s);
-    if (!s->priv_data) {
+    if (!dv_init_mux(s)) {
         av_log(s, AV_LOG_ERROR, "Can't initialize DV format!\n"
                     "Make sure that you supply exactly two streams:\n"
                     "     video: 25fps or 29.97fps, audio: 2ch/48Khz/PCM\n"