ffmpeg, libvpx, x264, x265:update

This commit is contained in:
alihanozturk
2016-06-12 21:29:16 +03:00
parent 88fa053c71
commit 4298f4e42e
9 changed files with 451 additions and 22 deletions
+1 -1
View File
@@ -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())
+9 -1
View File
@@ -15,7 +15,7 @@
<IsA>app:console</IsA>
<Summary>A command-line tool to record, convert and stream audio and video</Summary>
<Description>FFmpeg is a complete solution to record, convert and stream audio and video.</Description>
<Archive sha1sum="974f470b551e745bbfb836c71a6a987be974faaf" type="tarbz2">http://ffmpeg.org/releases/ffmpeg-2.8.6.tar.bz2</Archive>
<Archive sha1sum="ac3341269fe89a41892e8696465b859e1f425213" type="tarxz">http://ffmpeg.org/releases/ffmpeg-3.0.2.tar.xz</Archive>
<BuildDependencies>
<Dependency>freetype-devel</Dependency>
<Dependency>faac-devel</Dependency>
@@ -43,6 +43,7 @@
<Dependency>rtmpdump-devel</Dependency>
<Dependency>schroedinger-devel</Dependency>
<Dependency>speex-devel</Dependency>
<Dependency>yasm-devel</Dependency>
<Dependency>libv4l-devel</Dependency>
<Dependency>libvo-amrwbenc-devel</Dependency>
<Dependency>libvo-aacenc-devel</Dependency>
@@ -124,6 +125,13 @@
<History>
<Update release="3">
<Date>2016-06-12</Date>
<Version>3.0.2</Version>
<Comment>Version Bump</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2016-06-09</Date>
<Version>2.8.6</Version>
+6 -9
View File
@@ -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())
@@ -0,0 +1,316 @@
From 7361ef732b432e153496c30da66081d7e530c7f6 Mon Sep 17 00:00:00 2001
From: Peter de Rivaz <peter.derivaz@argondesign.com>
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
+13 -1
View File
@@ -13,16 +13,21 @@
<IsA>library</IsA>
<Summary>WebM VP8 Codec SDK</Summary>
<Description>libvpx is the VP8 development library usually used in WebM and similiar formats.</Description>
<Archive sha1sum="d05f4e9a9878886282ac9c9246f8fac080c94c8f" type="tarbz2">http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.4.0.tar.bz2</Archive>
<Archive sha1sum="82426a59ad34d72c762f9e4079e8e5197afc842d" type="targz">https://github.com/webmproject/libvpx/archive/v1.5.0.tar.gz</Archive>
<BuildDependencies>
<Dependency>libgcc</Dependency>
<Dependency>yasm-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">0001-Fix-for-issue-1114-compile-error.patch</Patch>
</Patches>
</Source>
<Package>
<Name>libvpx</Name>
<RuntimeDependencies>
<Dependency>libgcc</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
@@ -43,6 +48,13 @@
</Package>
<History>
<Update release="3">
<Date>2016-06-12</Date>
<Version>1.5.0</Version>
<Comment>Version Bump</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2016-06-09</Date>
<Version>1.4.0</Version>
+14 -1
View File
@@ -14,14 +14,20 @@
<Summary>Open source H264/AVC encoder</Summary>
<Description>x264 is a free library for encoding H264/AVC video streams.</Description>
<!-- Archives come from http://download.videolan.org/pub/videolan/x264/snapshots/ -->
<Archive sha1sum="4c1ef4fdaf22a40f23dc6dafb0eda6b45b0c4ba0" type="tarbz2">ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20141201-2245.tar.bz2</Archive>
<Archive sha1sum="1a8d219c1eab9df5ef04b1f6bcc5e4a9795a50fd" type="tarbz2">ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2</Archive>
<BuildDependencies>
<Dependency>yasm-devel</Dependency>
<Dependency>ffmpeg-devel</Dependency>
<Dependency>l-smash-devel</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>x264</Name>
<RuntimeDependencies>
<Dependency>ffmpeg</Dependency>
<Dependency>l-smash</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
@@ -41,6 +47,13 @@
</Package>
<History>
<Update release="3">
<Date>2016-06-12</Date>
<Version>2245.11062016</Version>
<Comment>Version Bump</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2016-06-09</Date>
<Version>2245</Version>
+5 -8
View File
@@ -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")
@@ -0,0 +1,76 @@
Submitted By: Fernando de Oliveira <famobr at yahoo dot com dot br>
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 $<TARGET_OBJECTS:encoder> $<TARGET_OBJECTS:common> ${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 $<TARGET_OBJECTS:encoder> $<TARGET_OBJECTS:common> ${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)
+11 -1
View File
@@ -13,11 +13,14 @@
<IsA>app:console</IsA>
<Summary>Open source H265/EVC encoder</Summary>
<Description>x265 is a commercially funded open source implementation of the H.265/High Efficiency Video Coding (HEVC) compression standard.</Description>
<Archive sha1sum="7eee170b6adeb7c3012d3a165afb6a0fd1f02646" type="tarbz2">https://bitbucket.org/multicoreware/x265/get/1.7.tar.bz2</Archive>
<Archive sha1sum="8c9aa3b87b0f0a418bbb9782e9354d112d75e003" type="targz">https://bitbucket.org/multicoreware/x265/downloads/x265_1.9.tar.gz</Archive>
<BuildDependencies>
<Dependency>yasm-devel</Dependency>
<Dependency>cmake</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">x265-1.9-enable_static-1.patch</Patch>
</Patches>
</Source>
<Package>
@@ -44,6 +47,13 @@
</Package>
<History>
<Update release="2">
<Date>2016-06-12</Date>
<Version>1.9</Version>
<Comment>Version Bump</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2016-06-09</Date>
<Version>1.7</Version>