[Bf-blender-cvs] [f99e581] master: libavformat API usage: use avformat_close_input() instead of av_close_input_file()

Anton Khirnov noreply at git.blender.org
Tue Jan 28 09:28:45 CET 2014


Commit: f99e581ae13c2c563f66cb0c31d3dfceeec21af7
Author: Anton Khirnov
Date:   Thu Jan 16 15:40:37 2014 +0100
https://developer.blender.org/rBf99e581ae13c2c563f66cb0c31d3dfceeec21af7

libavformat API usage: use avformat_close_input() instead of av_close_input_file()

===================================================================

M	intern/ffmpeg/ffmpeg_compat.h
M	source/blender/imbuf/intern/anim_movie.c
M	source/blender/imbuf/intern/indexer.c
M	source/blender/imbuf/intern/util.c
M	source/gameengine/VideoTexture/VideoFFmpeg.cpp

===================================================================

diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
index 3a130d6..91db329 100644
--- a/intern/ffmpeg/ffmpeg_compat.h
+++ b/intern/ffmpeg/ffmpeg_compat.h
@@ -388,4 +388,13 @@ int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *pkt,
 
 #endif
 
+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(53, 17, 0)
+FFMPEG_INLINE
+void avformat_close_input(AVFormatContext **ctx)
+{
+    av_close_input_file(*ctx);
+    *ctx = NULL;
+}
+#endif
+
 #endif
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index a62cb09..b7bea0d 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -486,7 +486,7 @@ static int startffmpeg(struct anim *anim)
 	}
 
 	if (avformat_find_stream_info(pFormatCtx, NULL) < 0) {
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return -1;
 	}
 
@@ -507,7 +507,7 @@ static int startffmpeg(struct anim *anim)
 		}
 
 	if (videoStream == -1) {
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return -1;
 	}
 
@@ -516,14 +516,14 @@ static int startffmpeg(struct anim *anim)
 	/* Find the decoder for the video stream */
 	pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
 	if (pCodec == NULL) {
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return -1;
 	}
 
 	pCodecCtx->workaround_bugs = 1;
 
 	if (avcodec_open2(pCodecCtx, pCodec, NULL) < 0) {
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return -1;
 	}
 
@@ -575,7 +575,7 @@ static int startffmpeg(struct anim *anim)
 		fprintf(stderr,
 		        "ffmpeg has changed alloc scheme ... ARGHHH!\n");
 		avcodec_close(anim->pCodecCtx);
-		av_close_input_file(anim->pFormatCtx);
+		avformat_close_input(&anim->pFormatCtx);
 		av_free(anim->pFrameRGB);
 		av_free(anim->pFrameDeinterlaced);
 		av_free(anim->pFrame);
@@ -616,7 +616,7 @@ static int startffmpeg(struct anim *anim)
 		fprintf(stderr,
 		        "Can't transform color space??? Bailing out...\n");
 		avcodec_close(anim->pCodecCtx);
-		av_close_input_file(anim->pFormatCtx);
+		avformat_close_input(&anim->pFormatCtx);
 		av_free(anim->pFrameRGB);
 		av_free(anim->pFrameDeinterlaced);
 		av_free(anim->pFrame);
@@ -1142,7 +1142,7 @@ static void free_anim_ffmpeg(struct anim *anim)
 
 	if (anim->pCodecCtx) {
 		avcodec_close(anim->pCodecCtx);
-		av_close_input_file(anim->pFormatCtx);
+		avformat_close_input(&anim->pFormatCtx);
 		av_free(anim->pFrameRGB);
 		av_free(anim->pFrame);
 
diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c
index 807601b..a3cb404 100644
--- a/source/blender/imbuf/intern/indexer.c
+++ b/source/blender/imbuf/intern/indexer.c
@@ -747,7 +747,7 @@ static IndexBuildContext *index_ffmpeg_create_context(struct anim *anim, IMB_Tim
 	}
 
 	if (avformat_find_stream_info(context->iFormatCtx, NULL) < 0) {
-		av_close_input_file(context->iFormatCtx);
+		avformat_close_input(&context->iFormatCtx);
 		MEM_freeN(context);
 		return NULL;
 	}
@@ -767,7 +767,7 @@ static IndexBuildContext *index_ffmpeg_create_context(struct anim *anim, IMB_Tim
 		}
 
 	if (context->videoStream == -1) {
-		av_close_input_file(context->iFormatCtx);
+		avformat_close_input(&context->iFormatCtx);
 		MEM_freeN(context);
 		return NULL;
 	}
@@ -778,7 +778,7 @@ static IndexBuildContext *index_ffmpeg_create_context(struct anim *anim, IMB_Tim
 	context->iCodec = avcodec_find_decoder(context->iCodecCtx->codec_id);
 
 	if (context->iCodec == NULL) {
-		av_close_input_file(context->iFormatCtx);
+		avformat_close_input(&context->iFormatCtx);
 		MEM_freeN(context);
 		return NULL;
 	}
@@ -786,7 +786,7 @@ static IndexBuildContext *index_ffmpeg_create_context(struct anim *anim, IMB_Tim
 	context->iCodecCtx->workaround_bugs = 1;
 
 	if (avcodec_open2(context->iCodecCtx, context->iCodec, NULL) < 0) {
-		av_close_input_file(context->iFormatCtx);
+		avformat_close_input(&context->iFormatCtx);
 		MEM_freeN(context);
 		return NULL;
 	}
diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c
index 9d1ff79..125979c 100644
--- a/source/blender/imbuf/intern/util.c
+++ b/source/blender/imbuf/intern/util.c
@@ -353,7 +353,7 @@ static int isffmpeg(const char *filename)
 
 	if (avformat_find_stream_info(pFormatCtx, NULL) < 0) {
 		if (UTIL_DEBUG) fprintf(stderr, "isffmpeg: avformat_find_stream_info failed\n");
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return 0;
 	}
 
@@ -372,7 +372,7 @@ static int isffmpeg(const char *filename)
 		}
 
 	if (videoStream == -1) {
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return 0;
 	}
 
@@ -381,17 +381,17 @@ static int isffmpeg(const char *filename)
 	/* Find the decoder for the video stream */
 	pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
 	if (pCodec == NULL) {
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return 0;
 	}
 
 	if (avcodec_open2(pCodecCtx, pCodec, NULL) < 0) {
-		av_close_input_file(pFormatCtx);
+		avformat_close_input(&pFormatCtx);
 		return 0;
 	}
 
 	avcodec_close(pCodecCtx);
-	av_close_input_file(pFormatCtx);
+	avformat_close_input(&pFormatCtx);
 
 	return 1;
 }
diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.cpp b/source/gameengine/VideoTexture/VideoFFmpeg.cpp
index 7b48d47..139988f 100644
--- a/source/gameengine/VideoTexture/VideoFFmpeg.cpp
+++ b/source/gameengine/VideoTexture/VideoFFmpeg.cpp
@@ -99,7 +99,7 @@ bool VideoFFmpeg::release()
 	}
 	if (m_formatCtx)
 	{
-		av_close_input_file(m_formatCtx);
+		avformat_close_input(&m_formatCtx);
 		m_formatCtx = NULL;
 	}
 	if (m_frame)
@@ -176,7 +176,7 @@ int VideoFFmpeg::openStream(const char *filename, AVInputFormat *inputFormat, AV
 
 	if (avformat_find_stream_info(formatCtx, NULL) < 0)
 	{
-		av_close_input_file(formatCtx);
+		avformat_close_input(&formatCtx);
 		return -1;
 	}
 
@@ -195,7 +195,7 @@ int VideoFFmpeg::openStream(const char *filename, AVInputFormat *inputFormat, AV
 
 	if (videoStream==-1) 
 	{
-		av_close_input_file(formatCtx);
+		avformat_close_input(&formatCtx);
 		return -1;
 	}
 
@@ -205,13 +205,13 @@ int VideoFFmpeg::openStream(const char *filename, AVInputFormat *inputFormat, AV
 	codec=avcodec_find_decoder(codecCtx->codec_id);
 	if (codec==NULL) 
 	{
-		av_close_input_file(formatCtx);
+		avformat_close_input(&formatCtx);
 		return -1;
 	}
 	codecCtx->workaround_bugs = 1;
 	if (avcodec_open2(codecCtx, codec, NULL) < 0)
 	{
-		av_close_input_file(formatCtx);
+		avformat_close_input(&formatCtx);
 		return -1;
 	}
 
@@ -278,7 +278,7 @@ int VideoFFmpeg::openStream(const char *filename, AVInputFormat *inputFormat, AV
 	if (!m_imgConvertCtx) {
 		avcodec_close(m_codecCtx);
 		m_codecCtx = NULL;
-		av_close_input_file(m_formatCtx);
+		avformat_close_input(&m_formatCtx);
 		m_formatCtx = NULL;
 		av_free(m_frame);
 		m_frame = NULL;




More information about the Bf-blender-cvs mailing list