diff options
Diffstat (limited to 'meta-emenlow/recipes/libva/libva-0.31.0/392_compat.dso.patch')
-rw-r--r-- | meta-emenlow/recipes/libva/libva-0.31.0/392_compat.dso.patch | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/meta-emenlow/recipes/libva/libva-0.31.0/392_compat.dso.patch b/meta-emenlow/recipes/libva/libva-0.31.0/392_compat.dso.patch new file mode 100644 index 0000000000..57ae44f9d4 --- /dev/null +++ b/meta-emenlow/recipes/libva/libva-0.31.0/392_compat.dso.patch | |||
@@ -0,0 +1,183 @@ | |||
1 | commit 389323f728fb2d6392d266d967eddde40465fd93 | ||
2 | Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com> | ||
3 | Date: Fri Oct 16 12:35:27 2009 +0000 | ||
4 | |||
5 | Fix compatibility with older programs linked against libva.so.0. | ||
6 | |||
7 | diff --git a/src/Makefile.am b/src/Makefile.am | ||
8 | index 232d8e8..2d696f1 100644 | ||
9 | --- a/src/Makefile.am | ||
10 | +++ b/src/Makefile.am | ||
11 | @@ -72,3 +72,8 @@ EXTRA_DIST = \ | ||
12 | va_compat_template.h | ||
13 | |||
14 | va_compat.c: va_compat_template.h | ||
15 | + | ||
16 | +lib_LTLIBRARIES += libva-compat.la | ||
17 | +libva_compat_la_SOURCES = va_compat_lib.c | ||
18 | +libva_compat_la_LIBADD = libva-x11.la -ldl | ||
19 | +libva_compat_la_DEPENDENCIES = libva-x11.la | ||
20 | diff --git a/src/va_compat_lib.c b/src/va_compat_lib.c | ||
21 | new file mode 100644 | ||
22 | index 0000000..b7e9ea5 | ||
23 | --- /dev/null | ||
24 | +++ b/src/va_compat_lib.c | ||
25 | @@ -0,0 +1,158 @@ | ||
26 | +/* | ||
27 | + * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. | ||
28 | + * | ||
29 | + * Permission is hereby granted, free of charge, to any person obtaining a | ||
30 | + * copy of this software and associated documentation files (the | ||
31 | + * "Software"), to deal in the Software without restriction, including | ||
32 | + * without limitation the rights to use, copy, modify, merge, publish, | ||
33 | + * distribute, sub license, and/or sell copies of the Software, and to | ||
34 | + * permit persons to whom the Software is furnished to do so, subject to | ||
35 | + * the following conditions: | ||
36 | + * | ||
37 | + * The above copyright notice and this permission notice (including the | ||
38 | + * next paragraph) shall be included in all copies or substantial portions | ||
39 | + * of the Software. | ||
40 | + * | ||
41 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||
42 | + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
43 | + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | ||
44 | + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR | ||
45 | + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
46 | + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
47 | + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
48 | + */ | ||
49 | + | ||
50 | +#define _GNU_SOURCE 1 | ||
51 | +#include <dlfcn.h> | ||
52 | +#include <assert.h> | ||
53 | +#include <stddef.h> | ||
54 | + | ||
55 | +typedef void *VADisplay; | ||
56 | +typedef int VAStatus; | ||
57 | +typedef unsigned int VAGenericID; | ||
58 | +typedef VAGenericID VAContextID; | ||
59 | +typedef VAGenericID VASurfaceID; | ||
60 | +typedef VAGenericID VAImageID; | ||
61 | +typedef VAGenericID VASubpictureID; | ||
62 | + | ||
63 | +#define PREPARE_FUNC(NAME, RET, ARGS) \ | ||
64 | + static RET (*lib_##NAME) ARGS; \ | ||
65 | + if (lib_##NAME == NULL) \ | ||
66 | + lib_##NAME = dlsym(RTLD_NEXT, #NAME); \ | ||
67 | + assert(lib_##NAME != NULL) | ||
68 | + | ||
69 | +VAStatus | ||
70 | +vaSyncSurface( | ||
71 | + VADisplay dpy, | ||
72 | + VAContextID context, | ||
73 | + VASurfaceID render_target | ||
74 | +) | ||
75 | +{ | ||
76 | + PREPARE_FUNC(vaSyncSurface, VAStatus, (VADisplay, VASurfaceID)); | ||
77 | + | ||
78 | + return lib_vaSyncSurface(dpy, render_target); | ||
79 | +} | ||
80 | + | ||
81 | +VAStatus | ||
82 | +vaPutImage( | ||
83 | + VADisplay dpy, | ||
84 | + VASurfaceID surface, | ||
85 | + VAImageID image, | ||
86 | + int src_x, | ||
87 | + int src_y, | ||
88 | + unsigned int width, | ||
89 | + unsigned int height, | ||
90 | + int dest_x, | ||
91 | + int dest_y | ||
92 | +) | ||
93 | +{ | ||
94 | + PREPARE_FUNC(vaPutImage, VAStatus, (VADisplay, VASurfaceID, VAImageID, | ||
95 | + int, int, unsigned int, unsigned int, | ||
96 | + int, int, unsigned int, unsigned int)); | ||
97 | + | ||
98 | + return lib_vaPutImage(dpy, surface, image, | ||
99 | + src_x, src_y, width, height, | ||
100 | + dest_x, dest_y, width, height); | ||
101 | +} | ||
102 | + | ||
103 | +VAStatus | ||
104 | +vaPutImage2( | ||
105 | + VADisplay dpy, | ||
106 | + VASurfaceID surface, | ||
107 | + VAImageID image, | ||
108 | + int src_x, | ||
109 | + int src_y, | ||
110 | + unsigned int src_width, | ||
111 | + unsigned int src_height, | ||
112 | + int dest_x, | ||
113 | + int dest_y, | ||
114 | + unsigned int dest_width, | ||
115 | + unsigned int dest_height | ||
116 | +) | ||
117 | +{ | ||
118 | + PREPARE_FUNC(vaPutImage, VAStatus, (VADisplay, VASurfaceID, VAImageID, | ||
119 | + int, int, unsigned int, unsigned int, | ||
120 | + int, int, unsigned int, unsigned int)); | ||
121 | + | ||
122 | + return lib_vaPutImage(dpy, surface, image, | ||
123 | + src_x, src_y, src_width, src_height, | ||
124 | + dest_x, dest_y, dest_width, dest_height); | ||
125 | +} | ||
126 | + | ||
127 | +VAStatus | ||
128 | +vaAssociateSubpicture( | ||
129 | + VADisplay dpy, | ||
130 | + VASubpictureID subpicture, | ||
131 | + VASurfaceID *target_surfaces, | ||
132 | + int num_surfaces, | ||
133 | + short src_x, | ||
134 | + short src_y, | ||
135 | + short dest_x, | ||
136 | + short dest_y, | ||
137 | + unsigned short width, | ||
138 | + unsigned short height, | ||
139 | + unsigned int flags | ||
140 | +) | ||
141 | +{ | ||
142 | + PREPARE_FUNC(vaAssociateSubpicture, | ||
143 | + VAStatus, (VADisplay, VASubpictureID, VASurfaceID *, int, | ||
144 | + short, short, unsigned short, unsigned short, | ||
145 | + short, short, unsigned short, unsigned short, | ||
146 | + unsigned int)); | ||
147 | + | ||
148 | + return lib_vaAssociateSubpicture(dpy, subpicture, | ||
149 | + target_surfaces, num_surfaces, | ||
150 | + src_x, src_y, width, height, | ||
151 | + dest_x, dest_y, width, height, | ||
152 | + flags); | ||
153 | +} | ||
154 | + | ||
155 | +VAStatus | ||
156 | +vaAssociateSubpicture2( | ||
157 | + VADisplay dpy, | ||
158 | + VASubpictureID subpicture, | ||
159 | + VASurfaceID *target_surfaces, | ||
160 | + int num_surfaces, | ||
161 | + short src_x, | ||
162 | + short src_y, | ||
163 | + unsigned short src_width, | ||
164 | + unsigned short src_height, | ||
165 | + short dest_x, | ||
166 | + short dest_y, | ||
167 | + unsigned short dest_width, | ||
168 | + unsigned short dest_height, | ||
169 | + unsigned int flags | ||
170 | +) | ||
171 | +{ | ||
172 | + PREPARE_FUNC(vaAssociateSubpicture, | ||
173 | + VAStatus, (VADisplay, VASubpictureID, VASurfaceID *, int, | ||
174 | + short, short, unsigned short, unsigned short, | ||
175 | + short, short, unsigned short, unsigned short, | ||
176 | + unsigned int)); | ||
177 | + | ||
178 | + return lib_vaAssociateSubpicture(dpy, subpicture, | ||
179 | + target_surfaces, num_surfaces, | ||
180 | + src_x, src_y, src_width, src_height, | ||
181 | + dest_x, dest_y, dest_width, dest_height, | ||
182 | + flags); | ||
183 | +} | ||