From af6a1b08e3f0d0070ac9423868d2d3f81057717a Mon Sep 17 00:00:00 2001 From: Sebastian Parborg Date: Fri, 18 Feb 2022 18:20:06 +0100 Subject: VSE: Refactor our code to be compatible with ffmpeg 5.0 In ffmpeg 5.0, several variables were made const to try to prevent bad API usage. Removed some dead code that wasn't used anymore as well. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D14063 --- extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp | 2 +- extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp | 39 ++++++++++++------------ 2 files changed, 21 insertions(+), 20 deletions(-) (limited to 'extern') diff --git a/extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp b/extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp index de3ca099696..69bb45119a6 100644 --- a/extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp +++ b/extern/audaspace/plugins/ffmpeg/FFMPEGReader.cpp @@ -177,7 +177,7 @@ void FFMPEGReader::init(int stream) // get a decoder and open it #ifndef FFMPEG_OLD_CODE - AVCodec* aCodec = avcodec_find_decoder(m_formatCtx->streams[m_stream]->codecpar->codec_id); + const AVCodec* aCodec = avcodec_find_decoder(m_formatCtx->streams[m_stream]->codecpar->codec_id); if(!aCodec) AUD_THROW(FileException, "File couldn't be read, no decoder found with ffmpeg."); diff --git a/extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp b/extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp index 10517d1d596..32eb2330594 100644 --- a/extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp +++ b/extern/audaspace/plugins/ffmpeg/FFMPEGWriter.cpp @@ -23,6 +23,7 @@ extern "C" { #include #include +#include } AUD_NAMESPACE_BEGIN @@ -171,66 +172,66 @@ FFMPEGWriter::FFMPEGWriter(std::string filename, DeviceSpecs specs, Container fo if(avformat_alloc_output_context2(&m_formatCtx, nullptr, formats[format], filename.c_str()) < 0) AUD_THROW(FileException, "File couldn't be written, format couldn't be found with ffmpeg."); - AVOutputFormat* outputFmt = m_formatCtx->oformat; + const AVOutputFormat* outputFmt = m_formatCtx->oformat; if(!outputFmt) { avformat_free_context(m_formatCtx); AUD_THROW(FileException, "File couldn't be written, output format couldn't be found with ffmpeg."); } - outputFmt->audio_codec = AV_CODEC_ID_NONE; + AVCodecID audio_codec = AV_CODEC_ID_NONE; switch(codec) { case CODEC_AAC: - outputFmt->audio_codec = AV_CODEC_ID_AAC; + audio_codec = AV_CODEC_ID_AAC; break; case CODEC_AC3: - outputFmt->audio_codec = AV_CODEC_ID_AC3; + audio_codec = AV_CODEC_ID_AC3; break; case CODEC_FLAC: - outputFmt->audio_codec = AV_CODEC_ID_FLAC; + audio_codec = AV_CODEC_ID_FLAC; break; case CODEC_MP2: - outputFmt->audio_codec = AV_CODEC_ID_MP2; + audio_codec = AV_CODEC_ID_MP2; break; case CODEC_MP3: - outputFmt->audio_codec = AV_CODEC_ID_MP3; + audio_codec = AV_CODEC_ID_MP3; break; case CODEC_OPUS: - outputFmt->audio_codec = AV_CODEC_ID_OPUS; + audio_codec = AV_CODEC_ID_OPUS; break; case CODEC_PCM: switch(specs.format) { case FORMAT_U8: - outputFmt->audio_codec = AV_CODEC_ID_PCM_U8; + audio_codec = AV_CODEC_ID_PCM_U8; break; case FORMAT_S16: - outputFmt->audio_codec = AV_CODEC_ID_PCM_S16LE; + audio_codec = AV_CODEC_ID_PCM_S16LE; break; case FORMAT_S24: - outputFmt->audio_codec = AV_CODEC_ID_PCM_S24LE; + audio_codec = AV_CODEC_ID_PCM_S24LE; break; case FORMAT_S32: - outputFmt->audio_codec = AV_CODEC_ID_PCM_S32LE; + audio_codec = AV_CODEC_ID_PCM_S32LE; break; case FORMAT_FLOAT32: - outputFmt->audio_codec = AV_CODEC_ID_PCM_F32LE; + audio_codec = AV_CODEC_ID_PCM_F32LE; break; case FORMAT_FLOAT64: - outputFmt->audio_codec = AV_CODEC_ID_PCM_F64LE; + audio_codec = AV_CODEC_ID_PCM_F64LE; break; default: - outputFmt->audio_codec = AV_CODEC_ID_NONE; + audio_codec = AV_CODEC_ID_NONE; break; } break; case CODEC_VORBIS: - outputFmt->audio_codec = AV_CODEC_ID_VORBIS; + audio_codec = AV_CODEC_ID_VORBIS; break; default: - outputFmt->audio_codec = AV_CODEC_ID_NONE; + audio_codec = AV_CODEC_ID_NONE; break; } @@ -268,10 +269,10 @@ FFMPEGWriter::FFMPEGWriter(std::string filename, DeviceSpecs specs, Container fo try { - if(outputFmt->audio_codec == AV_CODEC_ID_NONE) + if(audio_codec == AV_CODEC_ID_NONE) AUD_THROW(FileException, "File couldn't be written, audio codec not found with ffmpeg."); - AVCodec* codec = avcodec_find_encoder(outputFmt->audio_codec); + const AVCodec* codec = avcodec_find_encoder(audio_codec); if(!codec) AUD_THROW(FileException, "File couldn't be written, audio encoder couldn't be found with ffmpeg."); -- cgit v1.2.3