diff --git a/multimedia/Makefile b/multimedia/Makefile index ce4ccc3b40fd..13a994645d5b 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -169,6 +169,7 @@ SUBDIR += libtuner SUBDIR += libv4l SUBDIR += libva + SUBDIR += libva-intel-driver SUBDIR += libva-vdpau-driver SUBDIR += libvdpau SUBDIR += libvpx diff --git a/multimedia/libva-intel-driver/Makefile b/multimedia/libva-intel-driver/Makefile new file mode 100644 index 000000000000..9f1fff8c8903 --- /dev/null +++ b/multimedia/libva-intel-driver/Makefile @@ -0,0 +1,40 @@ +# Created by: Manuel Creach +# $FreeBSD$ + +PORTNAME= libva-intel-driver +PORTVERSION= 1.0.18 +CATEGORIES= multimedia +MASTER_SITES= http://www.freedesktop.org/software/vaapi/releases/${PORTNAME}/ + +MAINTAINER= manuel.creach@me.com +COMMENT= VAAPI intel driver + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/COPYING + +LIB_DEPENDS= va:${PORTSDIR}/multimedia/libva +BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:${PORTSDIR}/multimedia/v4l_compat + +USE_GMAKE= yes +USE_BZIP2= yes +USE_GL= gl +USE_LDCONFIG= yes +GNU_CONFIGURE= yes + +CPPFLAGS+= -isystem${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib + +PLIST_FILES= lib/va/i965_drv_video.so \ + lib/va/i965_drv_video.la + +.if !defined(WITH_NEW_XORG) || !defined(WITH_KMS) +IGNORE= requires libdrm >= 2.4.23 and intel KMS to be enabled +.endif + +post-patch: .SILENT + ${REINPLACE_CMD} -e '/LIBS/{ s/-ldl//; \ + s/-lrt//; s/-lpthread/${PTHREAD_LIBS}/; }' \ + -e 's|driverdir|& --define-variable prefix=${PREFIX}|' \ + ${WRKSRC}/configure + +.include diff --git a/multimedia/libva-intel-driver/distinfo b/multimedia/libva-intel-driver/distinfo new file mode 100644 index 000000000000..783e3868b11d --- /dev/null +++ b/multimedia/libva-intel-driver/distinfo @@ -0,0 +1,2 @@ +SHA256 (libva-intel-driver-1.0.18.tar.bz2) = 789fa2d6e22b9028ce12a89981eb33e57b04301431415149acfb61a49d3a63ee +SIZE (libva-intel-driver-1.0.18.tar.bz2) = 581497 diff --git a/multimedia/libva-intel-driver/files/patch-drm_state_upstream b/multimedia/libva-intel-driver/files/patch-drm_state_upstream new file mode 100644 index 000000000000..37b131d7fc7d --- /dev/null +++ b/multimedia/libva-intel-driver/files/patch-drm_state_upstream @@ -0,0 +1,68 @@ +From 73ccb0c88d53298befa6a896d2bb39a041169b36 Mon Sep 17 00:00:00 2001 +From: Gwenole Beauchesne +Date: Fri, 06 Apr 2012 15:24:36 +0000 +Subject: dri: cope with drm_state changes. + +Signed-off-by: Gwenole Beauchesne +--- +diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c +index 3bea253..20fed99 100644 +--- src/i965_drv_video.c ++++ src/i965_drv_video.c +@@ -2380,7 +2380,7 @@ i965_PutSurface(VADriverContextP ctx, + unsigned int flags) /* de-interlacing flags */ + { + struct i965_driver_data *i965 = i965_driver_data(ctx); +- struct dri_state *dri_state = (struct dri_state *)ctx->dri_state; ++ struct dri_state *dri_state = (struct dri_state *)ctx->drm_state; + struct i965_render_state *render_state = &i965->render_state; + struct dri_drawable *dri_drawable; + union dri_buffer *buffer; +@@ -2393,7 +2393,7 @@ i965_PutSurface(VADriverContextP ctx, + int pp_flag = 0; + + /* Currently don't support DRI1 */ +- if (dri_state->driConnectedFlag != VA_DRI2) ++ if (dri_state->base.auth_type != VA_DRM_AUTH_DRI2) + return VA_STATUS_ERROR_UNKNOWN; + + /* Some broken sources such as H.264 conformance case FM2_SVA_C +diff --git a/src/intel_driver.c b/src/intel_driver.c +index 4e6df81..b34d9a1 100644 +--- src/intel_driver.c ++++ src/intel_driver.c +@@ -29,7 +29,7 @@ + + #include + +-#include ++#include + + #include "intel_batchbuffer.h" + #include "intel_memman.h" +@@ -50,15 +50,17 @@ Bool + intel_driver_init(VADriverContextP ctx) + { + struct intel_driver_data *intel = intel_driver_data(ctx); +- struct dri_state *dri_state = (struct dri_state *)ctx->dri_state; ++ struct drm_state * const drm_state = (struct drm_state *)ctx->drm_state; + int has_exec2, has_bsd, has_blt; + +- assert(dri_state); +- assert(dri_state->driConnectedFlag == VA_DRI2 || +- dri_state->driConnectedFlag == VA_DRI1); ++ assert(drm_state); ++ assert(drm_state->auth_type == VA_DRM_AUTH_DRI1 || ++ drm_state->auth_type == VA_DRM_AUTH_DRI2 || ++ drm_state->auth_type == VA_DRM_AUTH_CUSTOM); + +- intel->fd = dri_state->fd; +- intel->dri2Enabled = (dri_state->driConnectedFlag == VA_DRI2); ++ intel->fd = drm_state->fd; ++ intel->dri2Enabled = (drm_state->auth_type == VA_DRM_AUTH_DRI2 || ++ drm_state->auth_type == VA_DRM_AUTH_CUSTOM); + + if (!intel->dri2Enabled) { + return False; +-- +cgit v0.9.0.2-2-gbebe diff --git a/multimedia/libva-intel-driver/files/patch-src-i965_decoder_utils.c b/multimedia/libva-intel-driver/files/patch-src-i965_decoder_utils.c new file mode 100644 index 000000000000..a59436285a08 --- /dev/null +++ b/multimedia/libva-intel-driver/files/patch-src-i965_decoder_utils.c @@ -0,0 +1,14 @@ +--- src/i965_decoder_utils.c.orig 2012-08-14 17:08:16.000000000 +0200 ++++ src/i965_decoder_utils.c 2012-10-10 17:25:22.358503055 +0200 +@@ -24,7 +24,11 @@ + #include + #include + #include ++#ifdef __FreeBSD__ ++#include ++#else + #include ++#endif + #include "intel_batchbuffer.h" + #include "i965_decoder_utils.h" + #include "i965_drv_video.h" diff --git a/multimedia/libva-intel-driver/pkg-descr b/multimedia/libva-intel-driver/pkg-descr new file mode 100644 index 000000000000..373bb835d1fa --- /dev/null +++ b/multimedia/libva-intel-driver/pkg-descr @@ -0,0 +1,4 @@ +Libva driver for intel graphics cards with hardware accelerated +features for video encode/decode. + +WWW: http://cgit.freedesktop.org/vaapi/intel-driver