diff options
-rw-r--r-- | .SRCINFO | 11 | ||||
-rw-r--r-- | PKGBUILD | 25 | ||||
-rw-r--r-- | video_filter_opencv_Fix_compilation.patch | 229 |
3 files changed, 244 insertions, 21 deletions
@@ -1,6 +1,6 @@ pkgbase = vlc-nightly pkgdesc = Multi-platform MPEG, VCD/DVD, and DivX player - nightly snapshot - pkgver = 4.0.0v20180405 + pkgver = 4.0.0v20180616 pkgrel = 1 url = https://www.videolan.org/vlc/ arch = x86_64 @@ -31,7 +31,6 @@ pkgbase = vlc-nightly makedepends = libssh2 makedepends = mesa makedepends = protobuf - makedepends = opencv makedepends = libnfs makedepends = mpg123 makedepends = libdvdread @@ -65,7 +64,6 @@ pkgbase = vlc-nightly makedepends = libfdk-aac makedepends = portaudio makedepends = sidplay2-libs - makedepends = daala-git makedepends = sndio depends = a52dec depends = libdvbpsi @@ -86,6 +84,7 @@ pkgbase = vlc-nightly depends = mesa depends = libtar depends = libxinerama + depends = libxkbcommon depends = libsecret depends = libarchive depends = qt5-base @@ -120,7 +119,6 @@ pkgbase = vlc-nightly optdepends = ttf-freefont: subtitle font optdepends = ttf-dejavu: subtitle font optdepends = libssh2: sftp access - optdepends = opencv: opencv video optdepends = libnfs: NFS access optdepends = mpg123: mpg123 codec optdepends = protobuf: chromecast streaming @@ -166,19 +164,18 @@ pkgbase = vlc-nightly optdepends = vcdimager: navigate VCD with libvcdinfo optdepends = schroedinger: schroedinger codec support optdepends = sidplay2-libs: for C64 sid demuxer - optdepends = daala-git: for Daala video support optdepends = sndio: for OpenBSD sndio audio output provides = vlc conflicts = vlc-plugin conflicts = vlc replaces = vlc-plugin options = !emptydirs - source = http://nightlies.videolan.org/build/source/vlc-4.0.0-20180405-0243-dev.tar.xz + source = http://nightlies.videolan.org/build/source/vlc-4.0.0-20180616-0251-dev.tar.xz source = update-vlc-plugin-cache.hook source = 0001-lua-fix-build-using-lua-5.3.patch source = 0002-Fix-compatibility-with-OpenCV-3.4.1.patch source = find-deps.py - sha256sums = a53d8d44c461d21c945f2ce80829c1139e38ff3ece3a576efaed74535802757d + sha256sums = 53de98bfed89eec7c43ce2ac217177a55ffee8f160ec1ecce1f3088ad5779c07 sha256sums = c6f60c50375ae688755557dbfc5bd4a90a8998f8cf4d356c10d872a1a0b44f3a sha256sums = 75ad8802bad1a79754e40fd107f5a6922c54f7467dadef8b439b49d410c8f7d2 sha256sums = 4e5c7582b2c1090e598710a6afa6062348f4e87b3909c3d9f12f12e08e0eea6c @@ -5,10 +5,10 @@ _appname_=vlc pkgname=${_appname_}-nightly -pkgver=4.0.0v20180405 +pkgver=4.0.0v20180616 _pkgver=4.0.0 -_snapshot_=20180405 -_snapver_=0243 +_snapshot_=20180616 +_snapver_=0251 _suffix_=dev _nightly_=${_snapshot_}-${_snapver_} pkgrel=1 @@ -18,7 +18,7 @@ arch=('x86_64') license=('LGPL2.1' 'GPL2') depends=('a52dec' 'libdvbpsi' 'libxpm' 'libdca' 'libproxy' 'libtiger' 'lua' 'libmatroska' 'taglib' 'libmpcdec' 'ffmpeg' 'faad2' 'libupnp' 'libmad' - 'libmpeg2' 'xcb-util-keysyms' 'mesa' 'libtar' 'libxinerama' 'libsecret' + 'libmpeg2' 'xcb-util-keysyms' 'mesa' 'libtar' 'libxinerama' 'libxkbcommon' 'libsecret' 'libarchive' 'qt5-base' 'qt5-x11extras' 'qt5-svg' 'freetype2' 'fribidi' 'harfbuzz' 'fontconfig' 'libxml2' 'gnutls' 'libplacebo' 'wayland-protocols') @@ -26,7 +26,7 @@ makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray' 'flac' 'kdelibs' 'libdc1394' 'libavc1394' 'libcaca' 'gtk3' 'librsvg' 'libgme' 'xosd' 'twolame' 'aalib' 'avahi' 'libsystemd' 'libmtp' 'libmicrodns' 'libdvdcss' 'smbclient' - 'vcdimager' 'libssh2' 'mesa' 'protobuf' 'opencv' 'libnfs' 'mpg123' + 'vcdimager' 'libssh2' 'mesa' 'protobuf' 'libnfs' 'mpg123' 'libdvdread' 'libdvdnav' 'libogg' 'libshout' 'libmodplug' 'libvpx' 'libvorbis' 'speex' 'opus' 'libtheora' 'libpng' 'libjpeg-turbo' 'libx265.so' 'libx264.so' 'zvbi' 'libass' @@ -34,7 +34,7 @@ makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray' 'libsamplerate' 'libsoxr' 'lirc' 'libgoom2' 'projectm' 'chromaprint' - 'libfdk-aac' 'portaudio' 'sidplay2-libs' 'daala-git' 'sndio') + 'libfdk-aac' 'portaudio' 'sidplay2-libs' 'sndio') optdepends=('avahi: service discovery using bonjour protocol' 'gst-plugins-base-libs: for libgst plugins' 'libdvdcss: decoding encrypted DVDs' @@ -56,7 +56,6 @@ optdepends=('avahi: service discovery using bonjour protocol' 'ttf-freefont: subtitle font ' 'ttf-dejavu: subtitle font' 'libssh2: sftp access' - 'opencv: opencv video' 'libnfs: NFS access' 'mpg123: mpg123 codec' 'protobuf: chromecast streaming' @@ -97,13 +96,11 @@ optdepends=('avahi: service discovery using bonjour protocol' 'ncurses: ncurses interface' 'libnotify: notification plugin' 'gtk3: notification plugin' - 'libfdk-aac: FDK AAC codec' 'portaudio: portaudio support' 'vcdimager: navigate VCD with libvcdinfo' 'schroedinger: schroedinger codec support' 'sidplay2-libs: for C64 sid demuxer' - 'daala-git: for Daala video support' 'sndio: for OpenBSD sndio audio output') conflicts=("${_appname_}-plugin" "${_appname_}") provides=("${_appname_}") @@ -125,7 +122,7 @@ prepare() { ./bootstrap patch -Np1 -i "${srcdir}/0001-lua-fix-build-using-lua-5.3.patch" - patch -Np1 -i "${srcdir}/0002-Fix-compatibility-with-OpenCV-3.4.1.patch" + #patch -Np1 -i "${srcdir}/0002-Fix-compatibility-with-OpenCV-3.4.1.patch" sed -i -e 's:truetype/ttf-dejavu:TTF:g' modules/visualization/projectm.cpp sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype/freetype.c sed 's|whoami|echo builduser|g' -i configure @@ -137,7 +134,7 @@ build() { export CFLAGS+=" -I/usr/include/samba-4.0" export CPPFLAGS+=" -I/usr/include/samba-4.0" - export CXXFLAGS+=" -std=gnu++11" + export CXXFLAGS+=" -std=c++11" export LUAC=/usr/bin/luac export LUA_LIBS="`pkg-config --libs lua`" export RCC=/usr/bin/rcc-qt5 @@ -153,7 +150,7 @@ build() { --enable-dvdread \ --enable-dvdnav \ --enable-bluray \ - --enable-opencv \ + --disable-opencv \ --enable-smbclient \ --enable-sftp \ --enable-nfs \ @@ -233,7 +230,7 @@ build() { --enable-vlc \ \ --libexecdir=/usr/lib \ - --enable-daala \ + --disable-daala \ --enable-fdkaac make V=1 } @@ -258,7 +255,7 @@ package() { # depends=("${_detected_depends[@]}" "${_undetected_depends[@]}") } -sha256sums=('a53d8d44c461d21c945f2ce80829c1139e38ff3ece3a576efaed74535802757d' +sha256sums=('53de98bfed89eec7c43ce2ac217177a55ffee8f160ec1ecce1f3088ad5779c07' 'c6f60c50375ae688755557dbfc5bd4a90a8998f8cf4d356c10d872a1a0b44f3a' '75ad8802bad1a79754e40fd107f5a6922c54f7467dadef8b439b49d410c8f7d2' '4e5c7582b2c1090e598710a6afa6062348f4e87b3909c3d9f12f12e08e0eea6c' diff --git a/video_filter_opencv_Fix_compilation.patch b/video_filter_opencv_Fix_compilation.patch new file mode 100644 index 000000000000..0f3e9934dda9 --- /dev/null +++ b/video_filter_opencv_Fix_compilation.patch @@ -0,0 +1,229 @@ + + modules/video_filter/opencv_wrapper.c | 108 +++++++++++++------------- + 1 file changed, 56 insertions(+), 52 deletions(-) + +diff --git a/modules/video_filter/opencv_wrapper.c b/modules/video_filter/opencv_wrapper.c +index ed48fe1f67..6560502fa6 100644 +--- a/modules/video_filter/opencv_wrapper.c ++++ b/modules/video_filter/opencv_wrapper.c +@@ -158,6 +158,8 @@ static int Create( vlc_object_t *p_this ) + if( p_filter->p_sys == NULL ) + return VLC_ENOMEM; + ++ filter_sys_t *p_sys = p_filter->p_sys; ++ + /* Load the internal OpenCV filter. + * + * This filter object is needed to call the internal OpenCV filter +@@ -167,39 +169,39 @@ static int Create( vlc_object_t *p_this ) + * We don't need to set up video formats for this filter as it not + * actually using a picture_t. + */ +- p_filter->p_sys->p_opencv = vlc_object_create( p_filter, sizeof(filter_t) ); +- if( !p_filter->p_sys->p_opencv ) { +- free( p_filter->p_sys ); ++ p_sys->p_opencv = vlc_object_create( p_filter, sizeof(filter_t) ); ++ if( !p_sys->p_opencv ) { ++ free( p_sys ); + return VLC_ENOMEM; + } + +- p_filter->p_sys->psz_inner_name = var_InheritString( p_filter, "opencv-filter-name" ); +- if( p_filter->p_sys->psz_inner_name ) +- p_filter->p_sys->p_opencv->p_module = +- module_need( p_filter->p_sys->p_opencv, ++ p_sys->psz_inner_name = var_InheritString( p_filter, "opencv-filter-name" ); ++ if( p_sys->psz_inner_name ) ++ p_sys->p_opencv->p_module = ++ module_need( p_sys->p_opencv, + "opencv internal filter", +- p_filter->p_sys->psz_inner_name, ++ p_sys->psz_inner_name, + true ); + +- if( !p_filter->p_sys->p_opencv->p_module ) ++ if( !p_sys->p_opencv->p_module ) + { +- msg_Err( p_filter, "can't open internal opencv filter: %s", p_filter->p_sys->psz_inner_name ); +- free( p_filter->p_sys->psz_inner_name ); +- p_filter->p_sys->psz_inner_name = NULL; +- vlc_object_release( p_filter->p_sys->p_opencv ); +- free( p_filter->p_sys ); ++ msg_Err( p_filter, "can't open internal opencv filter: %s", p_sys->psz_inner_name ); ++ free( p_sys->psz_inner_name ); ++ p_sys->psz_inner_name = NULL; ++ vlc_object_release( p_sys->p_opencv ); ++ free( p_sys ); + + return VLC_ENOMOD; + } + + + /* Init structure */ +- p_filter->p_sys->p_image = image_HandlerCreate( p_filter ); ++ p_sys->p_image = image_HandlerCreate( p_filter ); + for( int i = 0; i < VOUT_MAX_PLANES; i++ ) +- p_filter->p_sys->p_cv_image[i] = NULL; +- p_filter->p_sys->p_proc_image = NULL; +- p_filter->p_sys->p_to_be_freed = NULL; +- p_filter->p_sys->i_cv_image_size = 0; ++ p_sys->p_cv_image[i] = NULL; ++ p_sys->p_proc_image = NULL; ++ p_sys->p_to_be_freed = NULL; ++ p_sys->i_cv_image_size = 0; + + /* Retrieve and apply config */ + psz_chroma = var_InheritString( p_filter, "opencv-chroma" ); +@@ -207,16 +209,16 @@ static int Create( vlc_object_t *p_this ) + { + msg_Err( p_filter, "configuration variable %s empty, using 'grey'", + "opencv-chroma" ); +- p_filter->p_sys->i_internal_chroma = GREY; ++ p_sys->i_internal_chroma = GREY; + } else if( !strcmp( psz_chroma, "input" ) ) +- p_filter->p_sys->i_internal_chroma = CINPUT; ++ p_sys->i_internal_chroma = CINPUT; + else if( !strcmp( psz_chroma, "I420" ) ) +- p_filter->p_sys->i_internal_chroma = GREY; ++ p_sys->i_internal_chroma = GREY; + else if( !strcmp( psz_chroma, "RGB32" ) ) +- p_filter->p_sys->i_internal_chroma = RGB; ++ p_sys->i_internal_chroma = RGB; + else { + msg_Err( p_filter, "no valid opencv-chroma provided, using 'grey'" ); +- p_filter->p_sys->i_internal_chroma = GREY; ++ p_sys->i_internal_chroma = GREY; + } + + free( psz_chroma ); +@@ -226,28 +228,28 @@ static int Create( vlc_object_t *p_this ) + { + msg_Err( p_filter, "configuration variable %s empty, using 'input'", + "opencv-output" ); +- p_filter->p_sys->i_wrapper_output = VINPUT; ++ p_sys->i_wrapper_output = VINPUT; + } else if( !strcmp( psz_output, "none" ) ) +- p_filter->p_sys->i_wrapper_output = NONE; ++ p_sys->i_wrapper_output = NONE; + else if( !strcmp( psz_output, "input" ) ) +- p_filter->p_sys->i_wrapper_output = VINPUT; ++ p_sys->i_wrapper_output = VINPUT; + else if( !strcmp( psz_output, "processed" ) ) +- p_filter->p_sys->i_wrapper_output = PROCESSED; ++ p_sys->i_wrapper_output = PROCESSED; + else { + msg_Err( p_filter, "no valid opencv-output provided, using 'input'" ); +- p_filter->p_sys->i_wrapper_output = VINPUT; ++ p_sys->i_wrapper_output = VINPUT; + } + free( psz_output ); + +- p_filter->p_sys->f_scale = ++ p_sys->f_scale = + var_InheritFloat( p_filter, "opencv-scale" ); + + msg_Info(p_filter, "Configuration: opencv-scale: %f, opencv-chroma: %d, " + "opencv-output: %d, opencv-filter %s", +- p_filter->p_sys->f_scale, +- p_filter->p_sys->i_internal_chroma, +- p_filter->p_sys->i_wrapper_output, +- p_filter->p_sys->psz_inner_name); ++ p_sys->f_scale, ++ p_sys->i_internal_chroma, ++ p_sys->i_wrapper_output, ++ p_sys->psz_inner_name); + + #ifndef NDEBUG + msg_Dbg( p_filter, "opencv_wrapper successfully started" ); +@@ -266,14 +268,15 @@ static int Create( vlc_object_t *p_this ) + static void Destroy( vlc_object_t *p_this ) + { + filter_t* p_filter = (filter_t*)p_this; ++ filter_sys_t* p_sys = p_filter->p_sys; + ReleaseImages( p_filter ); + + // Release the internal OpenCV filter. +- module_unneed( p_filter->p_sys->p_opencv, p_filter->p_sys->p_opencv->p_module ); +- vlc_object_release( p_filter->p_sys->p_opencv ); +- p_filter->p_sys->p_opencv = NULL; ++ module_unneed( p_sys->p_opencv, p_sys->p_opencv->p_module ); ++ vlc_object_release( p_sys->p_opencv ); ++ p_sys->p_opencv = NULL; + +- free( p_filter->p_sys ); ++ free( p_sys ); + } + + /***************************************************************************** +@@ -403,6 +406,7 @@ static void VlcPictureToIplImage( filter_t* p_filter, picture_t* p_in ) + *****************************************************************************/ + static picture_t* Filter( filter_t* p_filter, picture_t* p_pic ) + { ++ filter_sys_t* p_sys = p_filter->p_sys; + picture_t* p_outpic = filter_NewPicture( p_filter ); + if( p_outpic == NULL ) { + msg_Err( p_filter, "couldn't get a p_outpic!" ); +@@ -413,20 +417,20 @@ static picture_t* Filter( filter_t* p_filter, picture_t* p_pic ) + video_format_t fmt_out; + + // Make a copy if we want to show the original input +- if (p_filter->p_sys->i_wrapper_output == VINPUT) ++ if (p_sys->i_wrapper_output == VINPUT) + picture_Copy( p_outpic, p_pic ); + + VlcPictureToIplImage( p_filter, p_pic ); + // Pass the image (as a pointer to the first IplImage*) to the + // internal OpenCV filter for processing. +- p_filter->p_sys->p_opencv->pf_video_filter( p_filter->p_sys->p_opencv, (picture_t*)&(p_filter->p_sys->p_cv_image[0]) ); ++ p_sys->p_opencv->pf_video_filter( p_sys->p_opencv, (picture_t*)&(p_sys->p_cv_image[0]) ); + +- if(p_filter->p_sys->i_wrapper_output == PROCESSED) { ++ if(p_sys->i_wrapper_output == PROCESSED) { + // Processed video +- if( (p_filter->p_sys->p_proc_image) && +- (p_filter->p_sys->p_proc_image->i_planes > 0) && +- (p_filter->p_sys->i_internal_chroma != CINPUT) ) { +- //p_filter->p_sys->p_proc_image->format.i_chroma = VLC_CODEC_RGB24; ++ if( (p_sys->p_proc_image) && ++ (p_sys->p_proc_image->i_planes > 0) && ++ (p_sys->i_internal_chroma != CINPUT) ) { ++ //p_sys->p_proc_image->format.i_chroma = VLC_CODEC_RGB24; + + memset( &fmt_out, 0, sizeof(video_format_t) ); + fmt_out = p_pic->format; +@@ -438,16 +442,16 @@ static picture_t* Filter( filter_t* p_filter, picture_t* p_pic ) + * main video output error: pictures leaked, trying to workaround + */ + picture_t* p_outpic_tmp = image_Convert( +- p_filter->p_sys->p_image, +- p_filter->p_sys->p_proc_image, +- &(p_filter->p_sys->p_proc_image->format), ++ p_sys->p_image, ++ p_sys->p_proc_image, ++ &(p_sys->p_proc_image->format), + &fmt_out ); + + picture_CopyPixels( p_outpic, p_outpic_tmp ); + CopyInfoAndRelease( p_outpic, p_outpic_tmp ); +- } else if( p_filter->p_sys->i_internal_chroma == CINPUT ) { +- picture_CopyPixels( p_outpic, p_filter->p_sys->p_proc_image ); +- picture_CopyProperties( p_outpic, p_filter->p_sys->p_proc_image ); ++ } else if( p_sys->i_internal_chroma == CINPUT ) { ++ picture_CopyPixels( p_outpic, p_sys->p_proc_image ); ++ picture_CopyProperties( p_outpic, p_sys->p_proc_image ); + } + } + +@@ -458,7 +462,7 @@ static picture_t* Filter( filter_t* p_filter, picture_t* p_pic ) + msg_Dbg( p_filter, "Filter() done" ); + #endif + +- if( p_filter->p_sys->i_wrapper_output != NONE ) { ++ if( p_sys->i_wrapper_output != NONE ) { + return p_outpic; + } else { // NONE + picture_Release( p_outpic ); +-- +2.17.0 + + |