1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-29 16:06:44 +00:00

Merge branch 'fix-old-ffmpeg' into 'master'

Restore compatibility with FFMpeg < 57.80.100

See merge request OpenMW/openmw!642
This commit is contained in:
psi29a 2021-03-08 20:28:09 +00:00
commit 35266314e2
2 changed files with 16 additions and 0 deletions

View file

@ -304,7 +304,11 @@ void FFmpeg_Decoder::close()
{ {
av_freep(&mFormatCtx->pb->buffer); av_freep(&mFormatCtx->pb->buffer);
} }
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 80, 100)
avio_context_free(&mFormatCtx->pb); avio_context_free(&mFormatCtx->pb);
#else
av_freep(&mFormatCtx->pb);
#endif
} }
avformat_close_input(&mFormatCtx); avformat_close_input(&mFormatCtx);
} }

View file

@ -710,12 +710,20 @@ void VideoState::init(std::shared_ptr<std::istream> inputstream, const std::stri
if (this->format_ctx->pb != nullptr) if (this->format_ctx->pb != nullptr)
{ {
av_freep(&this->format_ctx->pb->buffer); av_freep(&this->format_ctx->pb->buffer);
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 80, 100)
avio_context_free(&this->format_ctx->pb); avio_context_free(&this->format_ctx->pb);
#else
av_freep(&this->format_ctx->pb);
#endif
} }
} }
// "Note that a user-supplied AVFormatContext will be freed on failure." // "Note that a user-supplied AVFormatContext will be freed on failure."
this->format_ctx = nullptr; this->format_ctx = nullptr;
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 80, 100)
avio_context_free(&ioCtx); avio_context_free(&ioCtx);
#else
av_freep(&ioCtx);
#endif
throw std::runtime_error("Failed to open video input"); throw std::runtime_error("Failed to open video input");
} }
@ -790,7 +798,11 @@ void VideoState::deinit()
if (this->format_ctx->pb != nullptr) if (this->format_ctx->pb != nullptr)
{ {
av_freep(&this->format_ctx->pb->buffer); av_freep(&this->format_ctx->pb->buffer);
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 80, 100)
avio_context_free(&this->format_ctx->pb); avio_context_free(&this->format_ctx->pb);
#else
av_freep(&this->format_ctx->pb);
#endif
} }
avformat_close_input(&this->format_ctx); avformat_close_input(&this->format_ctx);
} }