diff --git a/output_example.c b/output_example.c index 612146dad0..6cd1b34080 100644 --- a/output_example.c +++ b/output_example.c @@ -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);