# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Fabian Schoelzel <myfirstname.mylastname@googlemail.com>
# Contributor: funkyou <spamopfer@nickname.berlin.de>
# Contributor: tardo <tardo@nagi-fanboi.net>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
# Contributor: Gustavo Alvarez <sl1pkn07@gmail.com>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - delete x86 file so that it's not picked up for the build

pkgname=mlt
pkgver=6.22.0
pkgrel=2
pkgdesc="An open source multimedia framework"
arch=(x86_64)
url="https://www.mltframework.org"
license=(GPL)
depends=(libebur128)
optdepends=('sdl_image: SDL1 plugin'
        'sdl2: SDL2 plugin'
        'libsamplerate: libavresample plugin'
        'sox: SOX (Audio Swiss Army Knife) plugin'
        'ffmpeg: ffmpeg plugin'
        'vid.stab: video stabilize plugin'
        'qt5-svg: Qt5 plugins'
        'jack: JACK sound output plugin'
        'ladspa: LADSPA plugins'
        'libexif: auto rotate plugin'
        'frei0r-plugins: for additional effects'
        'movit: opengl plugin'
        'opencv: openCV plugin'
        'rubberband: rubberband plugin'
        'gdk-pixbuf2: gdk plugin'
        'pango: gdk plugin'
        'rtaudio: rtaudio plugin'
        'python: python bindings')
makedepends=(cmake ladspa frei0r-plugins libdv sdl_image libsamplerate sox ffmpeg vid.stab qt5-svg
             jack libexif python swig movit eigen opencv rubberband gdk-pixbuf2 pango rtaudio imagemagick)
conflicts=(python-mlt)
provides=(python-mlt)
replaces=(python-mlt)
source=($pkgname-$pkgver.tar.gz::"https://github.com/mltframework/mlt/archive/v$pkgver.tar.gz"
        mlt-cmake-fix-build.patch
        mlt-cmake-fix-python-bindings.patch)
sha256sums=('3392d70c528d7f32e78329232b1b93a5a36b058215f664953090315132b797e5'
            '5871dee1c2153cf70d2a27782eba38eb694421dd089d83636b2a7f1d60938264'
            'db0430533324ad65c1846e5391d012b97f856025ce661241f5584b681dfe0075')

prepare() {
  patch -d $pkgname-$pkgver -p1 -i ../mlt-cmake-fix-build.patch # Fix build with cmake
  patch -d $pkgname-$pkgver -p1 -i ../mlt-cmake-fix-python-bindings.patch # Fix python bindings build with cmake

  rm $pkgname-$pkgver/src/modules/core/composite_line_yuv_sse2_simple.c
}

build() {
  cmake -B build -S $pkgname-$pkgver \
    -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
  cmake --build build

# python bindings
  cd $pkgname-$pkgver/src/swig/python
  ./build
}

package() {
  DESTDIR="$pkgdir" cmake --install build

# Install python bindings
  _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
  cd $pkgname-$pkgver/src/swig/python
  mkdir -p "$pkgdir/$_pythonpath"
  install -m755 mlt.py "$pkgdir/$_pythonpath" 
  install -m755 _mlt.so "$pkgdir/$_pythonpath"

# Compress lumas
  for pgm in "$pkgdir"/usr/share/mlt/lumas/*/*.pgm; do
    convert $pgm{,.png}
    rm -f $pgm
  done
}