Fixes for vlc and gnash after libva upgrade

Juergen Lock nox at jelal.kn-bremen.de
Thu Jul 4 18:13:30 UTC 2013


In article <51CE08AC.6090706 at FreeBSD.org> you write:
>Hi!
Hi!
>
>I'm the maintainer of the multimedia/libva port.
>
>I updated it yesterday but there IS an API breakage in the new version I 
>noticed too late.
>
>Sorry for the mistake!
>
>After some work I narrowed down the breakage to these two ports, when 
>the LIBVA option is turned on (by default in gnash).
>
>Here's a patch attached which fixes the problem.
>
>ABI compatibility should not be compromised and was not in my tests with 
>vlc, since libva has code to maintain that.
>
>I'd like to get approval to commit these two in one go.
>
>Thanks in advance, and again sorry for the breakage!

Hmm according to

	http://www.freebsd.org/cgi/query-pr.cgi?pr=180118

(which mentions

	http://cgit.freedesktop.org/libva/commit/?id=824a70ae1ef79458e65079374209a0cb16b65c31

) vaCreateSurfaces args have been shuffled around too, not only two new
ones added.  Can you confirm?

 Other than that I think yes this should go in...

 Thanx,
	Juergen
>
>-- 
>Guido Falsi <madpilot at FreeBSD.org>
>
>--------------000204050607010204090802
>Content-Type: text/x-patch;
> name="libva-fix.diff"
>Content-Transfer-Encoding: 7bit
>Content-Disposition: attachment;
> filename="libva-fix.diff"
>
>Index: graphics/gnash/Makefile
>===================================================================
>--- graphics/gnash/Makefile	(revision 321990)
>+++ graphics/gnash/Makefile	(working copy)
>@@ -3,7 +3,7 @@
> 
> PORTNAME=	gnash
> PORTVERSION=	0.8.10
>-PORTREVISION=	5
>+PORTREVISION=	6
> CATEGORIES=	graphics
> MASTER_SITES=	GNU/${PORTNAME}/${PORTVERSION}/
> 
>Index: graphics/gnash/files/patch-libdevice-caapi-VaapiSurface.cpp
>===================================================================
>--- graphics/gnash/files/patch-libdevice-caapi-VaapiSurface.cpp	(revision 0)
>+++ graphics/gnash/files/patch-libdevice-caapi-VaapiSurface.cpp	(working copy)
>@@ -0,0 +1,11 @@
>+--- libdevice/vaapi/VaapiSurface.cpp.orig	2012-01-19 20:17:48.000000000 +0100
>++++ libdevice/vaapi/VaapiSurface.cpp	2013-06-28 15:47:31.190987198 +0200
>+@@ -63,7 +63,7 @@
>+     VASurfaceID surface_id;
>+     status = vaCreateSurfaces(gvactx->display(),
>+                               width, height, VA_RT_FORMAT_YUV420,
>+-                              1, &surface_id);
>++                              1, &surface_id, NULL, 0);
>+     if (!vaapi_check_status(status, "vaCreateSurfaces()")) {
>+         return;
>+     }
>
>Property changes on: graphics/gnash/files/patch-libdevice-caapi-VaapiSurface.cpp
>___________________________________________________________________
>Added: fbsd:nokeywords
>## -0,0 +1 ##
>+yes
>\ No newline at end of property
>Added: svn:eol-style
>## -0,0 +1 ##
>+native
>\ No newline at end of property
>Added: svn:mime-type
>## -0,0 +1 ##
>+text/plain
>\ No newline at end of property
>Index: multimedia/vlc/files/patch-modules-codec-avcodec-vaapi.c
>===================================================================
>--- multimedia/vlc/files/patch-modules-codec-avcodec-vaapi.c	(revision 0)
>+++ multimedia/vlc/files/patch-modules-codec-avcodec-vaapi.c	(working copy)
>@@ -0,0 +1,11 @@
>+--- modules/codec/avcodec/vaapi.c.orig	2013-01-22 10:51:40.000000000 +0100
>++++ modules/codec/avcodec/vaapi.c	2013-06-28 15:09:40.898143870 +0200
>+@@ -247,7 +247,7 @@
>+     /* Create surfaces */
>+     VASurfaceID pi_surface_id[p_va->i_surface_count];
>+     if( vaCreateSurfaces( p_va->p_display, i_width, i_height, VA_RT_FORMAT_YUV420,
>+-                          p_va->i_surface_count, pi_surface_id ) )
>++                          p_va->i_surface_count, pi_surface_id, NULL, 0 ) )
>+     {
>+         for( int i = 0; i < p_va->i_surface_count; i++ )
>+             p_va->p_surface[i].i_id = VA_INVALID_SURFACE;
>
>Property changes on: multimedia/vlc/files/patch-modules-codec-avcodec-vaapi.c
>___________________________________________________________________
>[...]


More information about the freebsd-multimedia mailing list