From 4298f4e42e759fbca16a1b9609c69aa3735e71c7 Mon Sep 17 00:00:00 2001 From: alihanozturk Date: Sun, 12 Jun 2016 21:29:16 +0300 Subject: [PATCH] ffmpeg, libvpx, x264, x265:update --- multimedia/video/ffmpeg/actions.py | 2 +- multimedia/video/ffmpeg/pspec.xml | 10 +- multimedia/video/libvpx/actions.py | 15 +- ...001-Fix-for-issue-1114-compile-error.patch | 316 ++++++++++++++++++ multimedia/video/libvpx/pspec.xml | 14 +- multimedia/video/x264/pspec.xml | 15 +- multimedia/video/x265/actions.py | 13 +- .../x265/files/x265-1.9-enable_static-1.patch | 76 +++++ multimedia/video/x265/pspec.xml | 12 +- 9 files changed, 451 insertions(+), 22 deletions(-) create mode 100644 multimedia/video/libvpx/files/0001-Fix-for-issue-1114-compile-error.patch create mode 100644 multimedia/video/x265/files/x265-1.9-enable_static-1.patch diff --git a/multimedia/video/ffmpeg/actions.py b/multimedia/video/ffmpeg/actions.py index af656b3ab4..e156567e3f 100644 --- a/multimedia/video/ffmpeg/actions.py +++ b/multimedia/video/ffmpeg/actions.py @@ -54,7 +54,6 @@ def setup(): --enable-libcelt \ --enable-frei0r \ --enable-libcdio \ - --enable-libvo-aacenc \ --enable-libvo-amrwbenc \ --enable-nonfree \ --enable-libfaac") @@ -62,6 +61,7 @@ def setup(): def build(): autotools.make() autotools.make('tools/qt-faststart') + autotools.make("doc/ff{mpeg,play,server}.1") def install(): autotools.rawInstall("DESTDIR=%s install-man" % get.installDIR()) diff --git a/multimedia/video/ffmpeg/pspec.xml b/multimedia/video/ffmpeg/pspec.xml index 00083bac02..53b5ca0e12 100644 --- a/multimedia/video/ffmpeg/pspec.xml +++ b/multimedia/video/ffmpeg/pspec.xml @@ -15,7 +15,7 @@ app:console A command-line tool to record, convert and stream audio and video FFmpeg is a complete solution to record, convert and stream audio and video. - http://ffmpeg.org/releases/ffmpeg-2.8.6.tar.bz2 + http://ffmpeg.org/releases/ffmpeg-3.0.2.tar.xz freetype-devel faac-devel @@ -43,6 +43,7 @@ rtmpdump-devel schroedinger-devel speex-devel + yasm-devel libv4l-devel libvo-amrwbenc-devel libvo-aacenc-devel @@ -124,6 +125,13 @@ + + 2016-06-12 + 3.0.2 + Version Bump + Pisi Linux Community + admin@pisilinux.org + 2016-06-09 2.8.6 diff --git a/multimedia/video/libvpx/actions.py b/multimedia/video/libvpx/actions.py index 109f8cb1a5..ee74e953fe 100644 --- a/multimedia/video/libvpx/actions.py +++ b/multimedia/video/libvpx/actions.py @@ -9,29 +9,26 @@ from pisi.actionsapi import pisitools from pisi.actionsapi import shelltools from pisi.actionsapi import get -#WorkDir = "libvpx" -# libdir = "lib64" if get.ARCH() == "x86_64" else "lib" libdir = "lib" def setup(): - shelltools.export("LC_ALL", "en_US.UTF-8") - shelltools.export("CFLAGS", get.CFLAGS().replace("-ggdb3", "")) - autotools.rawConfigure("--prefix=/usr \ --libdir=/usr/%s \ --enable-pic \ --enable-vp8 \ + --enable-vp9 \ + --enable-vp9-highbitdepth \ --enable-shared \ --enable-runtime-cpu-detect \ --enable-postproc \ - --enable-multithread \ + --enable-experimental \ + --enable-spatial-svc \ --disable-install-docs \ - --disable-debug \ - --disable-debug-libs" % libdir) + --disable-install-srcs" % libdir) def build(): - autotools.make("verbose=true") + autotools.make() def install(): autotools.rawInstall("DESTDIR=%s" % get.installDIR()) diff --git a/multimedia/video/libvpx/files/0001-Fix-for-issue-1114-compile-error.patch b/multimedia/video/libvpx/files/0001-Fix-for-issue-1114-compile-error.patch new file mode 100644 index 0000000000..75de1036a1 --- /dev/null +++ b/multimedia/video/libvpx/files/0001-Fix-for-issue-1114-compile-error.patch @@ -0,0 +1,316 @@ +From 7361ef732b432e153496c30da66081d7e530c7f6 Mon Sep 17 00:00:00 2001 +From: Peter de Rivaz +Date: Mon, 14 Dec 2015 16:35:29 +0000 +Subject: [PATCH] Fix for issue 1114 compile error + +In 32-bit build with --enable-shared, there is a lot of +register pressure and register src_strideq is reused. +The code needs to use the stack based version of src_stride, +but this doesn't compile when used in an lea instruction. + +This patch also fixes a related segmentation fault caused by the +implementation using src_strideq even though it has been +reused. + +This patch also fixes the HBD subpel variance tests that fail +when compiled without disable-optimizations. +These failures were caused by local variables in the assembler +routines colliding with the caller's stack frame. + +Change-Id: Ice9d4dafdcbdc6038ad5ee7c1c09a8f06deca362 +--- + vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm | 18 +++---- + vpx_dsp/x86/highbd_variance_sse2.c | 64 ++++++++++++++---------- + 2 files changed, 44 insertions(+), 38 deletions(-) + +diff --git a/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm b/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm +index 22d52a2..30ee81b 100644 +--- a/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm ++++ b/vpx_dsp/x86/highbd_subpel_variance_impl_sse2.asm +@@ -79,20 +79,13 @@ SECTION .text + + %macro INC_SRC_BY_SRC_STRIDE 0 + %if ARCH_X86=1 && CONFIG_PIC=1 +- lea srcq, [srcq + src_stridemp*2] ++ add srcq, src_stridemp ++ add srcq, src_stridemp + %else + lea srcq, [srcq + src_strideq*2] + %endif + %endmacro + +-%macro INC_SRC_BY_SRC_2STRIDE 0 +-%if ARCH_X86=1 && CONFIG_PIC=1 +- lea srcq, [srcq + src_stridemp*4] +-%else +- lea srcq, [srcq + src_strideq*4] +-%endif +-%endmacro +- + %macro SUBPEL_VARIANCE 1-2 0 ; W + %define bilin_filter_m bilin_filter_m_sse2 + %define filter_idx_shift 5 +@@ -984,8 +977,9 @@ SECTION .text + .x_other_y_other_loop: + movu m2, [srcq] + movu m4, [srcq+2] +- movu m3, [srcq+src_strideq*2] +- movu m5, [srcq+src_strideq*2+2] ++ INC_SRC_BY_SRC_STRIDE ++ movu m3, [srcq] ++ movu m5, [srcq+2] + pmullw m2, filter_x_a + pmullw m4, filter_x_b + paddw m2, filter_rnd +@@ -1018,7 +1012,7 @@ SECTION .text + SUM_SSE m0, m2, m4, m3, m6, m7 + mova m0, m5 + +- INC_SRC_BY_SRC_2STRIDE ++ INC_SRC_BY_SRC_STRIDE + lea dstq, [dstq + dst_strideq * 4] + %if %2 == 1 ; avg + add secq, sec_str +diff --git a/vpx_dsp/x86/highbd_variance_sse2.c b/vpx_dsp/x86/highbd_variance_sse2.c +index b45331c..81ec5db 100644 +--- a/vpx_dsp/x86/highbd_variance_sse2.c ++++ b/vpx_dsp/x86/highbd_variance_sse2.c +@@ -243,13 +243,18 @@ unsigned int vpx_highbd_12_mse8x8_sse2(const uint8_t *src8, int src_stride, + } + + #if CONFIG_USE_X86INC ++// The 2 unused parameters are place holders for PIC enabled build. ++// These definitions are for functions defined in ++// highbd_subpel_variance_impl_sse2.asm + #define DECL(w, opt) \ + int vpx_highbd_sub_pixel_variance##w##xh_##opt(const uint16_t *src, \ + ptrdiff_t src_stride, \ + int x_offset, int y_offset, \ + const uint16_t *dst, \ + ptrdiff_t dst_stride, \ +- int height, unsigned int *sse); ++ int height, \ ++ unsigned int *sse, \ ++ void *unused0, void *unused); + #define DECLS(opt1, opt2) \ + DECL(8, opt1); \ + DECL(16, opt1) +@@ -274,7 +279,7 @@ uint32_t vpx_highbd_8_sub_pixel_variance##w##x##h##_##opt(const uint8_t *src8, \ + int se = vpx_highbd_sub_pixel_variance##wf##xh_##opt(src, src_stride, \ + x_offset, y_offset, \ + dst, dst_stride, h, \ +- &sse); \ ++ &sse, NULL, NULL); \ + if (w > wf) { \ + unsigned int sse2; \ + int se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt(src + 16, \ +@@ -282,19 +287,20 @@ uint32_t vpx_highbd_8_sub_pixel_variance##w##x##h##_##opt(const uint8_t *src8, \ + x_offset, y_offset, \ + dst + 16, \ + dst_stride, \ +- h, &sse2); \ ++ h, &sse2, \ ++ NULL, NULL); \ + se += se2; \ + sse += sse2; \ + if (w > wf * 2) { \ + se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt(src + 32, src_stride, \ + x_offset, y_offset, \ + dst + 32, dst_stride, \ +- h, &sse2); \ ++ h, &sse2, NULL, NULL); \ + se += se2; \ + sse += sse2; \ + se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt( \ + src + 48, src_stride, x_offset, y_offset, \ +- dst + 48, dst_stride, h, &sse2); \ ++ dst + 48, dst_stride, h, &sse2, NULL, NULL); \ + se += se2; \ + sse += sse2; \ + } \ +@@ -312,7 +318,7 @@ uint32_t vpx_highbd_10_sub_pixel_variance##w##x##h##_##opt( \ + int se = vpx_highbd_sub_pixel_variance##wf##xh_##opt(src, src_stride, \ + x_offset, y_offset, \ + dst, dst_stride, \ +- h, &sse); \ ++ h, &sse, NULL, NULL); \ + if (w > wf) { \ + uint32_t sse2; \ + int se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt(src + 16, \ +@@ -320,20 +326,21 @@ uint32_t vpx_highbd_10_sub_pixel_variance##w##x##h##_##opt( \ + x_offset, y_offset, \ + dst + 16, \ + dst_stride, \ +- h, &sse2); \ ++ h, &sse2, \ ++ NULL, NULL); \ + se += se2; \ + sse += sse2; \ + if (w > wf * 2) { \ + se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt(src + 32, src_stride, \ + x_offset, y_offset, \ + dst + 32, dst_stride, \ +- h, &sse2); \ ++ h, &sse2, NULL, NULL); \ + se += se2; \ + sse += sse2; \ + se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt(src + 48, src_stride, \ + x_offset, y_offset, \ + dst + 48, dst_stride, \ +- h, &sse2); \ ++ h, &sse2, NULL, NULL); \ + se += se2; \ + sse += sse2; \ + } \ +@@ -359,27 +366,27 @@ uint32_t vpx_highbd_12_sub_pixel_variance##w##x##h##_##opt( \ + int se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt( \ + src + (start_row * src_stride), src_stride, \ + x_offset, y_offset, dst + (start_row * dst_stride), \ +- dst_stride, height, &sse2); \ ++ dst_stride, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + if (w > wf) { \ + se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt( \ + src + 16 + (start_row * src_stride), src_stride, \ + x_offset, y_offset, dst + 16 + (start_row * dst_stride), \ +- dst_stride, height, &sse2); \ ++ dst_stride, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + if (w > wf * 2) { \ + se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt( \ + src + 32 + (start_row * src_stride), src_stride, \ + x_offset, y_offset, dst + 32 + (start_row * dst_stride), \ +- dst_stride, height, &sse2); \ ++ dst_stride, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + se2 = vpx_highbd_sub_pixel_variance##wf##xh_##opt( \ + src + 48 + (start_row * src_stride), src_stride, \ + x_offset, y_offset, dst + 48 + (start_row * dst_stride), \ +- dst_stride, height, &sse2); \ ++ dst_stride, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + }\ +@@ -410,6 +417,7 @@ FNS(sse2, sse); + #undef FNS + #undef FN + ++// The 2 unused parameters are place holders for PIC enabled build. + #define DECL(w, opt) \ + int vpx_highbd_sub_pixel_avg_variance##w##xh_##opt(const uint16_t *src, \ + ptrdiff_t src_stride, \ +@@ -419,7 +427,8 @@ int vpx_highbd_sub_pixel_avg_variance##w##xh_##opt(const uint16_t *src, \ + const uint16_t *sec, \ + ptrdiff_t sec_stride, \ + int height, \ +- unsigned int *sse); ++ unsigned int *sse, \ ++ void *unused0, void *unused); + #define DECLS(opt1) \ + DECL(16, opt1) \ + DECL(8, opt1) +@@ -439,23 +448,23 @@ uint32_t vpx_highbd_8_sub_pixel_avg_variance##w##x##h##_##opt( \ + uint16_t *sec = CONVERT_TO_SHORTPTR(sec8); \ + int se = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src, src_stride, x_offset, \ +- y_offset, dst, dst_stride, sec, w, h, &sse); \ ++ y_offset, dst, dst_stride, sec, w, h, &sse, NULL, NULL); \ + if (w > wf) { \ + uint32_t sse2; \ + int se2 = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src + 16, src_stride, x_offset, y_offset, \ +- dst + 16, dst_stride, sec + 16, w, h, &sse2); \ ++ dst + 16, dst_stride, sec + 16, w, h, &sse2, NULL, NULL); \ + se += se2; \ + sse += sse2; \ + if (w > wf * 2) { \ + se2 = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src + 32, src_stride, x_offset, y_offset, \ +- dst + 32, dst_stride, sec + 32, w, h, &sse2); \ ++ dst + 32, dst_stride, sec + 32, w, h, &sse2, NULL, NULL); \ + se += se2; \ + sse += sse2; \ + se2 = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src + 48, src_stride, x_offset, y_offset, \ +- dst + 48, dst_stride, sec + 48, w, h, &sse2); \ ++ dst + 48, dst_stride, sec + 48, w, h, &sse2, NULL, NULL); \ + se += se2; \ + sse += sse2; \ + } \ +@@ -475,14 +484,15 @@ uint32_t vpx_highbd_10_sub_pixel_avg_variance##w##x##h##_##opt( \ + int se = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src, src_stride, x_offset, \ + y_offset, dst, dst_stride, \ +- sec, w, h, &sse); \ ++ sec, w, h, &sse, NULL, NULL); \ + if (w > wf) { \ + uint32_t sse2; \ + int se2 = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src + 16, src_stride, \ + x_offset, y_offset, \ + dst + 16, dst_stride, \ +- sec + 16, w, h, &sse2); \ ++ sec + 16, w, h, &sse2, \ ++ NULL, NULL); \ + se += se2; \ + sse += sse2; \ + if (w > wf * 2) { \ +@@ -490,14 +500,16 @@ uint32_t vpx_highbd_10_sub_pixel_avg_variance##w##x##h##_##opt( \ + src + 32, src_stride, \ + x_offset, y_offset, \ + dst + 32, dst_stride, \ +- sec + 32, w, h, &sse2); \ ++ sec + 32, w, h, &sse2, \ ++ NULL, NULL); \ + se += se2; \ + sse += sse2; \ + se2 = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src + 48, src_stride, \ + x_offset, y_offset, \ + dst + 48, dst_stride, \ +- sec + 48, w, h, &sse2); \ ++ sec + 48, w, h, &sse2, \ ++ NULL, NULL); \ + se += se2; \ + sse += sse2; \ + } \ +@@ -525,7 +537,7 @@ uint32_t vpx_highbd_12_sub_pixel_avg_variance##w##x##h##_##opt( \ + int se2 = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src + (start_row * src_stride), src_stride, x_offset, \ + y_offset, dst + (start_row * dst_stride), dst_stride, \ +- sec + (start_row * w), w, height, &sse2); \ ++ sec + (start_row * w), w, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + if (w > wf) { \ +@@ -533,7 +545,7 @@ uint32_t vpx_highbd_12_sub_pixel_avg_variance##w##x##h##_##opt( \ + src + 16 + (start_row * src_stride), src_stride, \ + x_offset, y_offset, \ + dst + 16 + (start_row * dst_stride), dst_stride, \ +- sec + 16 + (start_row * w), w, height, &sse2); \ ++ sec + 16 + (start_row * w), w, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + if (w > wf * 2) { \ +@@ -541,14 +553,14 @@ uint32_t vpx_highbd_12_sub_pixel_avg_variance##w##x##h##_##opt( \ + src + 32 + (start_row * src_stride), src_stride, \ + x_offset, y_offset, \ + dst + 32 + (start_row * dst_stride), dst_stride, \ +- sec + 32 + (start_row * w), w, height, &sse2); \ ++ sec + 32 + (start_row * w), w, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + se2 = vpx_highbd_sub_pixel_avg_variance##wf##xh_##opt( \ + src + 48 + (start_row * src_stride), src_stride, \ + x_offset, y_offset, \ + dst + 48 + (start_row * dst_stride), dst_stride, \ +- sec + 48 + (start_row * w), w, height, &sse2); \ ++ sec + 48 + (start_row * w), w, height, &sse2, NULL, NULL); \ + se += se2; \ + long_sse += sse2; \ + } \ +-- +2.7.0 \ No newline at end of file diff --git a/multimedia/video/libvpx/pspec.xml b/multimedia/video/libvpx/pspec.xml index 1252c0ad3f..1cf84b4306 100644 --- a/multimedia/video/libvpx/pspec.xml +++ b/multimedia/video/libvpx/pspec.xml @@ -13,16 +13,21 @@ library WebM VP8 Codec SDK libvpx is the VP8 development library usually used in WebM and similiar formats. - http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.4.0.tar.bz2 + https://github.com/webmproject/libvpx/archive/v1.5.0.tar.gz libgcc + yasm-devel + 0001-Fix-for-issue-1114-compile-error.patch libvpx + + libgcc + /usr/bin /usr/lib @@ -43,6 +48,13 @@ + + 2016-06-12 + 1.5.0 + Version Bump + Pisi Linux Community + admin@pisilinux.org + 2016-06-09 1.4.0 diff --git a/multimedia/video/x264/pspec.xml b/multimedia/video/x264/pspec.xml index c0799a3e4d..65af4d817b 100644 --- a/multimedia/video/x264/pspec.xml +++ b/multimedia/video/x264/pspec.xml @@ -14,14 +14,20 @@ Open source H264/AVC encoder x264 is a free library for encoding H264/AVC video streams. - ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20141201-2245.tar.bz2 + ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 yasm-devel + ffmpeg-devel + l-smash-devel x264 + + ffmpeg + l-smash + /usr/bin /usr/lib @@ -41,6 +47,13 @@ + + 2016-06-12 + 2245.11062016 + Version Bump + Pisi Linux Community + admin@pisilinux.org + 2016-06-09 2245 diff --git a/multimedia/video/x265/actions.py b/multimedia/video/x265/actions.py index b73cc5e167..4cb8e1f80e 100644 --- a/multimedia/video/x265/actions.py +++ b/multimedia/video/x265/actions.py @@ -10,18 +10,15 @@ from pisi.actionsapi import cmaketools from pisi.actionsapi import shelltools def setup(): - pisitools.ldflags.add("-z,noexecstack") - shelltools.cd("build/linux") - cmaketools.configure("-DCMAKE_BUILD_TYPE=release", sourceDir="../../source") + shelltools.cd("source") + cmaketools.configure("-DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_STATIC=OFF") def build(): - shelltools.cd("build/linux") + shelltools.cd("source") cmaketools.make() def install(): - shelltools.cd("build/linux") + shelltools.cd("source") cmaketools.rawInstall("DESTDIR=%s" % get.installDIR()) - pisitools.remove("/usr/lib/libx265.a") - - diff --git a/multimedia/video/x265/files/x265-1.9-enable_static-1.patch b/multimedia/video/x265/files/x265-1.9-enable_static-1.patch new file mode 100644 index 0000000000..65e281e7a3 --- /dev/null +++ b/multimedia/video/x265/files/x265-1.9-enable_static-1.patch @@ -0,0 +1,76 @@ +Submitted By: Fernando de Oliveira +Date: 2015-10-24 +Initial Package Version: 1.8 +Upstream Status: not submitted +Origin: https://bitbucket.org/TimothyGu/x265/commits/a9aacc5a16116f1c663d1fcb62ad9a0985043b94/raw/ + https://bitbucket.org/TimothyGu/x265/commits/578c5ef3dff46db38e7c36a8d3c6198a65c9746b/raw/ +Description: Add ENABLE_STATIC:BOOL=ON, so that static lib + can be disabled. + + + +--- x265_11047/source/CMakeLists.txt.orig 2015-10-08 07:01:36.000000000 -0300 ++++ x265_11047/source/CMakeLists.txt 2015-10-24 17:10:57.919861668 -0300 +@@ -419,16 +419,21 @@ + endif() + + source_group(ASM FILES ${YASM_SRCS}) +-add_library(x265-static STATIC $ $ ${YASM_OBJS} ${YASM_SRCS}) +-if(NOT MSVC) +- set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265) +-endif() +-if(EXTRA_LIB) +- target_link_libraries(x265-static ${EXTRA_LIB}) +-endif() +-install(TARGETS x265-static +- LIBRARY DESTINATION ${LIB_INSTALL_DIR} +- ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) ++ ++option(ENABLE_STATIC "Build static library" ON) ++if(ENABLE_STATIC) ++ add_library(x265-static STATIC $ $ ${YASM_OBJS} ${YASM_SRCS}) ++ if(NOT MSVC) ++ set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265) ++ endif() ++ if(EXTRA_LIB) ++ target_link_libraries(x265-static ${EXTRA_LIB}) ++ endif() ++ install(TARGETS x265-static ++ LIBRARY DESTINATION ${LIB_INSTALL_DIR} ++ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) ++endif(ENABLE_STATIC) ++ + install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include) + + if(CMAKE_RC_COMPILER) +@@ -490,6 +495,10 @@ + endif() + endif() + ++if(NOT ENABLE_STATIC AND NOT ENABLE_SHARED) ++ message(FATAL_ERROR "Neither static nor shared libraries are enabled.") ++endif() ++ + if(X265_LATEST_TAG) + # convert lists of link libraries into -lstdc++ -lm etc.. + foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS}) +@@ -551,12 +560,14 @@ + else() + add_executable(cli ../COPYING ${InputFiles} ${OutputFiles} ${GETOPT} ${X265_RC_FILE} + ${ExportDefs} x265.cpp x265.h x265cli.h x265-extras.h x265-extras.cpp) +- if(WIN32 OR NOT ENABLE_SHARED OR INTEL_CXX) +- # The CLI cannot link to the shared library on Windows, it +- # requires internal APIs not exported from the DLL +- target_link_libraries(cli x265-static ${PLATFORM_LIBS}) +- else() ++ if(WIN32 AND NOT ENABLE_STATIC) ++ message(FATAL_ERROR "The CLI cannot link to shared library on Windows as it requires internal APIs not exported from the DLL.") ++ elseif(INTEL_CXX AND NOT ENABLE_STATIC) ++ message(FATAL_ERROR "The CLI cannot link to shared library with Intel C++ Compiler as it requires internal APIs not exported from the shared library.") ++ elseif(ENABLE_SHARED) + target_link_libraries(cli x265-shared ${PLATFORM_LIBS}) ++ else() ++ target_link_libraries(cli x265-static ${PLATFORM_LIBS}) + endif() + endif() + set_target_properties(cli PROPERTIES OUTPUT_NAME x265) diff --git a/multimedia/video/x265/pspec.xml b/multimedia/video/x265/pspec.xml index e4d408d6c0..68f9d20642 100644 --- a/multimedia/video/x265/pspec.xml +++ b/multimedia/video/x265/pspec.xml @@ -13,11 +13,14 @@ app:console Open source H265/EVC encoder x265 is a commercially funded open source implementation of the H.265/High Efficiency Video Coding (HEVC) compression standard. - https://bitbucket.org/multicoreware/x265/get/1.7.tar.bz2 + https://bitbucket.org/multicoreware/x265/downloads/x265_1.9.tar.gz yasm-devel cmake + + x265-1.9-enable_static-1.patch + @@ -44,6 +47,13 @@ + + 2016-06-12 + 1.9 + Version Bump + Pisi Linux Community + admin@pisilinux.org + 2016-06-09 1.7