diff options
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/Manifest.gz | bin | 27447 -> 27449 bytes | |||
-rw-r--r-- | media-video/aegisub/Manifest | 4 | ||||
-rw-r--r-- | media-video/aegisub/aegisub-3.2.2_p20160518-r3.ebuild | 148 | ||||
-rw-r--r-- | media-video/aegisub/aegisub-9999.ebuild | 1 | ||||
-rw-r--r-- | media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost170-build.patch | 61 | ||||
-rw-r--r-- | media-video/ffmpeg/Manifest | 2 | ||||
-rw-r--r-- | media-video/ffmpeg/ffmpeg-4.1.4.ebuild | 528 |
7 files changed, 743 insertions, 1 deletions
diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz Binary files differindex 609427920a42..c6bd07bff8de 100644 --- a/media-video/Manifest.gz +++ b/media-video/Manifest.gz diff --git a/media-video/aegisub/Manifest b/media-video/aegisub/Manifest index d13770c28cf1..4eb060497d73 100644 --- a/media-video/aegisub/Manifest +++ b/media-video/aegisub/Manifest @@ -1,3 +1,4 @@ +AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost170-build.patch 1490 BLAKE2B 6b3fb8f98348585dc15fd92e992b231fb83f94dffd3ed97cf0d41323e28bd6c48a77e6e7eecd9e79a1f85ab933eee93f31feebf08ed2d18488d519dbe47b57a3 SHA512 59ec5d28424f9b2ab1d63b00c2e237263f6816d42baef977ab9494fa696aace7d3b7e949c672aa77c799dbb255c69fcd3acdc289413dd5b3f8569e28ba528cef AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-icu59-build.patch 496 BLAKE2B 33e646f71ced61c5411ddc871ff42fb61d5e89d068441e72c33a99927a27cad206068eab70563db94d21f4aa9516e69da8c34d0e78c46f15b1561b2170d8d5ff SHA512 58c8acc766751b6f9122821b5958ef3756c4802e91ed7ed8915c54eb7c8c960c46734a8d76cc200c064e0dab5a1f0008f99a5dd4a1c51ecda7983bb84ef6d645 AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-icu62-build.patch 2369 BLAKE2B edbada9d9bb3fbd4ffcd3f8f6aa640132163e0127baada7d40eb39312479602cf57b80e9314b8d3a92aff74764a9ed8336b055cf9c2d387c27595553f1f01185 SHA512 7963b76652126e1aa574e89f56c09e6008afd745c9198a2b081ed65c8697a15cbd7e611d6aeae0e2513b0eb79409665fd78885ef3599ff6f0d074b42bb461a8a AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-system-luajit-build.patch 4029 BLAKE2B 635bfd2317a05b1393c26b648f0081920be30e9ca29eeac0a5d25b75a141a3eb40cded94d27934eddb4d2ad1f28a1d8752faf97f264cc4a2a4ef0ffaedeed7b4 SHA512 247dba6e593212294f3157226c03e2fb5d3a5a8eaf9a16e0a65ea1fee006b8f21fadbdd80fb0b748be3a9b043779a0da6bb6007fac07b7908fb46f27a055704e @@ -5,5 +6,6 @@ AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-respect-compiler-flags.patch 2186 BL AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-support-system-gtest.patch 2446 BLAKE2B 5b1a5556829fbcd5d10ad869af5dcce4c6227dbc9d460094f237448a4aac9e07a9752039ab857a3556d062297cd0101e71ace0b4d3643f481e7479f16ccdf2e3 SHA512 f5171353ac14806166e26c4b335e6c7d9e111ba1eb68c3160fc9f802e1e3de659df48c4be180a0a25c67f7733007c8875c191436314ccfc9d7696a1f8a1fa719 DIST aegisub-3.2.2_p20160518.tar.gz 7438734 BLAKE2B 3a57e5d6fafac2ca95d64d60e8d68b48177aaa0c5fd1438d0b0a133757ef95443c16324fb7effb41506f2b1eb70aab9d34845a91beef0ef81a3658444e24be07 SHA512 8d8775ba0a12735a9756b9abfd65c89519dae4e21afcaedbd18985d1c1021975b1ae909b3bef1121b707c626e1711d56f1823f3b4746eab49e8386536a5e84e6 EBUILD aegisub-3.2.2_p20160518-r2.ebuild 3524 BLAKE2B 0cabead7524421c8eb0aef0aaa420257bde80b91f472caa10a1974eb62cf618e18929d6b834976f35e11961cf608138481172b8c4a1eb95b3fd4a0d22641ea51 SHA512 75d0d42d3cba04d06e866ce4717fa6cc4382f092edcd6d3e765038d6341785731fc23de961c2bf3b0688e1b768bbc4025f441b2f3c5fe4d92c1bf53e87ac2187 -EBUILD aegisub-9999.ebuild 2867 BLAKE2B 9eeddc22c8774b94d0365b8f0b628f4cde96847f90d1373e26cedd4ae74662b04407858b71d2de9f44b67f444651513ae95b13743eb5c2157e6f9daa00f4af96 SHA512 afce1fa2d15e8a63bff8551e88338aa5d01093aa61ccd84105f2c0200dcefeeeadd0a4535d9e176ab39043d842e272abecaff2d7113f77f9f36354788e3c021e +EBUILD aegisub-3.2.2_p20160518-r3.ebuild 3576 BLAKE2B 25629564baf7a1302205b2a120aadef944498018407cfe13cfcf45347e8e6e080a9cd6e756eafd6568fa93a26149adc242bc5ac14ec5e9a8860d4c17bdc9ccc1 SHA512 e50eb0fcb9e92f2ad3d528507aab778481ce6e835dbc35e0a205fc75dd1a10cc42ebb52cd616e1fcfa81d6c30ef7341bb139e60ed3e3a7d5a7990ac70b56d249 +EBUILD aegisub-9999.ebuild 2952 BLAKE2B 8a590978889e76ce4fcb8718c878d9d9e6b497efbc33a83d5be2ed051b5078dc6860553825a04e7a549dec3449000b3792432949fe594192259731a030f38914 SHA512 16ec81f2eab15116da3e56ff9b2d30625eaccf1fc9dd21dc82c410cac85474aa78acf6e6444049236c1d1963dcb7485689d546cb6f1a4e1996a6c3749c10c214 MISC metadata.xml 489 BLAKE2B b26abe2056ef0465a81ea8f9928c6d05053595b5650aff750251173ddce6f5248a30331104710c1b05cafe9641c072764c45f66935b25857785bc833af31174a SHA512 450c45be100ed72d7f0b69fe596862137ea2f421597e99129325bf2f58940600a62e1502ee4d6c7cbbab17b4cbd99da8c481ceb6fec2709452c17d8cb7aaae48 diff --git a/media-video/aegisub/aegisub-3.2.2_p20160518-r3.ebuild b/media-video/aegisub/aegisub-3.2.2_p20160518-r3.ebuild new file mode 100644 index 000000000000..69d4b3f6f5ed --- /dev/null +++ b/media-video/aegisub/aegisub-3.2.2_p20160518-r3.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +WX_GTK_VER=3.0 +PLOCALES="ar bg ca cs da de el es eu fa fi fr_FR gl hu id it ja ko nl pl pt_BR pt_PT ru sr_RS sr_RS@latin uk_UA vi zh_CN zh_TW" +COMMIT_ID="b118fe7e7a5c37540e2f0aa75af105e272bad234" + +inherit autotools flag-o-matic gnome2-utils l10n wxwidgets xdg-utils vcs-snapshot + +DESCRIPTION="Advanced subtitle editor" +HOMEPAGE="http://www.aegisub.org/ https://github.com/Aegisub/Aegisub" +SRC_URI="https://github.com/Aegisub/Aegisub/archive/${COMMIT_ID}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+alsa debug +fftw openal oss portaudio pulseaudio spell test +uchardet" + +# aegisub bundles luabins (https://github.com/agladysh/luabins). +# Unfortunately, luabins upstream is practically dead since 2010. +# Thus unbundling luabins isn't worth the effort. +RDEPEND=" + x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,debug?] + dev-lang/luajit:2[lua52compat] + dev-libs/boost:=[icu,nls,threads] + dev-libs/icu:= + media-libs/ffmpegsource:= + media-libs/fontconfig + media-libs/freetype + media-libs/libass:=[fontconfig] + sys-libs/zlib + virtual/libiconv + virtual/opengl + alsa? ( media-libs/alsa-lib ) + fftw? ( >=sci-libs/fftw-3.3:= ) + openal? ( media-libs/openal ) + portaudio? ( =media-libs/portaudio-19* ) + pulseaudio? ( media-sound/pulseaudio ) + spell? ( app-text/hunspell:= ) + uchardet? ( app-i18n/uchardet ) +" +DEPEND="${RDEPEND} + dev-util/intltool + sys-devel/gettext + virtual/pkgconfig + test? ( + >=dev-cpp/gtest-1.8.1 + dev-lua/busted + dev-lua/luarocks + ) +" + +REQUIRED_USE="|| ( alsa openal oss portaudio pulseaudio )" + +PATCHES=( + "${FILESDIR}/${PV}/${P}-fix-system-luajit-build.patch" + "${FILESDIR}/${PV}/${P}-respect-compiler-flags.patch" + "${FILESDIR}/${PV}/${P}-support-system-gtest.patch" + "${FILESDIR}/${PV}/${P}-fix-icu59-build.patch" + "${FILESDIR}/${PV}/${P}-fix-icu62-build.patch" + "${FILESDIR}/${PV}/${P}-fix-boost170-build.patch" +) + +aegisub_check_compiler() { + if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11; then + die "Your compiler lacks C++11 support. Use GCC>=4.7.0 or Clang>=3.3." + fi +} + +pkg_pretend() { + aegisub_check_compiler +} + +pkg_setup() { + aegisub_check_compiler +} + +src_prepare() { + default_src_prepare + + # Remove tests that require unavailable uuid Lua module. + rm automation/tests/modules/lfs.moon || die + + remove_locale() { + rm "po/${1}.po" || die + } + + l10n_find_plocales_changes 'po' '' '.po' + l10n_for_each_disabled_locale_do remove_locale + + # See http://devel.aegisub.org/ticket/1914 + config_rpath_update "${S}"/config.rpath + + eautoreconf + + cat <<- EOF > build/git_version.h || die + #define BUILD_GIT_VERSION_NUMBER 8897 + #define BUILD_GIT_VERSION_STRING "${PV}" + #define TAGGED_RELEASE 0 + EOF +} + +src_configure() { + # Prevent access violations from OpenAL detection. See Gentoo bug 508184. + use openal && export agi_cv_with_openal="yes" + + setup-wxwidgets + local myeconfargs=( + --disable-update-checker + --with-ffms2 + --with-system-luajit + $(use_enable debug) + $(use_with alsa) + $(use_with fftw fftw3) + $(use_with openal) + $(use_with oss) + $(use_with portaudio) + $(use_with pulseaudio libpulse) + $(use_with spell hunspell) + $(use_with uchardet) + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + emake WITH_SYSTEM_GTEST=$(usex test) +} + +src_test() { + emake test-automation + emake test-libaegisub +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + gnome2_icon_cache_update + xdg_desktop_database_update +} + +pkg_postrm() { + gnome2_icon_cache_update + xdg_desktop_database_update +} diff --git a/media-video/aegisub/aegisub-9999.ebuild b/media-video/aegisub/aegisub-9999.ebuild index fcbfb2a2dc80..7377cdca67a0 100644 --- a/media-video/aegisub/aegisub-9999.ebuild +++ b/media-video/aegisub/aegisub-9999.ebuild @@ -54,6 +54,7 @@ REQUIRED_USE="|| ( alsa openal oss portaudio pulseaudio )" PATCHES=( "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-fix-system-luajit-build.patch" "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-respect-compiler-flags.patch" + "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-fix-boost170-build.patch" ) src_prepare() { diff --git a/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost170-build.patch b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost170-build.patch new file mode 100644 index 000000000000..30473e4828d1 --- /dev/null +++ b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost170-build.patch @@ -0,0 +1,61 @@ +diff a/src/colour_button.cpp b/src/colour_button.cpp +--- a/src/colour_button.cpp ++++ b/src/colour_button.cpp +@@ -18,7 +18,11 @@ + + #include "dialogs.h" + ++#if BOOST_VERSION >= 106900 ++#include <boost/gil.hpp> ++#else + #include <boost/gil/gil_all.hpp> ++#endif + + AGI_DEFINE_EVENT(EVT_COLOR, agi::Color); + +diff a/src/subtitles_provider_libass.cpp b/src/subtitles_provider_libass.cpp +--- a/src/subtitles_provider_libass.cpp ++++ b/src/subtitles_provider_libass.cpp +@@ -46,7 +46,11 @@ + #include <libaegisub/util.h> + + #include <atomic> ++#if BOOST_VERSION >= 106900 ++#include <boost/gil.hpp> ++#else + #include <boost/gil/gil_all.hpp> ++#endif + #include <memory> + #include <mutex> + +diff a/src/video_frame.cpp b/src/video_frame.cpp +--- a/src/video_frame.cpp ++++ b/src/video_frame.cpp +@@ -16,7 +16,11 @@ + + #include "video_frame.h" + ++#if BOOST_VERSION >= 106900 ++#include <boost/gil.hpp> ++#else + #include <boost/gil/gil_all.hpp> ++#endif + #include <wx/image.h> + + namespace { +diff a/src/video_provider_dummy.cpp b/src/video_provider_dummy.cpp +--- a/src/video_provider_dummy.cpp ++++ b/src/video_provider_dummy.cpp +@@ -45,7 +45,11 @@ + #include <boost/algorithm/string/predicate.hpp> + #include <boost/filesystem/path.hpp> + #include <libaegisub/format.h> ++#if BOOST_VERSION >= 106900 ++#include <boost/gil.hpp> ++#else + #include <boost/gil/gil_all.hpp> ++#endif + + DummyVideoProvider::DummyVideoProvider(double fps, int frames, int width, int height, agi::Color colour, bool pattern) + : framecount(frames) + diff --git a/media-video/ffmpeg/Manifest b/media-video/ffmpeg/Manifest index d46f7957e139..01e100b95bb3 100644 --- a/media-video/ffmpeg/Manifest +++ b/media-video/ffmpeg/Manifest @@ -14,6 +14,7 @@ DIST ffmpeg-3.4.6.tar.bz2 10190001 BLAKE2B 4c7842900171cf871f8524f08f435797b1a16 DIST ffmpeg-4.1.1.tar.bz2 10686360 BLAKE2B 47f4716d7e184d7318eb1a99ab1cdc188009464e973162e583f7ca4ae79fa3b103f9d5329c8993b72d20667e42e5a749123709a4640f07762568300b5c3c897f SHA512 0241c44e1dffd0d890a3d30a1b2387ea167d578bb39ba0c804fb417e132d343a9e43da9247b205e18b893d8cf75d8528e9971569be67ac380b88618ef0a75ed4 DIST ffmpeg-4.1.2.tar.bz2 10687366 BLAKE2B c69cc693078f40610c4414f01ed20f89a85db398b3177d8d79a6f58f2d48b6a8049a2bc622933e0ae0a2889f635c25ccf1c5856cb86a4d98bb0bc2308188ae86 SHA512 6c3bf20d46772a80299c9d385919a745e4022c0a9b3c438c0504d3c94bb8d472f2c9026105330fa7c50c2f23f511eb853f32e4387f73c0b7b0d0761c20cb8b31 DIST ffmpeg-4.1.3.tar.bz2 10689073 BLAKE2B 8486e21c8df116af802bb7f9208e702ec1feaa4f292f14021e0b6bfb3957b13ddacfa87db361e677ae0583cc2bd1d402a66b0c8507cbed79a001c9b8462100bf SHA512 d0f8b3ee7b55e67b1c7ad9610a7b19a15acfc35dc843683502e536ebcc2e8678b55325532c0039b764cc978e95f83afb48bd24304abaee26f26d3247a8310bfe +DIST ffmpeg-4.1.4.tar.bz2 10691784 BLAKE2B 5f1f0b3c78cdd913e44bef448ff4d26fc5ea01e1a002baf98461fe0d8870bc2b0f29a1770377df8ff4f0c45febd532d6436c6627f5d1fb97125e92d9929f9284 SHA512 0c2d5bf4873b2bf12aff8c8b576d58dc3c5984ca727f48e1247293cbebda382e9070e8b7fac99870ec2ae0cef3be0a187d5ec5d58ee3e861cd673cae961b5947 EBUILD ffmpeg-3.2.6.ebuild 14779 BLAKE2B b79fb9e74ed3eaf3d84bb14823cd305dde3f14d5cd5bcf236bfac6443daa4d6c678ad2aea23559021af33afc0488c3fa845c4da52e1c27988a3f504a10475b3f SHA512 31fbf5b2294c6ba34960298347bb7c9523070bead6215b2f17ea7f7cf0b46878d14e22f1888959a4586550630e2f3b3e81ce7feae1270aad12a5cf5e297e51c1 EBUILD ffmpeg-3.2.7.ebuild 14784 BLAKE2B 709df5de9f58af7d57a01a4a90f5eb3eacc132a6dbed7d7f86a74c984774ad119febd904cede6b77f9ef4b05ae48538b6d18a1b50e5c7406a07dcfe567370a52 SHA512 e9b1439ffbdb2299ddffccf9a6fd43a5ee4a99e39c461a82393ae71226623c042e7a73c093a9c4d70b175aba7fd0eccd3926fb9a9d8de24afd97ac44f189ea9f EBUILD ffmpeg-3.3.4.ebuild 15808 BLAKE2B c64f1cd480d0bf2e8834073571f40eef01093b6384003653d3da534534f4a23fa1e5315de5e05dc808b1743dedc587439b4959ae843feee252f848b826308d9a SHA512 a29e5beb75cdacb1ce07b34910b419013c7dc8b906c5927aff6492338e02ec9d8ec0813e2d2aabce4d0aca70e027001c8aa50be23e9cfabc1f6aa860975e1b4b @@ -25,5 +26,6 @@ EBUILD ffmpeg-3.4.6.ebuild 15588 BLAKE2B d49f5b8411ee48a41af83136a8f0ec673f4feb3 EBUILD ffmpeg-4.1.1.ebuild 17072 BLAKE2B 4e3d25a7b01920c2e89740ef5847b3f99aa283e8926efcb641687ce9064f69aac5a25132f1295fd0c1dd1dff0f532d12acda72acaf09671549adb8d626266229 SHA512 3e2f5362b30dc2dc9a14356887304af89768774efb3025c4af7276da03ee75ae0a0ed85afd43c0a04b59c687aee901eba4db868720d130b0e282d25324e77977 EBUILD ffmpeg-4.1.2.ebuild 17072 BLAKE2B 4e3d25a7b01920c2e89740ef5847b3f99aa283e8926efcb641687ce9064f69aac5a25132f1295fd0c1dd1dff0f532d12acda72acaf09671549adb8d626266229 SHA512 3e2f5362b30dc2dc9a14356887304af89768774efb3025c4af7276da03ee75ae0a0ed85afd43c0a04b59c687aee901eba4db868720d130b0e282d25324e77977 EBUILD ffmpeg-4.1.3.ebuild 17069 BLAKE2B 9bd743bce0fbe0a31076f8918449a655d40b05bdbb4d1aebbeda7faf005bd868435514feea267a38d58d59c52cf728a3d2ecd80e9cbecb02dc3d4d3c7ac8aa1e SHA512 577f0103c4201cef03cd5a8492f82767b824fb6bb985ad00e3270c45ac5357515456952c4ce79d1a6c51bcc8fd0ffbd795b0ed7aff2c8a2a987714927d49d8af +EBUILD ffmpeg-4.1.4.ebuild 17071 BLAKE2B f45c4190b2bb52f491bc9ddc82d0db8334908768bb15d0f45751dac8e8301c4df5edb6ab90e8d28811a23dfe81ed1600b5ccf4bb567ee93e6f0ce4532ec60b27 SHA512 c7a41a6c11806a7a0f4139f5aa56f1a7988df83537f3e003258584d97e44021268f1885cde4694757e41c24be67653283b543f63d649db656a73dd35a6ba5a16 EBUILD ffmpeg-9999.ebuild 17208 BLAKE2B 0c9c9bbbdf2238d995008d6ac8f6a357993abd976958738747edca1e966caabf6dd5816a70c9da34072157fe08b3fad6b04bf2cc65cfe5a548144d968a116938 SHA512 b6e99a8d554b18afc5719468f80d46b5d6a1f3e71ec1c68beb17797f3c7ef301418afdbf9f365db554617564b290d3596e1ad0e355b4b08da47f76c747ad9aec MISC metadata.xml 5992 BLAKE2B 640b4b6e9904cc8653cd5c7788cbd5b0b48579e7a87fdd58b98e5ad88d3e34f05aa181a89830aabca4f9262c1ce9e07ed1b1c323352d40b1da6800b5e0e41fe7 SHA512 542bf49855f46b3391a9061b3c5e8c025ea5fb67af6046f0aa2bd6fb5cdf17bff92d5c2fea181f7e2f7dffb84452f8876ed8ef744b41b7828d0188ce57b184ae diff --git a/media-video/ffmpeg/ffmpeg-4.1.4.ebuild b/media-video/ffmpeg/ffmpeg-4.1.4.ebuild new file mode 100644 index 000000000000..46cb0d7e1ef8 --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-4.1.4.ebuild @@ -0,0 +1,528 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Subslot: libavutil major.libavcodec major.libavformat major +# Since FFmpeg ships several libraries, subslot is kind of limited here. +# Most consumers will use those three libraries, if a "less used" library +# changes its soname, consumers will have to be rebuilt the old way +# (preserve-libs). +# If, for example, a package does not link to libavformat and only libavformat +# changes its ABI then this package will be rebuilt needlessly. Hence, such a +# package is free _not_ to := depend on FFmpeg but I would strongly encourage +# doing so since such a case is unlikely. +FFMPEG_SUBSLOT=56.58.58 + +SCM="" +if [ "${PV#9999}" != "${PV}" ] ; then + SCM="git-r3" + EGIT_MIN_CLONE_TYPE="single" + EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" +fi + +inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM} + +DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec" +HOMEPAGE="https://ffmpeg.org/" +if [ "${PV#9999}" != "${PV}" ] ; then + SRC_URI="" +elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot + SRC_URI="mirror://gentoo/${P}.tar.bz2" +else # Release + SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.bz2" +fi +FFMPEG_REVISION="${PV#*_p}" + +SLOT="0/${FFMPEG_SUBSLOT}" +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) + amr? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + gmp? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + encode? ( + amrenc? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + ) + samba? ( GPL-3 ) +" +if [ "${PV#9999}" = "${PV}" ] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +fi + +# Options to use as use_enable in the foo[:bar] form. +# This will feed configure with $(use_enable foo bar) +# or $(use_enable foo foo) if no :bar is set. +# foo is added to IUSE. +FFMPEG_FLAG_MAP=( + +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt gnutls gmp + +gpl hardcoded-tables +iconv libressl:libtls libxml2 lzma +network opencl + openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau + X:xlib xcb:libxcb xcb:libxcb-shm xcb:libxcb-xfixes +zlib + # libavdevice options + cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal + opengl + # indevs + libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack + # decoders + amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 fdk:libfdk-aac + jpeg2k:libopenjpeg bluray:libbluray gme:libgme gsm:libgsm + mmal modplug:libmodplug opus:libopus libilbc librtmp ssh:libssh + speex:libspeex srt:libsrt svg:librsvg video_cards_nvidia:ffnvcodec + vorbis:libvorbis vpx:libvpx zvbi:libzvbi + # libavfilter options + appkit + bs2b:libbs2b chromaprint flite:libflite frei0r + fribidi:libfribidi fontconfig ladspa libass lv2 truetype:libfreetype + rubberband:librubberband zeromq:libzmq zimg:libzimg + # libswresample options + libsoxr + # Threads; we only support pthread for now but ffmpeg supports more + +threads:pthreads +) + +# Same as above but for encoders, i.e. they do something only with USE=encode. +FFMPEG_ENCODER_FLAG_MAP=( + amrenc:libvo-amrwbenc mp3:libmp3lame + kvazaar:libkvazaar libaom + openh264:libopenh264 snappy:libsnappy theora:libtheora twolame:libtwolame + wavpack:libwavpack webp:libwebp x264:libx264 x265:libx265 xvid:libxvid +) + +IUSE=" + alsa chromium doc +encode oss pic static-libs test v4l + ${FFMPEG_FLAG_MAP[@]%:*} + ${FFMPEG_ENCODER_FLAG_MAP[@]%:*} +" + +# Strings for CPU features in the useflag[:configure_option] form +# if :configure_option isn't set, it will use 'useflag' as configure option +ARM_CPU_FEATURES=( + cpu_flags_arm_thumb:armv5te + cpu_flags_arm_v6:armv6 + cpu_flags_arm_thumb2:armv6t2 + cpu_flags_arm_neon:neon + cpu_flags_arm_vfp:vfp + cpu_flags_arm_vfpv3:vfpv3 + cpu_flags_arm_v8:armv8 +) +ARM_CPU_REQUIRED_USE=" + arm64? ( cpu_flags_arm_v8 ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) + cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) + cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) +" +MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) +PPC_CPU_FEATURES=( altivec ) +X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) +X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) +X86_CPU_REQUIRED_USE=" + cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) + cpu_flags_x86_xop? ( cpu_flags_x86_avx ) + cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) + cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) + cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) + cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) + cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) + cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) + cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) + cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) + cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) +" + +CPU_FEATURES_MAP=( + ${ARM_CPU_FEATURES[@]} + ${MIPS_CPU_FEATURES[@]} + ${PPC_CPU_FEATURES[@]} + ${X86_CPU_FEATURES[@]} +) +IUSE="${IUSE} + ${CPU_FEATURES_MAP[@]%:*}" + +CPU_REQUIRED_USE=" + ${ARM_CPU_REQUIRED_USE} + ${X86_CPU_REQUIRED_USE} +" + +FFTOOLS=( aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher ) +IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" + +RDEPEND=" + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) + amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] ) + bluray? ( >=media-libs/libbluray-0.3.0-r1:=[${MULTILIB_USEDEP}] ) + bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] ) + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] ) + chromaprint? ( >=media-libs/chromaprint-1.2-r1[${MULTILIB_USEDEP}] ) + codec2? ( media-libs/codec2[${MULTILIB_USEDEP}] ) + encode? ( + amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) + kvazaar? ( >=media-libs/kvazaar-1.2.0[${MULTILIB_USEDEP}] ) + mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] ) + openh264? ( >=media-libs/openh264-1.4.0-r1[${MULTILIB_USEDEP}] ) + snappy? ( >=app-arch/snappy-1.1.2-r1:=[${MULTILIB_USEDEP}] ) + theora? ( + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + ) + twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] ) + wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] ) + webp? ( >=media-libs/libwebp-0.3.0:=[${MULTILIB_USEDEP}] ) + x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] ) + x265? ( >=media-libs/x265-1.6:=[${MULTILIB_USEDEP}] ) + xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] ) + ) + fdk? ( >=media-libs/fdk-aac-0.1.3:=[${MULTILIB_USEDEP}] ) + flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] ) + fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] ) + frei0r? ( media-plugins/frei0r-plugins ) + fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] ) + gcrypt? ( >=dev-libs/libgcrypt-1.6:0=[${MULTILIB_USEDEP}] ) + gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] ) + gmp? ( >=dev-libs/gmp-6:0=[${MULTILIB_USEDEP}] ) + gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] ) + iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] ) + iec61883? ( + >=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}] + ) + ieee1394? ( + >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + ) + jack? ( virtual/jack[${MULTILIB_USEDEP}] ) + jpeg2k? ( >=media-libs/openjpeg-2:2[${MULTILIB_USEDEP}] ) + libaom? ( >=media-libs/libaom-1.0.0-r1[${MULTILIB_USEDEP}] ) + libass? ( >=media-libs/libass-0.10.2:=[${MULTILIB_USEDEP}] ) + libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) + libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) + libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) + libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) + libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] ) + libxml2? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) + lv2? ( media-libs/lv2[${MULTILIB_USEDEP}] media-libs/lilv[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + mmal? ( media-libs/raspberrypi-userland ) + modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] ) + openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) + pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) + rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) + samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) + speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) + srt? ( >=net-libs/srt-1.3.0[${MULTILIB_USEDEP}] ) + ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] ) + svg? ( gnome-base/librsvg:2=[${MULTILIB_USEDEP}] ) + truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) + vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] ) + video_cards_nvidia? ( >=media-libs/nv-codec-headers-8.1.24.2[${MULTILIB_USEDEP}] ) + vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] ) + vorbis? ( + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + ) + vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) + X? ( + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] + ) + xcb? ( >=x11-libs/libxcb-1.4[${MULTILIB_USEDEP}] ) + zeromq? ( >=net-libs/zeromq-4.1.6 ) + zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) + zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] ) + !media-video/qt-faststart + postproc? ( !media-libs/libpostproc ) +" + +# Crypto & co provider magic +# - libressl is a useflag meaning it should always favor libressl over openssl +# - libressl and openssl provide more features to ffmpeg than gnutls +# +# The ordering is thus: libressl > openssl > gnutls +RDEPEND="${RDEPEND} + libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] ) + !libressl? ( + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) + ) +" + +DEPEND="${RDEPEND} + >=sys-devel/make-3.81 + doc? ( sys-apps/texinfo ) + >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] + ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) + test? ( net-misc/wget sys-devel/bc ) + v4l? ( sys-kernel/linux-headers ) +" + +# Code requiring FFmpeg to be built under gpl license +GPL_REQUIRED_USE=" + postproc? ( gpl ) + frei0r? ( gpl ) + cdio? ( gpl ) + samba? ( gpl ) + encode? ( + x264? ( gpl ) + x265? ( gpl ) + xvid? ( gpl ) + X? ( !xcb? ( gpl ) ) + ) +" +REQUIRED_USE=" + libv4l? ( v4l ) + fftools_cws2fws? ( zlib ) + test? ( encode ) + ${GPL_REQUIRED_USE} + ${CPU_REQUIRED_USE}" +RESTRICT=" + gpl? ( openssl? ( bindist ) fdk? ( bindist ) libressl? ( bindist ) ) +" + +S=${WORKDIR}/${P/_/-} + +PATCHES=( + "${FILESDIR}"/chromium-r1.patch +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libavutil/avconfig.h +) + +build_separate_libffmpeg() { + use opencl +} + +src_prepare() { + if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot + export revision=git-N-${FFMPEG_REVISION} + fi + default + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die +} + +multilib_src_configure() { + local myconf=( ${EXTRA_FFMPEG_CONF} ) + + local ffuse=( "${FFMPEG_FLAG_MAP[@]}" ) + use openssl || use libressl && use gpl && myconf+=( --enable-nonfree ) + use samba && myconf+=( --enable-version3 ) + + # Encoders + if use encode ; then + ffuse+=( "${FFMPEG_ENCODER_FLAG_MAP[@]}" ) + + # Licensing. + if use amrenc ; then + myconf+=( --enable-version3 ) + fi + else + myconf+=( --disable-encoders ) + fi + + # Indevs + use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 ) + for i in alsa oss jack ; do + use ${i} || myconf+=( --disable-indev=${i} ) + done + + # Outdevs + for i in alsa oss ; do + use ${i} || myconf+=( --disable-outdev=${i} ) + done + + # Decoders + use amr && myconf+=( --enable-version3 ) + use gmp && myconf+=( --enable-version3 ) + use fdk && use gpl && myconf+=( --enable-nonfree ) + + for i in "${ffuse[@]#+}" ; do + myconf+=( $(use_enable ${i%:*} ${i#*:}) ) + done + + # Incompatible features: openssl or libressl and gnutls + if use libressl ; then + myconf+=( --disable-gnutls --disable-openssl ) + elif use openssl ; then + myconf+=( --disable-gnutls ) + fi + + # (temporarily) disable non-multilib deps + if ! multilib_is_native_abi; then + for i in frei0r libzmq ; do + myconf+=( --disable-${i} ) + done + fi + + # CPU features + for i in "${CPU_FEATURES_MAP[@]}" ; do + use ${i%:*} || myconf+=( --disable-${i#*:} ) + done + + if use pic ; then + myconf+=( --enable-pic ) + # disable asm code if PIC is required + # as the provided asm decidedly is not PIC for x86. + [[ ${ABI} == x86 ]] && myconf+=( --disable-asm ) + fi + [[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004 + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag mcpu) $(get-flag march) ; do + [[ ${i} = native ]] && i="host" # bug #273421 + myconf+=( --cpu=${i} ) + break + done + + # LTO support, bug #566282 + is-flagq "-flto*" && myconf+=( "--enable-lto" ) + + # Mandatory configuration + myconf=( + --enable-avfilter + --enable-avresample + --disable-stripping + # This is only for hardcoded cflags; those are used in configure checks that may + # interfere with proper detections, bug #671746 and bug #645778 + # We use optflags, so that overrides them anyway. + --disable-optimizations + --disable-libcelt # bug #664158 + "${myconf[@]}" + ) + + # cross compile support + if tc-is-cross-compiler ; then + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) + case ${CHOST} in + *freebsd*) + myconf+=( --target-os=freebsd ) + ;; + *mingw32*) + myconf+=( --target-os=mingw32 ) + ;; + *linux*) + myconf+=( --target-os=linux ) + ;; + esac + fi + + # doc + myconf+=( + $(multilib_native_use_enable doc) + $(multilib_native_use_enable doc htmlpages) + $(multilib_native_enable manpages) + ) + + set -- "${S}/configure" \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --shlibdir="${EPREFIX}/usr/$(get_libdir)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ + --mandir="${EPREFIX}/usr/share/man" \ + --enable-shared \ + --cc="$(tc-getCC)" \ + --cxx="$(tc-getCXX)" \ + --ar="$(tc-getAR)" \ + --optflags="${CFLAGS}" \ + $(use_enable static-libs static) \ + "${myconf[@]}" + echo "${@}" + "${@}" || die + + if multilib_is_native_abi && use chromium && build_separate_libffmpeg; then + einfo "Configuring for Chromium" + mkdir -p ../chromium || die + pushd ../chromium >/dev/null || die + set -- "${@}" \ + --disable-shared \ + --enable-static \ + --enable-pic \ + --disable-opencl + echo "${@}" + "${@}" || die + popd >/dev/null || die + fi +} + +multilib_src_compile() { + emake V=1 + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + emake V=1 tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Compiling for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 libffmpeg + popd >/dev/null || die + else + emake V=1 libffmpeg + fi + fi + fi +} + +multilib_src_install() { + emake V=1 DESTDIR="${D}" install install-doc + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + dobin tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Installing for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 DESTDIR="${D}" install-libffmpeg + popd >/dev/null || die + else + emake V=1 DESTDIR="${D}" install-libffmpeg + fi + fi + fi +} + +multilib_src_install_all() { + dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges + [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" +} + +multilib_src_test() { + LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \ + emake V=1 fate +} |