diff options
author | Nick Sarnie <sarnex@gentoo.org> | 2023-05-31 19:45:27 -0400 |
---|---|---|
committer | Nick Sarnie <sarnex@gentoo.org> | 2023-05-31 19:47:12 -0400 |
commit | d1b13d1f73246abe7be23ab4f2560ea18d5bffb2 (patch) | |
tree | 19feff121dd3c5b7219d585be2c2881c33c053d9 /media-libs/ffmpegsource | |
parent | dev-lang/spidermonkey: Stabilize 102.10.0 arm, #904355 (diff) | |
download | gentoo-d1b13d1f73246abe7be23ab4f2560ea18d5bffb2.tar.gz gentoo-d1b13d1f73246abe7be23ab4f2560ea18d5bffb2.tar.bz2 gentoo-d1b13d1f73246abe7be23ab4f2560ea18d5bffb2.zip |
media-libs/ffmpegsource: Fix build with ffmpeg 5
Signed-off-by: Nick Sarnie <sarnex@gentoo.org>
Diffstat (limited to 'media-libs/ffmpegsource')
-rw-r--r-- | media-libs/ffmpegsource/ffmpegsource-2.40-r1.ebuild | 45 | ||||
-rw-r--r-- | media-libs/ffmpegsource/files/ffmpegsource-2.40-Fix-build-with-ffmpeg-5.patch | 106 |
2 files changed, 151 insertions, 0 deletions
diff --git a/media-libs/ffmpegsource/ffmpegsource-2.40-r1.ebuild b/media-libs/ffmpegsource/ffmpegsource-2.40-r1.ebuild new file mode 100644 index 000000000000..5b1170bad347 --- /dev/null +++ b/media-libs/ffmpegsource/ffmpegsource-2.40-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QA_PKGCONFIG_VERSION=$(ver_cut 1-2) +inherit autotools + +DESCRIPTION="A libav/ffmpeg based source library for easy frame accurate access" +HOMEPAGE="https://github.com/FFMS/ffms2" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/FFMS/ffms2.git" + inherit git-r3 +else + SRC_URI="https://github.com/FFMS/ffms2/archive/${PV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}"/ffms2-${PV} + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="MIT" +SLOT="0/4" + +RDEPEND=" + >=media-video/ffmpeg-2.4:= + sys-libs/zlib +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES="${FILESDIR}/${P}-Fix-build-with-ffmpeg-5.patch" + +src_prepare() { + default + + # Cheesy hack from autogen.sh + mkdir src/config || die + eautoreconf +} + +src_install() { + default + + find "${ED}" -name '*.la' -delete || die +} diff --git a/media-libs/ffmpegsource/files/ffmpegsource-2.40-Fix-build-with-ffmpeg-5.patch b/media-libs/ffmpegsource/files/ffmpegsource-2.40-Fix-build-with-ffmpeg-5.patch new file mode 100644 index 000000000000..2a2cd0f0a5e1 --- /dev/null +++ b/media-libs/ffmpegsource/files/ffmpegsource-2.40-Fix-build-with-ffmpeg-5.patch @@ -0,0 +1,106 @@ +From 586d87de3f896d0c4ff01b21f572375e11f9c3f1 Mon Sep 17 00:00:00 2001 +From: Derek Buitenhuis <derek.buitenhuis@gmail.com> +Date: Tue, 4 May 2021 14:20:47 +0100 +Subject: [PATCH] configure: Remove deprecated API use + +Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b35ef80bcd..d19714d0f6 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 <libavcodec/avcodec.h> ++ #include <libavformat/avformat.h> + #include <libswscale/swscale.h> + ]],[[ +- 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 <derek.buitenhuis@gmail.com> +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 <derek.buitenhuis@gmail.com> +--- + 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"); |