From fac8f83095f6d9ac931cfa9e7deb3e9d2edca55c Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Fri, 30 Oct 2009 14:29:09 +0000 Subject: [PATCH] Don't call avcodec_close() on an unopened codec, as that causes a crash. Happens for example when you create a BMediaFile and close it without committing the header git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33845 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/media/plugins/ffmpeg/AVFormatWriter.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/AVFormatWriter.cpp b/src/add-ons/media/plugins/ffmpeg/AVFormatWriter.cpp index 8974a9fe5e..c71fb19e51 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVFormatWriter.cpp +++ b/src/add-ons/media/plugins/ffmpeg/AVFormatWriter.cpp @@ -327,8 +327,9 @@ AVFormatWriter::~AVFormatWriter() for(unsigned i = 0; i < fContext->nb_streams; i++) { #if OPEN_CODEC_CONTEXT // We only need to close the AVCodecContext when we opened it. - // This is experimental, see WriteHeader(). - avcodec_close(fContext->streams[i]->codec); + // This is experimental, see CommitHeader(). + if (fHeaderWritten) + avcodec_close(fContext->streams[i]->codec); #endif av_freep(&fContext->streams[i]->codec); av_freep(&fContext->streams[i]);