From: Jan Palus Date: Mon, 24 Jan 2022 11:38:30 +0000 (+0100) Subject: upstream fixes for ffmpeg5 X-Git-Tag: auto/th/ffms2-2.40-2~1 X-Git-Url: https://git.pld-linux.org/?p=packages%2Fffms2.git;a=commitdiff_plain;h=e99fb1c582e997d4363ce1c14408e9744375138a upstream fixes for ffmpeg5 --- diff --git a/ffmpeg5.patch b/ffmpeg5.patch new file mode 100644 index 0000000..4bca0f9 --- /dev/null +++ b/ffmpeg5.patch @@ -0,0 +1,106 @@ +From 586d87de3f896d0c4ff01b21f572375e11f9c3f1 Mon Sep 17 00:00:00 2001 +From: Derek Buitenhuis +Date: Tue, 4 May 2021 14:20:47 +0100 +Subject: [PATCH] configure: Remove deprecated API use + +Signed-off-by: Derek Buitenhuis +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b35ef80bc..d19714d0f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -102,10 +102,10 @@ CFLAGS="$_CFLAGS $FFMPEG_CFLAGS" + + AC_DEFUN([TEST_FFMPEG], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +- #include ++ #include + #include + ]],[[ +- avcodec_register_all(); ++ avformat_network_init(); + swscale_version(); + ]])], [eval $1=yes], [eval $1=no]) + ]) +From 45673149e9a2f5586855ad472e3059084eaa36b1 Mon Sep 17 00:00:00 2001 +From: Derek Buitenhuis +Date: Tue, 4 May 2021 14:41:21 +0100 +Subject: [PATCH] Use auto for AVCodec + +The geniuses over at FFmpeg decided to constify this API, so old +versions of the library will return AVCodec *, while new versions +of the libary will return const AVCodec *, which, in C++, are not +OK to convert between. + +Rather than use some macro hell in ffmscompat.h, we can work around +this by using auto. + +Gross. + +Signed-off-by: Derek Buitenhuis +--- + src/core/audiosource.cpp | 2 +- + src/core/indexing.cpp | 6 +++--- + src/core/videosource.cpp | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/core/audiosource.cpp b/src/core/audiosource.cpp +index e4ce97cdb..ac0966636 100644 +--- a/src/core/audiosource.cpp ++++ b/src/core/audiosource.cpp +@@ -469,7 +469,7 @@ void FFMS_AudioSource::OpenFile() { + + LAVFOpenFile(SourceFile.c_str(), FormatContext, TrackNumber); + +- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id); ++ auto *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id); + if (Codec == nullptr) + throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC, + "Audio codec not found"); +diff --git a/src/core/indexing.cpp b/src/core/indexing.cpp +index e547c5abf..59fb4e8ea 100644 +--- a/src/core/indexing.cpp ++++ b/src/core/indexing.cpp +@@ -384,7 +384,7 @@ FFMS_TrackType FFMS_Indexer::GetTrackType(int Track) { + } + + const char *FFMS_Indexer::GetTrackCodec(int Track) { +- AVCodec *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id); ++ auto *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id); + return codec ? codec->name : nullptr; + } + +@@ -402,7 +402,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + UseDTS); + + if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { +- AVCodec *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); ++ auto *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); + if (!VideoCodec) { + FormatContext->streams[i]->discard = AVDISCARD_ALL; + IndexMask.erase(i); +@@ -433,7 +433,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + IndexMask.insert(i); + } + } else if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { +- AVCodec *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); ++ auto *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); + if (AudioCodec == nullptr) + throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_UNSUPPORTED, + "Audio codec not found"); +diff --git a/src/core/videosource.cpp b/src/core/videosource.cpp +index b889970e2..8956c2256 100644 +--- a/src/core/videosource.cpp ++++ b/src/core/videosource.cpp +@@ -171,7 +171,7 @@ FFMS_VideoSource::FFMS_VideoSource(const char *SourceFile, FFMS_Index &Index, in + + LAVFOpenFile(SourceFile, FormatContext, VideoTrack); + +- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id); ++ auto *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id); + if (Codec == nullptr) + throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC, + "Video codec not found"); diff --git a/ffms2.spec b/ffms2.spec index ab4cb19..132a3d1 100644 --- a/ffms2.spec +++ b/ffms2.spec @@ -13,6 +13,7 @@ Group: Libraries #Source0Download: https://github.com/FFMS/ffms2/releases Source0: https://github.com/FFMS/ffms2/archive/%{version}/%{name}-%{version}.tar.gz # Source0-md5: 141f194432d70bbf5456a847043f332a +Patch0: ffmpeg5.patch URL: https://github.com/FFMS/ffms2 BuildRequires: autoconf >= 2.58 BuildRequires: automake >= 1:1.11 @@ -87,6 +88,7 @@ Statyczna biblioteka FFmpegSource. %prep %setup -q +%patch0 -p1 install -d src/config