FreeBSD Bugzilla – Attachment 210189 Details for
Bug 242849
multimedia/handbrake: enable Intel Quick Sync Video
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
v1
bug242849.diff (text/plain), 13.17 KB, created by
Jan Beich
on 2019-12-24 05:43:10 UTC
(
hide
)
Description:
v1
Filename:
MIME Type:
Creator:
Jan Beich
Created:
2019-12-24 05:43:10 UTC
Size:
13.17 KB
patch
obsolete
>From 912d539fcb21786ee0d841c3f8a6b605d22a3574 Mon Sep 17 00:00:00 2001 >From: Jan Beich <jbeich@FreeBSD.org> >Date: Mon, 23 Dec 2019 07:05:27 +0000 >Subject: [PATCH] multimedia/handbrake: enable Intel Quick Sync Video > >PR: 242849 >Approved by: Yuichiro NAITO (maintainer) >--- > multimedia/handbrake/Makefile | 13 ++++-- > .../files/patch-contrib_ffmpeg_module.defs | 21 ++++++++++ > .../handbrake/files/patch-gtk_configure.ac | 12 ++++++ > .../files/patch-libhb_handbrake_ports.h | 36 ++++++++++++++++ > .../handbrake/files/patch-libhb_module.defs | 32 +++++++++++++++ > .../handbrake/files/patch-libhb_ports.c | 41 +++++++++++++++++++ > .../handbrake/files/patch-libhb_qsv__common.c | 20 +++++++++ > .../handbrake/files/patch-make_configure.py | 29 +++++++++++++ > .../files/patch-make_include_main.defs | 13 ++++++ > .../handbrake/files/patch-test_module.defs | 11 +++++ > 10 files changed, 225 insertions(+), 3 deletions(-) > create mode 100644 multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs > create mode 100644 multimedia/handbrake/files/patch-gtk_configure.ac > create mode 100644 multimedia/handbrake/files/patch-libhb_handbrake_ports.h > create mode 100644 multimedia/handbrake/files/patch-libhb_module.defs > create mode 100644 multimedia/handbrake/files/patch-libhb_ports.c > create mode 100644 multimedia/handbrake/files/patch-libhb_qsv__common.c > create mode 100644 multimedia/handbrake/files/patch-make_configure.py > create mode 100644 multimedia/handbrake/files/patch-make_include_main.defs > create mode 100644 multimedia/handbrake/files/patch-test_module.defs > >diff --git a/multimedia/handbrake/Makefile b/multimedia/handbrake/Makefile >index b26d648fdb74..f79f31435de7 100644 >--- a/multimedia/handbrake/Makefile >+++ b/multimedia/handbrake/Makefile >@@ -3,7 +3,7 @@ > > PORTNAME= handbrake > DISTVERSION= 1.3.0 >-PORTREVISION= 1 >+PORTREVISION= 2 > CATEGORIES= multimedia > DIST_SUBDIR= ${PORTNAME} > >@@ -80,12 +80,14 @@ NOPRECIOUSMAKEVARS= yes # for ffmpeg and x264 > # Enforce linking to bundled libraries instead of system libraries > LDFLAGS+= -L${BUILD_WRKSRC}/contrib/lib > >-OPTIONS_DEFINE= FDK_AAC X11 >-OPTIONS_DEFAULT= X11 >+OPTIONS_DEFINE= FDK_AAC MFX X11 >+OPTIONS_DEFAULT= MFX X11 >+OPTIONS_EXCLUDE_powerpc64= MFX > > OPTIONS_SUB= yes > > FDK_AAC_DESC= Enable non-free Fraunhofer FDK AAC codec >+MFX_DESC= Intel MediaSDK (aka Quick Sync Video) > X11_DESC= Build GTK+3 based GUI program > > FDK_AAC_CONFIGURE_ENABLE= fdk-aac >@@ -94,6 +96,11 @@ LICENSE_NAME_FDK_AAC= Software License for The Fraunhofer FDK AAC Codec Library > LICENSE_FILE_FDK_AAC= ${WRKDIR}/${DISTFILES:Mfdk*:R:R}/NOTICE > LICENSE_PERMS_FDK_AAC= dist-mirror pkg-mirror auto-accept > >+MFX_LIB_DEPENDS= libmfx.so:multimedia/intel-media-sdk \ >+ libva-drm.so:multimedia/libva >+MFX_RUN_DEPENDS= ${LOCALBASE}/lib/dri/iHD_drv_video.so:multimedia/libva-intel-media-driver >+MFX_CONFIGURE_ON= --enable-qsv >+ > X11_CONFIGURE_ENV= COMPILER_PATH=${LOCALBASE}/bin > X11_MAKE_ENV= COMPILER_PATH=${LOCALBASE}/bin > X11_CONFIGURE_ON= --disable-gtk-update-checks >diff --git a/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs b/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs >new file mode 100644 >index 000000000000..8803450232a6 >--- /dev/null >+++ b/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs >@@ -0,0 +1,21 @@ >+--- contrib/ffmpeg/module.defs.orig 2019-11-09 20:44:32 UTC >++++ contrib/ffmpeg/module.defs >+@@ -1,7 +1,9 @@ >+ __deps__ := BZIP2 ZLIB FDKAAC LIBDAV1D LIBVPX LAME LIBOPUS LIBSPEEX XZ >+ ifeq (1,$(FEATURE.qsv)) >++ifeq (,$(filter $(HOST.system),freebsd)) >+ __deps__ += LIBMFX >+ endif >++endif >+ ifeq (1,$(FEATURE.vce)) >+ __deps__ += AMF >+ endif >+@@ -60,7 +62,7 @@ FFMPEG.CONFIGURE.extra = \ >+ --cc="$(FFMPEG.GCC.gcc)" \ >+ --extra-ldflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -L$(call fn.ABSOLUTE,$(CONTRIB.build/)lib)" >+ >+-ifeq (1-linux,$(FEATURE.qsv)-$(HOST.system)) >++ifneq (,$(filter $(FEATURE.qsv)-$(HOST.system),1-linux 1-freebsd)) >+ FFMPEG.CONFIGURE.extra += --enable-vaapi >+ FFMPEG.CONFIGURE.extra += --disable-xlib >+ else >diff --git a/multimedia/handbrake/files/patch-gtk_configure.ac b/multimedia/handbrake/files/patch-gtk_configure.ac >new file mode 100644 >index 000000000000..82ad9f6dc410 >--- /dev/null >+++ b/multimedia/handbrake/files/patch-gtk_configure.ac >@@ -0,0 +1,12 @@ >+--- gtk/configure.ac.orig 2019-11-09 20:44:32 UTC >++++ gtk/configure.ac >+@@ -227,6 +227,9 @@ case $host in >+ ;; >+ *-*-freebsd*) >+ HB_LIBS="$HB_LIBS -lpthread" >++ if test "x$use_qsv" = "xyes" ; then >++ HB_LIBS="$HB_LIBS -lva -lva-drm" >++ fi >+ ;; >+ *-*-netbsd*) >+ HB_LIBS="$HB_LIBS -pthread" >diff --git a/multimedia/handbrake/files/patch-libhb_handbrake_ports.h b/multimedia/handbrake/files/patch-libhb_handbrake_ports.h >new file mode 100644 >index 000000000000..d80ad280daaf >--- /dev/null >+++ b/multimedia/handbrake/files/patch-libhb_handbrake_ports.h >@@ -0,0 +1,36 @@ >+--- libhb/handbrake/ports.h.orig 2019-11-09 20:44:32 UTC >++++ libhb/handbrake/ports.h >+@@ -28,7 +28,7 @@ >+ >+ #if HB_PROJECT_FEATURE_QSV >+ #include "mfx/mfxstructures.h" >+-#ifdef SYS_LINUX >++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) >+ #include <va/va_drm.h> >+ #endif >+ #endif >+@@ -36,9 +36,9 @@ >+ /************************************************************************ >+ * HW accel display >+ ***********************************************************************/ >+-#ifdef SYS_LINUX >++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) >+ extern const char* DRM_INTEL_DRIVER_NAME; >+-#endif // SYS_LINUX >++#endif // SYS_LINUX || SYS_FREEBSD >+ >+ typedef struct >+ { >+@@ -46,10 +46,10 @@ typedef struct >+ #if HB_PROJECT_FEATURE_QSV >+ mfxHandleType mfxType; >+ >+-#ifdef SYS_LINUX >++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) >+ int vaFd; >+ VADisplay vaDisplay; >+-#endif // SYS_LINUX >++#endif // SYS_LINUX || SYS_FREEBSD >+ #endif >+ } hb_display_t; >+ >diff --git a/multimedia/handbrake/files/patch-libhb_module.defs b/multimedia/handbrake/files/patch-libhb_module.defs >new file mode 100644 >index 000000000000..f91fb8b75f66 >--- /dev/null >+++ b/multimedia/handbrake/files/patch-libhb_module.defs >@@ -0,0 +1,32 @@ >+--- libhb/module.defs.orig 2019-11-09 20:44:32 UTC >++++ libhb/module.defs >+@@ -1,12 +1,16 @@ >+ __deps__ := A52DEC BZIP2 LIBVPX FFMPEG FREETYPE LAME LIBASS LIBDCA \ >+ LIBDVDREAD LIBDVDNAV LIBICONV LIBSAMPLERATE LIBTHEORA LIBVORBIS LIBOGG \ >+- LIBXML2 X264 X265 ZLIB LIBBLURAY FDKAAC LIBMFX LIBGNURX JANSSON \ >++ LIBXML2 X264 X265 ZLIB LIBBLURAY FDKAAC LIBGNURX JANSSON \ >+ HARFBUZZ LIBOPUS LIBSPEEX LIBDAV1D >+ >+ ifeq (,$(filter $(HOST.system),darwin cygwin mingw)) >+ __deps__ += FONTCONFIG >+ endif >+ >++ifeq (,$(filter $(HOST.system),freebsd)) >++ __deps__ += LIBMFX >++endif >++ >+ $(eval $(call import.MODULE.defs,LIBHB,libhb,$(__deps__))) >+ $(eval $(call import.GCC,LIBHB)) >+ >+@@ -111,7 +115,11 @@ LIBHB.dll.libs += $(CONTRIB.build/)lib/libfdk-aac.a >+ endif >+ >+ ifeq (1,$(FEATURE.qsv)) >++ifeq (,$(filter $(HOST.system),freebsd)) >+ LIBHB.dll.libs += $(CONTRIB.build/)lib/libmfx.a >++else >++ LIBHB.GCC.l += mfx >++endif >+ endif >+ >+ ifeq (1,$(FEATURE.x265)) >diff --git a/multimedia/handbrake/files/patch-libhb_ports.c b/multimedia/handbrake/files/patch-libhb_ports.c >new file mode 100644 >index 000000000000..43b7a9e77fdf >--- /dev/null >+++ b/multimedia/handbrake/files/patch-libhb_ports.c >@@ -0,0 +1,41 @@ >+--- libhb/ports.c.orig 2019-11-09 20:44:32 UTC >++++ libhb/ports.c >+@@ -28,7 +28,11 @@ >+ #if defined(SYS_DARWIN) || defined(SYS_FREEBSD) >+ #include <sys/types.h> >+ #include <sys/sysctl.h> >++#if HB_PROJECT_FEATURE_QSV && defined(SYS_FREEBSD) >++#include <libdrm/drm.h> >++#include <fcntl.h> >+ #endif >++#endif >+ >+ #ifdef SYS_OPENBSD >+ #include <sys/param.h> >+@@ -1518,7 +1522,7 @@ char * hb_strndup(const char * src, size_t len) >+ } >+ >+ #if HB_PROJECT_FEATURE_QSV >+-#ifdef SYS_LINUX >++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) >+ >+ #define MAX_NODES 16 >+ #define DRI_RENDER_NODE_START 128 >+@@ -1676,7 +1680,7 @@ void hb_display_close(hb_display_t ** _d) >+ *_d = NULL; >+ } >+ >+-#else // !SYS_LINUX >++#else // !SYS_LINUX && !SYS_FREEBSD >+ >+ hb_display_t * hb_display_init(const char * driver_name, >+ const char * const * interface_names) >+@@ -1689,7 +1693,7 @@ void hb_display_close(hb_display_t ** _d) >+ (void)_d; >+ } >+ >+-#endif // SYS_LINUX >++#endif // SYS_LINUX || SYS_FREEBSD >+ #else // !HB_PROJECT_FEATURE_QSV >+ >+ hb_display_t * hb_display_init(const char * driver_name, >diff --git a/multimedia/handbrake/files/patch-libhb_qsv__common.c b/multimedia/handbrake/files/patch-libhb_qsv__common.c >new file mode 100644 >index 000000000000..23e44bf827f3 >--- /dev/null >+++ b/multimedia/handbrake/files/patch-libhb_qsv__common.c >@@ -0,0 +1,20 @@ >+--- libhb/qsv_common.c.orig 2019-11-09 20:44:32 UTC >++++ libhb/qsv_common.c >+@@ -678,7 +678,7 @@ int hb_qsv_info_init() >+ */ >+ mfxSession session; >+ mfxVersion version = { .Major = 1, .Minor = 0, }; >+-#ifdef SYS_LINUX >++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) >+ mfxIMPL hw_preference = MFX_IMPL_VIA_ANY; >+ #else >+ mfxIMPL hw_preference = MFX_IMPL_VIA_D3D11; >+@@ -738,7 +738,7 @@ int hb_qsv_info_init() >+ } >+ else >+ { >+-#ifndef SYS_LINUX >++#if !defined(SYS_LINUX) && !defined(SYS_FREEBSD) >+ // Windows only: After D3D11 we will try D3D9 >+ if (hw_preference == MFX_IMPL_VIA_D3D11) >+ hw_preference = MFX_IMPL_VIA_D3D9; >diff --git a/multimedia/handbrake/files/patch-make_configure.py b/multimedia/handbrake/files/patch-make_configure.py >new file mode 100644 >index 000000000000..dfc888a7f0b8 >--- /dev/null >+++ b/multimedia/handbrake/files/patch-make_configure.py >@@ -0,0 +1,29 @@ >+--- make/configure.py.orig 2019-11-09 20:44:32 UTC >++++ make/configure.py >+@@ -1413,7 +1413,7 @@ def createCLI( cross = None ): >+ grp.add_argument( '--enable-nvenc', dest="enable_nvenc", default=IfHost( True, '*-*-linux*', '*-*-mingw*', none=False).value, action='store_true', help=(( 'enable %s' %h ) if h != argparse.SUPPRESS else h) ) >+ grp.add_argument( '--disable-nvenc', dest="enable_nvenc", action='store_false', help=(( 'disable %s' %h ) if h != argparse.SUPPRESS else h) ) >+ >+- h = IfHost( 'Intel QSV video encoder/decoder', '*-*-linux*', '*-*-mingw*', none=argparse.SUPPRESS).value >++ h = IfHost( 'Intel QSV video encoder/decoder', '*-*-linux*', '*-*-freebsd*', '*-*-mingw*', none=argparse.SUPPRESS).value >+ grp.add_argument( '--enable-qsv', dest="enable_qsv", default=IfHost(True, "*-*-mingw*", none=False).value, action='store_true', help=(( 'enable %s' %h ) if h != argparse.SUPPRESS else h) ) >+ grp.add_argument( '--disable-qsv', dest="enable_qsv", action='store_false', help=(( 'disable %s' %h ) if h != argparse.SUPPRESS else h) ) >+ >+@@ -1684,7 +1684,7 @@ try: >+ none=False).value >+ and options.enable_x265) >+ # Disable QSV on unsupported platforms >+- options.enable_qsv = IfHost(options.enable_qsv, '*-*-linux*', >++ options.enable_qsv = IfHost(options.enable_qsv, '*-*-linux*', '*-*-freebsd*', >+ '*-*-mingw*', none=False).value >+ # Disable VCE on unsupported platforms >+ options.enable_vce = IfHost(options.enable_vce, '*-*-linux*', '*-*-mingw*', >+@@ -2124,7 +2124,7 @@ int main() >+ stdout.write( 'Enable NVENC: %s' % options.enable_nvenc ) >+ stdout.write( ' (%s)\n' % note_unsupported ) if not (host_tuple.system == 'linux' or host_tuple.system == 'mingw') else stdout.write( '\n' ) >+ stdout.write( 'Enable QSV: %s' % options.enable_qsv ) >+- stdout.write( ' (%s)\n' % note_unsupported ) if not (host_tuple.system == 'linux' or host_tuple.system == 'mingw') else stdout.write( '\n' ) >++ stdout.write( ' (%s)\n' % note_unsupported ) if not (host_tuple.system == 'linux' or host_tuple.system == 'freebsd' or host_tuple.system == 'mingw') else stdout.write( '\n' ) >+ stdout.write( 'Enable VCE: %s' % options.enable_vce ) >+ stdout.write( ' (%s)\n' % note_unsupported ) if not (host_tuple.system == 'linux' or host_tuple.system == 'mingw') else stdout.write( '\n' ) >+ >diff --git a/multimedia/handbrake/files/patch-make_include_main.defs b/multimedia/handbrake/files/patch-make_include_main.defs >new file mode 100644 >index 000000000000..ab9f3cbd4109 >--- /dev/null >+++ b/multimedia/handbrake/files/patch-make_include_main.defs >@@ -0,0 +1,13 @@ >+--- make/include/main.defs.orig 2019-11-09 20:44:32 UTC >++++ make/include/main.defs >+@@ -52,8 +52,10 @@ MODULES += contrib/libdvdread >+ MODULES += contrib/libdvdnav >+ MODULES += contrib/libbluray >+ >++ifneq (,$(filter $(HOST.system),freebsd)) >+ ifeq (1,$(FEATURE.qsv)) >+ MODULES += contrib/libmfx >++endif >+ endif >+ >+ ifeq (1,$(FEATURE.vce)) >diff --git a/multimedia/handbrake/files/patch-test_module.defs b/multimedia/handbrake/files/patch-test_module.defs >new file mode 100644 >index 000000000000..165c0a34b957 >--- /dev/null >+++ b/multimedia/handbrake/files/patch-test_module.defs >@@ -0,0 +1,11 @@ >+--- test/module.defs.orig 2019-11-09 20:44:32 UTC >++++ test/module.defs >+@@ -25,7 +25,7 @@ endif >+ >+ ifeq (1,$(FEATURE.qsv)) >+ TEST.GCC.l += mfx >+-ifeq ($(HOST.system),linux) >++ifneq (,$(filter $(HOST.system),linux freebsd)) >+ TEST.GCC.l += va va-drm >+ endif >+ endif
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 242849
:
210189
|
210190
|
210422