1 # Copyright 1999-2024 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( python3_{10..13} )
7 inherit python-single-r1 cmake flag-o-matic
9 DESCRIPTION="Open source multimedia framework for television broadcasting"
10 HOMEPAGE="https://www.mltframework.org/"
11 SRC_URI="https://github.com/mltframework/${PN}/releases/download/v${PV}/${P}.tar.gz"
15 KEYWORDS="amd64 arm64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
16 IUSE="debug ffmpeg frei0r gtk jack libsamplerate opencv opengl python qt6 rtaudio rubberband sdl test vdpau vidstab xine xml"
18 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
20 # Needs unpackaged 'kwalify'
23 # rtaudio will use OSS on non linux OSes
24 # Qt already needs FFTW/PLUS so let's just always have it on to ensure
25 # MLT is useful: bug #603168.
27 >=media-libs/libebur128-1.2.2:=
29 ffmpeg? ( media-video/ffmpeg:0=[vdpau?] )
30 frei0r? ( media-plugins/frei0r-plugins )
36 >=dev-libs/libxml2-2.5
40 libsamplerate? ( >=media-libs/libsamplerate-0.1.2 )
42 >=media-libs/opencv-4.5.1:=[contrib]
44 media-libs/opencv[ffmpeg]
45 media-libs/opencv[gstreamer]
52 python? ( ${PYTHON_DEPS} )
55 dev-qt/qtbase:6[gui,network,opengl,widgets,xml]
61 >=media-libs/rtaudio-4.1.2
62 kernel_linux? ( media-libs/alsa-lib )
64 rubberband? ( media-libs/rubberband:= )
66 media-libs/libsdl2[X,opengl,video]
69 vidstab? ( media-libs/vidstab )
70 xine? ( >=media-libs/xine-lib-1.1.2_pre20060328-r7 )
71 xml? ( >=dev-libs/libxml2-2.5 )
73 # java? ( >=virtual/jre-1.8:* )
74 # perl? ( dev-lang/perl )
75 # php? ( dev-lang/php )
76 # ruby? ( ${RUBY_DEPS} )
77 # sox? ( media-sound/sox )
78 # tcl? ( dev-lang/tcl:0= )
82 python? ( >=dev-lang/swig-2.0 )
85 DOCS=( AUTHORS NEWS README.md )
89 "${FILESDIR}"/${PN}-6.10.0-swig-underlinking.patch
90 "${FILESDIR}"/${PN}-6.22.1-no_lua_bdepend.patch
91 "${FILESDIR}"/${PN}-7.0.1-cmake-symlink.patch
92 # in git master, https://github.com/mltframework/mlt/issues/1020
93 "${FILESDIR}"/${P}-fix-32bit.patch
97 use python && python-single-r1_pkg_setup
101 # Respect CFLAGS LDFLAGS when building shared libraries. Bug #308873
103 sed -i "/mlt.so/s/ -lmlt++ /& ${CFLAGS} ${LDFLAGS} /" src/swig/python/build || die
104 python_fix_shebang src/swig/python
111 # Workaround for bug #919981
112 append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
115 -DCMAKE_SKIP_RPATH=ON
125 -DMOD_SPATIALAUDIO=OFF # TODO: package libspatialaudio
127 -DUSE_VST2=OFF # TODO
128 -DMOD_AVFORMAT=$(usex ffmpeg)
129 -DMOD_FREI0R=$(usex frei0r)
130 -DMOD_GDK=$(usex gtk)
131 -DMOD_JACKRACK=$(usex jack)
132 -DMOD_RESAMPLE=$(usex libsamplerate)
133 -DMOD_OPENCV=$(usex opencv)
134 -DMOD_MOVIT=$(usex opengl)
135 -DMOD_QT6=$(usex qt6)
136 -DMOD_GLAXNIMATE_QT6=$(usex qt6)
137 -DMOD_RTAUDIO=$(usex rtaudio)
138 -DMOD_RUBBERBAND=$(usex rubberband)
139 -DMOD_SDL2=$(usex sdl)
140 -DBUILD_TESTING=OFF # Needs unpackaged 'kwalify'; restricted anyway.
141 -DMOD_VIDSTAB=$(usex vidstab)
142 -DMOD_XINE=$(usex xine)
143 -DMOD_XML=$(usex xml)
146 # TODO: rework upstream CMake to allow controlling MMX/SSE/SSE2
147 # TODO: add swig language bindings?
148 # see also https://www.mltframework.org/twiki/bin/view/MLT/ExtremeMakeover
153 -DPython3_EXECUTABLE="${PYTHON}"
163 insinto /usr/share/${PN}
167 # Install SWIG bindings
173 dodoc "${S}"/src/swig/python/play.py