From f99e581ae13c2c563f66cb0c31d3dfceeec21af7 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 16 Jan 2014 15:40:37 +0100 Subject: libavformat API usage: use avformat_close_input() instead of av_close_input_file() --- intern/ffmpeg/ffmpeg_compat.h | 9 +++++++++ source/blender/imbuf/intern/anim_movie.c | 14 +++++++------- source/blender/imbuf/intern/indexer.c | 8 ++++---- source/blender/imbuf/intern/util.c | 10 +++++----- source/gameengine/VideoTexture/VideoFFmpeg.cpp | 12 ++++++------ 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h index 3a130d6d3d6..91db329592d 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 a62cb095b1c..b7bea0d96b5 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 807601b4ee0..a3cb4048779 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 9d1ff79960c..125979c668e 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 7b48d47232b..139988f64ea 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; -- cgit v1.2.3