diff options
Diffstat (limited to 'community/xvba-video-open')
4 files changed, 82 insertions, 4 deletions
diff --git a/community/xvba-video-open/PKGBUILD b/community/xvba-video-open/PKGBUILD index b676215f2..22ea8ca2b 100644 --- a/community/xvba-video-open/PKGBUILD +++ b/community/xvba-video-open/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 77096 2012-10-04 19:43:11Z lcarlier $ +# $Id: PKGBUILD 85947 2013-03-09 21:11:01Z lcarlier $ # Maintainer: Laurent Carlier <lordheavym@gmail.com> # Contributor: Jesse Jaara <gmail.com: jesse.jaara> pkgname=xvba-video-open pkgver=0.8.0 -pkgrel=1 +pkgrel=2 pkgdesc="OSS version of xvba-video lib to enable hw video acceleration on AMD's HD series of GFX cards" arch=('i686' 'x86_64') url="http://www.splitted-desktop.com/~gbeauchesne/xvba-video/" @@ -13,13 +13,24 @@ depends=('catalyst-utils' 'libva') makedepends=('mesa') options=(!libtool) source=(ftp://ftp.archlinux.org/other/community/xvba-video-open/xvba-video-${pkgver}.tar.gz - http://developer.amd.com/downloads/xvba-sdk-0.74-404001.tar.gz) + http://developer.amd.com/wordpress/media/2012/10/xvba-sdk-0.74-404001.tar.gz + xvba-video-h264-level51.patch + xvba-video-0.8.0-glx-fix.patch + fix-build-with-glext.h-version-85.patch) md5sums=('d9ddec2e7f02c1fa533773918e88e311' - 'b8f56bc55aa70cb19dd12857fdc184cc') + 'b8f56bc55aa70cb19dd12857fdc184cc' + 'bce1de0a8b274049568453a53e8fce6a' + '5dc283eab46418eeef8e8be7c028a2ba') build() { cd "${srcdir}/xvba-video-${pkgver}" + # patch from opensuse (thanks vi0l0!) + patch -Np1 -i ../xvba-video-h264-level51.patch + patch -Np1 -i ../xvba-video-0.8.0-glx-fix.patch + + patch -Np1 -i ../fix-build-with-glext.h-version-85.patch + export CPPFLAGS="${CPPFLAGS} -I${srcdir}/include" ./configure --disable-debug --enable-libxvba-dlopen --prefix=/usr @@ -31,3 +42,8 @@ package() { make DESTDIR="${pkgdir}" install } +md5sums=('d9ddec2e7f02c1fa533773918e88e311' + 'b8f56bc55aa70cb19dd12857fdc184cc' + 'bce1de0a8b274049568453a53e8fce6a' + '5dc283eab46418eeef8e8be7c028a2ba' + '69e8a9027affbaf7066e35bc97b3a984') diff --git a/community/xvba-video-open/fix-build-with-glext.h-version-85.patch b/community/xvba-video-open/fix-build-with-glext.h-version-85.patch new file mode 100644 index 000000000..f3cabce50 --- /dev/null +++ b/community/xvba-video-open/fix-build-with-glext.h-version-85.patch @@ -0,0 +1,17 @@ +diff -ru xvba-video-0.8.0/src/utils_glx.h xvba-video-0.8.0.patched/src/utils_glx.h +--- xvba-video-0.8.0/src/utils_glx.h 2011-06-14 13:07:13.000000000 +0200 ++++ xvba-video-0.8.0.patched/src/utils_glx.h 2013-02-17 10:53:34.589818821 +0100 +@@ -25,6 +25,13 @@ + #include <GL/glext.h> + #include <GL/glx.h> + ++#if GL_GLEXT_VERSION >= 85 ++/* XXX: PFNGLMULTITEXCOORD2FPROC got out of the GL_VERSION_1_3_DEPRECATED ++ block and is not defined if GL_VERSION_1_3 is defined in <GL/gl.h> ++ Redefine the type here as an interim solution */ ++typedef void (*PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); ++#endif ++ + #ifndef GL_FRAMEBUFFER_BINDING + #define GL_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING_EXT + #endif diff --git a/community/xvba-video-open/xvba-video-0.8.0-glx-fix.patch b/community/xvba-video-open/xvba-video-0.8.0-glx-fix.patch new file mode 100644 index 000000000..7cb249a16 --- /dev/null +++ b/community/xvba-video-open/xvba-video-0.8.0-glx-fix.patch @@ -0,0 +1,12 @@ +diff -ur xvba-video-0.8.0/src/xvba_image.c xvba-video-0.8.0-patched/src/xvba_image.c +--- xvba-video-0.8.0/src/xvba_image.c 2011-06-14 13:07:13.000000000 +0200 ++++ xvba-video-0.8.0-patched/src/xvba_image.c 2012-07-22 14:55:14.186667413 +0200 +@@ -423,7 +423,7 @@ + } + + #if USE_GLX +-const HWImageHooks hw_image_hooks_glx attribute_hidden; ++extern const HWImageHooks hw_image_hooks_glx attribute_hidden; + #endif + + // Commit image to the HW diff --git a/community/xvba-video-open/xvba-video-h264-level51.patch b/community/xvba-video-open/xvba-video-h264-level51.patch new file mode 100644 index 000000000..a617a90ab --- /dev/null +++ b/community/xvba-video-open/xvba-video-h264-level51.patch @@ -0,0 +1,33 @@ +diff -rup xvba-video.orig/src/xvba_buffer.c xvba-video/src/xvba_buffer.c +--- xvba-video.orig/src/xvba_buffer.c 2011-09-08 03:17:28.000000000 +0200 ++++ xvba-video/src/xvba_buffer.c 2012-07-03 21:38:04.851465348 +0200 +@@ -368,23 +368,18 @@ translate_VAPictureParameterBufferH264( + obj_context->picture_height + ); + +- /* Check for H.264 content over HP@L4.1 */ ++ /* Check for wrongly coded H264 Level 41 ++ adjust profile to Level 51 when reframes are too many ++ */ + unsigned int num_ref_frames = pic_param->num_ref_frames; +- if (profile == XVBA_H264_HIGH && level > 41) { +- if (!driver_data->warn_h264_over_hp_l41) { +- driver_data->warn_h264_over_hp_l41 = 1; +- xvba_information_message( +- "driver does not support H.264 content over HP@L4.1. " +- "Please upgrade.\n" +- ); +- } ++ if (profile == XVBA_H264_HIGH && level == 41) { + +- /* Use fail-safe values (lower ref frames) */ ++ /* Increase Level to decode pseudo Level 41 as Level 51 */ + const unsigned int mbw = pic_param->picture_width_in_mbs_minus1 + 1; + const unsigned int mbh = (obj_context->picture_height + 15) / 16; + const unsigned int max_ref_frames = 12288 * 1024 / (mbw * mbh * 384); + if (max_ref_frames < num_ref_frames) +- num_ref_frames = max_ref_frames; ++ level = 51; + } + + XVBABufferDescriptor * const xvba_buffer = obj_surface->pic_desc_buffer; |