av_write_trailer() must be done before closing codecs.
authorArt Clarke <aclarke@vlideshow.com>
Wed, 18 Feb 2009 06:49:32 +0000 (06:49 +0000)
committerAndreas Öman <andreas@lonelycoder.com>
Wed, 18 Feb 2009 06:49:32 +0000 (06:49 +0000)
Patch by aclarke a xuggle d com

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

output_example.c

index 612146d..6cd1b34 100644 (file)
@@ -523,15 +523,18 @@ int main(int argc, char **argv)
         }
     }
 
+    /* write the trailer, if any.  the trailer must be written
+     * before you close the CodecContexts open when you wrote the
+     * header; otherwise write_trailer may try to use memory that
+     * was freed on av_codec_close() */
+    av_write_trailer(oc);
+
     /* close each codec */
     if (video_st)
         close_video(oc, video_st);
     if (audio_st)
         close_audio(oc, audio_st);
 
-    /* write the trailer, if any */
-    av_write_trailer(oc);
-
     /* free the streams */
     for(i = 0; i < oc->nb_streams; i++) {
         av_freep(&oc->streams[i]->codec);