diff utils.c @ 3486:f68fcc8b8e9e libavformat

factorize read_header failure freeing code
author bcoudurier
date Fri, 20 Jun 2008 17:16:56 +0000
parents 99565673f94c
children 2f191d610db9
line wrap: on
line diff
--- a/utils.c	Fri Jun 20 07:27:44 2008 +0000
+++ b/utils.c	Fri Jun 20 17:16:56 2008 +0000
@@ -405,7 +405,16 @@
     return 0;
  fail:
     if (ic) {
+        int i;
         av_freep(&ic->priv_data);
+        for(i=0;i<ic->nb_streams;i++) {
+            AVStream *st = ic->streams[i];
+            if (st) {
+                av_free(st->priv_data);
+                av_free(st->codec->extradata);
+            }
+            av_free(st);
+        }
     }
     av_free(ic);
     *ic_ptr = NULL;