git » mlt.git » commit 9527857

opencv 4.0 rebuild

author Antonio Rojas
2018-11-18 17:34:18 UTC
committer Antonio Rojas
2018-11-18 17:34:18 UTC
parent 90ba71d6de5f3b59d3cc7cce0318525a596c9f7f

opencv 4.0 rebuild

PKGBUILD +10 -3
mlt-opencv4.patch +40 -0

diff --git a/PKGBUILD b/PKGBUILD
index 042bf3a..a0f9cf3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,15 +9,22 @@
 pkgbase=mlt
 pkgname=(mlt mlt-python-bindings)
 pkgver=6.10.0
-pkgrel=1
+pkgrel=2
 pkgdesc="An open source multimedia framework"
 arch=(x86_64)
 url="http://www.mltframework.org"
 license=(GPL)
 makedepends=(ladspa frei0r-plugins libdv sdl_image libsamplerate sox ffmpeg vid.stab qt5-svg
              jack libexif python2 swig movit eigen opencv libebur128 gtk2)
-source=($pkgname-$pkgver.tar.gz::"https://github.com/mltframework/mlt/archive/v$pkgver.tar.gz")
-sha256sums=('e794f12b00d1b90009a1574237823a03ce0b3625638306d1369888375e90edff')
+source=($pkgname-$pkgver.tar.gz::"https://github.com/mltframework/mlt/archive/v$pkgver.tar.gz"
+        mlt-opencv4.patch)
+sha256sums=('e794f12b00d1b90009a1574237823a03ce0b3625638306d1369888375e90edff'
+            '71a8d05984d64cf93320ad28b9060b8689852e847d1e540632152175304ca02f')
+
+prepare() {
+  cd $pkgname-$pkgver
+  patch -p1 -i ../mlt-opencv4.patch # Fix build with openCV 4
+}
 
 build() {
   # mlt
diff --git a/mlt-opencv4.patch b/mlt-opencv4.patch
new file mode 100644
index 0000000..d0c9632
--- /dev/null
+++ b/mlt-opencv4.patch
@@ -0,0 +1,40 @@
+diff --git a/src/modules/opencv/configure b/src/modules/opencv/configure
+index 3322cb58..b630424e 100755
+--- a/src/modules/opencv/configure
++++ b/src/modules/opencv/configure
+@@ -12,18 +12,18 @@ OpenCV options:
+ EOF
+ 
+ else
+-	pkg-config --atleast-version=3.1.0 'opencv'
++	pkg-config --atleast-version=3.1.0 'opencv4'
+ 	if [ $? -eq 0 ]
+ 	then
+-                result=`pkg-config --libs opencv | grep "opencv_tracking"`
++                result=`pkg-config --libs opencv4 | grep "opencv_tracking"`
+                 if [ -z "$result" ]
+                 then
+                         echo "- OpenCV tracking contrib module NOT found, disabling OpenCV modules"
+                         touch ../disable-opencv
+                         exit 0
+                 else
+-                        echo "CFLAGS += $(pkg-config --cflags opencv)" >> config.mak
+-                        echo "LDFLAGS += $(pkg-config --libs opencv)" >> config.mak
++                        echo "CFLAGS += $(pkg-config --cflags opencv4)" >> config.mak
++                        echo "LDFLAGS += $(pkg-config --libs opencv4)" >> config.mak
+                 fi
+ 	else
+ 		echo "- OpenCV >= 3.1.0 NOT found, disabling OpenCV modules"
+diff --git a/src/modules/opencv/filter_opencv_tracker.cpp b/src/modules/opencv/filter_opencv_tracker.cpp
+index d49862fc..2a176ef8 100644
+--- a/src/modules/opencv/filter_opencv_tracker.cpp
++++ b/src/modules/opencv/filter_opencv_tracker.cpp
+@@ -110,7 +110,7 @@ static void analyze( mlt_filter filter, cv::Mat cvFrame, private_data* data, int
+         {
+ 		// Build tracker
+ 		data->algo = mlt_properties_get( filter_properties, "algo" );
+-#if CV_VERSION_MAJOR == 3 && CV_VERSION_MINOR >= 3
++#if (CV_VERSION_MAJOR == 3 && CV_VERSION_MINOR >= 3) || CV_VERSION_MAJOR >= 4
+ 		if ( !data->algo || *data->algo == '\0' || !strcmp(data->algo, "KCF" ) )
+ 		{
+ 			data->tracker = cv::TrackerKCF::create();