summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2017-07-02 02:22:25 (GMT)
committerGitHub <noreply@github.com>2017-07-02 02:22:25 (GMT)
commit570227442f1c28f110f0285f9d07207fe3cec3f9 (patch)
tree3a013a83c4124a311c7458da9858b1787a91c354
parent15c41279669fc0ba5b96d894373cb193803037be (diff)
parentb6899abd7f5cc2c0762717dd5b363c42ed3c3242 (diff)
downloadmxe-570227442f1c28f110f0285f9d07207fe3cec3f9.zip
mxe-570227442f1c28f110f0285f9d07207fe3cec3f9.tar.gz
mxe-570227442f1c28f110f0285f9d07207fe3cec3f9.tar.bz2
Merge pull request #984 from darealshinji/x265
new package: x265
-rw-r--r--src/x265-1-fixes.patch36
-rw-r--r--src/x265-test.c21
-rw-r--r--src/x265.mk74
3 files changed, 131 insertions, 0 deletions
diff --git a/src/x265-1-fixes.patch b/src/x265-1-fixes.patch
new file mode 100644
index 0000000..9ffa25f
--- /dev/null
+++ b/src/x265-1-fixes.patch
@@ -0,0 +1,36 @@
+This file is part of MXE. See LICENSE.md for licensing information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: darealshinji <djcj@gmx.de>
+Date: Sat, 1 Jul 2017 17:09:40 +0200
+Subject: [PATCH] Use C++14 so we can build with dynamicHDR
+
+
+diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
+index 1111111..2222222 100644
+--- a/source/CMakeLists.txt
++++ b/source/CMakeLists.txt
+@@ -187,7 +187,7 @@ endif()
+ if(GCC)
+ add_definitions(-Wall -Wextra -Wshadow)
+ add_definitions(-D__STDC_LIMIT_MACROS=1)
+- add_definitions(-std=gnu++98)
++ add_definitions(-std=gnu++14)
+ if(ENABLE_PIC)
+ add_definitions(-fPIC)
+ endif(ENABLE_PIC)
+diff --git a/source/encoder/encoder.h b/source/encoder/encoder.h
+index 1111111..2222222 100644
+--- a/source/encoder/encoder.h
++++ b/source/encoder/encoder.h
+@@ -33,7 +33,7 @@
+ #include "framedata.h"
+
+ #ifdef ENABLE_DYNAMIC_HDR10
+- #include "dynamicHDR10\hdr10plus.h"
++ #include "dynamicHDR10/hdr10plus.h"
+ #endif
+
+ struct x265_encoder {};
diff --git a/src/x265-test.c b/src/x265-test.c
new file mode 100644
index 0000000..a12c136
--- /dev/null
+++ b/src/x265-test.c
@@ -0,0 +1,21 @@
+// This file is part of MXE. See LICENSE.md for licensing information.
+
+#include <x265.h>
+
+int main(void)
+{
+ int rv = 0;
+
+ x265_param *param = x265_param_alloc();
+ x265_param_default(param);
+ x265_encoder *encoder = x265_encoder_open(param);
+
+ if (x265_param_apply_profile(param, "main444-12-intra") != 0)
+ rv = 1;
+
+ x265_encoder_close(encoder);
+ x265_param_free(param);
+ x265_cleanup();
+
+ return rv;
+}
diff --git a/src/x265.mk b/src/x265.mk
new file mode 100644
index 0000000..5373c60
--- /dev/null
+++ b/src/x265.mk
@@ -0,0 +1,74 @@
+# This file is part of MXE. See LICENSE.md for licensing information.
+
+PKG := x265
+$(PKG)_WEBSITE := http://x265.org
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.4
+$(PKG)_CHECKSUM := 9c2aa718d78f6fecdd783f08ab83b98d3169e5f670404da4c16439306907d729
+$(PKG)_SUBDIR := x265_$($(PKG)_VERSION)
+$(PKG)_FILE := x265_$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://ftp.videolan.org/pub/videolan/$(PKG)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc yasm
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- https://ftp.videolan.org/pub/videolan/x265/ | \
+ $(SED) -n 's,.*">x265_\([0-9][^<]*\)\.t.*,\1,p' | \
+ tail -1
+endef
+
+# note: assembly for i686 targets is not officially supported
+define $(PKG)_BUILD
+ cd '$(BUILD_DIR)' && mkdir -p 10bit 12bit
+
+ # 12 bit
+ cd '$(BUILD_DIR)/12bit' && $(TARGET)-cmake '$(SOURCE_DIR)/source' \
+ -DHIGH_BIT_DEPTH=ON \
+ -DEXPORT_C_API=OFF \
+ -DENABLE_SHARED=OFF \
+ -DENABLE_ASSEMBLY=$(if $(findstring x86_64,$(TARGET)),ON,OFF) \
+ -DENABLE_CLI=OFF \
+ -DWINXP_SUPPORT=ON \
+ -DENABLE_DYNAMIC_HDR10=ON \
+ -DMAIN12=ON
+ $(MAKE) -C '$(BUILD_DIR)/12bit' -j '$(JOBS)'
+ cp '$(BUILD_DIR)/12bit/libx265.a' '$(BUILD_DIR)/libx265_main12.a'
+
+ # 10 bit
+ cd '$(BUILD_DIR)/10bit' && $(TARGET)-cmake '$(SOURCE_DIR)/source' \
+ -DHIGH_BIT_DEPTH=ON \
+ -DEXPORT_C_API=OFF \
+ -DENABLE_SHARED=OFF \
+ -DENABLE_ASSEMBLY=$(if $(findstring x86_64,$(TARGET)),ON,OFF) \
+ -DENABLE_CLI=OFF \
+ -DWINXP_SUPPORT=ON \
+ -DENABLE_DYNAMIC_HDR10=ON
+ $(MAKE) -C '$(BUILD_DIR)/10bit' -j '$(JOBS)'
+ cp '$(BUILD_DIR)/10bit/libx265.a' '$(BUILD_DIR)/libx265_main10.a'
+
+ # 8bit
+ cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)/source' \
+ -DHIGH_BIT_DEPTH=OFF \
+ -DEXPORT_C_API=ON \
+ -DENABLE_SHARED=$(CMAKE_SHARED_BOOL) \
+ -DENABLE_ASSEMBLY=$(if $(findstring x86_64,$(TARGET)),ON,OFF) \
+ -DENABLE_CLI=OFF \
+ -DWINXP_SUPPORT=ON \
+ -DENABLE_DYNAMIC_HDR10=ON \
+ -DEXTRA_LIB='x265_main10.a;x265_main12.a' \
+ -DEXTRA_LINK_FLAGS=-L'$(BUILD_DIR)' \
+ -DLINKED_10BIT=ON \
+ -DLINKED_12BIT=ON
+
+ $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' install
+ $(if $(BUILD_SHARED),rm -f '$(PREFIX)/$(TARGET)/lib/libx265.a',\
+ $(INSTALL) '$(BUILD_DIR)/libx265_main12.a' '$(PREFIX)/$(TARGET)/lib/libx265_main12.a' && \
+ $(INSTALL) '$(BUILD_DIR)/libx265_main10.a' '$(PREFIX)/$(TARGET)/lib/libx265_main10.a' && \
+ $(SED) -i 's|-lx265|-lx265 -lx265_main10 -lx265_main12|' '$(PREFIX)/$(TARGET)/lib/pkgconfig/x265.pc')
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror \
+ '$(TOP_DIR)/src/$(PKG)-test.c' \
+ -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
+ `$(TARGET)-pkg-config --cflags --libs $(PKG)`
+endef
+