3 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
8 * gstreamer-vaapi.doap:
12 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
14 * docs/gst_plugins_cache.json:
15 * gst/vaapi/gstvaapiencode.c:
16 docs: Mark parent classes as plugin API
18 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
21 meson: mark plugins cache target as always stale
23 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
25 * docs/gst_plugins_cache.json:
26 doc: Stop documenting properties from parents
28 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
33 === release 1.17.1 ===
35 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
40 * gstreamer-vaapi.doap:
44 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
46 * docs/gst_plugins_cache.json:
47 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
48 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
49 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
50 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
51 Update plugin docs and add more plugins
52 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
54 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
56 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
57 libs: wayland: display: only handle the first output
58 Right now, all outputs are handled. The means that the registry object for
59 all but the last are leaked. As a result the sizes are not used correctly.
60 With two outputs, at first the mode and physical size of the second output
61 are used. If the first output changes the mode, then the physical size of
62 the second output is used in combination with the resolution of the first
63 output. The resulting pixel aspect ratio is incorrect.
64 There seems to be no way to determine on which output the window is shown,
65 so just use the first one to get consistent results.
66 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
68 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
70 * gst/vaapi/gstvaapipluginbase.c:
71 plugins: pluginbase: Do not destroy display when _close()
72 When the element's state changes to NULL, it can still receive
73 queries, such as the image formats. The display is needed in such
74 queries but not well protected for MT safe.
75 For example, ensure_allowed_raw_caps() may still use the display
76 while it is disposed by gst_vaapi_plugin_base_close() because of
78 We can keep the display until the element is destroyed. When the
79 state changes to NULL, and then changes to PAUSED again, the display
80 can be correctly set(if type changes), or leave untouched.
82 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
84 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
86 * gst-libs/gst/vaapi/gstvaapicontext.c:
87 libs: context: use correct printing modifier
88 GstVaapiID is an alias of gsize, thus its modifier is platform
90 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
92 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
94 * gst-libs/gst/vaapi/gstvaapidisplay.c:
95 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
96 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
97 * gst-libs/gst/vaapi/gstvaapifilter.c:
98 * gst-libs/gst/vaapi/gstvaapivalue.c:
99 plugins: uddate gst_type_mark_as_plugin_api() calls
101 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
103 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
104 libs: encoder: h265: Enable tile in VA command.
105 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
107 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
109 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
110 libs: encoder: h265: Add ensure_tile to calculate tiles.
111 We need consider tiles and slices together, separate tiles uniformly
112 and then assign slices uniformly to each tiles.
113 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
115 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
117 * gst-libs/gst/vaapi/gstvaapidisplay.c:
118 * gst-libs/gst/vaapi/gstvaapidisplay.h:
119 libs: display: add a quirk for iHD driver tile encoding.
120 The iHD driver has a requirement that one slice can not span tiles
121 when tile is enabled, which is not required by hevc spec.
122 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
124 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
126 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
127 libs: encoder: h265: Add tile info to bitstream.
128 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
130 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
132 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
133 libs: encoder: h265: promote level if tile is enabled.
134 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
136 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
138 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
139 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
140 libs: encoder: h265: Add num-tile-cols/rows properties.
141 These properties are used for support of tile encoding. We just
142 support uniform mode of tile encoding, that is, separating picture
143 equally by (num-tile-cols X num-tile-rows).
144 According to HEVC spec A1, the max number of tiles in column is 20
145 and in rows is 22, so add two constant definitions.
146 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
148 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
150 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
151 libs: encoder: h265: extract slice creation from add_slice_headers
152 extract slice creation details from add_slice_headers, and let the
153 add_slice_headers just focuses on calculating slice start address
155 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
157 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
159 * gst-libs/gst/vaapi/gstvaapiencoder.c:
160 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
161 libs: encoder: Add a helper function to check the tile support.
162 Encoding by tiles separation now is a very common feature for all
163 relative new codecs, such as HEVC, AV1, and VP9. Just make this
164 check as a common helper function of the encoder base class.
165 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
167 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
169 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
170 * gst-libs/gst/vaapi/gstvaapiprofile.c:
171 * gst-libs/gst/vaapi/gstvaapiprofile.h:
172 * gst-libs/gst/vaapi/gstvaapiutils.c:
173 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
174 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
175 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
177 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
179 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
180 libs: decoder: update reference list for SCC.
181 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
183 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
185 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
186 libs: decoder: H265: Fill picture and slice SCC parameters.
187 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
189 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
191 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
192 libs: util: H265: recognize the SCC profiles.
193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
195 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
197 * gst-libs/gst/vaapi/gstvaapiprofile.c:
198 * gst-libs/gst/vaapi/gstvaapiprofile.h:
199 * gst-libs/gst/vaapi/gstvaapiutils.c:
200 libs: profile: Add screen extended main/main10/main444 define.
201 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
203 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
205 * gst-libs/gst/vaapi/gstvaapiencoder.c:
206 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
207 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
208 * gst/vaapi/gstvaapiencode_h265.c:
209 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
210 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
211 streams and using Y210 as the input of the encoder can generate main
212 4:2:2 10 bit streams.
213 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
215 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
217 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
218 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
219 We need to use the chroma_format_idc as the index for getting the
220 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
221 The wrong SubWidthC or SubHeightC make us calculate a wrong right
222 or bottom offset for crop size and generate garbage in output.
223 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
225 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
227 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
228 libs: encoder: h265: Fix chrome idc for 444 10 bits
229 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
230 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
231 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
233 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
236 doc: Require hotdoc >= 0.11.0
238 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
240 * gst/vaapi/gstvaapipostproc.c:
241 doc: Fix wrong link to GstVideoDirectionMethod
243 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
245 * docs/gst_plugins_cache.json:
247 docs: Update plugin cache with the new format
248 And fix the default URL which should not be inside quotes.
250 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
252 * gst-libs/gst/vaapi/gstvaapidisplay.c:
253 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
254 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
255 * gst-libs/gst/vaapi/gstvaapifilter.c:
256 * gst-libs/gst/vaapi/gstvaapivalue.c:
257 * gst/vaapi/gstvaapipostproc.c:
258 Use gst_type_mark_as_plugin_api() for all non-element plugin types
260 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
262 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
263 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
264 * gst-libs/gst/vaapi/gstvaapicontext.h:
265 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
266 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
267 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
268 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
269 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
270 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
271 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
272 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
273 * gst-libs/gst/vaapi/gstvaapiimage.h:
274 * gst-libs/gst/vaapi/gstvaapiobject.c:
275 * gst-libs/gst/vaapi/gstvaapiobject.h:
276 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
277 * gst-libs/gst/vaapi/gstvaapiprofile.h:
278 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
279 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
280 * gst-libs/gst/vaapi/gstvaapisurface.h:
281 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
282 * gst-libs/gst/vaapi/gstvaapivideopool.c:
283 * gst-libs/gst/vaapi/meson.build:
284 libs: delete all gstvaapiobject related files.
285 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
287 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
289 * gst-libs/gst/vaapi/gstvaapisurface.c:
290 libs: surface: return fail immediately if can not create subpicture
291 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
293 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
295 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
296 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
297 * gst-libs/gst/vaapi/gstvaapisurface.c:
298 * tests/internal/image.c:
299 libs: subpicture: Make subpicture a standard GstMiniObject.
300 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
302 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
304 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
305 libs: decoder: h264: Add ref flags for splited field.
306 When split one frame into fields, the second field should also
307 copy the reference flags.
308 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
310 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
312 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
313 libs: decoder: h264: disallow multiple slice group
314 As far as we know there are no VAAPI drivers supporting FMO, which
315 migth be used in baseline streams.
316 This commit is a continuation of
317 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
318 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
320 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
322 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
324 * gst/vaapi/gstvaapidecode.c:
325 * gst/vaapi/gstvaapidecode_props.c:
326 * gst/vaapi/gstvaapidecode_props.h:
327 vaapidecoder: h264: remove baseline as constrained property
328 From now on always the baseline is going to be treated as constrained without
329 need of setting a property.
330 Since the property was added along the development cycle (1.17 / commit
331 866a9f06) and never released, we assume that it is safe to remove it.
333 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
335 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
338 README: update VP9 decoder and encoder
339 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
341 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
343 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
344 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
345 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
346 so let's align this plugin with other libraries / softwares.
347 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
349 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
351 * gst/vaapi/gstvaapivideobufferpool.c:
352 vaapivideobufferpool: fix meta overwrite
353 commit 7ac2a207 added a regression by erroneously assumed that
354 GstVaapiVideoMeta is actually a GstMeta, which is not.
355 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
357 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
359 * gst/vaapi/gstvaapivideobufferpool.c:
360 * gst/vaapi/gstvaapivideometa_texture.c:
361 * gst/vaapi/gstvaapivideometa_texture.h:
362 vaapivideopool: Set pooled flag to added metas.
363 So this could hint filters how to use these metas.
364 Had to change the return value for texutre upload meta in order
366 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
368 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
370 * gst-libs/gst/vaapi/gstvaapicontext.c:
371 * gst-libs/gst/vaapi/gstvaapidisplay.c:
372 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
373 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
374 * gst-libs/gst/vaapi/gstvaapisurface.c:
375 libs: use array_unref() rather than array_free()
376 It is more convinience and thread-safe.
377 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
379 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
381 * gst/vaapi/gstvaapi.c:
382 plugin: use register_type to replace get_type for encode init.
383 xxx_register_type will detect the template sink caps and is needed
384 to be called at init time.
385 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
387 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
389 * gst/vaapi/gstvaapiencode_vp9.c:
390 * gst/vaapi/gstvaapiencode_vp9.h:
391 plugins: encode: Modify sink template of vp9 encode.
392 Use gst_vaapi_detect_codec_caps to get more precise template caps.
393 Also implement gst_vaapiencode_vp9_register_type, which should be
394 called at plugin register time.
395 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
397 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
399 * gst/vaapi/gstvaapiencode_vp8.c:
400 * gst/vaapi/gstvaapiencode_vp8.h:
401 plugins: encode: Modify sink template of vp8 encode.
402 Use gst_vaapi_detect_codec_caps to get more precise template caps.
403 Also implement gst_vaapiencode_vp8_register_type, which should be
404 called at plugin register time.
405 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
407 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
409 * gst/vaapi/gstvaapiencode_mpeg2.c:
410 * gst/vaapi/gstvaapiencode_mpeg2.h:
411 plugins: encode: Modify sink template of mpeg2 encode.
412 Use gst_vaapi_detect_codec_caps to get more precise template caps.
413 Also implement gst_vaapiencode_mpeg2_register_type, which should be
414 called at plugin register time.
415 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
417 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
419 * gst/vaapi/gstvaapiencode_h265.c:
420 * gst/vaapi/gstvaapiencode_h265.h:
421 plugins: encode: Modify sink template of h265 encode.
422 Use gst_vaapi_detect_codec_caps to get more precise template caps.
423 Also implement gst_vaapiencode_h265_register_type, which should be
424 called at plugin register time.
425 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
427 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
429 * gst/vaapi/gstvaapiencode_h264.c:
430 * gst/vaapi/gstvaapiencode_h264.h:
431 plugins: encode: Modify sink template of h264 encode.
432 Use gst_vaapi_detect_codec_caps to get more precise template caps.
433 Also implement gst_vaapiencode_h264_register_type, which should be
434 called at plugin register time.
435 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
437 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
439 * gst/vaapi/gstvaapiencode_jpeg.c:
440 * gst/vaapi/gstvaapiencode_jpeg.h:
441 plugins: encode: Modify sink template of jpeg encode.
442 Use gst_vaapi_detect_codec_caps to get more precise template caps.
443 Also implement gst_vaapiencode_jpeg_register_type, which should be
444 called at plugin register time.
445 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
447 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
449 * gst/vaapi/gstvaapiencode.h:
450 plugin: encode: add a helper macro to register encode type.
451 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
453 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
455 * gst/vaapi/gstvaapipluginutil.c:
456 * gst/vaapi/gstvaapipluginutil.h:
457 plugins: util: Add a helper function to detect supported caps.
458 This helper function iterate all profiles and entrypoints belong
459 to the specified codec, query the VAConfigAttribRTFormat and list
460 all possible video formats.
461 This function is used by each codec to get the template sink caps
462 (for encode) or src caps(for decode) at register time, when just
463 all possible formats are listed and no need to be very accurate.
464 So there is no context created for the performance reason. Most
465 codecs just use YUV kinds of formats as the input/output, so we do
466 not include RGB kinds of formats. User can specified more formats
467 in extra_fmts(For example, jpeg may need BGRA) if needed.
468 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
470 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
472 * gst/vaapi/gstvaapiencode.c:
473 * gst/vaapi/gstvaapipluginutil.c:
474 * gst/vaapi/gstvaapipluginutil.h:
475 plugin: encode: extract the allowed caps maker as a helper function.
476 Extract all logic about making caps for encode's sink as a standalone
477 helper function. It can be reused.
478 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
480 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
482 * gst-libs/gst/vaapi/video-format.c:
483 * gst-libs/gst/vaapi/video-format.h:
484 libs: video-format: add a helper function of get_formats_by_chroma.
485 The function iterates all supported video formats and returns the
486 formats belong to the specified chroma type.
487 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
489 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
491 * gst-libs/gst/vaapi/gstvaapitexture.c:
492 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
493 libs: texture: remove unused headers include
494 This is continuation of
495 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
496 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
498 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
500 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
501 * gst-libs/gst/vaapi/gstvaapiimage.h:
502 * gst-libs/gst/vaapi/gstvaapisurface.h:
503 libs: removed duplicated function declarations
504 Some headers had duplicated inlined function declaration. This was
505 for gtkdoc, but now GStreamer uses hotdoc and the internal library
506 documentation is not generated. So let's remove these extra lines.
507 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
509 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
511 * gst-libs/gst/vaapi/gstvaapitexture.c:
512 * gst-libs/gst/vaapi/gstvaapitexture.h:
513 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
514 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
515 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
516 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
517 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
518 * gst/vaapi/gstvaapivideometa_texture.c:
519 * tests/internal/test-textures.c:
520 libs: texture: Make texture a standard GstMiniObject.
521 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
522 the qdata of miniobject and avoid extending the base texture class.
523 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
525 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
529 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
531 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
533 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
534 libs: display: drm: use g_strcmp0 to be null safe
535 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
537 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
539 * gst/vaapi/gstvaapipluginutil.c:
540 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
541 We may build this plugin with window system support but run it without
542 window system. Without this patch, the following pipeline will trigger a
543 segfault when running it without window system.
544 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
545 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
547 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
550 build: use join_paths() for driverdir
552 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
555 README: Update supported hardware
556 Added the AMD hardware list to the "Hardware Requirements" section.
558 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
560 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
561 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
562 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
563 libs: bufferproxy: remove GstMemory reference
564 Since bufferproxy and surface are not referenced circularly, there's
565 no need to keep, in the buffer proxy, a reference to the GstMemory
566 where it is held. This patch removes that handling.
568 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
570 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
571 * gst-libs/gst/vaapi/gstvaapisurface.c:
572 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
573 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
574 * gst/vaapi/gstvaapivideomemory.c:
575 libs,plugin: break surface-bufferproxy circular reference
576 The bufferproxy may reference the surface and the surface may also
577 reference the bufferproxy, producing a circular reference, which might
578 lead to serious resource leak problems.
579 Now make the relationship clearer, the bufferproxy's references is
580 transfered to surface, while bufferproxy just keeps the surface's
581 address without increasing its reference count.
582 The surface can be created through a bufferproxy like in
583 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
584 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
585 both cases the surface holds a bufferproxy's reference.
587 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
589 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
590 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
591 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
592 libs: bufferproxy: rename parent memeber as surface
594 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
596 * gst/vaapi/gstvaapivideobufferpool.c:
597 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
598 The old way of refer memory by bufferproxy is not a good one, since it
599 make the logic error prone.
600 Now it is established a map between surface-bufferproxy and its GstMemory,
601 caching the memory bound by a surface looked for the specified surface.
603 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
605 * gst/vaapi/gstvaapivideobufferpool.c:
606 * gst/vaapi/gstvaapivideobufferpool.h:
607 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
608 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
609 In fact, no one is using that flag, and all vaapi buffers should
610 have GstVaapiVideoMeta.
612 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
614 * gst/vaapi/gstvaapipostproc.c:
615 * gst/vaapi/gstvaapipostproc.h:
616 vaapipostproc: enable HDR10 tone mapping
618 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
620 * gst-libs/gst/vaapi/gstvaapifilter.c:
621 * gst-libs/gst/vaapi/gstvaapifilter.h:
622 libs: filter: HDR10 tone mapping support
623 Add support for HDR10 tone mapping (since VA-API 1.4.0).
625 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
627 * gst-libs/gst/vaapi/gstvaapiencoder.c:
628 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
629 * gst-libs/gst/vaapi/gstvaapiprofile.c:
630 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
631 * gst/vaapi/gstvaapiencode_h265.c:
632 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
633 Using Y410 as the input of the encoder can generate main_444_10 bit
636 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
638 * gst-libs/gst/vaapi/gstvaapiencoder.c:
639 libs: encoder: fix an inexact trace info in chroma type check.
641 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
643 * gst-libs/gst/vaapi/gstvaapiencoder.c:
644 libs: encoder: make sure format array is not NULL when returning TRUE
645 This fixed segfault when running the pipeline below with iHD driver
646 (commit efe5e9a) on ICL
647 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
650 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
652 * gst-libs/gst/vaapi/gstvaapidecoder.h:
653 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
654 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
655 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
656 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
657 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
658 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
659 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
660 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
661 * gst-libs/gst/vaapi/gstvaapidisplay.h:
662 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
663 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
664 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
665 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
666 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
667 * gst-libs/gst/vaapi/gstvaapiencoder.h:
668 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
669 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
670 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
671 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
672 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
673 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
674 * gst-libs/gst/vaapi/gstvaapifilter.h:
675 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
676 * gst-libs/gst/vaapi/gstvaapiwindow.h:
677 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
678 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
679 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
680 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
681 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
682 libs: extend g_autoptr support
684 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
686 * gst/vaapi/gstvaapivideometa.c:
687 vaapivideometa: remove compiler warning
689 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
693 build: Add meson's option package-origin.
694 This options is added to synchronize with other gstreamer packages
696 Though, to avoid breaking distro configuration it is set, as default,
697 the issues gitlab's url, instead of the used string
698 "Unkown package origin".
699 Also, set_quoted is used for string based cdata.
701 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
703 * gst/vaapi/gstvaapipostproc.c:
704 vaapipostproc: deprecate format, width and size parameters
705 Since they should only be controlled by caps negotiation.
707 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
709 * gst-libs/gst/vaapi/gstvaapiprofile.c:
710 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
711 * gst/vaapi/gstvaapidecode.c:
712 libs,plugins: decoder: Add -intra profile support for hevc.
713 In hevc, we can consider the -intra profile a subset of the none
714 -intra profile. The -intra profiles just contain I frames and we
715 definitely can use the none -intra profiles's context to decode
717 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
719 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
721 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
722 libs: encoder: h265: support ICQ/QVBR BRC
723 Enable support for ICQ and QVBR bitrate control.
724 The code is essentially the same for h264 ICQ/QVBR support
725 which was added in commit 9e0c133a2403.
727 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
729 * gst-libs/gst/vaapi/gstvaapiencoder.c:
730 libs: encoder: set VA HRD param before RC param
731 This is a workaround for intel-media-driver bug
732 https://github.com/intel/media-driver/issues/865
733 The driver will force the RC method to CBR for HEVCe
734 when it parses the HRD param. Thus, any RC method
735 param submitted "prior" to the HRD param will be lost.
736 Therefore, VBR, ICQ and QVBR for HEVCe can't be
737 effectively enabled if the RC method param "precedes"
739 To work around this issue, set the HRD param before
740 the RC method param so the driver will parse the RC
741 method param "after" the HRD param.
742 Afaict, other codecs in the driver (and other drivers)
743 do not appear to be dependent on the order of HRD and
746 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
748 * gst-libs/gst/vaapi/gstvaapidisplay.c:
749 * gst-libs/gst/vaapi/gstvaapidisplay.h:
750 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
751 vaapijpegenc: Add a quantization quirk for iHD driver
752 iHD driver shifts the value by 50 when calculating quantization for JPEG
753 encoding, so we should add 50 in this plugin for iHD driver too.
755 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
757 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
758 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
759 * gst-libs/gst/vaapi/gstvaapipixmap.c:
760 * gst-libs/gst/vaapi/gstvaapipixmap.h:
761 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
762 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
763 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
764 * gst-libs/gst/vaapi/gstvaapiwindow.c:
765 * gst-libs/gst/vaapi/gstvaapiwindow.h:
766 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
767 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
768 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
769 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
770 * gst-libs/gst/vaapi/meson.build:
772 * tests/internal/output.c:
773 * tests/internal/output.h:
774 * tests/internal/simple-decoder.c:
775 * tests/internal/test-decode.c:
776 libs: remove GstVaapiPixmap
777 GstVaapiPixmap is an abstract base class which only implementation
778 were GstVaapiPixmapX11. This class were used for a special type of
779 rendering in the tests apps, utterly unrelated in GStreamer.
780 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
781 we should remove this unused API.
782 This removal drops libxrender dependency.
784 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
786 * gst-libs/gst/vaapi/gstvaapiutils.c:
787 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
788 HEVCMain444_10 is already a supported profile and misses the strings.
790 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
792 * gst/vaapi/gstvaapi.c:
793 plugin: don't error if cannot create display
794 This might generated errors on automatic tools such as CI. Let's
795 rather just raise a warning and let continue.
797 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
799 * tests/check/meson.build:
800 test: fix a ninja test failure for vaapioverlay.
801 That test case only works with drm display, so the build such as
802 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
804 gets a failure when run ninja test. Just enable this test when drm
807 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
809 * gst-libs/gst/vaapi/gstvaapivideopool.c:
810 libs: videopool: fix a condition race for pool allocate.
812 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
814 * gst/vaapi/gstvaapivideobufferpool.c:
815 vaapivideobufferpool: force video meta if sizes are different
816 The strides and offsets could be the same, but the allocation
817 size might be different (e.g. alignment). Thus, ensure we also
818 set the flag to copy from VA memory to system memory when alloc
822 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
824 * gst/vaapi/gstvaapidecode.c:
825 vaapidecode: don't set base sink caps twice
826 Base class's sink pad caps are already set when calling set_format().
827 There's no need to call it again in gst_vaapidecode_negotiate().
829 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
831 * gst/vaapi/gstvaapidecode.c:
832 vaapidecode: unlock stream if caps update fails
833 If caps update fail a dead lock occurs since the stream mutex is not
836 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
838 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
839 libs: decoder: h265: parser state after update dependent slice
840 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
841 So we need check the slice type after we call populate_dependent_slice_hdr
843 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
845 * gst-libs/gst/vaapi/gstvaapidisplay.c:
846 * gst-libs/gst/vaapi/gstvaapidisplay.h:
847 libs: display: force RGBA image format for i965 driver
848 Since commit 32bf6f1e GLTextureUpload is broken because i965
849 doesn't report properly RGBA support. It could be possible to use RGBx
850 but GLTextureUpload only regotiates RGBA.
851 The simplest fix to this regression is adding synthetically the RGBA
852 format in the internal format map.
854 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
856 * gst-libs/gst/vaapi/gstvaapidisplay.c:
857 libs: display: iterate all quirks table
858 Instead of break at the fist foud quirk in the table, iterate all over
859 so it would be feasible to add several quirks for one driver per
862 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
864 * gst-libs/gst/vaapi/gstvaapifilter.c:
865 libs: filter: handle RGB to/from YUV color primary driver quirk
866 The intel-media-driver (iHD) can't convert output color
867 primaries when doing YUV to/from RGB CSC. Thus, we must
868 keep the output color primaries the same as the input
869 color primaries for this case.
872 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
874 * gst-libs/gst/vaapi/gstvaapidisplay.c:
875 * gst-libs/gst/vaapi/gstvaapidisplay.h:
876 libs: display: add YUV to/from RGB color primary quirk
877 The intel-media-driver (iHD) can't convert output color
878 primaries when doing YUV to/from RGB CSC.
880 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
882 * gst/vaapi/gstvaapivideomemory.c:
883 Revert "vaapivideomemory: Store surface allocation flags."
884 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
885 it rewrites the buffer size whilst surface allocation flags are
886 stored when allocator_params_init() is called since fab890ce.
889 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
891 * gst/vaapi/gstvaapivideomemory.c:
892 vaapivideomemory: Try surface with allocation flags.
893 When a vaapi allocator is instantiated, it first try to generate a
894 surface with the specified configuration.
895 This patch adds, in this tried buffer, the requested allocation flags.
897 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
899 * gst/vaapi/gstvaapivideomemory.c:
900 vaapivideomemory: Store surface allocation flags.
901 Store surface allocation flags passed to the vaapi allocator in
902 GObject's qdata, because it might be used by the vaapivideobufferpool
903 when recreating the allocator given any resolution change.
905 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
907 * gst-libs/gst/vaapi/gstvaapisurface.c:
908 * gst-libs/gst/vaapi/gstvaapisurface.h:
909 libs: surface: Add hints to allocation flags.
910 When creating surfaces it is possible to pass to VA hints of its usage,
911 so the driver may do some optimizations.
912 This commit adds the handling of encoding/decoding hints.
914 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
916 * gst-libs/gst/vaapi/gstvaapicontext.c:
917 * gst-libs/gst/vaapi/gstvaapisurface.c:
918 * gst-libs/gst/vaapi/gstvaapisurface.h:
919 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
920 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
921 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
922 * gst-libs/gst/vaapi/gstvaapiwindow.c:
923 * tests/internal/test-filter.c:
924 * tests/internal/test-surfaces.c:
925 libs: surface: surfacepool: Add allocation flags in constructors.
927 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
930 build: let the build fail if none if X11, wayland or drm.
931 In fact, gst_vaapi_create_test_display only test x11, wayland and
932 drm, no glx and egl entries. So if none of them is enabled, no
933 vaapi element can be detected.
935 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
937 * tests/internal/test-display.c:
938 test: avoid unused warning for test-display
939 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
940 -Dwith_glx=no buildir
941 generate unused warnings.
943 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
946 build: fix meson build error when without x11.
947 meson -Dwith_x11=no build_dir
948 can not success build the project because the glx is still enabled.
949 We need to disable GLX when X11 is disabled.
951 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
953 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
954 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
955 Intel HW has limitation on max_transform_hierarchy_depth_inter and
956 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
957 other HWs if other HWs may support other values
958 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
960 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
962 * gst/vaapi/gstvaapipostproc.c:
963 * gst/vaapi/gstvaapipostprocutil.c:
964 vaapipostproc: do not compensate for crop/direction if no VPP
965 If we do not have functional VPP, then cropping and video
966 direction is non-functional and we should avoid calling
967 any of the gst_vaapi_filter* APIs.
969 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
971 * gst/vaapi/gstvaapipostproc.c:
972 vaapipostproc: only set VPP colorimetry when VPP is available
973 If we don't have functional vpp then we should not call
974 gst_vaapi_filter_set_colorimetry.
976 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
978 * gst/vaapi/gstvaapivideobufferpool.c:
979 * gst/vaapi/gstvaapivideomemory.c:
980 * gst/vaapi/gstvaapivideomemory.h:
981 videobufferpool: don't reset surface when created internally
982 The bug fixing, in commit 89f202ea, just considers the case when
983 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
984 which is typically a decoder's behavior. But vaapipostproc doesn't
985 provide any surface when calling gst_buffer_pool_acquire_buffer(),
986 thus a surface is created when GstMemory is allocated.
987 If the surface proxy in buffer's meta is reset at
988 buffer_pool_reset_buffer(), that surface will be destroyed and it
989 won't be available anymore. But GstBuffers are cached in the buffer
990 pool and they are reused again, hence only those images are rendered
994 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
996 * gst-libs/gst/vaapi/gstvaapiblend.c:
997 * gst-libs/gst/vaapi/gstvaapifilter.c:
998 * gst/vaapi/gstvaapi.c:
999 libs: blend: filter: handle finalize() if display isn't assigned
1000 I've just discovered iHD driver in Skylake doesn't have VideoProc
1001 entry point, hence, in this platform, when vaapioverlay is tried to be
1002 registered, critical warnings are raised because blend doesn't have a
1004 As it is possible to have drivers without EntryPointVideoProc it is
1005 required to handle it gracefully. This patch does that: only tries to
1006 register vaapioverlay if the testing display has VPP and finalize()
1007 vmethods, in filter and blend, bail out if display is NULL.
1009 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1011 * gst-libs/gst/vaapi/gstvaapifilter.c:
1012 * gst-libs/gst/vaapi/gstvaapiutils.c:
1013 libs: filter: guard all color properties to VA-API 1.2.0
1014 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
1015 Thus, guard all colorimetry -> VA-API support to version
1019 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1021 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1022 libs: decoder: h265: set parser info state at decoding codec data
1023 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
1024 parser info in sps array. If that parser info comes from decoding
1025 codec data, that parser info will have an undefined state which might
1027 This patch sets the parser info state, at decoding codec data, with
1028 the internal parser state. This is similar with h264 decoder apprach.
1029 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
1031 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1033 * gst/vaapi/gstvaapipostproc.c:
1034 vaapipostproc: demote log message to trace level
1036 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1038 * gst-libs/gst/vaapi/video-format.c:
1039 libs: video-format: set general vaapi log category
1040 Instead of logging in an unspecified category, set the default vaapi.
1042 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1044 * gst-libs/gst/vaapi/gstvaapiutils.c:
1045 libs: utils: guard EncSliceLP for VA-API < 0.39.1
1048 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
1050 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1051 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
1053 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1055 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1056 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1057 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1058 libs: remove crumbs of libva < 0.39
1059 All these guarded code seem like leftovers of commit 920b1ec7a. This
1060 patch completes that missing clean up.
1062 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1064 * gst-libs/gst/vaapi/gstvaapifilter.c:
1065 * gst-libs/gst/vaapi/gstvaapiutils.c:
1066 libs: VA explicit color standard not supported until 1.2.0
1067 VAProcColorStandardExplicit and associated VAProcColorProperties
1068 (primaries, transfer and matrix) are not supported until
1070 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
1074 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1076 * gst-libs/gst/vaapi/gstvaapiutils.c:
1077 libs: utils: WA: use explicit for sRGB colorimetry
1078 Addresses #228 on iHD side. It seems iHD can't handle
1079 VAProcColorStandardSRGB in all situations for vpp. But
1080 it has no problem when we specify the sRGB parameters
1081 via VAProcColorStandardExplicit parameters.
1083 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1085 * gst-libs/gst/vaapi/gstvaapifilter.c:
1086 libs: filter: set vpp input/output color range
1087 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
1088 And, the [iHD] driver essentially computes the same color
1089 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
1090 cases were gstreamer computes it automatically. But,
1091 if the user wants to make it explicit, we should try
1094 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1096 * gst-libs/gst/vaapi/gstvaapiutils.c:
1097 * gst-libs/gst/vaapi/gstvaapiutils.h:
1098 libs: utils: map GstVideoColorRange to VAAPI VPP
1100 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1102 * gst/vaapi/gstvaapidecode.c:
1103 vaapidecode: don't remove chroma-site nor colorimetry
1104 Since now they can be handled by vaapipostproc.
1106 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1108 * gst/vaapi/gstvaapipostprocutil.c:
1109 vaapipostproc: use sink resolution to calculate src colorimetry
1110 The default output colorimetry is persuaded by the output
1111 resolution, which is too naive when doing VPP cropping
1112 and/or scaling. For example, scaling 4K(sink)->1080P(src)
1113 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
1114 colorimetry selection and some drivers don't support that
1116 Thus, if output (i.e. downstream) does not specify a
1117 colorimetry then we use the input resolution instead of the
1118 output resolution to create the default colorimetry. Also,
1119 note that we still use the output format since it may be a
1120 different color space than the input. As in the example
1121 above, this will result in bt2020(sink)->bt2020(src)
1122 colorimetry selection and all drivers (afaik) should support
1125 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1127 * gst/vaapi/gstvaapipostprocutil.c:
1128 vaapipostproc: set srcpad colorimetry unconditionally
1129 We always need a srcpad colorimetry for VAAPI VPP
1131 Also, check the return value of _set_colorimetry.
1133 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1135 * gst/vaapi/gstvaapipostprocutil.c:
1136 vaapipostproc: do not override explicit srcpad colorimetry
1137 If colorimetry has been set by a capsfilter (e.g.
1138 vaapipostproc ! video/x-raw,colorimetry=bt709) then
1139 don't try to override it. Previously, the aforementioned
1140 capsfilter will fail to negotiate if default colorimetry
1141 is not the same as the capsfilter (e.g. 4K resolutions).
1143 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1145 * gst/vaapi/gstvaapipostproc.c:
1146 vaapipostproc: set vpp filter colorimetry
1147 Set the input and output colorimetry for vpp filter.
1149 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1151 * gst-libs/gst/vaapi/gstvaapifilter.c:
1152 * gst-libs/gst/vaapi/gstvaapifilter.h:
1153 libs: filter: support vpp input/output color standard
1154 Add API function to allow setting the input and output vpp
1155 color standard from GstVideoColorimetry.
1157 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1159 * gst-libs/gst/vaapi/gstvaapiutils.c:
1160 * gst-libs/gst/vaapi/gstvaapiutils.h:
1161 libs: utils: map GstVideoColorimetry to VAAPI VPP
1162 Fallback to VAProcColorStandardExplicit if there is no
1165 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1167 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1168 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1169 libs: display: add vpp color standard quirk for i965 driver
1170 The i965 does not properly report supported vpp color
1173 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1175 * gst/vaapi/gstvaapivideobufferpool.c:
1176 vaapivideobufferpool: dmabuf implies allocator
1177 Some code can be optimized since only if the dmabuf allocator is set,
1178 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
1179 the allocator address.
1181 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1183 * gst/vaapi/gstvaapivideobufferpool.c:
1184 vaapivideobufferpool: reject configuration if allocator isn't vaapi
1185 If the requested allocator in set_config() is not a VAAPI valid one,
1186 reject the configuration, instead of lying and using a private one.
1187 This patch superseeds !254 and !24
1189 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1191 * gst/vaapi/gstvaapivideobufferpool.c:
1192 vaapivideobufferpool: add explanation for allocator reconfig
1194 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1196 * gst/vaapi/gstvaapivideobufferpool.c:
1197 vaapivideobufferpool: check for vaapi meta first
1198 If the configured meta doesn't request vaapi meta then it is not a
1199 vaapi buffer pool. Bail out as soon as possible.
1201 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1203 * gst/vaapi/gstvaapivideobufferpool.c:
1204 vaapivideobufferpool: turn errors into warnings
1205 set_config() vmethod should fail gracefully, thus upstream could
1206 negotiate another pool if possible.
1207 Instead of sending error messages to the bus, let demote the level
1210 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1212 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1213 libs: display: log out vendor string when available
1214 This is useful while asking for logs to know the used driver.
1216 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1218 * gst-libs/gst/vaapi/gstvaapisurface.c:
1219 libs: surface: initialize VASurfaceAttribExternalBuffers
1220 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
1221 rather than using memset().
1223 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1225 * gst-libs/gst/vaapi/gstvaapisurface.c:
1226 libs: surface: merge two loops into one
1227 Merge two loops into one for setting offsets and strides in the
1228 external buffer descriptor.
1230 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1232 * gst-libs/gst/vaapi/gstvaapisurface.c:
1233 * gst-libs/gst/vaapi/gstvaapisurface.h:
1234 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
1235 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
1236 libs: surface: surfacepool: rename variable for clearity
1237 In order to be readable, the meaningless 'flags' is renamed to
1238 surface_allocation_flags, which is clearer.
1240 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1242 * gst/vaapi/gstvaapivideobufferpool.c:
1243 vaapivideobufferpool: Reuse internal allocator is possible.
1244 Instead of creating a new allocator when upstream requests a different
1245 allocator, this patch tries to reuse the internal allocator if it was
1246 already initializated.
1247 If the stream changes, then either one will be unref and a new
1248 allocator is created.
1250 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1252 * gst/vaapi/gstvaapivideobufferpool.c:
1253 vaapivideobufferpool: Log messages in proper category.
1254 The log messages where logged in the GstBufferPool category because
1255 the instance was not properly casted. This fix that situation.
1257 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1259 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1260 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1261 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
1262 * gst/vaapi/gstvaapipluginbase.c:
1263 libs: display: driver quirks mechanism
1264 This mechanism comes from ffmpeg vaapi implementation, where they have
1266 A specific driver is identified by a substring present in the vendor
1267 string. If that substring is found, a set of bitwise flags are store.
1268 These flags can be accessed through the function
1269 gst_vaapi_display_has_driver_quirks().
1270 The purpose for this first quirks is to disable the put image try for
1271 AMD Gallium driver (see [1]).
1272 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
1274 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1276 * gst/vaapi/gstvaapipluginutil.c:
1277 plugins: renable Mesa Gallium driver
1279 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1281 * gst/vaapi/gstvaapivideobufferpool.c:
1282 vaapivideobufferpool: validate returned meta
1283 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
1284 the acquired buffer is not null.
1285 This situation should be very "pathological", but still it is better
1286 be safe since that meta might be used later to create a new dma
1289 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
1291 * gst/vaapi/gstvaapivideobufferpool.c:
1292 vaapivideobufferpool: always update/release the underlying surface proxy
1293 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
1294 releases the last reference on an exported DMA buffer. This should
1295 release the underlying surface proxy. To avoid releasing the wrong
1296 surface due to a stale surface proxy reference in the buffer's
1297 GstVaapiVideoMeta, always update the reference to the correct surface
1298 in gst_vaapi_video_buffer_pool_acquire_buffer().
1300 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1302 * gst-libs/gst/vaapi/gstvaapicontext.c:
1303 * gst-libs/gst/vaapi/gstvaapicontext.h:
1304 * gst-libs/gst/vaapi/gstvaapisurface.c:
1305 * gst-libs/gst/vaapi/gstvaapisurface.h:
1306 libs: context: select vaCreateSurfaces version according attributes
1307 This commit tries to centralize the selection of vaCreateSurfaces
1308 version, instead of having fallbacks everywhere.
1309 These fallbacks are hacks, added because new drivers use the latest
1310 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
1311 old drivers (or profiles as JPEG decoder in i965) might rather use the
1313 In order to select which method, there's detected hack: each config
1314 context has a list of valid formats, in the case of JPEG decoder the
1315 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
1316 handled correctly by the current gstreamer-vaapi code [2].
1317 The hack consist in identify if the format list contains an arbitrary
1318 preferred format (which is suposedly well supported by
1319 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
1320 the the old version of vaCreateSurfaces is used, and the surfaces wil
1321 be mapped into a image with their own color format.
1322 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
1323 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
1325 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1327 * gst-libs/gst/vaapi/gstvaapicontext.c:
1328 libs: context: add debug category for context
1330 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1332 * gst-libs/gst/vaapi/gstvaapiblend.c:
1333 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
1335 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1337 * gst/vaapi/gstvaapiencode_h264.c:
1338 vaapiencode: promote info to warning
1339 Let's notify user about using constrained-baseline instead on
1340 requested basline profile.
1342 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1344 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1345 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1346 * gst/vaapi/gstvaapidecode.c:
1347 * gst/vaapi/gstvaapidecode_props.c:
1348 * gst/vaapi/gstvaapidecode_props.h:
1349 vaapih264dec: Add a property to assume constrained-baseline
1350 When baseline-as-constrained is set, the decoder will expose support
1351 for baseline decoding and assume that the baseline content is
1352 constrained-baseline. This can be handy to decode streams in hardware
1353 that would otherwise not be possible to decode. A lot of baseline
1354 content is in fact constrained.
1356 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1358 * gst/vaapi/gstvaapiencode_h264.c:
1359 * gst/vaapi/gstvaapipluginutil.c:
1360 vaapih264enc: accept baseline as constrained baseline compatible
1362 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1364 * gst/vaapi/gstvaapiencode_h264.c:
1365 vaapih264enc: update level in src caps
1366 And, if downstream requests a specific level, the caps are not
1367 negotiated, because there is no mechanism right now to specify a
1368 custom level in the internal encoder.
1370 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1372 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1373 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
1375 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1377 * gst/vaapi/gstvaapiencode_h264.c:
1378 vaapih264enc: force byte-stream if avc isn't supported
1379 Removing the validation in gst_vaapiencode_h264_get_caps() since that
1380 ought be handled in gst_vaapiencode_h264_set_config()
1382 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
1384 * gst/vaapi/gstvaapiencode_h264.c:
1385 vaaph264enc: suppress avc if the driver does not support packed headers
1386 Do not negotiate AVC output if the driver does not support it.
1388 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
1390 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1391 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1392 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
1393 AVC output requires packed header support in the driver.
1395 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1397 * gst/vaapi/gstvaapiencode_h264.c:
1398 vaapih264enc: intersect the new proposed caps
1399 Instead of just leave to keep the proposed caps, with the best profile
1400 in the allowed caps, is its intersected again.
1402 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1404 * gst/vaapi/gstvaapiencode_h264.c:
1405 vaapih264enc: propose new profile caps and fixate it
1406 When the available caps doesn't intersect with the allowed caps in the
1407 pipeline, a new caps is proposed rather than just expecting to
1409 Later, the intersected caps (profile_caps) is fixated in order to
1410 extract the configuration.
1412 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1414 * gst/vaapi/gstvaapiencode_h264.c:
1415 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
1416 Add a common fail code path for gst_vaapiencode_h264_set_config().
1418 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1420 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1421 libs: encoder: unref formats array if none
1422 The formats array is always created, in order to keep the logic and
1423 to avoid broken caps, if this formats array doesn't contain any
1424 elements, it has to be unref and the function should return NULL.
1426 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1428 * gst/vaapi/gstvaapiencode_h264.c:
1429 vaapih264enc: fix log message
1430 Before the log wasn't processed because wrong instance pointer.
1432 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
1434 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1435 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1436 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1437 * gst/vaapi/gstvaapiencode_h265.c:
1438 plugin: encode: Add H265 main-444 profile.
1439 Expose the main-444 profile to h265enc caps, when the upstream
1440 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
1443 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
1445 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1446 libs: encoder: h265: Consider main-444 profile when encoding.
1447 Add support of main-444 profile for parameter setting and packed header
1450 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1452 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1453 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1454 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
1455 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
1456 * gst/vaapi/gstvaapiencode.c:
1457 vaapiencode: DMABuf only if PRIME is available
1458 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
1459 memory type is available in the VA surface attributes of codec
1462 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
1464 * hooks/pre-commit.hook:
1465 Add hooks/pre-commit.hook
1466 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
1467 Copied and pasted pre-commit.hook from other gstreamer modules to make
1468 sure gstreamer-vaapi follows the same code style
1470 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
1472 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1473 libs: encoder: h265: Set encoder paramters base on entrypoint.
1474 When the tune is NONE, we now can choose entrypoint freely. So the
1475 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
1477 We also delay CTU size calculation after entrypoint has been decided.
1479 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1481 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
1482 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
1483 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
1484 * gst-libs/gst/vaapi/gstvaapicontext.c:
1485 * gst-libs/gst/vaapi/gstvaapicontext.h:
1486 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1487 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1488 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1489 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
1490 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
1491 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
1492 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1493 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
1494 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
1495 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
1496 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
1497 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
1498 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
1499 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
1500 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
1501 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
1502 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1503 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1504 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
1505 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
1506 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1507 * gst-libs/gst/vaapi/meson.build:
1508 * gst/vaapi/gstvaapi.c:
1509 * gst/vaapi/gstvaapiencode.c:
1510 * gst/vaapi/gstvaapiencode.h:
1511 * gst/vaapi/gstvaapiencode_h264_fei.c:
1512 * gst/vaapi/gstvaapiencode_h264_fei.h:
1513 * gst/vaapi/gstvaapifeivideometa.c:
1514 * gst/vaapi/gstvaapifeivideometa.h:
1515 * gst/vaapi/meson.build:
1517 * tests/internal/meson.build:
1518 * tests/internal/test-fei-enc-in.c:
1519 * tests/internal/test-fei-enc-out.c:
1520 Remove all FEI related
1521 FEI encoders are not actively mantained neither tested, and it is
1522 using infrastructure that is changing and FEI is stopping this
1524 Also it is required to rethink how FEI can be used in GStreamer.
1526 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1528 * gst/vaapi/gstvaapioverlay.c:
1529 vaapioverlay: ensure sinkpad has current buffer
1530 Use the gst_video_aggregator_pad_has_current_buffer API
1531 to check if the current sinkpad has a queued buffer before
1532 attempting to obtain a input buffer from the base plugin.
1533 If the sinkpad does not have a current buffer, then it is
1534 either not producing them yet (e.g. current time < sinkpad
1535 start time) or it has reached EOS.
1536 Previously, we only handled EOS case.
1538 gst-launch-1.0 videotestsrc num-buffers=100 \
1539 ! vaapipostproc ! vaapioverlay name=overlay \
1540 ! vaapisink videotestsrc timestamp-offset=1000000000 \
1541 num-buffers=100 ! video/x-raw,width=160,height=120 \
1544 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1546 * gst/vaapi/gstvaapioverlay.c:
1547 vaapioverlay: unroll the recursive call
1548 Recursive functions are elegant but dangerous since they might
1549 overflow the stack. It is better to turn them into a list tranversal
1550 if possible, as this case.
1552 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1554 * gst-libs/gst/vaapi/gstvaapiblend.c:
1555 * gst/vaapi/gstvaapioverlay.c:
1556 vaapioverlay: add minimal documentation
1558 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1560 * gst-libs/gst/vaapi/gstvaapiblend.c:
1561 * gst-libs/gst/vaapi/gstvaapiblend.h:
1562 * gst/vaapi/gstvaapioverlay.c:
1563 libs: blend: simplify generator API
1564 Instead of using a parent structure that has to be derived by API
1565 consumers, this change propse a simplification by using the common
1566 pattern of GTK of passing a function pointer and user data which will
1567 be passed as its parameter. That user data contains the state and the
1568 function will be called to update that state.
1570 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1572 * gst-libs/gst/vaapi/gstvaapiblend.c:
1573 * gst-libs/gst/vaapi/gstvaapiblend.h:
1574 libs: blend: remove begin/render/end API
1575 This API was risky and is superseded by the surface
1576 generator (process) API.
1579 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1581 * gst/vaapi/gstvaapioverlay.c:
1582 vaapioverlay: use blend surface generator API
1585 2020-01-10 09:54:30 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1587 * gst-libs/gst/vaapi/gstvaapiblend.c:
1588 * gst-libs/gst/vaapi/gstvaapiblend.h:
1589 libs: blend: add surface generator API
1590 This new API allows the user to call a single method (process)
1591 which handles the [display] lock/unlock logic internally for
1593 This API supersedes the risky begin, render, end API.
1594 It eliminates the need for the user to call a lock method
1595 (process_begin) before processing the input buffers
1596 (process_render) and calling an unlock method (process_end)
1600 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
1602 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1603 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1604 * gst/vaapi/gstvaapiencode.c:
1605 * gst/vaapi/gstvaapiencode.h:
1606 * gst/vaapi/gstvaapiencode_h264.c:
1607 * gst/vaapi/gstvaapiencode_h265.c:
1608 plugin: encode: List all possible profiles to detect input formats.
1609 The current get_profile just return one possible profile for the encode,
1610 which is not enough. For example, if we want to support HEVC 4:4:4
1611 profile, the input of encode should be VYUA rather than NV12 in HEVC
1612 main profile. So the command line:
1613 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
1614 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
1615 tune=low-power init-qp=30 ! fakesink
1616 can not work because vaapih265enc just report NV12 in sink caps, we need
1617 to specify the profile obviously like:
1618 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
1619 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
1620 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
1621 profile=main-444 ! fakesink
1622 The encode should have the ability to choose the profile based on input
1623 format automatically. If the input video format is VUYA, the main-444
1624 profile should be auto choosed.
1625 We modify to let get_allowed_profiles of each encode sub class to return
1626 an array of all supported profiles based on downstream's allowed caps, or
1627 return NULL if no valid profiles specified by downstream.
1628 If no allowed profiles found, all profiles which belong to the current
1629 encoder's codec will be the candidates.
1630 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
1631 attributes for that profile list we just get.
1632 So for this case, both NV12 and VUYA should be returned.
1633 TODO: some codec like VP9, need to implement the get_profile() function.
1635 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
1637 * gst/vaapi/gstvaapipluginutil.c:
1638 * gst/vaapi/gstvaapipluginutil.h:
1639 plugin: util: add helper function to detect profiles in caps.
1641 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
1643 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1644 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1645 libs: encoder: add a helper function to get all supported profiles
1647 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
1649 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1650 libs: decoder: Don't unref null object
1651 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
1652 gst_vaapi_context_unref: assertion 'context != NULL' failed
1654 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1656 * gst/vaapi/gstvaapioverlay.c:
1657 plugins: overlay: use proper NULL check on double pointer
1658 Check the address of the variable is not NULL,
1659 not the address of the pointer.
1661 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
1663 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
1664 libs: codedbuf: delete a useless field.
1665 The context field in GstVaapiCodedBuffer is not inited correctly
1666 and is never used, just delete it.
1668 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1670 * gst/vaapi/gstvaapipluginutil.c:
1671 plugins: add iHD driver in whitelist
1673 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
1675 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1676 libs: encoder: modify 265 SPS header's profile compatibility flag.
1677 Make the SPS profile compatibility flags more precisely conform to
1680 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1682 * tests/check/elements/vaapioverlay.c:
1683 test: vaapioverlay: bail test if not available
1684 vaapioverlay is only registered if the VA driver support the blend
1686 This patch only executes the test if vaapioverlay is available,
1687 otherwise the test is bail out without raising an error.
1689 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1691 * tests/check/elements/vaapioverlay.c:
1692 tests: vaapioverlay: force drm backend
1694 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1696 * gst-libs/gst/vaapi/gstvaapiblend.c:
1697 libs: blend: update to new mini-object API
1699 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1701 * tests/check/elements/vaapioverlay.c:
1702 * tests/check/meson.build:
1703 tests: check: add basic vaapioverlay test
1704 Add test_overlay_position test to verify sink_1 input
1705 is overlayed onto sink_0 input at the appropriate
1708 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1710 * gst/vaapi/gstvaapi.c:
1711 * gst/vaapi/gstvaapioverlay.c:
1712 * gst/vaapi/gstvaapioverlay.h:
1713 * gst/vaapi/meson.build:
1714 plugins: add vaapioverlay plugin
1715 A plugin similar to the base compositor element but
1716 uses VA-API VPP blend functions to accelerate the
1717 overlay/compositing.
1719 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
1720 ! tee name=testsrc ! queue \
1721 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
1722 name=overlay ! vaapisink testsrc. ! queue ! overlay.
1724 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1726 * gst-libs/gst/vaapi/gstvaapiblend.c:
1727 * gst-libs/gst/vaapi/gstvaapiblend.h:
1728 * gst-libs/gst/vaapi/meson.build:
1729 libs: add a vaapi blend class
1730 Support for the VA-API VPP blend functions.
1732 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1734 * gst/vaapi/gstvaapipluginbase.c:
1735 * gst/vaapi/gstvaapipluginbase.h:
1736 plugins: base: add GstVideoAggregator subclass support
1738 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
1740 * gst-libs/gst/vaapi/gstvaapiimage.c:
1741 libs: image: init all image fields correctly.
1743 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
1745 * gst/vaapi/gstvaapipostproc.c:
1746 doc: fix pipeline typo in vaapipostproc
1748 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
1750 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1751 libs: encoder: modify 265 VPS header fields.
1752 vps_base_layer_internal_flag and vps_base_layer_available_flag
1753 have been clearly defined now.
1755 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
1757 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1758 libs: display: fix a resource leak in X11 pixmap format.
1760 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1762 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
1763 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
1764 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
1766 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
1768 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1769 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1770 * gst/vaapi/gstvaapiencode.c:
1771 libs: encoder: get surfaces resolution the same time with formats.
1772 We can get all the information about the video format at one shot
1773 when we create the test context for getting the supported formats.
1774 The current way to get the width and height ranges are inefficient,
1775 since it calls the function gst_vaapi_profile_caps_append_encoder()
1776 and it creates another temporal context to detect the resolution
1778 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1780 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1782 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1783 libs: encoder: vp9: fix code style
1785 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
1787 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1788 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1789 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1790 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1791 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1792 libs: encoder: set entrypoint based on tune automatically
1793 Some profile, such as H265_MAIN_444 on new Intel platform, may only
1794 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
1796 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
1797 every time when we need to use this kind of profile. Or we can not
1798 create the encoder context successfully.
1799 2. More seriously, we set the entrypoint to a fixed value in
1800 init_context_info() and so the create_test_context_config() can not
1801 create the test context for these profile and can not get the
1802 supported video formats, either.
1803 We now change the entrypoint setting based on the tune option of the
1804 encoder. If no tune property provided, we just choose the first
1805 available entrypoint.
1807 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
1809 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1810 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1811 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1812 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1813 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1814 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1815 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1816 libs: encoder: set context info profile by encoder
1817 Instead of init_context_info() setting the passed profile, it is
1818 assumed that it has to be set by each encoder.
1819 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1821 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
1823 * gst-libs/gst/vaapi/gstvaapicontext.c:
1824 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1825 libs: context: add invalid entrypoint symbol
1826 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
1827 zero, which was already used as an invalid value tacitly. This patch
1828 only makes it explicit.
1829 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1831 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
1833 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
1834 libs: pixmap: Fix a pixmap creation crash.
1835 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
1836 pixmap creation, which causes crash if we run the internal test case
1838 test-decode --pixmap
1840 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
1842 * gst/vaapi/gstvaapiencode.c:
1843 plugin: encode: set allowed_sinkpad_caps to empty.
1844 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
1845 surfaces formats. This causes two problem:
1846 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
1847 which changes its behavior. It will use encode's sinkpad template
1848 rather than empty caps to do the clip job. So even if we fail to set
1849 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
1851 2. We should just set the allowed_sinkpad_caps once. The NULL point
1852 make the ensure_allowed_sinkpad_caps function works again and again.
1854 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
1856 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1857 libs: encoder: Add NULL pointer check for context when finalize.
1858 Context may be NULL if pipeline fail in early stage, and the
1859 ensure_context will not be called. Need to add a pointer protection
1862 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
1864 * gst/vaapi/gstvaapipluginbase.c:
1865 plugins: base: do not reset can_dmabuf
1866 Don't reset the can_dmabuf field. This restores the
1867 close/reset logic that existed prior to commit
1868 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
1870 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
1871 once during startup, but may need to reset the other private
1872 fields multiple times during negotiation. Thus, can_dmabuf
1873 should be exempt from the resets.
1876 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
1878 * gst/vaapi/gstvaapiencode.c:
1879 plugin: encode: Refine encode's sink caps.
1880 The old manner to get the encode's sink caps is not correct.
1881 Such as 264 encode, it gets:
1882 video/x-raw(memory:VASurface),
1883 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
1884 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
1885 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
1886 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
1887 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
1888 framerate=(fraction)[ 0/1, 2147483647/1 ];
1889 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
1890 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
1891 where the formats for memory:VASurface and memory:DMABuf are superfluous.
1892 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
1893 input format for encoder.
1895 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
1896 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
1897 video/x-raw(memory:VASurface), format=(string){ NV12 },
1898 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
1899 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
1900 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
1901 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
1902 as the correct result.
1904 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1906 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1907 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1908 libs: display: code clean up
1910 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
1912 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1913 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
1914 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1915 libs: display: refine the profile/entrypoint map.
1916 The old way make the one config for each profile/entrypoint pair,
1917 which is not very convenient for description the relationship
1918 between them. One profile may contain more than one entrypoints
1919 to within it, so a set like data structure should be more suitable.
1921 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
1923 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1924 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1925 * gst-libs/gst/vaapi/gstvaapicontext.c:
1926 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1927 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
1928 * gst-libs/gst/vaapi/gstvaapifilter.c:
1929 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
1930 * gst-libs/gst/vaapi/gstvaapisurface.c:
1931 * gst-libs/gst/vaapi/gstvaapisurface.h:
1932 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
1933 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1934 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
1935 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
1936 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1937 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
1938 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
1939 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1940 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1941 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1942 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
1943 * gst/vaapi/gstvaapipluginbase.c:
1944 * gst/vaapi/gstvaapivideomemory.c:
1945 * gst/vaapi/gstvaapivideometa.c:
1946 * gst/vaapi/gstvaapivideometa_texture.c:
1947 * tests/internal/image.c:
1948 * tests/internal/test-filter.c:
1949 * tests/internal/test-surfaces.c:
1950 * tests/internal/test-windows.c:
1951 libs: surface: port to GstMiniObject
1952 GstVaapiMiniObject and GstVaapiObject are deprecated.
1953 This is the first step to remove them by porting GstVaapiSurface as
1954 a GstMiniBuffer descendant.
1955 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1957 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1959 * gst-libs/gst/vaapi/gstvaapisurface.c:
1960 libs: surface: rename create function names to init
1961 There are several internal functions with 'create' name, but they
1962 don't create any new structure, but rather it initializes that
1963 structure. Renaming those function to reflect better their purpose.
1965 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1967 * gst-libs/gst/vaapi/gstvaapisurface.c:
1968 libs: surface: use macro accessors
1970 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1972 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
1973 libs: surface: fix internal documentation
1975 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
1977 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
1978 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
1979 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
1980 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
1981 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1982 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1983 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1984 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1985 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1986 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1987 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1988 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
1989 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
1990 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1991 libs: codedbuffer: port to GstMiniObject
1992 GstVaapiMiniObject and GstVaapiObject are deprecated.
1993 This is the first step to remove them by porting GstVaapiCodedBuffer
1994 as a GstMiniBuffer descendant.
1995 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1997 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
1999 * gst-libs/gst/vaapi/gstvaapiimage.c:
2000 * gst-libs/gst/vaapi/gstvaapiimage.h:
2001 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
2002 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2003 * gst-libs/gst/vaapi/gstvaapisurface.c:
2004 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2005 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2006 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2007 * gst/vaapi/gstvaapipluginbase.c:
2008 * gst/vaapi/gstvaapivideomemory.c:
2009 * gst/vaapi/gstvaapivideometa.c:
2010 * tests/internal/image.c:
2011 * tests/internal/simple-encoder.c:
2012 * tests/internal/test-fei-enc-in.c:
2013 * tests/internal/test-filter.c:
2014 * tests/internal/test-windows.c:
2015 libs: image: port to GstMiniObject base class
2016 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
2017 first step to remove them, by porting GstVaapiImage as a
2019 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2021 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
2023 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
2024 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
2025 * gst-libs/gst/vaapi/gstvaapicontext.c:
2026 * gst-libs/gst/vaapi/gstvaapicontext.h:
2027 * gst-libs/gst/vaapi/gstvaapidecoder.c:
2028 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2029 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2030 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
2031 libs: context: port to a plain C structure
2032 The GstVaapiMiniObject is obsolete and we need to replace it. This
2033 patch turns GstVaapiContext into a plain C structure with its own
2034 reference counting mechanism.
2035 Also this patch removes unused overlays attributes.
2036 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2038 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
2040 * gst/vaapi/gstvaapiencode_h264.c:
2041 * gst/vaapi/gstvaapiencode_h264_fei.c:
2042 * gst/vaapi/gstvaapiencode_h265.c:
2043 * gst/vaapi/gstvaapiencode_jpeg.c:
2044 * gst/vaapi/gstvaapiencode_mpeg2.c:
2045 * gst/vaapi/gstvaapiencode_vp8.c:
2046 * gst/vaapi/gstvaapiencode_vp9.c:
2047 plugin: encode: change the dmabuf caps to all supported formats.
2048 The encode's dmabuf caps definition is obsolete, it can support
2049 more formats now. Re-define it to include all supported formats
2050 in video format map.
2052 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2054 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2055 libs: encoder: h264fei: remove unnecessary check
2056 Issue detected by Coverity
2057 `info_to_pack.h264_slice_header` is always allocated by
2058 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
2059 in doesn't make much sense. But it requires to be free on the error
2061 There may be a null pointer dereference, or else the comparison
2062 against null is unnecessary.
2063 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
2064 pointer comparison already dereference the pointer earlier
2066 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2068 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2069 libs: encoder: h264fei: remove unnecessary assert
2070 Issue detected by Coverity
2071 An unsigned value can never be negative, so this test will always
2072 evaluate the same way.
2073 In add_slice_headers: An unsigned value can never be less than 0
2075 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2077 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2078 libs: encoder: h264fei: remove unnecessary check
2079 Issue detected by Coverity
2080 There may be a null pointer dereference, or else the comparison
2081 against null is unnecessary.
2082 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
2083 pointer comparison already dereference the pointer earlier
2085 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2087 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2088 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2089 libs: encoder: h264fei: don't free memory on stack
2090 Issue detected by Coverity
2091 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
2092 declared in the stack, but it is free in
2093 gst_vaapi_feienc_h264_encode() as if declared on the heap.
2094 This patch initializes the structure and removes the free.
2095 A non-heap pointer is placed on the free list, likely causing a crash
2097 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
2098 expression, which can never be heap allocated.
2100 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2102 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2103 libs: encoder: h264fei: fix surface leak
2104 Issue detected by Coverity
2105 If the FEI mode is not handled the created resources should be
2106 released and return and error code.
2107 The system resource will not be reclaimed and reused, reducing the
2108 future availability of the resource.
2109 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
2112 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2114 * tests/check/elements/vaapipostproc.c:
2115 tests: check return calling of gst_navigation_event_parse.*
2116 This issue was detected by Coverity.
2117 If the function returns an error value, the error value may be mistaken
2119 In cb_mouse_event: Value returned from a function is not checked for
2120 errors before being used
2122 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
2124 * gst/vaapi/gstvaapiencode_h264.c:
2125 * gst/vaapi/gstvaapiencode_h264_fei.c:
2126 * gst/vaapi/gstvaapiencode_h265.c:
2127 * gst/vaapi/gstvaapiencode_jpeg.c:
2128 * gst/vaapi/gstvaapiencode_mpeg2.c:
2129 * gst/vaapi/gstvaapiencode_vp8.c:
2130 * gst/vaapi/gstvaapiencode_vp9.c:
2131 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
2132 Then encode plugin just supports raw formats declared in vaapi video
2133 format map. This modification makes the template caps more precise.
2135 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2137 * gst/vaapi/gstvaapipluginbase.c:
2138 plugins: base: add GstPad param to internal helper functions
2139 The base plugin public API function implementations determine
2140 which pad should be passed to the internal helper functions.
2141 Currently, only the base plugin static sinkpad and static
2142 srcpad are supported/used. However, this change enables future
2143 API functions to be added that can accept a pad (i.e. request pad)
2144 from an element subclass (e.g. a GstVideoAggregator subclass).
2146 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2148 * gst/vaapi/gstvaapipluginbase.c:
2149 * gst/vaapi/gstvaapipluginbase.h:
2150 plugins: base: manage pad-specific data in a single struct
2151 Define a struct (GstVaapiPadPrivate) to encapsulate the
2152 pad-specific data (i.e. buffer pool, allocator, info,
2154 Add an interface to retrieve the data struct for a given
2156 Finally, update the base plugin to use the data struct
2157 throughout the implementation.
2158 This will enable us to easily extend the base plugin in the
2159 future to allow for N-to-1 pad subclasses (e.g. overlay/
2162 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2164 * gst/vaapi/gstvaapidecode.c:
2165 * gst/vaapi/gstvaapiencode.c:
2166 * gst/vaapi/gstvaapipluginbase.h:
2167 * gst/vaapi/gstvaapipostproc.c:
2168 plugins: use plugin base macros to access pad specific data
2169 Don't access base struct fields directly since the underlying
2170 definition can change. Instead, use the accessor macros.
2172 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
2174 * gst/vaapi/gstvaapidecode.c:
2175 libs: decoder: Modify decode src's template raw formats
2176 We do not need to maintain a standalone list of decoder's output
2177 template for raw formats and that is easy to make mistake(for
2178 example, the AYVU is wrong in that list, should be VUYA).
2179 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
2182 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
2184 * gst/vaapi/gstvaapipostproc.c:
2185 libs: postproc: Modify src/sink template raw formats
2186 We need to provide more precise template caps for postproc's src
2187 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
2188 available which are really superfluous.
2190 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
2192 * tests/check/elements/vaapipostproc.c:
2193 Do not mix declaration and code
2195 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2197 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2198 libs: decoder: h265: skip all pictures prior the first I-frame
2199 Don't try to decode until the first I-frame is received within the
2200 currently active sequence. i965 H265 decoder don't show any artifact
2204 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2206 * gst-libs/gst/vaapi/video-format.c:
2207 libs: video-format: remove dead code
2209 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
2211 * gst-libs/gst/vaapi/video-format.c:
2212 * gst-libs/gst/vaapi/video-format.h:
2213 * gst/vaapi/gstvaapipluginutil.h:
2214 libs: video-format: add GST_VAAPI_FORMATS_ALL
2215 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
2216 as a caps template string, and make them available in caps with
2217 memory:VASurface feature.
2220 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
2222 * gst-libs/gst/vaapi/video-format.c:
2223 * tests/internal/test-windows.c:
2224 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
2225 We only support VUYA format in gst vaapi now, need to correct
2228 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2230 * tests/check/elements/vaapipostproc.c:
2231 tests: check: vaapipostproc test_orientation_mouse_events
2232 Test that vaapipostproc properly translates mouse events
2233 when using video-direction (orientation).
2235 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2237 * tests/check/elements/vaapipostproc.c:
2238 * tests/check/meson.build:
2239 tests: check: vaapipostproc test_crop_mouse_events
2240 Test that vaapipostproc properly translates mouse events
2243 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2246 * meson_options.txt:
2247 * tests/check/elements/vaapipostproc.c:
2248 * tests/check/meson.build:
2249 * tests/meson.build:
2250 tests: check: initial unit test support
2251 Add minimal unit test toolchain files and a simple
2252 vaapipostproc unit test.
2254 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2257 * tests/examples/meson.build:
2258 * tests/examples/test-roi.c:
2259 * tests/examples/test-vaapicontext.c:
2260 * tests/examples/test-vaapipostproc.c:
2261 * tests/examples/test-vaapisink.c:
2262 * tests/internal/codec.c:
2263 * tests/internal/codec.h:
2264 * tests/internal/decoder.c:
2265 * tests/internal/decoder.h:
2266 * tests/internal/image.c:
2267 * tests/internal/image.h:
2268 * tests/internal/meson.build:
2269 * tests/internal/output.c:
2270 * tests/internal/output.h:
2271 * tests/internal/simple-decoder.c:
2272 * tests/internal/simple-encoder.c:
2273 * tests/internal/test-decode.c:
2274 * tests/internal/test-decode.h:
2275 * tests/internal/test-display.c:
2276 * tests/internal/test-fei-enc-in.c:
2277 * tests/internal/test-fei-enc-out.c:
2278 * tests/internal/test-filter.c:
2279 * tests/internal/test-h264.c:
2280 * tests/internal/test-h264.h:
2281 * tests/internal/test-jpeg.c:
2282 * tests/internal/test-jpeg.h:
2283 * tests/internal/test-mpeg2.c:
2284 * tests/internal/test-mpeg2.h:
2285 * tests/internal/test-mpeg4.c:
2286 * tests/internal/test-mpeg4.h:
2287 * tests/internal/test-subpicture-data.c:
2288 * tests/internal/test-subpicture-data.h:
2289 * tests/internal/test-subpicture.c:
2290 * tests/internal/test-surfaces.c:
2291 * tests/internal/test-textures.c:
2292 * tests/internal/test-vc1.c:
2293 * tests/internal/test-vc1.h:
2294 * tests/internal/test-windows.c:
2295 * tests/internal/y4mreader.c:
2296 * tests/internal/y4mreader.h:
2297 * tests/meson.build:
2298 tests: move examples and tests to subfolders
2299 This makes way for adding unit (check) tests.
2301 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
2309 * gst-libs/Makefile.am:
2310 * gst-libs/gst/Makefile.am:
2311 * gst-libs/gst/vaapi/Makefile.am:
2313 * gst/vaapi/Makefile.am:
2315 * tests/Makefile.am:
2316 * tests/elements/Makefile.am:
2317 Remove autotools build
2319 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2321 * gst/vaapi/gstvaapipostproc.c:
2322 vaapipostproc: fix off-by-one coord translations
2323 When translating navigation x,y coordinates for
2324 video-direction, it is necessary to subtract 1
2325 when using the video dimensions to compute the
2326 new x,y coordinates. That is, a 100x200 image
2327 should map coordinates in x=[0-99],y=[0-199].
2328 This issue was found with unit tests provided
2331 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2333 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2334 libs: window: x11: Avoid usage of deprecated API
2336 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2339 build: halt meson configuration if no renderer API
2340 We should halt meson configuration if there is no render API
2341 installed (either DRM, Wayland or X11).
2342 That behavior was already in autotools but missed in meson. This patch
2346 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2348 * gst-libs/gst/vaapi/gstvaapifilter.c:
2349 libs: filter: fix default orientation regression
2350 Fix regression introduced in f232f87f7082
2352 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2354 * gst-libs/gst/vaapi/gstvaapifilter.c:
2355 libs: filter: use OP_DATA_DEFAULT_VALUE macro
2357 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2359 * gst-libs/gst/vaapi/gstvaapifilter.c:
2360 libs: filter: use macro for returning op default value
2361 The code is essentially the same for getting all op default
2362 values. Thus, use a macro to help minimize code duplication
2363 and [hopefully] encourage using the same mechanism for all
2366 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2368 * gst-libs/gst/vaapi/gstvaapifilter.c:
2369 libs: filter: query param spec for default scale method
2372 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2374 * gst-libs/gst/vaapi/gstvaapifilter.c:
2375 libs: filter: query param spec for default skin-tone values
2378 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2380 * gst-libs/gst/vaapi/gstvaapifilter.c:
2381 libs: filter: query param spec for default video-direction
2384 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2389 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
2391 * gst-libs/gst/vaapi/gstvaapifilter.c:
2392 * gst-libs/gst/vaapi/gstvaapifilter.h:
2393 * gst/vaapi/gstvaapipostproc.c:
2394 * gst/vaapi/gstvaapipostproc.h:
2395 vaapipostproc: Use level value for skin-tone-enhancement filter.
2396 Currently the parameter of skin-tone-enhancement filter is forced
2397 to zero. In fact it could be set different value by the user.
2398 So create a new property named as "skin-tone-enhancement-level"
2399 for accepting the used defined parameter value.
2400 At the same time, skin-tone-enhancement is marked as deprecated.
2401 When skin-tone-enhancement-level is set, skin-tone-enhancement
2404 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2406 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2407 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2408 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
2409 g_return_val_fail() documentations says:
2410 If expr evaluates to FALSE, the current function should be
2411 considered to have undefined behaviour (a programmer error).
2412 The only correct solution to such an error is to change the
2413 module that is calling the current function, so that it avoids
2414 this incorrect call.
2415 So it was missused in a couple parts of the H264 and H265 internal
2416 decoders. This patch changes that to plain conditionals.
2417 Also, it was included a couple code-style fixes.
2419 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2421 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2422 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2423 * tests/simple-encoder.c:
2424 * tests/test-fei-enc-in.c:
2425 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
2426 Since GstVaapiEncoder is a descendant of of GstObject, there is no
2427 need to keep a custom ref()/unref() methods. This patch deletes them.
2429 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
2431 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2432 libs: encoder: correct encoder's ref/unref function.
2433 GstVaapiEncoder now is a standard gstobject and need to use
2434 gst_object_ref/unref functions.
2436 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2438 * gst/vaapi/gstvaapiencode_h264_fei.c:
2439 gst: encode: h264_fei: remove useless comparison
2440 The expression "len >= 0" is always true since "len"
2441 is an unsigned type. And it is clear that the writers
2442 intention was not to write "len > 0" since we handle
2443 len == 0 in the ensuing "if (len < 3)" conditional
2446 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2448 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2449 libs: encoder: h264_fei: fix potential overflow before widen
2450 Found by static analysis. encoder->mb_width * encoder->mb_height
2451 is evaluated using 32-bit arithmetic before widen. Thus, cast
2452 at least one of these to guint64 to avoid overflow.
2454 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2456 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2457 libs: encoder: h264_fei: remove dead error condition
2458 Found by static analysis. The feipak is always null
2459 when we reach the error target.
2461 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2463 * gst-libs/gst/vaapi/gstvaapiutils.c:
2464 libs: utils: add missing break in switch
2466 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
2468 * gst-libs/gst/vaapi/video-format.c:
2469 libs: video-format: Make all YUV format available
2470 The YUV formats have no ambiguity for drivers, so we can add them all.
2471 Some old driver(i965) does not implement full get/put image functions
2472 but can use derive image funtions for the YUV format. It does not
2473 report that kind of formats correctly in image query, but will derive
2474 that YUV format image from surface. The dynamic mapping of YUV format
2475 will block that manner.
2476 Adding more YUV format mapping has no side effect. So considering the
2477 legacy driver conformance, we add all YUV formats mapping statically
2478 and dynamic mapping RBG formats
2482 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
2484 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
2485 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
2486 egl: Fix racyness in display thread creation
2487 Multiple different scenarios could break the display thread creation and
2488 end up blocking waiting for thread o be created. Fix them all by
2489 correctly waiting for a new boolean to become valid.
2491 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
2493 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
2494 egl: don't advertise a wrapped EGLContext as actually wrapped
2495 It's not actually wrapped as we create a new EGLContext from the passed
2496 in EGLContext. As a result, the created EGLContext was never destroyed.
2498 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
2500 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2501 libs: h264decoder: do not return error for unhandled NAL unit.
2502 Some streams have error data introducing unknown NAL type. There are
2503 also kinds of NAL types we do not want to handle. The old manner will
2504 set a decoder error when encounter this, which cause a latent crash bug.
2505 The decoder may successfully decode the picture and insert it into DPB.
2506 But there are error NAL units after the AU which cause the post unit error
2507 and make that frame dropped. The later output of the picture still want
2508 to ref that frame and crash.
2509 No need to set decoder error when can not recognize or handle the NAL
2510 unit, just skip it and continue.
2513 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2515 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2516 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2517 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2518 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2519 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2520 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2521 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2522 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2523 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2524 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2525 * gst/vaapi/gstvaapiencode.c:
2526 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
2527 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
2528 param in encoders to decide which parameters to expose. Thus
2529 gstreamer-vaapi will not interfere with any change in GStreamer in the
2531 Also, the internal symbol was change to
2532 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
2534 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
2536 * gst-libs/gst/vaapi/gstvaapiimage.c:
2537 * gst-libs/gst/vaapi/video-format.c:
2538 libs: Add BGR10A2_LE support for color space conversion.
2541 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
2543 * gst-libs/gst/vaapi/gstvaapisurface.c:
2544 libs: surface: add pointer check for surface_new_from_formats.
2546 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
2547 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
2548 will crash on i965 driver because of no pointer check.
2549 We now generate the video format map between GST format and VA format
2550 dynamically based on the image format returned by vaQueryImageFormats.
2551 i965 driver does to report image format of 444P and Y800 forcc, while
2552 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
2553 not recognize these format and pass a NULL pointer to
2554 gst_vaapi_surface_new_from_formats.
2555 We need to add a pointer check here and let the fallback logic handle
2556 this case correctly.
2557 Other drivers work well.
2559 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2561 * gst-libs/gst/vaapi/gstvaapiutils.c:
2562 libs: utils: guard the VAEntrypointFEI symbol
2563 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
2565 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
2567 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2568 * gst-libs/gst/vaapi/video-format.c:
2569 * gst-libs/gst/vaapi/video-format.h:
2570 libs: video-format: Refine the video format mapping.
2571 Improve the mapping between va format and gst format. The new map
2572 will be generated dynamically, based on the query result of image
2573 format in VA driver. Also consider the ambiguity of RGB color
2576 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
2578 * gst/vaapi/gstvaapipluginutil.c:
2579 pluginutil: Remove Mesa from drivers white list
2580 The Mesa Gallium driver is poorly tested currently, leading to bad user
2581 experience for AMD users. The driver can be added back to the white list at
2582 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
2584 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2586 * gst/vaapi/gstvaapipostproc.c:
2587 * gst/vaapi/gstvaapipostproc.h:
2588 * gst/vaapi/gstvaapipostprocutil.c:
2589 vaapipostproc: allow cropping via properties
2590 Add crop-left, crop-right, crop-top and crop-bottom
2591 properties to vaapipostproc.
2593 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2595 * gst/vaapi/gstvaapipostproc.c:
2596 vaapipostproc: rotate outbuf and crop meta if forwarding
2597 When forwarding crop meta to downstream, the output
2598 buffer and crop meta need to be rotated, too.
2600 for i in 90r 180 90l vert horiz ul-lr ur-ll
2602 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
2603 ! videocrop top=100 bottom=30 left=40 right=20 \
2604 ! vaapipostproc video-direction=$i \
2606 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
2607 ! videocrop top=100 bottom=30 left=40 right=20 \
2608 ! vaapipostproc video-direction=$i \
2609 ! identity drop-allocation=true \
2613 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2615 * gst/vaapi/gstvaapipostproc.c:
2616 vaapipostproc: fix output buffer WxH for crop meta forwarding
2617 Adding crop meta x,y to w,h only compensates for left,top
2618 cropping. But we also need to compensate for right,bottom
2620 The video meta contains the appropriate w,h (uncropped)
2621 values, so use it instead.
2623 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
2624 ! videocrop top=50 bottom=30 left=40 right=20 \
2625 ! vaapipostproc ! vaapisink & \
2626 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
2627 ! videocrop top=50 bottom=30 left=40 right=20 \
2628 ! vaapipostproc ! identity drop-allocation=1 \
2631 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2633 * gst/vaapi/gstvaapipostproc.c:
2634 vaapipostproc: handle size and direction together in src events
2635 Mapping a pointer event needs to consider both size and
2636 video-direction operations together, not just one or the other.
2637 This fixes an issue where x,y were not being mapped correctly
2638 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
2639 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
2640 the first condition in the pointer event handling was entered and
2641 x,y scale factor were incorrectly computed due to srcpad WxH
2643 This also fixes all cases where both video-direction and scaling
2644 are enabled at the same time.
2645 Test that all pointer events map appropriately:
2648 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
2649 ! vaapipostproc video-direction=${i} width=300 \
2651 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
2652 ! vaapipostproc video-direction=${i} width=300 height=200 \
2654 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
2655 ! vaapipostproc video-direction=${i} height=200 \
2657 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
2658 ! vaapipostproc video-direction=${i} \
2662 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2664 * gst/vaapi/gstvaapipostproc.c:
2665 * gst/vaapi/gstvaapipostproc.h:
2666 vaapipostproc: advertise crop meta is handled
2667 Advertise to upstream that vaapipostproc can handle
2669 When used in conjunction with videocrop plugin, the
2670 videocrop plugin will only do in-place transform on the
2671 crop meta when vaapipostproc advertises the ability to
2672 handle it. This allows vaapipostproc to apply the crop
2673 meta on the output buffer using vaapi acceleration.
2674 Without this advertisement, the videocrop plugin will
2675 crop the output buffer directly via software methods,
2676 which is not what we desire.
2677 vaapipostproc will not apply the crop meta if downstream
2678 advertises crop meta handling; vaapipostproc will just
2679 forward the crop meta to downstream. If crop meta is
2680 not advertised by downstream, then vaapipostproc will
2681 apply the crop meta.
2683 1. vaapipostproc will forward crop meta to vaapisink
2684 gst-launch-1.0 videotestsrc \
2685 ! videocrop left=10 \
2688 2. vaapipostproc will do the cropping
2689 gst-launch-1.0 videotestsrc \
2690 ! videocrop left=10 \
2692 ! identity drop-allocation=1 \
2695 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
2697 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2698 libs: encoder: clean two virtual func in encoder class
2699 set_property and get_default_properties functions are no longer
2700 needed for encoder class.
2702 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
2704 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2705 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
2706 libs: encoder: delete old set_property and property enum feienc264
2708 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
2710 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2711 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
2712 libs: encoder: delete old set_property and property enum in h264 fei
2714 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
2716 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2717 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2718 libs: encoder: delete old set_property and property enum in vp9
2720 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
2722 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2723 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2724 libs: encoder: delete old set_property and property enum in vp8
2726 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
2728 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2729 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2730 libs: encoder: delete old set_property and property enum in mpeg2
2732 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
2734 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2735 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2736 libs: encoder: delete old set_property and property enum in jpeg
2738 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
2740 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2741 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2742 libs: encoder: delete old set_property and property enum in h265
2744 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
2746 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2747 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2748 libs: encoder: delete old set_property and property enum in h264
2750 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
2752 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2753 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2754 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2755 libs: encoder: delete EncoderPropInfo related functions
2757 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
2759 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2760 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2761 libs: encoder: delete encoder_set_property
2762 We no longer need this obsolete set_property function now after
2763 switch to standard gobject's property manner.
2764 Also delete the old encoder's property enum in the header file.
2766 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
2768 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2769 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2770 libs: encoder: delete properties_get_default for base class
2772 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
2774 * gst/vaapi/gstvaapiencode.c:
2775 * gst/vaapi/gstvaapiencode.h:
2776 plugin: encode: delete useless init_properties.
2777 Also delete the get_properties function in encode class. We now
2778 use g_object_class_list_properties to get all properties for
2779 internal encoder class.
2781 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
2783 * gst/vaapi/gstvaapiencode.c:
2784 * gst/vaapi/gstvaapiencode.h:
2785 plugin: encode: delete set/get_property func in encode class
2786 Use standard gobject's property functions to replace the old way.
2788 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
2790 * gst/vaapi/gstvaapiencode.c:
2791 * gst/vaapi/gstvaapiencode.h:
2792 plugin: encode: delete gst_vaapiencode_init_properties
2793 No need to init the properties got by get_default_properties func
2794 now. The properties are inited correctly in internal encoder class.
2796 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
2798 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2799 libs: encoder: delete 3 useless init macro
2801 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
2803 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2804 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
2805 libs: encoder: delete get_default_properties of feienc
2807 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
2809 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2810 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
2811 libs: encoder: delete get_default_properties of H264 Fei
2813 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
2815 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2816 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2817 libs: encoder: delete get_default_properties of VP9
2819 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
2821 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2822 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2823 libs: encoder: delete get_default_properties of VP8
2825 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
2827 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2828 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2829 libs: encoder: delete get_default_properties of MPEG2
2831 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
2833 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2834 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2835 libs: encoder: delete get_default_properties of JPEG
2837 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
2839 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2840 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2841 libs: encoder: delete get_default_properties of H265
2843 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
2845 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2846 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2847 libs: encoder: delete get_default_properties of H264
2849 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
2851 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2852 libs: encoder: delete the useless constructed func for encoder.
2854 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
2856 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2857 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2858 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2859 libs: encoder: implement get_view_ids for h264 encoder.
2861 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
2863 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2864 * gst/vaapi/gstvaapiencode.c:
2865 * gst/vaapi/gstvaapiencode_h264.c:
2866 * gst/vaapi/gstvaapiencode_h264_fei.c:
2867 * gst/vaapi/gstvaapiencode_h265.c:
2868 * gst/vaapi/gstvaapiencode_jpeg.c:
2869 * gst/vaapi/gstvaapiencode_mpeg2.c:
2870 * gst/vaapi/gstvaapiencode_vp8.c:
2871 * gst/vaapi/gstvaapiencode_vp9.c:
2872 gst: encode: enable new type of property mechanism.
2874 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
2876 * gst/vaapi/gstvaapiencode.c:
2877 * gst/vaapi/gstvaapiencode.h:
2878 gst: encode: add property help functions for encoder properties.
2879 The encoder is a true gstobject now and all the properties are using
2880 gobject's properties mechanism. Add help functions to handle the properties
2881 between encode and encoder class.
2882 The basic idea is mapping the same property between encoder and encode. All
2883 the encoder's properties will have the same name, the same type in encode.
2884 The set/get property function just forward the property setting/getting to
2885 the encoder using the same property name and value. Because the encoder is
2886 created on needed, we need to cache the property setting in encode.
2888 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
2890 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2891 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2892 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2893 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2894 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2895 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2896 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2897 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2898 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2899 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2900 libs: encoder: add flags to all encoder properties.
2901 G_PARAM_CONSTRUCT make all properties init correctly, we do not
2902 need to init the properties manually.
2903 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
2904 flag, means need to expose the property to according encode class.
2906 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
2908 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2909 libs: encoder: Add properties for h264 encoder fei.
2910 Install properties for h264 encoder fei class. Also set the new get/set
2911 property functions for gobject class. Still use the old properties
2912 way now and this new feature will be enabled later.
2914 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
2916 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2917 libs: encoder: Add properties for h264 fei encoder.
2918 Install properties for h264 fei encoder class. Also set the new get/set
2919 property functions for gobject class. Still use the old properties
2920 way now and this new feature will be enabled later.
2922 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
2924 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2925 libs: encoder: Add properties for vp9 encoder.
2926 Install properties for vp9 encoder class. Also set the new get/set
2927 property functions for gobject class. Still use the old properties
2928 way now and this new feature will be enabled later.
2930 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
2932 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2933 libs: encoder: Add properties for vp8 encoder.
2934 Install properties for vp8 encoder class. Also set the new get/set
2935 property functions for gobject class. Still use the old properties
2936 way now and this new feature will be enabled later.
2938 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
2940 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2941 libs: encoder: Add properties for mpeg2 encoder.
2942 Install properties for mpeg2 encoder class. Also set the new get/set
2943 property functions for gobject class. Still use the old properties
2944 way now and this new feature will be enabled later.
2946 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
2948 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2949 libs: encoder: Add properties for jpeg encoder.
2950 Install properties for jpeg encoder class. Also set the new get/set
2951 property functions for gobject class. Still use the old properties
2952 way now and this new feature will be enabled later.
2954 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
2956 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2957 libs: encoder: Add properties for h265 encoder.
2958 Install properties for h265 encoder class. Also set the new get/set
2959 property functions for gobject class. Still use the old properties
2960 way now and this new feature will be enabled later.
2962 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
2964 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2965 libs: encoder: Add properties for h264 encoder.
2966 Install properties for h264 encoder class. Also set the new get/set
2967 property functions for gobject class. Still use the old properties
2968 way now and this new feature will be enabled later.
2970 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
2972 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2973 libs: encoder: add properties and prop help functions
2974 Add all common properties to encoder base class. rate-control and
2975 tune are moved to sub class.
2977 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
2979 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2980 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2981 libs: encoder: delete useless gst_vaapi_encoder_new func.
2982 GstVaapiEncoder is a abstract gobject and never be created directly.
2984 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
2986 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2987 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2988 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2989 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2990 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2991 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
2992 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2993 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2994 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2995 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2996 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2997 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2998 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2999 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3000 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
3001 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3002 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
3003 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3004 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3005 lib: encoder: gstobjectfy all vaapi encoders.
3006 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
3007 Let the gstobject common logic to handle all the init and finalize
3008 works. But the property install/set/get still use the old way, need
3009 to be improved later.
3011 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3013 * gst/vaapi/gstvaapipostproc.c:
3014 vaapipostproc: check for filter before appending caps
3015 While ensuring the allowed sink pad caps, the filter attributes set
3016 the frame size restriction, but it is not ensured, at that moment,
3017 that the filter is already instantiaded.
3018 In order to silence the glib logs, this patch add only calls
3019 gst_vaapi_filter_append_caps() if the filter is instantiated.
3021 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
3023 * gst/vaapi/gstvaapidecodebin.c:
3024 Classify vaapidecodebin as a hardware decoder
3026 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
3028 * gst/vaapi/gstvaapipostproc.c:
3029 libs: postproc: fix a memory leak point.
3030 filter_ops and filter_formats should already have valid value when
3031 the function gst_vaapipostproc_ensure_filter_caps re-enter
3033 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
3035 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
3036 libs: util: Fix a memory leak in config_surface_attributes_get
3038 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
3040 * gst/vaapi/gstvaapidecode.c:
3041 vaapidecode: support transform ROI meta
3042 This will benefit the use case like:
3043 src ---> encode ---> decode ---> circle ROI ---> sink
3048 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
3050 * gst/vaapi/gstvaapidecodedoc.c:
3051 docstrings: port ulinks to markdown links
3053 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3055 * gst-libs/gst/vaapi/Makefile.am:
3056 * gst-libs/gst/vaapi/gstvaapicontext.c:
3057 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
3058 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
3059 * gst-libs/gst/vaapi/meson.build:
3060 libs: remove context's overlay
3061 The context overlay was an optimization to apply a video composition
3062 to all the surfaces bound to a context.
3063 But since commit 18031dc6 this optimization was disabled, so it is
3064 better just get rid of it.
3066 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3068 * gst-libs/gst/vaapi/gstvaapicontext.c:
3069 * gst-libs/gst/vaapi/gstvaapisurface.c:
3070 * gst-libs/gst/vaapi/gstvaapisurface.h:
3071 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3072 * gst/vaapi/gstvaapipluginutil.c:
3073 * tests/test-subpicture.c:
3074 libs: remove surface's parent context
3075 In commit 18031dc6 surface's parent context is not assigned because of
3076 circular references. Since then (2013), there's has no issue with
3077 subpictures attached to a context, the current only users of this API.
3078 This patch cleans up all of related code with the unused surface's
3081 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3083 * gst/vaapi/gstvaapidecode.c:
3084 vaapidecode: guard if no structure is available in caps
3086 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3088 * gst-libs/gst/vaapi/gstvaapifilter.c:
3089 * gst-libs/gst/vaapi/gstvaapifilter.h:
3090 * gst/vaapi/gstvaapipostproc.c:
3091 vaapipostproc: append frame size restrictions in caps
3093 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3095 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3096 libs: profilecaps: refactor common code
3098 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3100 * gst/vaapi/gstvaapiencode.c:
3101 vaapiencode: set frame size restrictions in caps
3104 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3106 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3107 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3108 * gst/vaapi/gstvaapiencode.c:
3109 vaapiencode: enhance how the profile is defined
3110 This code doesn't define the profile used by the internal encoder, but
3111 it used to "predict" which is going to be used and to get the caps
3113 Before the profile was predicted by checking the donwstream caps, but
3114 sometimes they are not defined, setting an unknown profile. In order
3115 to enhances this situation, the encoder asks to internal encoder if it
3116 has one. If so, it is used.
3117 To ask the internal encoder's profile a new accessor function was
3118 added: gst_vaapi_encoder_get_profile()
3120 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3122 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3123 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3124 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
3125 Previously it was just a boilerplate. Now it is real implementation.
3127 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3129 * gst-libs/gst/vaapi/gstvaapiutils.c:
3130 libs: utils: treat va_rt_format as bitwise flag
3131 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
3132 is a bitwise flag with *all* the supported chroma types.
3133 Previously it was assumed that the return value was a single value,
3134 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
3135 simple case. But it is wrong.
3136 This patch changes the case block with a sequence of ifs testing the
3137 bitwise. For now we assume a "priority" list in the testing sequence.
3139 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3141 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3142 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3143 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3144 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3145 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3146 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3147 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3148 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3149 * tests/test-display.c:
3150 libs: profile: add gst_vaapi_profile_get_va_name()
3151 gst_vaapi_profile_get_name() returns a proper name for
3152 GstCaps. Nonetheless, there are many profiles which don't have a name
3153 representation for that realm.
3154 gst_vaapi_profile_get_va_name() returns the name of the profile
3155 according to its VAProfile name.
3156 This new funtion is used in the encoder error message.
3158 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3160 * gst-libs/gst/vaapi/Makefile.am:
3161 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3162 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3163 * gst-libs/gst/vaapi/meson.build:
3164 * gst/vaapi/gstvaapidecode.c:
3165 libs: profilecaps: move caps config into a new file
3166 Implement all the appending of frame size restrictions in caps, for
3167 encoders and decoders, in a new source file.
3169 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3171 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3172 libs: decoder: ref the caps as property
3174 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3176 * gst-libs/gst/vaapi/gstvaapicontext.c:
3177 * gst-libs/gst/vaapi/gstvaapicontext.h:
3178 libs: context: add gst_vaapi_context_get_surface_attributes()
3179 This function copies the surface attributes from the context's object
3182 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3184 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3185 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
3186 * gst-libs/gst/vaapi/gstvaapiutils.c:
3187 * gst-libs/gst/vaapi/gstvaapiutils.h:
3188 libs: move memory types conversions to gstvaapiutils
3189 And add more supported memory types by current VA.
3191 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3193 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
3194 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
3195 libs: utils: remove unused function gst_vaapi_get_surface_formats()
3197 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3199 * gst-libs/gst/vaapi/gstvaapicontext.c:
3200 * gst-libs/gst/vaapi/gstvaapicontext.h:
3201 * gst-libs/gst/vaapi/gstvaapifilter.c:
3202 libs: context, filter: use new surface attributes API
3204 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3206 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
3207 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
3208 libs: utils: add gst_vaapi_config_surface_attributes_get()
3209 To extract the surface restrictions per config using a new structure:
3210 GstVaapiConfigSurfaceAttributes
3212 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3214 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
3215 Split the surface attribute retrieval
3217 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3219 * gst/vaapi/gstvaapipostproc.c:
3220 vaapipostproc: handle navigation downstream event
3221 When navigation events contains coordiantes those have to be mapped
3222 to the new size and/or orientation.
3224 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3226 * tests/elements/test-vaapisink.c:
3227 test-vaapisink: also use vaapipostproc to change orientation
3229 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3231 * gst-libs/gst/vaapi/gstvaapifilter.c:
3232 * gst-libs/gst/vaapi/gstvaapifilter.h:
3233 * gst/vaapi/gstvaapipostproc.c:
3234 * gst/vaapi/gstvaapipostproc.h:
3235 * gst/vaapi/gstvaapipostprocutil.c:
3236 vaapipostproc: handle image-orientation upstream event
3237 Now that vaapipostproc can possible handle video-direction, it
3238 should also handle the image-orientation event from upstream if
3239 video-direction property is set to auto.
3241 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3243 * gst/vaapi/gstvaapipostproc.c:
3244 vaapipostproc: add missing locks when adding flags
3246 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3248 * gst/vaapi/gstvaapipostproc.c:
3249 vaapipostproc: update filter before fixate caps
3250 It is requiered to know if postproc is capable to change the video
3251 direction before fixating the source caps.
3252 In order to do it, it'ss required to know if there's a functional VPP,
3253 but that's checked at create() vmethod, which occurs after caps
3255 This patch checks for a functional VPP at fixate caps and, if so,
3256 checks for the enabled filtes and later do the caps fixations.
3258 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3260 * gst-libs/gst/vaapi/gstvaapifilter.c:
3261 * gst-libs/gst/vaapi/gstvaapivalue.c:
3262 * gst-libs/gst/vaapi/gstvaapivalue.h:
3263 * gst/vaapi/gstvaapipostproc.c:
3264 vaapipostproc: element warning if video direction is unsupported
3265 If the video direction is unsupported by the driver, an element
3266 warning is posted in the bus to notify the application.
3267 gst_vaapi_enum_type_get_nick() was added in the library thus it can
3268 be used elsewhere. It retrives the nick from an enum gtype.
3270 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3272 * gst-libs/gst/vaapi/gstvaapifilter.c:
3273 libs: filter: check mirror and rotation caps only once
3274 This patch locks the display before querying the pipeline caps and
3275 stores the mirror and rotation capabilities, thus they are not queried
3276 every time the video direction is set.
3278 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3280 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3281 libs: encoder: vp9: set VP9_0 profile as default
3282 Commit 0afc8131 introduced a regression and only NV12 format were
3283 admitted, failing in any other valid color format.
3284 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
3286 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3288 * gst-libs/gst/vaapi/gstvaapifilter.c:
3289 libs: filter: fail if first color balance value is invalid
3291 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
3293 * gst-libs/gst/vaapi/gstvaapifilter.c:
3294 * gst-libs/gst/vaapi/gstvaapiutils.c:
3295 * gst-libs/gst/vaapi/gstvaapiutils.h:
3296 libs: filter: set all color balance values
3297 When set multiple settings of color balance like hue, saturation,
3298 brightness and contrast for vaapipostproc, they should be set as
3299 parameters of color balance filter, at the same color balance
3301 Otherwise, multiple color balance filter calling will cause
3302 previous setting get reset by the last calling with default value.
3304 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
3306 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
3308 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3309 libs: h265dec: remove limitation of get iq matrix
3310 According hevc spec, scaling_list_data is not related
3311 to chroma_format_idc.
3313 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
3315 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3316 libs: videopool: fix undocumented behavior and counting
3317 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
3318 because it locks twice the same mutex.
3319 Also, n had different meanings in the current code: as an increase
3320 value and as a new total of allocated surfaces.
3321 This patche removes the undocumented behavoir (usually a deadlock) and
3322 fixes the meaning of n as the new total of allocated surfaces.
3323 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3325 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
3327 * gst-libs/gst/vaapi/gstvaapiutils.c:
3328 libs: utils: Add missing entries for string_of_VAEntrypoint.
3330 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
3332 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3333 libs: encoder: Consider vp9 profiles based on input format.
3334 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
3337 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3339 * gst/vaapi/gstvaapivideomemory.c:
3340 vaapivideomemory: demote error message to info
3341 The main reason to demote the message's level is because it is not an
3342 error, it's a possible output of the trial and there's a code path
3344 Secondly, it's very annoying when using gallium driver for radeon.
3346 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
3348 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3349 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3350 * gst-libs/gst/vaapi/gstvaapitypes.h:
3351 * gst-libs/gst/vaapi/gstvaapiutils.c:
3352 * gst-libs/gst/vaapi/gstvaapivalue.c:
3353 libs: encoder: h264: support ICQ/QVBR bitrate control mode
3354 ICQ is Intelligent Constant Quality. It will use the initial QP
3355 vaule of icq-quality-factor to adjust QP at MB level intelligently
3356 to improve subjective quality.
3357 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
3358 adjust QP for each MB to get enough quality picture without waste
3361 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
3363 * gst-libs/gst/vaapi/gstvaapitypes.h:
3364 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
3365 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
3366 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
3367 deal with unsigned int. Otherwise there may be an error of out of
3368 range of integer if we define few more rate-control mode.
3370 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3372 * gst/vaapi/gstvaapidecodebin.c:
3373 vaapidecodebin: set queue's max size buffers to 1
3374 Otherwise the queue will swallow all the available decoder's surfaces
3375 reaching a dead-lock.
3376 This setting might impact the bin's peformance, but it's a trade-off.
3378 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3380 * gst/vaapi/gstvaapidecodebin.c:
3381 vaapidecodebin: set properties default values
3383 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3385 * gst/vaapi/gstvaapidecode.c:
3386 vaapidecode: don't error if can't push buffers downtream
3387 When the code path goes to push buffers downstream when no surface
3388 available in decoder context, and it fails the code bails out with a
3390 That behavior is wrong, since it shouldn't be fatal. The use case is
3391 when the video stream is disabled.
3392 This patch just ignores the errors in this situation and demotes the
3393 level of a log message.
3395 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
3397 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3398 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3399 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3400 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3401 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3402 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
3403 libs: encoder: h264,h265: add new property "max-qp"
3404 Add new property "max-qp" to allow set the maximum quantisation
3407 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
3409 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3410 libs: encoder: vp9: add low power mode encode
3411 By now, this feature only support by media-driver on Ice Lake
3412 platform, more information you can reference:
3413 https://github.com/intel/media-driver
3415 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3417 * gst/vaapi/gstvaapipostprocutil.c:
3418 vaapipostproc: update PAR when rotating
3419 When rotating, swap pixel-aspect-ratio during
3423 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3425 * gst-libs/gst/vaapi/gstvaapifilter.c:
3426 * gst-libs/gst/vaapi/gstvaapiutils.c:
3427 * gst-libs/gst/vaapi/gstvaapiutils.h:
3428 * gst/vaapi/gstvaapipostprocutil.c:
3429 vaapipostproc: add rotation support
3430 Adds vpp rotation support to vaapipostproc. Uses
3431 property video-direction. Default is identity (no
3435 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
3437 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3438 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
3439 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
3440 cu_qp_delta_enabled_flag enabled.
3443 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
3445 * gst-libs/gst/vaapi/gstvaapiutils.c:
3446 libs: encoder: Add MB ratecontrol mode to get its string
3448 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
3450 * gst-libs/gst/vaapi/gstvaapiutils.c:
3451 libs: encoder: refine guard of bitrate control mode
3452 Remove useless guard of all bitrate control mode's guard except MB
3453 which is define in VA-API version 0.39.1.
3455 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
3457 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3458 h264: Update for parse_vui_params parameter removal.
3459 Update calls to the h264 parser lib for removal of the
3460 parse_vui_params parameter.
3462 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
3464 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
3465 libs: dec: vp9: do not use display size as decoded size
3466 If display size is smaller than current frame size, then the crop size
3467 will be set as display size, which either crashes the pipeline or the
3468 output MD5 does not match. Rather it should use the actual decoded size.
3469 This patch removes the cropping set. For rendering we can use aspect
3470 ratio to set display size.
3472 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
3473 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
3475 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3480 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
3482 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3483 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3484 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
3485 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
3486 For some main-10 stream, sometime the luma is 8 bits while chrome is more
3487 than 8 bits, which cause using the wrong NV12 surface as the render target
3491 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
3493 * gst/vaapi/gstvaapidecode.c:
3494 vaapidecode: set initial decode format according surface chroma type
3495 For surfaces with different chroma type, it is prefer to initialize
3496 a format which chroma type should be same with surface chroma type
3497 instead of using fixed NV12.
3499 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
3501 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
3502 * gst-libs/gst/vaapi/gstvaapiimage.c:
3503 * gst-libs/gst/vaapi/video-format.c:
3504 * gst/vaapi/gstvaapidecode.c:
3505 * gst/vaapi/gstvaapipluginutil.h:
3506 libs: decoder: jpeg: add support 400/411/422/444 chroma type
3507 When create vaapi surface, it is better to use the chroma type get
3508 from jpeg file instead of using fixed 420 format. And the correct
3509 chroma type can be determined by horizontal_factor/vertical_factor
3510 flags that get from jpegparse.
3512 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
3514 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3515 libs: dec: h265: Fix profile_idc mapping.
3516 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
3517 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
3518 happened to be the correct value.
3519 We only support Annex A profile_idc (1-4).
3521 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3523 * gst/vaapi/gstvaapipluginbase.c:
3524 plugins: remove last negotiated video info if caps are same
3525 If the allocation caps and negotiated caps are the same,
3526 then ensure any previously negotiated video info is also
3527 removed. This can occur when multi-resolution video
3528 decoding returns to it's original resolution.
3531 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3533 * gst/vaapi/gstvaapivideomemory.c:
3534 vaapivideomemory: allow negotiated info to be removed
3535 Allow NULL negotiated_vinfo to be passed into
3536 gst_allocator_set_vaapi_negotiated_video_info to allow
3537 any previously set info to be removed.
3539 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
3541 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3542 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3543 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
3544 When input frame's formate changes, vp{8,9} encoders don't reset their frame
3545 counter, hence the newly created frame could become a P-frame, leading to some
3546 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
3547 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
3548 GstVaapiEncoderVP9 implementations.
3550 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3552 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3553 libs: encoder: increase bitrate prop max value
3554 There are many profile levels that can support
3555 more than 102400 kbps. Thus, increase the max
3556 allowed bitrate property value from 102400 kbps
3557 to 2048000 kbps (same as msdk encoder plugins).
3559 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
3561 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3562 libs: mpeg2 encoder: No packed header for SPS and PPS
3563 Dislable passing down packed PPS and PPS to driver if driver does
3567 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
3572 meson: Bump minimal GLib version to 2.44
3573 This means we can use some newer features and get rid of some
3574 boilerplate code using the G_DECLARE_* macros.
3575 As discussed on IRC, 2.44 is old enough by now to start depending on it.
3577 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3579 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
3580 libs: dec: vp9: clear parser pointer after release
3581 Fix an use-after-release of the parser pointer in VP9 decoder.
3583 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
3585 * gst/vaapi/gstvaapiencode.c:
3586 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
3587 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
3588 srcpad's chain function was locked waiting for available buffers. Since the
3589 coded buffers in codedbuf_queue become available after sinkpad consume the
3590 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
3591 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
3592 available buffers and holds the stream_lock of the srcpad.
3594 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
3596 * gst-libs/gst/vaapi/gstvaapitypes.h:
3597 * gst/vaapi/gstvaapidecodebin.c:
3598 * gst/vaapi/gstvaapidecodedoc.c:
3599 * gst/vaapi/gstvaapiencode_h264.c:
3600 * gst/vaapi/gstvaapiencode_h264_fei.c:
3601 * gst/vaapi/gstvaapiencode_h265.c:
3602 * gst/vaapi/gstvaapiencode_jpeg.c:
3603 * gst/vaapi/gstvaapiencode_mpeg2.c:
3604 * gst/vaapi/gstvaapiencode_vp8.c:
3605 * gst/vaapi/gstvaapiencode_vp9.c:
3606 * gst/vaapi/gstvaapipostproc.c:
3607 * gst/vaapi/gstvaapisink.c:
3608 doc: remove xml from comments
3610 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3612 * gst-libs/gst/vaapi/gstvaapifilter.c:
3613 * gst-libs/gst/vaapi/gstvaapifilter.h:
3614 * gst-libs/gst/vaapi/gstvaapiutils.c:
3615 * gst-libs/gst/vaapi/gstvaapiutils.h:
3616 * gst/vaapi/gstvaapipostproc.c:
3617 * gst/vaapi/gstvaapipostproc.h:
3618 vaapipostproc: add mirror support
3619 Adds vpp mirroring support to vaapipostproc. Use
3620 property video-direction. Valid values are identity,
3621 horiz or vert. Default is identity (no mirror).
3623 v2: Use GstVideoOrientationMethod enum
3624 v3: Don't warn for VA_MIRROR_NONE.
3625 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
3626 v4: Query VAAPI caps when setting mirror value
3627 instead of during per-frame processing.
3628 v5: Return TRUE in warning cases when setting mirror value.
3630 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
3632 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
3633 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
3634 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3635 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3636 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
3637 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
3638 * gst/vaapi/gstvaapidecodebin.c:
3639 * gst/vaapi/gstvaapisink.c:
3640 doc: fix some incorrect gtk-doc links
3642 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
3644 * docs/gst_plugins_cache.json:
3645 docs: Update plugin cache
3646 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
3648 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3650 * gst-libs/gst/vaapi/gstvaapisurface.h:
3651 libs: surface: fix documentation format
3653 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
3655 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3656 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
3657 When enable low delay B, the reference list 1 will be same with
3658 reference list 0, so need reset the num_ref_idx_l1_active_minus1
3659 to num_ref_idx_l0_active_minus1.
3662 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
3665 meson: Fix call to wrong function
3667 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
3672 * docs/gst_plugins_cache.json:
3675 * docs/plugins/Makefile.am:
3676 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
3677 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
3678 * docs/plugins/gstreamer-vaapi-plugins.types:
3679 * docs/plugins/inspect/plugin-vaapi.xml:
3680 * docs/plugins/running.xml:
3682 * docs/version.entities.in:
3683 * gst/vaapi/meson.build:
3685 * meson_options.txt:
3686 docs: Port to hotdoc
3688 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
3690 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3691 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3692 libs: encoder: not call ensure_num_slices inside g_assert
3693 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
3694 defined. The function inside the g_assert will take no effect and
3695 we will fail to set the correct slice number.
3697 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
3699 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3700 libs: h265: dec: Add extension flags setting.
3701 Use VAPictureParameterBufferHEVCExtension&
3702 VASliceParameterBufferHEVCExtension to pass extension setting from
3703 some extension profile clips which may include these information.
3704 The hevc extension setting only supported after libva release 2.2.0
3707 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3709 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3710 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3711 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3712 libs: encoder: add target-percentage property
3713 Allow users to set the target-percentage for
3714 variable rate controls. The default value is
3715 70 (as hard-coded prior).
3716 v2: minimum allowed value changed from 0 to 1
3717 v3: target-percentage unchanged if CBR used
3720 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
3722 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3723 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
3725 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
3727 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3728 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3729 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3730 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3731 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3732 libs: encoder: Enable trellis quantization method.
3733 The advanced trellis algorithm is supported in VA driver. We add
3734 its support as a property named "trellis" of encoder.
3735 It only works for H264 now, should be more in future.
3737 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
3739 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
3740 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
3741 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
3742 type, so we need to add subsampling_x&subsampling_y to fix it.
3743 Here is the relationship between chroma type and profile and
3744 subsampling_x&subsampling_y according to vp9 spec:
3745 ------------------------------------------
3746 Profile | Bit depth | Chroma subsampling |
3747 ------------------------------------------
3749 ------------------------------------------
3750 1 | 8 | 422,440,444 |
3751 ------------------------------------------
3753 ------------------------------------------
3754 3 | 10, 12 | 422,440,444 |
3755 ------------------------------------------
3756 -----------------------------------------------
3757 Subsampling_x | Subsampling_y | Chroma format |
3758 -----------------------------------------------
3760 -----------------------------------------------
3762 -----------------------------------------------
3764 -----------------------------------------------
3766 -----------------------------------------------
3768 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
3770 * gst-libs/gst/vaapi/gstvaapiimage.c:
3771 * gst-libs/gst/vaapi/video-format.c:
3772 libs: Add packed 24 RGB format support.
3773 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
3774 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
3775 type. This kind of surface will just be created by new API with fourcc
3776 and no old style chrome based creation is available.
3779 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
3781 * gst/vaapi/gstvaapiencode.c:
3782 * gst/vaapi/gstvaapiencode_h264.c:
3783 * gst/vaapi/gstvaapiencode_h264_fei.c:
3784 * gst/vaapi/gstvaapiencode_h265.c:
3785 * gst/vaapi/gstvaapiencode_jpeg.c:
3786 * gst/vaapi/gstvaapiencode_mpeg2.c:
3787 * gst/vaapi/gstvaapiencode_vp8.c:
3788 * gst/vaapi/gstvaapiencode_vp9.c:
3789 vaapiencode: handle DMABuf caps feature in sink pad
3790 Add DMABuff caps features in all encoders' sink pad.
3792 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3794 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3795 libs: encoder: continue if roi meta is NULL
3797 If the function actually returns a null value, a null pointer
3798 dereference will occur.
3799 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
3800 function which returns null is dereferenced without checking
3802 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
3804 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
3805 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
3806 The decoder's surface chroma type should depend on the bit depth
3807 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
3808 10 bits surface as the decoder result.
3811 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3813 * gst/vaapi/gstvaapipostprocutil.c:
3814 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
3815 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
3816 with commit 3e992d8a
3817 Since gst_vaapi_find_preferred_caps_feature() returns a color format
3818 from caps negotiation, different from the default one (NV12), the
3819 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
3820 feature is negotiated, no color transformation shall be done.
3821 Nonetheless, with commit 3e992d8a the requested format changes
3822 firstly, because there's no video sink yet, so ANY caps are
3823 negotiated; but later, when there's a video sink and a caps
3824 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
3825 format conversion still ongoing. It is required to reset that
3827 This patch force default color format when GL_TEXTURE_UPLOAD is
3828 selected as preferred, thus avoiding the color conversion.
3831 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
3833 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3834 libs: surface: fix double free when dmabuf export fails
3835 Happens if vaAcquireBufferHandle fails.
3837 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
3839 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3840 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
3842 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
3846 * docs/plugins/inspect/plugin-vaapi.xml:
3850 === release 1.16.0 ===
3852 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
3858 * gstreamer-vaapi.doap:
3862 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
3864 * docs/plugins/inspect/plugin-vaapi.xml:
3867 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3869 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3870 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3871 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3872 libs: encoder: h264,h265: guard VA version for max_qp property
3873 This patch fixes a regression from commit 5b1fe9c6.
3874 max_qp, in rate control configuration, appeared in libva release
3875 2.1 (API 1.1), thus it is required to guard the VA API version.
3878 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
3880 * gst-libs/gst/vaapi/gstvaapiimage.c:
3881 * gst-libs/gst/vaapi/video-format.c:
3882 libs: Add RGB565 image format support.
3884 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3887 build: configure: delay USE_GTK conditional until check libva-x11
3888 libva-x11 is used for X11 applications, so it is required to build
3889 any GTK application.
3890 Later, when Wayland test is added, we should change this.
3892 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3895 build: configure: disable GLX if libva-x11 is not found
3897 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
3899 * gst-libs/gst/vaapi/gstvaapiutils.c:
3900 libs: utils: avoid macro evaluation when stringify
3901 string_of_va_chroma_format() gets a wrong string format description.
3902 For example, the YUV420_10BPP get a string of 0x00000100 as output.
3903 It's because VA_RT_FORMAT_xxx values are macro definitions. And
3904 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
3906 To avoid the macro evaluation, it is changed to show only the color
3907 format without VA_RT_FORMAT_ prefix.
3909 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3911 * gst-libs/gst/vaapi/gstvaapiutils.c:
3912 libs: utils: use glib's macros
3913 Don't reinvent the wheel.
3915 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
3917 * gst/vaapi/gstvaapipluginutil.c:
3918 plugins: find the preferred format from right caps.
3919 When the downstream has any caps, then raw video feature will
3920 be used. At this situation, the preferred format should be chose
3921 from caps which contains "vide/x-raw" feature instead of from
3922 the fist allowed caps.
3925 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3927 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3928 libs: encoder: h265: fill tier in va seq param buf
3929 Now that tier is calculated in commit 58e74f9440fe (!68),
3930 ensure we fill in the general_tier_flag in the
3931 VAEncSequenceParameterBufferHEVC.
3933 === release 1.15.90 ===
3935 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
3941 * gstreamer-vaapi.doap:
3945 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
3947 * docs/plugins/inspect/plugin-vaapi.xml:
3950 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
3952 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3953 libs: encoder: h265: Recognize the correct level and tier.
3954 The current manner can not recognize the correct level and always
3955 set the tier to main. Need to add frame rate check to recognize
3956 levels such as 4.1, 6.2, etc. We also add a logic to check main
3957 and high tier based on bitrate.
3960 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
3962 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3963 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3964 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3965 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
3966 media-driver currently fails to set a correct value of max_qp when
3967 min_qp is different to zero, in CBR and VBR mode, generating full
3968 quality frames, thus unexpected huge output.
3969 This patch sets max_qp to an arbitrary value to avoid this output
3973 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3975 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3976 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3977 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3978 libs: encoder: h264,h265: initial and minimal QP can be zero
3979 Currently the minimal value for either min_qp and init_qp are 1,
3980 but VA documentation specifiy that zero is also valid and means
3981 to ignore the quantiser.
3982 The default value is not changed though to avoid behaivor changes
3985 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
3987 * tests/elements/meson.build:
3988 meson: build test-vaapicontext when using X11
3989 x11_dep and libva_x11_dep are optional and meson ignores these
3990 dependencies even if they are added into the dependency list.
3991 This fixes the error below when libva-x11 is not avaiblabe:
3992 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
3993 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
3994 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
3995 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
3996 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
3997 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
3998 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
3999 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
4000 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
4001 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
4002 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
4003 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
4004 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
4005 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
4006 -DHAVE_CONFIG_H -MD -MQ
4007 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
4009 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
4011 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
4012 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
4013 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
4014 error: va/va_x11.h: No such file or directory
4015 #include <va/va_x11.h>
4017 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
4019 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4020 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4021 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
4022 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
4023 GValueArray is deprecated. Use GstValueArray instead.
4025 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
4027 * gst/vaapi/gstvaapipluginutil.c:
4028 vaapipluginutil: Fix #endif for USE_X11
4030 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4032 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4033 libs: encoder: h264: simplify the view-ids setting
4035 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
4037 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4038 libs: encoder: h264: Use gst_param_spec_array for view-ids
4039 GValueArray is deprecated. Use GstValueArray instead.
4040 gst_param_spec_array can be deserialized from command line using:
4041 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
4042 While the g_param_spec_value_array() can not, and always get
4043 error: "gst_value_deserialize_g_value_array: unimplemented"
4044 Also fixed an out-of-range bug.
4046 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
4048 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
4049 libs: Change the parameter setting order when encode picture.
4050 The order in gst_vaapi_enc_picture_encode when encoding one
4051 picture is not very correct. The misc parameters are set before
4052 the picture parameters. Some of the misc parameters such as
4053 ROI may change the current picture parameters. But the later
4054 setting of picture parameter will re-init all picture related
4055 parameters and clear the previous setting. The right order
4056 should be picture parameter first and then misc parameters.
4057 Signed-off-by: He Junyan <junyan.he@hotmail.com>
4059 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
4061 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
4062 libs: decoder: jpeg: support dynamic resolution change decode.
4063 Add size_changed flag to watch out resolution. if change, reset
4064 jpeg decoder's context.
4066 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
4068 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4069 libs: encoder: h265: add low power mode encode.
4070 By now, this feature only support by media-driver on Ice Lake
4071 platform, more information you can reference:
4072 https://github.com/intel/media-driver
4074 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
4076 * gst/vaapi/gstvaapiencode.c:
4077 vaapiencode: gobject's prop_id differ from vaapi encoder
4078 The vaapi internal encoder's property id are negative, thus they are
4079 different from GObject's property ids.
4080 gst_vaapi_encoder_set_property() should map to the internal encoder
4081 property id, assigned in gst_vaapiencode_default_set_property().
4083 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
4086 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
4088 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
4091 meson: use new 'python' module instead of deprecated 'python3' one
4093 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
4096 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
4097 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
4099 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
4104 * docs/plugins/inspect/plugin-vaapi.xml:
4108 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
4110 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
4111 libs: Fix a typo in comments.
4112 Fix a typo in function description of
4113 gst_vaapi_surface_pool_new_with_chroma_type.
4114 Signed-off-by: He Junyan <junyan.he@hotmail.com>
4116 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4118 * gst/vaapi/gstvaapipluginutil.c:
4119 plugin: if any caps in downstream, negotiate raw video
4120 When downstream has any caps, vaapi should not shovel vaapi featured
4121 buffers, but rather plain raw video, assuming always the worst case
4122 scenario (downstream cannot handle featured video memory but raw
4123 system memory buffers).
4124 This patch query the peer caps without any filter, to know if
4125 donwstream just ask for any caps, if so jump to the color space
4126 checking, otherwise do the caps intersection and continue with the
4127 feature selection algorithm.
4130 === release 1.15.2 ===
4132 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
4138 * gstreamer-vaapi.doap:
4142 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
4144 * docs/plugins/inspect/plugin-vaapi.xml:
4147 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
4149 * gst/vaapi/gstvaapivideomemory.c:
4150 vaapivideomemory: Prefer same format for surface and image
4151 We prefer to use the same format between image and surface for gst
4152 vaapi allocator. The old way may choose different formats between
4153 image and surface. For example, the RGBA image may have a NV12 surface.
4154 So we need to do format conversion when we put/get image to surface.
4155 Some drivers such as iHD can not support such conversion and always
4156 cause a data flow error. There may also have some performance cost
4157 for format conversion when put/get images.
4158 So we prefer to use the same format for image and surface in the
4159 allocator. If the surface can not support that format, we then
4160 fallback to find a best one as the surface format.
4161 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
4163 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
4165 * gst-libs/gst/vaapi/video-format.c:
4166 libs: Delete the duplicated ARGB video format.
4167 Two ARGB formats with the same format information.
4168 Should be verbose and delete one.
4169 Signed-off-by: He Junyan <junyan.he@hotmail.com>
4171 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
4174 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
4175 glx: Stop specifying GLX_DEPTH_SIZE
4176 This code is just confused. It's asking for at least as many bits of
4177 (z-axis) depth as the root window has bits of (color) depth. For rgb565
4178 or rgb888 this is harmless, but at 10 bits per channel this demands a
4179 30-bit or deeper Z buffer. While some hardware could in principle do a
4180 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
4182 We're not actually using the Z buffer, so just stop asking for one.
4184 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
4187 * gst-libs/gst/vaapi/Makefile.am:
4188 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
4189 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
4190 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4191 * gst-libs/gst/vaapi/meson.build:
4192 * gst/vaapi/gstvaapisink.c:
4194 libs: wayland: add support for XDG-shell protocol
4195 [wl_shell] is officially [deprecated], so provide support for the
4196 XDG-shell protocol should be provided by all desktop-like compositors.
4197 (In case they don't, we can of course fall back to wl_shell).
4198 Note that the XML file is directly provided by the `wayland-protocols`
4199 dependency and generates the protocol marshalling code.
4200 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
4201 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
4203 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
4205 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4206 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
4207 It will help us to distinguish from other Wayland shell surface
4208 (such as XDG-shell) later on.
4210 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
4212 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
4213 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
4214 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4215 libs: wayland: Prefix wl_shell field with `wl_`
4216 It will help us to distinguish from other Wayland shells (such as
4217 XDG-shell) later on.
4219 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
4221 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4222 libs: display: lock ensure_profile()
4223 Thread safety patch for ensure_profile() function
4226 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4229 meson: bump the minimum wayland version requirement to 1.11.0
4230 This was missed on commit 77bb3424
4232 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4234 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4235 * gst/vaapi/gstvaapisink.c:
4236 vaapisink: x11: trap WM_DELETE_WINDOW message
4237 Register the WM_DELETE_WINDOW message from window manager and
4238 trap it to stop the pipeline cleanly.
4239 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
4241 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4243 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4244 libs: window: remove native-id property
4245 native-id property is problematic since the variable that stores it is
4246 gsize, which is platform specific, and in some is bigger than unsigned
4247 long, and there are not way to handle gsize properties.
4248 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
4249 like to keep using it for this scope.
4250 This patch removes the native-id property and set it manually in
4251 gst_vaapi_window_new_internal().
4253 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4255 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4256 libs: window: use G_GSIZE_MODIFIER for window id
4257 gsize type is not equal in all platforms, then the 'l' print modifier
4258 shall not be used always.
4259 This issue was found in Debian builds.
4261 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
4263 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4264 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4265 encoder: h264/h265: set SPS cbr_flag with correct value.
4266 The flag only set as 1 when the rate-control mode is CBR.
4268 === release 1.15.1 ===
4270 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
4276 * gstreamer-vaapi.doap:
4280 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
4282 * docs/plugins/inspect/plugin-vaapi.xml:
4285 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4287 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4288 libs: encoder: refactor to avoid code duplication
4289 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
4290 the same code segment where the coded buffer is created, the picture
4291 encoded on it and pushed to the async queue.
4292 The function gst_vaapi_encoder_encode_and_queue() refactor this.
4294 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4296 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4297 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4298 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4299 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4300 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4301 libs: encoder: h264/h265: flush pending ordered pictures
4302 In order to flush the pending pictures, a new internal encoder vmethod
4303 is used: get_pending_reordered()
4304 This method follows an iterator pattern which will return the next
4305 picture to encode and push.
4306 The base encoder will call this function in a loop when flush() is called.
4307 For now, only H.264 and H.265 encoders implement this flushing mechanism.
4309 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com>
4311 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4312 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4313 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4314 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4315 libs: encoder: h264/h265: fix encode lose frame issue.
4316 Instead of dropping all remain frames in reorder_frame_list during
4317 flush, keep encoding.
4318 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
4320 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
4322 * gst/vaapi/gstvaapipostproc.c:
4323 vaapipostproc: before set surface proxy, check if it already been created and exist.
4324 Fix the deinterlace black frame when playing with glimagesink:
4325 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
4326 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
4328 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
4330 * gst-libs/gst/vaapi/gstvaapiutils.c:
4331 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
4333 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
4335 * gst-libs/gst/vaapi/meson.build:
4336 * gst/vaapi/meson.build:
4338 * tests/meson.build:
4339 meson: build h264 fei encoder if possible
4341 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
4344 configure: bump the minimum wayland version requirement to 1.11.0
4346 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
4349 * gst-libs/gst/vaapi/Makefile.am:
4350 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4351 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
4352 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
4353 * gst-libs/gst/vaapi/gstvaapicompat.h:
4354 * gst-libs/gst/vaapi/gstvaapicontext.c:
4355 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4356 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
4357 * gst-libs/gst/vaapi/gstvaapifilter.c:
4358 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4359 * gst-libs/gst/vaapi/gstvaapisurface.c:
4360 * gst-libs/gst/vaapi/gstvaapiutils.c:
4361 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4362 * gst-libs/gst/vaapi/meson.build:
4363 * gst/vaapi/Makefile.am:
4364 * gst/vaapi/gstvaapi.c:
4365 * gst/vaapi/gstvaapidecode.c:
4366 * gst/vaapi/gstvaapidecodebin.c:
4367 * gst/vaapi/gstvaapipluginbase.c:
4368 * gst/vaapi/meson.build:
4371 * tests/simple-decoder.c:
4372 vaapi: bump the minimum vaapi version requirement to 0.39.0
4373 And reduce unnecessary API version and structures check as well.
4374 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
4376 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4378 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4379 * gst-libs/gst/vaapi/gstvaapiwindow.h:
4380 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
4381 * tests/test-decode.c:
4382 * tests/test-filter.c:
4383 * tests/test-subpicture.c:
4384 * tests/test-textures.c:
4385 * tests/test-windows.c:
4386 libs: window: remove custom ref() and unref()
4387 Use gst_object_ref() and gst_object_unref() instead.
4389 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4391 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4392 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
4393 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
4394 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
4395 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4396 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4397 libs: window: use its own debug category
4399 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4401 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4402 * gst-libs/gst/vaapi/gstvaapiwindow.h:
4403 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
4404 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
4405 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
4406 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
4407 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
4408 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
4409 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
4410 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4411 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
4412 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4413 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
4414 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
4415 libs: window: refactor as gobject
4416 This is another step in the gobjectification of the internal library
4417 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
4419 The idea is to minimize the changeset keeping the same design as
4421 GstVaapiWindow is defined as an abstract class with two properties:
4422 the GstVaapiDisplay and the native ID. Thus, many of the
4423 GstVaapiObject macros were copied as GstVaapiWindow macros.
4424 The function gst_vaapi_window_new_internal() is kept as a decorator
4425 of for calling gst_vaapi_window_create() and the possibility of
4427 The descendant classes, such as glx, still use the private
4428 structures, but through the gobject mechanism.
4430 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4432 * gst-libs/gst/vaapi/gstvaapifilter.c:
4433 libs: filter: use its own debug category
4435 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
4437 * gst/vaapi/gstvaapidecode.c:
4438 * gst/vaapi/gstvaapipluginbase.c:
4439 * gst/vaapi/gstvaapipluginbase.h:
4440 * gst/vaapi/gstvaapipostproc.c:
4441 * gst/vaapi/gstvaapisink.c:
4442 plugins: Add more check for allowed raw caps.
4443 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
4444 pad and src pad, which cause some bugs. For sink pad, we need to verify
4445 vaPutImage() while for the src pad we need to verify vaGetImage().
4446 For vaapidecoderXXX kind of plugins, the case is more complex. We need
4447 to verify whether the decoded result(in some surface, NV12 format most
4448 of the time) can be vaGetImage to some raw image format. Add more check
4449 to fix all these problems.
4450 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
4451 Signed-off-by: He Junyan <junyan.he@hotmail.com>
4453 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
4455 * gst/vaapi/gstvaapipostproc.c:
4456 vaapipostproc: fix csc fail when only change width or height.
4458 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
4460 * tests/elements/meson.build:
4461 meson: Add gtk guard
4463 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
4465 * gst/vaapi/gstvaapiencode_h264.c:
4466 libs: enc: h264: set max profile idc with correct profile.
4467 Use the highest rank of available profile as the max profile to
4469 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
4471 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
4473 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4474 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
4475 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
4476 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
4477 This gets rid of the strange `do_init` macro and makes the intent a bit
4480 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
4483 Automatic update of common submodule
4484 From ed78bee to 59cb678
4486 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
4488 * gst-libs/gst/vaapi/gstvaapiimage.c:
4489 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4490 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4491 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
4492 * gst-libs/gst/vaapi/video-format.c:
4493 * gst/vaapi/gstvaapidecode.c:
4494 * gst/vaapi/gstvaapipluginutil.h:
4495 libs: dec: h265: support decode for main-444 10bit streams.
4496 Add 444 10bit yuv format Y410, which can be used to decode
4497 main-444 10bit streams. Currently, this feature is only
4498 supported by media-driver in Icelake.
4500 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
4502 * gst/vaapi/gstvaapidecode.c:
4503 * gst/vaapi/gstvaapisink.c:
4504 Run gst-indent through the files
4505 This is required before we enabled an indent test in the CI.
4506 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
4508 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
4510 * gst/vaapi/gstvaapipluginbase.c:
4511 plugins: modify image check of extract_allowed_surface_formats.
4512 The extract_allowed_surface_formats function just check whether
4513 we can support some kind of surface/image format pair. We just
4514 need to create a surface, create an image with the same video-format
4515 and putImage from image to surface. All these operations success,
4516 that kind of video-format is supported.
4517 The old manner do not work for some kind of video-format. For example,
4518 the RGBA kind of format will create a NV12 surface and RGBA image,
4519 and the putImage will fail because the format is not same. And so
4520 the RGBA format is not supported but actually it is supported.
4522 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
4524 * gst/vaapi/gstvaapipostproc.c:
4525 vaapipostproc: add some missing locking
4526 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
4527 in gst_vaapipostproc_transform_caps(). The usage is already protected by
4529 This is needed when the pipeline is stopped during startup.
4531 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
4533 * gst/vaapi/gstvaapivideomemory.c:
4535 Otherwise it will result in resource leak when failed to create
4538 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
4540 * gst/vaapi/gstvaapiencode.c:
4541 vaapiencode: don't start src pad task in set_format
4542 Otherwise the task may be restarted during shutdown. Start the task in
4543 gst_vaapiencode_handle_frame() instead.
4545 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
4547 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4548 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4549 * gst-libs/gst/vaapi/gstvaapiutils.c:
4550 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
4551 * gst/vaapi/gstvaapidecode.c:
4552 * gst/vaapi/gstvaapipluginutil.h:
4553 libs: dec: h265: support decode for main-444 8bit streams.
4554 Add 444 8bit yuv format AYUV, which can be used to decode
4555 main-444 8bit streams. Currently, this feature is only
4556 supported by media-driver in Icelake.
4557 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
4559 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4562 Add Gitlab CI configuration
4563 This commit adds a .gitlab-ci.yml file, which uses a feature
4564 to fetch the config from a centralized repository. The intent is
4565 to have all the gstreamer modules use the same configuration.
4566 The configuration is currently hosted at the gst-ci repository
4567 under the gitlab/ci_template.yml path.
4568 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
4570 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
4572 * gst-libs/gst/vaapi/gstvaapisurface.h:
4573 * gst-libs/gst/vaapi/gstvaapiutils.c:
4574 libs: Sync the GstVaapiChromaType to VA header file.
4575 Add more kinds of chrometype which will be used to describe
4576 new video formats. Sync it with 1.4.0 version header file.
4577 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
4578 Signed-off-by: He Junyan <junyan.he@hotmail.com>
4580 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
4582 * gst-libs/gst/vaapi/meson.build:
4583 meson: link with -lm
4584 Fixes #117 hopefully.
4586 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
4589 meson: bump meson required to 0.47 for feature options
4591 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
4593 * gst-libs/gst/vaapi/video-format.c:
4594 libs: Modify the video format of endianness.
4595 We lack some video format because endianness declare.
4596 The video format should not directly relate to endianness. For example,
4597 ARGB on big endian should not be simplely seen as BGRA on little endian
4598 machine. We should provide endianess convert or format convert help
4599 functions if endianness does not match.
4600 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
4601 Signed-off-by: Junyan He <junyan.he@intel.com>
4603 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
4605 * gst/vaapi/gstvaapipluginutil.c:
4606 plugins: Fix build error when GL is enabled while EGL is disabled.
4607 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
4608 unused-variable warning and may block build when Werror enabled.
4609 Several functions like gst_vaapi_display_egl_new_with_native_display
4610 have no prototype warning and link error when GL is enabled but EGL
4611 is disabled. Fix all these warning and link error.
4612 https://bugzilla.gnome.org/show_bug.cgi?id=797358
4613 Signed-off-by: Junyan He <junyan.he@intel.com>
4615 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
4617 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4618 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4619 libs: encoder: h264/h264fei: remove unuseless code.
4620 The variable are set twice, remove previous one.
4621 https://bugzilla.gnome.org/show_bug.cgi?id=797365
4623 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
4625 * tests/simple-encoder.c:
4626 * tests/test-fei-enc-in.c:
4627 tests: check return value when using gst_buffer_map.
4628 https://bugzilla.gnome.org/show_bug.cgi?id=797366
4630 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4633 * meson_options.txt:
4634 * tests/elements/meson.build:
4635 * tests/meson.build:
4636 build: meson: build examples
4638 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4640 * gst-libs/gst/vaapi/meson.build:
4641 build: meson: declare headers for libgstvaapi
4642 Thus handling its recompilation if needed.
4644 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
4647 Update common submodule location
4648 Remove the git directory
4650 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
4653 * gstreamer-vaapi.doap:
4654 Clone the code from gitlab
4655 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
4657 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
4659 * gst-libs/gst/vaapi/gstvaapiimage.c:
4660 * gst-libs/gst/vaapi/gstvaapisurface.h:
4661 * gst-libs/gst/vaapi/gstvaapiutils.c:
4662 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
4663 * gst-libs/gst/vaapi/video-format.c:
4664 * gst/vaapi/gstvaapidecode.c:
4665 * gst/vaapi/gstvaapipluginutil.h:
4666 libs: dec: h265: support decode for main-10-422 10bit streams.
4667 Add 422 10bit yuv format Y210, which can be used to decode
4668 main-10-422 10bit streams. Currently, this feature is only
4669 supported by media-driver in Icelake.
4670 https://bugzilla.gnome.org/show_bug.cgi?id=797264
4672 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
4674 * gst-libs/gst/vaapi/gstvaapicontext.c:
4675 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
4676 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
4677 rate control mode is set as CQP. In CQP mode, it shouldn't check
4678 roi_rc_qp_delta_support return value from driver backend.
4679 https://bugzilla.gnome.org/show_bug.cgi?id=797087
4681 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4683 * gst/vaapi/gstvaapipostproc.c:
4684 vaapipostproc: fix classification string
4685 The classification string is splitted by '/' and then looks for the
4687 This patch removes the ';' by unifying all the components.
4689 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
4691 * gst/vaapi/gstvaapipostproc.c:
4692 vaapipostproc: Add Hardware classifier to metadata
4694 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
4696 * gst-libs/gst/vaapi/gstvaapicontext.c:
4697 libs: context: create context first before using it to create surface.
4698 In gst_vaapi_context_reset(), if the context has to be destroyed, make
4699 sure to create it first before allocating its associated surfaces.
4700 This patch fixes a regression introduced in commit 82872f4 because
4701 the formats available in the current context now are ensured before
4702 creating the context's surfaces.
4703 https://bugzilla.gnome.org/show_bug.cgi?id=797277
4705 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
4707 * docs/plugins/inspect/plugin-vaapi.xml:
4708 * gst/vaapi/gstvaapidecode.c:
4709 * gst/vaapi/gstvaapiencode_h264.c:
4710 * gst/vaapi/gstvaapiencode_h264_fei.c:
4711 * gst/vaapi/gstvaapiencode_h265.c:
4712 * gst/vaapi/gstvaapiencode_jpeg.c:
4713 * gst/vaapi/gstvaapiencode_mpeg2.c:
4714 * gst/vaapi/gstvaapiencode_vp8.c:
4715 * gst/vaapi/gstvaapiencode_vp9.c:
4716 gst: Advertise elements interacting with hardware devices
4718 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
4720 * gst-libs/gst/vaapi/gstvaapicontext.c:
4721 * gst-libs/gst/vaapi/gstvaapisurface.c:
4722 * gst-libs/gst/vaapi/gstvaapisurface.h:
4723 libs: context: query surface format before context to create surface.
4724 Before using context to create surface, the supported surface format
4725 should be checked first.
4726 https://bugzilla.gnome.org/show_bug.cgi?id=797222
4728 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4730 * gst-libs/gst/vaapi/gstvaapiimage.c:
4731 * gst-libs/gst/vaapi/gstvaapivalue.c:
4732 libs: replace g_error with GST_ERROR
4733 And handle those errors rather than halting.
4735 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4737 * gst-libs/gst/vaapi/gstvaapiimage.c:
4738 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
4739 * gst-libs/gst/vaapi/gstvaapisurface.c:
4740 libs: replace g_warning with GST_WARNING
4742 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
4744 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
4745 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
4746 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
4747 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
4748 libs: Move from g_debug to GST_DEBUG.
4749 https://bugzilla.gnome.org/show_bug.cgi?id=797202
4751 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
4753 * gst/vaapi/gstvaapipostproc.c:
4754 vaapipostproc: change the way of handling deinterlace
4755 The current vaapipostproc calls driver's video processing
4756 pipeline for deinterlacing only if it is Advance deinterlacing.
4757 Modify in the way that it always tries with driver's video
4758 processing pipeline for deinterlacing, and falls back to software
4759 method of appending picture structure meta data only if it fails
4760 with driver's method.
4761 https://bugzilla.gnome.org/show_bug.cgi?id=797095
4763 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
4765 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
4766 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
4767 libs: h264: Update level table to "Recommendation H.264 (04/17)".
4768 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
4769 from T-REC-H.264-201704.
4770 https://bugzilla.gnome.org/show_bug.cgi?id=797202
4772 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
4774 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4775 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4776 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4777 * gst-libs/gst/vaapi/gstvaapisurface.c:
4778 * gst-libs/gst/vaapi/gstvaapiutils.c:
4779 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
4780 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
4781 * gst-libs/gst/vaapi/video-format.c:
4782 * gst-libs/gst/vaapi/video-format.h:
4783 * gst/vaapi/gstvaapidecode.c:
4784 * gst/vaapi/gstvaapipluginbase.c:
4785 * gst/vaapi/gstvaapipluginutil.h:
4786 libs: dec: h265: add 422 chroma format support.
4787 Add main-422-10 profile which support 422 chroma format stream.
4788 Currently, this feature is only supported by media-driver in Icelake.
4789 https://bugzilla.gnome.org/show_bug.cgi?id=797143
4791 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
4793 * tests/y4mreader.c:
4794 tests: include sysdeps.h in compilation unit
4795 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
4796 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
4798 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4800 * tests/y4mreader.c:
4801 * tests/y4mreader.h:
4802 tests: fix compilation
4803 https://bugzilla.gnome.org/show_bug.cgi?id=797204
4805 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4807 * tests/y4mreader.h:
4808 tests: don's use sysdeps.h in header
4810 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4812 * gst-libs/gst/vaapi/gstvaapiutils.h:
4813 libs: utils: no need of include config.h
4815 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4819 * tests/test-decode.c:
4820 * tests/test-subpicture.c:
4821 tests: remove already include string.h
4822 Since sysdeps.h includes string.h there's no need to include it again.
4824 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4826 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
4827 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4828 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4829 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
4830 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
4831 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
4832 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
4833 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
4834 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4835 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4836 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
4837 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
4838 * gst-libs/gst/vaapi/gstvaapiimage.c:
4839 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4840 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
4841 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
4842 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4843 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4844 libs: remove already include string.h
4845 Since sysdeps.h includes string.h there's no need to include it again.
4847 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4849 * gst-libs/gst/vaapi/gstvaapiobject.h:
4850 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
4851 * gst/vaapi/gstvaapivideometa_texture.c:
4852 libs: object: separation of internal API and plugins
4853 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
4854 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
4856 The purpose is readability.
4857 https://bugzilla.gnome.org/show_bug.cgi?id=797139
4859 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4861 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
4862 libs: parser_frame: change macros for inlined functions
4863 https://bugzilla.gnome.org/show_bug.cgi?id=797139
4865 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4867 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
4868 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
4869 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4870 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
4871 libs: videopool: remove unneeded code
4872 The removed code comes frome the bad practice of copy&paste. Better
4873 move it as internal function.
4874 https://bugzilla.gnome.org/show_bug.cgi?id=797139
4876 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4878 * gst-libs/gst/vaapi/Makefile.am:
4879 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4880 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
4881 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
4882 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
4883 * gst-libs/gst/vaapi/gstvaapiobject.c:
4884 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
4885 * gst-libs/gst/vaapi/gstvaapipixmap.c:
4886 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
4887 * gst-libs/gst/vaapi/gstvaapitexture.c:
4888 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
4889 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4890 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
4891 * gst-libs/gst/vaapi/meson.build:
4892 libs: remove dependency on IN_LIBGSTVAAPI_CORE
4893 This conditional code was when libgstvaapi was intended to be library
4894 used outside GStreamer. This not the case anymore, thus removing it.
4895 https://bugzilla.gnome.org/show_bug.cgi?id=797139
4897 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
4899 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
4900 libs: dec: h265: fix the macros used for IDC profile
4901 profile_idc flag in SPS only indicate the IDC profile, which may
4902 need some other flags together to get the real profile.
4903 https://bugzilla.gnome.org/show_bug.cgi?id=797160
4905 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
4907 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4908 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4909 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
4910 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
4911 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4912 libs: use g_clear_pointer() when possible
4913 https://bugzilla.gnome.org/show_bug.cgi?id=797131
4915 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4917 * gst-libs/gst/vaapi/gstvaapifilter.h:
4918 libs: filter: add gobject's cleanup function
4920 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4922 * gst-libs/gst/vaapi/gstvaapifilter.c:
4923 * gst-libs/gst/vaapi/gstvaapifilter.h:
4924 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
4925 * tests/test-filter.c:
4926 libs: filter: remove custom ref() and unref()
4927 Replacing them by gst_object_ref() and gst_object_unref()
4928 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4930 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4932 * gst-libs/gst/vaapi/gstvaapifilter.c:
4933 * gst-libs/gst/vaapi/gstvaapifilter.h:
4934 libs: filter: refactor filter as gobject
4935 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4937 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4939 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4940 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
4941 libs: decoder: remove destoy() and create() callbacks
4942 They were all replaced by reset()
4943 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4945 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4947 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
4948 libs: decoder: vp9: implement reset() callback
4949 remove destroy() and create() callback
4950 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4952 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4954 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
4955 libs: decoder: vp8: implement reset() callback
4956 remove create() and destroy() callbacks
4957 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4959 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4961 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
4962 libs: decoder: vc1: implement reset() callback
4963 remove destroy() and create() callbacks
4964 use g_clear_pointer for rbdu_buffer
4966 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4968 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4970 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
4971 libs: decoder: mpeg4: implement reset() callback
4972 remove destroy() and create() callback
4973 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4975 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4977 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
4978 libs: decoder: mpeg2: implement reset() callback
4979 remove create() and destroy() callbacks
4980 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4982 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4984 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
4985 libs: decoder: jpeg: implement reset() callback
4986 and remove create() and destroy() callbacks.
4987 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4989 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4991 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4992 libs: decoder: h265: implement reset() callback
4993 and remove create() and destroy()
4994 and use g_clear_pointer for dpb structure
4995 https://bugzilla.gnome.org/show_bug.cgi?id=796308
4997 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4999 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5000 libs: decoder: h264: remove create() and destroy() callbacks
5001 https://bugzilla.gnome.org/show_bug.cgi?id=796308
5003 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5005 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5006 * gst-libs/gst/vaapi/gstvaapidecoder.h:
5007 * tests/test-decode.c:
5008 * tests/test-subpicture.c:
5009 libs: decoder: remove gst_vaapi_decoder_unref()
5010 Replaced by gst_object_unref() in tests
5011 https://bugzilla.gnome.org/show_bug.cgi?id=796308
5013 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5015 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5016 * gst-libs/gst/vaapi/gstvaapidecoder.h:
5017 libs: decoder: remove gst_vaapi_decoder_ref()
5018 https://bugzilla.gnome.org/show_bug.cgi?id=796308
5020 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5022 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5023 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
5024 libs: decoder: remove gst_vaapi_decoder_new()
5025 https://bugzilla.gnome.org/show_bug.cgi?id=796308
5027 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5029 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5030 * gst-libs/gst/vaapi/gstvaapidecoder.h:
5031 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5032 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
5033 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5034 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
5035 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5036 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
5037 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
5038 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
5039 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
5040 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
5041 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
5042 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5043 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
5044 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
5045 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
5046 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5047 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
5048 libs: decoder: refactor decoders as gobject
5049 https://bugzilla.gnome.org/show_bug.cgi?id=796308
5051 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
5053 * gst/vaapi/gstvaapidecode.c:
5054 vaapidecode: Requests upstream a key unit at parse or decode error.
5055 This is done to resume decoding after a parse error or decode error.
5056 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
5058 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
5060 * gst/vaapi/gstvaapidecode.c:
5061 vaapidecode: sets return value in failure case.
5062 In gst_vaapidecode_handle_frame, when there is a decode error
5063 there is a code path the returns an uninitialized value.
5064 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
5066 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5068 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5069 libs: display: lock at extracting available image formates
5070 When running several vaapi elements at the concurrently, at
5071 initialization, there is a race condition when extractin the avaible
5072 formats for images and subpictures.
5073 This patch add a lock when the those arrays are filled.
5074 https://bugzilla.gnome.org/show_bug.cgi?id=797039
5076 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
5079 meson: Sync libversion and osxversion code from other repos
5080 gstreamer-vaapi does not build any libraries, only plugins, so this is
5081 not used, but sync it just in case someone does add it in the future.
5083 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5085 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5086 libs: encoder: h265: trivial documentation fix
5088 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
5090 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5091 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5092 libs: encoder: h265: add low delay B frame support.
5093 Low delay B frame provide the function of transforming
5094 P frame into low delay B frame which frame type is B, but
5095 only reference predictive frames. This can be used when P
5096 frame unsupported. Especially for P and B both unsupported,
5097 in this case, I and low delay B frame can be encoded in a
5099 https://bugzilla.gnome.org/show_bug.cgi?id=796984
5101 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5103 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5104 libs: decoder: h264: Avoid using picture after it has been free
5105 In some cases, the found_picture ended up being evicted and freed, which
5106 would lead to a use after free when accessing picture->base.poc. In this
5107 fix, we take a ref on the picture before calling dpb_evict.
5108 https://bugzilla.gnome.org/show_bug.cgi?id=787124
5110 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5112 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5113 h264decoder: Fail decoding slice with missing inter-view reference
5114 Similarly to previous patch, we have no error concealment. As a side
5115 effect, it's better to skip slices with missing references then passing
5116 NULL pointers to the accelerator. Passing NULL pointer would lead to
5117 major visual artifact, a behaviour that is likely undefined.
5118 https://bugzilla.gnome.org/show_bug.cgi?id=787124
5120 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
5122 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5123 libs: decoder: h264: reset context when the number of view is increased
5124 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
5125 That's why it resets context without this patch.
5126 But for some media it doesn't increase dpb size. Even in this case we
5127 should reset context to deal with MVC decoding.
5128 Otherwise, it leads to assert.
5129 https://bugzilla.gnome.org/show_bug.cgi?id=787124
5131 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5133 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5134 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5135 * gst/vaapi/gstvaapidecode.c:
5136 vaapidecode: Skip unparsable units from adapter
5137 If the unit could not be parsed, just skip this nal and keep parsing
5138 what is left in the adapter. We need to flush the broken unit in the
5139 decoder specific parser because the generic code does not know about
5140 units boundary. This increases error resilliance.
5141 Before this, the broken unit would stay in the adapter and EOS would be
5142 returned. Which stopped the streaming. Just removing the EOS would have
5143 lead to the adapter size growing indefinitely.
5144 https://bugzilla.gnome.org/show_bug.cgi?id=796863
5146 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5148 * gst/vaapi/gstvaapidecode.c:
5149 vaapidecoder: Don't error out on decode errors
5150 This is problematic on live pipeline where loosing network can
5151 cause an important amount of errors.
5152 https://bugzilla.gnome.org/show_bug.cgi?id=796832
5154 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5156 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5157 h265decoder: Don't scan empty buffer
5158 Same as what we did for H264 decoder, this is to avoid an assertion
5160 https://bugzilla.gnome.org/show_bug.cgi?id=796832
5162 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5164 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5165 libs: h264: renable the vaapi category for logging
5166 h264 log messages were logged in default category because a regression
5167 in code. This patch renable the usage of vaapi logging category.
5168 This regression was introduced in commit 7c365bdd.
5170 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5172 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5173 h264decoder: Fail decoding slice if modification process failed
5174 This patch chains up failure to executing the modification process. The
5175 end result is that we now fail decoding the slice if this process fails.
5176 This avoid sending a corrupted state to the accelerator. In some special
5177 cases, this could lead to unrecoverable errors.
5178 https://bugzilla.gnome.org/show_bug.cgi?id=796832
5180 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5182 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5183 h264decoder: Don't scan empty buffer
5184 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
5185 try and scan in that case. This fixes assertion that would some times
5186 happen when the stream is corrupted.
5187 https://bugzilla.gnome.org/show_bug.cgi?id=796832
5189 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
5191 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
5192 libs: encoder: jpeg: set component id and Tqi
5193 This change is due a problem encoding JPEGs with Intel's
5194 media-driver: green/black image when playback jpeg
5195 This patch sets component identifier and quantization table
5196 destination selector in frame header to support packing headers
5197 by Intel's media-driver that does not accept packed header
5199 https://bugzilla.gnome.org/show_bug.cgi?id=796705
5201 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5203 * gst/vaapi/gstvaapipluginutil.c:
5204 pluginutil: downgrade unsupported driver logging
5205 On systems with an Nvidia card, this error is output each time
5206 the registry is rebuilt, which happens pretty often when
5207 using gst-build as a development environment.
5208 https://bugzilla.gnome.org/show_bug.cgi?id=796663
5210 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
5212 * gst/vaapi/gstvaapivideobufferpool.c:
5213 Update for g_type_class_add_private() deprecation in recent GLib
5215 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5217 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5218 h264dec: Remove false assumption about parity order
5219 The decoder was trying to detect earlier that a field was lost base
5220 on guessing the parity order. This breaks in streams were the parity
5222 This patch reverts the field order prediction code added by commit
5224 https://bugzilla.gnome.org/show_bug.cgi?id=796169
5226 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5228 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5229 h264dec: Properly set sentinel in ref frame list
5230 This ensure that we always have sentinels set in the reference
5231 pictures arrays. The code wasn't unsafe, this simply improve the
5232 tracing, so instead of printing 32 lines of zeros, va tracer
5233 prints proper empty lists.
5234 https://bugzilla.gnome.org/show_bug.cgi?id=796169
5236 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5238 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5239 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5240 * gst-libs/gst/vaapi/gstvaapidisplay.h:
5241 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5242 * gst-libs/gst/vaapi/gstvaapifilter.c:
5243 * gst-libs/gst/vaapi/gstvaapiobject.c:
5244 * gst-libs/gst/vaapi/gstvaapivideopool.c:
5245 * gst/vaapi/gstvaapipluginbase.c:
5246 * gst/vaapi/gstvaapivideometa.c:
5247 * tests/test-decode.c:
5248 libs: display: remove gst_vaapi_display_ref()
5249 Replace it with gst_object_ref()
5250 https://bugzilla.gnome.org/show_bug.cgi?id=796470
5252 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5254 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5255 * gst-libs/gst/vaapi/gstvaapidisplay.h:
5256 * gst/vaapi/gstvaapi.c:
5257 * gst/vaapi/gstvaapidecode.c:
5258 * gst/vaapi/gstvaapiencode.c:
5259 * gst/vaapi/gstvaapipluginbase.c:
5260 * gst/vaapi/gstvaapipluginutil.c:
5262 * tests/simple-encoder.c:
5263 * tests/test-decode.c:
5264 * tests/test-display.c:
5265 * tests/test-fei-enc-in.c:
5266 * tests/test-filter.c:
5267 * tests/test-subpicture.c:
5268 * tests/test-surfaces.c:
5269 * tests/test-textures.c:
5270 * tests/test-windows.c:
5271 libs: display: remove gst_vaapi_display_unref()
5272 Use gst_object_unref() instead.
5273 https://bugzilla.gnome.org/show_bug.cgi?id=796470
5275 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5277 * gst/vaapi/gstvaapivideobufferpool.c:
5278 vaapibufferpool: declare parameter display as object
5279 We have neglected to update this code since GstVaapiDisplay turned
5280 into a GstObject descendant.
5281 https://bugzilla.gnome.org/show_bug.cgi?id=796470
5283 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
5285 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5286 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
5287 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5288 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
5289 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
5290 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5291 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
5292 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
5293 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
5294 But still something breaking GObject code convention remains, which is
5295 calling gst_vaapi_display_new() in each decendants.
5296 This patch replaces it with gst_vaapi_display_config(), defined in private
5298 https://bugzilla.gnome.org/show_bug.cgi?id=796470
5300 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5302 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5303 libs: display: redefine gst_vaapi_display_create()
5304 The function name was gst_vaapi_display_create_unlocked(), nonetheless
5305 it wasn't called unlocked. In order to keep the semantics this patch
5306 renames the gst_vaapi_display_create_unlocked() as
5307 gst_vaapi_display_create(), removing the previous function
5308 gst_vaapi_display_create().
5309 https://bugzilla.gnome.org/show_bug.cgi?id=796470
5311 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5314 Revert "build: meson: libva gst-uninstall friendly"
5315 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
5317 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5319 * gst/vaapi/gstvaapipluginutil.c:
5320 plugins: fix compilation
5321 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
5323 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5326 build: meson: libva gst-uninstall friendly
5327 Make gstreamer-vaapi to use libva uninstalled.
5329 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5331 * gst/vaapi/gstvaapipluginutil.c:
5332 plugins: refactor gst_vaapi_create_display_from_gl_context()
5333 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
5334 This path refactors it, in order to make the code readable and
5336 https://bugzilla.gnome.org/show_bug.cgi?id=796564
5338 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5340 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5341 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5342 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
5343 libs: display: resurrect parent private member
5344 This is, practically, a revert of commit dcf135e2.
5345 The parent logic is useful for the EGL display, which is a decorator
5346 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
5347 calling vaInitialize() and vaTerminate() twice.
5348 https://bugzilla.gnome.org/show_bug.cgi?id=795391
5350 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5352 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5353 libs: display: egl: initialize params structure
5354 Statically initialise the internal params structure.
5355 https://bugzilla.gnome.org/show_bug.cgi?id=795391
5357 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5359 * gst/vaapi/gstvaapipluginutil.c:
5360 plugins: handle EGL when creating VAAPI display from gl
5361 If GstGL reports a EGL platform force to create a EGL display using
5362 the native EGL display.
5363 https://bugzilla.gnome.org/show_bug.cgi?id=795391
5365 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
5367 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5368 * gst/vaapi/gstvaapipluginutil.c:
5369 display: egl: create VaapiDisplayEGL with native EGL display
5370 gst_vaapi_display_egl_new_with_native_display() has been broken since
5372 Currently it's needed to call this API to create a display providing
5373 the EGL display, so it could avoid duplicated calls to the native
5374 display (eg. eglTerminate).
5375 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
5376 https://bugzilla.gnome.org/show_bug.cgi?id=795391
5378 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
5380 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
5381 libs: decoder: release VA buffers after vaEndPicture
5382 This change is due a problem decoding JPEGs with Intel's media-driver:
5383 no image was generated.
5384 This patch relases the VA buffers after vaEndPicture() is called,
5385 and not before (after vaRenderPicture()).
5386 https://bugzilla.gnome.org/show_bug.cgi?id=796505
5388 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
5390 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
5391 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5392 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5393 meson: fix build when xrender or xrandr are not available
5394 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
5396 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
5398 * gst/vaapi/gstvaapipostproc.c:
5399 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
5400 Otherwise a reference to a DMABuf input buffer is kept until the output
5402 https://bugzilla.gnome.org/show_bug.cgi?id=796399
5404 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
5406 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5407 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
5408 libs: display: remove unnecessary legacy code since gobjectification
5409 https://bugzilla.gnome.org/show_bug.cgi?id=796470
5411 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
5413 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5414 * gst-libs/gst/vaapi/gstvaapidisplay.h:
5415 libs: display: remove unused code
5416 https://bugzilla.gnome.org/show_bug.cgi?id=796470
5418 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5420 * gst/vaapi/gstvaapiencode_h264.c:
5421 vaapiencode: h264: log output caps
5423 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5425 * gst/vaapi/gstvaapiencode_h264.c:
5426 vaapiencode: h264: find profile in available and allowed caps
5427 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
5428 find best profile in those available") changed the code to pick a profile
5429 that is actually supported by the hardware. Unfortunately it dropped the
5430 downstream constraints. This can cause negotiation failures under certain
5432 The fix is split in two cases:
5433 1\ the available VA-API caps doesn't intersect with pipeline's allowed
5435 * The best allowed profile (pipeline's caps) is set as the encoding
5436 target profile (it will be adjusted later by the available profiles
5438 2\ the available VA-API caps does intersect with pipeline's allowed
5440 * The intersected caps are fixed, and its profile is set as the
5441 encoding target profile. In this case the is not the best profile,
5442 but the minimal one (if VA-API reports the profiles in order).
5443 Setting the minimal profile of the intersected caps is better for
5445 This patch fixes other tests related with caps negotiation, for
5446 example, it handles baseline profile, even when VA only supports
5447 constrained-baseline.
5448 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
5449 https://bugzilla.gnome.org/show_bug.cgi?id=794306
5451 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
5453 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5454 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
5455 The specification says,
5456 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
5457 This patch changes the upper limit from 6 to 12.
5458 https://bugzilla.gnome.org/show_bug.cgi?id=796179
5460 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5462 * gst/vaapi/gstvaapipluginutil.c:
5463 plugins: guard GstGL code
5465 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5467 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5468 libs: decoder: h264: use g_clear_pointer()
5470 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5472 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
5473 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
5474 libs: decoder: mpeg4, vc1: remove unused header
5476 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5478 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
5479 libs: decoder: remove unused forward declaration
5481 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5484 fix configure.ac regression
5485 Fixes regression introduced by 77527d67abe
5486 https://bugzilla.gnome.org/show_bug.cgi?id=795885
5488 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5490 * gst-libs/gst/Makefile.am:
5491 * gst-libs/gst/base/Makefile.am:
5492 * gst-libs/gst/base/gstbitwriter.c:
5493 * gst-libs/gst/base/gstbitwriter.h:
5494 * gst-libs/gst/base/meson.build:
5495 * gst-libs/gst/meson.build:
5496 * gst-libs/gst/vaapi/Makefile.am:
5497 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5498 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5499 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5500 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
5501 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5502 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5503 * gst-libs/gst/vaapi/meson.build:
5504 libs: remove gstbitwriter
5505 Since it is deployed in gstreamer-core, there is no need to use
5507 https://bugzilla.gnome.org/show_bug.cgi?id=795848
5509 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
5511 * gst/vaapi/gstvaapidecode.c:
5512 vaapih264dec: add constrained and progressive profiles
5513 Those profiles have been added in the version 2012-01
5514 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
5515 Both are supported by VAProfileH264High
5516 https://bugzilla.gnome.org/show_bug.cgi?id=795624
5518 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5520 * gst/vaapi/gstvaapipluginbase.c:
5521 * gst/vaapi/gstvaapipluginutil.c:
5522 * gst/vaapi/gstvaapivideocontext.c:
5523 * gst/vaapi/gstvaapivideocontext.h:
5524 plugin: remove custom GstGL context handling
5525 Instead of using our own context handling for looking for GstGL
5526 parameters (display, context and other context), this patch changes
5527 the logic to use the utility function offered by GstGL.
5528 https://bugzilla.gnome.org/show_bug.cgi?id=793643
5530 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5532 * gst/vaapi/gstvaapipluginbase.c:
5533 plugins: GstGL API must use the member variables
5534 This commit basically is a revert of commits 8092537 and fc1c415
5535 https://bugzilla.gnome.org/show_bug.cgi?id=793643
5537 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
5539 * gst/vaapi/gstvaapipluginbase.c:
5540 plugins: pass members as parameters of gst_gl_ensure_element_data()
5541 The parameters of gst_gl_ensure_element_data() have to be not
5542 local variable since they are going to be used to see if they're
5543 set in gst_element_set_context() inside the API.
5544 This is basically a revert of commit 3d56306c
5545 https://bugzilla.gnome.org/show_bug.cgi?id=793643
5547 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5550 meson: fix USE_GLES_VERSION_MASK
5551 1. The macro in the code is USE_GLES_VERSION_MASK
5552 2. glesv3 is provided by glesv2 pkg-config, then it's required to
5554 https://bugzilla.gnome.org/show_bug.cgi?id=795391
5556 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
5558 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
5559 libs: egl: utils: mark context as wrapped when it is
5560 The returning egl context may be null, so we should check the
5562 https://bugzilla.gnome.org/show_bug.cgi?id=795391
5564 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5566 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
5567 libs: egl: utils: fix usage of GstGL macros
5568 Include gl.h for the required GstGL symbols.
5569 https://bugzilla.gnome.org/show_bug.cgi?id=795391
5571 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
5574 meson: use -Wl,-Bsymbolic-functions where supported
5575 Just like the autotools build.
5577 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5580 meson: use get_pkgconfig_variable()
5581 Use get_pkgconfig_variable() method, of dependency class, rather
5582 than using run_command().
5584 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
5586 * gst-libs/gst/base/meson.build:
5587 * gst-libs/gst/vaapi/meson.build:
5589 meson: fix miscellaneous meson warnings
5590 WARNING: Passed invalid keyword argument "rqeuired".
5591 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
5592 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
5593 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
5594 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
5596 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
5598 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
5599 display: drm: Allow finding DRM paths out of the PCI subsystem
5600 This removes hard-coded checks on the parent subsystem of potential DRM
5601 devices. These checks were set to exlude devices that do not originate
5602 from the PCI bus, which is only a valid approach on x86 devices.
5603 Other devices may have a DRM device originating from the platform
5604 subsystem, so the checks that were previously restricted to PCI are
5605 extended to cover platform devices as well.
5606 https://bugzilla.gnome.org/show_bug.cgi?id=794840
5607 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
5609 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
5611 * gst/vaapi/gstvaapivideocontext.c:
5612 videocontext: support wl-display in "gst.vaapi.app.Display"
5613 Through "gst.vaapi.app.Display" context, users can set their own
5614 VADisplay and native display of their backend.
5615 So far we support only X11 display, from now we also support Wayland
5618 - wl-display : pointer of struct wl_display .
5619 https://bugzilla.gnome.org/show_bug.cgi?id=705821
5621 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
5623 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5624 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
5625 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
5626 Implements new API function so that users could create GstVaapiDisplay
5627 with their own VADisplay within a native display as backend.
5628 https://bugzilla.gnome.org/show_bug.cgi?id=705821
5630 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
5632 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5633 wayland: don't poll if there are no pending frames
5634 Otherwise the following poll may not return for an arbitrary amount of
5635 time. This can happen if another wayland event queue has flushed and read
5637 https://bugzilla.gnome.org/show_bug.cgi?id=795224
5639 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
5641 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5642 libs: encoder: h265: 16 bit rounding of picture width and height
5643 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
5645 In addition, codedbuf_size must be calculated according to this change.
5646 https://bugzilla.gnome.org/show_bug.cgi?id=753229
5648 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
5651 Automatic update of common submodule
5652 From 3fa2c9e to ed78bee
5654 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5656 * gst/vaapi/gstvaapiencode_h264.c:
5657 vaapiencode: h264: find best profile in those available
5658 Instead to look for the best profile in the allowed profiles by
5659 downstream, the encoder should look for the base profile in the
5660 available profile in VA-API.
5661 https://bugzilla.gnome.org/show_bug.cgi?id=794306
5663 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
5668 * docs/plugins/inspect/plugin-vaapi.xml:
5672 === release 1.14.0 ===
5674 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
5679 * gstreamer-vaapi.doap:
5683 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
5685 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5686 libs: decoder: h264: ensure num_ref_frames is greater than 0
5687 Even if it is the h264parse fault or bad video file, vaapih264dec
5688 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
5689 as the driver might use it.
5690 Also see "info.ref_frames = dpb_size;" in
5691 gstvaapidecoder_h264.c::ensure_context
5692 https://bugzilla.gnome.org/show_bug.cgi?id=793836
5694 === release 1.13.91 ===
5696 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
5701 * gstreamer-vaapi.doap:
5705 === release 1.13.90 ===
5707 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
5712 * gstreamer-vaapi.doap:
5716 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5718 * gst/vaapi/gstvaapipostproc.c:
5719 vaapipostproc: change how the metadata is copied
5720 Instead of copying the metada in prepare_output_buffer() vmethod,
5721 it is done in append_output_buffer_metadata() thus deinterlaced
5722 buffers could also have the proper metas.
5723 GstVideoCropMeta now it is copied internally and it is decided via
5724 transform_meta() vmethod.
5725 A new internal method, copy_metadata() was added to handle VPP
5726 transformation where non-GstVideoVaapiMeta metas were lost.
5728 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5730 * gst/vaapi/gstvaapipostproc.c:
5731 postproc: Copy meta data from input to output
5732 This will ensure that meta data without memory tags will be copied. This
5733 was noticed when testing ROI.
5734 https://bugzilla.gnome.org/show_bug.cgi?id=768248
5736 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5738 * tests/elements/test-roi.c:
5739 tests: element: rewrite ROI test
5740 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
5741 than injecting GstEvents. These meta are added as a pad probe in
5744 * Use of navigation messages to control de test
5745 * Use signal watch for processing messages
5746 * Change to H265 rather than H264 since current intel-vaapi-driver
5747 only supports ROI on kabylake.
5748 TODO: add a parameter to change the encoder/decoder to test.
5749 https://bugzilla.gnome.org/show_bug.cgi?id=768248
5751 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5753 * gst-libs/gst/vaapi/gstvaapicontext.c:
5754 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5755 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5756 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5757 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5758 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5759 libs: encoder: reimplement ROI using meta
5760 Check input buffers for ROI metas and pass them to VA. Also added a
5761 new "default-roi-delta-qp" property in order to tell the encoder what
5762 delta QP should be applied to ROI by default.
5763 Enabled it for H264 and H265 encoders.
5764 https://bugzilla.gnome.org/show_bug.cgi?id=768248
5766 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5768 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5769 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5770 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5771 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
5772 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
5773 https://bugzilla.gnome.org/show_bug.cgi?id=768248
5775 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5777 * tests/simple-encoder.c:
5778 Revert "tests: simple-encoder: add an option to set ROI"
5779 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
5780 https://bugzilla.gnome.org/show_bug.cgi?id=768248
5782 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5784 * gst/vaapi/gstvaapiencode.c:
5785 * gst/vaapi/gstvaapiencode_h264.c:
5786 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
5787 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
5788 https://bugzilla.gnome.org/show_bug.cgi?id=768248
5790 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5792 * gst/vaapi/gstvaapipluginbase.c:
5793 plugins: copy input buffer metas
5794 When importing buffers to a VA-base buffer, it is required to copy
5795 the metas in the original buffer, otherwise information will be
5796 lost, such as GstVideoRegionOfInterestMeta.
5797 https://bugzilla.gnome.org/show_bug.cgi?id=768248
5799 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5801 * gst-libs/gst/vaapi/gstvaapisurface.c:
5802 libs: surface: cast to uintptr_t pointer
5803 According to Debian package auto-building, uintptr_t is not an
5804 unsigned long in i386 arch, raising an "incompatible pointer type"
5806 This patch adds a casting for compiler's satisfaction in i386.
5808 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
5810 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5811 libs: encoder: add zero as valid value for periodic keyframe.
5812 Enabled zero as valid value for keyframe-period property.
5813 https://bugzilla.gnome.org/show_bug.cgi?id=793829
5815 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5817 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5818 libs: encoder: code-style fix
5820 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5822 * gst/vaapi/gstvaapidecode.c:
5823 vaapidecode: generate system allocated buffers
5824 Generate system allocated output buffers when downstream doesn't
5825 support GstVideoMeta.
5826 The VA buffer content is copied to the new output buffer, and it
5827 replaces the VA buffer.
5828 https://bugzilla.gnome.org/show_bug.cgi?id=785054
5830 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5832 * gst/vaapi/gstvaapipostproc.c:
5833 vaapipostproc: handle system allocated buffers when required
5834 When downstream can't handle GstVideoMeta it is required to send
5835 system allocated buffers.
5836 The system allocated buffers are produced in prepare_output_buffer()
5837 vmethod if downstream can't handl GstVideoMeta.
5838 At transform() vmethod if the buffer is a system allocated buffer,
5839 a VA buffer is instanciated and replaces the out buffer. Later
5840 the VA buffer is copied to the system allocate buffer and it
5841 replaces the output buffer.
5842 https://bugzilla.gnome.org/show_bug.cgi?id=785054
5844 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5846 * gst/vaapi/gstvaapipluginbase.c:
5847 * gst/vaapi/gstvaapipluginbase.h:
5848 plugins: add gst_vaapi_copy_va_buffer()
5849 This helper function aims to copy buffers with VA memory to dumb
5850 buffers, when GstVideoMeta is not available dowstream.
5851 https://bugzilla.gnome.org/show_bug.cgi?id=785054
5853 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5855 * gst/vaapi/gstvaapipluginbase.c:
5856 * gst/vaapi/gstvaapipluginbase.h:
5857 plugins: add COPY_OUTPUT_FRAME flag
5858 This patch add the member copy_output_frame and set it TRUE when
5859 when downstream didn't request GstVideoMeta API, the caps are raw
5860 and the internal allocator is the VA-API one.
5861 https://bugzilla.gnome.org/show_bug.cgi?id=785054
5863 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5865 * gst/vaapi/gstvaapipluginbase.c:
5866 * gst/vaapi/gstvaapipluginbase.h:
5867 plugins: store the first downstream allocator if available
5868 The allocator will be required if we need to allocate a buffer
5869 to store the frame with the expected strides.
5870 https://bugzilla.gnome.org/show_bug.cgi?id=785054
5872 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5874 * gst/vaapi/gstvaapivideobufferpool.c:
5875 * gst/vaapi/gstvaapivideobufferpool.h:
5876 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
5877 This function will inform the element if it shall copy the generated
5878 buffer by the pool to a system allocated buffer before pushing it
5880 https://bugzilla.gnome.org/show_bug.cgi?id=785054
5882 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5884 * gst/vaapi/gstvaapivideobufferpool.c:
5885 vaapibufferpool: don't change config when forcing video meta
5886 VA-API based buffer might need a video meta because of different
5887 strides. But when donwstream doesn't support video meta we need to
5888 force the usage of video meta.
5889 Before we changed the buffer pool configuration, but actually this
5890 is a hack and we cannot rely on that for downstream.
5891 This patch add a check fo raw video caps and allocator is VA-API,
5892 then the option is enabled without changing the pool configuration.
5893 In this case the element is responsible to copy the frame to a
5894 simple buffer with the expected strides.
5895 https://bugzilla.gnome.org/show_bug.cgi?id=785054
5897 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5899 * gst/vaapi/gstvaapipostproc.c:
5900 vaapipostproc: set discont flag at vpp deinterlacing
5901 When deinterlacing with VPP the discont flag was not forwarded to
5902 the new created buffer. This patch sets the discont flag if input
5905 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5907 * gst/vaapi/gstvaapivideobufferpool.h:
5908 vaapibufferpool: remove wrong gcc annotation
5910 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
5912 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5913 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5914 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5915 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5916 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5917 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5918 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
5919 libs: encoder: h264,h265: extend max periodic keyframe.
5920 Increased max values of periodic key frame for h26x codecs.
5921 This allow more fine tunning of encoder that in certian scenario
5922 want higher periodic key frame.
5923 For example: it doesn't want a key frame each 10 seconds but
5925 https://bugzilla.gnome.org/show_bug.cgi?id=786320
5927 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
5933 === release 1.13.1 ===
5935 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
5940 * gstreamer-vaapi.doap:
5944 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
5946 * gst/vaapi/Makefile.am:
5947 vaapi: dist new header
5949 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5951 * gst/vaapi/gstvaapi.c:
5952 vaapi: register vaapisink as marginal on wayland
5953 vaapsink, when used with the Intel VA-API driver, tries to display
5954 surfaces with format NV12, which are handled correctly by
5955 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
5956 pipelines on mutter.
5957 This shall be solved either by COGL or by making the driver to paint
5958 RGB surfaces. In the meanwhile, let's just demote vaapisink as
5959 marginal when the Wayland environment is detected, no matter if it is
5961 https://bugzilla.gnome.org/show_bug.cgi?id=775698
5963 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5965 * gst/vaapi/gstvaapipluginutil.c:
5966 plugins: update mesa's vendor string in whitelist
5967 Mesa has updated its VA-API Gallium driver vendor string:
5968 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
5969 This patch tries to cover both, the old and the new one.
5970 https://bugzilla.gnome.org/show_bug.cgi?id=793386
5972 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
5975 meson: make version numbers ints and fix int/string comparison
5976 WARNING: Trying to compare values of different types (str, int).
5977 The result of this is undefined and will become a hard error
5978 in a future Meson release.
5980 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5982 * gst/vaapi/gstvaapipluginbase.c:
5983 plugins: handle vaapi allocator in allocation query
5984 In propose_allocation() if the numer of allocation params is zero, the
5985 system's allocator is added first, and lastly the native VA-API
5987 In decide_allocation(), the allocations params in query are travered,
5988 looking for a native VA-API allocator. If it is found, it is reused as
5989 src pad allocator. Otherwise, a new allocator is instantiated and
5990 appended in the query.
5991 https://bugzilla.gnome.org/show_bug.cgi?id=789476
5993 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5995 * gst/vaapi/gstvaapivideomemory.h:
5996 vaapivideomemory: remove unused macro
5997 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
5998 was never used, since the native VA-API allocator name has been
5999 GST_VAAPI_VIDEO_MEMORY_NAME.
6000 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
6001 https://bugzilla.gnome.org/show_bug.cgi?id=789476
6003 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
6005 * gst/vaapi/gstvaapisink.c:
6006 vaapisink: don't mask button events for foreign windows
6007 Don't subscribe to button press events when using a foreing window,
6008 because the user created window would trap those events, preveting the
6010 https://bugzilla.gnome.org/show_bug.cgi?id=791615
6012 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
6015 autotools: use -fno-strict-aliasing where supported
6016 https://bugzilla.gnome.org/show_bug.cgi?id=769183
6018 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
6021 meson: use -fno-strict-aliasing where supported
6022 https://bugzilla.gnome.org/show_bug.cgi?id=769183
6024 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
6026 * gst/vaapi/gstvaapi.c:
6027 vaapi: add NULL-sentinel to kernel_names
6028 The array needs to be NULL-terminated according to the
6029 gst_plugin_add_dependency() documentation.
6031 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6033 * gst/vaapi/gstvaapipostprocutil.c:
6034 vaapipostproc: remove spurious code
6035 This assignation is dead code, since gst_video_info_from_caps() set
6037 https://bugzilla.gnome.org/show_bug.cgi?id=790149
6039 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6041 * gst/vaapi/gstvaapipostprocutil.c:
6042 vaapipostproc: if no p-a-r in out caps define a range
6043 Instead of copying the pixel-aspect-ratio from the sink caps, define
6044 an open range for the src caps pixel-aspect-ratio. Later it will be
6046 https://bugzilla.gnome.org/show_bug.cgi?id=790149
6048 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6050 * gst/vaapi/gstvaapisink.c:
6051 vaapisink: check for display's color-balance properties
6052 Check for display's color-balance properties, available by the VA-API
6053 driver, before setting them.
6054 Also logs an info message of those unavailable properties.
6055 https://bugzilla.gnome.org/show_bug.cgi?id=792638
6057 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6059 * gst/vaapi/gstvaapipluginbase.c:
6060 plugins: re-using buffer pool breaks renegotiation
6061 at propose_allocation() we should not reuse the proposed buffer,
6062 because it could break renegotiation.
6063 https://bugzilla.gnome.org/show_bug.cgi?id=792620
6065 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6067 * gst/vaapi/gstvaapipluginbase.c:
6068 plugins: use g_clear_object() to unref sinkpad_buffer_pool
6069 https://bugzilla.gnome.org/show_bug.cgi?id=792620
6071 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6073 * gst-libs/gst/vaapi/meson.build:
6074 build: meson: add missing GstGL dependency
6076 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6078 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
6079 libs: utils: egl: add missing guards for GstGL
6081 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6083 * gst/vaapi/gstvaapipluginbase.c:
6084 plugins: remove dmabuf-import hack
6085 Remove the hack to check if an upstream element has enabled the
6086 property io-mode enabled as dmabuf-import.
6087 https://bugzilla.gnome.org/show_bug.cgi?id=792034
6089 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6091 * gst-libs/gst/vaapi/Makefile.am:
6092 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6093 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
6094 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
6095 libs: egl: utils: use eglGetPlatformDisplay()
6096 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
6097 eglGetDisplay() is rather fragile, and it is recommended to use
6098 eglGetPlatformDisplay() when possible.
6099 In order to do that, this patch uses the helper in GstGL. If
6100 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
6102 https://bugzilla.gnome.org/show_bug.cgi?id=790493
6104 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
6106 * gst/vaapi/gstvaapipostproc.c:
6107 vaapipostproc: lock ensure_filter with postproc_lock
6108 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
6109 and allowed_sinkpad_caps. This can race with copying these caps in
6110 gst_vaapipostproc_transform_caps and lead to segfaults.
6111 The gst_vaapipostproc_transform_caps function already locks
6112 postproc_lock before copying the caps. Make sure that calls to
6113 gst_vaapipostproc_ensure_filter also acquire this lock.
6114 https://bugzilla.gnome.org/show_bug.cgi?id=791404
6116 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6118 * tests/test-filter.c:
6119 tests: test-filter: fix dereference before null check
6120 Null-checking op_info suggests that it may be null, but it has already
6121 been dereferenced on all paths leading to the check.
6122 There may be a null pointer dereference, or else the comparison
6123 against null is unnecessary.
6125 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6127 * tests/y4mreader.c:
6128 tests: y4mreader: fix string state checkup
6129 str cannot be null in that moment, but it may be the end of string.
6131 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6133 * tests/y4mreader.c:
6134 tests: y4mreader: use int for fgetc
6135 Assigning the return value of fgetc to char truncates its value.
6136 It will not be possible to distinguish between EOF and a valid
6139 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6141 * tests/y4mreader.c:
6142 tests: y4mreader: fix incompatible cast
6143 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
6144 they are dereferenced as a wider long (64 bits, signed). This may lead
6145 to memory corruption.
6147 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
6150 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
6152 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
6155 Automatic update of common submodule
6156 From e8c7a71 to 3fa2c9e
6158 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6160 * gst/vaapi/gstvaapivideocontext.c:
6161 videoconvert: gst_element_post_message() is transfer full on msg
6162 For this reson we need not to unref the message, even if it failed.
6164 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6166 * gst/vaapi/gstvaapivideocontext.c:
6167 Revert "vaapivideocontext: possible memleak when no bus attached"
6168 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
6170 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6172 * tests/elements/test-vaapicontext.c:
6173 test: vaapicontext: process have-context bus message
6175 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6177 * tests/elements/test-vaapicontext.c:
6178 test: vaapicontext: app context is not persistent
6180 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6182 * gst/vaapi/gstvaapipluginbase.c:
6183 * gst/vaapi/gstvaapivideocontext.c:
6184 * gst/vaapi/gstvaapivideocontext.h:
6185 vaapivideocontext: only vaapisink process app context
6186 gst.vaapi.app.Display context is made for applications that will
6187 provide the VA display and the native display to used by the
6188 pipeline, when are using vaapisink as overlay. There are no use
6189 case for encoders, decoders, neither for the postprocessor.
6190 In the case of the vaapisink, it shall query for gst.vaapi.Display
6191 upstream first, and then, if there is no reply,
6192 gst.vaapi.app.Display context will be posted in the bus for the
6193 application. If the application replies, a GstVaapiDisplay object
6194 is instantiated given the context info, otherwise a
6195 GstVaapiDisplay is created with the normal algorithm to guess the
6196 graphics platform. Either way, the instantiated GstVaapiDisplay
6197 is propagated among the pipeline and the have-message bus message.
6198 Also only vaapisink will process the gst.vaapi.app.Display, if
6199 and only if, it doesn't have a display already set. This is
6200 caused because if vaapisink is in a bin (playsink, for example)
6201 the need-context is posted twice, leading to an error state.
6202 https://bugzilla.gnome.org/show_bug.cgi?id=790999
6204 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6206 * gst/vaapi/gstvaapivideocontext.c:
6207 vaapivideocontext: log the name of GstVaapiDisplay
6208 https://bugzilla.gnome.org/show_bug.cgi?id=790999
6210 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6212 * gst/vaapi/gstvaapivideocontext.c:
6213 vaapivideocontext: possible memleak when no bus attached
6214 https://bugzilla.gnome.org/show_bug.cgi?id=790999
6216 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6218 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6219 libs: window: wayland: remove unused header include
6220 Remove wayland-client.h include since there is no exposed symbols from
6223 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6225 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6226 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6227 libs: encoder: h264,h265: guard rate control's macroblock
6228 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
6230 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
6233 Automatic update of common submodule
6234 From 3f4aa96 to e8c7a71
6236 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6238 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6239 libs: encoder: h264: Add Hierarchical-B encode
6240 Frames are encoded as different layers. Frame in a particular
6241 layer will use pictures in lower or same layer as references.
6242 Which means decoder can drop the frames in upper layer but still
6243 decode lower layer frames.
6244 B-frames, except the one in top most layer, are reference frames.
6245 All the base layer frames are I or P.
6246 eg: with 3 temporal layers
6250 T1, T2, T3: Temporal Layers
6253 T1: I0->P4 , P4->P8 etc..
6255 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
6256 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6257 https://bugzilla.gnome.org/show_bug.cgi?id=788918
6259 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6261 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6262 libs: encoder: h264: Add Hierarchical-P encode
6263 Frames are encoded as different layers. A frame in a particular
6264 layer will use pictures in lower or same layer as references.
6265 Which means decoder can drop the frames in upper layer but still
6266 decode lower layer frames.
6267 eg: with 3 temporal layers
6271 T1, T2, T3: Temporal Layers
6273 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
6274 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6275 https://bugzilla.gnome.org/show_bug.cgi?id=788918
6277 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6279 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6280 libs: encoder: h264: Fix frame_num generation
6281 The frame_num generation was not correctly implemented.
6282 According to h264 spec, frame_num should get incremented
6283 for each frame if previous frame is a referece frame.
6284 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
6285 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6286 https://bugzilla.gnome.org/show_bug.cgi?id=788918
6288 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6290 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6291 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6292 libs: encoder: h264: Add new property "prediction-type"
6293 Adds new property "prediction-type" to select different reference
6294 picture selection modes like hierarchical-p, hierarchical-b etc.
6295 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6296 https://bugzilla.gnome.org/show_bug.cgi?id=788918
6298 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
6300 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6301 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
6302 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
6303 Adds some basic building blocks to ease the implementation
6304 of hierarchical prediction modes.
6305 -- add an utility method to find temporal level of each frame
6306 -- define max_ref_frame count based on temporal level count
6307 -- add temporal_level_div[] for finding temporal level each frame
6309 -- find ip_period based on temporal level count
6310 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6311 https://bugzilla.gnome.org/show_bug.cgi?id=788918
6313 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
6315 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6316 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6317 libs: encoder: h264: Add property "temporal-levels"
6318 Adds new property "temporal-levels" to select the number of
6319 temporal levels to be included in the encoded stream.
6320 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6321 https://bugzilla.gnome.org/show_bug.cgi?id=788918
6323 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
6325 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
6326 libs: encoder: objects: Add a reference flag
6327 We can have p-frame as non-ref and also b-frame as ref
6328 which are not supported yet. Reference flag
6329 is the first machinery needed for more advanced
6330 reference picture selection modes.
6331 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6332 https://bugzilla.gnome.org/show_bug.cgi?id=788918
6334 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
6336 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6337 libs: surface: egl: add comment
6338 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
6339 where the creation of surfaces from GEM fd may fail.
6340 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6342 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6344 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6345 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
6346 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
6347 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
6348 Adds a new function that changes the internal EGL display to the
6349 current one (eglGetCurrentDisplay()) and sets the current context
6350 too (eglGetCurrentContext()).
6351 This new function is called by gst_vaapi_texture_egl_create() updating
6352 the GstVaapiDisplayEGL with the current EGL display.
6353 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6355 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6357 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
6358 libs: texture: egl: update EGL display and context
6359 It is required to use the context of the calling thread when wrapping
6360 a foreign texture. According the documentation of
6361 GstVideoGLTextureUploadMeta:
6362 "The caller of gst_video_gl_texture_upload_meta_upload() must
6363 have OpenGL set up and call this from a thread where it is valid
6364 to upload something to an OpenGL texture."
6365 This patch updates the EGL display and context in GstVaapiDisplay
6366 instance to the one used by te renderer that uploads the texture.
6367 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
6368 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6370 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6372 * gst/vaapi/gstvaapipluginbase.c:
6373 plugins: centralize assignation of GL objects
6374 Add plugin_set_gst_gl() where the GstGL objects are assigned.
6375 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6377 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6379 * gst/vaapi/gstvaapipluginbase.c:
6380 plugins: set GL objects if ensured
6381 Only set the GL display and GL other context if they are ensured.
6382 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6384 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6386 * gst/vaapi/gstvaapipluginbase.c:
6387 plugins: set GL objects if context is handled
6388 Only set the GL display and GL other context if they are extracted
6389 correctly from the gstreamer's context.
6390 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6392 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6394 * gst/vaapi/gstvaapipluginbase.c:
6395 plugins: fix memory leak when GL context is created
6396 When the GL display and context are created inside an VAAPI element
6397 the created GL context is leaked.
6398 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6400 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6402 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6403 libs: display: egl: free leaked memory
6404 The EGL VAAPI display forgot to release the egl display, context and
6405 proxied VAAPI display.
6406 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6408 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6410 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
6411 libs: texture: egl: code style
6412 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6414 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6416 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6417 libs: surface: egl: error message if no extension
6418 Instead of silently fail to export the image if there is not available
6419 the EGL_MESA_drm_image, log an error message. Also a code refactoring
6421 https://bugzilla.gnome.org/show_bug.cgi?id=773453
6423 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6425 * gst/vaapi/gstvaapipluginbase.c:
6426 plugins: direct rendering on memory:VASurface
6427 As buffers negotiated with memory:VASurface caps feature can also be
6428 mapped, they can also be configured to use VA derived images, in other
6429 words "direct rendering".
6430 Also, because of the changes in dmabuf allocator as default allocator,
6431 the code for configuring the direct rendering was not clear.
6432 This patch cleans up the code and enables direct rendering when the
6433 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
6434 even then the memory:VASurface cap feature is negotiated.
6435 https://bugzilla.gnome.org/show_bug.cgi?id=786054
6437 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6439 * gst/vaapi/gstvaapipluginbase.c:
6440 * gst/vaapi/gstvaapipluginutil.c:
6441 plugins: only dmabuf on srcpad if downstream
6442 Set if source pad can handle dmabuf only if the GstGL context comes
6444 It is possible to know that at two moments:
6445 1\ In the case of GstGLTextureUpload caps feature is negotiated and
6446 downstream pool reports back gst.gl.GstGLContext.
6447 2\ When GstGLContext is found as GstContext from dowstream.
6448 https://bugzilla.gnome.org/show_bug.cgi?id=788503
6450 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6452 * gst/vaapi/gstvaapivideocontext.c:
6453 vaapivideocontext: add inline documentation
6454 Document function gst_vaapi_find_gl_local_context().
6455 https://bugzilla.gnome.org/show_bug.cgi?id=788503
6457 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6459 * gst/vaapi/gstvaapipluginutil.c:
6460 * gst/vaapi/gstvaapivideocontext.c:
6461 * gst/vaapi/gstvaapivideocontext.h:
6462 vaapivideocontext: return the direction of gl context
6463 In function gst_vaapi_find_gl_context() add a direction parameter to
6464 return back the direction where the GstGL context was found.
6465 This is going to be useful when checking if downstream can import
6466 dmabuf-based buffers.
6467 https://bugzilla.gnome.org/show_bug.cgi?id=788503
6469 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6471 * gst/vaapi/gstvaapipluginbase.c:
6472 * gst/vaapi/gstvaapipluginbase.h:
6473 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
6474 This patch refactors the code by adding the function
6475 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
6476 GstGLContext can handle dmabuf-based buffers.
6477 The function is exposed publicly since it is intended to be used later
6478 at GstVaapiDisplay instantiation.
6479 https://bugzilla.gnome.org/show_bug.cgi?id=788503
6481 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
6483 * gst/vaapi/gstvaapiencode.c:
6484 vaapiencode: allow to set property on runtime
6485 Tis patch, allows some properties that we want to be set on
6486 runtime. (eg. bitrate)
6487 Note that all properties are under control by num_codedbuf_queued.
6488 https://bugzilla.gnome.org/show_bug.cgi?id=786321
6490 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
6492 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6493 libs: encoder: allow to set bitrate on runtime
6494 In case of streaming, controlling bitrate dynamically for encoder might be
6495 important to manage quality of the streaming.
6496 This patch is to support such a scenario.
6497 https://bugzilla.gnome.org/show_bug.cgi?id=786321
6499 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
6501 * gst/vaapi/gstvaapi.c:
6502 * gst/vaapi/gstvaapi.h:
6503 * gst/vaapi/gstvaapidecodebin.c:
6504 vaapidecodebin: Register element if no VPP support is available too
6505 VPP support is only needed for advanced deinterlacing, which is not
6506 enabled by default either. Error out if it is selected but VPP is not
6507 supported, and otherwise just work without VPP support.
6508 https://bugzilla.gnome.org/show_bug.cgi?id=788758
6510 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
6512 * gst/vaapi/gstvaapipluginutil.c:
6513 Avoid infinite loop when vaapi_create_display fails
6514 Which might be the case when using, for example, xvfb.
6516 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6518 * gst-libs/gst/vaapi/gstvaapiutils.c:
6519 libs: utils: log warn if display fail
6520 gstreamer-vaapi initializes the display by trial-and-error, thus
6521 logging an error message if the display initialisation fails the user
6522 may be weary of the error message in the screen, if using VA-API 1.0
6523 This commit set the VA error log handler to GStreamer warning level
6524 while calling vaInitialize() and set it to error after that.
6525 https://bugzilla.gnome.org/show_bug.cgi?id=783169
6527 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6529 * gst/vaapi/gstvaapipluginutil.c:
6530 plugins: try to create test display in order
6531 When creating the test display for querying capabilites, it try in
6532 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
6533 since they are either composited with X11 or Wayland.
6534 The reason for this is to reduce the posibility of failure that could
6535 blacklist the plugin.
6536 https://bugzilla.gnome.org/show_bug.cgi?id=782212
6538 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6540 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6541 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6542 libs: display: delay getting screen resolution
6543 Instead of extracting the screen resolution at GstVaapiDisplay
6544 creation, this patch delay it until the screen size is requested for
6546 https://bugzilla.gnome.org/show_bug.cgi?id=782212
6548 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6550 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6551 libs: display: egl: avoid two vaDisplay instantiates
6552 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
6553 or Wayland. Nonetheless it created another vaDisplay for it, instead
6554 of using the wrapped one.
6555 This patch enables the reuse of the wrapped vaDisplay avoiding
6557 https://bugzilla.gnome.org/show_bug.cgi?id=782212
6559 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6561 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6562 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6563 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6564 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6565 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6566 libs: display: remove display_type from display info
6567 Since it's no required to pass the display type in the display info,
6568 the structure member is removed.
6569 https://bugzilla.gnome.org/show_bug.cgi?id=782212
6571 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6573 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6574 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6575 libs: display: remove display_type member
6576 It is not used any more since GstVaapiDisplay was ported as a
6577 GstObject-based. This information is part of the class information.
6578 https://bugzilla.gnome.org/show_bug.cgi?id=782212
6580 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6582 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6583 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6584 libs: display: remove parent member
6585 Parent was a crumb left from display cache.
6586 https://bugzilla.gnome.org/show_bug.cgi?id=782212
6588 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
6590 * gst/vaapi/gstvaapi.c:
6591 vaapi: Also register vaapipostproc without VPP support
6592 It can still do simple deinterlacing then.
6594 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
6596 * gst/vaapi/gstvaapipostproc.c:
6597 vaapipostproc: Allow running without VPP support
6598 We returned FALSE from ::start() if VPP support is not available, but it
6599 is only really needed for complex filters and during transform we check
6600 for that. For simple deinterlacing it is not needed.
6602 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6604 * gst/vaapi/gstvaapipostproc.c:
6605 vaapipostproc: use scoped variable for return value
6606 Instead of reusing a parameter variable for the return value of
6607 gst_vaapipostproc_transform_caps(), this patch uses the function
6608 scoped pointer. Thus, the code is cleaner.
6609 https://bugzilla.gnome.org/show_bug.cgi?id=785706
6611 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6613 * gst/vaapi/gstvaapipostproc.c:
6614 vaapipostproc: removed unused parameter
6615 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
6616 helper function since the it is not used.
6617 https://bugzilla.gnome.org/show_bug.cgi?id=785706
6619 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6621 * gst/vaapi/gstvaapipostproc.c:
6622 vaapipostproc: use scoped variable for return value
6623 Instead of reusing a parameter variable for the return value of
6624 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
6625 pointer. Thus, the code is cleaner.
6626 https://bugzilla.gnome.org/show_bug.cgi?id=785706
6628 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6630 * gst/vaapi/gstvaapipluginutil.h:
6631 plugins: memory:DMABuf only handles planar formats
6632 When glimagesink negotiates the caps feature memory:DMABuf the
6633 exported dmabufs buffers with NV12 format are not well rendered, thus
6634 setting only planar.
6635 https://bugzilla.gnome.org/show_bug.cgi?id=788229
6637 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6639 * gst/vaapi/gstvaapiencode.c:
6640 vaapiencode: flush pending frames before set format
6641 Flush pending frames, if any, in the internal encorder, before setting
6642 the new negotiated format.
6643 https://bugzilla.gnome.org/show_bug.cgi?id=786173
6645 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6647 * gst/vaapi/gstvaapidecode.c:
6648 vaapidecode: drain pending frames before set format
6649 Drain pending frames, if any, in the internal decoder before setting
6650 the new negotiated format.
6651 https://bugzilla.gnome.org/show_bug.cgi?id=786173
6653 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6655 * tests/test-display.c:
6656 tests: display: use GObject getter
6657 Instead of using the gst_vaapi_display_get_property(), this patch
6658 replaces it with g_object_get_property() to dump the available VA
6660 https://bugzilla.gnome.org/show_bug.cgi?id=788058
6662 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6664 * gst/vaapi/gstvaapisink.c:
6665 vaapisink: use GObject setter and getter
6666 Instead of using gst_vaapi_display_set_property() or
6667 gst_vaapi_display_get_property(), this patch set replace it usage
6668 with g_object_set() or g_object_get().
6669 Also the internal helper cb_set_value() is removed since it is not
6671 https://bugzilla.gnome.org/show_bug.cgi?id=788058
6673 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6675 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6676 libs: display: initialize value if they are not yet
6677 This is a difference between the GObject API and the GstVaapi one: the
6678 GValue passed to get a property value, in GObject has to be
6679 initialized with g_value_init(), but in GstVaapi is has not.
6680 In order to overcome this mismatch, this patch call g_value_init()
6681 internally only in the passed one is not already initialized.
6682 https://bugzilla.gnome.org/show_bug.cgi?id=788058
6684 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6686 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6687 libs: display: optimize properties setters and getters
6688 Shuffled some code to avoid to find the properties descriptor in the
6689 array twice, adding the internal functions _set_property() and
6691 https://bugzilla.gnome.org/show_bug.cgi?id=788058
6693 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6695 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6696 libs: display: install properties in class
6697 Install the properties in the class as a normal GObject. Implement
6698 set_property() and get_property() vmethods.
6699 https://bugzilla.gnome.org/show_bug.cgi?id=788058
6701 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6703 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6704 libs: display: remove gst_vaapi_display_properties_init()
6705 Remove gst_vaapi_display_properties_init() since it can be unrolled in
6706 gst_vaapi_display_class_init()
6707 https://bugzilla.gnome.org/show_bug.cgi?id=788058
6709 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6711 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6712 libs: display: remove libgstvaapi_init_once()
6713 It is not required since it can be unrolled in
6714 gst_vaapi_display_class_init()
6715 https://bugzilla.gnome.org/show_bug.cgi?id=788058
6717 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6719 * tests/test-display.c:
6720 tests: test-display: remove display cache tests
6721 Since commit ec3e10f6, display cache was removed. This patch removes
6722 this leftovers in the display test.
6724 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
6726 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6727 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6728 libs: decoder: h264/h265: decode codec data only if opened
6729 Fixes regression introduced by commit 2eb2b26a.
6730 There is a use case when the decoder set the src caps and immediatly
6731 tries to process the media codec_data, this happens before decoder is
6732 even opened, thus priv->parser is not instantiated yet.
6733 https://bugzilla.gnome.org/show_bug.cgi?id=787818
6735 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6737 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6738 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6739 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6740 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6741 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
6742 libs: encoder: change mbbrc from uint to enum
6743 Instead of handling the macroblock bitrate control as a integer, this
6744 patch changes it as a enum, which is more self documented in the
6746 https://bugzilla.gnome.org/show_bug.cgi?id=787855
6748 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
6750 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6751 Fix a typo in the prop string for compliance-mode
6753 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6755 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6756 libs: encoder: don't unref properties
6757 This patch fixes a regression introduced in commit 148f867c, since the
6758 props variable is set to object's member variable
6759 encoder->properties. And it is set in the instance initialization,
6760 thus it will not be leaked.
6761 https://bugzilla.gnome.org/show_bug.cgi?id=787733
6763 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
6765 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6766 * gst/vaapi/gstvaapiencode.c:
6767 vaapiencode/libs: encoder: fix leaks of properties
6768 https://bugzilla.gnome.org/show_bug.cgi?id=786321
6770 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6772 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6773 libs: decoder: at update_caps() decode codec_data
6774 When updating the caps in decoder, if the caps has codec_data (avC
6775 format), it has to be parsed to update the state of the decoder.
6776 https://bugzilla.gnome.org/show_bug.cgi?id=786173
6778 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
6780 * gst-libs/gst/vaapi/gstvaapicontext.c:
6781 libs: context: fix wrong counter of the array of attributes
6782 The counter value passed to vaCreateConfig is always +1.
6783 This is a regression caused by commit e42ec3ad.
6784 The present patch fixes wrong counting of the array of attributes.
6785 https://bugzilla.gnome.org/show_bug.cgi?id=787613
6787 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
6789 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6790 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6791 libs: encoder: h265: support I/P/B QP setting seperatedly
6792 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
6794 and set slice_qp_delta for each frame according to the value provided.
6795 https://bugzilla.gnome.org/show_bug.cgi?id=785923
6797 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
6799 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6800 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6801 libs: encoder: h264: support I/P/B QP setting seperatedly
6802 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
6804 and set slice_qp_delta for each frame according to the value provided.
6805 In addition, remove the limitation of (<= 4) when setting
6807 https://bugzilla.gnome.org/show_bug.cgi?id=785923
6809 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
6811 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6812 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6813 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
6814 Creates new variable for QP for I frame and keep it at configuration and
6815 use this for pic_init_qp and slice_qp_delta setting.
6816 Since changing min qp doesn't make sense, keep min qp as is.
6817 https://bugzilla.gnome.org/show_bug.cgi?id=785923
6819 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
6821 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6822 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6823 libs: encoder: h265: Add mbbrc property
6824 This property supports Macroblock level Bitrate Control as the
6825 following (same as h264 encoder):
6829 https://bugzilla.gnome.org/show_bug.cgi?id=785917
6831 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
6833 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6834 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6835 libs: encoder: h264: Add mbbrc property
6836 This property supports Macroblock level Bitrate Control as the
6841 https://bugzilla.gnome.org/show_bug.cgi?id=785917
6843 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
6845 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6846 libs: encoder: h265: add multi reference support
6847 This is doing the same as h264 encoder as the following:
6848 Using num_ref_frames provided and the result of the Query
6849 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
6850 and perform encoding with multi reference frames as the following:
6851 1\ The num_ref_frames is being considered as the number of
6852 reference picture list0
6853 2\ Encoder adds 1 reference frame more to the reference picture list1
6854 internally if b-frame encoding.
6855 3\ If num_ref_frames is bigger than the number of refrence frames
6856 supported in the driver, it will be lowered.
6857 Also this patch includes:
6858 - Set num_negative_pics and num_positive_pics according to the number of
6860 - Set delta_poc according to the number of refs.
6861 - Increase max_dec_pic_buffering according to the number of refs
6862 - Change max_num_reorder_pics according to num of bframes
6863 https://bugzilla.gnome.org/show_bug.cgi?id=783804
6865 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
6867 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6868 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6869 libs: encoder: h265: add refs property
6870 Users can provide the number of reference frame by this property,
6871 which is exaclty same as h264.
6872 The value of the property will be considered as the number of
6873 reference picture list0 and will add 1 reference frame more to the
6874 reference picture list1 internally if b-frame encoding.
6875 If the value provided is bigger than the number of refrence frames
6876 supported in the driver, it will be lowered.
6877 The maximum value is aligned to the value of the driver supported now.
6878 https://bugzilla.gnome.org/show_bug.cgi?id=783804
6880 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
6882 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6883 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6884 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
6885 Follows the specification as below:
6886 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
6887 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
6888 element num_ref_idx_l0_active_minus1 is present for P and B slices and
6889 that the syntax element num_ref_idx_l1_active_minus1 is present for B
6891 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
6892 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
6894 https://bugzilla.gnome.org/show_bug.cgi?id=783804
6896 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
6898 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6899 libs: encoder: h265: keep idr_period equal to keyframe period
6900 Remove FIXME code, which makes previous assignation spurious.
6901 This also means to make idr_period equal to keyframe period,
6902 which is same as h264 encoder.
6903 https://bugzilla.gnome.org/show_bug.cgi?id=783804
6905 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6907 * gst/vaapi/gstvaapipluginbase.c:
6908 Request minimum buffer even if need_pool is FALSE
6909 When tee is used, it will not request a pool, but still it wants to
6910 know how many buffers are required.
6911 https://bugzilla.gnome.org/show_bug.cgi?id=730758
6913 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
6915 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6916 libs: encoder: h264_fei: VA-API 1.0 compat
6917 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
6919 https://bugzilla.gnome.org/show_bug.cgi?id=787322
6920 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6922 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6924 * gst/vaapi/gstvaapisink.c:
6925 vaapisink: Fix rendering in drm display
6926 Make sure vaapisink create a va surface backed buffer pool and all
6927 required attributes get assigned correctly for drm display type.
6928 This is needed to make the below pipeline working:
6929 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
6930 width=320 height=240 framerate=30/1 ! vaapisink display=drm
6931 https://bugzilla.gnome.org/show_bug.cgi?id=786954
6933 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6935 * tests/Makefile.am:
6936 * tests/test-fei-enc-in.c:
6937 * tests/test-fei-enc-out.c:
6938 FEI: Add test applications to showcase fei use case
6939 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
6941 ./test-fei-enc-out -i sample_320x240.nv12 -w 320 -h 240 -o out.264 -v mv.out -d out.dist -m out.mbcode -e 1
6942 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
6944 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
6945 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
6946 from saved files is still not working
6948 Wang, Yi <yi.a.wang@intel.com>
6949 Leilei <leilei.shang@intel.com>
6950 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
6951 xiaominc <xiaomin.chen@intel.com>
6952 Li, Jing B <jing.b.li@intel.com>
6953 https://bugzilla.gnome.org/show_bug.cgi?id=785712
6954 https://bugzilla.gnome.org/show_bug.cgi?id=784667
6956 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6958 * gst/vaapi/Makefile.am:
6959 * gst/vaapi/gstvaapi.c:
6960 * gst/vaapi/gstvaapiencode_h264_fei.c:
6961 * gst/vaapi/gstvaapiencode_h264_fei.h:
6962 FEI: plugin: Add vaapih264feienc element
6963 A new FEI based encoder element for h264 is added: vaapih264feienc
6964 FEI is a an extension to VA-API which is providing low level
6965 advanced control over different stages of encoding.
6966 Extending vaapih264enc with fei support is possible, but it will
6967 make the code too much complicated and will be difficult
6968 to debug. So adding the new encoder element, but keeping
6969 the rank as 0 , vaapih264enc will stay as the primary
6970 encoder for normal use cases.
6971 The vaaih264feienc is mainly useful for customers who want to play
6972 with MotionVectors and Macroblock Predictions. Also user can
6973 do one stage of encoding(eg: only the Motion Vector Calculation)
6974 in software and offload trasformation/entroy-coding etc to
6975 Hardware (which is what PAK module is doing) using FEI element.
6976 vaapih264feienc can work in different modes using fei-mode properoty
6977 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
6978 Important Note: ENC only mode won't produce any encoded data which is expected.
6979 But ENC alwys requires the output of PAK in order to do the inter-prediction
6980 over reconstructed frames.
6981 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
6982 upstream element providing those buffers, PAK only won't work as expected.
6983 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
6984 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
6985 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
6986 separately in vaapih264feienc.
6988 Wang, Yi <yi.a.wang@intel.com>
6989 Leilei <leilei.shang@intel.com>
6990 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
6991 xiaominc <xiaomin.chen@intel.com>
6992 Li, Jing B <jing.b.li@intel.com>
6993 https://bugzilla.gnome.org/show_bug.cgi?id=785712
6994 https://bugzilla.gnome.org/show_bug.cgi?id=784667
6995 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6997 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
6999 * gst/vaapi/gstvaapiencode.c:
7000 * gst/vaapi/gstvaapiencode.h:
7001 FEI: plugin: Add virtual methods to base encode
7002 Two new virtual methods are added to gstvaapiencode.
7003 load_control_data(): load the FEI input buffers set by the upstream elements
7004 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
7005 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7006 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7007 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7009 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
7011 * gst/vaapi/Makefile.am:
7012 * gst/vaapi/gstvaapifeivideometa.c:
7013 * gst/vaapi/gstvaapifeivideometa.h:
7014 FEI: plugin: Add fei specific video meta
7015 GstVaapiFeiVideoMeta holds the below fei codec objects:
7016 GstVaapiEncFeiMbCode
7018 GstVaapiEncFeiMvPredictor
7019 GstVaapiEncFeiMbControl
7021 GstVaapiEncFeiDistortion
7022 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7023 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7024 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7026 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7028 * gst-libs/gst/vaapi/Makefile.am:
7029 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7030 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
7031 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7032 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
7033 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7034 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
7035 FEI: libs: Add FEI encoder
7036 Adding FEI encoder to core lib.
7037 The code is splitted into three session:
7038 1: gstvaapiencoder_h264_fei.{h,c}
7039 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
7040 All the modes ENC, PAK and ENC_PAK are running based
7041 the code in these files.
7042 2: gstvaapifeienc_h264.{h,c}
7043 Abstract implementation intended for ENC (only VME) operation.
7044 3: gstvaapifeipak_h264.{h,c}
7045 Abstrct implementation intended for PAK (only the PAK module)
7046 Right now ENC_PAK, ENC and PAK are running based on code
7047 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
7048 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
7049 needed if user request for ENC+PAK mode operation.
7050 ENC+PAK: Here we need to invoke two sequence of
7051 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
7052 first for the ENC only and the second for PAK only.
7053 Each mode associated with separate context ,but same pool of surfaces are
7054 shared between the modes.
7055 This is more useful once we have custom BRC algorithms.
7057 Wang, Yi <yi.a.wang@intel.com>
7058 Leilei <leilei.shang@intel.com>
7059 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
7060 xiaominc <xiaomin.chen@intel.com>
7061 Li, Jing B <jing.b.li@intel.com>
7062 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7063 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7065 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7067 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
7068 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7069 FEI: libs: Add fei codec objects to GstVaapiEncPicture
7070 All the codec objects(vaapi buffers) supposed to be
7071 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
7072 for each frame, follow the same design for FEI too.
7073 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7074 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7076 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7078 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
7079 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
7080 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
7081 FEI: libs: Add fei codec objects in codedbufferproxy
7082 MbCode, MV and Distortion buffers (fei codec objects)
7083 can be treated as output of different fei modes based user request.
7084 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
7085 can be dumped as output in ENC_PAK mode for analysis purpose.
7086 So treating them as a part of CodedBufferProxy too.
7087 Here we avoided Qp, MbControl and MvPredictor codec objects since
7088 there is no practical use case of treating them as "output buffers".
7090 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
7091 xiaominc <xiaomin.chen@intel.com>
7092 Leilei <leilei.shang@intel.com>
7093 Li, Jing B <jing.b.li@intel.com>
7094 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7095 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7097 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7099 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
7100 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
7101 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
7102 FEI: libs: Add fei codec objects to surface proxy
7103 Add fei codec objects to surface proxy since handling the
7104 fei buffers(codec objects here) external to gstvaapisurfaceproxy
7105 will make the code complicated. Especially considering the behavior
7106 of encoder where the input frame order from upstream and output
7107 frame order to the downstream are not sequential.
7109 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
7110 xiaominc <xiaomin.chen@intel.com>
7111 Leilei <leilei.shang@intel.com>
7112 Li, Jing B <jing.b.li@intel.com>
7113 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7114 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7116 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7118 * gst-libs/gst/vaapi/Makefile.am:
7119 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
7120 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
7121 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
7122 FEI: Add codec objects for fei usecase
7123 There are 6 new va buffer types, each defined as a specific codec object.
7124 Borrowed the code from gstvaapicodecobject , but made a clear separation
7125 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
7126 feicodecobjects can be shared between elements and also can be accessed
7127 from different thread.
7128 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
7129 object is not shared between elements.So we utilize the already
7130 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
7131 in gstvaapfei_objects_priv.h in order to have a better
7134 -- Probably we need _locked_map() and _unlocked_map()
7135 -- Context can be associated with PreEnc(not just Enoder)
7136 once we have the proper support inplace, but for now we don't have
7137 PreEnc support, so should be safe enough to use GstVaapiEncoder.
7138 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7139 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7141 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7143 * gst-libs/gst/vaapi/Makefile.am:
7144 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
7145 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
7146 FEI: libs: add H264 fei specific utility functions
7147 Added enum/flag type definitions for a number of FEI
7148 input and output parameters.
7149 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
7150 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7151 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7152 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
7153 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7155 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7157 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7158 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7159 FEI: libs: Add virtual method for secondary context creation.
7160 Add a new vitrual method ensure_secondary_context to the
7161 base encoder which is only required for the FEI entrypoint, that too
7162 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
7163 supported directly by libva or driver, but this can be enabled
7164 from the middleware.
7165 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
7166 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
7167 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
7168 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7169 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7170 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7172 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7174 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7175 FEI: libs: make sure the default context creation works as expected.
7176 Current code always guess the entrypoint during init phase in case
7177 if there is no entrypoint already configured in GstVaapiContextInfo.
7178 Make sure FEI Entrypoint is not messing up with this logic.
7179 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7180 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7182 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7184 * gst-libs/gst/vaapi/gstvaapicontext.c:
7185 * gst-libs/gst/vaapi/gstvaapicontext.h:
7186 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7187 FEI: libs: Add FEI functional mode configuration
7188 FEI Entrypoint can work in either one of the 3 different modes:
7189 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
7190 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
7191 functioal mode configuration.
7192 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7193 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7195 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7197 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7198 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7199 * gst-libs/gst/vaapi/gstvaapiprofile.h:
7200 FEI: libs: Add FEI Entrypoint mapping
7201 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
7202 for VAEntrypointFEI.
7203 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7204 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7206 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7209 FEI: Add support for FEI conditional build
7210 FEI(Flexible Encoding Infrastructure) is an extension
7211 to VA API. Define USE_H264_FEI_ENCODER based on
7212 fei header file and required structures availability.
7213 https://bugzilla.gnome.org/show_bug.cgi?id=785712
7214 https://bugzilla.gnome.org/show_bug.cgi?id=784667
7216 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
7218 * gst/vaapi/gstvaapidecode.c:
7219 vaapidecode: force add h264 SVC profiles in caps
7220 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
7222 https://bugzilla.gnome.org/show_bug.cgi?id=732266
7223 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7225 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
7227 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7228 libs: decoder: h264: decode SVC base layer only
7229 Drops non-base NALs when the base-only property is set to TRUE.
7230 This modifies the behavior for MVC streams with base-only too: All the
7231 non-base units are dropped before they are decoded instead of dropping
7232 the non-base frames.
7233 The relevant part from the H264 spec is:
7234 > Decoders that conform to one or more of the profiles specified in
7235 Annex A rather than the profiles specified in Annexes G or H shall
7236 ignore (remove from the bitstream and discard) the contents of all NAL
7237 units with nal_unit_type equal to 14, 15, or 20.
7238 To eliminate side effects from the offending units:
7239 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
7241 - The NAL parsing is skipped and their flags are set to
7242 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
7243 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
7244 use them even if they are flagged to be skipped. Subset SPS's and slice
7245 extension units are not stored there either.
7246 https://bugzilla.gnome.org/show_bug.cgi?id=732266
7247 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7249 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
7251 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7252 libs: decoder: h264: check nalu validity in parser info finalize
7253 https://bugzilla.gnome.org/show_bug.cgi?id=732266
7254 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7256 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7258 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7259 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7260 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7261 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
7262 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
7263 libs: encoder: remove unused cast macro
7264 Remove internal macro to cast structure that are already declared
7267 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7269 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7270 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7271 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
7272 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
7273 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
7274 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
7275 Revert "libs: encoders: remove unused cast macros"
7276 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
7278 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7280 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7281 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7282 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
7283 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
7284 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
7285 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
7286 libs: encoders: remove unused cast macros
7287 They are only used inside the code, where another macro is defined.
7288 Thus these exported macros have no use.
7290 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7292 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7293 libs: decoder: h264: improve code-style
7294 https://bugzilla.gnome.org/show_bug.cgi?id=786173
7296 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7298 * gst-libs/gst/vaapi/gstvaapicompat.h:
7299 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7300 libs: encoder: h264: handle deprecated enum
7301 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
7302 instead VAEncPackedHeaderRawData should be used.
7303 This patch creates a compatibility symbol,
7304 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
7306 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7308 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7310 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7311 * gst-libs/gst/vaapi/gstvaapiutils.c:
7312 libs: guard deprecated symbols
7313 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
7314 guards the H.264 baseline usage. Consider this commit as a
7315 continuation of commit e0e0a474
7316 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7318 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7322 * meson_options.txt:
7323 Revert "build: check for libva-2.0"
7324 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
7325 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7327 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7329 * gst-libs/gst/vaapi/gstvaapicompat.h:
7330 * gst-libs/gst/vaapi/gstvaapicontext.c:
7331 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7332 libs: macro to get a renamed value in VA-API 1.0
7333 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
7334 renamed one member from roi_value_is_qp_delat to
7335 roi_value_is_qp_delta, which is the correct name.
7336 In order to keep back compatibility a macro has added to access this
7338 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7340 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7342 * gst/vaapi/gstvaapipluginbase.h:
7343 * gst/vaapi/gstvaapipluginutil.c:
7344 plugins: include main gstgl header
7345 Instead including particular gstgl header files in a header file
7346 that doesn't export a gstgl symbol, the main gstgl header file is
7347 included in gstvaapipluginutil.c where the symbols are used.
7348 https://bugzilla.gnome.org/show_bug.cgi?id=786597
7350 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7352 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7353 libs: encoder: h264: fix enum namespace
7355 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
7358 Automatic update of common submodule
7359 From 48a5d85 to 3f4aa96
7361 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7363 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7364 libs: encoder: h264: remove spurious assignation
7366 An assigned value that is never used may represent unnecessary
7367 computation, an incorrect algorithm, or possibly the need for cleanup
7369 ip_period is assigned first to be rewritter inmediatly after. The
7370 first assignation is spurious.
7372 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
7374 * gst/vaapi/gstvaapidecode.c:
7375 vaapidecode: fix mismatch of the return type
7376 https://bugzilla.gnome.org/show_bug.cgi?id=786307
7378 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7380 * gst-libs/gst/vaapi/Makefile.am:
7381 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
7382 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
7383 * gst-libs/gst/vaapi/gstvaapiutils.h:
7384 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
7385 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
7386 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
7387 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
7388 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
7389 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
7390 * gst-libs/gst/vaapi/meson.build:
7391 libs: remove unused header
7392 Since libgstvaapi is not distributed, there is no need to check for
7393 private header inclusion. Thus removing it.
7394 https://bugzilla.gnome.org/show_bug.cgi?id=786119
7396 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7398 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
7399 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
7400 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
7401 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
7402 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
7403 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
7404 libs: utils: move gstvaapisurface.h to private headers
7405 Since the utils don't expose API defined in gstvaapisource.h, it is
7406 moved to their private headers where they are used.
7407 https://bugzilla.gnome.org/show_bug.cgi?id=786119
7409 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7411 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
7412 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
7413 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
7414 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
7415 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
7416 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
7417 libs: utils: remove va.h include in header
7418 And include gstvaapicompat.h in the C files, since the VA-API is not
7419 exposed in the headers.
7420 https://bugzilla.gnome.org/show_bug.cgi?id=786119
7422 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7424 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7425 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7426 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7427 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7428 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
7429 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
7430 libs: encoder: remove va.h include
7431 Since it is already managed by gstvaapicompat.h
7432 https://bugzilla.gnome.org/show_bug.cgi?id=786119
7434 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7436 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
7437 * gst-libs/gst/vaapi/gstvaapicompat.h:
7438 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7439 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7440 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7441 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7442 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7443 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7444 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7445 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
7446 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
7447 * gst-libs/gst/vaapi/gstvaapifilter.c:
7448 * gst-libs/gst/vaapi/gstvaapiutils.c:
7450 build: consolidate the VA sub API includes
7451 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
7452 since they are all already included in va.h after VA-API 0.38.
7453 https://bugzilla.gnome.org/show_bug.cgi?id=786119
7455 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7459 build: check for va_vpp.h
7460 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
7461 allow us to handle the inclusion of the header better.
7462 https://bugzilla.gnome.org/show_bug.cgi?id=786119
7464 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
7467 meson: don't export symbols by default
7468 Only plugin entry points should be exported.
7470 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7472 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7473 libs: decoder: h265: remove spurious code
7475 Logically dead code: The indicated dead code may have performed some
7476 action; that action will never occur.
7477 By using pointer arithmetic is impossible to get NULL.
7479 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7481 * gst-libs/gst/vaapi/gstvaapicontext.c:
7482 libs: context: use attribs index instead pointers
7484 Out-of-bounds write. This could cause an immediate crash or incorrect
7486 Coverity basically found that it is possible to assign more than 4
7487 attribs in the array.
7488 In my opinion this was produced because code pattern used pointer
7489 arithmetic, which is not readable nor maintainable.
7490 This patch refactors config_create() to use an array index rather than
7491 pointer arithmetic. Also a run-time check for index size was added.
7493 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7495 * gst/vaapi/gstvaapiencode_h264.c:
7496 vaapiencode: h264: remove spurious code
7498 An unsigned value can never be negative, so this test will always
7499 evaluate the same way.
7500 As len is guint32, there is no need to check it if it is equal or
7503 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7505 * gst/vaapi/gstvaapidecode.c:
7506 vaapidecode: initialize variable
7508 The variable will contain an arbitrary value left from earlier
7510 Variable base_only is fetched from base-only property, and it may be
7511 not assigned. It needs to be initialized.
7513 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7515 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7516 libs: windows: wayland: fail if cannot remove last frame
7518 If the function returns an error value, the error value may be
7519 mistaken for a normal value.
7520 If g_atomic_pointer_compare_and_exchange() fails because the frame is
7521 not the last one, the function fails. Thus, logging an info message.
7523 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7525 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
7526 libs: utils: glx: check return value
7528 If the function returns an error value, the error value may be
7529 mistaken for a normal value.
7530 Function sscanf returns the number of assignations done. Validate this
7531 return value with the number of expected variables to match.
7533 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7535 * gst-libs/gst/vaapi/gstvaapiobject.c:
7536 libs: vaapi: object: remove unrequired NULL check
7538 Dereference after null check: Either the check against null is
7539 unnecessary, or there may be a null pointer dereference.
7540 Variable klass has been validated as non-NULL several time before in
7541 gst_vaapi_object_new() function, so there is no need to check it
7544 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7546 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7547 libs: encoder: h265: remove spurious assignation
7549 An assigned value that is never used may represent unnecessary
7550 computation, an incorrect algorithm, or possibly the need for cleanup
7552 ip_period is assigned first to be rewritter inmediatly after. The
7553 first assignation is spurious.
7555 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7557 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7558 libs: encoder: h264: fix copy & paste error
7560 The copied code will not have its intended effect.
7561 This is a bug from commit cdaf15b2, where the intention is to
7562 initialize RefPicList1 while setting RefPicList0.
7564 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7566 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7567 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7568 libs: encoder: h265: fix possible integer overflow
7570 Unintentional integer overflow. The expression's value may not be what
7571 the programmer intended, because the expression is evaluated using a
7572 narrow (i.e. few bits) integer type.
7573 Cast operator to guint64 before computation to avoid narrowing.
7576 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7578 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7579 libs: decoder: mpeg4: fail if return value is not OK
7581 An assigned value that is never used may represent unnecessary
7582 computation, an incorrect algorithm, or possibly the need for cleanup
7584 In the return value of decode_slice() or
7585 gst_mpeg4_parse_video_packet_header() are not success, thus fail
7586 decode_packet() function.
7588 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7590 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7591 libs: decoder: h265: check for null
7593 Dereference after null check: Either the check against null is
7594 unnecessary, or there may be a null pointer dereference.
7595 While looking for hte lowest poc, according to rest of the code, the
7596 picture in the dbp (decoded picture buffer) might be NULL, thus we
7597 could check for a NULL picture before assigned as found.
7598 Also, split a comma operator because it is considered as a bad
7599 practice because it possible side effects.
7601 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7603 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7604 libs: decoder: h265: untaint loop control variable
7606 Scalars (for example, integers) are not properly
7607 bounds-checked (sanitized) before being used as array or pointer
7608 indexes, loop boundaries, or function arguments are considered as
7610 In this case, num_nals were not checked before used as loop control.
7612 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7614 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7615 libs: decoder: h264: remove unrequired NULL check
7617 Dereference after null check: Either the check against null is
7618 unnecessary, or there may be a null pointer dereference.
7619 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
7620 prev_picture could be NULL, that's why the code did a null check. But,
7621 since commit 52adebe7, the previous reference frames are tracked, thus
7622 there is no need to check null anymore.
7624 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
7626 * gst/vaapi/gstvaapidecode.c:
7627 vaapidecode: fix gst_caps_new_simple call
7628 https://bugzilla.gnome.org/show_bug.cgi?id=732265
7630 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
7632 * gst/vaapi/gstvaapidecode.c:
7633 vaapidecode: force add h264 MVC profiles in caps
7634 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
7636 https://bugzilla.gnome.org/show_bug.cgi?id=732265
7638 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
7640 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7641 libs: decoder: h264: decode MVC base view only
7642 If processed SPS has mvc profile and the configuration is set to
7643 base-only, the frame is drop.
7644 https://bugzilla.gnome.org/show_bug.cgi?id=732265
7646 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
7648 * gst/vaapi/gstvaapidecode.c:
7649 * gst/vaapi/gstvaapidecode_props.c:
7650 vaapidecode: set h264 base-only to decoder
7651 Set the base-only value when property is set and the internal
7652 decoder is already instantiated or when the internal decoder
7654 https://bugzilla.gnome.org/show_bug.cgi?id=732265
7656 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
7658 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7659 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
7660 libs: decoder: h264: add setter for base-only mode
7661 https://bugzilla.gnome.org/show_bug.cgi?id=732265
7663 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
7665 * gst/vaapi/gstvaapidecode_props.c:
7666 * gst/vaapi/gstvaapidecode_props.h:
7667 vaapidecode_props: h264: add base-only property
7668 https://bugzilla.gnome.org/show_bug.cgi?id=732265
7670 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7672 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7673 libs: encoder: h264: missing property enum documentation
7675 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
7677 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7678 libs: encoder: h264: add multi reference support
7679 Using num_ref_frames provided and the result of the Query
7680 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
7681 and perform encoding with multi reference frames as the following:
7682 1\ The num_ref_frames is being considered as the number of
7683 reference picture list0
7684 2\ Encoder adds 1 reference frame more to the reference picture list1
7685 internally if b-frame encoding.
7686 3\ If num_ref_frames is bigger than the number of refrence frames
7687 supported in the driver, it will be lowered.
7688 https://bugzilla.gnome.org/show_bug.cgi?id=783803
7690 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
7692 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7693 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7694 libs: encoder: h264: add refs property
7695 Users can provide the number of reference frame by this property.
7696 The value of the property will be considered as the number of
7697 reference picture list0 and will add 1 reference frame more to the
7698 reference picture list1 internally if b-frame encoding.
7699 If the value provided is bigger than the number of refrence frames
7700 supported in the driver, it will be lowered.
7701 https://bugzilla.gnome.org/show_bug.cgi?id=783803
7703 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
7705 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7706 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7707 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
7708 This function will query VAConfigAttribEncMaxRefFrames to get the
7709 maximum number of reference frames supported in the driver.
7710 This will be used for h264/h265 encoding.
7711 https://bugzilla.gnome.org/show_bug.cgi?id=783803
7713 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7715 * gst/vaapi/gstvaapiencode_h265.c:
7716 vaapiencode: h265: compare an unsigned int if not zero
7717 An unsigned value can never be negative, so this test (greater than
7718 zero) will always evaluate the same way. Thus change it to just if
7721 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7723 * gst/vaapi/gstvaapipluginbase.c:
7724 plugins: check gst_gl_ensure_element_data() return value
7725 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
7726 the return value of gst_gl_ensure_element_data(). The result is a code
7729 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7731 * gst/vaapi/gstvaapipluginutil.c:
7732 plugins: avoid dead code detection
7733 By using #elif macro, the static code analysis would stop to detect
7734 these lines as dead code. Also it is inforced the mutually exclusive
7737 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7739 * gst/vaapi/gstvaapivideobufferpool.c:
7740 vaapivideobufferpool: don't shift by negative since it's undefined
7741 The function g_bit_nth_lsf() may return -1 if the request bit position
7742 is not avaible. Thus, this patch check if the return value is not -1
7743 in order to continue.
7745 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7747 * gst/vaapi/gstvaapisink.c:
7748 vaapisink: fix memory leak
7750 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7752 * gst/vaapi/gstvaapipostprocutil.c:
7753 vaapipostproc: fix memory leaks
7755 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
7757 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7758 libs: display: when appending formats change pointers to indexes
7759 Thus, it fixes an invalid read when YV12 or I420 are not supported by
7761 https://bugzilla.gnome.org/show_bug.cgi?id=785085
7763 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7765 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7766 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7767 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
7768 Added a new property "compliance-mode", which default is the normal
7769 strict compliant mode.
7770 The second mode, "restrict-buf-alloc", is to limit the coded buffer
7771 allocation size to improve performance in some specific Intel
7772 platforms (there is asignificant performance improvement in parallel
7773 encodings). Under this new mode, we use the MinCR field in A.3.1 for
7774 pre-calculating the coded-buffer size.
7775 https://bugzilla.gnome.org/show_bug.cgi?id=784590
7777 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7779 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
7780 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
7781 libs: utils_h264: Extend LevelLimit table with MinCR field
7782 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
7784 https://bugzilla.gnome.org/show_bug.cgi?id=784590
7786 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7788 * gst-libs/gst/vaapi/gstvaapiutils.c:
7789 libs: utils: libva 1.0 changed the logging
7790 The logging mechanism in libva has changed it's functions
7791 signatures. This patch updates that for libva versions >= 1.0
7792 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7794 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7796 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7797 libs: decoder: h264: libva 1.0 deprecated baseline
7798 libva 1.0 deprecated H.264 baseline profile and FMO support
7800 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7802 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7806 * meson_options.txt:
7807 build: check for libva-2.0
7808 Check for libva-2.0 since libva's developers decided to increase the
7809 library's version number.
7810 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7812 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7816 build: blacklist only libva 0.99.0
7817 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
7818 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
7820 https://bugzilla.gnome.org/show_bug.cgi?id=784398
7822 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7824 * gst-libs/gst/vaapi/meson.build:
7825 build: meson: remove gstvaapidisplaycache.c
7826 This is a missing bit of commit ec3e10f6
7828 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7831 configure: do not break configure if gtk+-3.0 devel missing
7832 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
7833 set USE_GTK=0 if gtk+-3.0 is not available.
7834 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
7835 Author: Hyunjun Ko <zzoon@igalia.com>
7836 Date: Wed Jul 5 15:59:43 2017 +0900
7837 tests: elements: add testsuite of vaapi context
7838 ...configure fails if gtk+-3.0 development files are missing.
7839 The "with_gtk" option defaults to "check" in configure.ac
7840 which implies that if it is not explicitly requested then
7841 configure will only enable it if it's available on the system.
7842 However, the PKG_CHECK_MODULES rule that get's activated on
7843 "check" condition did not provide default when gtk+-3.0 devel
7844 packages are not found on the system. Thus, it resulted in
7846 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
7847 https://bugzilla.gnome.org/show_bug.cgi?id=785452
7849 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
7852 * tests/elements/Makefile.am:
7853 * tests/elements/test-vaapicontext.c:
7854 tests: elements: add testsuite of vaapi context
7855 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7856 https://bugzilla.gnome.org/show_bug.cgi?id=766704
7858 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
7860 * gst/vaapi/gstvaapisink.c:
7861 vaapisink: fail if surface display is different
7862 Replacing GstVaapiDisplay during rendering might be hiding problems
7863 at some cases, even though it's safe currently since we use cache
7865 Play safe by failing if this happens.
7866 https://bugzilla.gnome.org/show_bug.cgi?id=766704
7868 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
7870 * gst/vaapi/gstvaapivideocontext.c:
7871 * gst/vaapi/gstvaapivideocontext.h:
7872 videocontext: support "gst.vaapi.app.Display" context
7873 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
7874 and native display of their backend.
7876 - display : pointer of VADisplay
7877 - x11-display : pointer of X11 display (Display *), if they're using.
7878 This patch creates GstVaapidisplayX11 if information provided through
7879 "gst.vaapi.app.Display"
7880 https://bugzilla.gnome.org/show_bug.cgi?id=766704
7882 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7884 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7885 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
7886 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
7887 Implements new API function so that users could create GstVaapiDisplay
7888 with their own VADisplay within a native display as backend.
7889 https://bugzilla.gnome.org/show_bug.cgi?id=766704
7891 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
7893 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7894 libs: display: pass display info when foreign display
7895 When creating a GstVaapiDisplay using a foreign VADisplay, and render
7896 with that display, it also requires native display of the backend.
7897 https://bugzilla.gnome.org/show_bug.cgi?id=766704
7899 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7901 * gst-libs/gst/vaapi/Makefile.am:
7902 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7903 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7904 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7905 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7906 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7907 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
7908 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
7909 libs: display: remove cache
7910 Remove a bunch of code that handles the VADisplay cache, since the
7911 context sharing should be doing this correctly.
7912 https://bugzilla.gnome.org/show_bug.cgi?id=747946
7914 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
7916 * tests/elements/Makefile.am:
7917 * tests/elements/test-vaapipostproc.c:
7918 tests: elements: add test for vaapipostproc
7919 https://bugzilla.gnome.org/show_bug.cgi?id=754885
7921 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
7923 * gst/vaapi/gstvaapipostproc.c:
7924 postproc: reconfigure when width or height changes
7925 https://bugzilla.gnome.org/show_bug.cgi?id=754885
7927 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7929 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
7930 libs: encoder: vp9: array terminated in zeros
7931 There is a crash when setting ref-pic-mode since the #GEnumValue
7932 array is not terminated with a structured with all memvers being
7934 https://bugzilla.gnome.org/show_bug.cgi?id=785032
7936 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7938 * gst/vaapi/gstvaapiencode_h264.c:
7939 vaapiencode: h264: add plugin documentation
7940 Comment how the profile is set and other parameters.
7942 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
7944 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7945 libs: decoder: h264: push frames as soon as possible
7946 Push frames downstream as soon as possible instead of waiting until
7947 they are ejected from the DPB.
7948 This patch makes the decoder not comply with the H.264 specification,
7949 but it is required for some video cameras.
7950 https://bugzilla.gnome.org/show_bug.cgi?id=762509
7951 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7953 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7955 * gst/vaapi/gstvaapidecode_props.c:
7956 vaapidecode_props: h264: set low-latency in decoder
7957 Set the low-latency property if the H264 decoder is already
7958 instantiated, thus you could change the behavior in run-time.
7959 https://bugzilla.gnome.org/show_bug.cgi?id=783588
7961 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7963 * gst/vaapi/gstvaapidecode.c:
7964 vaapidecode: set h264 low latency to decoder
7965 https://bugzilla.gnome.org/show_bug.cgi?id=783588
7967 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7969 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7970 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
7971 libs: decoder: h264: add getter/setter for low latency mode
7972 https://bugzilla.gnome.org/show_bug.cgi?id=783588
7974 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7976 * gst/vaapi/gstvaapidecode_props.c:
7977 * gst/vaapi/gstvaapidecode_props.h:
7978 vaapidecode_props: h264: add low latency property
7979 Adding support for private data.
7980 https://bugzilla.gnome.org/show_bug.cgi?id=783588
7982 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7984 * gst/vaapi/Makefile.am:
7985 * gst/vaapi/gstvaapidecode.c:
7986 * gst/vaapi/gstvaapidecode_props.c:
7987 * gst/vaapi/gstvaapidecode_props.h:
7988 * gst/vaapi/meson.build:
7989 vaapidecode_props: add skeleton for h264 decoder properties
7990 https://bugzilla.gnome.org/show_bug.cgi?id=783588
7992 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7994 * gst/vaapi/gstvaapidecode.c:
7995 vaapidecode: properties callback in decoders map
7996 https://bugzilla.gnome.org/show_bug.cgi?id=783588
7998 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
8001 meson: find python3 via python3 module
8002 https://bugzilla.gnome.org/show_bug.cgi?id=783198
8004 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
8006 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8007 libs: encoder: h264: submit sps in case of IDR picture
8008 If the picture is IDR, also submit a SPS header.
8009 This means when frame number reaches to keyframe-period or an force
8010 key unit event arrives, we insert SPS/PPS again.
8011 https://bugzilla.gnome.org/show_bug.cgi?id=776712
8013 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
8015 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8016 libs: encoder: h264: set the frame as IDR if forced key unit
8017 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
8018 the `frame-lost` event in the case of streaming, such as RTP.
8019 In case of this event, it is needed to start new GOP rather than just
8021 https://bugzilla.gnome.org/show_bug.cgi?id=776712
8023 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8025 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8026 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8027 libs: encoder: h264: insert AU delimiter
8028 Insert an AUD as the first NAL of each encoded frame.
8029 Some applications require Access Unit Delimiter for decoding the
8031 The AU delimeter insertion is done only when the aud parameter is
8032 TRUE (by default is disabled). The reason of this it is because this
8033 header is only available from Intel Gen9 and the VA intel driver
8034 should be 1.8 or superior. Otherwise, the output will be corrupted.
8035 https://bugzilla.gnome.org/show_bug.cgi?id=776712
8036 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
8038 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8040 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8041 libs: encoder: h264: initialize all elements of view_ids
8042 Currently when num_views is changed by multiview-mode on sink caps, it produces
8043 wrong MVC encoded stream since the array view_ids is not set properly according
8044 to changed num_views.
8045 So this patch initializes all of the array sequentially to handle this case.
8046 Side effect is not going to happen by this patch since this array is being
8047 handled by num_views.
8048 https://bugzilla.gnome.org/show_bug.cgi?id=784321
8050 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
8052 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8053 Revert "encoder: h264: Use high profile by default"
8054 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
8055 https://bugzilla.gnome.org/show_bug.cgi?id=757941
8057 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
8059 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8060 libs: encoder: h264: set profile via capsfilter
8061 Until now, the encoder ignored the profile in src caps and chose one
8062 according with the given parameters. But the encoder must honor the
8063 profile specifed in src caps.
8064 This patch do that, and if the encoder needs to choose the profile,
8065 it will do it by following these rules:
8066 1\ If given parameters are not compatible with given profile, the
8067 encoder will bail out with an error.
8068 2\ The encoder will choose the higher profile indicated in the
8070 https://bugzilla.gnome.org/show_bug.cgi?id=757941
8072 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
8074 * gst/vaapi/gstvaapiencode_h264.c:
8075 vaapiencode: h264: set profile to src caps
8076 So far vaapi encoder does not set profile to src caps. This patch makes it
8077 setting profile to src caps, which is determined by itself.
8078 In addition, if encoder chose different profile, which is not negotiated with
8079 downstream, we should set compatible profile to make negotiation working.
8080 https://bugzilla.gnome.org/show_bug.cgi?id=757941
8082 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8084 * gst/vaapi/gstvaapiencode_h264.c:
8085 * gst/vaapi/gstvaapiencode_h264.h:
8086 vaapiencode: h264: verify if requested profile is supported
8087 Check if the requested profile in source caps, is supported by the
8088 VA driver. If it is not, an info log message is send saying that
8089 another (compatible?) profile will be used.
8090 https://bugzilla.gnome.org/show_bug.cgi?id=757941
8092 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8094 * gst/vaapi/gstvaapiencode_h264.c:
8095 vaapiencode: h264: improve set_config() vmethod
8096 First check if downstream requests ANY caps. If so, byte-stream is
8097 used and the profile will be choose by the encoder. If dowstream
8098 requests EMPTY caps, the negotiation will fail.
8099 Lately, byte-stream and profile are looked in the allowed caps.
8100 https://bugzilla.gnome.org/show_bug.cgi?id=757941
8102 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8104 * gst/vaapi/gstvaapiencode_h264.c:
8105 vaapiencode: h264: check for avc in set_config()
8106 The check for avc stream format was done in the vaapi encoder's
8107 vmethod get_caps(), but that is wrong since it has to be check
8108 when encoder set_format().
8109 https://bugzilla.gnome.org/show_bug.cgi?id=757941
8111 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
8113 * gst/vaapi/gstvaapipostprocutil.c:
8114 vaapipostproc: set multivew-mode flags to src caps
8115 vaapipostproc didn't negotiate the proper multiview caps losing
8116 downstream information.
8117 This patch enables the playing of MVC encoded stream by setting
8118 the proper multiview mode/flags and views to src caps, according
8120 https://bugzilla.gnome.org/show_bug.cgi?id=784320
8122 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
8124 * gst/vaapi/gstvaapipostproc.c:
8125 vaapipostproc: add support for DMABuf caps feature
8126 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8127 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
8129 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8131 * gst/vaapi/gstvaapidecode.c:
8132 vaapidecode: add support for DMABuf caps feature
8133 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8134 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
8136 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8138 * gst/vaapi/gstvaapipluginbase.c:
8139 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
8140 Instantiate all dmabuf allocator for src pad buffer pool if the
8141 src caps ask for memory:DMABuf feature.
8142 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8144 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
8146 * gst/vaapi/gstvaapipluginutil.c:
8147 * gst/vaapi/gstvaapipluginutil.h:
8148 vaapipluginutil: add support for DMABuf caps feature
8149 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8150 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
8151 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
8152 vaapipluginutil: add support for DMABuf caps feature
8154 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8156 * gst/vaapi/gstvaapipluginbase.c:
8157 vaapipluginbase: dmabuf memory map trial for raw caps
8158 Only push dmabuf-based buffers with raw caps if gst_memory_map()
8159 succeeds. Otherwise, use the the vaapi surfaces allocator.
8160 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8161 https://bugzilla.gnome.org/show_bug.cgi?id=774649
8162 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
8164 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8166 * gst/vaapi/gstvaapivideomemory.c:
8167 * gst/vaapi/gstvaapivideomemory.h:
8168 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
8169 This new method checks the specified allocator can create GstMemory that can
8171 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8173 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8175 * gst/vaapi/gstvaapivideobufferpool.c:
8176 vaapivideobufferpool: fix regression with video metas
8177 There is another regression with 7a206923 when setting the video
8178 info for the video meta, it should be the one from the image's
8179 allocator rather from the allocation caps.
8181 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
8182 ! tee ! videoconvert ! videoscale \
8183 ! video/x-raw, width=1920, height=1080 ! xvimagesink
8185 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8187 * gst/vaapi/gstvaapipluginbase.c:
8188 * gst/vaapi/gstvaapivideobufferpool.c:
8189 plugins: update buffer size with the one reported by allocator
8190 There is a regression in 7a206923, since the buffer pool ditches all
8191 the buffers generated by them because the pool config size is
8192 different of the buffer's size.
8194 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
8195 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
8196 --gst-debug=GST_PERFORMANCE:5
8197 The allocator may update the buffer size according to the VA surface
8198 properties. In order to do this, the video info is modified when the
8199 allocator is created, which reports through the allocation info the
8200 updated size, and set it to the pool config.
8202 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8204 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8205 libs: decoder: h264: initialize active_sps/pps in reset
8206 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
8207 they introduced regression in seek.
8208 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
8209 But since the commits landed, it doesn't drop P-frame and does try to
8210 decode it continuously because active_sps is still alive. See ensure_sps function.
8211 But there are prev_frames and prev_ref_frames reset already, then it
8213 So it's necessary to reset active_sps/pps also in reset method.
8214 https://bugzilla.gnome.org/show_bug.cgi?id=783726
8216 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8218 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8219 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8220 libs: encoder: fix compilation with old versions of libva
8221 There are some symbols that are not used when compiling with old
8222 version of libva and those generates a compilation error.
8223 Original-patch-by: Matt Staples <staples255@gmail.com>
8225 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8227 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8228 libs: encoder: Fix the quality level clamping
8229 Change the hard-coded range of quality-level from {1-8} to {1-7},
8230 since it is the range Intel Open source driver supports.
8231 Also perform the range clamping only if the user provided
8232 quality-level is greater than the max-range suppored by the driver,
8233 because there could be non-intel drivers giving lower value than
8234 the hard-coded max value 7.
8235 https://bugzilla.gnome.org/show_bug.cgi?id=783567
8237 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8239 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8240 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8241 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8242 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8243 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8244 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8245 libs: encoder: log out the name of the profile
8246 Instead of printing a number, it is more readable to log out, in
8247 case of error, the name of the failing profile.
8249 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
8251 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8252 libs: encoder: h264: changes raw number of profile to macro name of its
8253 Changes raw number of profile to macro name of its to improve readability.
8254 https://bugzilla.gnome.org/show_bug.cgi?id=757941
8256 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8258 * gst/vaapi/gstvaapivideobufferpool.c:
8259 vaapivideobufferpool: remove allocation_vinfo private attribute
8260 There is no need to keep this attribute internally since it is
8261 already managed by the allocator.
8262 https://bugzilla.gnome.org/show_bug.cgi?id=783599
8264 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8266 * gst/vaapi/gstvaapivideobufferpool.c:
8267 vaapivideobufferpool: refactor set_config()
8268 Refactor the set_config() virtual method considering a cleaner
8269 approach to allocator instanciation, if it it not set or if it is
8270 not valid for the pool.
8271 https://bugzilla.gnome.org/show_bug.cgi?id=783599
8273 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8275 * gst/vaapi/gstvaapipluginbase.c:
8276 * gst/vaapi/gstvaapivideobufferpool.c:
8277 * gst/vaapi/gstvaapivideomemory.c:
8278 * gst/vaapi/gstvaapivideomemory.h:
8279 plugins: distinguish allocation and negotiation caps
8280 The vaapi video decoders might have different allocation caps from
8281 the negotiation caps, thus the GstVideoMeta shall use the negotiation
8282 caps, not the allocation caps.
8283 This was done before reusing gst_allocator_get_vaapi_video_info(),
8284 storing there the negotiation caps if they differ from the allocation
8285 ones, but this strategy felt short when the allocator had to be reset
8286 in the vaapi buffer pool, since we need both.
8287 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
8288 gst_allocator_get_vaapi_negotiated_video_info() to store the
8289 negotiated video info in the allocator, and distinguish it from
8290 the allocation video info.
8291 https://bugzilla.gnome.org/show_bug.cgi?id=783599
8293 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8295 * gst/vaapi/gstvaapivideomemory.c:
8296 * gst/vaapi/gstvaapivideomemory.h:
8297 vaapivideomemory: rename qdata quarks and ids
8298 Also the parameter names were renamed to reflect their origin
8300 https://bugzilla.gnome.org/show_bug.cgi?id=783599
8302 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8304 * gst/vaapi/gstvaapivideobufferpool.c:
8305 vaapivideobufferpool: rename local variables
8306 Renamed local video info structure names in set_config() vitual
8307 method. The purpose of their renaming is to clarify the origin
8308 of those structures, whether come from passed caps parameter
8309 (new_allocation_vinfo) or from the configured allocator
8311 https://bugzilla.gnome.org/show_bug.cgi?id=783599
8313 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8315 * gst/vaapi/gstvaapivideobufferpool.c:
8316 vaapivideobufferpool: rename video info structures
8317 Renamed private GstVideoInfo structure video_info to allocation_vinfo
8318 and alloc_info to negotiated_vinfo.
8319 The purpose of these renaming is to clarify the origin and purpose of
8320 these private variables:
8321 video_info (now allocation_vinfo) comes from the bufferpool
8322 configuration. It describes the physical video resolution to be
8323 allocated by the allocator, which may be different from the
8325 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
8326 the pipeline. It represents how the frame is going to be mapped
8327 using the video meta.
8328 In Intel's VA-API backend, the allocation_vinfo resolution is
8329 bigger than the negotiated_info.
8330 https://bugzilla.gnome.org/show_bug.cgi?id=783599
8332 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8334 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8335 libs: encoder: set framerate if bigger than 0/1
8336 Just set the framerate parameter if the framerate numerator and
8337 denominator are bigger than zero.
8338 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
8340 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
8341 https://bugzilla.gnome.org/show_bug.cgi?id=783532
8343 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8345 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8346 libs: encoder: bitrate target percentage calculation
8347 If the rate control is set to Constant Bit Rate (CBR) the target
8348 percentage is 100%, otherwise is 70%
8350 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8352 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8353 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8354 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8355 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8356 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8357 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8358 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
8359 Centralize the common configuration for the Rate Control parameter,
8360 thus can be overloaded per each specific encoder.
8362 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8364 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8365 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8366 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8367 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8368 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8369 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8370 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
8371 Since the framerate VA parameter is calculated equally among all the
8372 encoders, it is better to handle it in the base encoder class.
8374 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8376 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8377 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8378 libs: encoder: vp9: Adds CBR and VBR Encoding support
8379 https://bugzilla.gnome.org/show_bug.cgi?id=766832
8380 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
8381 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8383 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8385 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8386 libs: encoder: vp8: Adds VBR Encoding support
8387 https://bugzilla.gnome.org/show_bug.cgi?id=778732
8389 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
8391 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8392 libs: encoder: h265: Adds VBR Encoding support
8393 Enables Variable BitRate mode, which does set FrameRate and RateControl
8395 https://bugzilla.gnome.org/show_bug.cgi?id=778732
8397 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
8399 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8400 libs: encoder: Describes more detail about the bitrate property
8401 https://bugzilla.gnome.org/show_bug.cgi?id=778732
8403 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8405 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8406 libs: encoder: h265: add rate control parameter
8407 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8409 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8411 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8412 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8413 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8414 libs: encoder: h264,h265,mpeg2: add framerate parameter
8415 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8417 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8419 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8420 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8421 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8422 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8423 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
8424 Instead of recalculating the miscellaneous buffer parameters for
8425 every buffer, it is only done once, when the encoder is configured.
8426 And for every buffer, the same structures are just copied.
8427 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8429 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8431 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8432 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8433 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8434 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8435 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8436 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8437 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
8438 This is patch pretends to decouple the assignation of the values
8439 in the parameter structures and the VA buffer's parameters setting.
8440 It may lead to some issues since HRD, framerate or controlrate may
8441 not be handled by the specific encoder, but they are set in
8442 the VA buffer's parameters.
8443 I leave as it because this patch is just a transitional patch.
8444 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8446 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8448 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8449 libs: encoder: vp8: fix frame rate calculation
8450 According to the VA documentation:
8451 The framerate is specified as a number of frames per second,
8452 as a fraction. The denominator of the fraction is given in
8453 the top half (the high two bytes) of the framerate field, and
8454 the numerator is given in the bottom half (the low two bytes).
8455 For example, if framerate is set to (100 << 16 | 750), this is
8456 750 / 100, hence 7.5fps.
8457 If the denominator is zero (the high two bytes are both zero)
8458 then it takes the value one instead, so the framerate is just
8459 the integer in the low 2 bytes.
8460 This patch fixes the the framerate calculation in vp8 encoder
8462 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8464 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8466 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8467 libs: encoder: vp8: refactor FrameRate parameter
8468 Move frame-rate parameter from ensure_misc_params() to
8469 ensure_contro_rate_param() since it only has meaning when the
8470 control rate is either VBR or CBR.
8471 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8473 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8475 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8476 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8477 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8478 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8479 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
8480 Move the Hypothetical Reference Decoder (HRD) parameter, from
8481 ensure_misc_params() to ensure_control_rate_params(), since it
8482 only shall be defined when the control rate is either VBR or CBR.
8483 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8485 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8487 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8488 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8489 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8490 libs: encoder: h264,vp8,mpeg2: refactor control rate
8491 Instead of filling the control rate param in ensure_misc_params(),
8492 this patch refactor it out, as a first step to merge the same code
8493 for all the encoders.
8494 https://bugzilla.gnome.org/show_bug.cgi?id=783449
8496 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8498 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8499 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8500 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8501 libs: encoder: h264, h265, mpeg2: remove assert
8502 Remove spurious asserts for misc parameters. If they cannot be
8503 allocated, FALSE is already returned.
8505 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8507 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8508 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8509 libs: encoder: use VA quality level structure
8510 Instead of using a proxy to story the buffer quality level, the
8511 encoder now uses the native VA structure, which is copied to the
8512 dynamically allocated VAEncMiscParameterBuffer.
8513 This approach is computationally less expensive.
8515 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8517 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8518 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
8519 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8520 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8521 libs: standardize the FIXME comment
8522 This is a trivial patch that makes homogeneous the FIXME tag in
8524 For more info about these comment style:
8525 http://wiki.c2.com/?FixmeComment
8527 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
8529 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8530 libs: encoder: vp8: set quality level regardless of rate control mode
8531 https://bugzilla.gnome.org/show_bug.cgi?id=782957
8533 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8535 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8536 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8537 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8538 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8539 libs: encoder: check for maximum number of slices
8540 Right now, H264 and HEVC can set as a property the number of slices to
8541 process. But each driver can set a maximum number of slices, depending
8542 on the supported profile & entry point.
8543 This patch verifies the current num_slices to process against the maximum
8544 permitted by the driver and the media size.
8545 https://bugzilla.gnome.org/show_bug.cgi?id=780955
8547 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8549 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
8550 libs: utils: mark functions as internals
8551 The functions in this header are internal to the library.
8553 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8555 * gst-libs/gst/vaapi/gstvaapicontext.h:
8556 libs: context: add missing documentation
8557 Document the region-of-interest configuration variables.
8559 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8561 * tests/elements/test-vaapisink.c:
8562 tests: elements: vaapisink: handle nav events
8563 The test app can now handle navigation events to rotate the
8566 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8568 * tests/elements/test-vaapisink.c:
8569 tests: elements: clean up vaapisink test
8570 - Use gst_element_send_event() instead of gst_pad_push_event()
8571 - don't zero App structure
8572 - check for pipeline parsing error
8573 - only get vaapisink for property set
8575 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
8577 * gst/vaapi/gstvaapisink.c:
8578 vaapisink: keep handle_events flag except that if user want to set
8579 When state of vaapisink is changed from PLAYING to NULL, the handle_events
8580 flag is set to FALSE, and never recovered, and then event thread is never
8582 So we should allow to set the flag only when users try it.
8583 https://bugzilla.gnome.org/show_bug.cgi?id=782543
8585 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
8587 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
8588 libs: window: x11: fix src rect info when using vpp
8589 Since we started using VPP in VaapiWindowX11, we need to care about
8590 the case that src rect and window's size are different.
8591 So, once VPP has converted to other format, we should honor the
8592 size of the VPP's surface as source rect. Otherwise, it is cropped
8593 according the previous size of the source rect.
8594 https://bugzilla.gnome.org/show_bug.cgi?id=782542
8596 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8598 * gst/vaapi/gstvaapipluginutil.c:
8599 plugins: remove par from caps negotiation
8600 https://bugzilla.gnome.org/show_bug.cgi?id=781759
8602 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8604 * tests/elements/Makefile.am:
8605 * tests/elements/test-roi.c:
8606 tests: elements: add an example for ROI
8607 This implements a pipleint to recognize difference between ROI and non-ROI.
8608 See comments in this code in detail.
8609 https://bugzilla.gnome.org/show_bug.cgi?id=768248
8610 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8612 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8614 * gst/vaapi/gstvaapiencode.c:
8615 * gst/vaapi/gstvaapiencode_h264.c:
8616 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
8617 Handles new custom event GstVaapiEncoderRegionOfInterest
8618 to enable/disable a ROI region.
8619 Writes a way to use new event to document.
8620 https://bugzilla.gnome.org/show_bug.cgi?id=768248
8621 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8623 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8625 * tests/simple-encoder.c:
8626 tests: simple-encoder: add an option to set ROI
8627 $ simple-encoder -r inputfile.y4m
8628 And you'll got an output file in H264 with two regions of interest.
8629 https://bugzilla.gnome.org/show_bug.cgi?id=768248
8630 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8632 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
8634 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8635 libs: encoder: h264: set ROI params during encoding
8636 Set ROI params during encoding each frame, which are set via
8637 gst_vaapi_encoder_add_roi ()
8638 https://bugzilla.gnome.org/show_bug.cgi?id=768248
8639 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8641 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
8643 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8644 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8645 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8646 libs: encoder: add api gst_vaapi_encoder_add/del_roi
8647 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
8648 https://bugzilla.gnome.org/show_bug.cgi?id=768248
8650 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8652 * gst-libs/gst/vaapi/gstvaapicontext.c:
8653 * gst-libs/gst/vaapi/gstvaapicontext.h:
8654 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8655 libs: encoder/context: query region of interest support
8656 Queries if the driver supports "Region of Interest" (ROI) during the config
8658 This attribute conveys whether the driver supports region-of-interest (ROI)
8659 encoding, based on user provided ROI rectangles. The attribute value is
8660 partitioned into fields as defined in the VAConfigAttribValEncROI union.
8661 If ROI encoding is supported, the ROI information is passed to the driver
8662 using VAEncMiscParameterTypeROI.
8663 https://bugzilla.gnome.org/show_bug.cgi?id=768248
8664 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8666 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8668 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8669 libs: encoder: fix a comment
8671 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8673 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8674 libs: encoder: guard quality level configuration
8675 The quality level appeared in VA-API 0.36. So let's guard its
8678 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8680 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8681 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8682 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8683 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8684 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8685 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8686 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8687 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8688 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8689 encoders: add quality level tuning
8690 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
8691 in gstreamer-vaapi encoders:
8692 The encoding quality could be set through this structure, if the
8693 implementation supports multiple quality levels. The quality level set
8694 through this structure is persistent over the entire coded sequence, or
8695 until a new structure is being sent. The quality level range can be queried
8696 through the VAConfigAttribEncQualityRange attribute. A lower value means
8697 higher quality, and a value of 1 represents the highest quality. The quality
8698 level setting is used as a trade-off between quality and speed/power
8699 consumption, with higher quality corresponds to lower speed and higher power
8701 The quality level is set by the element's parameter "quality-level" with a
8702 hard-coded range of 1 to 8.
8703 Later, when the encoder is configured in run time, just before start
8704 processing, the quality level is scaled to the codec range. If
8705 VAConfigAttribEncQualityRange is not available in the used VA backend, then
8706 the quality level is set to zero, which means "disabled".
8707 All the available codecs now process this parameter if it is available.
8708 https://bugzilla.gnome.org/show_bug.cgi?id=778733
8709 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8711 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
8717 === release 1.12.0 ===
8719 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
8724 * gstreamer-vaapi.doap:
8728 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8730 * gst/vaapi/gstvaapidecodebin.c:
8731 Revert "vaapidecodebin: fix element's classification"
8732 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
8734 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
8738 build: Require libva < 0.99.0
8739 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
8740 fail to configure instead of failing late in the build.
8741 This libva is bundled in msdk[1] and it is ahead in time with
8742 respect the official and open source libva[2]. GStreamer-VAAPI
8743 only supports the latter for now.
8744 1. https://software.intel.com/en-us/media-sdk/download
8745 2. https://github.com/01org/libva/
8746 https://bugzilla.gnome.org/show_bug.cgi?id=781866
8748 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
8750 * gst/vaapi/gstvaapidecodebin.c:
8751 vaapidecodebin: fix element's classification
8752 This bin should have similar classification as decodebin which is
8753 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
8755 Signed-off-by: Victor Toso <victortoso@redhat.com>
8756 https://bugzilla.gnome.org/show_bug.cgi?id=782063
8758 === release 1.11.91 ===
8760 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
8765 * gstreamer-vaapi.doap:
8769 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8771 * gst/vaapi/gstvaapipluginutil.c:
8772 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
8773 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
8775 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8777 * gst/vaapi/gstvaapipluginutil.c:
8778 plugins: reject pixel-aspect-ratio with value 0/1
8779 Do not negotiate a pixel-aspect-ratio of 0/1.
8780 https://bugzilla.gnome.org/show_bug.cgi?id=781759
8782 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8784 * gst/vaapi/gstvaapipostprocutil.c:
8785 * gst/vaapi/gstvaapisink.c:
8786 plugins: handle pixel-aspect-ratio with value 0/1
8787 When downstream negotiates a pixel-aspect-ratio of 0/1, the
8788 calculations for resizing and formatting in vaapipostproc and
8789 vaapisink, respectively, failed, and thus the pipeline.
8790 This patch handles this situation by converting p-a-r of 0/1 to
8791 1/1. This is how other sinks, such as glimagesink, work.
8792 https://bugzilla.gnome.org/show_bug.cgi?id=781759
8794 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8796 * gst/vaapi/gstvaapivideobufferpool.c:
8797 vaapivideobufferpool: fix leak of created allocator
8798 Since it's created by itself, it should be unref-counted
8799 after gst_buffer_pool_config_set_allocator call. Afterwards,
8800 this allocator will be ref-counted again when assigning to priv->allocator.
8801 https://bugzilla.gnome.org/show_bug.cgi?id=781577
8803 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8805 * gst/vaapi/gstvaapivideobufferpool.c:
8806 vaapivideobufferpool: create or reconfig allocator
8807 Sometimes a video decoder could set different buffer pool
8808 configurations, because their frame size changes. In this case we
8809 did not reconfigure the allocator.
8810 This patch enables this use case, creating a new allocator inside
8811 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
8812 If so, it is just reconfigured, since it doesn't have a surface pool.
8813 https://bugzilla.gnome.org/show_bug.cgi?id=781577
8815 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8817 * tests/elements/Makefile.am:
8818 test: elements: fix compilation flags
8819 This issue was spotten on bug #766704
8820 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
8822 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
8824 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8825 libs: windows: wayland: fix leak if failure of sync
8826 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
8828 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
8829 This surface is not attached to anything at this moment, so we should release
8831 https://bugzilla.gnome.org/show_bug.cgi?id=781695
8833 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
8836 Automatic update of common submodule
8837 From 60aeef6 to 48a5d85
8839 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
8841 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8842 libs: window: wayland: mark frames as done
8843 When the frame listener callbacks 'done', the number of pending
8844 frames are decreased. Nonetheless, there might be occasions where
8845 the buffer listener callbacks 'release', without calling previously
8846 frame's 'done'. This leads to problem with
8847 gst_vaapi_window_wayland_sync() operation.
8848 This patch marks as done those frames which were callbacked, but if
8849 the buffer callbacks 'release' and associated frame is not marked
8850 as 'done' it is so, thus the number of pending frames keeps correct.
8851 https://bugzilla.gnome.org/show_bug.cgi?id=780442
8852 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8854 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8856 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8857 libs: window: wayland: don't sync at destroy()
8858 Don't call gst_vaapi_window_wayland_sync() when destroying the
8859 wayland window instance, since it might lead to a lock at
8860 gst_poll_wait() when more than one instances of vaapisink are
8861 rendering in the same pipeline, this is because they share the
8863 Since now all the frames are freed we don't need to freed the
8864 private last_frame, since its address is invalid now.
8865 https://bugzilla.gnome.org/show_bug.cgi?id=780442
8866 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
8868 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
8870 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8871 libs: window: wayland: null buffer at destroy()
8872 Fix leakage of the last wl buffer.
8873 VAAPI wayland sink needs to send a null buffer while destruction,
8874 it assures that all the wl buffers are released. Otherwise, the last
8875 buffer's callback might be not called, which leads to leak of
8877 This was inspired by gstwaylandsink.
8878 https://bugzilla.gnome.org/show_bug.cgi?id=774029
8879 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8881 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
8883 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8884 libs: window: wayland: rt event queue at destroy()
8885 The proxy object of wl_buffer for the last frame remains in the
8886 wl_map. Even though we call wl_buffer_destroy() in
8887 frame_release_callback(), the proxy object remains without being
8888 removed, since proxy object is deleted when wayland server sees the
8889 delete request and sends 'delete_id' event.
8890 We need to call roundtrip before destroying event_queue so that the
8891 proxy object is removed. Otherwise, it would be mess up as receiving
8892 'delete_id' event from previous play, when playing in the next
8893 va/wayland window with the same wl_display connection.
8894 https://bugzilla.gnome.org/show_bug.cgi?id=773689
8895 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8897 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8899 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8900 libs: window: wayland: cancel read at poll message
8901 Always call wl_display_cancel_read() when an errno is set, but
8902 different to EAGAIN or EINTR.
8903 https://bugzilla.gnome.org/show_bug.cgi?id=780442
8905 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
8907 * gst/vaapi/gstvaapidecodebin.c:
8908 * gst/vaapi/gstvaapidecodebin.h:
8909 vaapidecodebin: skips configuration once it's done
8910 Skips configuration of creation of vpp/capsfilter and link them once it's done.
8911 Otherwise, it always fails when it's trying to re-start playback.
8912 https://bugzilla.gnome.org/show_bug.cgi?id=781573
8914 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8916 * gst/vaapi/gstvaapipostprocutil.c:
8917 vaapipostproc: fixes for memory leaks
8918 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
8919 requires to clear the used GValue to avoid a memory leak.
8921 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8923 * gst/vaapi/gstvaapipluginbase.c:
8924 * gst/vaapi/gstvaapipluginbase.h:
8925 plugins: enable direct rendering with envvar
8926 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
8927 performance in some Intel platforms (Haswell, for example) but in others
8928 (Skylake) is the opposite.
8929 In order to have some control, the patch enables the direct rendering
8930 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
8931 Also it seems to generating some problems with gallium/radeon backend.
8933 https://bugzilla.gnome.org/show_bug.cgi?id=775848
8935 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
8937 * gst/vaapi/gstvaapidecode.c:
8938 vaapidecode: Don't renegotiate on every flush
8939 If caps don't actually change, don't update the
8940 decoder and don't set the do_renego flag forcing
8941 downstream renegotiation
8942 https://bugzilla.gnome.org/show_bug.cgi?id=781142
8944 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
8946 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8947 h264 decoder: Implement reset() for faster flush
8948 Implement a custom reset() function for faster flushes
8949 that just clear the reference pictures but don't reallocate
8950 the DPB or clear out SPS/PPS
8951 https://bugzilla.gnome.org/show_bug.cgi?id=781142
8953 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
8955 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8956 * gst-libs/gst/vaapi/gstvaapidecoder.h:
8957 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8958 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8959 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
8960 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
8961 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
8962 * gst/vaapi/gstvaapidecode.c:
8963 Implement decoder reset on flush, rather than recreating
8964 Clear decoders out on a flush but keep the same instance,
8965 rather than completely recreating them. That avoids
8966 unecessarily freeing and recreating surface pools
8967 and contexts, which can be quite expensive
8968 https://bugzilla.gnome.org/show_bug.cgi?id=781142
8970 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8972 * gst-libs/gst/vaapi/gstvaapiwindow.c:
8973 libs: window: don't add an unused function
8974 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
8975 a function that is never used, thus when compiling we might see
8976 this warning (clang):
8977 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
8978 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
8980 https://bugzilla.gnome.org/show_bug.cgi?id=759533
8982 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8984 * gst-libs/gst/vaapi/gstvaapiwindow.c:
8985 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
8986 libs: window: remove surface_format member
8987 Since we always convert to NV12, there is no need to keep a
8988 variable for that. Let us hard code it.
8989 https://bugzilla.gnome.org/show_bug.cgi?id=759533
8991 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8993 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8994 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
8995 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
8996 libs: window: x11/wayland: use new api for conversion
8997 Since gst_vaapi_window_vpp_convert_internal is created,
8998 GstVaapiWindowX11/Wayland can use it for conversion.
8999 Note that once it chooses to use vpp, it's going to use vpp
9000 until the session is finished.
9001 https://bugzilla.gnome.org/show_bug.cgi?id=759533
9003 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
9005 * gst-libs/gst/vaapi/gstvaapiwindow.c:
9006 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
9007 libs: window: add gst_vaapi_window_vpp_convert_internal()
9008 If a backend doesn't support specific format, we can use vpp for conversion
9009 and make it playing.
9010 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
9011 so that GstVaapiWindowX11 could use it.
9012 https://bugzilla.gnome.org/show_bug.cgi?id=759533
9014 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
9016 * gst-libs/gst/vaapi/gstvaapiwindow.c:
9017 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
9018 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9019 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
9020 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
9021 libs: window: x11/wayland: chaining up to GstVaapiWindow
9022 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
9023 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
9024 https://bugzilla.gnome.org/show_bug.cgi?id=759533
9026 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
9028 * gst/vaapi/gstvaapipluginutil.c:
9029 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
9030 When these definitions are false, they are undef in the
9031 preprocessor, not a defined value of 0. When they are unset the
9033 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
9034 https://bugzilla.gnome.org/show_bug.cgi?id=780948
9036 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
9039 Automatic update of common submodule
9040 From 39ac2f5 to 60aeef6
9042 === release 1.11.90 ===
9044 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
9049 * gstreamer-vaapi.doap:
9053 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9055 * gst/vaapi/gstvaapiencode_h265.c:
9056 vaapiencode: h265: add main-10 in caps template
9057 This patch adds h265's main-10 profile in encoder src caps template.
9058 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9060 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9062 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9063 libs: encoder: h265: chroma and luma with format
9064 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
9065 parameter buffer, shall be the color format bit depth minus 8, 10-8
9066 which is 2. Also for bit_depth_chroma_minus8.
9067 This patch gets the negotiated sink caps format and queries its
9068 luma's depth and uses that value to fill the mentioned parameters.
9069 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9071 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9073 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9074 libs: encoder: admit YUV420_10BPP as valid chroma
9075 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
9077 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9079 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9081 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9082 libs: encoder: h265: ensures profile given format
9083 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
9084 configured color format is P010_10LE.
9085 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
9086 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9088 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9090 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9091 libs: encode: merge all possible surface formats
9092 When the function gst_vaapi_encoder_get_surface_formats() was added
9093 it was under the assumption that any VA profile of the specific codec
9094 supported the same format colors. But it is not, for example the
9095 profiles that support 10bit formats.
9096 In other words, different VA profiles of a same codec may support
9097 different color formats in their upload surfaces.
9098 In order to expose all the possible color formats, if no profile is
9099 specified via source caps, or if the encoder doesn't have yet a
9100 context, all the possible VA profiles for the specific codec are
9101 iterated and their color formats are merged.
9102 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9104 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9106 * gst/vaapi/gstvaapiencode.c:
9107 * gst/vaapi/gstvaapiencode.h:
9108 * gst/vaapi/gstvaapiencode_h264.c:
9109 * gst/vaapi/gstvaapiencode_h265.c:
9110 vaapiencode: add get_profile() vmethod
9111 This new virtual method, get_profile(), if implemented by specific
9112 encoders, will return the VA profile potentially determined by the
9114 Also it is implemented by h264 and h265 encoders, which are the main
9115 users of this vmethod.
9116 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9118 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9120 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9121 * gst-libs/gst/vaapi/gstvaapiencoder.h:
9122 * gst/vaapi/gstvaapiencode.c:
9123 libs: encoder: pass profile to get_surface_formats()
9124 In order to get the supported surface formats within a specific
9125 profile this patch adds the GstVaapiProfile as property to
9126 gst_vaapi_encoder_get_surface_formats().
9127 Currently the extracted formats are only those related with the
9128 default profile of the element's codec.
9129 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9131 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9133 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9134 libs: encoder: dummy context for get_surface_formats()
9135 Instead of creating (if it doesn't exist, yet) the encoder's context
9136 the method gst_vaapi_encoder_get_surface_formats() now it creates
9137 dummy contexts, unless the encoder has it already created.
9138 The purpose of this is to avoid setting a encoder's context with a
9140 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9142 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9144 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9145 libs: encoder: refactor init_context_info()
9146 In order to generate vaapi contexts iterative, the function
9147 init_context_info() is refactored to pass, as parameters the
9148 GstVaapiContextInfo and the GstVaapiProfile.
9149 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9151 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9153 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9154 * gst-libs/gst/vaapi/gstvaapiutils.c:
9155 * gst-libs/gst/vaapi/gstvaapiutils.h:
9156 libs: encoder: initialize chroma_type
9157 Instead of initialize the chroma_type with a undefined value, which
9158 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
9159 this patch queries the VA config, given the received
9160 GstVaapiContextInfo's parameters, and gets the first response.
9161 In order to get the GstVaapiChromaType value, also it was needed to
9162 add a new utility function: to_GstVaapiChromaType(), which, given a
9163 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
9164 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9166 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9168 * gst/vaapi/gstvaapiencode.c:
9169 vaapiencode: enhance logs of negotiated caps
9170 https://bugzilla.gnome.org/show_bug.cgi?id=771291
9172 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
9174 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9175 libs: encoder: vp9: Fix initialization of ref_list
9176 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
9177 'memset' used with length equal to number of elements without
9178 multiplication by element size [-Werror=memset-elt-size]
9179 https://bugzilla.gnome.org/show_bug.cgi?id=780947
9181 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9183 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9184 encoder: h264: Fix Backward ReferencePicture flag setting
9185 This is a regression introduced by e829b62 which
9186 override the reference flags and caused issues with
9187 latest intel-vaapi-driver.
9189 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9191 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9192 libs: encoder: h265: fix code style
9193 Trivial patch to remove a double ';' as end of instruction.
9195 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9197 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9198 encoder: h264: Fix B frame encoding artifacts
9199 The current implementation is updating the POC values only
9200 in Slice parameter Buffer.But we are not filling the
9201 picture order count and reference flags in VAPictureH264
9202 while populating VA Picture/Slice structures.The latest
9203 intel-vaapi-driver is directly accessing the above fields
9204 from VAPicutreH264 provided as RefPicLists, which resulted
9205 some wrong maths and prediction errors in driver.
9206 https://bugzilla.gnome.org/show_bug.cgi?id=780620
9208 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9210 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9211 libs: encoder: h265: remove unused macro definition
9212 Since the h265 encoder doesn't use GValueArray, there is no need to
9213 disable the Glib deprecation warnings, thus removing the macro
9216 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9218 * gst/vaapi/gstvaapidecode.c:
9219 * gst/vaapi/gstvaapiencode.c:
9220 * gst/vaapi/gstvaapipostproc.c:
9221 * gst/vaapi/gstvaapisink.c:
9222 plugins: when debug disabled, default category is NULL
9223 As in gstreamer-vaapi a common base class is used, the specific
9224 default category is passed to the base-plugin initializator, thus
9225 the log messages are categorized with the used plugin.
9226 Nonetheless, when the gst-debug is disabled in compilation time,
9227 it is needed to pass NULL to the base-plugin initializator. This
9229 https://bugzilla.gnome.org/show_bug.cgi?id=780302
9231 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
9233 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9234 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9235 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
9236 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
9237 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
9238 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
9239 unit length and data to a bitwriter.
9240 Note that this helper function applies EPB (Emulation Prevention
9241 Bytes), since otherwise produced codec_data might be broken when
9242 decoder/parser considering EPB, starts parsing.
9243 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
9244 describes the emulation_prevention_three_byte.
9245 https://bugzilla.gnome.org/show_bug.cgi?id=778750
9246 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9248 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
9250 * gst-libs/gst/vaapi/Makefile.am:
9251 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9252 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9253 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
9254 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
9255 * gst-libs/gst/vaapi/meson.build:
9256 libs: utils: h26x: create vaapiutils_h26x
9257 Since there is duplicated code in h264/265 encoder, we could
9258 refactor it to avoid duplicated code.
9259 https://bugzilla.gnome.org/show_bug.cgi?id=778750
9260 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9262 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
9264 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9265 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9266 libs: encoder: h264/5: fix wrong return value
9267 https://bugzilla.gnome.org/show_bug.cgi?id=778750
9269 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
9271 * gst/vaapi/gstvaapiencode_h264.c:
9272 * gst/vaapi/gstvaapiencode_h265.c:
9273 docs: h264/h265: put parser to the example pipeline
9274 https://bugzilla.gnome.org/show_bug.cgi?id=778749
9276 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
9278 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9279 libs: encoder: h265: fix reserved length of bits
9280 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
9281 https://bugzilla.gnome.org/show_bug.cgi?id=778749
9283 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9285 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9286 * tests/test-display.c:
9287 O_CLOEXEC needs _GNU_SOURCE defined
9289 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
9290 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
9291 2.12, one can obtain their definitions by defining either
9292 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
9293 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
9294 2.11 and earlier, one obtains the definitions by defining
9296 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
9297 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
9298 gstreamer-vaapi with the uClibc C library.
9299 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9300 https://bugzilla.gnome.org/show_bug.cgi?id=779953
9302 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9305 README: fix "Sources" section
9306 Update the URL where the release source tarballs can be downloaded.
9308 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9311 README: fix "Reporting bugs" section
9312 The "Reporting bugs" section gives
9313 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
9314 link to report a bug, but this link says "Sorry, entering a bug into the
9315 product gstreamer-vaapi has been disabled.".
9316 This commit fixes the URL to point to the proper location, and also
9317 removes the following paragraph that is no longer correct.
9318 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9319 https://bugzilla.gnome.org/show_bug.cgi?id=779954
9321 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9323 * gst/vaapi/gstvaapipluginutil.c:
9324 plugins: retry to create the VA display
9325 Particularly in GNOME Wayland, the negotiated or created GL context
9326 defines a GLX environment, but VAAPI fails to create a GLX VA
9327 display because there is no a DRI2 connection.
9328 This patch retries to create the VA display if VA cannot create one
9329 with the GL context parameters. Now using the old list of display
9331 This should also work in the case of systems with two GPU, when the
9332 non-VAAPI has the graphics environment, and the VAAPI-enabled one
9333 shall work headless.
9334 https://bugzilla.gnome.org/show_bug.cgi?id=772838
9336 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
9338 * gst/vaapi/gstvaapipostproc.c:
9339 vaapipostproc: texture upload if driver supports GL
9340 Removes GstVideoGLTextureUploadMeta caps feature if the driver
9341 doesn't support opengl.
9342 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9343 https://bugzilla.gnome.org/show_bug.cgi?id=772838
9345 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9347 * gst/vaapi/gstvaapidecode.c:
9348 vaapidecode: texture upload if driver supports GL
9349 When the allowed source pad caps are generated, the GLTextureUpload caps are
9350 only inserted if the driver support OpenGL.
9351 https://bugzilla.gnome.org/show_bug.cgi?id=772838
9353 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9356 configure: Add missing compiler flags
9357 The AC_CHECK_HEADERS macro was failing to locate some headers, in
9358 particular the va_enc_* headers due to missing compiler flags.
9359 https://bugzilla.gnome.org/show_bug.cgi?id=779101
9360 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9362 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
9364 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9365 libs: window: wayland: handle more VAStatus to use vpp
9366 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
9367 we should consider more returned VAStatus to use vpp.
9368 https://bugzilla.gnome.org/show_bug.cgi?id=779400
9370 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
9372 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9373 libs: encoder: ensure profile when context initialization
9374 We can't be sure that encoder's profile is assgined already or not
9375 at context initialization.
9376 https://bugzilla.gnome.org/show_bug.cgi?id=779120
9378 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
9380 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9381 libs: encoder: set rate control info only when query succeed
9382 Currently, it set rate control information even when query fails.
9383 In addition, it doesn't update any more since the flag
9384 got_rate_control_mask is set to TRUE.
9385 https://bugzilla.gnome.org/show_bug.cgi?id=779120
9387 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
9390 meson: Update version
9392 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
9397 === release 1.11.2 ===
9399 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
9404 * gstreamer-vaapi.doap:
9407 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9409 * gst/vaapi/gstvaapiencode.c:
9410 vaapiencode: merge tags for downstream's info
9411 Add encoder and codec name and the bitrate into the output for
9412 informational purposes. Some muxers or application use it as
9414 https://bugzilla.gnome.org/show_bug.cgi?id=778781
9416 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9418 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9419 libs: encoder: caps can change at any time
9420 The encoder should be able to change its caps even it is already
9421 processing a stream.
9422 This is suppose to happen after a flush so the codedbuf_queue should
9424 https://bugzilla.gnome.org/show_bug.cgi?id=775490
9426 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9428 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9429 libs: encoder: h265: bail if nal unit type fails
9430 Bail out if the NAL unit type is not recognized.
9431 https://bugzilla.gnome.org/show_bug.cgi?id=778782
9433 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9435 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9436 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9437 libs: decoder: h264,h265 avoid uninitialized variable
9438 Configuring GCC to verify possible usage of uninitialized variables,
9439 shows that found_index might be used without previous assignation.
9440 This patch assigns a initial value to found_index, also avoid a
9441 branching when returning the result value.
9442 https://bugzilla.gnome.org/show_bug.cgi?id=778782
9444 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
9447 * gst-libs/gst/vaapi/Makefile.am:
9448 * gst/vaapi/gstvaapidecode.c:
9449 * gst/vaapi/gstvaapidecodebin.c:
9450 build: rename USE_HEVC_DECODER to USE_H265_DECODER
9451 Rename to be consistent with H.264 and also H.265 encoder. The
9452 meson build assumed this was already consistently named, and so
9453 previously was not able to actually build the H.265 decoder.
9454 https://bugzilla.gnome.org/show_bug.cgi?id=778576
9456 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
9459 meson: gstreamer-codecparsers is a required dep
9460 Just like in configure.ac.
9462 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
9465 meson: dist meson build files
9466 Ship meson build files in tarballs, so people who use tarballs
9467 in their builds can start playing with meson already.
9469 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9471 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9472 libs: encoder: vp8: add CBR encoding mode
9473 This patch enables the Constant BitRate encoding mode in VP8 encoder.
9474 Basically it adds the configuration parameters required by libva to
9476 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9477 https://bugzilla.gnome.org/show_bug.cgi?id=749950
9479 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
9481 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9482 libs: encoder: vp8: fix bitrate calculation
9483 Base encoder's unit of bitrate is in Kbps. We should honor it so
9484 we use the value of bitrate in VA, in which is expressed in bps.
9485 https://bugzilla.gnome.org/show_bug.cgi?id=749950
9487 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9489 * gst/vaapi/gstvaapipluginbase.c:
9490 plugins: fix build when gcc
9491 In commit a8e482f9 we added a function without parameters, but gcc
9494 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
9496 * gst-libs/gst/base/meson.build:
9497 * gst-libs/gst/meson.build:
9498 * gst-libs/gst/vaapi/meson.build:
9499 * gst-libs/meson.build:
9501 * gst/vaapi/meson.build:
9503 * meson_options.txt:
9504 vaapi: add meson build
9505 https://bugzilla.gnome.org/show_bug.cgi?id=778250
9507 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
9510 * gst-libs/gst/vaapi/Makefile.am:
9511 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9512 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
9513 make: remove gstvaapiversion.h generation
9514 https://bugzilla.gnome.org/show_bug.cgi?id=778250
9516 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
9518 * gst/vaapi/gstvaapipluginbase.c:
9519 plugins: use linear storage if not the same device
9520 When dmabuf is negotiated downstream and decoding and rendering are
9521 not done on the same device, the layout has to be linear in order for
9522 the memory to be shared accross devices, since each device has its
9523 own way to do tiling.
9524 Right now this code is rather just a to-do comment, since we are not
9525 fetching the device ids.
9526 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9528 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
9530 * gst-libs/gst/vaapi/gstvaapiutils.c:
9531 libs: utils: add HEVC profiles representation
9532 https://bugzilla.gnome.org/show_bug.cgi?id=778318
9534 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
9536 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9537 libs: decoder: h264: reduce frame number of gaps
9538 Reduce frame num gaps so that we don't have to create unnecessary
9539 dummy pictures, just throw them away.
9540 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9541 https://bugzilla.gnome.org/show_bug.cgi?id=777506
9543 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9545 * gst/vaapi/gstvaapidecode.c:
9546 vaapidecode: don't GLTextureUpload if dmabuf
9547 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
9548 element can handle dmabuf-based buffers, avoiding its negotiation.
9550 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
9552 * gst/vaapi/gstvaapidecode.c:
9553 vaapidecode: make pool to export decoder's surface
9554 Use new -base API gst_video_decoder_allocate_output_frame_full() to
9555 pass the current proxy/surface to the pool.
9556 The pool will will export thins given surface instead of exporting a
9557 brand new surface that will never be filled in with meaningfull data.
9558 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9560 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9562 * gst/vaapi/gstvaapipluginbase.c:
9563 plugins: decoder can negotiate dmabuf downstream
9565 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
9567 * gst/vaapi/gstvaapivideobufferpool.c:
9568 vaapivideobufferpool: override acquire_buffer()
9569 Overriding the vmethod acquire_buffer() it is possible to attach the
9570 right GstMemory to the current acquired buffer.
9571 As a matter of fact, this acquired buffer may contain any instantiated
9572 GstFdmemory, since this buffer have been popped out from the buffer
9573 pool, which is a FIFO queue. So there is no garantee that this buffer
9574 matches with the current processed surface. Evenmore, the VA driver
9575 might not use a FIFO queue. Therefore, it is no way to guess on the
9577 In short, acquire_buffer on the VA driver and on the buffer pool return
9578 none matching data, we have to manually attach the right GstFdMemory to
9579 the acquired GstBuffer. The right GstMemory is the one associated with
9580 the current surface.
9581 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9583 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
9585 * gst/vaapi/gstvaapivideobufferpool.c:
9586 * gst/vaapi/gstvaapivideomemory.c:
9587 vaapivideomemory: export surface if it is provided
9588 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
9589 had to create that surface. Now it can also export an already provided
9590 surface. It is useful to export decoder's surfaces (from VA context).
9591 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9593 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
9595 * gst/vaapi/gstvaapivideobufferpool.h:
9596 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
9597 Useful to let the pool know the current surface proxy when calling
9598 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
9599 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9601 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
9603 * gst-libs/gst/vaapi/gstvaapisurface.c:
9604 * gst-libs/gst/vaapi/gstvaapisurface.h:
9605 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
9606 These functions are useful when a dmabuf-based memory is instantiated in
9607 order to relate the generated buffer @proxy with the processed @surface.
9608 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9610 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
9612 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
9613 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
9614 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
9615 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
9616 This patch adds a GstMemory as a variable member of the buffer proxy,
9617 because we will need to associate the buffer proxy with the memory
9618 which exposes it. Later, we will know which memory, in the video buffer
9619 pool, is attached to the processed surface.
9620 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9622 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
9624 * gst/vaapi/gstvaapipostproc.c:
9625 vaapipostproc: don't GLTextureUpload if dmabuf
9626 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
9627 element can handle dmabuf-based buffers, avoiding its negotiation.
9628 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
9629 feature if can dmabuf"
9630 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9632 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9634 * gst/vaapi/gstvaapipluginbase.c:
9635 plugins: enable DMAbuf allocator to downstream
9636 If the negotiated caps are raw caps and downstream supports the
9637 EGL_EXT_image_dma_buf_import extension, then the created allocator
9638 is the DMAbuf, configured to downstream.
9639 At this moment, the only element which can push dmabuf-based buffers
9640 to downstream, is vaapipostproc.
9642 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9644 * gst/vaapi/gstvaapipluginbase.c:
9645 * gst/vaapi/gstvaapipluginbase.h:
9646 plugins: check if negotiate dmabuf with downstream
9647 In order to enable, in the future, dmabuf-based buffers, the vaapi base
9648 plugin needs to check if downstream can import dmabuf buffers.
9649 This patch checks if downstream can handle dmabuf, by introspecting the
9650 shared GL context. If the GL context is EGL/GLES2 and have the extension
9651 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
9652 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9654 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
9656 * gst/vaapi/gstvaapivideomemory.c:
9657 vaapivideomemory: release proxy's data if downstream
9658 The surface created for downstream is going to be filled by VAAPI
9659 elements. So, the driver needs write access on that surface.
9660 This patch releases the derived image held by the proxy, thus the
9661 surface is unmarked as busy.
9662 This is how it has to be done as discussed on libva mailing list.
9663 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9665 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
9667 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
9668 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
9669 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
9670 Adds an API to request the user's data release in the buffer proxy.
9671 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9673 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
9675 * gst/vaapi/gstvaapipluginbase.c:
9676 * gst/vaapi/gstvaapivideomemory.c:
9677 * gst/vaapi/gstvaapivideomemory.h:
9678 vaapivideomemory: add direction to dmabuf allocator
9679 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
9680 we later could do different thing when the allocated memory is for
9681 upstream or dowstream, as required by VA-API.
9682 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9684 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
9686 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
9687 libs: utils: return NULL if failed to get surface formats
9688 Thus, when generating the allowed caps, the element will throw a
9689 warning and it will use its caps template.
9690 This behavior might be a bug in the VA driver.
9691 https://bugzilla.gnome.org/show_bug.cgi?id=775490
9693 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9695 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9696 Revert "vaapidisplay: mark X11 display as compatible with EGL"
9697 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
9699 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
9701 * gst/vaapi/gstvaapipostproc.c:
9702 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
9703 A value of width/height property should be set to out caps,
9704 if negotiation had been going properly.
9705 So we can use srcpad_info when making decision of scaling.
9706 https://bugzilla.gnome.org/show_bug.cgi?id=778010
9708 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9710 * gst/vaapi/gstvaapidecode.c:
9711 * gst/vaapi/gstvaapiencode.c:
9712 * gst/vaapi/gstvaapipluginutil.c:
9713 * gst/vaapi/gstvaapipluginutil.h:
9714 * gst/vaapi/gstvaapipostproc.c:
9715 * gst/vaapi/gstvaapisink.c:
9716 plugins: handle GL params through context query
9717 If the element instantiated the GL display and context, they should
9718 handle them too through the context query.
9719 https://bugzilla.gnome.org/show_bug.cgi?id=777409
9721 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9723 * gst/vaapi/gstvaapipluginbase.c:
9724 * gst/vaapi/gstvaapipluginbase.h:
9725 * gst/vaapi/gstvaapipluginutil.c:
9726 plugins: create a GL context on certain conditions
9727 If a GstVaapiDisplay is not found in the GStreamer context sharing,
9728 then VAAPI elements look for a local GstGLContext in gst context
9729 sharing mechanism ('gst.gl.local.context').
9730 If this GstGLContext not found either then, only the VAAPI decoders
9731 and the VAAPI post-processor, will try to instantiate a new
9733 If a valid GstGLContext is received, then a new GstVaapiDisplay will
9734 be instantiated with the platform, API and windowing specified by the
9735 instantiated GstGLContext.
9736 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
9737 https://bugzilla.gnome.org/show_bug.cgi?id=777409
9739 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9741 * gst/vaapi/gstvaapivideocontext.c:
9742 vaapivideocontext: context type can be rejected
9743 Instead of calling g_return_val_if_fail() to check the context type, we
9744 should use a normal conditional, since it is possible that other context types
9745 can arrive and try to be assigned. Otherwise a critical log message is
9747 This happens when we use playbin3 with vaapipostproc as video-filter.
9748 https://bugzilla.gnome.org/show_bug.cgi?id=777409
9750 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9752 * gst/vaapi/gstvaapipostprocutil.c:
9753 vaapipostproc: use sink caps par if not requested
9754 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
9756 https://bugzilla.gnome.org/show_bug.cgi?id=777395
9758 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9760 * gst/vaapi/gstvaapipostproc.c:
9761 * gst/vaapi/gstvaapipostprocutil.c:
9762 vaapipostproc: set interlace mode
9763 if the vaapipostproc is configured to not do deinterlacing, the
9764 interlace-mode in the src caps should be the same as the input caps.
9765 https://bugzilla.gnome.org/show_bug.cgi?id=777395
9767 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9769 * gst/vaapi/gstvaapisink.c:
9770 vaapisink: fix gcc compiler warning
9771 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
9773 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9775 * gst/vaapi/gstvaapisink.c:
9776 vaapisink: don't use member variable outside lock
9777 Thus a race condition segfault is avoided.
9778 Original-patch-by: Matt Staples <staples255@gmail.com>
9779 https://bugzilla.gnome.org/show_bug.cgi?id=777146
9781 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9783 * gst/vaapi/gstvaapipluginbase.c:
9784 * gst/vaapi/gstvaapipostproc.c:
9785 plugins: avoid log flood when activating pool
9786 Every time a new buffer is allocated, the pool is activated. This
9787 doesn't impact in performance since gst_buffer_pool_set_active()
9788 checks the current state of the pool. Nonetheless it logs out a
9789 message if the state is the same, and it floods the logging subsystem
9791 To avoid this log flooding first the pool state is checked before
9794 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9796 * gst-libs/gst/vaapi/gstvaapidecoder.c:
9797 * gst-libs/gst/vaapi/gstvaapidecoder.h:
9798 * gst/vaapi/gstvaapidecode.c:
9799 * gst/vaapi/gstvaapidecode.h:
9800 vaapidecode: update internal decoder sink caps
9801 When a new sink caps arrive the internal decoder state is updated
9802 and, if it is, request a downstream renegotiation.
9803 Previously, when new caps arrived the whole decoder where destroyed
9804 and recreated. Now, if the caps are compatible or has the same codec,
9805 the internal decoder is kept, but a downstream renegotiation is
9807 https://bugzilla.gnome.org/show_bug.cgi?id=776979
9809 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
9814 === release 1.11.1 ===
9816 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
9821 * gstreamer-vaapi.doap:
9824 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9826 * gst-libs/gst/vaapi/gstvaapiutils.c:
9827 vaapi: bump ifdef to API 0.40.0 for log redirect
9828 vaSetInfoCallback() is not released yet. It is going to appear in
9831 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
9833 * gst-libs/gst/vaapi/gstvaapiutils.c:
9834 vaapiutils: Fix compilation with latest and previous libva releases
9835 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
9838 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9840 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9841 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9842 * gst-libs/gst/vaapi/gstvaapiutils.c:
9843 * gst-libs/gst/vaapi/gstvaapiutils.h:
9844 libs: display: redirect logging at initialize
9845 Redirect libva's logs to GStreamer logging mechanism. This is
9846 particularly useful when VA is initialized, because it always logs
9847 out the drivers details.
9848 In order to achieve this a new helper function was added as a wrapper
9849 for the vaInitialize() function.
9850 https://bugzilla.gnome.org/show_bug.cgi?id=777115
9852 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
9854 * gst/vaapi/gstvaapipluginbase.c:
9855 plugins: provide at least two buffers in sink pool
9856 Adds two buffers as the default value of minimum buffer.
9857 This would be used when creating and proposing vaapi bufferpool for
9858 sink pad, hence the upstream element will keep, at least, these two
9860 https://bugzilla.gnome.org/show_bug.cgi?id=775203
9861 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9863 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
9865 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9866 libs: decoder: h264: don't update cloned attributes
9867 If the frame is a cloned picture, its PTS comes from its parent
9868 picture. In addition, the base decoder doesn't set a valid PTS to
9869 the frame corresponding to the cloned picture.
9870 https://bugzilla.gnome.org/show_bug.cgi?id=774254
9872 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9874 * gst/vaapi/gstvaapivideomemory.c:
9875 vaapivideomemory: check for display
9876 This patch fixes the check of display, rather than check for the
9877 meta, which it is known it exists.
9879 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9881 * gst/vaapi/gstvaapivideomemory.c:
9882 * gst/vaapi/gstvaapivideomemory.h:
9883 vaapivideomemory: rename dmabuf allocator parameters
9884 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
9885 'surface_alloc_flags' respectively. The purpose of this change is
9886 to auto-document those parameters.
9887 Also, aligned to this patch, the local 'alloc_info' variable was
9888 renamed as 'surface_info', because it stores the possible surface's
9889 video info, not the allocate one.
9891 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9893 * gst/vaapi/gstvaapivideomemory.c:
9894 * gst/vaapi/gstvaapivideomemory.h:
9895 vaapivideomemory: rename vip to alloc_info parameter
9896 In order to auto-document the code, this patch renames the 'vip'
9897 parameter in the functions related to gst_vaapi_video_allocator_new ()
9898 to 'alloc_info', since it declares the allocation video info from
9899 the vaapi buffer pool.
9901 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9903 * gst/vaapi/gstvaapivideomemory.c:
9904 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
9905 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
9906 the video format string.
9908 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9910 * gst/vaapi/gstvaapivideomemory.c:
9911 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
9912 gst_vaapi_surface_new_with_format() is a wrapper for
9913 gst_vaapi_surface_new_full (). In this case, the former is simpler
9914 than the first. This patch changes that.
9916 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
9918 * gst/vaapi/gstvaapipostproc.c:
9919 vaapipostproc: notify if src pad caps changed
9920 If src pad caps have changed, it needs to notify it downstream. In
9921 addition, do not set passthrough if they have changed.
9922 Otherwise, transform sometimes starts processing before caps change.
9923 The passthrough value will be set in fixate later in this case.
9924 https://bugzilla.gnome.org/show_bug.cgi?id=775204
9926 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9928 * gst/vaapi/gstvaapidecodebin.c:
9929 vaapidecodebin: capsfilter to optimize negotiation
9930 Add a capsfilter forcing the caps
9931 "video/x-raw(memory:VASurface), format=(string)NV12" between the
9932 queue and the vaapipostproc so no renegotiation is required.
9933 https://bugzilla.gnome.org/show_bug.cgi?id=776175
9935 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
9937 * gst/vaapi/gstvaapivideomemory.c:
9938 vaapivideomemory: fail surface/image configuration
9939 To detect and handle errors during allocator_configure_surface_info()
9940 and allocator_conigure_image_info().
9941 https://bugzilla.gnome.org/show_bug.cgi?id=776084
9942 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9944 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
9946 * gst/vaapi/gstvaapisink.c:
9947 vaapisink: ensures raw caps at start()
9948 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
9949 race conditions at get_caps(), especially with multiple src elements.
9950 https://bugzilla.gnome.org/show_bug.cgi?id=776303
9952 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9954 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
9955 libs: surface: fix error handling code style
9957 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9959 * gst/vaapi/gstvaapivideomemory.c:
9960 vaapivideomemory: add gst_video_info_update_from_surface()
9961 With this function is possible to refactor and remove duplicated code
9962 between dmabuf configuration and direct rendering/uploading
9965 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9967 * gst/vaapi/gstvaapivideomemory.c:
9968 vaapivideomemory: no log object at initialization
9969 When an instance of GstVaapiVideoAllocator fails at initializing, the
9970 log message should not include the allocator's object, because it is
9971 going to be unrefed.
9973 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9975 * gst/vaapi/gstvaapidecode.c:
9976 vaapidecode: lock stream when setting caps
9978 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9980 * gst/vaapi/gstvaapidecode.c:
9981 Revert "vaapidecode: implement negotiate() vmethod"
9982 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
9983 videodecode's negotiate() vmethod is also called when events arrive,
9984 but this would mean that the proper configuration of sink pad might
9985 not be complete, thus we should not update the src pad.
9986 Let's keep the old non-vmethod negotitate().
9988 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9990 * gst/vaapi/gstvaapi.c:
9991 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
9992 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
9994 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
9996 * gst/vaapi/gstvaapiencode.c:
9997 * gst/vaapi/gstvaapiencode.h:
9998 vaapiencode: get surface formats in get_caps()
9999 Query for the supported surface formats in config at get_caps() vmethod.
10000 https://bugzilla.gnome.org/show_bug.cgi?id=769266
10001 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10003 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
10005 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10006 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10007 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
10008 This method will return the valid surface formats in the current
10009 config. If the are no VAConfig it is created with the information
10011 https://bugzilla.gnome.org/show_bug.cgi?id=769266
10012 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10014 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
10016 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10017 libs: encoder: split set_context_info()
10018 Split set_context_info() adding init_context_info() which only
10019 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
10020 required for VAConfig.
10021 https://bugzilla.gnome.org/show_bug.cgi?id=769266
10022 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10024 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
10026 * gst-libs/gst/vaapi/gstvaapicontext.c:
10027 libs: context: skip VAContext if no frame size
10028 If GstVaapiContextInfo has just initial information, without frame's
10029 width and height, skip the creation of the VAContext, just keep the
10031 https://bugzilla.gnome.org/show_bug.cgi?id=769266
10032 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10034 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10036 * gst-libs/gst/vaapi/gstvaapicontext.c:
10037 libs: context: split context_create()
10038 Split the funcion context_create() into context_create() and
10040 Decoupling VAConfig and VAContext during context creation, we could
10041 query the VAConfig for the supported surface's formats without creating
10043 https://bugzilla.gnome.org/show_bug.cgi?id=769266
10045 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10047 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10048 libs: drm: find render node in hybrid system
10049 Originally the drm backend only tried to open the first render node
10050 found. But in hybrid system this first render node might not support
10051 VA-API (propietary Nvidia driver, for example).
10052 This patch tries all the available nodes until a finding one with a
10053 VA-API supported driver.
10054 https://bugzilla.gnome.org/show_bug.cgi?id=774811
10055 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
10056 Reza Razavi <reza@userful.com>
10058 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10060 * gst/vaapi/gstvaapivideomemory.c:
10061 vaapivideomemory: refactor code for readability
10062 Added the inlined function allocator_configure_pools() moving out code
10063 from gst_vaapi_video_allocator_new() to make clear that it is a
10064 post-initalization of the object.
10066 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10068 * gst/vaapi/gstvaapivideomemory.c:
10069 vaapivideomemory: log error if not VA image
10070 Log an error message if the test image for surface downloading
10071 cannot be allocated or mapped.
10073 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10075 * gst/vaapi/gstvaapivideomemory.c:
10076 vaapivideomemory: remove unused macros
10077 These macros are not used. Let us remove them.
10079 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10081 * gst/vaapi/gstvaapivideomemory.c:
10082 * gst/vaapi/gstvaapivideomemory.h:
10083 vaapivideomemory: rename video for allocation_info
10084 Since video_info stores the GstVideoInfo of the allocation caps,
10085 it is clear if we rename it as allocation_info, to distinguish it
10086 later from negotiation_info.
10088 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
10090 * gst/vaapi/gstvaapivideomemory.c:
10091 * gst/vaapi/gstvaapivideomemory.h:
10092 vaapivideomemory: add real GstVaapiDmaBufAllocator
10093 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
10094 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
10095 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
10096 from GstDmaBufAllocator.
10097 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10098 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10100 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
10102 * gst/vaapi/gstvaapivideomemory.c:
10103 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
10104 Add a helper function to initialize the gst_debug_vaapivideomemory,
10105 to use it either by the GstVaapiVideoAllocatorClass or
10106 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
10107 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
10108 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10110 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
10112 * gst/vaapi/gstvaapiencode.c:
10113 vaapiencode: release internal encoder at stop()
10114 As the internal encoder is created at start(), let's release it at
10115 stop() vmethod, to be consistent.
10116 gst_vaapiencode_destroy() is called since it also resets the input and
10117 output states, which is something that the base class does internally
10118 after calling stop() vmethod.
10119 https://bugzilla.gnome.org/show_bug.cgi?id=769266
10120 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10122 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
10125 Automatic update of common submodule
10126 From f49c55e to 39ac2f5
10128 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
10130 * gst/vaapi/gstvaapiencode.c:
10131 vaapiencode: call ensure_encoder() at start()
10132 Currently, specific encoder is created during set_format(). This might
10133 lead to race condition when creating profiles with multiple encoders.
10134 This patch moves ensure_encoder() call to start() vmethod to ensure
10135 avoiding the race condition.
10136 https://bugzilla.gnome.org/show_bug.cgi?id=773546
10138 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10140 * gst/vaapi/gstvaapidecodebin.c:
10141 vaapidecodebin: bring back dynamic configuration
10142 In commit ca0c3fd6 we remove the dynamic configuration if the bin
10143 because we assumed that the bin will be always static as it is
10145 Nonetheless we were wrong, because it is possible to request, with a
10146 property, to avoid the use of the post-processor.
10147 Since we want to add a way to disable the post-processor through
10148 environment variables, this remove feature is required again.
10149 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
10150 postprocessor inside of the vaapidecodebin is disabled, then
10151 vaapidecodebin is an alias of the old vaapidecode.
10152 https://bugzilla.gnome.org/show_bug.cgi?id=775041
10154 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10156 * gst/vaapi/gstvaapidecode.c:
10157 vaapidecode: implement negotiate() vmethod
10158 Instead of decorating the negotiate() method, let us override it,
10159 so the stream is locked while called.
10160 https://bugzilla.gnome.org/show_bug.cgi?id=775040
10162 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
10165 common: use https protocol for common submodule
10166 https://bugzilla.gnome.org/show_bug.cgi?id=775110
10168 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
10170 * gst-libs/gst/vaapi/Makefile.am:
10171 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
10172 In case libva-wayland has its headers not installed in default
10173 locations (like /usr/include), the build fails to include "wayland-client.h":
10174 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
10175 In file included from gstvaapidisplay_wayland.h:27:0,
10176 from gstvaapidisplay_egl.c:35:
10177 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
10178 #include <wayland-client.h>
10179 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
10180 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
10181 for libva-wayland.pc in configure and use this in other places as well. It is thus only
10182 correct and consequent, to do it also at this spot.
10183 https://bugzilla.gnome.org/show_bug.cgi?id=773946
10185 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10187 * gst/vaapi/gstvaapivideocontext.c:
10188 vaapivideocontext: log a message if no bus
10189 Raise a warning if there is no bus when the element tries to post a
10192 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10194 * gst/vaapi/gstvaapisink.c:
10195 vaapisink: create display at open()
10196 Instead of creating the VA display before setting the bus to the
10197 element, it is created when the element is opened.
10198 Basically, this commit is a revert of
10199 5e5d62cac79754ba60057fc2516135aad8d7de35
10200 That was done when the GStreamer's context sharing was not mature
10201 enough as now. There is no reason to keep this hack.
10203 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10205 * gst/vaapi/gstvaapidecode.c:
10206 vaapidecode: don't add video crop meta
10207 Since the differentiation of negotiation caps and allocation caps,
10208 there is no need to add a video crop meta with the negotiation caps.
10209 Hence, removing it.
10210 https://bugzilla.gnome.org/show_bug.cgi?id=773948
10212 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10214 * gst/vaapi/gstvaapivideobuffer.c:
10215 * gst/vaapi/gstvaapivideometa.c:
10216 * gst/vaapi/gstvaapivideometa.h:
10217 remove the video converter from vaapi buffer meta
10218 Since all the video converter were deprecated in gstreamer-1.2, we don't need
10219 to handle them anymore in the vaapi's buffer meta.
10220 This patch removes its usage and the buffer meta's API for that.
10221 https://bugzilla.gnome.org/show_bug.cgi?id=745728
10223 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10225 * gst/vaapi/gstvaapipluginbase.c:
10226 plugins: destroy source pad allocator and pool
10227 First, deactivate source pad pool when the out caps change, and if so,
10228 destroy texture map, the source pad allocator and pool only if the
10229 new caps are different from the ones already set.
10231 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10233 * gst/vaapi/gstvaapipluginbase.c:
10234 plugins: don't destroy sink pad allocator
10235 Don't destroy sink pad allocator at _set_caps() because it will be done at
10236 ensure_sinkpad_buffer_pool() if it is required.
10238 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10240 * gst/vaapi/gstvaapipluginbase.c:
10241 plugins: first validate the out caps
10242 When calling _set_caps() first validate the out caps before doing
10245 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10247 * gst/vaapi/gstvaapidecode.c:
10248 vaapidecode: negotiate after destroying allocator
10249 This is related with bug 758907 when no vaapipostproc is used (no
10250 vaapidecodebin). In order to negotiate downstream we need to destroy
10251 the source pad allocator, otherwise the same allocated buffers are
10252 used, failing the mapping.
10254 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10256 * gst/vaapi/gstvaapivideomemory.c:
10257 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
10258 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
10259 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
10261 https://bugzilla.gnome.org/show_bug.cgi?id=774782
10263 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10265 * gst/vaapi/gstvaapipluginbase.c:
10266 plugins: update the src pad allocator video info
10267 Update the size, stride and offset of the source pad allocator video
10268 info, so the pool could set the correct GstVideoMeta
10269 https://bugzilla.gnome.org/show_bug.cgi?id=774782
10271 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10273 * gst/vaapi/gstvaapivideomemory.c:
10274 vaapivideomemory: add missing documentation
10275 https://bugzilla.gnome.org/show_bug.cgi?id=774782
10277 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10279 * gst/vaapi/gstvaapipluginbase.c:
10280 plugins: use early return without goto
10281 https://bugzilla.gnome.org/show_bug.cgi?id=774782
10283 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10285 * gst/vaapi/gstvaapipluginbase.c:
10286 * gst/vaapi/gstvaapivideomemory.c:
10287 * gst/vaapi/gstvaapivideomemory.h:
10288 plugins: add allocator to allocation query
10289 This patch adds the created allocator to the allocation query either
10290 in decide_allocation() and propose_allocation() vmehtods.
10291 With it, there's no need to set the modified allocator's size in the
10292 pool configuration.
10293 https://bugzilla.gnome.org/show_bug.cgi?id=774782
10295 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
10297 * gst/vaapi/gstvaapivideobufferpool.c:
10298 vaapivideobufferpool: set correct buffer size
10299 We should set the correct buffer size when we are configuring the pool,
10300 otherwise the buffer will be discarded when it returns to the pool.
10301 Indeed when the ref-count of a buffer reaches zero, its pool will queue
10302 it back (and ref it) if, and only if, the buffer size matches the
10303 configured buffer size on the pool.
10304 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
10305 https://bugzilla.gnome.org/show_bug.cgi?id=774782
10307 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10309 * gst/vaapi/gstvaapivideomemory.c:
10310 vaapivideomemory: check for memory allocator
10311 When calling gst_vaapi_video_memory_copy() the allocator of the memory
10312 to copy should be allocated by the vaapi allocator.
10313 This patch does this verification.
10315 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10317 * gst/vaapi/gstvaapivideomemory.c:
10318 vaapivideomemory: code style fixes
10319 A cosmetic commit for enhance readability of the casts and method
10322 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10324 * gst/vaapi/gstvaapivideomemory.c:
10325 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
10326 Instead of having a gst_vaapi_video_memory_free() that is only going to
10327 be called by gst_vaapi_video_allocator_free(), let's just remove the first
10328 and merged into the second.
10330 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10332 * gst/vaapi/gstvaapivideomemory.c:
10333 vaapivideomemory: avoid virtual methods casting
10334 Use the expected virtual method signatures for readability.
10336 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10338 * gst/vaapi/gstvaapivideomemory.c:
10339 vaapivideomemory: remove unimplemented methods
10340 Remove unimplemented method for allocator mem_share() and mem_is_span().
10342 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10344 * gst/vaapi/gstvaapivideomemory.c:
10345 vaapivideomemory: fail if frame map can't get plane
10346 If map() vmethod in GstVideMeta cannot get the plane data, return false,
10347 thus the caller will not try to read invalid memory.
10348 https://bugzilla.gnome.org/show_bug.cgi?id=774213
10350 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10352 * gst/vaapi/gstvaapivideomemory.c:
10353 * gst/vaapi/gstvaapivideomemory.h:
10354 vaapivideomemory: lock map and unmap operations
10355 In order to avoid race condition when two threads call map/unmap the same
10356 VA surface, this patch mutex these operations.
10357 https://bugzilla.gnome.org/show_bug.cgi?id=774213
10359 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10361 * gst/vaapi/gstvaapivideomemory.c:
10362 vaapivideomemory: refactor vaapi memory unmapping
10363 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
10364 gst_vaapi_video_memory_unmap() when unmapping.
10365 This patch refactors both methods adding the common function
10366 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
10367 is correctly reset.
10368 Additionally, only when mapping flag has the WRITE bit, it set the image as
10369 current, which was done in gst_video_meta_map_vaapi_memory() but no in
10370 gst_vaapi_video_memory_map().
10371 In order to make this, the mapping flags were required, so instead of
10372 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
10373 https://bugzilla.gnome.org/show_bug.cgi?id=774213
10375 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10377 * gst/vaapi/gstvaapivideomemory.c:
10378 vaapivideomemory: refactor vaapi memory mapping
10379 There were duplicated code in gst_video_meta_map_vaapi_memory() and
10380 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
10381 This patch refactors both methods adding the common function
10382 map_vaapi_memory().
10383 Additionally, only when flag has the READ bit it calls
10384 ensure_images_is_current(), which was done in
10385 gst_video_meta_map_vaapi_memory() but no in
10386 gst_vaapi_video_memory_map().
10387 https://bugzilla.gnome.org/show_bug.cgi?id=772151
10389 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10391 * gst/vaapi/gstvaapidecode.c:
10392 vaapidecode: unref allowed_sinkpad_caps at close()
10393 The variable member allowed_sinkpad_caps is constructed querying the
10394 current VA display. Bearing that in mind, the variable shall be freed
10395 when the VA display changes or is removed.
10396 This patch moves the freeing of allowed_sinkpad_caps to close(), when
10397 the VA display is freed.
10399 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
10401 * gst/vaapi/gstvaapisink.c:
10402 vaapisink: finish event thread at stop()
10403 The thread that handles window's events should be finished during
10404 pipeline's shutdown, otherwise it will remain alive during pipeline
10405 re-activation, leading to unexpected problems.
10406 This patch fixes failures of intensive_state_change scenario of
10408 https://bugzilla.gnome.org/show_bug.cgi?id=774241
10410 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10412 * gst/vaapi/gstvaapipostproc.c:
10413 vaapipostproc: enhance debug message
10414 "gst_pad_push" is not a good description of the event.
10416 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
10418 * gst/vaapi/gstvaapipostproc.c:
10419 postproc: honor gst_pad_push() return value
10420 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
10421 deadlock during seek.
10422 This patch returns the same error of gst_pad_push() and log out the
10424 https://bugzilla.gnome.org/show_bug.cgi?id=774030
10426 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10428 * gst/vaapi/gstvaapidecode.c:
10429 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
10430 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
10431 compiled with out EGL/GLX support: it shall not support
10432 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
10433 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
10434 allowed src caps for vaapedecode if EGL/GLX.
10436 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10438 * gst/vaapi/gstvaapivideomemory.c:
10439 vaapivideomemory: increment map counter only if succeeded
10440 Previously the frame map counter increased independently if the map succeeded
10441 or not. This leaded to critical messages and crashes if the frame was unable
10442 to be mapped, but the counter increased.
10443 This patch increases the map counter only if the map operation occurred.
10444 https://bugzilla.gnome.org/show_bug.cgi?id=773939
10446 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10448 * gst/vaapi/gstvaapipluginbase.c:
10449 plugins: set negotiation caps in src allocator
10450 When the allocator is created, it stores the allocation caps. But sometimes
10451 the "allocation caps" may be different from the "negotiation caps".
10452 In this case, the allocator should store the negotiation caps since they
10453 are the ones used for frame mapping with GstVideoMeta.
10454 When vaapispostproc is used, this is not a problem since the element is assume
10455 to resize. But when using a vaapi decoder only, with a software renderer, it
10456 fails in this case.
10457 https://bugzilla.gnome.org/show_bug.cgi?id=773323
10459 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10461 * gst/vaapi/gstvaapidecode.c:
10462 * gst/vaapi/gstvaapidecode.h:
10463 vaapidecode: generate source pad caps
10464 Just as vaapipostproc, VA decoder's context can be queried to get the possible
10465 raw formats, so, the src caps can negotiate the exact caps that the context
10468 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10470 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10471 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10472 libs: decoder: add _get_surface_formats()
10473 This function exposes the available formats of the surfaces in the the current
10474 context to the plugins.
10476 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10478 * gst-libs/gst/vaapi/gstvaapicontext.c:
10479 * gst-libs/gst/vaapi/gstvaapicontext.h:
10480 libs: context: ensure context formats
10481 This patch ensures to get the formats, as filter does, available in the
10482 decoder / encoder context.
10483 The context fills up the array as soon it is created, otherwise the pipeline
10484 could get stalled (perhaps this is a bug in my HSW backend).
10485 https://bugzilla.gnome.org/show_bug.cgi?id=752958
10487 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10489 * gst-libs/gst/vaapi/gstvaapifilter.c:
10490 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
10491 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
10492 libs: move get_surface_formats to utils_core
10493 The query of all the supported formats for a VA config were only used by the
10494 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
10495 negotiate a suitable raw format with downstream, we need to query these
10496 formats against the decoder's config.
10497 This patch is the first step: moves the code in filter's ensure_image() to a
10498 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
10499 shared later by the decoder.
10500 https://bugzilla.gnome.org/show_bug.cgi?id=752958
10502 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10504 * gst/vaapi/gstvaapipluginbase.c:
10505 plugins: remove set_sinkpad_dmabuf_allocator()
10506 Since when the sink pad allocator is created, it is decided if the required
10507 one is vaapi allocator or dmabuf allocator, there is no need to force its set
10510 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10512 * gst/vaapi/gstvaapipluginbase.c:
10513 plugins: ensure display when getting raw caps
10514 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
10515 meanwhile it is transforming caps. The problem is that stop() calls
10516 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
10517 the va display is used in tranform_caps() when it is extracting the possible
10518 format conversions. This display disappearing generates warning messages.
10519 This patch holds a local reference of va display at ensure_allowed_raw_caps()
10520 hence it doesn't go away meanwhile it is used, even if the
10521 gst_vaapi_plugin_base_close() is called in other thread.
10522 https://bugzilla.gnome.org/show_bug.cgi?id=773593
10524 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10526 * gst/vaapi/gstvaapiencode_h264.c:
10527 * gst/vaapi/gstvaapiencode_h265.c:
10528 plugins: fix code style for errors
10530 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10532 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
10533 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
10534 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
10535 * gst-libs/gst/vaapi/gstvaapicontext.c:
10536 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
10537 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10538 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
10539 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10540 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10541 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
10542 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10543 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10544 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
10545 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10546 * gst-libs/gst/vaapi/gstvaapidisplay.c:
10547 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
10548 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10549 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10550 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10551 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
10552 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10553 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10554 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10555 * gst-libs/gst/vaapi/gstvaapifilter.c:
10556 * gst-libs/gst/vaapi/gstvaapiimage.c:
10557 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
10558 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
10559 * gst-libs/gst/vaapi/gstvaapipixmap.c:
10560 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
10561 * gst-libs/gst/vaapi/gstvaapisurface.c:
10562 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
10563 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
10564 * gst-libs/gst/vaapi/gstvaapitexture.c:
10565 * gst-libs/gst/vaapi/gstvaapiutils.c:
10566 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
10567 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
10568 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10569 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
10570 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10571 libs: fix code style for errors
10573 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10575 * gst/vaapi/gstvaapipluginbase.c:
10576 * gst/vaapi/gstvaapivideocontext.c:
10577 plugins: update GstGL deprecated symbol
10578 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
10580 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10582 * gst/vaapi/gstvaapipluginbase.c:
10583 plugins: direct render when raw video
10584 Enable the direct rendering with linear surfaces if the negotiated src caps
10585 are video/x-raw without features.
10586 Pass also the caps, since they are needed to know the requested caps features.
10588 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10590 * gst/vaapi/gstvaapipluginbase.c:
10591 plugins: move src allocator error to instantiator
10592 Just as we did in ensure_sinkpad_allocator(), let's move the error message
10593 into the ensure_srcpad_allocator() from the caller,
10594 gst_vaapi_plugin_base_decide_allocation()
10596 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10598 * gst/vaapi/gstvaapipluginbase.c:
10599 plugins: enable direct upload if raw video
10600 Enable the direct upload with linear surfaces if the negotiated sink caps are
10601 video/x-raw without features.
10603 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10605 * gst/vaapi/gstvaapipluginutil.c:
10606 * gst/vaapi/gstvaapipluginutil.h:
10607 pluginutil: add gst_caps_is_video_raw()
10609 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10611 * gst/vaapi/gstvaapipluginbase.c:
10612 plugins: receive caps in ensure_sinkpad_allocator()
10613 Instead of receiving the GstVideoInfo structure as parameter, get the original
10614 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
10615 which allocator instantiate.
10617 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10619 * gst/vaapi/gstvaapivideomemory.c:
10620 vaapivideomemory: destroy derived image at unmap
10621 If the allocator was configured to use direct upload or rendering, the
10622 generated derived image created at mapping needs to be destroyed after
10623 unmapping, because, in order to process the surface, it should not be marked
10624 as "busy" by the driver.
10626 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10628 * gst/vaapi/gstvaapivideomemory.c:
10629 vaapivideomemory: enhance logs for direct modes
10630 Print, conditionally, only the enabled direct mode.
10632 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10634 * gst/vaapi/gstvaapivideomemory.c:
10635 * gst/vaapi/gstvaapivideomemory.h:
10636 vaapivideomemory: add direct upload flag
10637 Adds the direct-upload flag in the GstVaapiVideoAllocator and
10638 GstVaapiVideoMemory.
10639 It still doesn't apply any functional change.
10641 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10643 * gst/vaapi/gstvaapipluginbase.c:
10644 * gst/vaapi/gstvaapivideomemory.c:
10645 * gst/vaapi/gstvaapivideomemory.h:
10646 vaapivideomemory: set direct rendering at run-time
10647 The way to experiment with the direct rendering is through and internal
10648 compiler pre-processor flag.
10649 The current change set enables a way to specified at run-time, as a flag
10650 passed to the allocator at instanciation time.
10652 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10654 * gst/vaapi/gstvaapivideomemory.c:
10655 vaapivideomemory: log in perf category when copy
10656 Log in performance category when the derive image handling fails, falling back
10659 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10661 * gst/vaapi/gstvaapivideomemory.c:
10662 vaapivideomemory: error log is derive image fails
10663 Instead of a silently failure of the derive image, this patch log an error
10664 message according to the failure.
10666 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10668 * gst/vaapi/gstvaapivideomemory.c:
10669 vaapivideomemory: store surface alloc flags in qdata
10670 For sake of consistency, we should add the requested surface allocation flags
10671 to the object's qdata structure.
10673 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10675 * gst/vaapi/gstvaapivideomemory.c:
10676 vaapivideomemory: category init when object define
10677 Move the Gstreamer debug category initialize to the GObject definition.
10679 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10681 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
10682 libs: vaapitexturemap: trivial code-style fix
10684 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10686 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
10687 libs: display: egl: avoid recreate native display
10688 Instead of passing the native descriptor of the display, just pass the received
10689 GstVaapiDisplay and reuse it.
10691 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10693 * gst/vaapi/gstvaapipluginbase.c:
10694 plugins: log the GstVaapiDisplay name
10695 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
10696 name. Log it instead of the memory address.
10698 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
10700 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
10701 libs: window: egl: pass native va display
10702 When creating a GstVaapiWindowEGL, it also creates native window by its own
10703 native display. It should pass the native display, either X11 or Wayland.
10704 https://bugzilla.gnome.org/show_bug.cgi?id=768266
10706 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
10708 * gst-libs/gst/vaapi/gstvaapidebug.h:
10709 * gst-libs/gst/vaapi/gstvaapidisplay.c:
10710 * gst-libs/gst/vaapi/gstvaapidisplay.h:
10711 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10712 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
10713 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
10714 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
10715 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
10716 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
10717 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
10718 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
10719 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
10720 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
10721 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
10722 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
10723 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
10724 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
10725 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
10726 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
10727 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
10728 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
10729 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
10730 * gst/vaapi/gstvaapivideocontext.c:
10731 libs: display: GstVaapiDisplay as GstObject descendant
10732 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
10733 instead of GstVaapiMiniObject. In this way we can use all the available
10734 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
10735 In addition, a new debug category for GstVaapiDisplay is created to make it
10736 easier to trace debug messages. It is named "vaapidisplay" and it transverse
10737 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
10738 This patch is a step forward to expose GstVaapiDisplay for users in a future
10740 https://bugzilla.gnome.org/show_bug.cgi?id=768266
10741 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10743 === release 1.11.0 ===
10745 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
10748 Back to development
10750 === release 1.10.0 ===
10752 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
10757 * gstreamer-vaapi.doap:
10760 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10762 * gst/vaapi/gstvaapidecodebin.c:
10763 vaapidecodebin: resurrect disable-vpp property
10764 https://bugzilla.gnome.org/show_bug.cgi?id=773589
10766 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10768 * gst/vaapi/gstvaapidecodebin.c:
10769 vaapidecodebin: name the internal queue
10770 https://bugzilla.gnome.org/show_bug.cgi?id=773589
10772 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10774 * gst/vaapi/gstvaapidecodebin.c:
10775 * gst/vaapi/gstvaapidecodebin.h:
10776 vaapidecodebin: remove unused variables
10777 Since vaapipostproc is only registered if the driver supports it, all the
10778 support for dynamic loading were removed. Though some leftovers remained.
10779 https://bugzilla.gnome.org/show_bug.cgi?id=773589
10781 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10783 * docs/plugins/Makefile.am:
10784 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
10785 * docs/plugins/running.xml:
10786 docs: document environment variables
10787 https://bugzilla.gnome.org/show_bug.cgi?id=773544
10789 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10791 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
10792 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
10793 * gst/vaapi/Makefile.am:
10794 * gst/vaapi/gstvaapidecode.c:
10795 * gst/vaapi/gstvaapidecodebin.c:
10796 * gst/vaapi/gstvaapidecodedoc.c:
10797 docs: replace vaapidecode with each codec
10798 In the spirit of the codec split, this patch removes the documentation of
10799 vaapidecode and adds a page per each possible decoder.
10800 Nonetheless, only those available in the compilation system are going to be
10801 instrospected, because the rest are not registered.
10803 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10805 * gst/vaapi/gstvaapipluginutil.c:
10806 * gst/vaapi/gstvaapivideobuffer.c:
10807 * gst/vaapi/gstvaapivideometa.c:
10808 docs: add missing long descriptions
10810 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10812 * gst/vaapi/gstvaapipostproc.c:
10813 vaapipostproc: use GST_*_OBJECT when possible
10814 Since we can have several vaapipostproc operating in a pipeline, it is useful
10815 to know which one is generating the logging message.
10816 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10818 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10820 * gst/vaapi/gstvaapidecode.c:
10821 * gst/vaapi/gstvaapidecode.h:
10822 vaapidecode: rename member to allowed_sinkpad_caps
10823 vaapidecode has a member named allowed_caps, but this name is not enough
10824 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
10825 No functional changes were included.
10826 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10828 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10830 * gst/vaapi/gstvaapiencode_h264.c:
10831 * gst/vaapi/gstvaapiencode_h265.c:
10832 * gst/vaapi/gstvaapisink.c:
10833 * gst/vaapi/gstvaapivideomemory.c:
10834 * gst/vaapi/gstvaapivideometa.c:
10835 * gst/vaapi/gstvaapivideometa_texture.c:
10836 plugins: fix code style for errors
10837 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10839 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10841 * gst/vaapi/gstvaapivideomemory.c:
10842 vaapivideomemory: comment style
10843 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10845 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10847 * gst/vaapi/gstvaapivideomemory.c:
10848 * gst/vaapi/gstvaapivideomemory.h:
10849 vaapivideomemory: rename input parameter
10850 In order to clarify the use of flag as input parameter, it is renamed to
10851 surface_alloc_flag, since it is used when creating a VA surface with certain
10853 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10855 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10857 * gst/vaapi/gstvaapidecode.c:
10858 vaapidecode: rename element description
10859 So encoders and decoders have similar descriptions.
10860 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10862 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10864 * gst/vaapi/gstvaapiencode_h264.c:
10865 * gst/vaapi/gstvaapiencode_h265.c:
10866 vaapiencode: h264, h265: rename codec name
10867 So encoder and decoders have the same codec name.
10868 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10870 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10872 * gst/vaapi/gstvaapipluginbase.c:
10873 plugins: simplify code
10874 Merge two lines of variable declarations.
10875 https://bugzilla.gnome.org/show_bug.cgi?id=773497
10877 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
10879 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10880 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
10881 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
10882 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10883 libs: minor correction for logical consistency
10884 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
10885 use its methods, even though it doesn't change functionality.
10886 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
10887 GstVaapiObject, hence its methods shall be used.
10888 https://bugzilla.gnome.org/show_bug.cgi?id=772554
10890 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
10892 * gst/vaapi/gstvaapivideomemory.c:
10893 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
10894 In short GstFdMemory is configured to call close when using
10896 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10898 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10901 * gst-libs/gst/vaapi/Makefile.am:
10902 build: clean up the dlopen usage
10904 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10906 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10907 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10908 encoder: h264,h265: fix regression in offset count
10909 In commit dc35dafa a bug was introduced because I assumed that
10910 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
10911 https://bugzilla.gnome.org/show_bug.cgi?id=772259
10913 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10916 docs: update README
10918 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10920 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
10921 libs: display: egl: remove unused header include
10922 The header gmodule.h is not used since the library dynamic loading for EGL
10923 display was removed.
10924 https://bugzilla.gnome.org/show_bug.cgi?id=772599
10926 === release 1.9.90 ===
10928 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
10934 * gstreamer-vaapi.doap:
10937 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
10939 * gst/vaapi/gstvaapidecode.c:
10940 * gst/vaapi/gstvaapidecodebin.c:
10941 * gst/vaapi/gstvaapiencode_h264.c:
10942 * gst/vaapi/gstvaapiencode_h265.c:
10943 * gst/vaapi/gstvaapiencode_jpeg.c:
10944 * gst/vaapi/gstvaapiencode_mpeg2.c:
10945 * gst/vaapi/gstvaapiencode_vp8.c:
10946 * gst/vaapi/gstvaapipostproc.c:
10947 * gst/vaapi/gstvaapisink.c:
10948 vaapi: use new gst_element_class_add_static_pad_template()
10949 https://bugzilla.gnome.org/show_bug.cgi?id=763083
10950 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10952 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10954 * gst/vaapi/gstvaapipluginbase.c:
10955 plugins: reset textures at negotiation/shutdown
10956 When caps reconfiguration is called, the new downstream frame size might be
10957 different. Thus, if the downstream caps change,the display's texture map is
10959 In addition, during pipeline shutdown, textures in texture map have to be
10960 released, since each one have a reference to the GstVaapiDisplay object, which
10961 is a dangerous circular reference.
10962 https://bugzilla.gnome.org/show_bug.cgi?id=769293
10963 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10965 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
10967 * gst-libs/gst/vaapi/gstvaapidisplay.c:
10968 * gst-libs/gst/vaapi/gstvaapidisplay.h:
10969 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
10970 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
10971 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
10972 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
10973 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
10974 * gst/vaapi/gstvaapivideometa_texture.c:
10975 libs: display{egl,glx}: cache GstVaapiTextures
10976 instances when created and reuse
10977 This patch improves performance when glimagesink uploads a GL texture.
10978 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
10979 instance of GstVaapiTextureMap, so our internal texture structure can be found
10980 by matching the GL texture id for each frame upload process, avoiding the
10981 internal texture structure creation and its following destruction.
10982 https://bugzilla.gnome.org/show_bug.cgi?id=769293
10983 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10985 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
10987 * gst-libs/gst/vaapi/Makefile.am:
10988 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
10989 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
10990 libs: vaapitexturemap: implement GstVaapiTextureMap
10991 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
10992 reused. Internally it is a hash table.
10993 Note that it is GstObject based rather than GstVaapiObject, as part of the future
10994 converstion to GstObject of most of the code.
10995 https://bugzilla.gnome.org/show_bug.cgi?id=769293
10996 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10998 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11000 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11001 encoder: vp8: Increase the allocation size for coded buffer
11002 We are not getting enough compression for some streams and
11003 encoded frame end up with more size than allocated.
11004 Assuming a compression ratio of 4, which should be good enough
11005 for holding the frames.
11006 https://bugzilla.gnome.org/show_bug.cgi?id=771528
11008 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11010 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
11011 encoder: vp9: Fix refresh frame flag setting
11012 While doing the mode-1 referece picture selection,
11013 the circular buffer logic was not correctly setting the
11014 refresh frame flags as per VP9 spec.
11015 Make sure refresh_flag[0] get updated correclty after
11016 each cycle of GST_VP9_REF_FRAMES.
11017 https://bugzilla.gnome.org/show_bug.cgi?id=771507
11019 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11021 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11022 vaapidecode: codec_data minimal size is 7
11023 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
11024 stream, not in the codec_data, so the size of codec_data might be 7.
11025 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
11026 https://bugzilla.gnome.org/show_bug.cgi?id=771441
11028 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11030 * gst/vaapi/gstvaapidecode.c:
11031 vaapidecode: reset decoder hard when set_format()
11032 set_format() is called by upstream when the stream capabilites has changed.
11033 Before, if the new stream is compatible with the old one the VA decoder was
11034 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
11035 when the upstreamer parsers gets more details of the stream, such as the
11036 framerate. Hence, when the src caps are negotiates, the further sink caps
11037 updates are ignored.
11038 This patch forces the VA decoder destroying and recreation when set_format()
11040 https://bugzilla.gnome.org/show_bug.cgi?id=770921
11042 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
11045 configure: Depend on gstreamer 1.9.2.1
11047 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11049 * gst/vaapi/gstvaapivideomemory.c:
11050 Revert "vaapivideomemory: load VA Image when mapping to write"
11051 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
11053 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
11056 Automatic update of common submodule
11057 From b18d820 to f980fd9
11059 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
11062 Automatic update of common submodule
11063 From f49c55e to b18d820
11065 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
11067 * gst/vaapi/gstvaapipluginbase.c:
11068 plugins: set allocator's image size to sinkpad bufferpool
11069 Otherwise the buffer is always ditched by the bufferpool, losing performance.
11070 https://bugzilla.gnome.org/show_bug.cgi?id=771035
11072 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11074 * gst-libs/gst/vaapi/gstvaapisurface.c:
11075 libs: surface: ensure composite overlay is not bigger
11076 Ensure the composition overlay rectangle (subtitles) is not bigger than
11077 the surface where it is going to be composited and rendered.
11078 https://bugzilla.gnome.org/show_bug.cgi?id=766978
11080 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
11082 * gst/vaapi/gstvaapivideomemory.c:
11083 vaapivideomemory: load VA Image when mapping to write
11084 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
11085 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
11087 https://bugzilla.gnome.org/show_bug.cgi?id=766978
11089 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11091 * gst/vaapi/gstvaapidecode.c:
11092 vaapidecode: merge vc1 and wmv3 elements
11093 This patch merges vaapivc1dec and vaapiwmv3dec into a single
11094 vaapivc1dec. Also, removed the WMVA format, since it is not
11095 supported by libva.
11096 https://bugzilla.gnome.org/show_bug.cgi?id=734093
11098 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11100 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11101 decoder: vc1: fails only on advanced profile
11102 In commit 2eb4394 the frame coding mode was verified for progressive
11103 regardless the profile. But the FCM is only valid in the advanced
11104 profile. This patch checks for the advanced profile before verifying FCM for
11106 https://bugzilla.gnome.org/show_bug.cgi?id=769250
11108 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11110 * gst/vaapi/gstvaapi.c:
11111 vaapi: DISPLAY envvar as dependency
11112 In a multiple video cards system, a X11 environment may have different VA
11113 capabilities. This patch tracks the DISPLAY environment variable to
11114 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
11115 https://bugzilla.gnome.org/show_bug.cgi?id=770357
11117 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11119 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11120 decoder: vc1: Fail only on actual interlaced frames
11121 In the earlier patch:
11122 f31d9f3 decoder: vc1: Print error on interlaced content
11123 Decoding would error out if the interlace flag was set in the
11124 sequence bdu. This isn't quite right because a video can have this
11125 flag set and yet not have any interlaced pictures.
11126 Here instead we error out when either parsing a field bdu or
11127 decoding a frame bdu which has fcm set to anything other than
11129 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11130 https://bugzilla.gnome.org/show_bug.cgi?id=769250
11132 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
11135 Back to development
11137 === release 1.9.2 ===
11139 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
11144 * gstreamer-vaapi.doap:
11147 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
11149 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11150 decoder: vc1: Print error on interlaced content
11151 Interlaced video is as yet unsupported in the vc1 element. Print
11152 an error to make that more obvious.
11153 https://bugzilla.gnome.org/show_bug.cgi?id=769250
11155 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11157 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11158 encoder: h264: fix C90 mixed declarations and code
11159 Commit 4259d1a introduced this compilation error. This patch fixes it.
11161 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11163 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11164 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11165 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
11166 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11167 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
11168 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
11169 to avoid overflows, underflows and loss of precision.
11170 https://bugzilla.gnome.org/show_bug.cgi?id=768458
11172 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11174 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11175 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11176 vaapiencode: h264,h265: validate fps numerator
11177 Validate that fps numerator is non-zero so it can be used to calculate
11178 the duration of the B frame.
11179 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
11180 order to aviod overflows, underflows and loss of precision.
11181 https://bugzilla.gnome.org/show_bug.cgi?id=768458
11183 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
11185 * gst/vaapi/gstvaapi.c:
11186 encoders: demote to RANK_NONE since not fit for autoplugging yet
11187 Encoders claim to support a whole bunch of input formats but then
11188 just error out if the format is not actually supported, even if
11189 there's a converter in front. This means they're not fit for
11190 autoplugging in encodebin or camerabin yet and therefore should
11191 not have a rank. People can still use them in custom pipelines.
11192 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11194 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11196 * gst/vaapi/gstvaapipluginbase.c:
11197 plugins: check dmabuf-import for sink pad allocator
11198 Check earlier if upstream video source has activated the dmabuf-import
11199 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
11202 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11204 * gst/vaapi/gstvaapipluginbase.c:
11205 plugins: reset allocators if video info changed
11206 If the frame size or format, change, the allocators are reset, so a new ones
11207 can be created with the new video info.
11209 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11211 * gst/vaapi/gstvaapipluginbase.c:
11212 plugins: remove sink pad allocator if caps change
11213 If the negotiated sinkpad caps change, destroy the assignated allocator,
11214 because it is not valid anymore.
11216 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11218 * gst/vaapi/gstvaapipluginutil.c:
11219 * gst/vaapi/gstvaapipluginutil.h:
11220 pluginutil: const params to gst_video_info_changed()
11221 Since they are not modified, we should mark them as const.
11223 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11225 * gst/vaapi/gstvaapipluginbase.c:
11226 * gst/vaapi/gstvaapivideomemory.c:
11227 * gst/vaapi/gstvaapivideomemory.h:
11228 gstvaapivideomemory: allocator's image size getter
11229 Add the method gst_allocator_get_vaapi_image_size() for the
11230 GstVaapiVideoAllocator, which gets the size of the allocated images with the
11231 current video info.
11232 This method replaces the direct call to the allocator's image info when the
11233 pool is configured.
11235 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11237 * gst/vaapi/gstvaapipluginbase.c:
11238 plugins: update buffer pool size with new allocator's image size
11239 Depends on media, video size is sometimes updated with new allocator.
11240 It leads to dismatch between bufferpool's set size and real allocated buffer size.
11241 In this case, it causes every buffer is freed during release in bufferpool,
11242 which should be reused. This affects performance.
11243 https://bugzilla.gnome.org/show_bug.cgi?id=769248
11245 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11248 configure: remove gmodule-2.0 EGL dependency
11249 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
11250 thus the dependency to gmodule-2.0 is not mandatory anymore.
11252 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11255 configure: Fix non-fatal PKG_CHECK_MODULES invocations
11256 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
11257 the package is missing, but action-if-not-found was given as an empty
11258 string which still causes the default action to run, which halts
11260 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11261 https://bugzilla.gnome.org/show_bug.cgi?id=769237
11263 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11265 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
11266 libs: egl: remove dynamic library loading code
11267 Since the upstream of gstreamer-vaapi, the library is not a public shared
11268 object anymore. But the EGL support depended on this dynamic library, so the
11269 EGL support was broken.
11270 This patch removes the dynamic library loading code and instantiates the
11271 EGL display using either X11 or Wayland if available.
11272 https://bugzilla.gnome.org/show_bug.cgi?id=767203
11274 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11276 * gst/vaapi/gstvaapi.c:
11277 * gst/vaapi/gstvaapidecode.c:
11278 * gst/vaapi/gstvaapidecode.h:
11279 vaapidecode: register only the available decoders
11280 In order to register only the available decoders, this patch queries the
11281 created test VA display, which uses the currently used back-end (X11, Wayland,
11282 DRM, …) on the used display device.
11283 https://bugzilla.gnome.org/show_bug.cgi?id=724352
11285 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11287 * gst/vaapi/gstvaapi.c:
11288 * gst/vaapi/gstvaapipluginutil.c:
11289 * gst/vaapi/gstvaapipluginutil.h:
11290 vaapi: register only the available encoders
11291 In order to register only the available encoders, this patch queries the
11292 created test VA display, which uses the currently used back-end (X11,
11293 Wayland, DRM, …) on the used display device.
11294 https://bugzilla.gnome.org/show_bug.cgi?id=724352
11296 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11298 * gst/vaapi/gstvaapidecode.c:
11299 * gst/vaapi/gstvaapidecodebin.c:
11300 vaapidecode: split all the codecs
11301 Split the vaapidecode to all the supported codecs with the format
11303 vaapidecode is stil registered as a GObject type, but not as a
11304 GStreamer feature, so it can be used internally by vaapidecodebin without
11305 changing its code too much.
11306 https://bugzilla.gnome.org/show_bug.cgi?id=734093
11308 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11310 * gst/vaapi/gstvaapidecodebin.c:
11311 vaapidecodebin: simplify the code
11312 Since the elements dependant of the VA video processor are now only registered
11313 if it is available, vaapidecodebin code can be simplified a lot, removing all
11314 the code required to check if the VA video processor was available.
11315 https://bugzilla.gnome.org/show_bug.cgi?id=768899
11317 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11319 * gst/vaapi/gstvaapidecode.c:
11320 vaapidecode: delay the GstVaapiDisplay instantiating
11321 Delay the GstVaapiDisplay instantiating until when changing the state from
11322 READY to PAUSE. In this way the element has more chances to find an already
11323 created GstVaapiDisplay, or a GL context, in the pipeline.
11324 https://bugzilla.gnome.org/show_bug.cgi?id=766206
11326 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11328 * gst/vaapi/gstvaapipluginutil.c:
11329 pluginutil: set GLX display type
11330 The function gst_vaapi_create_display_from_gl_context() cretes a
11331 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
11332 when the GL platform was GLX, but a plain X11 VA display.
11333 This patch fixes that, by querying the GL platform earlier.
11334 https://bugzilla.gnome.org/show_bug.cgi?id=766206
11336 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11338 * gst/vaapi/gstvaapipluginbase.c:
11339 * gst/vaapi/gstvaapivideocontext.c:
11340 * gst/vaapi/gstvaapivideocontext.h:
11341 plugins: add gst_vaapi_plugin_base_find_gl_context()
11342 Using the GstContext mechanism, it is possible to find if the pipeline
11343 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
11344 meta. This is interesting because we could negotiate system memory caps
11345 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
11346 https://bugzilla.gnome.org/show_bug.cgi?id=766206
11348 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11350 * gst/vaapi/gstvaapipluginbase.c:
11351 * gst/vaapi/gstvaapipluginbase.h:
11352 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
11353 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
11356 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11358 * gst/vaapi/gstvaapipluginbase.h:
11359 plugins: remove common change_state() vmethod
11360 Remove the common change_state() vmethod for all the plugins, since no one is
11363 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11365 * gst/vaapi/gstvaapidecode.c:
11366 vaapidecode: remove change_state() vmethod
11367 Since the driver checkup is done at registering, there is no need to do it
11368 when changing the element state from NULL to READY. This patch remove this
11369 vmethod from vaapidecode.
11371 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11373 * gst/vaapi/gstvaapi.c:
11374 vaapi: register vaapipostproc only if supported
11375 Query the GstVaapiDisplay to know if the driver supports video
11376 postprocessing. If does, then register vaapipostproc and vaapidecodebin
11378 This patch will simplify the design of vaapidecodebin.
11379 https://bugzilla.gnome.org/show_bug.cgi?id=724352
11381 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11383 * gst/vaapi/gstvaapi.c:
11384 vaapi: don't register if VA driver is unsupported
11385 Using the test VA display, the driver name is queried, and if it is not
11386 white-listed, the plugin rejects to register any element.
11387 https://bugzilla.gnome.org/show_bug.cgi?id=724352
11389 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11391 * gst/vaapi/gstvaapipluginbase.c:
11392 * gst/vaapi/gstvaapipluginutil.c:
11393 * gst/vaapi/gstvaapipluginutil.h:
11394 plugins: add gst_vaapi_driver_is_whitelisted()
11395 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
11396 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
11397 when registering the plugin's feature set with the test VA display.
11398 https://bugzilla.gnome.org/show_bug.cgi?id=724352
11400 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11402 * gst/vaapi/gstvaapi.c:
11403 vaapi: instantiate a VA display when registering
11404 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
11405 features, if it fails, no gstreamer-vaapi element is registering.
11406 The purpose of this patch is to avoid a situation where the user has
11407 gstreamer-vaapi installed but their VA-API setup is not functional, which may
11408 lead to unexpected behavior.
11409 https://bugzilla.gnome.org/show_bug.cgi?id=724352
11411 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11414 * gst/vaapi/gstvaapi.c:
11415 vaapi: declare external dependencies
11416 There are two main external dependencies that define the feature set of this
11417 plugin: a) the kernel and b) the VA driver
11418 This patch tracks both dependencies, if any of them change, GStreamer will
11419 re-inspect the plugin.
11420 The kernel is tracked through the device files /dev/dri/card*
11421 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
11422 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
11423 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
11424 since they modify the driver lookup.
11425 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
11426 https://bugzilla.gnome.org/show_bug.cgi?id=724352
11428 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11430 * gst/vaapi/gstvaapidecode.c:
11431 vaapidecode: remove unneeded initializations
11432 GObject's memory is set to zero, so there is no need to initialize to zero or
11433 NULL it's class variables.
11435 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11437 * gst/vaapi/gstvaapipluginbase.h:
11438 plugins: remove undefined macros
11440 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11442 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11443 Revert "gstvaapisurface_drm: release image when done"
11444 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
11445 372a03a9e38acbf435eb80bf31d9a9844069e504.
11446 While the dmabuf handle is exported, the derive image must exist, otherwise
11447 the image's VA buffer is invalid, thus the dmabuf handle is never released,
11448 leading into a file descriptors leak.
11450 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11452 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11453 encoder: h265: fix code-style
11455 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11457 * gst/vaapi/gstvaapipostproc.c:
11458 vaapipostproc: update filters at color balance
11459 This is a fix for a regression of previous commit, which updates the filters
11460 only when the property is set, because it is also required to update the
11461 filter when the color balance interface change its values.
11463 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
11465 * gst/vaapi/gstvaapipostproc.c:
11466 * gst/vaapi/gstvaapipostproc.h:
11467 vaapipostproc: make it enable/disable pass-through mode
11468 In case that sink caps and src caps are same, and no filtering parameter set,
11469 pass-through mode is enabled.
11470 If new filtering parameter is set during playback, it makes it reconfiguring,
11471 so that pass-through mode is changed
11472 In addition, updating filter is performed during reconfiguration, if needed.
11473 https://bugzilla.gnome.org/show_bug.cgi?id=751876
11475 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
11477 * gst-libs/gst/vaapi/gstvaapifilter.c:
11478 * gst-libs/gst/vaapi/gstvaapifilter.h:
11479 * gst/vaapi/gstvaapipostproc.c:
11480 vaapipostproc: checking and updating filter parameter only when it's set
11481 This patch is to avoid checking filter value at every frame.
11482 https://bugzilla.gnome.org/show_bug.cgi?id=751876
11484 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
11486 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11487 decoder: h265: handle the SEI NAL units included in codec_data
11488 The prefix/suffix SEI nal units can appear in codec_data too
11489 which weren't handled before. Parse these SEI headers to
11491 https://bugzilla.gnome.org/show_bug.cgi?id=768544
11493 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11495 * docs/plugins/Makefile.am:
11496 build: doc: do not redefine MAINTAINERCLEANFILES
11497 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
11498 overload it, the files should be added.
11500 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11502 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11503 encoder: h264: Fix MVC encode while enabling dct8x8
11504 Pack the transform_8x8_mode_flag and other necessary rbsp data
11505 in packed_pps header for MVC encode.
11506 https://bugzilla.gnome.org/show_bug.cgi?id=768647
11508 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11510 * gst/vaapi/gstvaapisink.c:
11511 vaapisink: demote a debug message to trace
11512 Reduces noise when debugging.
11514 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
11516 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
11517 wayland: Error check before using cached wl_display
11518 A planar(or some other) buffer allocation may fail on the driver, then
11519 the wayland connection becomes invalid, not able to send request or
11520 receive any event. So we need to set up a new wayland connection if
11521 there's an error detected on the cached wl_display.
11522 https://bugzilla.gnome.org/show_bug.cgi?id=768761
11523 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11525 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
11528 Automatic update of common submodule
11529 From ac2f647 to f49c55e
11531 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11533 * gst/vaapi/gstvaapiencode.c:
11534 vaapiencode: demote a log to trace level
11535 Removes noise when debugging.
11537 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
11539 * gst/vaapi/gstvaapiencode.c:
11540 vaapiencode: implement flush() vmethod
11541 In order to handle correctly seek and other operations, vaapiencode should
11542 flush all the remaining data from the encoder without pushing it downstream.
11543 This patch implements the flush() vmethod, only after of pausing the
11544 source pad task, and restarting it again after the flush stop.
11545 https://bugzilla.gnome.org/show_bug.cgi?id=767176
11546 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11548 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11550 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11551 decoder: vc1: flush dpb only if opened
11552 Flush the decode picture buffer, if and only if, the decoder is
11553 started. Otherwise the dpb structure might be NULL.
11554 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11556 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
11558 * gst/vaapi/gstvaapidecode.c:
11559 * gst/vaapi/gstvaapidecode.h:
11560 vaapidecode: drop non-keyframe in reverse playback
11561 To avoid surface-exhausted situation during reverse playback,
11562 drop frames except for key frame.
11563 Also, to avoid the corruption of the parser state, flush() vmethod
11564 doesn't destroy the VA decoder when playing in reverse.
11565 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11566 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11568 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11570 * gst/vaapi/gstvaapidecode.c:
11571 vaapidecode: unref output frame earlier
11572 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
11573 unref that extra reference earlier making the code simpler to follow.
11574 https://bugzilla.gnome.org/show_bug.cgi?id=768652
11576 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11578 * gst/vaapi/gstvaapidecode.c:
11579 vaapidecode: remove gst_vaapidecode_internal_flush()
11580 As gst_vaapidecode_finish() is the only callee of
11581 gst_vaapidecode_internal_flush(), it is better to inline it.
11582 https://bugzilla.gnome.org/show_bug.cgi?id=768652
11584 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11586 * gst/vaapi/gstvaapidecode.c:
11587 vaapidecode: flush output adapter at drain()
11588 Calling drain() vmethod means "decode any data it can at this point, but that
11589 more data may arrive after". Hence, vaapidecode should check if there is data
11590 in the output adapter and process them, without destroying the decoded picture
11592 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
11593 was refactored into a new function gst_vaapidecode_flush_output_adapter().
11594 https://bugzilla.gnome.org/show_bug.cgi?id=768652
11596 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11598 * gst/vaapi/gstvaapidecode.c:
11599 vaapidecode: call purge at flush()
11600 Calling flush() vmethod means "to flush all remaining data from the decoder
11601 without pushing it downstream".
11602 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
11603 gst_video_decoder_have_frame() if there is still something in the input
11604 adapter, which may push buffers to downstream by calling handle_frame().
11605 This patch changes this behavior by calling gst_vaapidecode_purge() rather
11606 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
11607 decoder and releases all the rest of decoded frames.
11608 https://bugzilla.gnome.org/show_bug.cgi?id=768652
11610 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11612 * tests/elements/Makefile.am:
11613 * tests/elements/test-vaapisink.c:
11614 test: elements: remove spurious linkage
11615 Element tests only need to link against gstreamer libraries.
11617 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
11620 configure: Require GLib >= 2.40 like everywhere else
11622 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
11625 Back to development
11627 === release 1.9.1 ===
11629 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
11635 * gstreamer-vaapi.doap:
11638 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11640 * tests/elements/test-vaapisink.c:
11641 tests: elements: rotate orientation event
11643 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
11646 * tests/Makefile.am:
11647 * tests/elements/Makefile.am:
11648 * tests/elements/test-vaapisink.c:
11649 tests: elements: Add testsuite for vaapisink
11650 https://bugzilla.gnome.org/show_bug.cgi?id=765798
11652 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11654 * gst-libs/gst/vaapi/gstvaapitypes.h:
11655 * gst-libs/gst/vaapi/gstvaapivalue.c:
11656 * gst/vaapi/gstvaapisink.c:
11657 * gst/vaapi/gstvaapisink.h:
11658 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
11659 https://bugzilla.gnome.org/show_bug.cgi?id=765798
11661 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11663 * gst/vaapi/gstvaapipostproc.c:
11664 vaapipostproc: return caps template if no display
11665 This patch is a fix for my bad review of commit 6d73ca8d. The element should
11666 be able to return the available raw caps handled by the VA display, but that
11667 only should happen when there a VA display. If there's none, the element
11668 should use the caps template.
11669 https://bugzilla.gnome.org/show_bug.cgi?id=768161
11671 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
11673 * gst/vaapi/gstvaapipostproc.c:
11674 vaapipostproc: don't require a vaapi display for all caps queries
11675 This delays the requirement of having a GstVaapiDisplay until later
11676 https://bugzilla.gnome.org/show_bug.cgi?id=768161
11678 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11680 * gst-libs/gst/vaapi/gstvaapiutils.c:
11681 utils: report VP9 profiles
11682 Add VP9Profile0-3 name mapping.
11684 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11686 * gst/vaapi/gstvaapi.c:
11687 vaapi: nest includes under USE_ENCODER macro
11688 This is a missed changeset from commit 1c05c53, since also header includes
11691 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11693 * gst/vaapi/gstvaapi.c:
11694 vaapi: nest encoders under USE_ENCODER macro
11695 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
11696 macro, it is clearer to nest them, showing explicitly the dependency relation.
11698 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11700 * gst/vaapi/gstvaapivideocontext.c:
11701 vaapivideocontext: check if query context is NULL
11702 Under certain conditions the element might receive a positive context query
11703 but without a context instance. This situation will lead to a segmentation
11704 fault when traversing the context list in the pipeline.
11705 https://bugzilla.gnome.org/show_bug.cgi?id=767946
11707 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11709 * gst-libs/gst/vaapi/Makefile.am:
11710 * gst-libs/gst/vaapi/glibcompat.h:
11711 * gst-libs/gst/vaapi/sysdeps.h:
11712 remove unused glibcompat.h
11713 glibcompat.h is no longer doing anything. Remove it.
11714 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11715 https://bugzilla.gnome.org/show_bug.cgi?id=767886
11717 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11719 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11720 encoder: h264: Use high profile by default
11721 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
11722 by default. This will cause the default profile to be high instead
11723 of baseline. In most situations this is the right decision, and
11724 the profile can still be lowered in the case of caps restrictions.
11725 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11726 https://bugzilla.gnome.org/show_bug.cgi?id=757941
11728 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11730 * gst/vaapi/gstvaapidecodebin.c:
11731 vaapidecodebin: element warning if missing element
11732 Raise an element warning if a required element is not available, thus the
11733 pipeline will post a warning message and the application will be informed.
11735 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
11737 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11738 decoder: h265: fix to release all dpb pictures
11739 Without this, all dpb pictures are not released during flush,
11740 because we used the global dpb_count variable for checking the
11741 dpb fullness which get decremented in dpb_remove_index()
11742 routine during each loop iteration.
11743 https://bugzilla.gnome.org/show_bug.cgi?id=767934
11745 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
11748 Automatic update of common submodule
11749 From ac2f647 to f363b32
11751 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
11753 * gst/vaapi/gstvaapidecode.c:
11754 * gst/vaapi/gstvaapipostproc.c:
11755 vaapi: fix minor leaks
11756 https://bugzilla.gnome.org/show_bug.cgi?id=767868
11758 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11760 * gst/vaapi/gstvaapi.c:
11761 vaapi: remove an already included header
11762 gst/gst.h is already included in gstcompat.h
11764 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11766 * gst/vaapi/gstvaapidecodebin.c:
11767 vaapidecodebin: add vp9 in sink pad template
11769 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11771 * gst/vaapi/gstvaapisink.c:
11772 vaapisink: return caps template if no display
11773 If vaapisink received a caps query before getting a VA display, it returned
11774 only the surfaces related caps. This behavior broke the autovideosink
11776 This patch returns the pad's template caps if no VA display, otherwise the
11777 caps are crafted as before.
11778 https://bugzilla.gnome.org/show_bug.cgi?id=767699
11780 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11782 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
11783 decoder: vp9: Update comment about context resets
11784 Clarify that vaapi context resets are never needed for vp9, but
11785 that ensure_context() needs called when the size increases so that
11786 new surfaces can be allocated.
11787 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11788 https://bugzilla.gnome.org/show_bug.cgi?id=767474
11790 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11792 * gst-libs/gst/vaapi/gstvaapicontext.c:
11793 * gst-libs/gst/vaapi/gstvaapicontext.h:
11794 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
11795 gstvaapicontext: control reset_on_resize with option
11796 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11797 https://bugzilla.gnome.org/show_bug.cgi?id=767474
11799 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11801 * gst/vaapi/gstvaapivideobufferpool.c:
11802 vaapivideobufferpool: add video meta to config when needed
11803 In cases where we know the video meta must be present, add it to
11804 the pool configuration.
11805 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11806 https://bugzilla.gnome.org/show_bug.cgi?id=766184
11808 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11810 * gst/vaapi/gstvaapipluginbase.c:
11811 plugins: retry pool config
11812 if gst_buffer_pool_set_config returns FALSE, check the modified
11813 config and retry set_config if the config is still acceptable.
11814 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11815 https://bugzilla.gnome.org/show_bug.cgi?id=766184
11817 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11819 * gst/vaapi/gstvaapivideomemory.h:
11820 vaapivideomemory: internal attributes to methods
11821 Mark as internal the functions used by VA-API dmabuf allocator.
11823 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11825 * gst/vaapi/gstvaapipluginbase.c:
11826 plugins: remove precondition for decide_allocation()
11827 There's no need to check for the display in the plugin object when
11828 decide_allocation() vmethod is called, because the display will created or
11829 re-created along the method execution.
11831 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11833 * gst/vaapi/gstvaapipluginbase.c:
11834 plugins: avoid possible memory leaks
11835 Get the pool config just before use it, to avoid a memory leak if the
11836 allocator cannot be instantiated. Similarly, return FALSE if the configuration
11837 cannot be set, avoid keep a not used allocator in the pool.
11839 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11841 * gst/vaapi/gstvaapipluginbase.c:
11842 plugins: use GstParentBufferMeta
11843 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
11844 use the GStreamer's GstParentBufferMeta.
11845 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11847 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11849 * gst/vaapi/gstvaapipluginbase.c:
11850 plugins: cache VASurfaces from dmabufs
11851 This patch avoids the creation of a VASurface each time a new input buffer is
11852 processed, caching them in the input buffer itself.
11853 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11855 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11857 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11858 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11859 * gst/vaapi/gstvaapipluginbase.c:
11860 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
11861 Instead of passing the data already in GstVideoInfo, let's just pass the
11862 GstVideoInfo structure.
11863 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11865 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11867 * gst/vaapi/gstvaapipluginbase.c:
11868 * gst/vaapi/gstvaapipluginbase.h:
11869 plugins: use an unique allocator per pad
11870 Instead of instantiating an allocator per vaapivideobufferpool, only one
11871 allocator is instantiated per element's pad and shared among future pools.
11872 If the pad's caps changes, the allocator is reset.
11873 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11875 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11877 * gst/vaapi/gstvaapipluginbase.c:
11878 * gst/vaapi/gstvaapivideobufferpool.c:
11879 * gst/vaapi/gstvaapivideobufferpool.h:
11880 vaapivideobufferpool: share options flag with pluginbase
11881 Originally, vaapivideobufferpool has a set of boolean variables for the
11882 buffer configuration options.
11883 This pach changes these boolean variables for a single bitwise, just as
11884 it is used in pluginbase. Hence, the internal enum was moved to
11885 vaapivideobufferpool header.
11886 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11888 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11890 * gst/vaapi/gstvaapipluginbase.c:
11891 plugins: add gst_vaapi_plugin_base_create_pool()
11892 This patch refactors the code in pluginbase in order to centralize the buffer
11893 pool instantiation. As the buffer pool config may have different options, these
11894 are gathered using a bitwise flag.
11895 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11897 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11899 pluginbase negotiates allocator with bufferpool
11900 Originally vaapivideobufferpool instantiates its own allocator regardless the
11901 received configuration, and it relies in custom configuration options to
11902 choose which kind of allocator instantiate.
11903 This patch transfers the responsibility of the allocator instantiate to
11904 vaapipluginbase and pass it to the vaapivideobufferpool through its
11906 * gst/vaapi/gstvaapipluginbase.c
11907 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
11908 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
11909 bufferpool configuration
11910 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
11912 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
11913 allocator in bufferpool configuration
11914 * gst/vaapi/gstvaapivideobufferpool.c
11915 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
11916 allocator, process the received one through its configuration.
11917 * gst/vaapi/gstvaapivideobufferpool.h: removed
11918 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
11919 * gst/vaapi/gstvaapivideomemory.c
11920 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
11921 allocator with the vaapi qdata.
11922 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11924 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11926 * gst/vaapi/gstvaapivideobufferpool.c:
11927 vaapivideobufferpool: keep only current video info
11928 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
11929 the current one, the negotiated. The old one is not needed at all.
11930 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11932 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11934 * gst/vaapi/gstvaapipluginbase.c:
11935 * gst/vaapi/gstvaapipluginutil.c:
11936 * gst/vaapi/gstvaapipluginutil.h:
11937 * gst/vaapi/gstvaapivideomemory.c:
11938 pluginutil: add gst_video_info_force_nv12_if_encoded()
11939 This lines repeat a couple times in the code, so it would be better to put it
11941 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11943 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11945 * gst/vaapi/gstvaapipluginutil.c:
11946 * gst/vaapi/gstvaapipluginutil.h:
11947 * gst/vaapi/gstvaapipostproc.c:
11948 * gst/vaapi/gstvaapivideobufferpool.c:
11949 pluginutil: add gst_video_info_changed() helper
11950 This function is shared among different elements, so let factorized it.
11951 https://bugzilla.gnome.org/show_bug.cgi?id=765435
11953 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
11955 * gst/vaapi/gstvaapipostprocutil.c:
11956 vaapipostproc: Add colorimetry attributes to src caps
11957 https://bugzilla.gnome.org/show_bug.cgi?id=766596
11959 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11961 * gst/vaapi/gstvaapidecode.c:
11962 vaapidecode: remove chroma-site and colorimetry from src caps
11963 https://bugzilla.gnome.org/show_bug.cgi?id=766596
11965 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11967 * gst/vaapi/gstvaapipostproc.c:
11968 * gst/vaapi/gstvaapipostproc.h:
11969 vaapipostproc: add postproc_lock to protect data members
11970 Add a mutex to postproc to protect concurrent access to data members.
11971 Previously set_caps() could release the allowed_srcpad_caps while
11972 transform_caps was in the middle of using it.
11973 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
11974 https://bugzilla.gnome.org/show_bug.cgi?id=766940
11976 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11978 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
11979 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
11980 encoder: vp9: Add simple algorithms for reference picture selection
11981 Added two modes(as properties) for reference picture selection:
11982 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
11983 and LastRef is pointing to the previous frame.
11984 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
11985 and n-2 th frame as AltRef
11986 https://bugzilla.gnome.org/show_bug.cgi?id=766048
11988 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11990 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
11991 encoder: vp9: Define Max frame width and height
11992 https://bugzilla.gnome.org/show_bug.cgi?id=766048
11994 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11996 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
11997 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
11998 encoder: vp9: Add more propertis for tuning encode quality
11999 Added three tuning properties:
12002 3: luma ac quant-table index
12003 https://bugzilla.gnome.org/show_bug.cgi?id=766048
12005 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12007 * gst/vaapi/Makefile.am:
12008 * gst/vaapi/gstvaapi.c:
12009 * gst/vaapi/gstvaapiencode_vp9.c:
12010 * gst/vaapi/gstvaapiencode_vp9.h:
12011 Add vp9 encode element to "vaapi" plugin
12012 https://bugzilla.gnome.org/show_bug.cgi?id=766048
12014 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12016 * gst-libs/gst/vaapi/Makefile.am:
12017 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12018 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
12019 Add vp9 encoder support in libgstvaapi
12020 https://bugzilla.gnome.org/show_bug.cgi?id=766048
12022 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12025 build: Add check for VP9 encode API support in libva
12026 https://bugzilla.gnome.org/show_bug.cgi?id=766048
12028 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12030 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
12031 gstvaapisurface_drm: fix internal documentation
12033 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12035 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
12036 gstvaapisurface_drm: fix code-style
12038 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12040 * gst/vaapi/gstvaapipluginbase.c:
12041 plugins: remove unused header
12042 Remove the include of gst/allocators/allocators.h since it is not used.
12044 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12046 * gst/vaapi/gstvaapivideobufferpool.h:
12047 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
12048 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
12049 keep compatibility definition.
12050 This patch removes the definition of
12051 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
12052 gst-plugins-base version 1.2.2
12054 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12056 * gst/vaapi/gstvaapipluginbase.c:
12057 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
12058 This is a helper function to improve the readability of
12059 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
12062 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12064 * gst/vaapi/gstvaapipluginbase.c:
12065 plugins: deactivate buffer pool before unref
12066 This buffer pool may still be processing buffers when a caps renegotiation is
12067 done. This one-liner patch deactivates the pool to drain it before it
12070 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12072 * gst/vaapi/gstvaapipluginbase.c:
12073 plugins: no sinkpad bufferpool when decoder
12074 Right now, the decoders create a buffer pool for their sink pad which is not
12075 used at all, because the decoders have never proposed it to upstream.
12076 This patch avoids the buffer pool instantiating when the element inherits from
12077 the GstVideoDecoder class.
12079 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12081 * gst/vaapi/gstvaapipluginbase.c:
12082 plugins: avoid to get/set pool config twice
12083 This patch is a bit of optimization, since the bufferpool configuration is get
12084 when the pool is created. Hence, we only need to request it when the pool from
12085 the allocation query is reused.
12087 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12089 * gst/vaapi/gstvaapipluginbase.c:
12090 plugins: destroy pool earlier if non-vaapi
12091 If the offered pool in decide_allocation() vmethod doesn't have the
12092 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
12093 so it could be created later.
12095 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12097 * gst/vaapi/gstvaapivideobufferpool.c:
12098 vaapivideobufferpool: split caps validation
12099 When validating the caps from bufferpool config, this patch distinguishes the
12100 error from no caps received (NULL) from the invalid caps (cannot be converted
12101 into GstVideoInfo structure).
12103 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12105 * gst/vaapi/gstvaapidecode.c:
12106 * gst/vaapi/gstvaapipluginbase.c:
12107 plugins: check for caps in query earlier
12108 Check for caps as soon gst_query_parse_allocation() returns.
12110 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12112 * gst/vaapi/gstvaapipluginbase.c:
12113 * gst/vaapi/gstvaapipluginbase.h:
12114 plugins: remove unused variables
12115 This variables stopped to be used since commit 001a5c63, which removed the
12118 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12120 * gst/vaapi/gstvaapipluginbase.c:
12121 plugins: fix potential memleak from commit 9159328
12122 If gst_video_info_from_caps() fails it is required to unref the instantiated
12125 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12127 * gst/vaapi/gstvaapipostproc.c:
12128 vaapipostproc: handle if gst_video_info_from_caps() fails
12129 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
12132 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12134 * gst/vaapi/gstvaapipluginbase.c:
12135 plugins: handle if gst_video_info_from_caps() fails
12136 Let's play safe and return error if, somehow, the received caps are wrong.
12138 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12140 * gst/vaapi/gstvaapipluginbase.c:
12141 plugins: relate errors to instance
12142 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
12143 will show the name of the vaapipluginbase instance that failed.
12144 Also, the code-style is fixed, where some error labels need to be surrounded
12147 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12149 * gst/vaapi/gstvaapipluginbase.c:
12150 * gst/vaapi/gstvaapipluginutil.c:
12151 * gst/vaapi/gstvaapisink.c:
12152 plugins: use GstVideoInfo accessors
12153 Instead of access to GstVideInfo members directly, use their accessors
12154 macros. This patch makes more resistance to future changes in GStreamer core.
12156 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12158 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
12159 * gst/vaapi/gstvaapipluginbase.c:
12160 * gst/vaapi/gstvaapipostproc.c:
12161 * tests/simple-encoder.c:
12162 remove spurious gst_video_info_init()
12163 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
12164 gst_video_info_init(), hence it is not required to call it before them. This
12165 patch removes these spurious calls.
12167 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12169 * gst/vaapi/gstvaapipluginbase.c:
12170 vaapipluginbase: code-style: rename goto label
12171 The error labels have error_ prefix, but this one.
12173 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12175 * gst/vaapi/gstvaapivideomemory.c:
12176 vaapivideomemory: use allocator custom alloc flag
12177 Instead of a dummy alloc() vmethod, the allocator instance set the flag
12178 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
12179 gst_allocator_alloc() on the allocator.
12181 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12183 * gst/vaapi/gstvaapivideobufferpool.c:
12184 vaapivideobufferpool: relate errors to instance
12185 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
12186 the vaapivideobufferpool instance that failed.
12188 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12190 * gst/vaapi/gstvaapipluginbase.c:
12191 plugins: remove gst_vaapi_plugin_base_set_pool_config()
12192 This function helper make sense for GStreamer 1.2, but it is not helpful for
12193 greater version since the validation is already done in the API implementation.
12194 Thus, it is removed.
12196 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12198 * gst/vaapi/gstvaapipluginbase.c:
12199 gstvaapipluginbase: Fix typo in doc
12201 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12203 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12204 encoder : h264: Disable b-frame encode in low-power mode
12205 This is a workaround since vaapi-intel-driver doesn't have
12206 support for B-frame encode when utilizing low-power-enc
12208 Fixme :We should query the VAConfigAttribEncMaxRefFrames
12209 instead of blindly disabling b-frame support and set b/p frame count,
12210 buffer pool size etc based on the query result.
12211 https://bugzilla.gnome.org/show_bug.cgi?id=766050
12213 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12215 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12216 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
12217 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
12218 Remove the duplicate property "low-power-enc" and use the
12219 tune property for enabling low power encoding mode.
12220 https://bugzilla.gnome.org/show_bug.cgi?id=766050
12222 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12224 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12225 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
12226 https://bugzilla.gnome.org/show_bug.cgi?id=766050
12228 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12230 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12231 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12232 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
12233 encoder: h264: Add support of low power/high performance encoding mode
12234 Added a new property "low-power-enc" for enabling low power
12235 encoding mode. Certain encoding tools may not be available
12236 with the VAEntrypointEncSliceLP.
12237 https://bugzilla.gnome.org/show_bug.cgi?id=766050
12239 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12241 * gst-libs/gst/vaapi/gstvaapitypes.h:
12242 * gst-libs/gst/vaapi/gstvaapiutils.c:
12243 * gst-libs/gst/vaapi/gstvaapivalue.c:
12244 Add mapping for Macroblock level rate control (VA_RC_MB)
12246 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12248 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12249 gstvaapidisplay: Add VAEntrypointEncSliceLP support
12250 https://bugzilla.gnome.org/show_bug.cgi?id=766050
12252 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12254 * gst-libs/gst/vaapi/gstvaapiprofile.c:
12255 * gst-libs/gst/vaapi/gstvaapiprofile.h:
12256 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
12257 This is for implementations that supports low_power/high_performance
12258 variant for slice level encode.
12259 https://bugzilla.gnome.org/show_bug.cgi?id=766050
12261 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12263 * gst/vaapi/gstvaapipostprocutil.c:
12264 vaapipostproc: negotiate frame size fixation
12265 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
12266 using the sink caps, also it use the next capsfilter.
12267 This code is a shameless copy of gst_video_scale_fixate_caps() from
12268 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
12269 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12271 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
12273 * gst/vaapi/gstvaapipostprocutil.c:
12274 vaapipostproc: don't use GstVideoInfo for src caps
12275 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
12276 this patch enables the first step for caps negotiation with a possible
12277 following caps filter.
12278 _get_preferred_caps() will traverse the possible src caps looking for the one
12279 wit the preferred feature and the preferred color format. Then the color
12280 format, the frame size and the frame rate are fixated.
12281 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12283 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12285 * gst/vaapi/gstvaapipostproc.c:
12286 * gst/vaapi/gstvaapipostprocutil.c:
12287 * gst/vaapi/gstvaapipostprocutil.h:
12288 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
12289 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
12290 No functional changes.
12291 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12293 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12295 * gst/vaapi/gstvaapipostproc.c:
12296 vaapipostproc: simplify code
12297 Change a convoluted snippet to find the preferred color format in the peer
12299 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12301 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12303 * gst/vaapi/gstvaapipostproc.c:
12304 vaapipostproc: use othercaps for preferred caps
12305 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
12306 from fixate_caps() vmethod to find the preferred caps feature and color
12308 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12310 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
12312 * gst/vaapi/gstvaapipostproc.c:
12313 vaapipostproc: add fixate_caps() vmethod
12314 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
12315 implements the fixate_caps() vmethod and moves code around.
12316 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12318 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12320 * gst/vaapi/Makefile.am:
12321 * gst/vaapi/gstvaapipostproc.c:
12322 * gst/vaapi/gstvaapipostprocutil.c:
12323 * gst/vaapi/gstvaapipostprocutil.h:
12324 vaapipostproc: set early properties restrictions
12325 When running transform_caps() vmethod, returning the srcpad caps, the caps are
12326 early restricted to the element properties set: width, height, format and
12328 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
12330 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12332 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12334 * gst/vaapi/gstvaapipostproc.c:
12335 vaapipostproc: log the caps transformation
12336 https://bugzilla.gnome.org/show_bug.cgi?id=758548
12338 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12340 * gst/vaapi/gstvaapipostproc.c:
12341 vaapipostproc: no GLTextureUpload in sinkpad
12342 As the vaapipostproc does not process frames with the VideoGLTextureUpload
12343 meta, the feature is removed from the sink pad template.
12344 https://bugzilla.gnome.org/show_bug.cgi?id=765931
12346 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
12348 * gst/vaapi/gstvaapivideobufferpool.c:
12349 vaapibufferpool: do not create texture upload meta if dmabuf
12350 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12352 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12355 build: update git.mk
12357 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12359 * gst/vaapi/gstvaapipluginbase.h:
12360 plugin: fix macro processor check
12361 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
12362 defined in config.h, but it would be 0 or 1 depending on the configure output.
12363 https://bugzilla.gnome.org/show_bug.cgi?id=765702
12365 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12367 * tests/test-display.c:
12368 tests: display: guard possible unused variables
12369 https://bugzilla.gnome.org/show_bug.cgi?id=765702
12371 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12377 * tests/simple-decoder.c:
12378 * tests/test-decode.c:
12379 * tests/test-display.c:
12380 * tests/test-filter.c:
12381 * tests/test-h264.c:
12382 * tests/test-jpeg.c:
12383 * tests/test-mpeg2.c:
12384 * tests/test-mpeg4.c:
12385 * tests/test-subpicture-data.c:
12386 * tests/test-subpicture.c:
12387 * tests/test-surfaces.c:
12388 * tests/test-textures.c:
12389 * tests/test-vc1.c:
12390 * tests/test-windows.c:
12391 tests: inforce gstreamer code-style
12393 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12395 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12396 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
12397 It seems driver requires enablement of cu_qp_delta_enabled_flag
12398 for modifying QP values to controll the CBR mode bitrate.
12399 https://bugzilla.gnome.org/show_bug.cgi?id=749852
12401 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12403 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12404 encoder: h265: Add CBR Encoding support
12405 https://bugzilla.gnome.org/show_bug.cgi?id=749852
12407 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
12409 * gst-libs/gst/vaapi/gstvaapisurface.c:
12410 gstvaapisurface: explicitely clear TILING flag if dmabuf
12411 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12413 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
12415 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
12416 gstvaapisurface_drm: release image when done
12417 Otherwise intel-vaapi-driver will fail to process the exported surface because
12418 it will find it is currently derived, so considered as busy.
12419 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12421 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
12423 * gst/vaapi/gstvaapipostproc.c:
12424 vaapipostproc: already have a surface proxy if dmabuf
12425 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12427 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
12429 * gst/vaapi/gstvaapipostproc.c:
12432 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12434 * gst/vaapi/gstvaapidecode.c:
12435 * gst/vaapi/gstvaapipluginbase.c:
12436 * gst/vaapi/gstvaapipluginbase.h:
12437 vaapidecode: search driver in whitelist
12438 If the backend driver vendor string is not in a white-list, and the
12439 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
12440 change it state from NULL to READY, hence the auto-plug mechanism will look
12441 for another decoder.
12442 This patch assumes the GstContext has already being shared along the pipeline
12443 and the element has a valid GstVaapiDisplay instance.
12444 https://bugzilla.gnome.org/show_bug.cgi?id=764673
12446 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12448 * gst/vaapi/gstvaapidecode.c:
12449 * gst/vaapi/gstvaapiencode.c:
12450 * gst/vaapi/gstvaapipluginbase.c:
12451 * gst/vaapi/gstvaapipluginbase.h:
12452 * gst/vaapi/gstvaapipostproc.c:
12453 * gst/vaapi/gstvaapisink.c:
12454 plugins: rework set_context() vmethod definition
12455 In bug 757598 was added the set_context() vmethod chain up in
12456 GstVaapiPluginBase. But it is buggy, since the parent_class address is
12457 assigned to the last element which called gst_vaapi_plugin_base_class_init().
12458 No error has shown up since none of the element's base classes redefined
12459 set_context() vmethod from GstElement, so always the correct function was
12460 called. Still this code is wrong and this patch make it right.
12461 Since set_context() is the same code, a macro is used to implement that code
12462 in all the gst-vaapi elements.
12463 https://bugzilla.gnome.org/show_bug.cgi?id=765368
12465 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12467 * gst/vaapi/gstvaapipostproc.c:
12468 vaapipostproc: resize if negotiated and allocation caps are different
12469 Since commit 859a2b2, in vaapidecode, allocation query can be different from
12470 the negotiated caps.
12471 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
12472 resize the frame to the negotiated, if and only if, some other parameter is
12473 activated to avoid the passthrough. If it is not, the surface won't be mapped
12474 into a image. If not, the image won't be resized and the output buffer would be
12476 This patch will break the passthrough if the allocation query is different
12477 from the negotiation caps, forcing the resizing.
12478 https://bugzilla.gnome.org/show_bug.cgi?id=765095
12480 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12482 * gst/vaapi/gstvaapidecode.c:
12483 vaapidecode: improve code readability
12484 No functional changes.
12486 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12488 * gst/vaapi/gstvaapidecode.c:
12489 vaapidecode: move GstCapsFeatures near to its use
12490 Move the handling of the GstCapsFeatures just after it is used, in order to
12491 avoid handling its memory.
12493 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12495 * gst/vaapi/gstvaapidecode.c:
12496 vaapidecode: caps negotiation checks
12497 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
12498 compiled with GL support.
12500 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12502 * gst/vaapi/gstvaapidecode.c:
12503 * gst/vaapi/gstvaapipluginbase.c:
12504 * gst/vaapi/gstvaapipluginbase.h:
12505 * gst/vaapi/gstvaapipostproc.c:
12506 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
12508 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12510 * gst/vaapi/gstvaapidecode.c:
12511 vaapidecode: bail early if not caps in decide_allocation()
12513 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12515 * gst/vaapi/gstvaapidecode.c:
12516 * gst/vaapi/gstvaapipluginbase.c:
12517 * gst/vaapi/gstvaapipluginutil.c:
12518 * gst/vaapi/gstvaapipluginutil.h:
12519 * gst/vaapi/gstvaapipostproc.c:
12520 plugin: use allowed caps filter from element
12521 Instead of using the srcpad template caps for filtering the peer caps, the
12522 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
12523 for the element's allowed caps.
12524 With this modification, the vaapipostproc element simplifies a bit its code.
12525 https://bugzilla.gnome.org/show_bug.cgi?id=765223
12527 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12529 * gst/vaapi/gstvaapidecode.c:
12530 * gst/vaapi/gstvaapipluginbase.c:
12531 * gst/vaapi/gstvaapipluginutil.c:
12532 * gst/vaapi/gstvaapipluginutil.h:
12533 * gst/vaapi/gstvaapipostproc.c:
12534 plugin: remove function parameter
12535 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
12536 saved if the out format is used for both: in and out. Thus the code is more
12538 https://bugzilla.gnome.org/show_bug.cgi?id=765223
12540 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12542 * gst/vaapi/gstvaapidecode.c:
12543 vaapidecode: warns if driver will do color conversions
12544 If the downstream feature is system memory, the surface has to be mapped,
12545 hence a warning message is logged saying that the driver has to do color
12546 conversions. This might be troublesome because not all the color conversion
12547 combinations are supported by the VA-API drivers, and there is not a reliable
12548 way to know them before hand.
12549 https://bugzilla.gnome.org/show_bug.cgi?id=765223
12551 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12553 * gst/vaapi/gstvaapipluginutil.c:
12554 plugin: honour negotiated format
12555 Instead of setting the requested format by the caller, the function
12556 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
12557 the negotiated format.
12558 A new helper function was added: gst_vaapi_find_preferred_format(), which,
12559 given the format list from the negotiated caps, will choose the best one, if
12560 possible, given the native format.
12561 https://bugzilla.gnome.org/show_bug.cgi?id=765223
12563 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12565 * gst/vaapi/gstvaapipluginutil.c:
12566 plugin: simplify caps feature selection
12567 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
12568 Instead of intersecting custom caps to find the preferred feature, the peer
12569 caps are traversed in order to find the preferred feature, according to an
12570 ordered feature priority list.
12571 In the case of GLTextureUploadMeta, the colour format is computed using
12572 GstVideoInfo of the selected fixed caps.
12573 https://bugzilla.gnome.org/show_bug.cgi?id=765223
12575 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12577 * gst/vaapi/gstvaapidecode.c:
12578 vaapidecode: use macros for GstVideoInfo
12579 Instead of accessing directly to the members of the structure, use the macros.
12581 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12583 * gst/vaapi/gstvaapidecode.c:
12584 vaapidecode: refactor is_display_resolution_changed()
12585 Make the comparisons more readable and simple.
12586 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12588 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12590 * gst/vaapi/gstvaapidecode.c:
12591 * gst/vaapi/gstvaapidecode.h:
12592 vaapidecode: keep only display_{width,height}
12593 Instead of keeping the structure GstVideoInfo when we are using its width and
12594 height, we only keep these two guints.
12595 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12597 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12599 * gst/vaapi/gstvaapidecode.c:
12600 vaapidecode: decoded_info is valid at src caps update
12601 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
12602 is called, then we don't need to verify or replace it with the sinkpad info
12604 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12606 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12608 * gst/vaapi/gstvaapidecode.c:
12609 vaapidecode: always a valid format in decoded_info
12610 Always set a valid format in decoded_info class variable.
12611 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12613 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12615 * gst/vaapi/gstvaapidecode.c:
12616 vaapidecode: code style fixes
12617 No functional changes.
12618 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12620 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12622 * gst/vaapi/gstvaapidecode.c:
12623 vaapidecode: init {decoded,display}_info at open()
12624 It is required to initialize {decoded,display}_info variables when the decoder
12625 is open, not only at instance initialization.
12626 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12628 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12630 * gst/vaapi/gstvaapidecode.c:
12631 * gst/vaapi/gstvaapidecode.h:
12632 vaapidecode: remove spurious class variables
12633 active, do_pool_renego and do_outstate_renego class variables were used to
12634 indicate when negotiate downstream once, but now that each time a new surface
12635 resolution is pop out a renegotation verified, these variable are not required
12637 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12639 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12641 * gst/vaapi/gstvaapidecode.c:
12642 * gst/vaapi/gstvaapipluginbase.c:
12643 * gst/vaapi/gstvaapipluginbase.h:
12644 * gst/vaapi/gstvaapipostproc.c:
12645 remove custom allocation query
12646 When resolving bug 753914, a custom allocation query was added, overlapping
12647 the responsibilities of GstVideoDecoder.
12648 But with the merge of the patches from bug 764421 this overlapping was not
12649 required anymore. This patch restores this situation setting the
12650 allocation_caps in the GstVideoCodecState when needed.
12651 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12653 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
12656 Automatic update of common submodule
12657 From 6f2d209 to ac2f647
12659 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12661 * gst/vaapi/gstvaapidecode.c:
12662 * gst/vaapi/gstvaapidecodebin.c:
12663 * gst/vaapi/gstvaapipostproc.c:
12664 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
12665 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
12666 their caps templates if they were not compiled either with GLX or EGL support.
12668 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12670 * gst/vaapi/gstvaapipluginutil.c:
12671 plugins: fix compilation when EGL/GLX is disabled
12672 The compiler might complain of gst_vaapi_create_display_from_handle() being
12673 unused if both EGL and GLX are disabled. This patch avoid that compilation
12676 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
12678 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
12679 libs: fix deleting a GstVaapiCodedBufferPool object
12680 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
12681 Otherwise it is not called when the pool is destroyed and all objects
12682 referenced by the GstVaapiVideoPool are never released.
12683 https://bugzilla.gnome.org/show_bug.cgi?id=764993
12685 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12687 * gst-libs/gst/vaapi/gstvaapisurface.c:
12688 surface: destroy derived image
12689 If gst_vaapi_image_new_with_image() fails, the created derived image should be
12690 destroyed, otherwise the surface cannot be processed because is being used.
12691 https://bugzilla.gnome.org/show_bug.cgi?id=764607
12693 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
12695 * gst/vaapi/gstvaapidecode.c:
12696 vaapidecode: add stop function
12697 Clear any status on the current stream:
12698 stored frames, caps and decoder configuration
12699 https://bugzilla.gnome.org/show_bug.cgi?id=763460
12701 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12703 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12704 decoder: vp9: Align with the ABI changes in vp9 codecparser
12705 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
12706 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
12707 These fields are only present in keyframe or intra-only frame, no need to
12708 duplicate them for inter-frames.
12709 https://bugzilla.gnome.org/show_bug.cgi?id=764082
12711 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12713 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12714 decoder: vp9 : Add 10bit decoding support (Profile2)
12715 https://bugzilla.gnome.org/show_bug.cgi?id=764082
12717 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12719 * gst-libs/gst/vaapi/gstvaapiprofile.c:
12720 * gst-libs/gst/vaapi/gstvaapiprofile.h:
12721 gstvaapiporfile: Add more VP9 profile definitions
12722 https://bugzilla.gnome.org/show_bug.cgi?id=764082
12724 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12728 build: possibility to disable tests
12729 The configuration option --disable-examples will disable the compilation of
12730 the sample apps in tests/ directory.
12732 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12734 * gst/vaapi/gstvaapiencode_h264.c:
12735 * gst/vaapi/gstvaapiencode_h265.c:
12736 * gst/vaapi/gstvaapiencode_jpeg.c:
12737 * gst/vaapi/gstvaapiencode_mpeg2.c:
12738 * gst/vaapi/gstvaapiencode_vp8.c:
12739 * gst/vaapi/gstvaapipluginutil.h:
12740 * gst/vaapi/gstvaapisink.c:
12741 unify caps template for VAAPI encoders and decoders
12742 There is no difference in VAAPI surface caps between encoders and decoders.
12743 Thus, the patch makes a simplification by removing encoders specific caps and
12744 shares the same definition of VAAPI surfaces caps for all the elements.
12746 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12748 * gst/vaapi/gstvaapidecode.c:
12749 vaapidecode: move gst_vaapidecode_negotiate() code
12750 With it we can remove a function declaration, making the code a bit
12752 https://bugzilla.gnome.org/show_bug.cgi?id=764316
12754 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12756 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12757 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12758 * gst/vaapi/gstvaapidecode.c:
12759 docs: generate vaapijpegdec documentation
12760 https://bugzilla.gnome.org/show_bug.cgi?id=764314
12762 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12764 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12765 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
12766 The array_completeness, reserved bit and num_nal_units fields
12767 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
12768 but not for each occurance of similar headers.
12769 https://bugzilla.gnome.org/show_bug.cgi?id=764274
12771 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12773 * gst-libs/gst/vaapi/video-format.c:
12774 video-format: Keep the HW order preference while mapping to GstVideoFormats
12776 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12778 * gst/vaapi/gstvaapidecode.c:
12779 * gst/vaapi/gstvaapipluginbase.c:
12780 * gst/vaapi/gstvaapipluginutil.c:
12781 * gst/vaapi/gstvaapipluginutil.h:
12782 * gst/vaapi/gstvaapivideomemory.c:
12783 gst/vaapi: keep precedence for NV12 over I420
12784 Use NV12 as default "assumption" format all over.
12785 NV12 is the default high priority format used my most of the
12788 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12790 * gst/vaapi/gstvaapidecode.c:
12791 vaapidecode: Use video format derived from decoded surface as default src pad format
12792 Use the surface format derived from first decoded surface
12793 to negotiate the downstream video format capabilities.
12794 https://bugzilla.gnome.org/show_bug.cgi?id=759181
12796 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
12798 * gst-libs/gst/vaapi/gstvaapiimage.c:
12799 * gst-libs/gst/vaapi/video-format.c:
12800 * gst/vaapi/gstvaapidecode.c:
12801 * gst/vaapi/gstvaapipluginutil.h:
12802 * gst/vaapi/gstvaapisink.c:
12803 Add P010 video format support
12804 The P010 video format is the native format used by the vaapi intel driver
12805 for HEVCMain10 decode . Add support for planes and images of this video format.
12806 https://bugzilla.gnome.org/show_bug.cgi?id=759181
12808 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
12810 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
12811 libs: x11: allows 30-bit colour depth
12812 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
12813 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
12814 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
12816 https://bugzilla.gnome.org/show_bug.cgi?id=764256
12818 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12820 * gst/vaapi/gstvaapivideometa_texture.c:
12821 gltextureupload: use an array for texture type
12822 Instead of using a single value for the texture type, use an array with 4
12823 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
12825 https://bugzilla.gnome.org/show_bug.cgi?id=764231
12827 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12829 * gst/vaapi/gstvaapidecode.c:
12830 * gst/vaapi/gstvaapipluginbase.c:
12831 vaapidecode: Fix decide_allocation handling
12832 Set the already configured pool in decide_allocation query
12833 in cases where pool renegotiation is not required.
12834 https://bugzilla.gnome.org/show_bug.cgi?id=753914
12836 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12838 * gst/vaapi/gstvaapidecode.c:
12839 vaapidecode: Derive and save the decoded surface format
12840 After the decoding of first frame, try to extract the exact
12841 decoded surface format using vaDeriveImage and keep this
12842 as the format in decoded_info.
12843 https://bugzilla.gnome.org/show_bug.cgi?id=753914
12845 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12847 * gst/vaapi/gstvaapidecode.c:
12848 * gst/vaapi/gstvaapidecode.h:
12849 * gst/vaapi/gstvaapipluginbase.c:
12850 * gst/vaapi/gstvaapipluginbase.h:
12851 * gst/vaapi/gstvaapipostproc.c:
12852 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
12853 -- Maintaing decoded surface resoluton and actual display resoultion separately
12854 -- Before pushing every frames downstream, check for the requirement of pool negoation and
12855 output_state negotiation: This is needed to avoid multiple issuses with cropping,
12856 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
12857 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
12858 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
12859 This is slight overhead, but safe enough. Optimization could be possible though.
12860 https://bugzilla.gnome.org/show_bug.cgi?id=753914
12862 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12864 * gst/vaapi/gstvaapidecode.c:
12865 vaapidecode: Delay the output format setting until we have a decoded surface
12866 This will help to consoidate the out caps negotiation to a single place,
12867 which will make the code simpler, allows to get the exact decoded format
12868 if needed and the selected chroma type too.
12869 https://bugzilla.gnome.org/show_bug.cgi?id=753914
12871 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12873 * gst/vaapi/gstvaapidecode.h:
12874 vaapidecode: GST_VAAPIDECODE macro is a cast
12875 This patch is the continuation of commit 1e1d3b1d because the function
12876 gst_vaapidecode_get_type() got undefined since then.
12877 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
12878 structure. The rest of the GObject handling macros were deleted too.
12880 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
12883 Back to development
12885 === release 1.8.0 ===
12887 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
12892 * gstreamer-vaapi.doap:
12895 === release 1.7.91 ===
12897 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
12902 * gstreamer-vaapi.doap:
12905 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12907 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12908 decoder: h265: Fix offset calculation in codec_data parsing
12909 https://bugzilla.gnome.org/show_bug.cgi?id=762922
12911 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12913 * gst/vaapi/gstvaapidecodebin.c:
12914 vaapidecodebin: don't handle jpeg decoding
12915 As JPEG decoder has been split and demoted, it cannot be handled by
12917 Added a fixme comment regarding the future removal of vaapidecode.
12918 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12920 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12922 * gst/vaapi/gstvaapidecode.c:
12923 vaapidecode: split out jpeg decoder
12924 Split, as a different element, the JPEG decoder.
12925 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12927 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12929 * gst/vaapi/gstvaapi.c:
12930 * gst/vaapi/gstvaapidecode.c:
12931 * gst/vaapi/gstvaapidecode.h:
12932 vaapidecode: register decoder with internal GType
12933 Don't expose the the vaapidecode GType, instead expose a function
12934 which will register element.
12935 This is the first step to split the decoder by codecs.
12936 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12938 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12940 * gst/vaapi/gstvaapidecode.c:
12941 vaapidecode: remove unused function declaration
12942 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
12943 code-style of the other pre-declared functions.
12945 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12947 * docs/plugins/Makefile.am:
12948 build: git ignore gtkdoc generated files
12950 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12953 build: handle git ignore in m4 directory
12955 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
12957 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12958 vaapidecoder_h265: plug leak of h265 parsing info
12959 If something goes wrong while parsing, the info object is
12961 https://bugzilla.gnome.org/show_bug.cgi?id=763121
12963 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
12965 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12966 vaapidecoder_h264: plug leak of h264 parsing info
12967 If something goes wrong while parsing, the info object is
12969 https://bugzilla.gnome.org/show_bug.cgi?id=763121
12971 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
12973 * gst/vaapi/gstvaapipluginutil.c:
12974 plugins: fix gstgl and vaapi memory leaks
12975 1\ Unref gl_display and gl_window as soon they are not needed.
12976 2\ Remove an unneeded display type check, since is handled by
12977 gst_vaapi_created_display_from_handle()
12978 3\ Unref vaapi's display if the display cannot be bind to a GL API.
12979 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12980 https://bugzilla.gnome.org/show_bug.cgi?id=763354
12982 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
12984 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12985 vaapidisplay: Fix uninitialized value error for VA attribute
12986 https://bugzilla.gnome.org/show_bug.cgi?id=763362
12988 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12990 * gst/vaapi/gstvaapidecode.c:
12991 * gst/vaapi/gstvaapiencode.c:
12992 plugins: proxy information from downstream caps
12993 Propagate to upstream the downstream information, such as fps, par, etc.
12994 This will fix several "getcaps" critical warnings in gst-validate.
12995 https://bugzilla.gnome.org/show_bug.cgi?id=763300
12997 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12999 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13000 decoder: vp9: Assign values for profile and bit_depth from frame header
13001 bit_depth field has added only in VA-API 0.39.0, added version check.
13003 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
13006 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
13007 https://bugzilla.gnome.org/show_bug.cgi?id=763067
13009 === release 1.7.90 ===
13011 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
13016 * gstreamer-vaapi.doap:
13019 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
13022 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
13024 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13026 * gst/vaapi/gstvaapidecode.c:
13027 vaapidecode: intersect with filter in getcaps()
13028 In commit 6034734d I forgot to add the caps filter intersection in the
13029 getcaps() vmethod generating a regression when a capsfilter is set in the
13031 This commit adds the caps filter intersection.
13033 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
13035 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
13036 Add memset to initialize value for VAEncSliceParameterBufferJPEG
13037 https://bugzilla.gnome.org/show_bug.cgi?id=762850
13039 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
13042 Automatic update of common submodule
13043 From b64f03f to 6f2d209
13045 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13050 build: add m4 directory
13051 Instead of rely on the automatic creation of m4 directory by aclocal, we
13052 already control it. Later we could create our own m4 scripts in order to
13053 unclutter configure.ac
13054 https://bugzilla.gnome.org/show_bug.cgi?id=762528
13056 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13058 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13059 decoder: hevc: Fill dependent slice segment headers while parsing
13060 Copy the data into the dependent slice segment header from the
13061 corresponding independent slice segment header during parsing.
13062 Previously the reference to the "previous" independent header was
13063 held through the parsing phase and then dereferenced during the
13064 decoding phase. This caused all dependent headers to be populated
13065 with the data of the AU's last independent header instead of the
13066 proper corresponding header.
13067 https://bugzilla.gnome.org/show_bug.cgi?id=762352
13069 - Reworded commit message
13071 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13073 * gst/vaapi/gstvaapidecode.c:
13074 vaapidecode: use video decoder getcaps()
13075 The usage of getcaps() vmethod is preferred than to handle manually the sink's
13077 In order to avoid function declarations, this patch moves the class_init()
13078 method to the end of the file.
13080 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13082 * gst/vaapi/gstvaapipluginbase.c:
13083 plugins: remove deprecated code
13084 Since we are only supporting current GStreamer version, since 1.3
13085 gst_buffer_pool_config_add_option() checks if the option to add is
13086 already set. There is no need to do it ourselves.
13088 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
13090 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13091 vaapidecoder_h265: fix parsing of NALU aligned data
13092 Don't assume the whole buffer is a single NAL, instead look for the
13093 next start code in case there are multiple NALs per buffer.
13094 https://bugzilla.gnome.org/show_bug.cgi?id=762328
13096 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
13098 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13099 vaapidecoder_h264: fix parsing of NALU aligned data
13100 Don't assume the whole buffer is a single NAL, instead look for the
13101 next start code in case there are multiple NALs per buffer.
13102 https://bugzilla.gnome.org/show_bug.cgi?id=762328
13104 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
13106 * gst/vaapi/gstvaapisink.c:
13107 vaapisink: Fix event,pad,structure memory leaks
13108 https://bugzilla.gnome.org/show_bug.cgi?id=762229
13110 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
13112 * gst/vaapi/gstvaapipluginbase.c:
13113 Add icamerasrc as dmabuf capable peer element
13114 icamerasrc is another gstreamer plugin using to capture RAW
13115 frames from camera device. It is based on libcamhal library.
13116 There are some properties available to control icamera behavior.
13117 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
13118 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
13119 https://bugzilla.gnome.org/show_bug.cgi?id=759481
13120 Fixme: This is the similar workaround we done for v4l2src.
13121 The workaround will be removed once we fix #755072
13123 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
13125 * gst/vaapi/gstvaapipluginbase.c:
13126 vaapipluginbase: Fix structure memory leak
13127 config structure is not being freed in all cases
13128 https://bugzilla.gnome.org/show_bug.cgi?id=762172
13130 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
13132 * gst/vaapi/gstvaapidecode.c:
13133 vaapidecode: Fix videocodec state memory leak
13134 When state is not NULL and either width/height of video info is 0, then state leaks
13135 https://bugzilla.gnome.org/show_bug.cgi?id=762173
13137 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
13139 * gst/vaapi/gstvaapisink.c:
13140 vaapisink: post message for application for unhandled keyboard/mouse events
13141 Makes (most) keyboard shortcuts work in gst-play-1.0 when
13142 the video window has focus.
13144 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
13146 * gst/vaapi/gstvaapidecode.c:
13147 vaapidecode: Fix capsfeature memory leak
13148 https://bugzilla.gnome.org/show_bug.cgi?id=762116
13150 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
13152 * gst/vaapi/gstvaapisink.c:
13153 vaapisink: Fix capsfeature memory leak
13154 caps feature allocated is not being freeing in some cases
13155 https://bugzilla.gnome.org/show_bug.cgi?id=762111
13157 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
13160 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
13161 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
13162 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
13163 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13164 * gst-libs/gst/vaapi/gstvaapifilter.c:
13165 * gst/vaapi/gstvaapidecodebin.c:
13166 * gst/vaapi/gstvaapipluginutil.c:
13167 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
13169 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
13172 configure: Fix setting of extra compiler warning flags
13174 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13176 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
13177 libs: fix build error
13178 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
13179 functions are used only when libva's API version is greater than 0.36.0
13180 This patch guards those functions completely rather than just their
13181 content. The patch is a continuation of commit 38f8fea4
13182 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
13183 https://bugzilla.gnome.org/show_bug.cgi?id=762055
13185 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
13187 * tests/simple-encoder.c:
13188 tests: simple-encoder: fix build error
13189 argument mismatch of gsize with 'long unsigned int'
13190 https://bugzilla.gnome.org/show_bug.cgi?id=762055
13192 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13194 * gst/vaapi/gstvaapisink.c:
13195 vaapisink: Fix wrong caps advertising
13196 The get_caps() should only report the supported formats.
13197 https://bugzilla.gnome.org/show_bug.cgi?id=761147
13199 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
13202 Automatic update of common submodule
13203 From e97c9bb to b64f03f
13205 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13207 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
13208 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
13209 * gst/vaapi/gstvaapi.c:
13210 * gst/vaapi/gstvaapiencode_h264.c:
13211 * gst/vaapi/gstvaapiencode_h265.c:
13212 * gst/vaapi/gstvaapiencode_jpeg.c:
13213 * gst/vaapi/gstvaapiencode_mpeg2.c:
13214 * gst/vaapi/gstvaapiencode_vp8.c:
13215 rename encoders to vaapi{codec}enc
13216 Trying to comply with GStreamer's element names, this patch renames the
13217 encoders using the name format vaapi{codec}enc.
13218 In this way, the plugin documentation is linked correctly.
13219 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13221 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13224 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
13225 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13227 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13230 build: remove vp9 parser check
13231 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
13232 the check of the parser, as we did for the others.
13233 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13235 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13239 Back to development
13240 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13242 === release 1.6.0 ===
13244 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13249 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13251 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13252 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13253 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13254 libs: fix compiler warnings
13255 After setting the release flags, the compiler warns about a couple
13256 initialized variables.
13257 Also marked a couple of set variables as unused, because they are only
13258 used for assertion.
13259 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13261 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13263 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
13264 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
13265 * gst/vaapi/gstvaapidecode.c:
13266 * gst/vaapi/gstvaapidecodebin.c:
13267 * gst/vaapi/gstvaapiencode_h264.c:
13268 * gst/vaapi/gstvaapiencode_h265.c:
13269 * gst/vaapi/gstvaapiencode_jpeg.c:
13270 * gst/vaapi/gstvaapiencode_mpeg2.c:
13271 * gst/vaapi/gstvaapiencode_vp8.c:
13272 * gst/vaapi/gstvaapipostproc.c:
13273 * gst/vaapi/gstvaapisink.c:
13274 docs: update plugin documentation
13275 Update all the documentation of elements of the vaapi plugin.
13276 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13278 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13282 * docs/Makefile.am:
13283 * docs/plugins/Makefile.am:
13284 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
13285 * docs/plugins/gstreamer-vaapi-plugins.types:
13286 * docs/reference/Makefile.am:
13287 * docs/reference/plugins/Makefile.am:
13288 * docs/reference/plugins/plugins-sections.txt:
13289 * docs/reference/plugins/plugins.types:
13290 * docs/version.entities.in:
13291 resurrect gtk-doc machinery
13292 Our auto-generated documentation has been a bit neglected. This patch replaces
13293 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
13294 plugins, elements and libraries.
13295 This patch also re-enables documentation generation.
13296 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13298 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13304 use gst-common submodule
13305 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
13306 GStreamer common submodule.
13307 The documentation generation has been disable temporarily since it needs a
13308 major rework, which will be done in the following commit.
13309 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13311 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13315 add gst-common submodule
13316 Pointing to branch 1.6
13317 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13319 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13321 * gstreamer-vaapi.doap:
13322 add doap descriptor
13323 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
13324 describe software projects, in particular free and open source software.
13325 The description is used in GStreamer as in many other open source projects.
13326 This patch adds the doap description of this project.
13327 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13329 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13331 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
13332 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13333 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
13334 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
13335 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
13336 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
13337 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13338 * gst-libs/gst/vaapi/gstvaapiimage.c:
13339 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
13340 * gst-libs/gst/vaapi/gstvaapipixmap.c:
13341 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
13342 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13343 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
13344 libs: humongous code style fix
13345 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
13346 umbrella, we need to comply with the project's code style. This meant to
13347 change a lot of code.
13348 It was decided to use a single massive patch to update the code style.
13349 I would like to apologize with the original developers of this code because of
13350 the history breakage.
13351 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13353 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13355 * gst-libs/gst/vaapi/gstvaapicontext.c:
13356 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13357 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13358 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13359 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
13360 * gst/vaapi/gstvaapivideomemory.c:
13361 libs: small refactors to enhance the code style
13362 As gst-indent generated ugly code in these cases, this patch changes the used
13363 idiomatic into other one.
13364 No functional changes were introduced.
13365 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13367 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13369 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
13370 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
13371 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
13372 * gst-libs/gst/vaapi/gstvaapidecoder.c:
13373 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13374 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
13375 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
13376 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13377 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13378 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13379 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13380 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
13381 * gst-libs/gst/vaapi/gstvaapifilter.c:
13382 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
13383 * gst-libs/gst/vaapi/gstvaapisurface.c:
13384 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
13385 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
13386 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
13387 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
13388 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
13389 * gst-libs/gst/vaapi/gstvaapiwindow.c:
13390 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
13391 libs: small code style fixes
13392 This a set of small code style fixes detected as-is by gst-indent.
13393 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13395 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13397 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
13398 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
13399 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
13400 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
13401 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
13402 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
13403 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
13404 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
13405 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
13406 libs: trivial comment style fixes
13407 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13409 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13411 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
13412 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
13413 libs: avoid gst-indent mess up
13414 Guard pieces of code to avoid gst-ident to mess up the following code.
13415 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13417 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13419 * gst/vaapi/gstvaapidecode.c:
13420 * gst/vaapi/gstvaapidecodebin.c:
13421 * gst/vaapi/gstvaapipluginutil.c:
13422 * gst/vaapi/gstvaapisink.c:
13423 * gst/vaapi/gstvaapivideomemory.c:
13424 plugins: fix code style
13425 Minor code style changes by executing gst-indent in gst/vaapi directory.
13426 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13428 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
13430 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13431 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13432 Fix some more compiler warning
13433 Two (false) compiler warnings about variables potentially
13434 being used uninitialized, and one about a variable being
13436 https://bugzilla.gnome.org/show_bug.cgi?id=759192
13438 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
13440 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13441 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
13442 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13443 * gst-libs/gst/vaapi/gstvaapifilter.c:
13444 * gst/vaapi/gstvaapidecode.c:
13445 * gst/vaapi/gstvaapipluginbase.c:
13446 * gst/vaapi/gstvaapipluginutil.c:
13447 * gst/vaapi/gstvaapipostproc.c:
13448 * tests/simple-encoder.c:
13449 * tests/test-filter.c:
13450 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
13451 Declare variables at the beginning of a code block, which
13452 is how it's done in GStreamer.
13453 https://bugzilla.gnome.org/show_bug.cgi?id=759192
13455 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13457 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13458 decoder: vp9: Fix crop rectangle setting
13459 Align with software vp9dec behaviour: Add crop rectangle
13460 only if display_width/display_height is less than the
13461 frame_hdr->width/frame_hdr->height
13463 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13465 * gst/vaapi/gstvaapidecode.c:
13466 vaapidecode: Fix renegotiation for resolution change
13467 Always renegotiate the pool if the immediate frame which going
13468 to be pushed has a different un-cropped resolution than the already
13471 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13473 * gst/vaapi/gstvaapipluginbase.h:
13474 plugins: use the same pre-processor macro
13475 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
13476 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
13477 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
13478 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
13479 in the header file.
13480 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13482 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13484 * gst-libs/gst/vaapi/gstvaapidecoder.c:
13485 decoder: update a deprecated function
13486 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
13487 deprecated since GStreamer 1.0.
13488 This patch replace it with gst_adapter_prev_pts()
13489 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13491 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13494 build: honor configure's cache
13495 The user might enable --config-cache when calling configure script. If so, our
13496 configuration variables will not be correctly calculated.
13497 This patch extracts the value of our variables either from the cache or from
13498 the operation result.
13499 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13501 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13504 build: use common version variables
13505 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13507 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13510 build: hard-code an unneeded macro
13511 That macro is required for EGL's dynamic module loading, but since
13512 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
13513 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
13514 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13516 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13519 build: refactorization of dependency tracking
13520 This patch tries to avoid branching in configure.ac using a more functional
13521 approach in macros usage.
13522 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13524 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13527 build: check for OpenGL either GLX or EGL are requested
13528 Refactor some code in configure.ac to centralize $enable_opengl definition.
13529 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13531 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13534 build: indent and add square braces
13535 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13537 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13540 build: upgrade autotools version dependency
13541 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13543 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13546 build: enhance string comparisons
13547 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
13548 the string is empty or undefined.
13549 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13551 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13554 build: remove unused variables
13555 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13557 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13560 build: remove check for old version of gstreamer
13561 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13563 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13566 build: remove GStreamer's parsers checks
13567 This patch removes almost all the parsers check since they are already in place,
13568 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
13569 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13571 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13574 * gst/vaapi/Makefile.am:
13575 build: add gstreamer-pbutils dependency
13576 This dependency was added in gstvaapidecodebin with the call
13577 gst_missing_element_message_new().
13578 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13580 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13583 build: fix variable declaration
13584 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13586 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13588 * gst-libs/gst/vaapi/Makefile.am:
13589 build: fix when HEVC decoder is disabled
13590 This a very pathological situation: when we have a HEVC encoder but not a HEVC
13592 The encoder needs functions that are only available when the decoder is
13594 This patch moves the utils functions into the generic sources, such as the
13596 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13598 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13600 * gst/vaapi/Makefile.am:
13601 build: remove unused EGL specific sources
13602 These Makefile variables are not used at all.
13603 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13605 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13607 * gst/vaapi/Makefile.am:
13608 build: remove check for GStreamer 1.2
13609 Since we are working for current stable GStreamer 1.6
13610 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13612 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13614 * gst/vaapi/gstvaapiparse.h:
13615 Remove more video parser crufts
13616 This header is not used anymore since it declares parsers that are
13617 already in GStreamer 1.6
13618 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13620 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
13623 * docs/reference/Makefile.am:
13624 * docs/reference/libs/Makefile.am:
13625 * docs/reference/libs/libs-docs.xml.in:
13626 * docs/reference/libs/libs-overrides.txt:
13627 * docs/reference/libs/libs-sections.txt:
13628 docs: remove library documentation which is non-public now
13629 https://bugzilla.gnome.org/show_bug.cgi?id=759192
13631 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
13635 * debian.upstream/Makefile.am:
13636 * debian.upstream/changelog.in:
13637 * debian.upstream/compat:
13638 * debian.upstream/control.in:
13639 * debian.upstream/copyright:
13640 * debian.upstream/gstreamer-vaapi-doc.install.in:
13641 * debian.upstream/gstreamer-vaapi.install.in:
13642 * debian.upstream/rules:
13643 Remove debian.upstream packaging
13644 https://bugzilla.gnome.org/show_bug.cgi?id=759192
13646 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13648 * gst-libs/gst/vaapi/gstvaapidecoder.c:
13649 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13650 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
13651 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13652 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13653 * gst/vaapi/gstcompat.h:
13654 * gst/vaapi/gstvaapi.c:
13655 * gst/vaapi/gstvaapidecode.c:
13656 * gst/vaapi/gstvaapiencode.c:
13657 * gst/vaapi/gstvaapipluginbase.c:
13658 * gst/vaapi/gstvaapipluginbase.h:
13659 * gst/vaapi/gstvaapipluginutil.c:
13660 * gst/vaapi/gstvaapisink.c:
13661 Remove old gst version guards
13662 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
13663 all the old GStreamer version guards.
13664 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13666 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13668 * gst/vaapi/gstvaapiparse.c:
13669 Remove video parser crufts
13670 We forgot to remove gstvaapiparse.c when we removed all the videoparser
13672 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13674 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13676 * docs/reference/libs/Makefile.am:
13677 * docs/reference/plugins/Makefile.am:
13678 * gst-libs/gst/vaapi/Makefile.am:
13679 * gst/vaapi/Makefile.am:
13680 * tests/Makefile.am:
13681 libs: remove versioning
13682 Since we don't install libraries anymore, it makes no sense to keep
13683 versioning them according to the gstreamer's version.
13684 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13686 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13689 * debian.upstream/Makefile.am:
13690 * debian.upstream/control.in:
13691 * debian.upstream/libgstvaapi-dev.install.in:
13692 * debian.upstream/libgstvaapi-drm.install.in:
13693 * debian.upstream/libgstvaapi-glx.install.in:
13694 * debian.upstream/libgstvaapi-wayland.install.in:
13695 * debian.upstream/libgstvaapi-x11.install.in:
13696 * debian.upstream/libgstvaapi.install.in:
13697 * gst-libs/gst/vaapi/Makefile.am:
13698 * tests/Makefile.am:
13699 libs: make libraries no installables
13700 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13702 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13704 * debian.upstream/libgstvaapi-dev.install.in:
13705 * gst-libs/gst/vaapi/Makefile.am:
13706 Do not install libgstvaapi headers
13707 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13709 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13713 * patches/Makefile.am:
13714 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
13715 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
13716 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
13717 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
13718 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
13719 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
13720 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
13721 * patches/videoparsers/Makefile.am:
13722 * patches/videoparsers/series.frag:
13723 Remove videoparser patches
13725 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13729 * debian.upstream/libgstvaapi-dev.install.in:
13730 * pkgconfig/Makefile.am:
13731 * pkgconfig/gstreamer-vaapi-drm.pc.in:
13732 * pkgconfig/gstreamer-vaapi-glx.pc.in:
13733 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
13734 * pkgconfig/gstreamer-vaapi-x11.pc.in:
13735 * pkgconfig/gstreamer-vaapi.pc.in:
13736 Remove pkg-config files
13737 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13739 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13745 * ext/codecparsers:
13746 * gst-libs/gst/Makefile.am:
13747 * gst-libs/gst/codecparsers/Makefile.am:
13748 * gst-libs/gst/vaapi/Makefile.am:
13749 * gst/vaapi/Makefile.am:
13750 Remove codecparsers submodule
13751 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13753 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13758 * debian.upstream/libgstvaapi.install.in:
13760 * ext/libvpx/Makefile.am:
13761 * ext/libvpx/gstlibvpx.c:
13762 * ext/libvpx/gstlibvpx.h:
13763 * ext/libvpx/libgstcodecparsers_vpx.vers:
13764 * ext/libvpx/sources.frag:
13765 * ext/libvpx/upstream:
13766 * gst-libs/gst/codecparsers/Makefile.am:
13767 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
13768 Remove libvpx submodule
13769 We will be using upstream codecparsers always.
13770 No more internal libvpx !
13772 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13775 build: fix check for GstJpegParser
13776 Right now the local JPEG parser is always compiled because the check for the
13777 upstreamed version is broken: it looks for an non existent symbol:
13779 This patch changes that check for< GstJpegFrameHdr.
13780 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13782 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
13784 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
13785 wayland: free the frame in frame_release_callback()
13786 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
13787 decouple wl_buffer from frame).
13788 Otherwise the frame may be overwritten while it is still used by the
13790 The frame done callback (frame_done_callback()) is called, when the
13791 compositor is done processing the frame and hands it to the hardware.
13792 The buffer release callback (frame_release_callback()) is called when the
13793 buffer memory is no longer used.
13794 This can be quite some time later: E.g. if weston (with the DRM backend)
13795 puts the buffer on a hardware plane, then then buffer release callback is
13796 called when the kernel is done with the buffer. This is usually when the
13797 next frame is shown, so most likely after the frame done callback for the
13799 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
13800 destroy()" the mentioned possible leak should no longer be a problem, so
13801 reverting this change should cause no leaking buffers.
13802 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13803 https://bugzilla.gnome.org/show_bug.cgi?id=758848
13804 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13806 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13808 * gst/vaapi/gstvaapipostproc.c:
13809 vaapipostproc: check ANY caps at transform_caps()
13810 When transforming downstream caps we should check for ANY caps from peer pad,
13811 otherwise we get a segmentation fault.
13812 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13813 https://bugzilla.gnome.org/show_bug.cgi?id=759893
13815 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13817 * gst/vaapi/gstvaapisink.c:
13818 vaapisink: ignore frame if its upload failed
13819 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
13820 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
13821 ignored by the vaapisink, leading to a segmentation fault.
13822 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
13823 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
13824 segmentation fault, but doing and effort to continue rendering. This is
13825 the same behavior of ximagesink.
13826 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13827 https://bugzilla.gnome.org/show_bug.cgi?id=759332
13829 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
13832 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
13833 https://bugzilla.gnome.org/show_bug.cgi?id=759184
13835 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13837 * gst-libs/gst/vaapi/gstvaapicontext.c:
13838 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13839 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
13840 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
13841 Add 10 HEVC 10 bit decoding support
13842 Only supporting vaapidecode ! vaapisink combination for now.
13843 Missing dependencies:
13844 1: No support for P010 video format in GStreamer
13845 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
13846 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
13847 through GstVideoMeta.
13848 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
13849 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
13850 of the surfaces is implementation (driver) defined, which is P010.
13852 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13854 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
13855 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
13856 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
13857 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
13858 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
13859 chroam type and dimensions. The underlying format of the surfaces is
13860 implementation (driver) defined.
13862 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13864 * gst-libs/gst/vaapi/gstvaapisurface.h:
13865 * gst-libs/gst/vaapi/gstvaapiutils.c:
13866 Add definitions for YUV420 with more than 8 bits per channel
13868 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13870 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13871 gstvaapiporfile: Fix string representation of HEVCMain10 profile
13873 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13876 Bump version for development
13878 === release 0.7.0 ===
13880 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13885 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13890 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13895 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13900 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13902 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
13903 texture: detect GL version and use the proper API
13904 When receiving the texture from the application or the video sink, we must
13905 know it size and border. To query the texture the API has changed according to
13906 the OpenGL version used in the GL context of the application/vsink.
13907 This patch checks the current context API type and queries the texture
13908 according to this detected API.
13909 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13910 https://bugzilla.gnome.org/show_bug.cgi?id=753099
13912 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13914 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
13915 texture: check for expected target and format
13916 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
13917 formats GL_RGBA or GL_BGRA.
13918 This patch adds a debugging verification of those values.
13919 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13920 https://bugzilla.gnome.org/show_bug.cgi?id=753099
13922 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13924 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
13925 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
13926 libs: add gl3_bind_texture_2d()
13927 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
13928 needed. In particular, the Intel's Mesa implementation complains if it is
13930 This patch add a new binding function for 2D textures, without enabling
13931 gl3_bind_texture_2d()[2].
13932 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
13933 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
13934 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13935 https://bugzilla.gnome.org/show_bug.cgi?id=753099
13937 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13939 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
13940 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
13941 libs: add gl_get_current_api()
13942 In order to know which OpenGL API use, we must detect the API type of current
13943 context. This patch adds the function gl_get_current_api() which returns the
13945 This function is an adaptation of gst_gl_context_get_current_gl_api() from
13947 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13948 https://bugzilla.gnome.org/show_bug.cgi?id=753099
13950 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13953 * gst-libs/gst/vaapi/Makefile.am:
13954 build: Add gmodule dependency for libgstvaapi_egl
13955 https://bugzilla.gnome.org/show_bug.cgi?id=756259
13957 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13959 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
13960 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
13961 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
13962 * patches/videoparsers/series.frag:
13963 patches/videoparsers: h264: Disable passthorugh mode enabling
13964 This is a quick fix for regression introduced by the upstream
13965 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
13966 The patch is disabling the passthrough mode, otherwise it will
13967 break multi-layer mvc stream parsing.
13968 https://bugzilla.gnome.org/show_bug.cgi?id=758656
13970 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13972 * gst/vaapi/Makefile.am:
13973 * patches/videoparsers/Makefile.am:
13974 * patches/videoparsers/series.frag:
13975 build: add gsth265parse patches conditionally
13976 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
13977 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
13979 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13980 https://bugzilla.gnome.org/show_bug.cgi?id=755525
13982 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13984 * gst/vaapi/Makefile.am:
13985 build: declare correctly parse lib built files
13986 This is a continuation of commit fc8a0d12
13987 When declaring BUILT_SOURCES, those files should not be distributed. This
13988 patch avoids the distribution of the generated source code.
13989 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13990 https://bugzilla.gnome.org/show_bug.cgi?id=755525
13992 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13994 * ext/libvpx/sources.frag:
13995 build: libvpx: Add missing source file
13997 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13999 * gst/vaapi/gstvaapipostproc.c:
14000 vaapipostproc: Correctly detect the caps change
14001 This is a quick fix for regression introuduced by the
14002 commit 757833230bc73b8e3b4e31649e4618ba802bea51
14003 With out this, the gst_vaapipostproc_create() will
14005 https://bugzilla.gnome.org/show_bug.cgi?id=758543
14007 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14009 * ext/libvpx/Makefile.am:
14010 * ext/libvpx/sources.frag:
14011 build: libvpx: update the sources lists
14012 `make dist` broke since commit f06798 (libvpx: Update the submodule to
14013 libvpx-1.4.0) because the sources.frag does not contain all the module
14015 This patch updates thoroughly the sources.
14016 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14017 https://bugzilla.gnome.org/show_bug.cgi?id=755525
14019 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14021 * gst/vaapi/gstvaapipostproc.c:
14022 vaapipostproc: don't set caps change at first set
14023 When the source caps change, the filter is destroyed and recreated.
14024 Nonetheless, this happens every time the vaapipostproc starts, since the caps
14025 change detection algorithm does not take in consideration when the caps are
14027 This patch intents to be an optimization, to avoid a useless filter
14028 destroy-creation cycle when the sources caps are set for first time.
14029 The new helper function video_info_update() is a refactorization to avoid
14031 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14032 https://bugzilla.gnome.org/show_bug.cgi?id=758007
14034 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14036 * gst/vaapi/gstvaapipostproc.c:
14037 vaapipostproc: params video_info_changed() callers
14038 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
14039 swapped the the order. This didn't raise problems since the comparison of both
14040 structures were not affected by its semantics.
14041 But still it would be better to fix this to keep the coherence of the code.
14042 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14043 https://bugzilla.gnome.org/show_bug.cgi?id=758007
14045 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14047 * gst/vaapi/Makefile.am:
14048 build: declare real built files
14049 When runnig the `make dist` target from a clean tree, it fails because
14050 if could not find the copied files from codecparsers submodule.
14051 They weren't copied because they weren't declared as built sources.
14052 This patch removes the stamp mechanism and use the actual file list to copy
14053 as the built sources. Also it fixes the duplication of the parser files.
14054 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14055 https://bugzilla.gnome.org/show_bug.cgi?id=755525
14057 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14059 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14060 decoder: vp9: Fix last/golden/altref frame index setting
14061 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
14062 based on what ever reference frame indices encoded in frame header.
14064 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14066 * debian.upstream/rules:
14067 debian: remove custom parallel compilation
14068 In order to build a debian package with upstream source, the user should
14071 cp -a debian.upstream debian
14072 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
14073 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
14074 way to make a parallel build (-j8 in this case).
14075 This commit removes the script in debian/rules that detects the number of
14076 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
14077 official in debian.
14078 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14079 https://bugzilla.gnome.org/show_bug.cgi?id=754087
14081 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14083 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14084 decoder: vp9: Fix PTS calculation of cloned frames
14086 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14088 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14089 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
14090 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
14091 gstvaapidecoder base calss is reponsible for handling those frames later on.
14092 No need for explicit verification of frame header's show_frame in order to
14093 do picture outputing.
14095 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14097 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14098 decoder: vp9: Fix ref picture update while doing repeat frame
14099 Don't try to do frame decoding and reference picture update
14100 while receiving a vp9 frame having show_existing_frame flag
14103 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14105 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14106 decoder: vp9: Add repeat-frame display handling
14107 If vp9 frame header come up with show_existing_frame flag set,
14108 we should duplicate the existing decoded frame as current frame to
14111 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14113 * gst/vaapi/gstvaapidecodebin.c:
14114 vaapidecodebin: add me as element co-author
14115 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14116 https://bugzilla.gnome.org/show_bug.cgi?id=757957
14118 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14120 * gst/vaapi/gstvaapidecodebin.c:
14121 vaapidecodebin: try to get display from decoder
14122 Rather than create a dummy display, if none has propagated as a context, we
14123 should try to get the one from vaapidecode.
14124 As the bin is already in READY state, the vaapidecode should be also in that
14125 state. That means that the contexts have been negotiated, and it should have
14127 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14128 https://bugzilla.gnome.org/show_bug.cgi?id=757957
14130 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14132 * gst/vaapi/gstvaapidecodebin.c:
14133 * gst/vaapi/gstvaapidecodebin.h:
14134 vaapidecodebin: add postprocessor dynamically
14135 The former approach to left the bin unfinished has some problems: the context
14136 cannot be shared because the vaapidecode is unlinked in many cases, leading to
14137 creating a VADisplay twice.
14138 Initially the bin is fully functional, constructed as
14139 (-----------------------------------)
14141 | (-------------) (-------) |
14142 |<--| vaapidecode |--->| queue |--->|
14143 | (-------------) (-------) |
14144 (-----------------------------------)
14145 When the context is shared and the VADisplay has VPP capabilities, before
14146 changing to READY state, the bin is reconfigured dynamically, adding the
14147 vaapipostproc element afeter the queue:
14148 (--------------------------------------------------------)
14150 | (-------------) (-------) (---------------) |
14151 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
14152 | (-------------) (-------) (---------------) |
14153 (--------------------------------------------------------)
14154 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14155 https://bugzilla.gnome.org/show_bug.cgi?id=757957
14157 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14159 * gst/vaapi/gstvaapidecodebin.c:
14160 vaapidecodebin: delay the bin configuration
14161 Delay the bin configuration until changing to READY state. This is because we
14162 should add the vaapipostproc element until the vaapidecode has emitted the
14163 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
14165 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14166 https://bugzilla.gnome.org/show_bug.cgi?id=757957
14168 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14170 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14171 decoder: vp9: Add crop rectangle support.
14172 Set crop rectange if:
14173 There is display_width and display_height which is different from actual width/height
14175 The changed resolution is less than the actual configured dimension of surfaces
14177 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14179 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14180 decoder: vp9: Fix the context and surface pool reset for multi resolution video
14181 Unlike other decoders, vp9 decoder doesn't need to reset the
14182 whole context and surfaces for each resolution change. Context
14183 reset only needed if resolution of any frame is greater than
14184 what actullay configured. There are streams where a bigger
14185 resolution set in ivf header or webm header but actual resolution
14186 of all frames are less. Also it is possible to have inter-prediction
14187 between these multi resolution frames.
14189 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14191 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14192 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
14193 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
14194 Preliminary fix for supproting multi resolution video decode.
14196 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14198 * gst/vaapi/gstvaapidecode.c:
14199 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
14201 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14203 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14204 decoder: vp9: Set lossless flag from frame header
14206 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14208 * ext/codecparsers:
14209 codecparsers: Update to gst-vaapi-branch d9f25
14210 d9f2527: codecparsers: vp9: Set lossless flag in frame header
14212 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14214 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14215 libs: vp9: remove unused symbols
14216 clang complains about a couple variables and one label which were not
14217 used. This patch removes them.
14218 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14219 https://bugzilla.gnome.org/show_bug.cgi?id=757958
14221 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14223 * ext/codecparsers:
14224 codecparsers: Update to gst-vaapi-branch da251bb
14225 da251bb: codecparsers: vp9: Optimize the memory allocation
14226 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
14228 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14230 * gst/vaapi/gstvaapipluginbase.c:
14231 * gst/vaapi/gstvaapipluginbase.h:
14232 plugin: guard pointers to pad query functions
14233 Since gstreamer 1.4 is not required to have pad query functions if the query
14235 This patch guards out the pad query functions for gstreamer < 1.4
14236 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14237 https://bugzilla.gnome.org/show_bug.cgi?id=757629
14239 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14241 * gst/vaapi/gstvaapiencode.c:
14242 vaapiencode: use pad query vmethods
14243 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
14244 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
14245 while keeps support for previous versions of gstreamer.
14246 This patch is relevant since GstVideoEncoder takes care of other queries that
14247 we are currently ignoring.
14248 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14249 https://bugzilla.gnome.org/show_bug.cgi?id=757629
14251 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14253 * gst/vaapi/gstvaapidecode.c:
14254 vaapidecode: return pad's template caps if no display
14255 A caps query can occur before the element has a display. In that case, the
14256 element can return its pad's template. But when the element already has a
14257 display, and the caps probe fails, the element shall return an empty caps, so
14258 the auto-plug could try with another decoder.
14259 If the element has a display and the caps probe works, then the computed caps
14260 should be returned.
14261 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14262 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14264 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14266 * gst/vaapi/gstvaapidecode.c:
14267 * gst/vaapi/gstvaapisink.c:
14268 plugins: don't create display at caps query
14269 Caps query can happen before the element has a bus. The display creation should
14270 be should occur on the context negotiation, when the bus is already configured.
14271 Then at caps query no display should be created.
14272 Instead of force the display creation, we graciously fail the allowed_caps()
14274 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
14275 basetransform descendant, seems to be not affected by this, nor the encoders.
14276 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14277 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14279 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14281 * gst/vaapi/gstvaapidecode.c:
14282 * gst/vaapi/gstvaapiencode.c:
14283 * gst/vaapi/gstvaapipluginutil.c:
14284 * gst/vaapi/gstvaapipluginutil.h:
14285 * gst/vaapi/gstvaapipostproc.c:
14286 * gst/vaapi/gstvaapisink.c:
14287 plugins: fix context query handling
14288 The current context query handling design is flawed: the function
14289 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
14290 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
14291 pad query function should handle differently each case.
14292 This patch changes the gst_vaapi_reply_to_query() for
14293 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
14294 to match the correct context query handling.
14295 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14296 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14298 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14300 * gst/vaapi/gstvaapipluginutil.c:
14301 plugin: don't lose previous context at query
14302 When processing the GST_CONTEXT_QUERY we should not lose the previous
14303 context in the query, we should only add our display structure.
14304 This patch copies the old context, if it is there, and stamp our display on
14305 it. Otherwise, a new context is created.
14306 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14307 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14309 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14311 * gst/vaapi/gstvaapivideocontext.c:
14312 * gst/vaapi/gstvaapivideocontext.h:
14313 vaapivideocontext: add gst_vaapi_video_context_set_display()
14314 This function set the display to an already created context. This function is
14315 going to be used later.
14316 Also, gst_vaapi_video_context_new_with_display() now uses this function.
14317 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14318 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14320 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14322 * gst/vaapi/gstvaapipluginutil.c:
14323 * gst/vaapi/gstvaapivideocontext.c:
14324 * gst/vaapi/gstvaapivideocontext.h:
14325 plugins: check if display is set in sync
14326 Since the context messages are sync'ed, the display assignation happens in the
14327 same thread, hence we can know if the display was found or not as soon we call
14329 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
14330 as a new parameter, the address of the plugin's display, and reports back if
14331 the display was found and set.
14332 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14333 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14335 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14337 * gst/vaapi/gstvaapipluginutil.c:
14338 * gst/vaapi/gstvaapivideocontext.c:
14339 plugins: set display through context
14340 Instead of setting the display to the plugin directly after its creation, do
14341 it through the gstreamer's context mechanism, avoiding double assignations.
14342 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14343 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14345 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14347 * gst/vaapi/gstvaapivideocontext.c:
14348 vaapivideocontext: rename context structure
14349 The context structure is named "display" which is too generic. The contrary
14350 happens, for example, with GstGL, what uses the same name as the context, and
14351 its logs make more sense.
14352 This patch renames the context structure with the same name as the
14353 context, thus GST_PTR_FORMAT can pretty print it.
14354 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14356 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14358 * gst/vaapi/gstvaapivideocontext.c:
14359 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
14360 First, refactorized run_context_query() into _gst_context_run_query(), adding
14361 a new parameter: the pad direction, in order to simplify the code.
14362 Second, added a new helper function: _gst_context_query(), which is a generic
14363 context query function. It isolates the operation of running the query and
14364 sets the context if found, also it enhances the logs.
14365 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
14366 future this helper function will be merged into the core libraries of
14368 Finally, gst_vaapi_video_context_prepare() was rewritten to use
14369 _gst_context_query().
14370 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14371 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14373 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14375 * gst/vaapi/gstvaapivideocontext.c:
14376 vaapivideocontext: refactor context category debug
14377 Refactor the extraction GST_CAT_CONTEXT logging using a only once
14378 initializator, so we could get the debug category from different code
14380 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14381 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14383 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14385 * gst/vaapi/gstvaapivideocontext.c:
14386 gstvaapivideocontext: fix indentation
14387 gst-indent does not handle correctly some expression like function
14388 declaration with attributes, breaking the following expressions.
14389 This patch makes gst-indent to ignore the attributed function
14390 declartion so the followed function definition is not mangled, such
14391 as happened in commit b4154a
14392 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14393 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14395 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14397 * gst/vaapi/gstvaapipluginbase.c:
14398 plugin: chain up set_context() vmethod
14399 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
14400 the parent class in order to broadcast all its contexts when the element
14401 is added into a bin:
14402 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
14403 There is no need to guard the call, because before GStreamer 1.7, the
14404 set_context() vmethod was NULL in the element class, hence the conditional
14406 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14407 https://bugzilla.gnome.org/show_bug.cgi?id=757598
14409 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14411 * tests/simple-encoder.c:
14412 tests: simple-encoder: remove dead code
14413 The caps creation for codec state configuration is not used. Let's remove it.
14414 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14416 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14418 * gst/vaapi/gstvaapidecodebin.c:
14419 vaapidecodebin: fix a leaked display instance
14420 The display returned by gst_vaapi_video_context_get_display() increments the
14421 references. Thus, we have to unref the returned display.
14422 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14423 https://bugzilla.gnome.org/show_bug.cgi?id=757595
14425 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14427 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
14428 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
14429 libs: remove unneeded headers
14430 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
14431 required to include them in the header. It is not also required to include
14432 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
14433 exposes their structures (e.g. GLXPixmap).
14434 Nonetheless, glext.h neither glxext.h are required to include, they are
14435 already included conditionally by gl.h and glx.h, respectively.
14436 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14437 https://bugzilla.gnome.org/show_bug.cgi?id=757577
14439 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14441 * ext/codecparsers:
14442 codecparsers: Update to gst-vaapi-branch 0ea6792
14443 0ea6792: codecparsers: vp9: Add header comments
14444 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
14446 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14448 * gst/vaapi/gstvaapidecode.c:
14449 VP9: plugins: Add VP9 decoder
14451 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14453 * gst-libs/gst/vaapi/Makefile.am:
14454 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14455 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
14456 VP9: libgstvaapi: Add VP9 decoder
14458 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14460 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14461 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14462 VP9: gstvaapiprofile: Add profile definitions
14464 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14467 VP9: build: Check availability of vp9 decoder APIs
14469 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14473 * gst-libs/gst/codecparsers/Makefile.am:
14474 VP9: Allow building vp9 codecparser internally
14476 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14478 * ext/codecparsers:
14479 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
14480 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
14481 e7d9217: codecparser: h264: initialize parsing structures
14482 403d400: codecparser: h265: initialize parsing structures
14484 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14487 configure.ac: don't use an undefined variable
14488 If the environment lacks of gstreamer development packages, this error will
14489 be reported to the user: "gstreamer- was not found"
14490 This is because we are using an undefined variable in the printed message. The
14491 fix simple changes the variable for the hard-coded string "1.0".
14492 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14493 https://bugzilla.gnome.org/show_bug.cgi?id=757283
14495 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14497 * gst/vaapi/gstvaapidecode.c:
14498 vaapidecode: relax guards for memory:VASurface capsfeature
14499 Though caps features are supported since GStreamer 1.2, there are some
14500 issues with the features caps negotiation in that version. Nonetheless,
14501 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
14502 feature negotiation is relaxed for GStreamer 1.4.
14503 The guard is the same as in vaapisink's caps template.
14504 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14505 https://bugzilla.gnome.org/show_bug.cgi?id=756686
14507 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14509 * gst/vaapi/gstvaapidecode.c:
14510 vaapidecode: decide allocation doesn't update srccaps
14511 The received caps query will bring the already negotiated caps, so they are
14512 not expected to change.
14513 This patch removes this verification which is dead code path.
14514 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14515 https://bugzilla.gnome.org/show_bug.cgi?id=756686
14517 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14519 * gst/vaapi/gstvaapidecode.c:
14520 * gst/vaapi/gstvaapipluginutil.c:
14521 * gst/vaapi/gstvaapipluginutil.h:
14522 vaapidecode: use caps to check the features
14523 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
14524 expensive, we check the caps from the allocation query, to check the
14525 negotiated feature.
14526 In order to do this verification a new utility function has been implemented:
14527 gst_vaapi_caps_feature_contains().
14528 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
14529 have been refactorized.
14530 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14531 https://bugzilla.gnome.org/show_bug.cgi?id=756686
14533 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14535 * gst/vaapi/gstvaapidecode.c:
14536 vaapidecode: set format before decide allocation
14537 There is a regression from commit 3d8e5e. It was expected the buffer pool
14538 allocation occur before the caps negotiation, but it is not.
14539 This patch fixes this regression: the caps negotiation is done regardless the
14540 allocation query from downstream.
14541 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14542 https://bugzilla.gnome.org/show_bug.cgi?id=756686
14544 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
14547 build: check for patch and fix yasm check
14548 Add configure checking for GNU patch tools and fixed configure
14549 checking YASM to correct sequence.
14550 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14551 https://bugzilla.gnome.org/show_bug.cgi?id=756690
14553 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14555 * ext/libvpx/Makefile.am:
14556 build: Remove disable-md5 option for libvpx build
14557 The configure option --disable-md5 was provided in libvpx-1.3.0 which
14558 has been removed in 1.4.0.
14560 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14562 * ext/libvpx/upstream:
14563 libvpx: Update the submodule to libvpx-1.4.0
14564 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
14566 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14569 configure: mark support for GStreamer 1.2 as obsolete.
14570 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
14571 Our goal is to support the last two stable versions of GStreamer which
14572 are 1.4 and 1.6 at the moment.
14573 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
14574 release and will get rid of those in 0.8.
14576 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14578 * gst/vaapi/gstvaapidecode.c:
14579 vaapidecode: Fix buffer copy assertion
14580 Don't try to copy the NULL buffer-codec_data.
14582 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14585 build: allow builds against GStreamer 1.7.x
14586 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14588 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14590 * gst/vaapi/gstcompat.h:
14591 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
14592 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
14593 add an implementation if gstreamer-vaapi is linked to previous versions.
14594 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14596 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14598 * gst/vaapi/gstvaapidecode.c:
14599 vaapidecode: simplify copy of GstVideoCodecState
14600 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14602 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14604 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
14605 * patches/videoparsers/series.frag:
14606 patches/videoparsers: h265parser: more API fences
14607 Add more API fences according with its version and refresh the patch.
14608 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14609 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14611 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14613 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
14614 * patches/videoparsers/series.frag:
14615 patches/videoparsers: h265parser: rename patch keeping number
14616 Refresh the patch and rename it in order to keep the patch number.
14617 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14618 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14620 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14622 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
14623 patches/videoparsers: h264parser: more API fences and refresh
14624 Add more API fences according with its version and refresh the patch.
14625 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14626 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14628 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14630 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
14631 * patches/videoparsers/series.frag:
14632 patches/videoparsers: h264parser: fix description and refresh
14633 Fix a typo in the patch description and refresh it in order to avoid the
14634 creation of .orig files and break the distcheck target.
14635 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14636 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14638 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14640 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
14641 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
14642 patches/videoparsers: h264parser: refresh patches
14643 In order to avoid the creation of .orig files and break the distcheck target.
14644 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14645 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14647 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14649 * gst/vaapi/Makefile.am:
14650 build: link libgstvaapi_parse against codec parser
14651 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
14652 when running configure.
14653 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
14654 need it if builtin codec parsers are disabled.
14655 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
14656 compilation. If builtin codec parsers are enable, this variable is null, so it
14657 should work using libgstvaapi, as normal.
14658 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14659 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14661 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14664 build: verify for H264 MVC and H265 SPS
14665 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
14666 the required symbols for those were added in GStreamer 1.5
14667 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
14668 parsers, the compilation fails, because the lack of those symbols.
14669 This patch verifies if the installed H264 and H265 parsers have those symbols. If
14670 they do not, the specific built in codec parsers are enabled and used.
14671 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14672 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14674 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14676 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14677 decoder: h264: initialize PPS's slice_group_id
14678 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
14679 so it contains random data.
14680 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
14681 pointer uninitialized, leading to a segmentation fault when the memory is
14683 This patch prevents this by initializing the slice_group_id before the PPS
14685 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14686 https://bugzilla.gnome.org/show_bug.cgi?id=754845
14688 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
14690 * gst/vaapi/gstvaapidecode.c:
14691 vaapidecode: proper numerator and denominator for forced latency framerate
14692 https://bugzilla.gnome.org/show_bug.cgi?id=755040
14694 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14696 * ext/codecparsers:
14697 codecparsers: Update to gst-vaapi-branch commit f9e284b
14698 dae1a84: h264parse/h265parse: Fix negotiation crash
14699 45a9f8a: codecparsers: h265 : Fix default scaling list values
14700 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
14701 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14703 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14705 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14706 decoder: hevc: Don't flush dpb for EOS/EOB nal
14707 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
14708 the dpb_add() itself will handle the flusing(if needed) of dpb
14709 for end of sequence and end of bitstream.
14710 https://bugzilla.gnome.org/show_bug.cgi?id=754010
14712 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14714 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14715 decoder: hevc: Fix the dpb_add() based on C.5.2.3
14716 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
14717 just after the PicLatencyCnt setting of existing dpb frames.
14718 https://bugzilla.gnome.org/show_bug.cgi?id=754010
14720 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14722 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14723 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
14724 This fix is based on the V3 vesion of spec which was missing in older versions.
14725 When the current picture has PicOutputFlag equal to 1, for each picture in the
14726 DPB that is marked as "needed for output" and follows the current picture in output order,
14727 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
14728 https://bugzilla.gnome.org/show_bug.cgi?id=754010
14730 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14732 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14733 decoder: h265: Fix indentation
14735 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
14737 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14738 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14739 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
14740 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14741 * gst/vaapi/gstvaapidecode.c:
14742 * gst/vaapi/gstvaapipluginutil.c:
14743 multiview: initial attempt at stereo/multiview support
14744 Add support for marking caps and buffers for multiview or
14745 stereoscopic output.
14746 https://bugzilla.gnome.org/show_bug.cgi?id=750835
14748 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14750 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14751 decoder: hevc: remove unused functions
14752 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14753 https://bugzilla.gnome.org/show_bug.cgi?id=754250
14755 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14757 * gst/vaapi/gstvaapidecode.c:
14758 vaapidecode: remove (another) unused variable
14759 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14761 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14763 * gst/vaapi/gstvaapidecode.c:
14764 vaapidecode: remove unused variable
14765 Thus silence the compilation warnings.
14767 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14769 * gst/vaapi/gstvaapidecode.c:
14770 vaapidecode: compilation fix
14771 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
14772 compilation where the toolchain uses restrictive flags as clang.
14773 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14775 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14777 * gst/vaapi/gstvaapidecode.c:
14778 vaapidecode: renegotiate if caps are not equal
14779 The use of gst_caps_is_always_compatible() for this optimization may lead to
14780 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
14781 if it is required a re-negotiation.
14782 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14783 https://bugzilla.gnome.org/show_bug.cgi?id=750835
14785 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14787 * gst/vaapi/gstvaapidecode.c:
14788 * gst/vaapi/gstvaapidecode.h:
14789 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
14790 Delaying the pool re-negotiation untill we push all decoded (and queued)
14791 frames downstream. Otherwise for the multi-resolution videos, the
14792 GstVideoVideoMemory will be having wrong resolution and which leads
14793 to nasty behaviours, especially when using software renderers.
14794 sample media file: RAP_B_Bossen_1.bin
14796 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
14797 get the final resoultion 416x240.
14798 Starting from 25 th frame, the resolution will change to 416x240. But parser
14799 elements won't report this since the effective croped resolution is same in
14800 both cases. Here the core libgstvaapi will detect this through it's internal
14801 parsing and do all context/pool destory/reset stuffs. Also it will notify this
14802 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
14803 immediately, this will not sync with the resolution of already decoded and queued
14804 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
14805 software renderer). So we have to delay the pool renegotiation in vaapidecode,
14806 untill we push all decoded frames downstream.
14807 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14809 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14811 * gst/vaapi/gstvaapidecode.c:
14812 vaapidecode: Always keep a copy of input codec state
14813 Currently we are sharing the input GstVideoCodecState with
14814 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
14815 each caps change. This is troublesome in many cases, for eg: if
14816 resoultion changes with in a singe stream. Because, when ever there
14817 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
14818 fields with new resolution, but since we are using the same codecstate (ref)
14819 in gstvaapidecode.c, the caps check for input caps change will always fail.
14820 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14822 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14824 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14825 decoder: hevc: Fix the scaling list scan order
14826 The default scan order of scaling lists are up-right-diagonal
14827 as per hevc specification. Use the newly implemented
14828 uprightdiagonal_to_raster conversion codecparser APIs to
14829 get the the scaling_list values in raster order, which is
14830 what the VA intel driver requires.
14832 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14834 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14835 decoder: hevc: sync with the codecparser changes
14836 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
14837 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
14839 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14841 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
14842 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
14844 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14846 * ext/codecparsers:
14847 codecparsers: Update to gst-vaapi-branch commit 69550f1
14848 c207c6d: codecparsers: h265: Fix tile row and column parsing
14849 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
14850 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
14851 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
14852 2f0932b: h264parse: Clear SPS info after processing
14853 f57d6b0: videoparsers: enable accept-template flag
14855 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14857 * debian.upstream/control.in:
14858 debian: add yasm as build dependency
14859 As the compilation of libvpx (for vp8 parser) is enabled by default,
14860 yasm is required by default too.
14861 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14863 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
14865 * debian.upstream/rules:
14866 debian: remove --with-gstreamer-api option
14867 It is no longer valid in gstreamer-vaapi.
14868 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14869 [removed unused GST_API_VERSION variable]
14870 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14871 https://bugzilla.gnome.org/show_bug.cgi?id=753618
14873 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14875 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
14876 wayland: rename is_cancelled to sync_failed
14877 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
14878 sense. This commit renames this variable to sync_failed.
14880 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
14882 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
14883 wayland: Don't return GST_FLOW_ERROR on flushing
14884 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
14885 return FALSE which makes gst_vaapi_window_wayland_render() return
14886 FALSE which ends up posting an ERROR message in
14887 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
14889 https://bugzilla.gnome.org/show_bug.cgi?id=753598
14891 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14893 * gst/vaapi/gstvaapi.c:
14894 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
14895 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
14897 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14899 * gst/vaapi/gstvaapidecodebin.c:
14900 vaapidecodebin: check for postproc instance
14901 If the VPP's deinterlace-method is set, first we should check if the postproc
14902 is already instanced to set it. Otherwise we just store it until the VPP is
14903 added into the bin.
14904 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14905 https://bugzilla.gnome.org/show_bug.cgi?id=749554
14907 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14909 * gst/vaapi/gstvaapidecodebin.c:
14910 * gst/vaapi/gstvaapipluginutil.c:
14911 * gst/vaapi/gstvaapipluginutil.h:
14912 vaapidecodebin: ensure VPP before going to READY
14913 There are sometimes that the VA-API display context is not shared among the
14914 pipeline, but it is important to know it before going to READY state (when the
14915 pipeline is already linked).
14916 One instance of this case is this:
14917 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
14918 This patch adds a new function in gstvaapipluginutil called
14919 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
14920 display, which only will be used for verify if the VAEntrypointVideoProc is
14921 available by the hardware. Afterwards, it should be unrefed.
14922 If the vaapidecodebin is going to READY state, and the element still doesn't
14923 know if VPP is available, the last resort is to create a new instance of the
14924 VA-API display and test for it.
14925 https://bugzilla.gnome.org/show_bug.cgi?id=749554
14927 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14929 * gst/vaapi/gstvaapidecodebin.c:
14930 vaapidecodebin: post an error message if fails
14931 If the construction of the bin fails, post an error message in the bus.
14932 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14933 https://bugzilla.gnome.org/show_bug.cgi?id=749554
14935 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14937 * gst/vaapi/gstvaapidecodebin.c:
14938 * gst/vaapi/gstvaapidecodebin.h:
14939 vaapidecodebin: has_vpp as a tri-state variable
14940 has_vpp can be UNKNOWN while the context message hasn't being received.
14941 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14942 https://bugzilla.gnome.org/show_bug.cgi?id=749554
14944 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14946 * gst/vaapi/gstvaapivideomemory.c:
14947 gstvaapivideomemory: native format with no derived image
14948 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
14949 info based on the derived image configuration.
14950 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14951 https://bugzilla.gnome.org/show_bug.cgi?id=744042
14953 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
14955 * gst-libs/gst/vaapi/video-format.c:
14956 * gst-libs/gst/vaapi/video-format.h:
14957 * gst/vaapi/gstvaapivideomemory.c:
14958 surface pool config based on video info
14959 First added the function gst_vaapi_video_format_get_best_native(), which
14960 returns the best native format that matches a particular chroma type:
14961 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
14962 RGB32 chroma and encoded format map to NV12 too.
14963 That format is used to configure, initially, the surface's pool for the
14965 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14966 https://bugzilla.gnome.org/show_bug.cgi?id=744042
14968 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
14970 * gst/vaapi/gstvaapivideomemory.c:
14971 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
14972 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14973 https://bugzilla.gnome.org/show_bug.cgi?id=744042
14975 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
14977 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14978 gstvaapiencoder: validate chroma according to the VA's RT format
14979 Before, only YUV420 color space where supported. With this patch, the
14980 encoder is queried to know the supported formats and admits YUV422
14981 color space if its available.
14982 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14983 https://bugzilla.gnome.org/show_bug.cgi?id=744042
14985 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14987 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14988 decoder: hevc: Add calculation of WpOffsetHalfRangeC
14989 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
14990 prediction weight table values with out using any hard coding.
14991 Fixme: We don't have parser API for sps_range_extension, so
14992 assumed zero value for high_precision_offsets_enabled_flag.
14993 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14995 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14997 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14998 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
14999 Based on ITU-T rec H265(4/2015): 7-56
15000 This was a wrong equation in rec H265 (4/2013): 7-44...
15001 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15003 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15005 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15006 decoder: hevc: Fix default value assignment of pred_weight_table
15008 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15010 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15011 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
15012 Assign only if ChromaArrayType != 0..
15013 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15015 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15017 * ext/codecparsers:
15018 codecparsers: Update to gst-vaapi-branch commit 1c70432
15019 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
15020 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
15021 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15023 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15025 * ext/codecparsers:
15026 codecparsers: Update to gst-vaapi-branch commit c18b8ad
15027 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
15028 a033083: videoparsers: h265: Fix the frame start detection code
15029 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15031 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15033 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15034 decoder: hevc: Add SEI parsing
15035 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15037 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15039 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15040 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
15041 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
15042 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
15043 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
15044 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
15045 is TRUE. Assuming them as MAIN profile for now.
15046 https://bugzilla.gnome.org/show_bug.cgi?id=753226
15047 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15049 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15051 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15052 patches/videoparsers: Fix the wrong source file path
15053 This is something wrongly typed in commit 6d7b631
15055 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15057 * ext/codecparsers:
15058 codecparsers: Update to gst-vaapi-branch commit b8d8be4
15059 ee7e81b: h264parse: Don't discard first AU delimiter
15060 3690fb9: h264parse: Add more NAL types for debugging output
15061 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
15062 ace61048: h265parse: expose compatible profiles to downstream
15063 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15065 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15067 * gst/vaapi/gstvaapipluginutil.c:
15068 * gst/vaapi/gstvaapivideocontext.c:
15069 * gst/vaapi/gstvaapivideocontext.h:
15070 gstvaapivideocontext: remove unused parameter
15071 gst_vaapi_video_context_prepare() received an unused parameter. This patch
15072 removes it and the structure passed by the caller.
15073 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
15074 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15076 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15078 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15079 decoder: hevc: Fix decoding of stream when it has temporal sublayers
15080 We are calculating the dpb size based on max_dec_pic_buffering.
15081 But if there are more than one temporal sublayers, we are supposed
15082 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
15083 size calculation (Assuming HighestTid as max_sub_layers_minus).
15084 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
15085 https://bugzilla.gnome.org/show_bug.cgi?id=753226
15086 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15088 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15090 * gst/vaapi/gstvaapidecode.c:
15091 * gst/vaapi/gstvaapidecodebin.c:
15092 * gst/vaapi/gstvaapiencode_h264.c:
15093 * gst/vaapi/gstvaapiencode_h265.c:
15094 * gst/vaapi/gstvaapiencode_jpeg.c:
15095 * gst/vaapi/gstvaapiencode_mpeg2.c:
15096 * gst/vaapi/gstvaapiencode_vp8.c:
15097 * gst/vaapi/gstvaapipluginutil.h:
15098 * gst/vaapi/gstvaapipostproc.c:
15099 * gst/vaapi/gstvaapisink.c:
15100 refactor vaapi caps strings for pad templates
15101 Refactor the main vaapi caps strings into three macros:
15102 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
15103 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
15104 Those are in gstvaapipluginutil.h so all the elements could use them, instead
15105 of re-declaring them every time.
15106 No functional changes.
15107 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15109 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15111 * gst/vaapi/gstvaapipostproc.c:
15112 gstvaapipostproc: fix code style
15113 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15115 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15117 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15118 decoder: hevc: Fix the decoding of dependent slice segment
15119 Decoding process for reference picture list construction needs to be
15120 invoked only for P and B slice and the value for slice_type of dependent slice
15121 segment should be taken from the previous independent slice segment header
15123 https://bugzilla.gnome.org/show_bug.cgi?id=753226
15124 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15126 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
15128 * gst/vaapi/gstvaapipluginbase.c:
15129 plugins: reduce the noise of warnings
15130 Those messagse should be attached to the object, also the lack of
15131 caps is not an error, in particular in the case of JPEG encoding.
15132 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15133 https://bugzilla.gnome.org/show_bug.cgi?id=744042
15135 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
15137 * gst-libs/gst/vaapi/gstvaapicontext.c:
15138 gstvaapicontext: fix the JPEG encoder attribs value
15139 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
15140 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
15141 assigns the returned value to the attribute.
15142 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15143 https://bugzilla.gnome.org/show_bug.cgi?id=744042
15145 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
15147 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15148 gstvaapiencoder: framerate 0/1 is valid too
15149 Framerate 0/1 is valid, and it is particularly useful for picture
15150 encoding, such as jpeg. This patch makes the encoder to admit that
15152 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15153 https://bugzilla.gnome.org/show_bug.cgi?id=744042
15155 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15157 * gst/vaapi/gstvaapipostproc.c:
15158 vaapipostroc: GLTextureUploadMeta in sink template
15159 Advertise GLTextureUploadMeta in sink caps template.
15160 https://bugzilla.gnome.org/show_bug.cgi?id=752130
15162 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
15164 * gst/vaapi/Makefile.am:
15165 * gst/vaapi/gstvaapiencode.c:
15166 * gst/vaapi/gstvaapipluginbase.c:
15167 * gst/vaapi/gstvaapipluginbase.h:
15168 * gst/vaapi/gstvaapipostproc.c:
15169 * gst/vaapi/gstvaapisink.c:
15170 * gst/vaapi/gstvaapiuploader.c:
15171 * gst/vaapi/gstvaapiuploader.h:
15172 remove gstvaapiuploader
15173 Working on bug #744042 I realized that the gstvaapiuploader is practically not
15175 This patch removes the gstvaapiuploader and add the method
15176 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
15177 the system can handle, which is used by vaapisink and vaapipostproc.
15178 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15179 https://bugzilla.gnome.org/show_bug.cgi?id=752777
15181 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15183 * gst/vaapi/gstvaapidecode.c:
15184 vaapidecode: don't lost GLTextureUpload on seek
15185 When seeking, the decoder is reset, but the buffer pool is not
15186 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
15187 pool has the GLTextureUpload meta.
15188 The decoder knows that GLTextureUpload meta was negotiated in
15189 decide_allocation(), but this method is not called when seeking.
15190 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15191 https://bugzilla.gnome.org/show_bug.cgi?id=752929
15193 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15195 * gst/vaapi/gstvaapipluginutil.c:
15196 plugins: don't use gst_pad_get_allowed_caps()
15197 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
15198 decoders, that is OK, but in the case of the postproc might lead loops,
15199 since the gst_base_transform_query_caps() forwards the query upstream
15201 Instead of gst_pad_get_allowed_caps() we only query the peer with
15202 gst_pad_peer_query_caps() using the pad's template as filter.
15203 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15204 https://bugzilla.gnome.org/show_bug.cgi?id=752558
15206 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15211 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15213 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
15214 * patches/videoparsers/series.frag:
15215 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
15216 All API/ABI changes for S3D/MVC are added in 1.5, backporting
15217 them to older verison is not recommended.
15218 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15220 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15222 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15223 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
15225 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15227 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15228 decoder: jpeg: Align with new API/ABI changes in codecparser
15229 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15231 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15233 * ext/codecparsers:
15234 codecparsers: Update to gst-vaapi-branch commit 800bdb2
15235 ed13220: mpegvideometa: add meta transform function
15236 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
15237 7a51722: codecparsers: jpeg: fix docs for table parsing functions
15238 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
15239 387a39d: codecparsers: jpeg: fix up API
15240 db9d6a9: codecparsers: jpeg: tweak API a little
15241 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
15242 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
15243 4658c30: codecparsers: jpeg: fix calculation of segment size
15244 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
15245 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
15246 9422464: h264parse: fix typo in log message
15247 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
15248 77704ce: nalutils: trivial patch to check if
15249 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
15250 7862f95: Revert "codecparsers: remove ignored increment of return"
15251 54017b1: h264parse: Add support for passing stereoscopic/multiview info
15252 8667ee4: h264parse: Don't switch to passthrough on set_caps()
15253 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15255 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15257 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15258 decoder: h264: track previous reference frames.
15259 Improve closure of gaps in frame_num by strictly following and trying
15260 to fill them with previous reference frames. So, they are now tracked
15261 thus avoiding insertion of dummy ("greenish") frames.
15263 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15265 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15266 decoder: h264: fix integration of second field into the DPB.
15267 If the new picture to be added to the DPB is not a first field, then
15268 it shall be the second field of the previous picture that was added
15270 This removes the need for dpb_find_picture() now that we track the
15271 immediately preceding decoded picture, in decode order.
15273 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15275 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15276 decoder: h264: fix closure of "other-field" gap.
15277 When a dummy "other-field" is inserted, it is assumed to inherit the
15278 reference flags from the first field, and the sliding window decoded
15279 reference picture marking process is also executed so that corrupted
15280 frames are moved out as early as possible.
15281 While doing so, we also try to output frames that now contain a single
15282 valid field picture, prior to inserting any other picture into the DPB.
15283 Note: this may be superfluous currently based on the fact that dpb_add()
15284 combines the two most recent pairable fields, but this process would be
15285 further simplified later on.
15287 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15289 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15290 decoder: h264: track corrupted frames.
15291 Mark the picture as "corrupted" if it is reconstructed from corrupted
15292 references or if those references are fake, e.g. resulting from lost
15294 This is useful for notifying the upper layer, or downstream elements,
15295 that the decoded frame may contain artefacts.
15296 https://bugzilla.gnome.org/show_bug.cgi?id=703921
15298 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15300 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15301 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
15302 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
15303 * gst/vaapi/gstvaapidecode.c:
15304 decoder: add initial infrastructure for marking corrupted output.
15305 Add initial infrastructure in core codec library and vaapidecode to mark
15306 corrupted frames as such. A corrupted frame is such a frame that was
15307 reconstructed from invalid references for instance.
15308 https://bugzilla.gnome.org/show_bug.cgi?id=751434
15309 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15311 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15314 Bump version for development
15316 === release 0.6.0 ===
15318 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15323 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15328 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15330 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15331 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
15332 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
15333 Right now there is not a primary ranked parser for vc1 and the demuxers
15334 delivers caps without specifying the profile. This situation is not an issue
15335 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
15336 explicit profile defined in the negotiated caps.
15337 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
15338 negotiation admits caps subsets try outs.
15339 This patch solves the issue ignoring the profile negotiation in the caps. For
15340 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
15341 done without the vc1 parser, such as happens in gstreamer 1.5.
15342 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15344 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15346 * gst/vaapi/gstvaapi.c:
15347 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
15348 Unfortunately vaapidecodebin element is not seems to be stable
15349 enough for autoplugging ahead of vaapidecode.
15350 Lowering the rank for now (cosidering the immediate 0.6 release).
15351 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
15352 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15354 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15356 * gst-libs/gst/vaapi/Makefile.am:
15357 build: Add missing CFLAGS to Makefile.am
15359 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15361 * gst-libs/gst/vaapi/gstvaapifilter.c:
15362 gstvaapifilter: Only register STE property if it supported by corresponding VA library
15363 Fix the regression introduced in commit eb465fb.
15364 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
15365 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15367 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15369 * gst/vaapi/gstvaapipostproc.c:
15370 vaapipostproc: no format convert on GL tex upload meta
15371 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
15372 color format of the buffer.
15373 https://bugzilla.gnome.org/show_bug.cgi?id=748184
15375 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15377 * gst-libs/gst/vaapi/gstvaapifilter.c:
15378 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
15379 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
15380 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15382 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15384 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15385 encoder:h265: Fix the check for packed-header support
15386 Use VA_ENC_PACKED_HEADER_* definition for checking.
15387 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15389 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15391 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15392 encoder:h264: Fix the check for packed-header support
15393 Use VA_ENC_PACKED_HEADER_* definition for checking.
15394 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15396 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15398 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15399 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
15400 One buffering_period() SEI message shall be present in every IDR access unit
15401 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
15402 use a non-CQP mode, e.g. CBR. In other words, when
15403 nal_hrd_parameters_present_flag is set to 1.
15404 One picture_timing() SEI messages shall be present in every access unit
15405 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
15406 https://bugzilla.gnome.org/show_bug.cgi?id=722734
15407 https://bugzilla.gnome.org/show_bug.cgi?id=751831
15408 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15410 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15412 * gst/vaapi/gstvaapidecodebin.c:
15413 vaapidecodebin: notify if vpp is disabled
15414 When the system is aware that VPP is not available by the VA driver,
15415 it would be useful to notify to the user that the disable-vpp property
15417 https://bugzilla.gnome.org/show_bug.cgi?id=749554
15419 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15421 * gst/vaapi/gstvaapidecodebin.c:
15422 * gst/vaapi/gstvaapidecodebin.h:
15423 vaapidecodebin: enable vpp if it is available
15424 Instead of creating and adding VPP into the bin at setup, we wait until
15425 we are sure the VA driver supports it. We know that when the VA video
15426 context is received by the bin. Afterwards, it is decided to instanciate
15427 and link the VPP or not.
15428 This is more efficient and safer than waiting the VPP to fail and then
15430 https://bugzilla.gnome.org/show_bug.cgi?id=749554
15432 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15434 * tests/test-display.c:
15435 * tests/test-windows.c:
15436 tests: Fix compilation while enabling egl as the only renderer in build
15437 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
15439 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15442 configure: fix the build while enabling egl as the only renderer
15444 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15447 libs: Bump library major version
15449 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15451 * gst/vaapi/gstvaapi.c:
15452 * gst/vaapi/gstvaapidecodebin.c:
15453 * gst/vaapi/gstvaapiencode.c:
15454 * gst/vaapi/gstvaapiencode_jpeg.c:
15455 * gst/vaapi/gstvaapipluginbase.c:
15456 * gst/vaapi/gstvaapipluginutil.c:
15457 * gst/vaapi/gstvaapipostproc.c:
15458 * gst/vaapi/gstvaapivideobufferpool.c:
15459 * gst/vaapi/gstvaapivideocontext.c:
15460 * gst/vaapi/gstvaapivideomemory.c:
15461 * gst/vaapi/gstvaapivideometa.c:
15462 gst/vaapi: Switch to upstreram like indentation.
15463 gst-indent for all gst/vaapi/*.c source files
15465 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15467 * gst/vaapi/gstvaapidecodebin.c:
15468 * gst/vaapi/gstvaapidecodebin.h:
15469 vaapidecodebin: Add property to disable VPP
15470 Adding a new propery "disable-vpp", enabling it will prevent
15471 the insertion of vaapipostproc child element.
15472 This is helpful in debugging, specifically to narrow-down the
15473 vaapidecodebin/vaapipostproc related negotiation issues.
15474 No support for run-time disabling for now.
15475 https://bugzilla.gnome.org/show_bug.cgi?id=745901
15477 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15479 * gst/vaapi/gstvaapipostproc.c:
15480 vaapipostproc: Fix wrong selection of passthrough mode.
15481 The Current code path is falling back to passthorugh mode if there is no
15482 vpp property set by the user explictily. But we should not use the
15483 passthrough mode if the negotiated src pad caps have a differnt color space
15484 format than sink pad caps (Even though the user didn't set the format property
15486 https://bugzilla.gnome.org/show_bug.cgi?id=748184
15487 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15489 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15491 * gst/vaapi/gstvaapipostproc.c:
15492 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
15493 This is a workaround to deal with the va-intel-driver for non-native
15494 formats while doing advanced deinterlacing. The format of reference surfaces must
15495 be same as the format used by the driver internally for motion adaptive
15496 deinterlacing and motion compensated deinterlacing.
15497 A permanent solution could be to do the color space conversion internally
15498 for reference surfaces.
15499 https://bugzilla.gnome.org/show_bug.cgi?id=730925
15500 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15502 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15504 * gst/vaapi/gstvaapisink.c:
15505 Work around ABBA deadlock between vaapisink and vaapipostproc
15506 vaapisink takes the display lock, then does a gst_buffer_replace which can
15507 take the lock on the gst_vaapi_video_pool.
15508 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
15509 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
15510 surfaces, which means that gst_vaapi_surface_create is
15511 called. gst_vaapi_surface_create takes the display lock.
15512 If vaapisink and vaapipostproc are in different threads, and this happens,
15513 you get a deadlock. vaapisink holds the display lock, and wants the
15514 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
15515 and wants the display lock.
15516 Work around this by releasing the display lock in vaapisink around the
15517 gst_buffer_replace.
15518 https://bugzilla.gnome.org/show_bug.cgi?id=738249
15519 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15520 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15522 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
15524 * gst/vaapi/gstvaapidecodebin.c:
15525 * gst/vaapi/gstvaapidecodebin.h:
15526 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
15527 https://bugzilla.gnome.org/show_bug.cgi?id=745901
15529 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15531 * gst/vaapi/gstvaapipostproc.c:
15532 vaapipostproc: log negotiated caps
15534 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15536 * gst/vaapi/gstvaapipostproc.c:
15537 vaapipostproc: remove useless debug message
15539 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
15541 * gst/vaapi/gstvaapidecode.c:
15542 vaapidecode: log negotiated src/sink caps
15544 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15546 * gst/vaapi/gstvaapisink.c:
15547 vaapisink: error handling if rendering fails
15548 This patch enhance the code path when an error is found when rendering a
15550 If the video meta doesn't contain a surface proxy or a surface, a warning
15551 message is printed.
15552 If the rendering backend fails, a error message is posted in the bus.
15553 https://bugzilla.gnome.org/show_bug.cgi?id=749382
15555 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15557 * gst/vaapi/gstvaapisink.c:
15558 vaapisink: Fix the conditional pad template creation.
15560 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15562 * tests/Makefile.am:
15563 build: Don't build simple-encoder test program if there is no VA Encoding support
15564 This will fix the build error against older VA-APIs <= 0.32
15566 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15568 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
15569 * gst-libs/gst/vaapi/gstvaapicompat.h:
15570 Fix build error for older VA-API versions
15571 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
15572 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
15575 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15577 * gst/vaapi/gstvaapisink.c:
15578 vaapisink: Fix the capsfeature advertisement in padtemplate
15579 This fixes the regression introduced in 64acc74.
15580 If a pad supports multiple set of capsfeatures, it needs to add
15581 multiple equal structures with different feature sets to the caps.
15582 Because caps structures with the same name but with a non-equal
15583 set of caps features are not compatible.
15584 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
15585 https://bugzilla.gnome.org/show_bug.cgi?id=750095
15587 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
15589 * gst/vaapi/gstvaapisink.c:
15590 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
15591 https://bugzilla.gnome.org/show_bug.cgi?id=750095
15592 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15593 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15595 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
15597 * gst/vaapi/gstvaapipluginbase.c:
15598 vaapipluginbase: Override downstream allocation reply if no pool
15599 If the downstream replied without a pool, then override it.
15600 https://bugzilla.gnome.org/show_bug.cgi?id=748559
15602 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15604 * gst/vaapi/gstvaapipostproc.c:
15605 * gst/vaapi/gstvaapipostproc.h:
15606 vaapipostproc: add color balance interface
15607 https://bugzilla.gnome.org/show_bug.cgi?id=720376
15609 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15611 * gst-libs/gst/vaapi/gstvaapifilter.c:
15612 * gst-libs/gst/vaapi/gstvaapifilter.h:
15613 * gst/vaapi/gstvaapipostproc.c:
15614 * gst/vaapi/gstvaapipostproc.h:
15615 vaapipostproc: add skin tone enhancement
15616 Added the 'skin-tone-enhancement' property to vaapostproc.
15617 https://bugzilla.gnome.org/show_bug.cgi?id=744088
15619 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15621 * docs/reference/libs/libs-docs.xml.in:
15622 doc: add VA-API reference in freedesktop
15624 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15626 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15627 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15628 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15629 patches/videoparsers: rebase all the h264parse patches
15630 In order to avoid the creation of .orig files and break the distcheck target
15632 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15634 * ext/libvpx/Makefile.am:
15635 build: don't build in parallel libvpx
15636 This fixes the distcheck -j XX target.
15638 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15640 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
15641 encoder: jpeg: Fix the packed header generation
15642 This is a work-around to satisfy the va-intel-driver.
15643 Normalize the quality factor and scale QM values (only for packed header
15644 generation) similar to what VA-Intel driver is doing . Otherwise the
15645 generated packed headers will be wrong, since the driver itself is
15646 scaling the QM values using the normalized quality factor.
15647 https://bugzilla.gnome.org/show_bug.cgi?id=748335
15648 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15650 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15652 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15653 decoder: h264: fix uninitialized variables in avcC mode.
15654 Fix uninitialized variables when decoding SPS and PPS NAL units from
15655 "codec-data" buffers. This is particularly important when seeking ops
15656 are involved, and the new persistent states are used more often.
15657 https://bugzilla.gnome.org/show_bug.cgi?id=750094
15659 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15661 * gst/vaapi/gstvaapidecode.c:
15662 vaapidecode: remove unneeded casting
15663 And a code-style fix
15665 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15667 * gst/vaapi/gstvaapidecode.c:
15668 vaapidecode: calculate decoding latency
15669 This is a naïve approach to the calculation of the VA-API decoding latency. It
15670 takes into consideration when the frame-rate has some insane value.
15671 https://bugzilla.gnome.org/show_bug.cgi?id=740419
15673 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
15676 configure: Compiling against libgstgl requires libgstvideo
15677 Fix detection of the GstGL helper headers in uninstalled
15680 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15682 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15683 encoder: hevc: Fix the size over-flow for encoded buffer.
15684 The approximation of 6 times compression ratio migh not
15685 work in all cases. Especially when enabling I frames.
15686 Provide large enough size for coded-buffer creation.
15688 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15690 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
15691 encoder: vp8: Fix the size over-flow for encoded buffer.
15692 The approximation of 4 times compression ratio will not
15693 work in all cases. Especially when enabling I frames.
15694 Provide large enough size for coded-buffer creation.
15696 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15698 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15699 encoder: hevc: fix bug in multi slice encoding.
15700 This is a work-around for satisfying the VA-Intel driver.
15701 The driver only support slices begin from CTU row start address.
15702 Multi-Slice encoding also requires a fix in va-intel-driver:
15703 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
15704 https://bugzilla.gnome.org/show_bug.cgi?id=749854
15705 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15707 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15709 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15710 decoder: h264: add initial support for loss of pictures.
15711 Implement decoding process for gaps in frame_num (8.5.2). This
15712 also somewhat supports unintentional loss of pictures.
15713 https://bugzilla.gnome.org/show_bug.cgi?id=745048
15714 https://bugzilla.gnome.org/show_bug.cgi?id=703921
15715 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
15716 [fixed derivation of POC, ensured clone is valid for reference,
15717 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
15718 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15720 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15722 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15723 decoder: h264: add support for missing first field.
15724 Try to identify missing first fields too, thus disregarding any
15725 intermediate gaps in frames. We also assume that we keep the same
15726 field sequence, i.e. if previous frames were in top-field-first
15727 (TFF) order, then so are subsequent frames.
15728 Note that insertion of dummy first fields need to operate in two
15729 steps: (i) create the original first field that the current field
15730 will inherit from, and (ii) submit that field into the DPB prior
15731 to initializing the current (other) field POC values but after any
15732 reference flag was set. i.e. copy reference flags from the child
15733 (other field) to the parent (first field).
15734 https://bugzilla.gnome.org/show_bug.cgi?id=745048
15736 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15738 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15739 decoder: h264: add support for missing second field.
15740 Interlaced H.264 video frames always have two fields to decode and
15741 display. However, in some cases, e.g. packet loss, one of the field
15742 can be missing. This perturbs the reference picture marking process,
15743 whereby the number of references available in DPB no longer matches
15744 the expected value.
15745 This patch adds initial support for missing field within a decoded
15746 frame. The current strategy taken is to find out the nearest field,
15747 by POC value, and with the same parity.
15748 https://bugzilla.gnome.org/show_bug.cgi?id=745048
15750 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15752 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15753 decoder: h264: improve tracking of "top-field-first" flag.
15754 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
15755 does not mandate it. This will be useful for tracking missing fields, and
15756 also for more correct _split_fields() implementation for frames in the DPB.
15758 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15760 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15761 decoder: h264: skip all pictures prior the first I-frame.
15762 Don't try to decode pictures until the first I-frame is received within
15763 the currently active sequence. There is no point is decoding and then
15764 displaying frames with artifacts.
15766 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15768 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15769 decoder: h264: fix processing of EOSEQ NAL.
15770 Fix decoding of end_of_seq() NAL unit so that to not submit the current
15771 picture for decoding again. This is pretty vintage code that dates back
15772 before the existing of the whole decoder units machinery.
15773 One issue that could be arising if that code was kept is that we could
15774 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
15775 Once without the decode_only flag set, and once with that flag set. The
15776 end result is that the GstVideoDecoder would release the codec frame
15777 twice, thus releasing stale data.
15778 In short, the piece of code that is removed by this patch is for once
15779 completely obsolete for a while, and secondly error-prone in corner
15782 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
15784 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15785 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15786 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15787 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
15788 decoder: add utility function to clone picture objects.
15789 https://bugzilla.gnome.org/show_bug.cgi?id=703921
15790 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
15791 [added cosmetic changes, fixed propagation of "one-field" flag to
15792 children, fixed per-codec clone modes (h264)]
15793 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15795 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
15797 * gst/vaapi/Makefile.am:
15798 build: don't compile HEVC encoder if not supported
15800 (gst-plugin-scanner:16681): GStreamer-WARNING **: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so: undefined symbol: gst_vaapi_encoder_h265_get_default_properties
15801 https://bugzilla.gnome.org/show_bug.cgi?id=749954
15802 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
15803 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15805 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
15807 * gst-libs/gst/vaapi/gstvaapicompat.h:
15808 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15809 HEVC: decode: add missing va_dec_hevc header
15810 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
15811 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15812 https://bugzilla.gnome.org/show_bug.cgi?id=749953
15814 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15816 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15817 mpeg2: fix PTS cache for GOP start.
15818 If the GOP temporal sequence number (TSN) is interpolated from a valid
15819 PTS, then we need to compensate that PTS corresponding to the start of
15820 GOP with the next picture to be decoded, which shall be an I-frame,
15821 based on its sequence number.
15822 https://bugzilla.gnome.org/show_bug.cgi?id=748676
15824 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15826 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15827 mpeg2: avoid crash when seeking with debug logs
15828 Move down the debug message when the state of the decoder is verified
15829 so the slice header is not NULL.
15831 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
15833 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15834 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
15835 Reset state and add some checks for safe state to avoid a crash and
15836 a warning after the decoder is destroyed/recreated during a seek.
15838 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15840 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15841 * patches/videoparsers/series.frag:
15842 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
15843 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15845 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15847 * ext/codecparsers:
15848 codecparsers: Update to gst-vaapi-branch commit 20ee952
15849 b7dded3: h264parse: don't consider unknown stream-format as avc
15850 5110ad9: h264parse: fix up handling of input caps corner cases
15851 e51db3e: h264parse: Remove dead code
15852 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
15853 8482957: h265parse: Fix profile, tier and level setting in caps
15854 4649acb: h265parse: Fix the memory freeing of stored VPS nals
15855 f2beeb7: h265parse: Fix source caps to report cropped dimensions
15856 6886a31: h264parse: Fix profile and level setting in caps
15857 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
15858 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
15859 53074fc: build: Upgrade GStreamer dependency to 1.0
15860 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15862 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15864 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15865 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
15866 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15868 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15870 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15871 HEVC: decode: Update Cropping Rectangle
15872 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15874 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15876 * gst/vaapi/Makefile.am:
15877 * gst/vaapi/gstvaapi.c:
15878 * gst/vaapi/gstvaapiencode_h265.c:
15879 * gst/vaapi/gstvaapiencode_h265.h:
15880 HEVC_Encode: Add HEVC(h265) Encoder plugin
15881 https://bugzilla.gnome.org/show_bug.cgi?id=748874
15882 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15884 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15886 * gst-libs/gst/vaapi/Makefile.am:
15887 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15888 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
15889 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
15890 https://bugzilla.gnome.org/show_bug.cgi?id=748874
15891 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15893 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15896 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
15897 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15898 https://bugzilla.gnome.org/show_bug.cgi?id=748874
15900 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15902 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15903 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
15904 gstvaapiutils_h265: Add H265 Tier specific utility functions
15905 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
15906 -- New API: gst_vaapi_utils_h265_get_tier_string()
15907 https://bugzilla.gnome.org/show_bug.cgi?id=748874
15908 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15910 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15912 * docs/reference/plugins/Makefile.am:
15913 doc: conditional linking for scanner
15914 Add x11 library only if it is enabled.
15915 https://bugzilla.gnome.org/show_bug.cgi?id=749018
15917 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15919 * docs/reference/plugins/plugins.types:
15920 doc: fix scanner compilation warning
15921 https://bugzilla.gnome.org/show_bug.cgi?id=749018
15923 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15925 * docs/reference/libs/libs-docs.xml.in:
15926 * docs/reference/libs/libs-sections.txt:
15927 doc: update sections and symbols
15928 https://bugzilla.gnome.org/show_bug.cgi?id=749018
15930 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15934 * debian.upstream/Makefile.am:
15935 * docs/Makefile.am:
15936 * docs/reference/Makefile.am:
15937 * docs/reference/libs/Makefile.am:
15938 * docs/reference/plugins/Makefile.am:
15940 * ext/libvpx/Makefile.am:
15942 * gst-libs/Makefile.am:
15943 * gst-libs/gst/Makefile.am:
15944 * gst-libs/gst/base/Makefile.am:
15945 * gst-libs/gst/codecparsers/Makefile.am:
15946 * gst-libs/gst/vaapi/Makefile.am:
15948 * gst/vaapi/Makefile.am:
15949 * patches/Makefile.am:
15950 * patches/videoparsers/Makefile.am:
15951 * pkgconfig/Makefile.am:
15952 * tests/Makefile.am:
15954 This patch handles dinamically the gitignore files with git.mk[1].
15955 Removed the automake variable MAINTAINERCLANFILES in most of the
15956 Makefile.am files since now it is handled by the top one.
15957 1. https://github.com/behdad/git.mk/blob/master/git.mk
15958 https://bugzilla.gnome.org/show_bug.cgi?id=749321
15960 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15962 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15963 wayland: sync() when destroy()
15964 Before pushing a the new frame, the render() method calls sync() to flush the
15965 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
15966 to a memory leak too.
15967 This patch calls sync() in the destroy() to flush the pending frames before
15968 destroying the window.
15969 Also a is_cancelled flag is added. This flag tells to not flush the event
15970 queue again since the method failed previously or were cancelled by the user.
15971 https://bugzilla.gnome.org/show_bug.cgi?id=749078
15973 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
15975 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15976 * gst-libs/gst/vaapi/gstvaapiwindow.h:
15977 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
15978 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15979 * gst/vaapi/gstvaapisink.c:
15980 vaapisink: implement unlock/unlock_stop for wayland
15981 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
15982 shutting down. This can happen e.g. if the wayland compositor exits while
15983 the pipeline is running.
15985 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
15986 * splitted the patch removing wl_display_dispatch_queue()
15987 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15988 https://bugzilla.gnome.org/show_bug.cgi?id=747492
15989 https://bugzilla.gnome.org/show_bug.cgi?id=749078
15991 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15994 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15995 wayland: wl_display_dispatch_queue() can block forever.
15996 wl_display_dispatch_queue() might prevent the pipeline from shutting
15997 down. This can happen e.g. if the wayland compositor exits while the
15998 pipeline is running.
15999 This patch replaces it with these steps:
16000 - With wl_display_prepare_read() all threads announce their intention
16002 - wl_display_read_events() is thread save. On threads reads, the other
16003 wait for it to finish.
16004 - With wl_display_dispatch_queue_pending() each thread dispatches its
16006 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
16007 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
16008 * stripped out the unlock() unlock_stop() logic
16009 * stripped out the poll handling
16010 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16011 https://bugzilla.gnome.org/show_bug.cgi?id=749078
16012 https://bugzilla.gnome.org/show_bug.cgi?id=747492
16014 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16016 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16017 wayland: rename frame for last_frame
16018 Since frame in the private data means the last frame sent, it would
16019 semantically better use last_frame.
16020 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
16022 https://bugzilla.gnome.org/show_bug.cgi?id=749078
16024 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16026 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16027 wayland: use a counter as sync flag
16028 Wayland window has a pointer to the last pushed frame and use it to set the
16029 flag for stopping the queue dispatch loop. This may lead to memory leaks,
16030 since we are not keeping track of all the queued frames structures.
16031 This patch removes the last pushed frame pointer and change the binary flag
16032 for an atomic counter, keeping track of number of queued frames and use it for
16033 the queue dispatch loop.
16034 https://bugzilla.gnome.org/show_bug.cgi?id=749078
16036 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16038 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16039 wayland: decouple wl_buffer from frame
16040 This patch takes out the wayland's buffer from the the frame structure. The
16041 buffer is queued to wayland and destroyed in the "release" callback. The
16042 frame is freed in the surface's "done" callback.
16043 In this way a buffer may be leaked but not the whole frame structure.
16044 - surface 'done' callback is used to throttle the rendering operation and to
16045 unallocate the frame, but not the buffer.
16046 - buffer 'release' callback is used to destroy wl_buffer.
16047 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
16049 * kept the the event_queue for buffer's proxy
16050 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16051 https://bugzilla.gnome.org/show_bug.cgi?id=749078
16053 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16055 * gst/vaapi/gstvaapisink.c:
16056 vaapisink: fix indentation
16058 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16060 * debian.upstream/Makefile.am:
16061 * ext/libvpx/Makefile.am:
16062 * gst-libs/gst/vaapi/Makefile.am:
16063 * gst/vaapi/Makefile.am:
16064 * tests/Makefile.am:
16065 build: fix make distcheck
16066 This patch fixes several issues found when running the `make distcheck`
16068 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
16070 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
16072 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
16073 - The make target distcleancheck failed because some autogenerated files
16074 were not handled with the DISTCLEANFILES variable.
16075 Note: `make distcheck -jXX` is not currently supported.
16077 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16079 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16080 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16081 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16082 h264parse: update patches with upstream
16083 These patches didn't applied cleanly, breaking the `make distcleancheck`
16084 target. Re-sync'ed the patches against the current git's submodule.
16086 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16088 * tests/simple-encoder.c:
16089 tests: simple-encoder: fix build warnings on 64-bit platforms.
16090 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
16091 importantly fix warnings spitted out during build on 64-bit platforms.
16092 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
16093 g_warning ("Invalid VAAPI buffer size (%d)", size);
16095 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
16096 g_warning ("Failed to create output buffer of size %d", size);
16099 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16101 * gst/vaapi/gstvaapipluginbase.c:
16102 * gst/vaapi/gstvaapipluginutil.c:
16103 * gst/vaapi/gstvaapipluginutil.h:
16104 * gst/vaapi/gstvaapivideocontext.h:
16105 plugins: remove gstreamer-0.10 crumbs
16106 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
16107 Still, its definition was still in the code. This patch removes it.
16108 https://bugzilla.gnome.org/show_bug.cgi?id=749113
16110 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16112 * tests/Makefile.am:
16113 * tests/simple-encoder.c:
16114 * tests/y4mreader.c:
16115 * tests/y4mreader.h:
16116 tests: add simple-encoder program
16117 This patch adds a simple-encoder test program that uses libgstvaapi for video
16118 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
16119 format. That can be from a regular file or standard input when the input
16121 Usage: simple-encoder [options]* <source>
16123 --output|-o output file name
16124 --codec|-c codec to use for video encoding
16125 --bitrate|-b desired bitrate (kbps)
16126 By default, and as an initial patch, the encoded stream shall conform to the
16127 minimally supported profile. That is "Constrained Baseline Profile" for H.264
16128 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
16129 generated by libgstvaapi.
16130 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
16131 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
16132 * general code clean-up
16133 * removed the yuv reader thread
16134 * re-wrote the y4m file parser
16135 * updated used API fixed some wrong usage
16136 * fixed a lot of memory leaks
16137 * added the bitrate setting
16138 * keep fps' numerator and denominator
16139 * simplified the thread control
16140 * removed custom logging and use glib
16141 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16142 https://bugzilla.gnome.org/show_bug.cgi?id=719528
16144 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16146 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16147 libs: trivial documentation fix
16148 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
16149 are not errors, so they do not have the ERROR namespace.
16150 This patch fixes this typo in documentation.
16152 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
16154 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
16155 window: Correct prototype to match implementation
16156 On s390x, guintptr and GstVaapiID are not compatible types. The
16157 implementation of gst_vaapi_window_new_internal() and all its callers
16158 seem to assume that its third argument is a GstVaapiID, while the
16159 header gives it guintptr type.
16160 https://bugzilla.gnome.org/show_bug.cgi?id=744559
16162 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16164 * gst/vaapi/gstvaapidecode.c:
16165 * gst/vaapi/gstvaapidecodebin.c:
16166 vaapidecode: add guards for disabled codecs.
16167 Fix link when building plugin elements without HEVC support. e.g. don't
16168 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
16169 support HEVC enabled in libgstvaapi.
16170 Also, drop disabled codecs from static template caps. Add the missing
16171 HEVC static template caps into vaapidecodebin too.
16173 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16176 * gst-libs/gst/vaapi/glibcompat.h:
16177 build: upgrade glib dependency to 2.32
16178 Since bug #745728 was fixed the oldest supported version of GStreamer is
16179 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
16181 This patch changes the required version of glib in configure.ac and removes
16182 the hacks in glibcompat.h
16183 https://bugzilla.gnome.org/show_bug.cgi?id=748698
16185 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16187 * gst/vaapi/gstvaapipluginbase.c:
16188 plugins: check if the pool config is already set
16189 In commit 97b768, a regression for GStreamer 1.2 was introduced:
16190 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
16191 config option is already set. This patch adds an inline function to
16192 first verify if the option is not in the pool config berfore add it.
16194 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16196 * gst/vaapi/gstvaapipostproc.c:
16197 vaapipostproc: tune up a couple of log messages
16198 In order to reduce the noise, the query type log was downgrade from INFO to
16199 DEBUG, and the shared display address log message is assigned to the object.
16201 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16203 * gst/vaapi/gstvaapipluginbase.c:
16204 plugins: check gst_buffer_pool_set_config()
16205 Check the return value of gst_buffer_pool_set_config(). If it fails an error
16206 message is posted in the bus.
16208 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16210 * gst/vaapi/gstvaapipluginbase.c:
16211 plugins: more specific log message
16212 Be more specific in the log message about the reason of creating a new pool.
16214 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16216 * gst/vaapi/gstvaapipluginbase.c:
16217 plugins: delete unused variable
16218 need_pool is a boolean variable extracted from the allocation query, but it is
16219 not used afterwards.
16221 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
16223 * gst/vaapi/gstvaapipluginbase.c:
16224 vaapipluginbase: Update the pool if there was no pool in the downstream reply
16225 Fix regression introduced by bd866479, the query after decide_allocation()
16226 always needs a pool in the first slot.
16227 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16228 https://bugzilla.gnome.org/show_bug.cgi?id=748559
16230 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
16232 * gst/vaapi/gstvaapivideobufferpool.c:
16233 videopool: Free members before chaining up finalize
16234 The finalize function in GObject frees the object memory, so
16235 everything else needs to have been freed before.
16236 https://bugzilla.gnome.org/show_bug.cgi?id=748563
16238 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
16240 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
16241 wayland: don't leak the registry proxy
16242 Release the registry proxy when closing the display.
16243 https://bugzilla.gnome.org/show_bug.cgi?id=748564
16245 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16247 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16248 wayland: refactor _sync() method and rename callback
16249 This patch only intends to improve readability: in the method
16250 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
16252 Also renames the frame_redraw_callback() callback into frame_done_callback(),
16253 which is a bit more aligned to Wayland API.
16255 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
16257 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16258 wayland: free frame in buffer release callback
16259 The Wayland compositor may still use the buffer when the frame done
16260 callback is called.
16261 This patch destroys the frame (which contains the buffer) until the
16262 release callback is called. The draw termination callback only controls
16263 the display queue dispatching.
16264 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16265 https://bugzilla.gnome.org/show_bug.cgi?id=747492
16267 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16269 * gst/vaapi/gstvaapidecode.c:
16270 vaapidecode: refactor gst_vaapidecode_internal_flush()
16271 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
16272 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
16273 shares the same error message of gst_vaapidecode_internal_flush() when flush
16276 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16278 * gst/vaapi/gstvaapidecode.c:
16279 vaapidecode: refactor gst_vaapidecode_destroy()
16280 Add the method gst_vaapidecode_purge(). This method releases the
16281 flushed frames from the decoder.
16282 This new method add more readablity to gst_vaapidecode_destroy()
16284 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
16286 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
16287 * gst/vaapi/gstvaapidecode.c:
16288 vaapidecode: Tell the base class about released frames on close
16289 The base class needs to be informed about frames that were still queued
16290 in the decoder on release, otherwise they are leaked.
16291 https://bugzilla.gnome.org/show_bug.cgi?id=747999
16293 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16295 * gst/vaapi/gstvaapidecode.c:
16296 vaapidecode: reduce logging noise
16297 When a frame is rejected by downstream, the message is logged twice. This
16298 patch removes one of those logging messages.
16299 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
16300 the log message from error to info.
16302 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
16304 * gst/vaapi/gstvaapidecode.c:
16305 vaapidecode: Use the GstVideoDecoder error reporting function
16306 This way, the decoder won't stop on the first decoding error,
16307 in most cases it can recover after some glitchiness.
16308 https://bugzilla.gnome.org/show_bug.cgi?id=744620
16310 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
16312 * gst/vaapi/gstvaapipluginbase.c:
16313 vaapipluginbase: The allocation query can return without a pool
16314 It is possible to return the min/max/size without actually providing
16315 a pool. This way the source knows how many buffers downstream needs.
16316 https://bugzilla.gnome.org/show_bug.cgi?id=748076
16318 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16321 * gst/vaapi/Makefile.am:
16322 * gst/vaapi/gstvaapiparse.c:
16323 * gst/vaapi/gstvaapiparse.h:
16324 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
16325 * patches/videoparsers/series.frag:
16326 plugins: Add h265 videoparser element "vaapiparse_h265"
16327 This is a mirror of h265parse element in upstream gst-plugins-bad.
16328 There could be additional patches but all should go to upstream.
16329 This is for making development faster.
16330 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
16332 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16334 * ext/codecparsers:
16335 codecparsers: Update to gst-vaapi-branch commit 43a0368
16336 45f1c28: codecparser: h265: Fix nal unit size checking
16337 f25987b: codecparser: h265: Calculate crop rectangle dimensions
16338 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
16339 4c8ec41: Add h265 videoparser plugin source files
16341 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16344 autogen: drop videoutils submodule.
16346 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16348 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16349 decoder: hevc: cosmetics.
16350 Mostly coding style updates. Avoid integer signess inconsistencies.
16351 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
16353 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16355 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16356 decoder: hevc: Add Support for tiled video decoding
16357 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
16358 the tile column width and tile row height should be calculated.
16359 Equations: 6-1, 6-2
16360 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
16362 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16364 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16365 decoder: hevc: Fix decoding when there are RASL pictures present.
16366 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
16367 -- Fix PicOutputFlag setting for RASL picture
16368 -- Fix prev_poc_lsb/prev_poc_msb calculation
16369 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
16370 -- Fixed couple of crashes and added cosmetics
16372 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
16374 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
16375 display: drm: fix race condition setting device type
16376 There is a race condition where g_drm_device_type can be left set to
16377 DRM_DEVICE_RENDERNODES when it shouldn't.
16378 If thread 1 comes in and falls into the last else statement setting up both
16379 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
16380 it sets g_drm_device_type = RENDERNODES.
16381 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
16382 up that type to be tried but then encounters the lock and has to wait until the
16383 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
16384 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
16385 attempts will only try RENDERNODES.
16386 So to avoid this situation I have simply moved the acquisition of the lock higher
16387 up in the attached patch.
16388 https://bugzilla.gnome.org/show_bug.cgi?id=747914
16390 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
16392 * gst/vaapi/gstvaapipostproc.c:
16393 vaapipostproc: Don't create filter on caps query
16394 The problem with this is that creating the filter causes the display to
16395 be selected, and the caps query happens while linking the element. So,
16396 if the downstream or upstream element is using a specific display
16397 object, it won't be propagated correctly to the postproc as it already
16398 has a display at this point.
16399 https://bugzilla.gnome.org/show_bug.cgi?id=747945
16401 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
16403 * gst-libs/gst/vaapi/gstvaapivideopool.c:
16404 videopool: Release lock while allocating new object
16405 The video pool can be accessed with the display lock held, for example,
16406 when releasing a buffer from inside vaapisink_render, but allocating
16407 a new object can may also take the display lock. Which means a possible
16409 https://bugzilla.gnome.org/show_bug.cgi?id=747944
16411 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16413 * gst/vaapi/gstvaapisink.c:
16414 vaapisink: use GstVideoSink vmethod show_frame()
16415 vaapisink inherits from GstVideoSink, in order to use its functionality (such
16416 as ::show-preroll-frame property), we should use its vmethod show_frame(),
16417 rather than call ourselves render() and preroll().
16419 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16421 * gst/vaapi/gstvaapisink.c:
16422 * gst/vaapi/gstvaapisink.h:
16423 vaapisink: add 'handoff' signal
16424 This patch adds the signal ::handoff and the property signal-handoffs. If the
16425 property is set TRUE, the signal ::handoff is emitted just after the buffer is
16427 Based on Zhao Halley <halley.zhao@intel.com>
16428 https://bugzilla.gnome.org/show_bug.cgi?id=747905
16430 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16432 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16433 HEVC: silence the compiler
16434 Fixed a couple of clang complains.
16436 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
16438 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16439 wayland: destroy vpp buffer pool on resize
16440 Otherwise the old buffers with the old size are used.
16441 https://bugzilla.gnome.org/show_bug.cgi?id=747491
16443 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16446 * gst-libs/gst/vaapi/Makefile.am:
16447 build: don't compile HEVC if not supported
16448 HEVC decoding was added recently libva-1.5.
16449 This patch avoids HEVC decoding support in libgstvaapi if it is not available
16450 in the installed libva.
16451 https://bugzilla.gnome.org/show_bug.cgi?id=747831
16453 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16455 * gst/vaapi/gstvaapidecode.c:
16456 vaapidecode: Update Author name in plugin metadata
16458 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16460 * gst/vaapi/gstvaapidecode.c:
16461 plugins: Add HEVC decoder
16462 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16464 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16466 * gst-libs/gst/vaapi/Makefile.am:
16467 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16468 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
16469 HEVC: Add HEVC(h265) decoder to core libgstvaapi
16470 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16472 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16474 * gst-libs/gst/vaapi/Makefile.am:
16475 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
16476 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
16477 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
16478 HEVC: Add codec utility methods to core libgstvaapi
16479 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16481 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16483 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16484 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16485 HEVC: gstvaapiprofile: Add profile definitions
16486 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16488 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16491 HEVC: build: Check availability of h265 decoder APIs
16492 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16494 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16498 * gst-libs/gst/codecparsers/Makefile.am:
16499 HEVC: Allow to build h265 codecparser internally
16500 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16502 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16504 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
16505 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
16506 * gst-libs/gst/vaapi/gstvaapisurface.c:
16507 guard buffer export API if not available
16508 The support for buffer exports in VA-API was added in version 0.36. These
16509 interfaces are for interop with EGL, OpenCL, etc.
16510 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
16511 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
16512 This patch guards all the buffer exports handling (and dmabuf allocator) if
16513 the detected VA-API version is below 0.36.
16514 https://bugzilla.gnome.org/show_bug.cgi?id=746405
16516 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16518 * ext/codecparsers:
16519 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
16520 767bf22: codecparsers: h265: add helpers to convert quantization matrices
16521 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
16522 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
16523 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
16524 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
16526 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
16528 * gst/vaapi/gstvaapidecode.c:
16529 vaapidecode: unref video codec frame twice
16530 We get one reference when the frame is passed to decode_handle_frame()
16531 and create another one in gst_vaapi_decoder_push_frame().
16532 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
16533 Here the frame is always released twice:
16534 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
16535 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
16536 In gst_vaapidecode_reset_full() both references to the frame must be
16538 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16539 https://bugzilla.gnome.org/show_bug.cgi?id=743226
16541 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16543 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
16544 libs: remove unused variables
16545 clang reports these unused variables. Let's get rid of them.
16546 This patch is a missing part of commit c82e5173
16547 https://bugzilla.gnome.org/show_bug.cgi?id=747312
16549 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16551 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
16552 decoder: mpeg4: remove an spurious comparison
16553 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
16554 less than zero. Hence this pre-condition test is a no-op. This patch removes
16556 https://bugzilla.gnome.org/show_bug.cgi?id=747312
16558 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16560 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16561 encoder: h264: casts slice_param->slice_type
16562 slice_type in slice_param is defined as (char *), but it is compared against a
16563 signed integer. clang complains about this comparison.
16564 This patch casts the variable.
16565 https://bugzilla.gnome.org/show_bug.cgi?id=747312
16567 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16569 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
16570 encoder: avoid GstVaapiCodedBuffer redefinition
16571 The symbol GstVaapiCodedBuffer is already defined in
16572 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
16573 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
16574 This patch removes that redefinition.
16575 https://bugzilla.gnome.org/show_bug.cgi?id=747312
16577 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16579 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
16580 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
16581 libs: remove unused variables
16582 clang reports these unused variables. Let's get rid of them.
16583 https://bugzilla.gnome.org/show_bug.cgi?id=747312
16585 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16587 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16588 encoder: mpeg2: use fabsf() instead of abs()
16589 The member value in frame_rate_tab is float, the result of the abs() function
16590 should be float too. But abs() only manages integers.
16591 This patch replaces abs() with fabsf() to handle correctly the possible floats
16593 https://bugzilla.gnome.org/show_bug.cgi?id=747312
16595 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16597 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16598 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16599 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16600 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
16601 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
16602 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
16603 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
16604 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
16605 https://bugzilla.gnome.org/show_bug.cgi?id=747312
16607 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16612 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16616 Changing source code download links from https://gitorious to https://github
16617 -- gitmodules: Change gstreamer-codecparsers submodule source download link
16618 -- README: Change the gstreamer-vaapi webpage link
16620 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16622 * ext/codecparsers:
16623 codecparsers: update to gst-vaapi-branch commit 1f792e4
16624 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
16625 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
16626 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
16627 2b92a67: h264parse: reset the parser information when caps changes
16628 05eee86: codecparsers: Indent file
16629 e27a38b: codecparsers: Add READ_UE_MAX macro
16630 2036471: Constify some static arrays everywhere
16632 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16634 * gst/vaapi/gstvaapivideoconverter_glx.c:
16635 * gst/vaapi/gstvaapivideoconverter_x11.c:
16636 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
16638 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16640 * gst/vaapi/gstvaapidecode.c:
16641 * gst/vaapi/gstvaapidecodebin.c:
16642 * gst/vaapi/gstvaapiencode_h264.c:
16643 * gst/vaapi/gstvaapiencode_jpeg.c:
16644 * gst/vaapi/gstvaapiencode_mpeg2.c:
16645 * gst/vaapi/gstvaapiencode_vp8.c:
16646 * gst/vaapi/gstvaapipluginbase.c:
16647 * gst/vaapi/gstvaapipluginutil.c:
16648 * gst/vaapi/gstvaapipluginutil.h:
16649 * gst/vaapi/gstvaapipostproc.c:
16650 * gst/vaapi/gstvaapisink.c:
16651 * gst/vaapi/gstvaapivideobuffer.c:
16652 * gst/vaapi/gstvaapivideobufferpool.c:
16653 * gst/vaapi/gstvaapivideocontext.c:
16654 * gst/vaapi/gstvaapivideocontext.h:
16655 * gst/vaapi/gstvaapivideoconverter_glx.h:
16656 * gst/vaapi/gstvaapivideoconverter_x11.h:
16657 * gst/vaapi/gstvaapivideomemory.h:
16658 * gst/vaapi/gstvaapivideometa_texture.c:
16659 Removal of gstreamer-1.0 support
16660 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
16661 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
16662 This patch removes all the pre-processor conditional code compilation guarded
16664 Thus, all the video converters were removed too.
16665 https://bugzilla.gnome.org/show_bug.cgi?id=745728
16666 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16667 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16669 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16671 * gst-libs/gst/vaapi/gstcompat.h:
16672 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
16673 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16674 * gst-libs/gst/vaapi/sysdeps.h:
16675 * gst/vaapi/gstcompat.h:
16676 * gst/vaapi/gstvaapi.c:
16677 * gst/vaapi/gstvaapidecode.c:
16678 * gst/vaapi/gstvaapidecodebin.c:
16679 * gst/vaapi/gstvaapiencode.c:
16680 * gst/vaapi/gstvaapiencode_h264.c:
16681 * gst/vaapi/gstvaapiencode_jpeg.c:
16682 * gst/vaapi/gstvaapiencode_mpeg2.c:
16683 * gst/vaapi/gstvaapiencode_vp8.c:
16684 * gst/vaapi/gstvaapiparse.c:
16685 * gst/vaapi/gstvaapipluginbase.c:
16686 * gst/vaapi/gstvaapipluginutil.c:
16687 * gst/vaapi/gstvaapipostproc.c:
16688 * gst/vaapi/gstvaapisink.c:
16689 * gst/vaapi/gstvaapiuploader.c:
16690 * gst/vaapi/gstvaapivideobuffer.c:
16691 * gst/vaapi/gstvaapivideobufferpool.c:
16692 * gst/vaapi/gstvaapivideocontext.c:
16693 * gst/vaapi/gstvaapivideoconverter_glx.c:
16694 * gst/vaapi/gstvaapivideoconverter_x11.c:
16695 * gst/vaapi/gstvaapivideomemory.c:
16696 * gst/vaapi/gstvaapivideometa.c:
16697 * gst/vaapi/gstvaapivideometa_texture.c:
16699 update and move gstcompat.h
16700 The purpose of gstcompat.h is to couple the API differences among
16701 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
16702 in this compatibility layer shall be removed.
16703 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
16704 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
16705 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
16706 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
16707 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
16708 https://bugzilla.gnome.org/show_bug.cgi?id=745728
16709 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16710 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16712 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16715 * gst/vaapi/Makefile.am:
16716 autotools: remove gstreamer-1.0 support
16717 This patch only removes the support of gstreamer-1.0 in the autotools
16718 scripts. No other files are touched.
16719 In the automake file all the converters were deprecated.
16720 https://bugzilla.gnome.org/show_bug.cgi?id=745728
16721 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16722 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16724 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16729 Remove the gstreamer-videoutils submodule
16731 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16734 * gst-libs/gst/Makefile.am:
16735 * gst-libs/gst/vaapi/Makefile.am:
16736 * gst-libs/gst/video/Makefile.am:
16737 * gst/vaapi/Makefile.am:
16738 * tests/Makefile.am:
16739 Remove libgstvaapi-videoutils.so
16740 This library was intended to add the base classes for video decoders which
16741 where not included in gstreamer-0.10.
16742 Since the support of gstreamer-0.10 is deprecated those classes are not
16743 required, thus the whole library is removed.
16744 https://bugzilla.gnome.org/show_bug.cgi?id=745728
16745 https://bugzilla.gnome.org/show_bug.cgi?id=732666
16746 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16748 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16751 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
16752 * gst-libs/gst/vaapi/gstvaapiutils.c:
16753 * tests/test-subpicture.c:
16754 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
16755 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
16756 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
16757 deprecated these guards are not required.
16758 https://bugzilla.gnome.org/show_bug.cgi?id=745728
16759 https://bugzilla.gnome.org/show_bug.cgi?id=732666
16760 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16762 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16764 * gst-libs/gst/vaapi/gstcompat.h:
16765 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
16766 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16767 * gst-libs/gst/vaapi/gstvaapiimage.c:
16768 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
16769 * gst-libs/gst/vaapi/video-format.c:
16770 * gst-libs/gst/vaapi/video-format.h:
16771 * gst/vaapi/gstvaapi.c:
16772 * gst/vaapi/gstvaapidecode.c:
16773 * gst/vaapi/gstvaapidecodebin.c:
16774 * gst/vaapi/gstvaapidownload.c:
16775 * gst/vaapi/gstvaapidownload.h:
16776 * gst/vaapi/gstvaapiencode.c:
16777 * gst/vaapi/gstvaapiencode_h264.c:
16778 * gst/vaapi/gstvaapiencode_jpeg.c:
16779 * gst/vaapi/gstvaapiencode_mpeg2.c:
16780 * gst/vaapi/gstvaapiencode_vp8.c:
16781 * gst/vaapi/gstvaapiparse.c:
16782 * gst/vaapi/gstvaapipluginbase.c:
16783 * gst/vaapi/gstvaapipluginbase.h:
16784 * gst/vaapi/gstvaapipluginutil.c:
16785 * gst/vaapi/gstvaapipluginutil.h:
16786 * gst/vaapi/gstvaapipostproc.c:
16787 * gst/vaapi/gstvaapisink.c:
16788 * gst/vaapi/gstvaapiupload.c:
16789 * gst/vaapi/gstvaapiupload.h:
16790 * gst/vaapi/gstvaapiuploader.c:
16791 * gst/vaapi/gstvaapivideobuffer.c:
16792 * gst/vaapi/gstvaapivideoconverter_glx.c:
16793 * gst/vaapi/gstvaapivideoconverter_x11.c:
16794 * gst/vaapi/gstvaapivideometa.c:
16795 * gst/vaapi/gstvaapivideometa.h:
16796 * tests/test-filter.c:
16797 * tests/test-subpicture.c:
16798 Removal of gstreamer-0.10 support
16799 This patch removes all the pre-processor conditional code compilation guarded
16800 for gstreamer-0.10.
16801 https://bugzilla.gnome.org/show_bug.cgi?id=745728
16802 https://bugzilla.gnome.org/show_bug.cgi?id=732666
16803 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16805 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16808 * debian.upstream/control.in:
16809 * gst-libs/gst/video/Makefile.am:
16810 * gst/vaapi/Makefile.am:
16811 autotools: remove gstreamer-0.10 support
16812 This patch only removes the support of gstreamer-0.10 in the autotools
16813 scripts. No other files are touched.
16814 The configuration parameter --gstreamer-api was deleted since now it is always
16816 The verification of vmethod query in GstBaseSinkClass was removed since it was
16817 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
16819 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
16821 The automake files were changed accordingly.
16822 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
16823 https://bugzilla.gnome.org/show_bug.cgi?id=732666
16824 https://bugzilla.gnome.org/show_bug.cgi?id=745728
16825 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16827 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16829 * gst/vaapi/gstvaapidecode.c:
16830 vaapidecode: add drain() vmethod
16831 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
16832 class. This patch implements this new method.
16833 https://bugzilla.gnome.org/show_bug.cgi?id=742922
16834 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16835 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16837 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16839 * gst/vaapi/gstvaapidecode.c:
16840 vaapidecode: remove vmethod reset()
16841 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
16842 this patch removes the method reset() which was deprecated in GStreamer 1.2.
16843 https://bugzilla.gnome.org/show_bug.cgi?id=742922
16844 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16845 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16847 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16849 * gst/vaapi/gstvaapidecode.c:
16850 vaapidecode: handle flush() vmethod
16851 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
16852 and flush() was added.
16853 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
16854 superior. Otherwise, reset() is set.
16855 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
16856 was renamed to gst_vaapidecode_internal_flush().
16857 2) The new vmethod flush() always do a hard full reset.
16858 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
16859 gather all collected data with gst_video_decoder_have_frame()
16860 https://bugzilla.gnome.org/show_bug.cgi?id=742922
16861 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16862 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16864 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16866 * gst/vaapi/gstvaapidecode.c:
16867 vaapidecode: call the correct query function
16868 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
16869 a bug was introduced: when calling the parent's query function of the
16870 src pad, the one of the sink pad is called instead. This patch fixes
16872 https://bugzilla.gnome.org/show_bug.cgi?id=746248
16874 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16877 gitmodules: Use https:// url instead of git:// for submodules.
16878 Gitorious is failing to clone repositories over git:// url.
16880 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
16882 * gst-libs/gst/vaapi/gstvaapidisplay.c:
16883 vaapidisplay: mark X11 display as compatible with EGL
16884 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
16885 gst-launch-1.0 ... ! vaapidecode ! glimagesink
16886 https://bugzilla.gnome.org/show_bug.cgi?id=745902
16887 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16889 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
16891 * gst/vaapi/gstvaapidecode.c:
16892 vaapidecode: Don't crash if a buffer outlives the decoder
16893 Sometimes, for example, when switching video streams but keeping
16894 the same sink, the surface will be released after the decoder is
16895 stopped and replaced. This caused a crash because the release
16896 callback was called on an invalid pointer.
16897 The patch adding an additional reference to the decoder object in the buffer.
16898 https://bugzilla.gnome.org/show_bug.cgi?id=745189
16899 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
16900 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16902 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16904 * gst/vaapi/gstvaapidecode.c:
16905 vaapidecode: clean-ups (indentation, drop unused variables)
16907 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16909 * gst/vaapi/gstvaapidecode.c:
16910 vaapidecode: use the query virtual methods in 1.4
16911 GstVideoDecoder, the base class of vaapidecode, added support for
16912 pad queries as virtual methods. This patch enables the use of that
16913 support, while keeping support for lower versions of gstreamer.
16914 This patch is important because GstVideoDecoder takes care of other
16915 queries that might be important in the pipeline managing.
16916 v2: 1) rebase to current master
16917 2) fix indentation with gst-indent
16918 3) simplify the patch layout
16919 4) fix the context query
16920 5) initialise the filter to NULL
16921 6) improve the query log message for gst-1.2
16922 https://bugzilla.gnome.org/show_bug.cgi?id=744406
16924 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16926 * gst/vaapi/gstvaapipostproc.c:
16927 * gst/vaapi/gstvaapipostproc.h:
16928 vaapipostproc: always activate buffer pool
16929 The vaapipostproc has a proxy flag to know if the the buffer pool is
16930 already active. But this fails in some situations where it is needed
16931 to renegotiate the buffer pool.
16932 This patch removes that flag so the renegotiation is done whenever is
16934 https://bugzilla.gnome.org/show_bug.cgi?id=745535
16936 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16938 * gst/vaapi/gstvaapisink.c:
16939 vaapisink: fix minor memory leak in debug mode.
16940 The gst_video_colorimetry_to_string() function returns a newly created
16941 string that represents the GstVideoColorimetry value. So, that needs
16942 to be released after usage, in e.g. GST_DEBUG().
16944 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16946 * gst/vaapi/gstvaapidecodebin.h:
16947 vaapidecodebin: Avoid usage of "__" prefix in macro names
16948 Avoiding "__" prefix usage in Header File Guards as per
16949 C standard recommendation.
16951 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16953 * gst/vaapi/gstvaapi.c:
16954 plugins: Disable vaapidecodebin for GStreamer < 1.4
16955 There are autoplugging issues in GStreamer-1.2.
16956 Lets disable vaapidecodebin untill we get some workarounds for this.
16958 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16960 * gst/vaapi/Makefile.am:
16961 * gst/vaapi/gstvaapi.c:
16962 * gst/vaapi/gstvaapidecodebin.c:
16963 * gst/vaapi/gstvaapidecodebin.h:
16964 plugins: Add a vaapidecodebin element
16965 Add a "vaapidecodebin" element to vaapi plugins.
16966 Child Elements: "vaapidecode ! queue ! vaapipostproc"
16967 The Reasons for implementing a new bin element:
16968 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
16969 with out any dependency to upstream gstreamer.
16970 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
16971 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
16972 Also customers using older gstreamer versions (1.2 and 1.4) will get the
16973 benefit of autoplugging, hardware accelerated deinterlacing support etc.
16974 -- Help to maintain a single thread implementation in vaapidecode.
16975 This will result a dead-lock free vaapidecode in most of the cases.
16976 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
16977 https://bugzilla.gnome.org/show_bug.cgi?id=745216
16979 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16981 * gst/vaapi/gstvaapidecode.c:
16982 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
16984 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
16986 * gst/vaapi/gstvaapidecode.c:
16987 * gst/vaapi/gstvaapidecode.h:
16988 vaapidecode: Switch back to Single thread implementation
16989 Because the decoder uses the thread from handle_frame() to decode a frame,
16990 the src pad task creates an unsolveable AB-BA deadlock between
16991 handle_frame() waiting for a free surface and decode_loop() pushing
16992 decoded frames out.
16993 Instead, have handle_frame() take responsibility for pushing surfaces,
16994 and remove the deadlock completely. If you need a separate thread
16995 downstream, you can insert a queue between vaapidecode and its downstream
16997 Another justification for the single thread implementation is,
16998 there are two many point of locking in gstreamer-vaapi's current
16999 implementation which can lead to deadlocks.
17000 https://bugzilla.gnome.org/show_bug.cgi?id=742605
17001 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17002 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17003 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17005 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17007 * gst/vaapi/gstvaapipluginbase.c:
17008 plugins: fix detection of upstream v4l2src element.
17009 Improve check for upstream element that requires DMABUF buffer pool,
17010 e.g. v4l2src element. In particular, make sure to traverse through
17011 any additional capsfilter for instance.
17012 Note: the traversal to the top-most upstream element could be made
17013 more generic, but we are insofar only interested in supporting pipes
17014 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
17015 specification for a desired video camera format, or resolution.
17017 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17019 * gst/vaapi/gstvaapivideomemory.c:
17020 plugins: fix allocation of DMABUF memory.
17021 The dmabuf allocator would close the DMABUF handle passed in the init
17022 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
17023 to avoid a double close, ultimately in the underlying driver that owns
17026 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17028 * gst/vaapi/gstvaapidecode.c:
17029 vaapidecode: keep src caps and output state in sync
17030 vaapidecode keeps an output state that use the format
17031 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
17032 for a correct negotiation.
17033 I don't see the rational behind this decoupling, it looks like
17034 unnecessary complexity. This patch simplify this logic keeping
17035 in sync the output state and the src caps.
17036 This patch improves the readability of the function
17037 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
17038 the patch validates if the buffer pool has the configuration for
17039 the GL texture upload meta, in order to set the caps feature
17040 meta:GLTextureUpload. Otherwise, the I420 format is set back.
17041 https://bugzilla.gnome.org/show_bug.cgi?id=744618
17042 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17043 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17045 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17047 * gst/vaapi/gstvaapidecode.c:
17048 vaapidecode: upload meta only if feature and allocation
17049 When vaapidecode finishes the decoding of a frame and pushes it,
17050 if, in the decide_allocation() method, it is determined if the
17051 next element supports the GL texture upload meta feature, the
17052 decoder adds the buffer's meta.
17053 Nonetheless, in the same spirit of the commit 71d3ce4d, the
17054 determination if the next element supports the GL texture upload
17055 meta needs to check both the preferred caps feature *and* if the
17056 allocation query request the API type.
17057 This patch, first removes the unused variable need_pool, and
17058 determines the attribute has_texture_upload_meta using the
17059 preferred caps feature *and* the allocation query.
17060 Also, the feature passed to GstVaapPluginBase is not longer
17061 determined by has_texture_upload_meta, but by the computed
17063 https://bugzilla.gnome.org/show_bug.cgi?id=744618
17064 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17065 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17067 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17069 * gst/vaapi/gstvaapidecode.c:
17070 * gst/vaapi/gstvaapidecode.h:
17071 * gst/vaapi/gstvaapipluginutil.c:
17072 * gst/vaapi/gstvaapipluginutil.h:
17073 vaapidecode: delayed src caps negotiation
17074 Currently the src caps are set immediately after the sink caps are set, but in
17075 that moment the pipeline might not fully constructed and the video sink has
17076 not negotiated its supported caps and features. As a consequence, in many cases
17077 of playback, the least optimized caps feature is forced. This is partially the
17078 responsible of bug #744039.
17079 Also, vaapidecode doesn't attend the reconfigure events from downstream,
17080 which is a problem too, since the video sink can be changed with different
17082 This patch delays the src caps, setting them until the first frame arrives to
17083 the decoder, assuming until that very moment the whole pipeline is already
17084 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
17085 as a consequence of a reconfiguration event from downstream.
17086 A key part of this patch is the new GstVaapiCapsFeature
17087 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
17088 doesn't have a peer yet. Also, for a better report of the caps allowed
17089 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
17090 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
17091 v3: move the input_state unref to close(), since videodecoder resets at
17092 some events such as navigation.
17093 v4: a) the state_changed() callback replaces the input_state if the media
17094 changed, so this case is also handled.
17095 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
17096 always the input_state, the parameter were removed.
17097 c) there were a lot of repeated code handling the input_state, so I
17098 refactored it with the function gst_vaapi_decode_input_state_replace().
17099 https://bugzilla.gnome.org/show_bug.cgi?id=744618
17100 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17101 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17103 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17105 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17106 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17107 encoder: h264: add support for more than 2 views
17108 Add support for H.264 MVC Multiview High profile encoding with
17109 more than 2 views. All views within the same accesss unit are
17110 provided in increasing order of view order index (VOIdx).
17111 Upto 10 view are supported for now.
17112 A new property "view-ids" has been provided for the plugins to
17113 set the view ids (which is an array of guint values) to be used
17115 https://bugzilla.gnome.org/show_bug.cgi?id=732453
17117 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17119 * gst/vaapi/gstvaapipluginbase.c:
17120 plugins: upload meta only if feature and allocation
17121 Working on bug #743687, I realized that vaapidecode always adds to its buffer
17122 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
17123 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
17124 Nevertheless, there are occasions where the query has the API type, but the
17125 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
17126 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
17127 buffer pool configuration, and adds its buffer's meta to each output buffer,
17128 even if the negotiated caps feature is memory:SystemMemory with I420 color
17130 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
17131 that relates caps <-> GL upload method. If it receives a buffer with color
17132 format I420, it assumes that it doesn't have a texture upload meta, because
17133 only those with RGB color format has it. Our buffers, with I420 format, say
17134 that they have the upload meta too. In that case the mapped method is a dummy
17135 one which does nothing. I reported this issue in bug #744039 (the patch,
17136 obviously, was rejected).
17137 This patch workarounds the problem: the buffer pool's configuration option
17138 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
17139 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
17140 caps feature is meta:GstVideoGLTextureUploadMeta.
17141 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
17142 in all they seem to work correctly.
17143 https://bugzilla.gnome.org/show_bug.cgi?id=744618
17144 [adapted to fit current EGL changes]
17145 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17147 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17149 * gst-libs/gst/vaapi/gstvaapitexture.c:
17150 * gst-libs/gst/vaapi/gstvaapitexture.h:
17151 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
17152 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
17153 * gst/vaapi/gstvaapivideometa_texture.c:
17154 plugins: add support for GstVideoGLTextureOrientation.
17155 Add support for GstVideoGLTextureOrientation modes. In particular,
17156 add orientation flags to the GstVaapiTexture wrapper and the GLX
17157 implementations. Default mode is that texture memory is laid out
17158 with top lines first, left row first. Flags indicate whether the
17159 X or Y axis need to be inverted.
17161 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17163 * gst/vaapi/gstvaapidecode.c:
17164 * gst/vaapi/gstvaapipluginbase.c:
17165 * gst/vaapi/gstvaapipluginutil.c:
17166 * gst/vaapi/gstvaapipluginutil.h:
17167 * gst/vaapi/gstvaapipostproc.c:
17168 * gst/vaapi/gstvaapivideometa_texture.c:
17169 plugins: add support for BGRA textures.
17170 Some frameworks (EFL) expect BGRA textures for storage. However,
17171 adding support for that broadly into GStreamer framework implies
17172 two kinds of hacks: (i) libgstgl helpers currently do not support
17173 BGRA textures correctly, (ii) we need to better parse downstream
17174 suggested caps and intersect them with what the VA plugin elements
17175 can offer to them for GL texturing.
17177 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17179 * gst/vaapi/gstvaapipluginutil.c:
17180 plugins: fix support for Wayland/EGL running alongside X11.
17181 When multiple display servers are available, the glimagesink element
17182 (from GStreamer 1.4) may not be able to derive a global display in
17183 Wayland. Rather, a "window"-specific display is created. In this case,
17184 the GstGLDisplay handle available through GstGLContext is invalid.
17185 So, try to improve heuristics for display server characterisation in
17186 those particular situations.
17188 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17191 * gst/vaapi/Makefile.am:
17192 * gst/vaapi/gstvaapidecode.c:
17193 * gst/vaapi/gstvaapipluginbase.c:
17194 * gst/vaapi/gstvaapipluginutil.c:
17195 * gst/vaapi/gstvaapivideobufferpool.c:
17196 * gst/vaapi/gstvaapivideometa_texture.c:
17197 plugins: add initial support for EGL.
17198 Add initial support for EGL through GstVideoGLTextureUploadMeta.
17199 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
17200 downstream supplied GstGLContext configuration, i.e. use its native
17201 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
17202 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
17204 https://bugzilla.gnome.org/show_bug.cgi?id=741079
17206 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17208 * gst/vaapi/gstvaapivideometa_texture.c:
17209 plugins: track video texture size changes.
17210 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
17211 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
17212 now update the texture size from the GstVideoMeta, if any, or reset
17213 to some defaults otherwise.
17215 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17217 * gst/vaapi/gstvaapipluginbase.c:
17218 * gst/vaapi/gstvaapipluginbase.h:
17219 * gst/vaapi/gstvaapipluginutil.c:
17220 plugins: ensure VA display matches GL context expectations.
17221 If a GstGLContext is supplied by the downstream element, then make
17222 sure that the VA plugin element gets a compatible display to what
17223 is requested by the GL context. e.g. re-allocate a VA/GLX display
17224 when a GLX context is provided by the downstream element.
17226 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17229 * gst/vaapi/Makefile.am:
17230 * gst/vaapi/gstvaapipluginbase.c:
17231 * gst/vaapi/gstvaapipluginbase.h:
17232 plugins: record downstream GstGLContext.
17233 Record GL context supplied by downstream elements. This can be useful,
17234 and further needed, to enforce run-time check that the GL context is
17235 compatible for use by libgstvaapi. e.g. check that we don't create a
17236 VA/GLX display for EGL/X11 contexts.
17237 https://bugzilla.gnome.org/show_bug.cgi?id=725643
17238 Original-path-by: Matthew Waters <ystreet00@gmail.com>
17240 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17242 * tests/Makefile.am:
17245 Add initial support for EGL to tests. The new EGL backend can be selected
17246 through the --egl command line option. The OpenGL|ES version can further
17247 be selected with the --gles-version command line option, where the default
17248 of 0 means "desktop" OpenGL.
17250 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17252 * gst-libs/gst/vaapi/Makefile.am:
17253 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
17254 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
17255 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
17256 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
17257 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
17258 egl: add windowing support.
17259 This provides for some basic EGL window abstraction.
17261 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17263 * gst-libs/gst/vaapi/Makefile.am:
17264 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
17265 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
17266 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
17267 egl: add texture abstraction.
17268 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
17269 or import a foreign allocated one, while still allowing updates from a
17272 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17274 * gst-libs/gst/vaapi/Makefile.am:
17275 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
17276 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
17277 egl: allow for EGLImage imports into VA Surfaces.
17278 Add helpers to import EGLImage objects into VA surfaces. There are
17279 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
17280 which allows for implicit conversion from EGLImage to a VA surface
17281 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
17282 which exactly wraps the source EGLImage, typically in RGBA format
17283 with linear storage.
17284 Note: in case of (i), the EGLImage can be disposed right after the
17285 VA surface creation call, unlike in (ii) where the user shall ensure
17286 that the EGLImage is live until the associated VA surface is no longer
17288 https://bugzilla.gnome.org/show_bug.cgi?id=743847
17290 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17293 * gst-libs/gst/vaapi/Makefile.am:
17294 * gst-libs/gst/vaapi/egl_compat.h:
17295 * gst-libs/gst/vaapi/egl_vtable.h:
17296 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17297 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17298 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
17299 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
17300 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
17301 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
17302 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
17303 * gst-libs/gst/vaapi/ogl_compat.h:
17304 Add initial support for EGL.
17305 Add initial support for EGL to libgstvaapi core library. The target
17306 display server and the desired OpenGL API can be programmatically
17307 selected at run-time.
17308 A comprehensive set of EGL utilities are provided to support those
17309 dynamic selection needs, but also most importantly to ensure that
17310 the GL command stream is executed from within a single thread.
17311 https://bugzilla.gnome.org/show_bug.cgi?id=743846
17313 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17315 * gst-libs/gst/vaapi/gstvaapivalue.c:
17316 libs: initialize GValues in a thread-safe manner.
17318 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17320 * gst-libs/gst/vaapi/gstvaapivalue.c:
17321 libs: re-indent all GValue related source code.
17323 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17325 * gst/vaapi/gstvaapidecode.c:
17326 vaapidecode: partially revert 0777f35.
17327 Reset the VA decoder after updating the base plugin caps, and most
17328 importantly, after GstVideoDecoder negotiation. The reason behind
17329 this is that the negotiation could trigger a last decide_allocation()
17330 where we could actually derive a new GstVaapiDisplay to use from the
17331 downstream element. e.g. GLX backend.
17333 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17335 * gst/vaapi/gstvaapidecode.c:
17336 vaapidecode: Caps query should return the list of all supported caps.
17337 Query caps filtering should be always done on top of allowed caps instead
17338 of existing fixed caps on a particular pad.
17339 This fixes the mvc stream decoding when there is a base view(high profile)
17340 and non-base view(stereo-high profile).
17342 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17344 * gst/vaapi/gstvaapidecode.c:
17345 vaapidecode: intersect filter from query caps
17346 According to documentation[1] when receiving a GST_QUERY_CAPS
17347 the return value should be all formats that this elements supports,
17348 taking into account limitations of peer elements further downstream
17349 or upstream, sorted by order of preference, highest preference first.
17350 This patch add those limitations intersecting with the received
17351 filter in the query. Also takes into account the already negotiated
17352 caps. Also adds the processing of the query on the SRC pad.
17353 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
17354 https://bugzilla.gnome.org/show_bug.cgi?id=744406
17356 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17358 * gst-libs/gst/vaapi/Makefile.am:
17359 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17360 * gst-libs/gst/vaapi/gstvaapidecoder.c:
17361 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17362 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17363 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17364 * gst/vaapi/gstvaapivideomemory.c:
17365 Fix compiler warnings
17366 This patch fixes some warnings that gcc 4.9 reports.
17367 https://bugzilla.gnome.org/show_bug.cgi?id=744411
17369 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17371 * gst/vaapi/gstvaapidecode.c:
17372 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
17373 Hence the function name is shown in the gst-inspect-1.0 information
17374 rather than the memory address.
17375 https://bugzilla.gnome.org/show_bug.cgi?id=744330
17377 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17379 * gst/vaapi/gstvaapidecode.c:
17380 vaapidecode: log flow error name
17381 https://bugzilla.gnome.org/show_bug.cgi?id=744387
17383 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17385 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
17386 VC1: decoder: Ignore VC1 user BDU's
17387 Don't return error if the processed BDU is a user one, just ignore them.
17388 https://bugzilla.gnome.org/show_bug.cgi?id=741237
17389 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17391 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
17393 * gst/vaapi/gstvaapidecode.c:
17394 * gst/vaapi/gstvaapipluginbase.c:
17395 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
17396 This is required in GStreamer, elements should never return
17397 GST_FLOW_ERROR without posting an ERROR message on the bus.
17398 https://bugzilla.gnome.org/show_bug.cgi?id=744620
17400 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17402 * gst/vaapi/Makefile.am:
17403 * gst/vaapi/gstvaapi.c:
17404 * gst/vaapi/gstvaapiencode_vp8.c:
17405 * gst/vaapi/gstvaapiencode_vp8.h:
17406 plugins: Add VP8 Encoder
17408 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17410 * gst-libs/gst/vaapi/Makefile.am:
17411 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17412 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
17413 Add VP8 Encoder to core libgstvaapi.
17415 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17418 configure: Add Check for VP8 Encoding API
17420 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
17422 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
17423 decoder: vc1: Rounding control handling for VC1 simple and Main profile
17424 Added rounding control handling for VC1 simple and Main profile
17425 based on VC1 standard spec: section 8.3.7
17426 https://bugzilla.gnome.org/show_bug.cgi?id=743958
17427 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
17428 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17430 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17432 * gst/vaapi/Makefile.am:
17433 build: fix make dist when certain conditionals not met.
17434 Fix typo which was preventing the inclusion of jpeg encoder
17435 source files from make dist (when there is no jpeg encoder
17436 API support in libva).
17438 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17440 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17441 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
17442 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
17443 use native YUV420 format (which is i420) as default.
17445 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17447 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17448 encoder: Only support YUV420 native format as input for now
17449 Practically we should be able to support more formats, for eg:
17450 JPEG Encoder can support YUV422, RGBA and all.
17451 But this is causing more issues which need proper fix here and there.
17453 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
17455 * gst-libs/gst/vaapi/gstvaapidecoder.h:
17456 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
17457 * gst/vaapi/gstvaapidecode.c:
17458 vaapidecode: Check the condition after taking the lock
17459 Otherwise the condition could become true before the lock
17460 is taken and the g_cond_signal() could be called
17461 before the g_cond_wait(), so the g_cond_wait() is never
17463 https://bugzilla.gnome.org/show_bug.cgi?id=740645
17465 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17467 * gst/vaapi/Makefile.am:
17468 * gst/vaapi/gstvaapi.c:
17469 * gst/vaapi/gstvaapiencode_jpeg.c:
17470 * gst/vaapi/gstvaapiencode_jpeg.h:
17471 plugins: Add JPEG encoder element
17473 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17475 * gst-libs/gst/vaapi/gstvaapicontext.c:
17476 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
17478 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17480 * gst-libs/gst/vaapi/gstvaapicontext.c:
17481 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
17482 Don't add the VAConfigAttribRateControl to the attribute list using
17483 for the vaCreateConfig if it is not supported by the driver.
17485 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17487 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17488 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
17490 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17492 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17493 gstvaapiencoder: Fix crash when handling rate control mask
17494 Having a ratecontrol_mask equal to zero is not a bug, but the driver
17495 might not be supporting any kind of rate control mechanisms.
17498 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17500 * gst-libs/gst/vaapi/Makefile.am:
17501 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17502 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
17503 encoder: Add JPEG Encoder
17505 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17507 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
17508 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
17509 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
17511 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17513 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17514 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17515 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17516 * gst-libs/gst/vaapi/gstvaapiprofile.h:
17517 Encode: Add support for Picture level Entrypoint
17518 This is useful for JPEG encoding which is utilizing picture level
17519 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
17521 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17524 configure: Add Check for JPEG encoding API
17526 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17531 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17534 Bump version for development.
17536 === release 0.5.10 ===
17538 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17543 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17548 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17550 * gst/vaapi/gstvaapivideometa_texture.c:
17551 Fix compilation error if there is no GL/gl.h header file installed
17553 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17555 * gst/vaapi/gstvaapivideomemory.h:
17556 plugins: drop leftover declaration.
17557 GstVaapiVideoMemory quark is not needed any more, and the actual
17558 implementation was already removed bfore the merge. i.e. this is
17559 an oversight for a hunk that was not meant to be pushed.
17561 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17563 * gst/vaapi/gstvaapipluginbase.c:
17564 * gst/vaapi/gstvaapivideobufferpool.c:
17565 * gst/vaapi/gstvaapivideobufferpool.h:
17566 * gst/vaapi/gstvaapivideomemory.c:
17567 * gst/vaapi/gstvaapivideomemory.h:
17568 plugins: add support for dma_buf exports (v4l2src).
17569 Allow v4l2src element to connected to vaapipostproc or vaapisink when
17570 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
17571 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
17572 to "dmabuf" could work, but with more demanding driver or kernel reqs.
17573 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
17574 with --without-libv4l2.
17575 https://bugzilla.gnome.org/show_bug.cgi?id=743635
17577 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
17580 * gst/vaapi/Makefile.am:
17581 * gst/vaapi/gstvaapipluginbase.c:
17582 plugins: add support for dma_buf imports.
17583 Allow imports of v4l2 buffers into VA surfaces for further operation
17584 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
17585 https://bugzilla.gnome.org/show_bug.cgi?id=735362
17586 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
17587 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17589 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17591 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
17592 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
17593 surface: add support for GEM buffer imports.
17594 Add support for GEM buffer imports. This is useful for VA/EGL interop
17595 with legacy Mesa implementations, or when it is desired or required to
17596 support outbound textures for instance.
17597 https://bugzilla.gnome.org/show_bug.cgi?id=736718
17599 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17601 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
17602 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
17603 surface: add support for dma_buf imports.
17604 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
17605 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
17606 resulting VA surface owns the supplied buffer handle.
17607 https://bugzilla.gnome.org/show_bug.cgi?id=735362
17609 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17611 * gst-libs/gst/vaapi/gstvaapisurface.c:
17612 * gst-libs/gst/vaapi/gstvaapisurface.h:
17613 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
17614 surface: add initial support for foreign buffer imports.
17615 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
17616 create a VA surface from an external buffer provided throug the
17617 new GstVaapiBufferProxy object.
17619 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17621 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17622 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
17623 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
17624 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
17625 surface: add support for GEM buffer exports.
17626 Add support for GEM buffer exports. This will only work with VA drivers
17627 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
17628 to support interop with EGL and the "Desktop" GL specification. Indeed,
17629 the EXT_image_dma_buf_import extension is not going to be supported in
17630 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
17632 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
17633 in Desktop OpenGL context.
17634 https://bugzilla.gnome.org/show_bug.cgi?id=736717
17636 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17638 * gst-libs/gst/vaapi/Makefile.am:
17639 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17640 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
17641 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
17642 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
17643 surface: add support for dma_buf exports.
17644 Use the new VA buffer export APIs to allow for a VA surface to be
17645 exposed as a plain PRIME fd. This is in view to simplifying interop
17646 with EGL or OpenCL for instance.
17647 https://bugzilla.gnome.org/show_bug.cgi?id=735364
17649 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17651 * gst-libs/gst/vaapi/Makefile.am:
17652 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17653 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
17654 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
17655 Add abstraction for exported VA buffers.
17656 The VA buffer export APIs work for a particular lifetime starting from
17657 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
17658 it could be much more convenient to support implicit releases by simply
17659 having a refcount reaching zero.
17660 https://bugzilla.gnome.org/show_bug.cgi?id=736721
17662 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17664 * gst-libs/gst/vaapi/Makefile.am:
17665 Add missing header file to Makefile
17666 Add gstvaapitexture_glx.h to Makefile.am
17668 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17670 * gst-libs/gst/vaapi/gstvaapicontext.c:
17671 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
17672 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
17673 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17674 * gst/vaapi/gstvaapipostproc.c:
17675 * gst/vaapi/gstvaapiuploader.c:
17676 * gst/vaapi/gstvaapivideobufferpool.c:
17677 * gst/vaapi/gstvaapivideomemory.c:
17678 * gst/vaapi/gstvaapivideomemory.h:
17679 * tests/test-surfaces.c:
17680 videopool: add optional flags for surface pool allocation.
17681 Reword surface pool allocation helpers so that to allow for a simple
17682 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
17683 somewhat more elaborated/flexible form with optional allocation flags
17684 and precise GstVideoInfo specification.
17685 This is an API/ABI change, and SONAME version needs to be bumped.
17687 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17689 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
17690 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
17691 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
17692 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
17693 * gst-libs/gst/vaapi/gstvaapivideopool.c:
17694 * gst-libs/gst/vaapi/gstvaapivideopool.h:
17695 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
17696 videopool: re-indent all GstVaapiVideoPool related source code.
17698 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17700 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17701 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17702 window: add toplevel display indirection for visualid and colormap.
17703 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
17704 the best suitable window visual id and colormap. This is an indirection in
17705 view to supporting EGL and custom/generic replacements.
17707 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17709 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
17710 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17711 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17712 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
17713 window: add toplevel API to determine the colormap.
17714 Add GstVaapiWindowClass::get_colormap() hook to help determine the
17715 currently active colormap bound to the supplied window, or actually
17716 create it if it does not already exist yet.
17718 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17720 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
17721 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
17722 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
17723 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17724 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17725 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
17726 window: add toplevel API to determine a visual id.
17727 Add GstVaapiWindowClass::get_visual_id() function hook to help find
17728 the best suitable visual id for the supplied window. While doing so,
17729 also simplify the process by which an X11 window is created with a
17730 desired Visual, i.e. now use a visual id instead of a Visual object.
17732 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17734 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17735 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
17736 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17737 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17738 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
17739 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17740 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17741 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
17742 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
17743 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17744 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17745 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17746 window: add generic helper to create windows.
17747 Add a new generic helper function gst_vaapi_window_new() to create
17748 a window without having the caller to check for the display type
17749 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
17750 to create windows, and the actual backend implementation fills it in.
17751 Add new generic helper functions gst_vaapi_texture_new_wrapped()
17752 This is a simplification in view to supporting EGL.
17754 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17756 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17757 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17758 * gst-libs/gst/vaapi/gstvaapitexture.c:
17759 * gst/vaapi/gstvaapivideometa_texture.c:
17760 display: add utility function to check for OpenGL rendering.
17761 Add gst_vaapi_display_has_opengl() helper function to help determining
17762 whether the display can support OpenGL context to be bound to it, i.e.
17763 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
17765 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17767 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17768 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17769 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17770 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
17771 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
17772 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
17773 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17774 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17775 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
17776 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
17777 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
17778 * gst/vaapi/gstvaapipluginutil.c:
17779 * gst/vaapi/gstvaapivideobuffer.c:
17780 * gst/vaapi/gstvaapivideometa_texture.c:
17781 display: refine the meaning of display type.
17782 Make gst_vaapi_display_get_display_type() return the actual VA display
17783 type. Conversely, add a gst_vaapi_display_get_class_type() function to
17784 return the type of the GstVaapiDisplay instance. The former is used to
17785 identify the display server onto which the application is running, and
17786 the latter to identify the original object class.
17788 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17790 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17791 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17792 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17793 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17794 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17795 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
17796 display: cosmetics (helper macros, new internal API names).
17797 Add more helper macros to the top-level GstVaapiDisplay interfaces.
17798 Rename a few others used internally for improved consistency.
17800 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17802 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17803 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17804 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
17805 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
17806 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
17807 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
17808 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17809 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17810 display: record native display object.
17811 Record the underlying native display instance into the toplevel
17812 GstVaapiDisplay object. This is useful for fast lookups to the
17813 underlying native display, e.g. for creating an EGL display.
17815 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17817 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17818 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
17819 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
17820 display: use a recursive mutex for the display cache.
17821 Use a recursive mutex for the display cache so that a 3rdparty display
17822 object could be initialized during the initialization of the parent
17825 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17827 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
17828 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17829 * gst-libs/gst/vaapi/gstvaapitexture.c:
17830 * gst-libs/gst/vaapi/gstvaapitexture.h:
17831 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
17832 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
17833 texture: add generic helper to create textures.
17834 Add new generic helper functions gst_vaapi_texture_new_wrapped()
17835 and gst_vaapi_texture_new() to create a texture without having
17836 the caller to uselessly check for the display type himself. i.e.
17837 internally, there is now a GstVaapiDisplayClass hook to create
17838 textures, and the actual backend implementation fills it in.
17839 This is a simplification in view to supporting EGL.
17841 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17843 * gst-libs/gst/vaapi/Makefile.am:
17844 * gst-libs/gst/vaapi/gstvaapitexture.c:
17845 * gst-libs/gst/vaapi/gstvaapitexture.h:
17846 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
17847 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
17848 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
17849 * gst/vaapi/gstvaapivideoconverter_glx.c:
17850 * gst/vaapi/gstvaapivideometa_texture.c:
17851 * tests/test-textures.c:
17852 texture: move to core libgstvaapi base library.
17853 GstVaapiTexture is a generic abstraction that could be moved to the
17854 core libgstvaapi library. While doing this, no extra dependency needs
17855 to be added. This means that a GstVaapitextureClass is now available
17856 for any specific code that needs to be added, e.g. creation of the
17857 underlying GL texture objects, or backend dependent ways to upload
17858 a surface to the texture object.
17859 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
17861 https://bugzilla.gnome.org/show_bug.cgi?id=736715
17863 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17866 * gst-libs/gst/vaapi/Makefile.am:
17867 * gst-libs/gst/vaapi/gstvaapicompat.h:
17868 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
17869 * gst-libs/gst/vaapi/gstvaapitexture.c:
17870 texture: drop support for VA/GLX interfaces.
17871 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
17872 ease of use, but they had other caveats to deal with. It's now better
17873 to move on to legacy mode, whereby VA/GLX interop is two be provided
17874 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
17875 https://bugzilla.gnome.org/show_bug.cgi?id=736711
17877 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17879 * gst-libs/gst/vaapi/gstvaapitexture.c:
17880 * gst-libs/gst/vaapi/gstvaapitexture.h:
17881 * gst/vaapi/gstvaapivideoconverter_glx.c:
17882 * gst/vaapi/gstvaapivideometa_texture.c:
17883 * tests/test-textures.c:
17884 texture: add support for cropping rectangle during transfer.
17885 The gst_vaapi_texture_put_surface() function is missing a crop_rect
17886 argument that would be used during transfer for cropping the source
17887 surface to the desired dimensions.
17888 Note: from a user point-of-view, he should create the GstVaapiTexture
17889 object with the cropped size. That's the default behaviour in software
17890 decoding pipelines that we need to cope with.
17891 This is an API/ABI change, and SONAME version needs to be bumped.
17892 https://bugzilla.gnome.org/show_bug.cgi?id=736712
17894 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17896 * gst-libs/gst/vaapi/gstvaapitexture.c:
17897 * gst-libs/gst/vaapi/gstvaapitexture.h:
17898 texture: re-indent all GstVaapiTexture related source code.
17900 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17902 * gst-libs/gst/vaapi/gstvaapisurface.c:
17903 * gst-libs/gst/vaapi/gstvaapisurface.h:
17904 surface: add more fine-grained allocation helper.
17905 Add new gst_vaapi_surface_new_full() helper function that allocates
17906 VA surface from a GstVideoInfo template in argument. Additional flags
17907 may include ways to
17908 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
17909 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
17910 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
17912 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17914 * gst-libs/gst/vaapi/gstvaapisurface.c:
17915 * gst-libs/gst/vaapi/gstvaapisurface.h:
17916 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
17917 surface: re-indent all GstVaapiSurface related source code.
17919 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17921 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
17922 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17923 surfaceproxy: add helper to create a wrapped surface object.
17924 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
17925 a proxy. The main use case for that is to convey additional information
17926 at the proxy level that would not be suitable to the plain surface.
17928 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17930 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
17931 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17932 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
17933 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
17935 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17938 libs: bump library major version.
17940 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17942 * gst-libs/gst/vaapi/gstvaapitypes.h:
17943 libs: re-introduce a GST_VAAPI_ID_INVALID value.
17944 Re-introduce a GST_VAAPI_ID_INVALID value that represents
17945 a non-zero and invalid id. This is useful to have a value
17946 that is still invalid for cases where zero could actually
17949 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17951 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
17952 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
17953 libs: expose GstVaapiMiniObject APIs to all backends.
17954 Make it possible to have all libgstvaapi backends (libs) access to a
17955 common GstVaapiMiniObject API and implementation. This is a minor step
17956 towards full exposure when needed, but restrict it to libgstvaapi at
17959 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17961 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
17962 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
17963 * gst-libs/gst/vaapi/gstvaapiobject.c:
17964 * gst-libs/gst/vaapi/gstvaapiobject.h:
17965 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
17966 libs: re-indent all GstVaapiObject related source code.
17967 Re-indent and provide additional minor cosmetical changes to the
17968 GstVaapiMiniObject and GstVaapiObject source files.
17970 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17972 * gst/vaapi/gstvaapipluginutil.c:
17973 pluginutil: Fix clearing of subtitle overlay
17974 dvbsuboverlay signals no subtitles present by not setting
17975 GstVideoOverlayCompositionMeta on a buffer.
17976 Detect this, and remove subtitles whenever we have no overlay composition to
17978 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17980 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17982 * gst/vaapi/gstvaapipostproc.c:
17983 vaapipostproc: clear state on stop
17984 Otherwise restarting may fail because the state of vaapipluginbase and
17985 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
17986 initailization and not call gst_vaapi_plugin_base_set_caps()
17988 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17990 * gst/vaapi/gstvaapidecode.c:
17991 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
17993 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17995 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17996 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
17997 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
17998 since the vaaapi context creation (gstvaapicontext.c) can still use the
17999 default chroma type which is YUV420.
18000 https://bugzilla.gnome.org/show_bug.cgi?id=743567
18001 https://bugzilla.gnome.org/show_bug.cgi?id=743035
18003 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18005 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
18006 * patches/videoparsers/series.frag:
18007 h264parse: drop patches merged upstream.
18008 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
18010 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18012 * ext/codecparsers:
18013 codecparsers: update to gst-vaapi-branch commit d3b5c1b
18014 8194cac: h264parse: parse SPS subset
18015 64b7f52: h264parse: expose stereo-high profile
18016 774360a: h264parse: add initial support for MVC NAL units
18017 258478f: h264parser: fix stack smashing
18019 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18021 * gst/vaapi/gstvaapivideometa_texture.c:
18022 Fix compilation error if there is no GL/gl.h header file installed
18024 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18026 * gst/vaapi/gstvaapidecode.c:
18027 vaapidecode: commit updated srcpad caps to base plugin.
18028 Make sure that the GstVaapiPluginBase instance receives the new src
18029 pad caps whenever they get updated from within the GstVaapiDecoder
18031 This also ensures that downstream elements receive correctly sized
18032 SW decoded buffers if needed.
18033 https://bugs.tizen.org/jira/browse/TC-114
18035 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18037 * gst/vaapi/gstvaapidecode.c:
18038 vaapidecode: always reset decoder on ::set_format().
18039 Split GstVideoDecoder::set_format() handler to first update the sink
18040 pad caps and reset the active VA decoder instance based on those, and
18041 then update the src pad caps whenever possible, e.g. when the caps
18042 specify a valid video resolution.
18044 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18046 * gst/vaapi/gstvaapivideomemory.c:
18047 vaapivideomemory: don't crash when trying to allocate 0x0 images.
18048 In some occasions, a buffer pool is created for pre-initialization
18049 purposes regardless of whether a valid image size is available or
18050 not. However, during actual decode stage, the vaapidecode element
18051 is expected to update the srcpad caps with the new dimensions, thus
18052 also triggering a reset of the underlying bufferpool.
18054 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18056 * ext/codecparsers:
18057 codecparsers: update to gst-vaapi-branch commit 191cb2f
18058 347605a: h264parse: expose compatible profiles to downstream
18059 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
18060 24a3126: Revert "h264parse: expose compatible profiles to downstream"
18061 8661740: h264parse: expose compatible profiles to downstream
18062 8b7ef3f: codecparsers: fix some compiler warnings
18064 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18066 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18067 encoder: h264: Fix the period between I/P frames
18068 If the key-frame period is set as one, then ip_period shuld be zero
18069 https://bugzilla.gnome.org/show_bug.cgi?id=734992
18071 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18073 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18074 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
18075 https://bugzilla.gnome.org/show_bug.cgi?id=734993
18077 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18079 * gst/vaapi/gstvaapisink.c:
18080 vaapisink: Protect the X11 API invokations with proper locking
18081 https://bugzilla.gnome.org/show_bug.cgi?id=739808
18083 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18085 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18086 encoder: h264: fix pixel-aspect-ratio in encoded stream.
18087 Really report sample aspect ratio (SAR) as present, and make it match
18088 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
18089 really make sure VUI parameter aspect_ratio_info_present_flag is set
18090 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
18091 This is a leftover from git commit a12662f.
18092 https://bugzilla.gnome.org/show_bug.cgi?id=740360
18094 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18096 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18097 decoder: mpeg4: fix uninitialized variables.
18098 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
18099 GST_MPEG4_USER_DATA so that a parse error would result in skipping
18100 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
18101 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
18103 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18105 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18106 encoder: h264: fix profile limits.
18107 Fix ensure_profile_limits() to lower profile to the desired limits,
18108 only if the latter are actually known and the profile needed to be
18111 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18113 * gst/vaapi/gstvaapipostproc.c:
18114 vaapipostproc: fix out caps for GLMemory.
18115 If the best downstream capsfeature turns out to be GLMemory, then make
18116 sure to propagate RGBA video format in caps to that element. This fixes
18117 the following pipeline: ... ! vaapipostproc ! glimagesink.
18119 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18121 * gst/vaapi/gstvaapipostproc.c:
18122 vaapipostproc: fix check for compatible src pad capsfilters.
18123 When an explicit output video format is selected, from an src pad
18124 capsfilter, make sure that the downstream element actually supports
18125 that format. In particular, fix crash with the following pipelines:
18126 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
18127 XXX is a format not supported by xvimagesink.
18128 While doing so, also reduce the set of src pad filter caps to the
18129 actual set of allowed src pad caps.
18131 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18133 * gst/vaapi/gstvaapipostproc.c:
18134 * gst/vaapi/gstvaapipostproc.h:
18135 * gst/vaapi/gstvaapiuploader.c:
18136 * gst/vaapi/gstvaapiuploader.h:
18137 plugins: re-indent all video processing related source code.
18139 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18141 * gst/vaapi/gstvaapivideomemory.c:
18142 plugins: further fixes to the new "current" storage tracker.
18143 The ensure_surface() and ensure_image() functions shall only relate
18144 to the underlying backing store. The actual current flags are to be
18145 updated only through ensure_{surface,image}_is_current() or very other
18146 particular cases in GstMemory hooks.
18148 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18150 * gst/vaapi/gstvaapivideomemory.c:
18151 plugins: fix "current" video memory flags.
18152 If the surface proxy is updated into the GstVaapiVideoMemory, then
18153 it is assumed it is the most current representation of the current
18154 video frame. Likewise, make a few more arrangements to have the
18155 "current " flags set more consistently.
18157 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18159 * gst/vaapi/gstvaapivideomemory.c:
18160 * gst/vaapi/gstvaapivideomemory.h:
18161 * gst/vaapi/gstvaapivideometa.c:
18162 plugins: ensure VA surface is current prior to using it.
18163 When interacting with SW elements, the buffers and underlying video
18164 memory could be mapped as read/write. However, we need to use those
18165 buffers again as plain VA surfaces, we have to make sure the VA image
18166 is thus committed back to VA surface memory.
18167 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
18169 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18171 * gst/vaapi/gstvaapivideomemory.c:
18172 plugins: enable memory maps for read & write.
18173 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
18174 buffers can be further processed in-place, e.g. with a textoverlay.
18175 https://bugzilla.gnome.org/show_bug.cgi?id=704078
18176 [ported to current git master branch, amended commit message]
18177 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18179 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18181 * gst/vaapi/gstvaapidecode.c:
18182 * gst/vaapi/gstvaapipluginutil.c:
18183 * gst/vaapi/gstvaapipluginutil.h:
18184 * gst/vaapi/gstvaapipostproc.c:
18185 plugins: preserve framerate when updating src caps video format.
18186 In the current implementation, gst_video_info_set_format() would reset
18187 the whole GstVideoInfo structure first, prior to setting video format
18188 and size. So, coleteral information like framerate or pixel-aspect-
18190 Provide and use a unique gst_video_info_change_format() for overcome
18191 this issue, i.e. only have it change the format and video size, and
18192 copy over the rest of the fields.
18193 https://bugzilla.gnome.org/show_bug.cgi?id=734665
18195 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18197 * gst/vaapi/gstvaapi.c:
18198 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
18199 This is for helping decodebin to autoplug the vaapidecode element.
18200 Decodebin is selecting decoder elements only based on rank and caps.
18201 Without overriding the autoplug-* signals there is no way to autoplug
18202 HW decoders inside decodebin. An easier soulution is to raise the
18203 rank of vaapidecode, so that it gets selected first.
18204 https://bugzilla.gnome.org/show_bug.cgi?id=739332
18206 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18208 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18209 * gst/vaapi/gstvaapidecode.c:
18210 vaapidecode: only expose supported profiles when needed.
18211 JPEG and VP8 codecs do not really support the concept of "profile". So,
18212 don't try to expose any set that wouldn't be supported by jpegparse, or
18213 ivfparse for instance.
18214 https://bugzilla.gnome.org/show_bug.cgi?id=739713
18215 https://bugzilla.gnome.org/show_bug.cgi?id=739714
18217 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18219 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18220 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18221 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
18222 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
18223 decoder: h264: add initial support for repeat-first-field (RFF) flag.
18224 Use the SEI pic_timing() message to track and propagate down the repeat
18225 first field (RFF) flag. This is only initial support as there is one
18226 other condition that could induce the RFF flag, which is not handled
18229 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18231 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18232 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
18233 Fix the decoding process for picture order count type 0 when the previous
18234 picture had a memory_management_control_operation = 5. In particular, fix
18235 the actual variable type for prev_pic_structure to hold the full bits of
18236 the picture structure.
18237 In practice, this used to work though, due to the underlying type used to
18238 express a gboolean.
18240 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18242 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18243 decoder: h264: fix detection of top-field-first (TFF) flag.
18244 Use the SEI pic_timing() message to track the pic_struct variable when
18245 present, or infer it from the regular slice header flags field_pic_flag
18246 and bottom_field_flag. This fixes temporal sequence ordering when the
18247 output pictures are to be displayed.
18248 https://bugzilla.gnome.org/show_bug.cgi?id=739291
18250 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18252 * ext/codecparsers:
18253 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
18254 1241840 h264: fix derivation of MaxPicNum variable
18255 3bd718e h264: fix GstH264ParserResult documentation typo
18256 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
18257 b08e4be h264parse: don't unnecesarily set src_caps
18259 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18261 * gst/vaapi/gstvaapipostproc.c:
18262 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
18263 Added the same Klass specifications used in other upstream
18264 video postprocessing elements like videoconvert, videoscale,
18265 videobalance and deinterlace.
18266 An example use case is for this is to help the playsink
18267 to autoplug the hardware accelerated deinterlacer.
18269 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18271 * gst/vaapi/gstvaapipostproc.c:
18272 vaapipostproc: Tweak the output video format setting to enable the autoplugging
18273 This is a workaround until auto-plugging is fixed when
18274 format=ENCODED + memory:VASurface caps feature are provided.
18275 Use the downstream negotiated video format as the output video format
18276 if the user didn't ask for the colorspace conversion explicitly.
18277 Usecase: This will help to connect elements like videoscale, videorate etc
18279 https://bugzilla.gnome.org/show_bug.cgi?id=739443
18281 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18283 * gst/vaapi/gstvaapipostproc.c:
18284 * gst/vaapi/gstvaapipostproc.h:
18285 vaapipostproc: allow user defined scaling mode.
18286 Add new "scale-method" property to expose the scaling mode to use during
18287 video processing. Note that this is only a hint, and the actual behaviour
18288 may differ from implementation (VA driver) to implementation.
18290 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18292 * gst-libs/gst/vaapi/gstvaapifilter.c:
18293 * gst-libs/gst/vaapi/gstvaapifilter.h:
18294 * gst-libs/gst/vaapi/gstvaapiutils.c:
18295 * gst-libs/gst/vaapi/gstvaapiutils.h:
18296 filter: add initial support for high quality scaling.
18297 Add support for video scaling options in VPP pipelines. Only the
18298 DEFAULT mode is bound to exist. Others might be folded into that
18301 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18303 * gst-libs/gst/vaapi/gstvaapifilter.c:
18304 * gst-libs/gst/vaapi/gstvaapifilter.h:
18305 filter: re-indent all GstVaapiFilter related source code.
18307 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18309 * ext/codecparsers:
18310 codecparsers: update to gst-vaapi-branch commit f9d3bde.
18311 2218b02 h264parse: expose parsed profile and level to downstream
18312 3dbfab4 h264parse: return flushing if we get chained while being set to READY
18313 d40fa8b h264: fix frame packing SEI parsing
18314 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
18315 b3e022e h264: initialize some fields of pic_timing structure
18316 a70661d vc1: fix expected level in sequence-layer parsing unit test
18317 6cee88d vc1: fix level values for simple/main profile
18318 356c189 vc1: add unit test for sequence-layer parsing
18319 ab9f641 vc1: take care of endianness when parsing sequence-layer
18320 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
18322 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18324 * gst/vaapi/gstvaapidecode.c:
18325 vaapidecode: Expose the supported profiles as caps to upstream
18326 This will allows the playbin to fallback to Software Decoder
18327 if the Hardware Decoder does not support a particular profile.
18328 https://bugzilla.gnome.org/show_bug.cgi?id=730997
18330 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18332 * gst/vaapi/gstvaapiencode.c:
18333 * gst/vaapi/gstvaapiencode.h:
18334 * gst/vaapi/gstvaapiencode_h264.c:
18335 encode: Attach the codec-data to out caps only based on negotiated caps
18336 Attach the codec_data to out_caps only if downstream needed.
18337 For eg: h264 encoder doesn't need to stuff codec_data to the
18338 src caps if the negotiated caps has a stream format of byte-stream.
18339 https://bugzilla.gnome.org/show_bug.cgi?id=734902
18341 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18344 configure: echoing installation prefix path
18346 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18348 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18349 display: add support for DRM Render-Nodes.
18350 Add support for DRM Render-Nodes. This is a new feature that appeared
18351 in kernel 3.12 for experimentation purposes, but was later declared
18352 stable enough in kernel 3.15 for getting enabled by default.
18353 This allows headless usages without authentication at all, i.e. usages
18354 through plain ssh connections is possible.
18356 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18358 * gst/vaapi/gstvaapisink.c:
18359 vaapisink: clean-ups (indentation, drop unused variables).
18361 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18364 * gst/vaapi/gstvaapisink.c:
18365 vaapisink: fix GstNavigation "key-press" / "key-release" events.
18366 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
18367 to a KeySym. In particular, there is no such Window argument. Also
18368 make sure to check for, and use, the correct <X11/XKBlib.h> header
18369 where that new function is defined. Otherwise, default to the older
18370 XKeycodeToKeysym() function.
18372 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18374 * gst/vaapi/gstvaapisink.c:
18375 vaapisink: fix GstNavigation "mouse-move" event.
18376 Really use the motion event coordinates to propagate the "mouse-move"
18377 event to upper layer, instead of those from a button event. Those are
18378 technically the same though.
18380 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18382 * gst/vaapi/gstvaapisink.c:
18383 vaapisink: implement the GstNavigation interface
18384 This is useful for things like DVD menus, where key/mouse events
18385 would need to be forwarded from the upstream sink element.
18386 https://bugzilla.gnome.org/show_bug.cgi?id=711479
18388 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18390 * gst/vaapi/gstvaapipluginbase.c:
18391 vaapipostproc: fix deinterlacing from non VA memory buffers.
18392 When we copy a buffer because we're moving it into VA-API memory, we
18393 need to copy flags. Otherwise, interlaced YUV buffers from a capture
18394 source (e.g. V4L2) don't get flagged as interlaced.
18395 https://bugzilla.gnome.org/show_bug.cgi?id=726270
18396 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18397 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
18398 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18400 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18402 * gst/vaapi/gstvaapipostproc.c:
18403 vaapipostproc: add support for GLTextureUploadMeta output.
18404 This allows for vaapipostproc to be chained to the glimagesink element
18406 https://bugzilla.gnome.org/show_bug.cgi?id=735231
18408 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18410 * gst/vaapi/gstvaapipluginutil.c:
18411 * gst/vaapi/gstvaapipluginutil.h:
18412 * gst/vaapi/gstvaapipostproc.c:
18413 vaapipostproc: add support for "download" capability.
18414 Allow implicit conversions to raw video formats, while still keeping
18415 VA surfaces underneath. This allows for chaining the vaapipostproc
18416 element to a software-only element that takes care of maps/unmaps.
18418 https://bugzilla.gnome.org/show_bug.cgi?id=720174
18420 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18422 * gst/vaapi/gstvaapipostproc.c:
18423 * gst/vaapi/gstvaapipostproc.h:
18424 vaapipostproc: use pooled vaapi video meta.
18425 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
18426 video buffer allocation. Also optimize copy of additional metadata info
18427 into the resulting video buffer: only copy the video cropping info and
18428 the source surface proxy.
18429 https://bugzilla.gnome.org/show_bug.cgi?id=720311
18430 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18431 [fixed proxy leak, fixed double free on error, optimized meta copy]
18432 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18434 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18436 * gst/vaapi/gstvaapipostproc.c:
18437 vaapipostproc: fix passthrough mode.
18438 If no explicit output surface format is supplied try to keep the one
18439 supplied through the sink pad caps. This avoids a useless copy, even
18440 if things are kept in GPU memory.
18441 This is a performance regression from git commit dfa70b9.
18443 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18445 * gst/vaapi/gstvaapipostproc.c:
18446 * gst/vaapi/gstvaapipostproc.h:
18447 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
18448 https://bugzilla.gnome.org/show_bug.cgi?id=720311
18449 [used new infrastructure through base decide_allocation() impl]
18450 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18452 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18454 * gst/vaapi/gstvaapipostproc.c:
18455 vaapipostproc: enable advanced deinterlacing with same format.
18456 If only advanced deinterlacing is requested, i.e. deinterlacing is
18457 the only active algorithm to apply with source and output surface
18458 formats being the same, then make sure to enable VPP processing.
18459 Otherwise, allow fallback to bob-deinterlacing with simple rendering
18462 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18464 * gst/vaapi/gstvaapivideomemory.c:
18465 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
18466 https://bugzilla.gnome.org/show_bug.cgi?id=735156
18468 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18470 * gst/vaapi/gstvaapipluginbase.c:
18471 * gst/vaapi/gstvaapipluginutil.c:
18472 plugins: fix memory leaks.
18474 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18476 * gst/vaapi/gstvaapidecode.c:
18477 * gst/vaapi/gstvaapipluginbase.c:
18478 * gst/vaapi/gstvaapipluginbase.h:
18479 plugins: factor out decide_allocation() hook.
18480 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
18481 feature argument can be used to force a bufferpool with a specific kind
18484 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18486 * gst/vaapi/gstvaapivideobufferpool.c:
18487 * gst/vaapi/gstvaapivideobufferpool.h:
18488 * gst/vaapi/gstvaapivideomemory.c:
18489 plugins: allow bufferpool to not allocate vaapi video meta.
18490 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
18491 can be used to disable early allocations of vaapi video metas on buffers,
18492 thus delagating that to the bufferpool user.
18494 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18496 * gst/vaapi/gstvaapivideobuffer.c:
18497 * gst/vaapi/gstvaapivideobuffer.h:
18498 * gst/vaapi/gstvaapivideobufferpool.c:
18499 * gst/vaapi/gstvaapivideobufferpool.h:
18500 * gst/vaapi/gstvaapivideocontext.c:
18501 * gst/vaapi/gstvaapivideocontext.h:
18502 * gst/vaapi/gstvaapivideoconverter_glx.c:
18503 * gst/vaapi/gstvaapivideoconverter_glx.h:
18504 * gst/vaapi/gstvaapivideoconverter_x11.c:
18505 * gst/vaapi/gstvaapivideoconverter_x11.h:
18506 * gst/vaapi/gstvaapivideomemory.c:
18507 * gst/vaapi/gstvaapivideomemory.h:
18508 * gst/vaapi/gstvaapivideometa.c:
18509 * gst/vaapi/gstvaapivideometa.h:
18510 * gst/vaapi/gstvaapivideometa_texture.c:
18511 * gst/vaapi/gstvaapivideometa_texture.h:
18512 plugins: re-indent all GstVaapiVideo* related source code.
18514 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18516 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18517 surfaceproxy: fix copy to propagate view_id.
18518 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
18519 fixing random frames skipped when vaapipostproc element is used in
18520 passthrough mode. In that mode, GstMemory is copied, thus including
18521 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
18523 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18525 * gst/vaapi/gstvaapipostproc.c:
18526 vaapipostproc: fix detection of output surface format changes.
18527 Default to I420 format for output surfaces so that to match the usual
18528 GStreamer pipelines. Though, internally, we could still opt for NV12
18529 surface formats, i.e. default format=ENCODED is a hint for that, thus
18530 delegating the decision to the VA driver.
18532 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18534 * gst/vaapi/gstvaapipostproc.c:
18535 vaapipostproc: fix construction of allowed sink pad caps.
18536 Fix construction of the set of caps allowed on the sink pad to filter
18537 out unsupported raw video caps with GStreamer >= 1.2.
18539 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18541 * gst/vaapi/gstvaapipostproc.c:
18542 * gst/vaapi/gstvaapipostproc.h:
18543 vaapipostproc: improve heuristics for detecting native VA surfaces.
18544 Use the new gst_caps_has_vaapi_surface() helper function to detect
18545 whether the sink pad caps contain native VA surfaces, or not, i.e.
18547 Also rename is_raw_yuv to get_va_surfaces to make the variable more
18548 explicit as we just want a way to differentiate raw video caps from
18549 VA surfaces actually.
18551 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18553 * gst/vaapi/gstvaapipostproc.c:
18554 vaapipostproc: disable discontinuity detection code.
18555 The "discontinuity" tracking code, whereby lost frames are tentatively
18556 detected, is inoperant if the sink pad buffer timestamps are not right
18558 This is a temporary workaround until the following bug is fixed:
18559 https://bugzilla.gnome.org/show_bug.cgi?id=734386
18561 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18563 * gst/vaapi/gstvaapipostproc.c:
18564 vaapipostproc: fix heuristic for detecting discontinuity.
18565 In order to make the discontinuity detection code useful, we need to
18566 detect the lost frames in the history as early as the previous frame.
18567 This is because some VA implementations only support one reference
18568 frame for advanced deinterlacing.
18569 In practice, turn the condition for detecting new frame that is beyond
18570 the previous frame from field_duration*2 to field_duration*3, i.e.
18571 nothing received for the past frame and a half because of possible
18572 rounding errors when calculating the field-duration either in this
18573 element (vaapipostproc), or from the upstream element (parser element).
18574 This is a regression introduced with commit faefd62.
18575 https://bugzilla.gnome.org/show_bug.cgi?id=734135
18577 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18579 * gst/vaapi/gstvaapipluginbase.c:
18580 * gst/vaapi/gstvaapipluginbase.h:
18581 plugins: fix detection of raw video caps.
18582 Use the new gst_caps_has_vaapi_surface() helper function to better
18583 detect raw video caps, and in particular those from RGB colorspace.
18584 https://bugzilla.gnome.org/show_bug.cgi?id=734665
18586 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18588 * gst/vaapi/gstvaapipluginutil.c:
18589 * gst/vaapi/gstvaapipluginutil.h:
18590 plugins: add helper for detecting VA surfaces in caps.
18591 Introduce new gst_caps_has_vaapi_surface() helper function to detect
18592 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
18593 implies a check for memory:VASurface caps features, and format=ENCODED
18594 for earlier versions of GStreamer.
18596 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
18598 * gst/vaapi/gstvaapidecode.c:
18599 vaapidecode: start the decoder task again after finishing
18600 This allows the element to accept data again after draining without
18601 a hard reset or caps change happening in between.
18602 https://bugzilla.gnome.org/show_bug.cgi?id=734616
18604 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
18606 * gst/vaapi/gstvaapidecode.c:
18607 vaapidecode: unlock condition variables before shutting down the element
18608 Otherwise threads might wait for them, causing the shutdown of the element
18609 to deadlock on the streaming thread.
18610 https://bugzilla.gnome.org/show_bug.cgi?id=734616
18612 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
18614 * gst/vaapi/gstvaapidecode.c:
18615 vaapidecode: reset decoder_finish variable after stopping the decoder thread
18616 Otherwise the element is not usable again after draining/EOS.
18617 https://bugzilla.gnome.org/show_bug.cgi?id=734616
18619 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
18621 * gst/vaapi/gstvaapidecode.c:
18622 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
18623 This otherwise results in unnecessary error messages.
18624 https://bugzilla.gnome.org/show_bug.cgi?id=734616
18626 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18628 * gst-libs/gst/vaapi/Makefile.am:
18629 * gst/vaapi/Makefile.am:
18630 build: fix with --no-undefined linker flags.
18631 https://bugzilla.gnome.org/show_bug.cgi?id=729352
18633 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
18635 * gst/vaapi/gstvaapisink.c:
18636 * gst/vaapi/gstvaapisink.h:
18637 vaapisink: add support for GstColorBalance interface.
18638 https://bugzilla.gnome.org/show_bug.cgi?id=722390
18639 [fixed channel names, simplified range factor, fixed memory leak]
18640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18642 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
18644 * gst/vaapi/gstvaapisink.c:
18645 * gst/vaapi/gstvaapisink.h:
18646 vaapisink: add support for colorbalance adjustment.
18647 https://bugzilla.gnome.org/show_bug.cgi?id=722390
18648 [fixed and simplified tracking of colorbalance value changes]
18649 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18651 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18653 * gst/vaapi/gstvaapisink.c:
18654 vaapisink: improve installation of properties.
18655 Simplify the creation and installation process of properties, by first
18656 accumulating them into a g_properties[] array, and next calling into
18657 g_object_class_install_properties().
18658 Also add missing docs and flags to some properties.
18660 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18662 * gst/vaapi/gstvaapisink.c:
18663 * gst/vaapi/gstvaapisink.h:
18664 vaapisink: code clean-ups.
18665 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
18666 helper macro and use it wherever we know the object is a GstBaseSink or
18667 any base class. Drop explicit initializers for values that have defaults
18670 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18672 * gst/vaapi/gstvaapisink.c:
18673 * gst/vaapi/gstvaapisink.h:
18674 vaapisink: re-indent all GstVaapiSink related source code.
18676 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18678 * gst/vaapi/gstvaapisink.c:
18679 * gst/vaapi/gstvaapisink.h:
18680 vaapisink: introduce separate backends.
18681 Introduce new backends vtable so that to have clean separation between
18682 display dependent code and common base code. That's a "soft" separation,
18683 we don't really need dedicated objects.
18684 https://bugzilla.gnome.org/show_bug.cgi?id=722248
18686 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18688 * gst/vaapi/gstvaapisink.c:
18689 * gst/vaapi/gstvaapisink.h:
18690 vaapisink: drop unused "synchronous" mode.
18691 Support for X11 "synchronous" mode was never implemented, and was only
18692 to be useful for debugging. Drop that altogether, that's not going to
18693 be useful in practice.
18694 https://bugzilla.gnome.org/show_bug.cgi?id=733985
18696 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18698 * gst/vaapi/gstvaapisink.c:
18699 * gst/vaapi/gstvaapisink.h:
18700 vaapisink: drop unused variables.
18701 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
18702 variables. They got merged into the GstVaapiPluginBase object.
18704 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18706 * gst/vaapi/gstvaapisink.c:
18707 * gst/vaapi/gstvaapisink.h:
18708 vaapisink: drop GLX rendering and fancy effects.
18709 Rendering with GLX in vaapisink is kind of useless nowadays, including
18710 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
18711 deprecated in favor of EGL, or more direct buffer sharing with actual
18713 Should testing of interop with GLX be needed, one could still be using
18714 the modern cluttersink or glimagesink elements.
18715 https://bugzilla.gnome.org/show_bug.cgi?id=733984
18717 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
18719 * gst/vaapi/gstvaapisink.c:
18720 * gst/vaapi/gstvaapisink.h:
18721 vaapisink: listen to window size changes on X11.
18722 Allow dynamic changes to the window, e.g. performed by the user, and
18723 make sure to refresh its contents, while preserving aspect ratio.
18724 In practice, Expose and ConfigureNotify events are tracked in X11
18725 display mode by default. This occurs in a separte event thread, and
18726 this is similar to what xvimagesink does. Any of those events will
18727 trigger a reconfiguration of the window "soft" size, subsequently
18728 the render-rect when necessary, and finally _expose() the result.
18729 The default of handle_events=true can be changed programatically via
18730 gst_x_overlay_handle_events().
18731 Thanks to Fabrice Bellet for rebasing the patch.
18732 https://bugzilla.gnome.org/show_bug.cgi?id=711478
18733 [dropped XInitThreads(), cleaned up the code a little]
18734 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18736 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18738 * gst/vaapi/gstvaapidecode.c:
18739 vaapidecode: decode and output all pending frames on normal EOS.
18740 The gst_vaapidecode_decode_loop() function is called within a separate
18741 task to fetch and output all frames that were decoded so far. So, if
18742 the decoder_loop_status is forcibly set to EOS when _finish() is called,
18743 then we are bound to exist the task without submitting the pending
18745 If the downstream element error'ed out, then the gst_pad_push() would
18746 propagate up an error and so we will get it right for cutting off
18747 _finish() early in that case.
18748 This is a regression from 6003596.
18749 https://bugzilla.gnome.org/show_bug.cgi?id=733897
18751 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18754 Bump version for development.
18756 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18761 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18766 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
18768 * gst/vaapi/gstvaapidecode.c:
18769 vaapidecode: properly return from decode loop on downstream errors.
18770 Fixes a hang/race on shutdown where _decode_loop() had already completed
18771 its execution and _finish() was waiting on a GCond for decode_loop()
18772 to complete. Also fixes the possible race where _finish() is called
18773 but _decode_loop() endlessly returns before signalling completion
18774 iff the decoder instance returns GST_FLOW_OK.
18775 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
18776 https://bugzilla.gnome.org/show_bug.cgi?id=733897
18777 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
18778 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18780 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18786 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18788 * gst/vaapi/gstvaapisink.c:
18789 vaapisink: fix GstVideoOverlay::expose() implementation.
18790 Now that we always track the currently active video buffer, it is
18791 not necessary to automatically increase its reference since this is
18792 implicitly performed in ::show_frame() through the get_input_buffer()
18793 helper from GstVaapiPluginBase class.
18794 This is a regression from a26df80.
18796 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18798 * gst/vaapi/gstvaapidecode.c:
18799 * gst/vaapi/gstvaapipluginutil.c:
18800 vaapidecode: simplify bufferpool configuration.
18801 Rework the logics behind the configuration of an adequate bufferpool,
18802 especially when OpenGL meta or additional capsfeatures are needed.
18803 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
18804 and that is not system memory, is now selected by default.
18806 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18808 * gst/vaapi/gstvaapidecode.c:
18809 vaapidecode: fix auto-plugging of vaapisink element.
18810 Make sure to propagate memory:VASurface capsfeature to srcpad caps
18811 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
18812 core currently miss additional patches available in 1.5-git (1.6).
18813 This is a temporary workaround.
18815 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18818 configure: allow builds against GStreamer git (1.5.x).
18819 https://bugzilla.gnome.org/show_bug.cgi?id=733688
18821 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18824 configure: fix build with GStreamer 1.4.0 release.
18826 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18829 * debian.upstream/Makefile.am:
18830 * debian.upstream/control.in:
18831 debian: fix packaging for new naming scheme.
18833 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18838 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18841 configure: mark support for GStreamer < 1.2 as deprecated.
18842 Supporting anything thing below GStreamer 1.2 is asking for trouble
18843 for keeping up with the required facilities to make efficient pipelines.
18844 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
18847 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18850 configure: mark support for GStreamer 0.10 as obsolete.
18851 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
18852 and may actually be removed altogether for a future release. There is
18853 no real point to maintain a build for such an ancient GStreamer version
18854 that is not even supported upstream.
18856 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18858 * gst/vaapi/gstvaapisink.c:
18859 * gst/vaapi/gstvaapisink.h:
18860 vaapisink: allow a specific view component to be displayed.
18861 If a multiview stream is decoded, multiple view components are submitted
18862 as is downstream. It is the responsibility of the sink element to display
18863 the required view components. By default, always select the frame buffer
18864 that matches the view-id of the very first frame to be displayed.
18865 However, introduce a "view-id" property to allow the selection of a
18866 specific view component of interest to display.
18868 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18870 * gst/vaapi/gstvaapisink.c:
18871 vaapisink: always keep the last displayed buffer around.
18872 Always record the VA surface that is currently being rendered, no matter
18873 the fact we are using texturedblit or overlay. That's because in some
18874 occasions, we need to refresh or resize the displayed contents based on
18875 new events. e.g. user-resized window.
18876 Besides, it's simpler to track the last video buffer in GstVaapiSink than
18877 through the base sink "last-sample".
18879 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18881 * gst/vaapi/gstvaapipluginbase.c:
18882 * gst/vaapi/gstvaapipluginbase.h:
18883 * gst/vaapi/gstvaapipluginutil.c:
18884 * gst/vaapi/gstvaapisink.c:
18885 vaapisink: add support for "display-name" property.
18886 Add a "display-name" property to vaapisink so that the end user could
18887 select the desired output. Keep "display-name" in-line with the existing
18888 "display" (GstVaapiDisplayXXX type).
18889 So, for X11 or GLX, the "display-name" is the usual display name as we
18890 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
18891 for wl_display_connect(); and for DRM, the "display-name" is actually the
18893 https://bugzilla.gnome.org/show_bug.cgi?id=722247
18895 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18897 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18898 window: make gst_vaapi_window_reconfigure() thread-safe.
18899 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
18900 thread-safe by default, so that upper layer users don't need to handle
18903 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
18905 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18906 * gst-libs/gst/vaapi/gstvaapiwindow.h:
18907 window: allow for updating size from current geometry.
18908 Add gst_vaapi_window_reconfigure() interface to force an update of
18909 the GstVaapiWindow "soft" size, based on the current geometry of the
18910 underlying native window.
18911 This can be useful for instance to synchronize the window size when
18912 the user changed it.
18913 Thanks to Fabrice Bellet for rebasing the patch.
18914 [changed interface to gst_vaapi_window_reconfigure()]
18915 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18917 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18919 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18920 * gst-libs/gst/vaapi/gstvaapiwindow.h:
18921 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
18922 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
18923 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
18924 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
18925 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18926 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18927 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
18928 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18929 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
18930 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
18931 window: re-indent all GstVaapiWindow related source code.
18933 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18935 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18936 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18937 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
18938 display: add interface to retrieve the display name.
18939 Add gst_vaapi_display_get_display_name() helper function to determine
18940 the name associated with the underlying native display. Note that for
18941 raw DRM backends, the display name is actually the device path.
18943 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18945 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
18946 display: fix comparison of X11 display names.
18947 Make sure to not only compare display host names, but also the actual
18948 display number. The screen number does not need to be checked at this
18951 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18953 * gst/vaapi/gstvaapidecode.c:
18954 * gst/vaapi/gstvaapivideobufferpool.c:
18955 vaapidecode: add support for VideoAlignment bufferpool option.
18956 Always add VideoAlignment bufferpool option if the downstream element
18957 expects its own pool to be used but does not offer it through a proper
18958 propose_allocation() implementation for instance, and that the ALLOCATION
18959 query does not expose the availability of the Video Meta API.
18960 This fixes propagation of video buffer stride information to Firefox.
18962 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18964 * gst/vaapi/gstvaapivideomemory.c:
18965 vaapivideomemory: always prefer native VA surface formats.
18966 Make sure to always prefer native internal formats for the VA surfaces
18967 that get allocated. Also disable "direct-rendering" mode in this case.
18968 This is needed so that to make sure that anything that gets out of the
18969 decoder, or anything that gets into the encoder, is in native format
18970 for the hardware, and thus the driver doesn't need to perform implicit
18971 conversions in there. Interop with SW elements is still available with
18972 fast implementations of VA imaging APIs.
18974 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18976 * gst/vaapi/gstvaapivideomemory.c:
18977 vaapivideomemory: disallow memory shares across buffers, use a copy.
18978 Forbid shares of GstMemory instances, and rather make copy of it. This
18979 effectively copies the GstMemory structure and enclosed metadata, but
18980 this does not copy the VA surface contents itself. It should though.
18981 This fixes preroll and makes sure to not download garbage for the first
18982 frame when a SW rendering sink is used.
18984 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18986 * gst/vaapi/gstvaapivideomemory.c:
18987 * gst/vaapi/gstvaapivideomemory.h:
18988 vaapivideomemory: use an image pool to cache objects.
18989 Use an image pool to hold VA images to be used for downloads/uploads
18990 of contents for the associated surface.
18991 This is an optmization for size. So, instead of creating as many VA
18992 images as there are buffers (then VA surfaces) allocated, we only
18993 maintain a minimal set of live VA images, thus preserving memory
18996 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18998 * gst/vaapi/gstvaapivideomemory.c:
18999 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
19000 Disable read-write mappings if "direct-rendering" is not supported.
19001 Since the ordering of read and write operations is not specified,
19002 this would require to always download the VA surface on _map(), then
19003 commit the temporary VA image back to the VA surface on _unmap().
19004 Some SW decoding plug-in elements still use R/W mappings though.
19005 https://bugzilla.gnome.org/show_bug.cgi?id=733242
19007 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19009 * gst/vaapi/gstvaapivideomemory.c:
19010 vaapivideomemory: minor code clean-ups.
19011 Fix error messages introduced in the previous commit for the _map()
19012 imaplementation. Also use the new get_image_data() helper function
19013 to determine the base pixels data buffer from a GstVaapiImage when
19014 updating the video info structure from it.
19016 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19018 * gst/vaapi/gstvaapivideomemory.c:
19019 * gst/vaapi/gstvaapivideomemory.h:
19020 vaapivideomemory: add support for raw pixels mappings.
19021 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
19022 cases where the buffer pool is allocated without VideoMeta API, thus
19023 individual planes cannot be mapped.
19024 This is initial support for Firefox >= 30.
19025 https://bugzilla.gnome.org/show_bug.cgi?id=731886
19027 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19029 * gst/vaapi/gstvaapivideomemory.c:
19030 vaapivideomemory: fix determination of the surface pool format.
19031 While creating the vaapi video allocator, make sure the associated
19032 surface pool has correct format instead of defaulting to NV12 video
19033 format even though there is no direct rendering support.
19034 https://bugzilla.gnome.org/show_bug.cgi?id=732691
19036 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19038 * gst/vaapi/gstvaapivideomemory.c:
19039 vaapivideomemory: fix association of surface to proxy.
19040 Make sure to always update the VA surface pointer whenever the proxy
19041 changes. This used to only work when the VA surface is written to, in
19042 interop with SW element ("upload" feature), and this now fixes cases
19043 when the VA surface is needed for reading, in interop with SW element
19044 ("download" feature).
19046 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19048 * gst/vaapi/gstvaapidecode.c:
19049 * gst/vaapi/gstvaapipluginutil.c:
19050 * gst/vaapi/gstvaapivideomemory.c:
19051 plugins: expose I420 format for interop with SW elements.
19052 Always expose I420 format by default when the VA surface could be
19053 mapped for interoperability with non harware accelerated elements.
19054 However, the default behaviour remains the auto-plugging of vaapi
19055 elements, down to the sink.
19056 Side effect: "direct-rendering" mode is also disabled most of the
19057 times as plain memcpy() from uncached speculative write combining
19058 memory is not going to be efficient enough.
19060 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19062 * gst/vaapi/gstvaapidecode.c:
19063 * gst/vaapi/gstvaapivideomemory.c:
19064 plugins: allow download capability to vaapidecode element.
19065 Fix support for VA surface download capability in vaapidecode element
19066 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
19067 but also the libva-intel-driver while performing hardware accelerated
19068 conversions from the native VA surface format (NV12) to the desired
19069 output VA image format.
19070 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
19071 https://bugzilla.gnome.org/show_bug.cgi?id=733243
19073 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
19075 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19076 decoder: mpeg4: fix picture decoder return value for skipped frames.
19077 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
19078 when a frame should be skipped, so the stream processing is not stalled.
19079 https://bugzilla.gnome.org/show_bug.cgi?id=733324
19081 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
19083 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19084 decoder: mpeg2: respect any input PTS provided for a frame.
19085 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
19086 frame timestamps within a GOP, even when it's been fed input PTS for
19088 That leads to incorrect output timestamps in some situations - for example
19089 live playback where input timestamps have been scaled based on arrival time
19090 from the network and don't exactly match the framerate.
19091 https://bugzilla.gnome.org/show_bug.cgi?id=732719
19093 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19095 * gst-libs/gst/vaapi/gstvaapiobject.c:
19096 GstVaapiObject: make gst_vaapi_object_new() more robust.
19097 Forbid GstVaapiObject to be created without an associated klass spec.
19098 It is mandatory that the subclass implements an adequate .finalize()
19099 hook, so it shall provide a valid GstVaapiObjectClass.
19100 https://bugzilla.gnome.org/show_bug.cgi?id=722757
19101 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
19102 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19104 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19106 * gst-libs/gst/vaapi/gstvaapiobject.c:
19107 GstVaapiObject: initialize the derived object data with init() hook.
19108 Call the subclass .init() function in gst_vaapi_object_new(), if
19109 needed. The default behaviour is to zero initialize the subclass
19110 object data, then the .init() function can be used to initialize
19111 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
19112 Also fix the gst_vaapi_object_new() description, which was merely
19113 copied from GstVaapiMiniObject.
19114 https://bugzilla.gnome.org/show_bug.cgi?id=722757
19115 [changed to always zero initialize the subclass]
19116 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19118 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
19120 * gst/vaapi/gstvaapidecode.c:
19121 vaapidecode: make decoder work with playbin
19122 When playbin/decodebin builds the pipeline, it puts decoders and sinks
19123 into different bins and forwards the queries from bins to bins. So in
19124 the initials steps the pipeline is built iteratively by playbin and
19127 [filesrc] -> [typefind]
19128 [filesrc] -> [typefind] -> [demuxer]
19129 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
19130 At this point the decoder is asked for its SRC caps and it will make a
19131 choice based on what gst_pad_peer_query_caps() returns. The problem is
19132 that the caps returns at that point includes caps features like ANY,
19133 essentially because playbin can plug in additional elements like
19134 videoscale, videoconv or deinterlace.
19135 This patch adds a another call to
19136 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
19137 allocation, to make sure we asks the downstream elements when the
19138 entire pipeline has been built.
19139 https://bugzilla.gnome.org/show_bug.cgi?id=731645
19141 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19143 * gst/vaapi/gstvaapipostproc.c:
19144 vaapipostproc: don't let tmp_rect go out of scope.
19145 A compiler change showed me that tmp_rect went out of scope before
19146 it was used. Move it to the beginning of the function instead.
19147 https://bugzilla.gnome.org/show_bug.cgi?id=726363
19148 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19149 [added guards for GStreamer 0.10 builds]
19150 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19152 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19157 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19161 Drop references to deprecated plugins (vaapiupload, vaapidownload),
19162 mention that support for GStreamer 0.10 is deprecated, make overview
19163 more descriptive in certain aspects.
19165 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19170 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19174 build: mention that support for GStreamer 0.10 is deprecated.
19176 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19179 * gst/vaapi/gstvaapidecode.c:
19180 build: fix for GStreamer 0.10.
19182 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19184 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
19185 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
19186 * patches/videoparsers/series.frag:
19187 build: fix for GStreamer 1.0.x.
19189 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19191 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19192 decoder: h264: detect incorrectly paired fields in frames.
19193 When a DPB flush is required, e.g. at a natural and of stream or issued
19194 explicitly through an IDR, try to detect any frame left in the DPB that
19195 is interlaced but does not contain two decoded fields. In that case, mark
19196 the picture as having a single field only.
19197 This avoids a hang while decoding tv_cut.mkv.
19199 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19201 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19202 decoder: h264: simplify the DPB output process.
19203 Simplify the dpb_output() function to exclusively rely on the frame store
19204 buffer to output, since this is now always provided. Besides, also fix
19205 cases where split fields would not be displayed.
19206 This is a regression from f48b1e0.
19208 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19210 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
19211 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
19212 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
19213 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
19214 * patches/videoparsers/series.frag:
19215 h264parse: drop patches merged upstream.
19216 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
19217 0005-h264parse-introduce-new-state-tracking-variables.patch
19218 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
19219 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
19221 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19223 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19224 decoder: h264: fix memory leak in PPS.
19225 Cope with latest changes from codecparsers/h264. It is now required
19226 to explicitly clear the GstH264PPS structure as it could contain
19227 additional allocations (slice_group_ids).
19229 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19231 * ext/codecparsers:
19232 codecparsers: update to gst-vaapi-branch commit 2d53b69.
19233 c4ace00 h264parse: fix collection of access units to preserve config headers
19234 0f9f7c9 h264parse: improve conditions for skipping NAL units
19235 9ffb25c h264parse: introduce new state tracking variables
19236 64955d3 h264parse: fix and optimize NAL collection function
19237 13cd2a3 h264: clarifications and documentation fixes
19238 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
19239 18f0de0 h264: fix memory leak in GstH264PPS
19240 fdcb54c h264: fix typo in GstH264VUIParams description
19241 fd4dae9 vp8: move up built-in range decoder private data
19243 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19245 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19246 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19247 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19248 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19249 decoder: propagate MVC metadata ("view-id", head of multiview set).
19250 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
19251 bundle", and really expresses the first view component of a multi
19252 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
19254 Likewise, new API is exposed to retrieve the associated "view-id".
19256 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19258 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19259 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19260 decoder: propagate "one-field" flags.
19261 Allow decoders to set the "one-field" attribute when the decoded frame
19262 genuinely has a single field, or if the second field was mis-decoded but
19263 we still want to display the first field.
19265 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19267 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19268 decoder: output decoded frames only once.
19269 Make sure to output the decoded picture, and push the associated
19270 GstVideoCodecFrame, only once. The frame fully represents what needs
19271 to be output, included for interlaced streams. Otherwise, the base
19272 GstVideoDecoder class would release the frame twice.
19273 Anyway, the general process is to output decoded frames only when
19274 they are complete. By complete, we mean a full frame was decoded or
19275 both fields of a frame were decoded.
19277 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19279 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19280 decoder: h264: decode current picture earlier.
19281 Slightly optimize decoding process by submitting the current VA surface
19282 for decoding earlier to the hardware, and perform the reference picture
19283 marking process and DPB update process afterwards.
19284 This is a minor optimization to let the video decode engine kick in work
19285 earlier, thus improving parallel resources utilization.
19287 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19289 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19290 decoder: h264: fix output of second field when first field is not in DPB.
19291 Fix decoding of interlaced streams where a first field (e.g. B-slice)
19292 was immediately output and the current decoded field is to be paired
19293 with that former frame, which is no longer in DPB.
19294 https://bugzilla.gnome.org/show_bug.cgi?id=701340
19296 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19299 decoder: h264: slightly optimize the process to detect new pictures.
19300 Optimize the process to detect new pictures or start of new access
19301 units by checking if the previous NAL unit was the end of a picture,
19302 or the end of the previous access unit.
19304 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19306 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19307 decoder: h264: handle access unit ("au") optimization.
19308 Optimize parsing when buffers are supplied with access unit alignment.
19309 This helps determining faster when the end of an access unit is reached.
19311 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19313 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19314 decoder: h264: fix tracking of DPB size changes.
19315 Add support for MVC streams with multiple SPS and subset SPS headers
19316 emitted regularly, e.g. at around every I-frame. Track the maximum
19317 number of views in ensure_context() and really reset the DPB size to
19318 the expected value, always. i.e. even if it decreased. dpb_reset()
19319 only cares of ensuring the DPB allocation.
19321 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19324 decoder: h264: fix the DPB compaction process.
19325 Fix the compaction process when the DPB is cleared for a specific
19326 view, i.e. fix the process of filling in the holes resulting from
19327 removing frame buffers matching the current picture.
19329 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19331 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19332 encoder: h264: generate new SPS only when codec config changed.
19333 It is not necessary to periodically send SPS or subset SPS headers.
19334 This is up to the upper layer (e.g. transport layer) to decide on
19335 if/how to periodically submit those. For now, only generate new SPS
19336 or subset SPS headers when the codec config changed.
19337 Note: the upper layer could readily determine the config headers
19338 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
19339 https://bugzilla.gnome.org/show_bug.cgi?id=732083
19340 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19342 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19344 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19345 encoder: h264: track encoder config changes.
19346 Track and report when encoder configuration changed. For now, this covers
19347 resolution, profile/level and bitrate changes.
19349 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19351 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19352 encoder: h264: add pixel-aspect-ratio to VUI parameters.
19353 Report sample aspect ratio (SAR) as present, and make it match what
19354 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
19355 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
19357 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19359 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19360 encoder: h264: fix number of anchor and non-anchor reference pictures.
19361 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
19362 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
19365 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19367 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19368 encoder: h264: fix timing_info_present_flag value in subset SPS.
19369 When the seq_parameter_set_data() syntax structure is present in a subset
19370 sequence parameter set and vui_parameters_present_flag is equal to 1, then
19371 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
19373 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19375 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19376 encoder: h264: add cpbBrNalFactor values for MVC profiles.
19378 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19380 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19381 h264parse: fix detection of access unit boundaries for MVC.
19382 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
19383 this function is used to determine access unit boundaries, i.e. that
19384 is the key function for alignment=au output format generation.
19386 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19388 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
19389 * patches/videoparsers/series.frag:
19390 h264parse: fix collection of access units to preserve config headers.
19391 Always use a GstAdapter when collecting access units (alignment="au")
19392 in either byte-stream or avcC format. This is required to properly
19393 preserve config headers like SPS and PPS when invalid or broken NAL
19394 units are subsequently parsed.
19395 More precisely, this fixes scenario like:
19396 <SPS> <PPS> <invalid-NAL> <slice>
19397 where we used to reset the output frame buffer when an invalid or
19398 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
19399 preventing the next slice unit to be decoded, should this also
19400 represent any valid data.
19401 https://bugzilla.gnome.org/show_bug.cgi?id=732203
19403 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19405 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19406 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
19407 * patches/videoparsers/series.frag:
19408 h264parse: improve conditions for skipping NAL units.
19409 Carefully track cases when skipping broken or invalid NAL units is
19410 necessary. In particular, always allow NAL units to be processed
19411 and let that gst_h264_parse_process_nal() function decide on whether
19412 the current NAL needs to be dropped or not.
19413 This fixes parsing of streams with SEI NAL buffering_period() message
19414 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
19415 SPS NAL unit, among other cases too.
19416 Practical examples from the H.264 AVC conformance suite include
19417 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
19418 when parsing in stream-format=byte-stream,alignment=au mode.
19419 https://bugzilla.gnome.org/show_bug.cgi?id=732203
19421 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19423 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19424 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
19425 * patches/videoparsers/series.frag:
19426 h264parse: introduce new state tracking variables.
19427 Improve parser state tracking by introducing new flags reflecting
19428 it: "got-sps", "got-pps" and "got-slice". This is an addition for
19429 robustness purposes.
19430 Older have_sps and have_pps variables are kept because they have
19431 a different meaning. i.e. they are used for deciding on when to
19432 submit updated caps or not, and rather mean "have new SPS/PPS to
19435 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19437 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
19438 * patches/videoparsers/series.frag:
19439 h264parse: default to byte-stream/nalu format (Annex B).
19440 Always default to stream-format=byte-stream,alignment=nalu if avcC
19441 format was not detected. This is the natural stream format specified
19442 in the standard (Annex.B): a series of NAL units prefixed with the
19444 https://bugzilla.gnome.org/show_bug.cgi?id=732167
19446 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19448 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
19449 * patches/videoparsers/series.frag:
19450 h264parse: fix and optimize NAL collection function.
19451 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
19452 NAL unit. We don't want to parse the full NAL unit, but only the
19453 header bytes and possibly the first RBSP byte for identifying the
19454 first_mb_in_slice syntax element.
19455 Also fix check for failure when returning from that function. The
19456 only success condition for that is GST_H264_PARSER_OK, so use it.
19457 https://bugzilla.gnome.org/show_bug.cgi?id=732154
19459 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19461 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19462 encoder: h264: fix NAL unit types in packed headers.
19463 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
19464 slice header (nal_unit_type = 1 or 5) only for the base view. In non
19465 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
19466 is required, with an appropriate nal_unit_header_mvc_extension() in
19467 the NAL header bytes.
19468 https://bugzilla.gnome.org/show_bug.cgi?id=732083
19470 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19472 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19473 encoder: h264: add missing field in packed Subset SPS header.
19474 Write the missing num_level_values_signalled_minus1 syntax element
19475 into the packed header for subset sequence parameter set.
19476 https://bugzilla.gnome.org/show_bug.cgi?id=732083
19478 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19480 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19481 decoder: h264: fix marking of non-reference picture into DPB.
19482 Fix search for a picture in the DPB that has a lower POC value than
19483 the current picture. The dpb_find_lowest_poc() function will return
19484 a picture with the lowest POC in DPB and that is marked as "needed
19485 for output", but an additional check against the actual POC value
19486 of the current picture is needed.
19487 This is a regression from 1c46990.
19488 https://bugzilla.gnome.org/show_bug.cgi?id=732130
19490 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19492 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19493 decoder: h264: fix DPB clear when no decoding actually started.
19494 Fix dpb_clear() to clear previous frame buffers only if they actually
19495 exist to begin with. If the decoder bailed out early, e.g. when it
19496 does not support a specific profile, that array of previous frames
19497 might not be allocated beforehand.
19499 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19501 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19502 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
19503 * gst/vaapi/gstvaapidecode.c:
19504 decoder: h264: add support for NALU "alignment" optimization.
19505 We can avoid scanning for start codes again if the bitstream is fed
19506 in NALU chunks. Currently, we always scan for start codes, and keep
19507 track of remaining bits in a GstAdapter, even if, in practice, we
19508 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
19510 https://bugzilla.gnome.org/show_bug.cgi?id=723284
19511 [use gst_adapter_available_fast() to determine the top buffer size]
19512 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19514 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19516 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19517 decoder: h264: fix caps to report interlace-mode accordingly.
19518 The `vaapipostproc' element could never determine if the H.264 stream
19519 was interlaced, and thus always assumed it to be progressive. Fix the
19520 H.264 decoder to report interlace-mode accordingly, thus allowing the
19521 vaapipostproc element to automatically enable deinterlacing.
19523 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19525 * gst/vaapi/gstvaapipostproc.c:
19526 vaapipostproc: don't crash with dynamic framerate (0/1).
19527 Avoid reaching an assert if dynamic framerates (0/1) are used. One
19528 way to solve this problem is to just stick field_duration to zero.
19529 However, this means that, in presence of interlaced streams, the
19530 very first field will never be displayed if precise presentation
19531 timestamps are honoured.
19532 https://bugzilla.gnome.org/show_bug.cgi?id=729604
19534 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19536 * gst/vaapi/gstvaapipostproc.c:
19537 vaapipostproc: create filter surface pool if it does not exist yet.
19538 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
19539 recreating filter_pool. Unfortunately, this also meant it didn't create
19540 it if it did not exist.
19541 Fix it to always create the buffer pool if it does not exist.
19542 https://bugzilla.gnome.org/show_bug.cgi?id=723834
19543 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19545 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
19547 * gst/vaapi/gstvaapipostproc.c:
19548 vaapipostproc: reset deinterlacer state when there is a discontinuity.
19549 Reset deinterlacer state, i.e. past reference frames used for advanced
19550 deinterlacing, when there is some discontinuity detected in the course
19551 of processing source buffers.
19552 This fixes support for advanced deinterlacing when a seek occurred.
19553 https://bugzilla.gnome.org/show_bug.cgi?id=720375
19554 [fixed type of pts_diff variable, fetch previous buffer PTS from the
19555 history buffer, reduce heuristic for detecting discontinuity]
19556 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19558 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19560 * gst/vaapi/gstvaapipostproc.c:
19561 vaapipostproc: add support for crop regions in VPP mode.
19562 Apply video cropping regions stored in GstVideoCropMeta, or in older
19563 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
19564 the crop meta are already propagated to the output buffers.
19565 https://bugzilla.gnome.org/show_bug.cgi?id=720730
19567 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19569 * gst/vaapi/gstvaapipostproc.c:
19570 vaapipostproc: make deinterlace-mode behave as expected.
19571 deinterlace-mode didn't behave in the way you'd expect if you have
19572 past experience of the deinterlace element. There were two bugs:
19573 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
19574 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
19575 Fix these up, and add assertions and error messages to detect cases that
19577 https://bugzilla.gnome.org/show_bug.cgi?id=726361
19578 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19579 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19581 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
19583 * gst/vaapi/gstvaapidecode.c:
19584 vaapidecode: do not discard video info props when the format changed.
19585 gst_video_info_set_format() does not preserve video info properties. In
19586 order to keep important information in the caps such as interlace mode,
19587 framerate, pixel aspect ratio, ... we need to manually copy back those
19588 properties after setting the new video format.
19589 https://bugzilla.gnome.org/show_bug.cgi?id=722276
19591 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
19593 * gst/vaapi/gstvaapidecode.c:
19594 vaapidecode: plug a memory leak.
19595 It can happen that there is a pool provided that does not advertise
19596 the vappivideometa. We should unref that pool before using our own.
19597 Discovered with vaapidecode ! {glimagesink,cluttersink}
19598 https://bugzilla.gnome.org/show_bug.cgi?id=724957
19599 [fixed compilation by adding the missing semi-colon]
19600 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19602 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19604 * gst/vaapi/gstvaapidecode.c:
19605 vaapidecode: parse source data until a frame is obtained.
19606 Parse any pending data until a complete frame is obtained. This is a
19607 memory optimization to avoid expansion of video packets stuffed into
19608 the GstAdapter, and a fix to EOS condition to detect there is actually
19609 pending data that needs to be decoded, and subsequently output.
19610 https://bugzilla.gnome.org/show_bug.cgi?id=731831
19612 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19614 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19615 encoder: h264: fix multiple slices support in packed headers mode.
19616 Handle packedi slice headers and packed raw data on a per-slice basis,
19617 which is necessary for multi slice encoding.
19619 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19621 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19622 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19623 encoder: add infrastructure for per-slice handling of packed headers.
19624 The packed slice header and packed raw data need to be paired with
19625 the submission of VAEncSliceHeaderParameterBuffer. So handle them
19626 on a per-slice basis insted of a per-picture basis.
19627 [removed useless initializer]
19628 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19630 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19632 * gst/vaapi/gstvaapisink.c:
19633 vaapisink: fix initialization with "drm" display type.
19634 Force early initializatin of the GstVaapiDisplay so that to make sure
19635 that the sink element display object is presented first to upstream
19636 elements, as it will be correctly featuring the requested display type
19638 Otherwise, we might end up in situations where a VA/X11 display is
19639 initialized in vaapidecode, then we try VA/DRM display in vaapisink
19640 (as requested by the "display" property), but this would cause a failure
19641 because we cannot acquire a DRM display that was previously acquired
19642 through another backend (e.g. VA/X11).
19644 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19646 * gst/vaapi/gstvaapipluginbase.c:
19647 plugins: fix initialization with foreign context.
19648 When a new display is settled through GstElement::set_context() (>= 1.2),
19649 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
19650 associated display type.
19652 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19657 * gst/vaapi/Makefile.am:
19658 * gst/vaapi/gstvaapiparse.c:
19659 * gst/vaapi/gstvaapiparse.h:
19660 * patches/Makefile.am:
19661 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
19662 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
19663 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19664 * patches/videoparsers/Makefile.am:
19665 * patches/videoparsers/series.frag:
19666 plugins: add built-in video parsers as "vaapiparse" element.
19667 The built-in video parsers elements are built into a single DSO named
19668 libgstvaapi_parse.so. The various video parsers could be accessed as
19670 For now, this only includes a modified version of h264parse so that to
19671 support H.264 MVC encoded streams.
19673 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19675 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19676 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
19677 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
19678 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
19680 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19682 * ext/codecparsers:
19683 codecparsers: update to gst-vaapi-branch commit d6325ac.
19684 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
19685 d2f965a h264parse: set field_pic_flag when parsing a slice header
19686 24c15b8 Import h264parse
19687 a9283e5 bytereader: Use concistant derefence method
19688 a8252c6 bytereader: Use pointer instead of index access
19689 b1bebfc Import GstBitReader and GstByteReader
19690 2f58788 h264: recognize SVC NAL units
19691 4335da5 h264: fix SPS copy code for MVC
19692 cf9b6dc h264: fix quantization matrix conversion routine names
19693 b11ce2a h264: add gst_h264_video_calculate_framerate()
19694 126dc6f add C++ guards for MPEG-4 and VP8 parsers
19696 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19698 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19699 decoder: h264: factor out DPB pruning for MVC.
19700 Factor out the removal process of unused inter-view only reference
19701 pictures from the DPB, prior to the possible insertion of the current
19703 Ideally, the compiler could still opt for generating two loops. But
19704 at least, the code is now clearer for maintenance.
19706 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19709 decoder: h264: clean-ups.
19710 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
19711 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
19713 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19715 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19716 decoder: h264: improve pruning of unused MVC inter-view frames.
19717 Improve process for the removal of pictures from DPB before possible
19718 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
19719 reference components. In particular, handle cases where picture to be
19720 inserted is not the last one of the access unit and if it was already
19721 output and is no longer marked as used for reference, including for
19722 decoding next view components within the same access unit.
19724 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19726 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19727 decoder: h264: improve DPB bumping process for MVC.
19728 While invoking the DPB bumping process in presence of many views,
19729 it could be necessary to output previous pictures that are ready,
19730 in a whole. i.e. emitting all view components from the very first
19731 view order index zero to the very last one in its original access
19732 unit; and not starting from the view order index of the picture
19733 that caused the DPB bumping process to be invoked.
19734 As a reminder, the maximum number of frames in DPB for MultiView
19735 High profile with more than 2 views is not necessarily a multiple
19736 of the number of views.
19737 This fixes decoding of MVCNV-4.264.
19739 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19741 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19742 decoder: h264: fix inter-view references array growth.
19743 Let the utility layer handle dynamic growth of the inter-view pictures
19744 array. By definition, setting a new size to the array will effectively
19745 grow the array, but would also fill in the newly created elements with
19746 empty entries (NULL), thus also increasing the reported length, which
19749 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19751 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19752 decoder: h264: reduce ReferenceFrames entries to the essential set.
19753 When decoding Multiview High profile streams with a large number of
19754 views, it is not possible to make the VAPictureParameterBufferH264.
19755 ReferenceFrames[] array hold the complete DPB, with all possibly
19756 active pictures to be used for inter-view prediction in the current
19758 So reduce the scope of the ReferenceFrames[] array to only include
19759 the set of reference pictures that are going to be used for decoding
19760 the current picture. Basically, this is a union of all RefPicListX[]
19761 array, for all slices constituting the decoded picture.
19763 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19765 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19766 decoder: h264: fix MVC inter-view prediction process.
19767 The inter-view reference components and inter-view only reference
19768 components that are included in the reference picture lists shall
19769 be considered as not being marked as "used for short-term reference"
19770 or "used for long-term reference". This means that reference flags
19771 should all be removed from VAPictureH264.flags.
19772 This fixes decoding of MVCNV-2.264.
19774 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19776 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19777 decoder: h264: fix detection of profile changes for MVC.
19778 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
19779 be careful to detect profiles changes and not reset the underlying
19780 VA context erroneously. In MVC situations, we could indeed get a
19781 profile_idc change for every SPS that gets activated, alternatively
19782 (base-view -> non-base view -> base-view, etc.).
19783 An improved fix would be to characterize the exact profile to use
19784 once and for all when SPS NAL units are parsed. This would also
19785 allow for fallbacks to a base-view decoding only mode.
19787 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19789 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19790 encoder: h264: drop extraneous definitions.
19791 Re-use definitions from the codecparser headers instead of duplicating
19792 them here again. That covers NALU definitions and slice types.
19794 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19796 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19797 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
19798 https://bugzilla.gnome.org/show_bug.cgi?id=727418
19800 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19802 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19803 encoder: h264: don't allow CABAC with Extended profile.
19804 The H.264 specification does not support CABAC entropy coding for the
19806 https://bugzilla.gnome.org/show_bug.cgi?id=727418
19808 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19810 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19811 encoder: h264: use packed headers mode for MVC encoding.
19812 Exclusively use VA drivers that support raw packed headers for encoding.
19813 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
19814 provides for better compatibility accross the various VA drivers and HW
19815 generations since no particular API is needed beyond what readily exists.
19817 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19819 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19820 encoder: h264: add support for packed slice headers.
19821 https://bugzilla.gnome.org/show_bug.cgi?id=722905
19823 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19825 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19826 encoder: h264: store subset sps to generate the codec-data
19827 Store the SubsetSPS nal unit which we need for MVC specific
19828 codec_data generation.
19830 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19832 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19833 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
19834 Since we are encoding each view independently from each other, we
19835 need a higher number of pre-allocated surfaces to be used as the
19836 reconstructed frames. For Stereo High profile encoding, this means
19837 to effectively double the number of frames to be stored in the DPB.
19839 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
19841 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19842 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
19843 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
19844 * gst/vaapi/gstvaapiencode_h264.c:
19845 encoder: h264: add initial support for H.264 Stereo High profile.
19846 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
19847 for non-base-view streams encoding, and the usual SPS, PPS and Slice
19848 NALs for base-view encoding.
19849 The H.264 Stereo High profile encoding mode will be turned on when the
19850 "num-views" parameter is set to 2. The source (raw) YUV frames will be
19851 considered as Left/Right view, alternatively.
19852 Each of the two views has its own frames reordering pool and reference
19853 frames list management system. Inter-view references are not supported
19854 yet, so the views are encoded independently from each other.
19855 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
19856 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
19857 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19859 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
19861 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19862 encoder: h264: wrap pools for refs and frames reordering.
19863 Create structures to maintain the reference frames list (RefPool) and
19864 frames reordering (ReorderPool) logic.
19865 This is a prerequisite for H.264 MVC support.
19866 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
19868 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
19870 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19871 encoder: h264: add provisional support for subset SPS headers.
19872 Add provisions to write subset SPS headers to the bitstream in view
19873 to supporting the H.264 MVC specification.
19874 This assumes the libva "staging" branch is in use.
19875 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
19877 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
19879 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19880 * gst-libs/gst/vaapi/gstvaapiutils.c:
19881 utils: add H.264 MVC profiles.
19882 Add "MultiView High" and "Stereo High" definitions.
19883 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
19884 [require VA-API >= 0.35.2 for MVC profiles]
19885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19887 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19889 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19890 * gst-libs/gst/vaapi/gstvaapiutils.c:
19891 utils: only enable VP8 profiles for newer VA-API versions.
19892 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
19893 involving VP8 codec on earlier versions of the API.
19895 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19897 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19898 decoder: h264: compute view ids only once per slice.
19899 Optimize lookups of view ids / view order indices by caching the result
19900 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
19901 terribly simplifies is_new_access_unit() and find_first_field() functions.
19903 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19905 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19906 decoder: h264: add support for MVC interlaced streams.
19907 Fix support for MVC Stereo High profile streams with interlaced frames.
19908 Also improve the detection logic of the first field.
19910 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19912 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19913 decoder: h264: add MVC profiles compatibility logic.
19914 Add safe fallbacks for MVC profiles:
19915 - all MultiView High profile streams with 2 views at most can be decoded
19916 with a Stereo High profile compliant decoder ;
19917 - all Stereo High profile streams with only progressive views can be
19918 decoded with a MultiView High profile compliant decoder ;
19919 - all drivers that support slice-level decoding could normally support
19920 MVC profiles when the DPB holds at most 16 frames.
19922 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19924 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19925 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19926 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19927 decoder: h264: add initial support for MVC.
19928 https://bugzilla.gnome.org/show_bug.cgi?id=721772
19930 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19932 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19933 decoder: h264: dynamically allocate the DPB.
19934 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
19935 for supporting the MVC allocation requirements.
19937 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19939 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19940 decoder: h264: fix detection of access unit boundaries.
19941 In order to have a stricter conforming implementation, we need to carefully
19942 detect access unit boundaries. Additional operations could be necessary to
19943 perform at those boundaries.
19945 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19947 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19948 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
19949 Detect the first VCL NAL unit of a picture for MVC, based on the
19950 view_id as per H.7.4.1.2.4. Note that we only need to detect new
19952 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19954 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19956 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19957 decoder: h264: properly handle Prefix NAL units.
19958 Always cache the previous NAL unit so that we could check whether
19959 there is a Prefix NAL unit immediately preceding the current slice
19960 or IDR NAL unit. In that case, the NAL unit metadata is copied into
19961 the current NAL unit. Otherwise, some default values are inferred,
19962 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
19963 [infer default values for slice if previous NAL was not a Prefix]
19964 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19966 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
19968 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19969 decoder: h264: add support for MVC base views.
19970 Allow decoding for base views of MVC encoded streams. For now, just skip
19971 the slice extension and prefix NAL units, and skip non-base view frames.
19972 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
19973 [fixed memory leak, improved check for MVC NAL units]
19974 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19976 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19978 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19979 decoder: h264: simplify storage of decoded picture into DPB.
19980 Factor out process by which the decoded picture with the lowest POC
19981 is found, and possibly output. Likewise, the storage and marking of
19982 a reference decoded, or non-reference decoded picture, into the DPB
19983 could also be simplified as they mostly share the same operations.
19985 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19987 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19988 decoder: h264: minor clean-ups.
19989 Make init_picture_ref_lists() more consistent with other functions
19990 related to the reference marking process by supplying the current
19991 picture as argument.
19993 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19995 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19996 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19997 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19998 display: add utility function to query VA driver name.
19999 Add gst_vaapi_display_get_vendor_string() helper function to query
20000 the underlying VA driver name. The display object owns the resulting
20001 string, so it shall not be deallocated.
20002 That function is thread-safe. It could be used for debugging purposes,
20005 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20007 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20008 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20009 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20010 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20011 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20012 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
20013 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
20014 display: make cache maintenance really MT-safe.
20015 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
20016 environments. This makes sure the display cache is also consistent
20017 during the whole display creation process. In the former implementation,
20018 there were risks that display cache got updated in another thread.
20020 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20022 * gst-libs/gst/vaapi/gstvaapicontext.c:
20023 context: allow dynamic growth of VA surfaces pool.
20024 Add support for dynamic growth of the VA surfaces pool. For decoding,
20025 this implies the recreation of the underlying VA context, as per the
20026 requirement from VA-API. Besides, only increases are supported, not
20029 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20031 * gst-libs/gst/vaapi/gstvaapicontext.c:
20032 context: reset VA context if VA surfaces set changed.
20033 It is a requirement from VA-API specification that the VA context got
20034 from vaCreateContext(), for decoding purposes, binds the supplied set
20035 of VA surfaces. This means that if the set of VA surfaces is to be
20036 changed for the current decode session, then the VA context needs to
20037 be recreated with the new set of VA surfaces.
20039 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20041 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20042 decoder: h264: fix assignment of LongTermFrameIdx.
20043 Complement fix committed as e95a42e.
20044 The H.264 AVC standard has to say: if the field is part of a reference
20045 frame or a complementary reference field pair, and the other field of
20046 the same reference frame or complementary reference field pair is also
20047 marked as "used for long-term reference", the reference frame or
20048 complementary reference field pair is also marked as "used for long-term
20049 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
20050 This fixes decoding of MR9_BT_B in strict mode.
20051 https://bugs.freedesktop.org/show_bug.cgi?id=64624
20052 https://bugzilla.gnome.org/show_bug.cgi?id=724518
20054 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20056 * gst-libs/gst/vaapi/gstvaapicontext.c:
20057 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20058 * gst-libs/gst/vaapi/gstvaapiutils.c:
20059 * gst-libs/gst/vaapi/gstvaapiutils.h:
20060 decoder: h264: properly support grayscale formats.
20061 Request the correct chroma format for decoding grayscale streams.
20062 i.e. make lookups of the VA chroma format more generic, thus possibly
20063 supporting more formats in the future.
20064 This means that, if a VA driver doesn't support grayscale formats,
20065 it is now going to fail. We cannot safely assume that maybe grayscale
20066 was implemented on top of some YUV 4:2:0 with the chroma components
20069 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20071 * gst-libs/gst/vaapi/gstvaapifilter.c:
20072 * gst-libs/gst/vaapi/gstvaapifilter.h:
20073 * tests/test-filter.c:
20074 build: fix source file modes.
20075 A few source files are marked executable in error - fix them
20076 https://bugzilla.gnome.org/show_bug.cgi?id=723748
20077 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20079 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20082 * gst-libs/gst/vaapi/Makefile.am:
20083 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
20084 * gst/vaapi/gstvaapidecode.c:
20085 build: fix conditional compilation of VP8 decoder.
20086 https://bugzilla.gnome.org/show_bug.cgi?id=729170
20087 [added check for VASliceParameterBufferBase fields]
20088 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20090 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20092 * gst-libs/gst/codecparsers/Makefile.am:
20093 build: fix make dist for codecparsers.
20095 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20097 * ext/codecparsers:
20098 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
20099 h264: fix parsing of slice groups for map type = 2
20101 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20103 * ext/codecparsers:
20104 codecparsers: update to gst-vaapi branch commit f44edfc.
20105 h264: fix derivation of default scaling lists
20107 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
20109 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20110 decoder: h264: fix long-term reference picture marking process.
20111 Fix reference picture marking process with memory_management_control_op
20112 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
20113 picture, or the current picture.
20114 This fixes decoding of FRExt_MMCO4_Sony_B.
20115 https://bugs.freedesktop.org/show_bug.cgi?id=64624
20116 https://bugzilla.gnome.org/show_bug.cgi?id=724518
20117 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
20118 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20120 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20122 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20123 decoder: h264: fix initialization of RefPicLists for multiple slices.
20124 The initialization of reference picture lists (8.2.4.2) applies to all
20125 slices. So, the RefPicList0/1 lists need to be constructed prior to
20126 each slice submission to the HW decoder.
20127 This fixes decoding of video sequences where frames are encoded with
20128 multiple slices of different types, e.g. 4 slices in this order I, P,
20129 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
20130 https://bugzilla.gnome.org/show_bug.cgi?id=724518
20132 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
20134 * ext/codecparsers:
20135 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20136 decoder: h264: skip SPS extension and auxiliary slice NALs.
20137 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
20138 are present in a video, decoders shall perform the (optional) decoding
20139 process specified for these NAL units or shall ignore them (7.4.1).
20140 Implement option 2 (skip) for now, as alpha composition is not
20141 supported yet during the decoding process.
20142 This fixes decoding of the primary coded video in alphaconformanceG.
20143 https://bugzilla.gnome.org/show_bug.cgi?id=703928
20144 https://bugzilla.gnome.org/show_bug.cgi?id=728869
20145 https://bugzilla.gnome.org/show_bug.cgi?id=724518
20146 [skip NAL units earlier, i.e. at parsing time]
20147 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20149 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
20151 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20152 decoder: h264: fix slice data bit offset with MVC NAL units.
20153 When MVC slice NAL units (coded slice extension and prefix NAL) are
20154 present, the number of NAL header bytes is 3, not 1 as usual.
20155 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
20156 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20158 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20160 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20161 decoder: h264: fix activation of picture and sequence parameters.
20162 At the time the first VCL NAL unit of a primary coded picture is found,
20163 and if that NAL unit was parsed to be an SPS or PPS, then the entries
20164 in the parser may have been overriden. This means that, when the picture
20165 is to be decoded, slice_hdr->pps could point to an invalid (the next)
20167 So, one way to solve this problem is to not use the parser PPS and
20168 SPS info but rather maintain our own activation chain in the decoder.
20169 https://bugzilla.gnome.org/show_bug.cgi?id=724519
20170 https://bugzilla.gnome.org/show_bug.cgi?id=724518
20172 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20174 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20175 decoder: h264: retain SEI messages until the end of frame.
20176 Retain the SEI messages that were parsed from the access unit until we
20177 have completely decoded the current frame. This is done so that we can
20178 peek at that data whenever necessary during decoding. e.g. for exposing
20179 3D stereoscopic information at a later stage.
20181 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20183 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20184 decoder: h264: add support for grayscale encoded clips.
20185 Fix support for grayscale encoded video clips, and possibly others if
20186 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
20187 the decision that a surface with the desired chroma format is not
20188 supported to the actual VA driver implementation.
20189 https://bugzilla.gnome.org/show_bug.cgi?id=728144
20191 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20193 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20194 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20195 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20196 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20197 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20198 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
20199 decoder: default to YUV 4:2:0 VA surfaces.
20200 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
20201 make sure all codecs use YUV 4:2:0 output format for now, by default.
20203 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20205 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20206 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20207 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20208 decoder: re-indent GstVaapiDecoder base object.
20210 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20212 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20213 encoder: derive chroma type from video format.
20214 Cope with previous VA context change to derive the correct surface chroma
20215 type from the input video format.
20217 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20219 * gst-libs/gst/vaapi/gstvaapicontext.c:
20220 * gst-libs/gst/vaapi/gstvaapicontext.h:
20221 context: add support for non-YUV 4:2:0 formats.
20222 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
20223 for the upper layer to specify the desired chroma type. If the chroma
20224 type field is not set (or yields zero), then YUV 4:2:0 format is used
20227 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20229 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
20230 vp8: fix per-segment deblocking filter level in relative mode.
20231 Fix possible bug when a per-segment deblocking filter level value
20232 needs to be set in non-absolute mode, i.e. when the loop filter update
20233 value is negative in delta mode.
20234 Also clamp the resulting filter level value to 0..63 range.
20236 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20238 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
20239 vp8: fix check for disabling the loop filter (again).
20240 Improve condition to disable the loop filter. The previous heuristic
20241 used to check all filter levels, for all segments. It turns out that
20242 only the base filter_level value defined in the frame header needs
20244 This fixes 00-comprehensive-013.
20246 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20248 * gst-libs/gst/codecparsers/Makefile.am:
20249 * gst/vaapi/Makefile.am:
20250 build: fix make dist with certain conditionals not met.
20251 Fix generation of source tarballs when certain conditionals are not
20252 met. e.g. always include all buildable codecparsers sources in the
20253 distribution tarball, fix plug-in element sources set to include X11
20256 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20259 build: add missing files for GStreamer 0.10.
20260 Add missing GstVideoEncoder implementation files to fix build with ancient
20261 GStreamer 0.10 stack.
20262 https://bugzilla.gnome.org/show_bug.cgi?id=723964
20264 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20267 build: add missing files for VP8 bitstream parser.
20268 Fix make dist for building the VP8 bitstream parser.
20270 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20273 * ext/libvpx/Makefile.am:
20274 * gst-libs/gst/codecparsers/Makefile.am:
20275 vp8: allow compilation without the built-in libvpx.
20276 The built-in libvpx serves multiple purposes, among which the most
20277 important ones could be: track the most up-to-date, and optimized,
20278 range decoder; allow for future hybrid implementations (non-VLD);
20279 and have a completely independent range decoder implementation.
20281 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20283 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
20284 vp8: propagate PTS from demux frame.
20285 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
20286 or parser would already have determined the PTS from a previous stage.
20288 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20291 * debian.upstream/libgstvaapi.install.in:
20292 * ext/libvpx/Makefile.am:
20293 * ext/libvpx/sources.frag:
20294 * gst-libs/gst/codecparsers/Makefile.am:
20295 vp8: fix compilation with built-in libvpx.
20296 Apply correct patch from fd.o #722760 to fix several issues: update the
20297 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
20300 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20306 * ext/libvpx/Makefile.am:
20307 * ext/libvpx/gstlibvpx.c:
20308 * ext/libvpx/gstlibvpx.h:
20309 * ext/libvpx/libgstcodecparsers_vpx.vers:
20310 * ext/libvpx/sources.frag:
20311 * ext/libvpx/upstream:
20312 * gst-libs/gst/codecparsers/Makefile.am:
20313 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
20314 vp8: use range decoder from libvpx.
20315 Add libvpx submodule that tracks the upstream version 1.3.0. This is
20316 needed to build a libgstcodecparsers_vpx.so library with all symbols
20317 placed into the GSTREAMER namespace.
20319 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20321 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
20322 vp8: fix check for disabling the loop filter.
20324 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
20328 * gst-libs/gst/codecparsers/Makefile.am:
20329 * gst-libs/gst/vaapi/Makefile.am:
20330 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
20331 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
20332 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20333 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20334 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
20335 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
20336 * gst-libs/gst/vaapi/gstvaapiprofile.c:
20337 * gst-libs/gst/vaapi/gstvaapiprofile.h:
20338 * gst/vaapi/gstvaapidecode.c:
20339 Add initial VP8 decoder.
20340 https://bugzilla.gnome.org/show_bug.cgi?id=722761
20341 [complete overhaul, fixed support for resolution changes]
20342 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20344 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20346 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20347 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
20348 The gst_h264_parse_parse_sei() function now returns an array of SEI
20349 messages, instead of a single SEI message. Reason: it is allowed to
20350 have several SEI messages packed into a single SEI NAL unit, instead
20351 of multiple NAL units.
20353 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20355 * ext/codecparsers:
20356 codecparsers: update to gst-vaapi-branch commit a454f86.
20357 b2eb5f6 vp8: rename dboolhuff symbols
20358 b74a881 vp8: add GStreamer native utilities
20359 2940ac6 add VP8 bitstream parser
20361 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20363 * ext/codecparsers:
20364 codecparsers: update to gst-vaapi-branch commit d459bc5.
20365 d459bc5 h264: set framerate even for interlaced videos
20366 c78b82c h264: add support for Recovery Point SEI message
20367 7693bac h264: add support for Frame Packing Arrangement SEI message
20368 31fafa7 h264: add support for Stereo Video Information SEI message
20369 8b113a6 h264: parse seq_parameter_set_mvc_extension()
20370 040f9b8 h264: parse MVC syntax elements
20371 cc18ef3 h264: add nal_reader_skip_long() helper
20372 7e76a48 h264: fix slice_header() parsing for MVC
20373 caf46d8 h264: add gst_h264_parse_nalu_header() helper
20374 f75074e h264: add gst_h264_parse_sps_data() helper
20375 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
20376 4e36737 h264: fix skipping of unsupported SEI messages
20377 5300766 h264: fix SEI buffering_period() parsing
20379 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20381 * ext/codecparsers:
20382 * gst-libs/gst/codecparsers/Makefile.am:
20383 codecparsers: update to gst-vaapi-branch commit 8fadf40.
20384 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
20385 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
20386 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
20387 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
20388 8ec5816 h265: Fix segfault when parsing HRD parameter
20389 5b1730f h265: Fix segfault when parsing VPS
20390 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
20391 7ba641d h265: Fix debug output
20392 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
20394 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20396 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20397 decoder: h264: fix robustness patch for bytestream format.
20398 Fix parser and decoder state to sync at the right locations. This is
20399 because we could reset the parser state, while the decoder state was
20400 not copied yet, e.g. when parsing several NAL units from multiple frames
20401 whereas the current frame was not decoded yet.
20402 This is a regression brought in by commit 6fe5496.
20404 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20407 * pkgconfig/Makefile.am:
20408 * pkgconfig/gstreamer-vaapi-drm.pc.in:
20409 * pkgconfig/gstreamer-vaapi-glx.pc.in:
20410 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
20411 * pkgconfig/gstreamer-vaapi-x11.pc.in:
20412 build: fix pkgconfig file names (again).
20413 It turns out it is more convenient to have only pkgconfig files named
20414 after the installed GStreamer API version (1.0) instead of using all
20415 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
20416 altogether anyway, so align pkgconfig file names to that.
20418 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20420 * debian.upstream/libgstvaapi-dev.install.in:
20421 * gst-libs/gst/vaapi/Makefile.am:
20422 * pkgconfig/gstreamer-vaapi.pc.in:
20423 build: fix packaging for GStreamer 1.2.
20424 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
20425 the pkgconfig version (1.0) instead of the intended API version (1.2).
20426 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
20427 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
20429 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20432 Bump version for development.
20434 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20436 * debian.upstream/control.in:
20437 debian: fix trailing whitespace in description.
20439 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20441 * debian.upstream/control.in:
20442 * debian.upstream/copyright:
20443 debian: fix package description.
20444 Try to improve package description for the compiled plug-in elements
20445 available in there. e.g. only display vaapidownload and vaapiupload
20446 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
20447 encoding is enabled, etc.
20448 Also increase the copyright notice date.
20450 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20452 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20453 build: fix warnings on 64-bit platforms.
20455 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20457 * gst-libs/gst/vaapi/gstvaapicontext.c:
20458 * gst-libs/gst/vaapi/gstvaapiutils.c:
20459 build: fix for older versions of VA-API (< 0.34.0).
20460 Fix build with older versions of VA-API (< 0.34.0), or versions without
20461 good enough headers for encoding support for instance.
20463 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20469 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20473 VA-API up to 0.34.0 is actually supported. Mention new video encoding
20474 support. Update copyright years, list of supported Intel HD Graphics
20477 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20482 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20484 * tests/test-filter.c:
20485 tests: test-filter: fix "deinterlace" option parse.
20486 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
20487 string was provided, i.e. if it remained set to NULL.
20489 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20491 * gst-libs/gst/vaapi/Makefile.am:
20492 * gst-libs/gst/vaapi/gstvaapicontext.c:
20493 * gst-libs/gst/vaapi/gstvaapicontext.h:
20494 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20495 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
20496 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
20497 libs: factor out usages of vaGetConfigAttributes().
20498 Add gst_vaapi_get_config_attribute() helper function that takes a
20499 GstVaapiDisplay and the rest of the arguments with VA types. The aim
20500 is to have thread-safe VA helpers by default.
20502 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20504 * gst-libs/gst/vaapi/gstvaapiutils.c:
20505 * gst-libs/gst/vaapi/gstvaapiutils.h:
20506 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
20507 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
20508 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
20509 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
20510 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
20511 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
20512 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
20513 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
20514 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
20515 libs: re-indent all source code related to VA utilities.
20517 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20519 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
20520 libs: add missing file (libgstvaapi_priv_check.h).
20522 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20524 * gst-libs/gst/vaapi/gstvaapicontext.c:
20525 * gst-libs/gst/vaapi/gstvaapicontext.h:
20526 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20527 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20528 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
20529 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
20530 encoder: notify the encoder of the submitted packed headers.
20531 Make sure to configure the encoder with the set of packed headers we
20532 intend to generate and submit. i.e. make selection of packed headers
20533 to submit more robust.
20535 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20537 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20538 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20539 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
20540 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
20541 encoder: fix and factor out check for supported rate-control modes.
20542 Cache the first compatible GstVaapiProfile found if the encoder is not
20543 configured yet. Next, factor out the code to check for the supported
20544 rate-control modes by moving out vaGetConfigAttributes() to a separate
20545 function, while also making sure that the attribute type is actually
20546 supported by the encoder.
20547 Also fix the default set of supported rate control modes to not the
20548 "none" variant. It's totally useless to expose it at this point.
20550 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20552 * gst-libs/gst/vaapi/gstvaapicontext.c:
20553 * gst-libs/gst/vaapi/gstvaapicontext.h:
20554 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20555 context: move rate-control mode to encoder specific config.
20556 Move usage-specific config out of the common GstVaapiContextInfo.
20557 Create a specialized config for encoding and move rate-control mode
20560 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20562 * gst-libs/gst/vaapi/gstvaapicontext.c:
20563 * gst-libs/gst/vaapi/gstvaapicontext.h:
20564 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20565 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20566 context: introduce concept of usage.
20567 Introduce GstVaapiContextUsage so that to explicitly determine the
20568 usage of a VA context. This is useful in view to simplifying the
20569 creation of VA context for VPP too.
20571 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20573 * gst-libs/gst/vaapi/gstvaapicontext.c:
20574 context: fix get_attribute() value result.
20575 Unknown attributes, or attributes that are not supported for the given
20576 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
20577 So, return failure in this case.
20579 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20581 * gst-libs/gst/vaapi/Makefile.am:
20582 * gst-libs/gst/vaapi/gstvaapicontext.c:
20583 * gst-libs/gst/vaapi/gstvaapicontext.h:
20584 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
20585 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
20586 * gst-libs/gst/vaapi/gstvaapisurface.c:
20587 context: move overlay composition to separate files.
20588 Move GstVideoOverlayComposition handling to separate source files.
20589 This helps keeing GstVaapiContext core implementation to the bare
20590 minimal, i.e. simpy helpers to create a VA context and handle pool
20591 of associated VA surfaces.
20593 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20595 * gst-libs/gst/vaapi/gstvaapicontext.c:
20596 * gst-libs/gst/vaapi/gstvaapicontext.h:
20597 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20598 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20599 context: clean-ups. Strip down APIs.
20600 Improve documentation and debug messages. Clean-up APIs, i.e. strip
20601 them down to the minimal set of interfaces. They are private, so no
20602 need expose getters for instance.
20604 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20606 * gst-libs/gst/vaapi/gstvaapicontext.c:
20607 * gst-libs/gst/vaapi/gstvaapicontext.h:
20608 context: re-indent all GstVaapiContext related source code.
20610 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20612 * gst-libs/gst/vaapi/Makefile.am:
20613 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
20614 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20615 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
20616 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
20617 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
20618 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
20619 * gst-libs/gst/vaapi/gstvaapiutils.h:
20620 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
20621 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
20622 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
20623 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
20624 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20625 libs: check that private headers remain private.
20626 Make sure that libgstvaapi private headers remain internally used to
20627 build libgstvaapi libraries only. All header dependencies were reviewed
20628 and checks for IN_LIBGSTVAAPI definition were added accordingly.
20629 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
20632 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20635 Bump library major version.
20636 Bump the library major version due to API/ABI changes that occurred in
20637 the imaging API. In particular, GstVaapiDisplay interfaces no longer
20638 expose any GstCaps but provide GArray based ones e.g. to determine the
20639 set of supported decode/encode profiles.
20641 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20643 * gst-libs/gst/vaapi/glibcompat.h:
20644 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
20645 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
20646 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
20647 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
20648 * gst-libs/gst/vaapi/gstvaapicontext.c:
20649 * gst-libs/gst/vaapi/gstvaapicontext.h:
20650 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20651 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20652 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20653 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20654 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20655 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20656 * gst-libs/gst/vaapi/gstvaapiencoder.h:
20657 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20658 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
20659 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
20660 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
20661 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
20662 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
20663 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
20664 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
20665 * gst-libs/gst/vaapi/gstvaapifilter.c:
20666 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
20667 * gst-libs/gst/vaapi/gstvaapisurface.c:
20668 * gst-libs/gst/vaapi/gstvaapisurface.h:
20669 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20670 * gst-libs/gst/vaapi/gstvaapitypes.h:
20671 * gst-libs/gst/vaapi/gstvaapiutils.c:
20672 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
20673 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
20674 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
20675 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
20676 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
20677 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
20678 * gst-libs/gst/vaapi/gstvaapivalue.c:
20679 * gst-libs/gst/vaapi/gstvaapivalue.h:
20680 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20681 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20682 * gst/vaapi/gstvaapidecode.c:
20683 * gst/vaapi/gstvaapiencode.c:
20684 * gst/vaapi/gstvaapiencode.h:
20685 * gst/vaapi/gstvaapiencode_h264.c:
20686 * gst/vaapi/gstvaapiencode_h264.h:
20687 * gst/vaapi/gstvaapiencode_mpeg2.c:
20688 * gst/vaapi/gstvaapiencode_mpeg2.h:
20689 * gst/vaapi/gstvaapipluginbase.c:
20690 * gst/vaapi/gstvaapipluginutil.c:
20691 * gst/vaapi/gstvaapipluginutil.h:
20692 * gst/vaapi/gstvaapipostproc.c:
20693 * gst/vaapi/gstvaapipostproc.h:
20694 * gst/vaapi/gstvaapisink.c:
20695 * gst/vaapi/gstvaapisink.h:
20696 * gst/vaapi/gstvaapivideometa_texture.c:
20697 * tests/simple-decoder.c:
20698 legal: update copyright notice dates.
20700 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20702 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20703 * gst-libs/gst/vaapi/gstvaapiencoder.h:
20704 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20705 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
20706 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
20707 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
20708 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
20709 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
20710 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
20711 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
20712 * gst/vaapi/gstvaapiencode.c:
20713 * gst/vaapi/gstvaapiencode.h:
20714 * gst/vaapi/gstvaapiencode_h264.c:
20715 * gst/vaapi/gstvaapiencode_h264.h:
20716 * gst/vaapi/gstvaapiencode_mpeg2.c:
20717 * gst/vaapi/gstvaapiencode_mpeg2.h:
20718 legal: add per-file authorship information.
20720 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20722 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20723 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20724 decoder: fix video codec frame number in standalone mode.
20725 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
20726 stream in standalone mode. While we are at it, improve the debugging
20727 messages to also include that frame number.
20729 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
20731 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20732 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20733 decoder: fix crash on invalid pointer for GST_DEBUG().
20734 When decoding failed, or that the frame was dropped, the associated
20735 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
20736 message needs to check whether the proxy is actually present or not.
20737 https://bugzilla.gnome.org/show_bug.cgi?id=722403
20738 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
20739 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20741 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20743 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20744 encoder: h264: disable NAL HRD parameters for now.
20745 Don't emit NAL HRD parameters for now in the SPS headers because the
20746 SEI buffering_period() and picture_timing() messages are not handled
20747 yet. Some additional changes are necessary to get it right.
20748 https://bugzilla.gnome.org/show_bug.cgi?id=722734
20750 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20752 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20753 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
20754 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
20755 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
20756 encoder: h264: fix default CPB buffer size.
20757 Fix default CPB buffer size to something more reasonable (1500 ms)
20758 and that still fits the level limits. This is a non configurable
20759 property for now. The initial CPB removal delay is also fixed to
20761 https://bugzilla.gnome.org/show_bug.cgi?id=722087
20763 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20765 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20766 encoder: h264: fix bitrate encoding for HRD conformance.
20767 Round down the calculated, or supplied, bitrate (kbps) into a multiple
20768 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
20769 that to have less losses in precision. Likewise, don't round up because
20770 that could be a strict constraint imposed by the user.
20772 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20774 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20775 encoder: h264: fix level lookup constraints wrt. bitrate.
20776 Fix the level calculation involving bitrate limits. Since we are
20777 targetting NAL HRD conformance, the check against MaxBR from the
20778 Table A-1 limits shall involve cpbBrNalFactor depending on the
20781 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20783 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20784 encoder: h264: submit sequence parameter only once.
20785 Submit sequence parameter buffers only once, or when the bitstream
20786 was reconfigured in a way that requires such. Always submit packed
20787 sequence parameter buffers at I-frame period, if the VA driver needs
20789 https://bugzilla.gnome.org/show_bug.cgi?id=722737
20791 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20793 * gst-libs/gst/vaapi/gstvaapicontext.c:
20794 * gst-libs/gst/vaapi/gstvaapicontext.h:
20795 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20796 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20797 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
20798 encoder: h264: only submit packed headers when required.
20799 Make sure to submit the packed headers only if the underlying VA driver
20800 requires those. Currently, only handle packed sequence and picture
20802 https://bugzilla.gnome.org/show_bug.cgi?id=722737
20804 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20806 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20807 encoder: h264: fix ip_period value in sequence parameter.
20808 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
20809 between the I-frame and the next P-frame. So, this also accounts for
20810 any additional B-frame in the middle of it.
20811 This fixes rate control heuristics for certain VA drivers.
20812 https://bugzilla.gnome.org/show_bug.cgi?id=722735
20814 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20816 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20817 encoder: h264: fix level when bitrate is automatically computed.
20818 Fix level characterisation when the bitrate is automatically computed
20819 from the active coding tools. i.e. ensure the bitrate once the profile
20820 is completely characterized but before the level calculation process.
20822 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20824 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20825 encoder: h264: clean-ups.
20826 Document and rename a few functions here and there. Drop code that
20827 caps num_bframes variable in reset_properties() since they shall
20828 have been checked beforehand, during properties initialization.
20830 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20832 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20833 encoder: h264: clean-up bitwriter related utilities.
20834 Clean-up GstBitWriter related utility functions and simplify notations.
20835 While we are at it, also make bitstream writing more robust should an
20836 overflow occur. We could later optimize for writing headers capped to
20837 their maximum possible size by using the _unchecked() helper variants.
20839 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20841 * gst-libs/gst/vaapi/Makefile.am:
20842 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20843 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
20844 encoder: h264: completely remove private headers.
20845 Drop private header since it was originally used to expose internals
20846 to the plugin element. The proper interface is now the properties API,
20847 thus rendering private headers totally obsolete.
20849 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20851 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20852 encoder: h264: fix PPS header packing with profile < high.
20853 Fix PPS header packing when profile is below High since 8x8 transform
20854 mode and scaling lists are High Profile features.
20856 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20858 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20859 encoder: h264: always emit VUI parameters for framerate.
20860 Always emit VUI parameters for timing_info, which includes framerate
20863 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20865 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20866 encoder: h264: really fix frame cropping rectangle calculation.
20867 Make frame cropping rectangle calculation future proof, i.e. exactly
20868 follow the specification (7-18) to (7-21), and subsampling definitions
20870 https://bugzilla.gnome.org/show_bug.cgi?id=722089
20871 https://bugzilla.gnome.org/show_bug.cgi?id=722238
20873 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
20875 * gst/vaapi/gstvaapisink.c:
20876 * gst/vaapi/gstvaapisink.h:
20877 vaapisink: set csc render flags from sinkpad caps.
20878 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
20879 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
20881 https://bugzilla.gnome.org/show_bug.cgi?id=722255
20882 [factored out code, added SMPTE240M, handle per-buffer flags]
20883 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20885 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20887 * gst-libs/gst/vaapi/gstvaapisurface.h:
20888 * gst-libs/gst/vaapi/gstvaapiutils.c:
20889 * gst/vaapi/gstvaapipostproc.c:
20890 surface: rework render flags.
20891 Pack render flags per category and provide more flags into the color
20892 standard category. In particular, cover for SMPTE-240M.
20894 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
20896 * gst-libs/gst/vaapi/gstvaapifilter.c:
20897 * gst/vaapi/gstvaapipostproc.c:
20898 * gst/vaapi/gstvaapipostproc.h:
20899 vaapipostproc: add support for colorbalance filters.
20900 Add support for hue, saturation, brightness and constrat adjustments.
20901 Also fix cap info local copy to match the really expected cap subtype
20903 https://bugzilla.gnome.org/show_bug.cgi?id=720376
20904 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20906 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
20908 * gst/vaapi/gstvaapipostproc.c:
20909 vaapipostproc: fix support for "sharpen" filter.
20910 Fix copy/paste error when submitting the "sharpen" value to the
20911 GstVaapiFilter instance.
20912 https://bugzilla.gnome.org/show_bug.cgi?id=720375
20913 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20915 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
20918 * pkgconfig/gstreamer-vaapi-drm.pc.in:
20919 * pkgconfig/gstreamer-vaapi-glx.pc.in:
20920 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
20921 * pkgconfig/gstreamer-vaapi-x11.pc.in:
20922 * pkgconfig/gstreamer-vaapi.pc.in:
20923 pkgconfig: plugin dir should use PKG version not API version.
20924 Fix the pluginsdir and includedir variables in the generated pkgconfig
20925 (.pc) files. The location needs to be built with the PKG version in
20926 mind instead of the API version.
20927 While we are at it, also fix the PKG version for GStreamer >= 1.3.
20928 https://bugzilla.gnome.org/show_bug.cgi?id=720820
20929 [additional fixes for includedir and pkg requirements]
20930 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20932 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
20934 * gst/vaapi/gstvaapisink.c:
20935 vaapisink: fix display initialization in GstVideoOverlay implementation.
20936 When gst_vaapisink_video_overlay_set_window_handle() is called early,
20937 before the pipeline has been set to PLAYING, the display has not yet
20938 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
20939 up-to-date. For this reason the foreign XID is not attached.
20940 Now _ensure_display() is called earlier.
20941 https://bugzilla.gnome.org/show_bug.cgi?id=722244
20942 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20944 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20946 * gst/vaapi/gstvaapisink.c:
20947 vaapisink: expose the raw video formats in static caps template.
20948 Expose all raw video formats in the static caps template since the
20949 vaapisink is supporting raw data. We will get the exact set of formats
20950 supported by the driver dynamically through the _get_caps() routine.
20951 https://bugzilla.gnome.org/show_bug.cgi?id=703271
20952 https://bugzilla.gnome.org/show_bug.cgi?id=720737
20953 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20955 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
20957 * gst/vaapi/gstvaapidecode.c:
20958 vaapidecode: query downstream caps features like GLTextureUploadMeta.
20959 Fix vaapidecode to correctly report caps features downstream, when
20960 a custom pipeline is built manually.
20961 https://bugzilla.gnome.org/show_bug.cgi?id=719372
20962 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20964 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
20966 * gst/vaapi/gstvaapidecode.c:
20967 vaapidecode: add system memory caps to template caps.
20968 Since vaapidecode provides buffer that can be mapped as regular memory,
20969 those caps should be added to the template caps. That only applies to
20971 https://bugzilla.gnome.org/show_bug.cgi?id=720608
20972 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20974 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
20976 * gst/vaapi/gstvaapidecode.c:
20977 vaapidecode: fix hang on SIGINT.
20978 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
20979 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
20980 locked. This fixes a deadlock on state change from PAUSED to READY.
20981 https://bugzilla.gnome.org/show_bug.cgi?id=720584
20982 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20984 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
20986 * gst/vaapi/gstvaapiencode.c:
20987 vaapiencode: fix possible hang on SIGINT.
20988 vaapiencode might hang when the pipeline is stopped without any EOS,
20989 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
20990 running and locked. This fixes a possible deadlock on state change
20991 from PAUSED to READY.
20992 https://bugzilla.gnome.org/show_bug.cgi?id=720584
20993 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20995 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20997 * gst/vaapi/gstvaapiencode.c:
20998 vaapiencode: fix typo in error message.
20999 Fix incomplete error message in gst_vaapiencode_push_frame().
21001 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21003 * gst/vaapi/gstvaapipluginutil.c:
21004 * gst/vaapi/gstvaapipluginutil.h:
21005 plugins: add helpers to create video caps with features.
21006 Add gst_vaapi_video_format_new_template_caps_with_features() helper
21007 function to add the supplied caps feature string on GStreamer >= 1.2.
21008 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
21009 the "best" caps feature to use for the supplied pad. In practice, we
21010 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
21011 and finally the system memory caps.
21012 https://bugzilla.gnome.org/show_bug.cgi?id=719372
21014 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21016 * gst/vaapi/gstvaapivideometa_texture.c:
21017 plugins: don't apply overlay composition in GLTextureUpload function.
21018 The GLTextureUpload function is not in charge of doing the overlay
21019 composition if any.
21020 https://bugzilla.gnome.org/show_bug.cgi?id=721859
21021 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21023 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21025 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21026 encoder: re-order submission of VA objects.
21027 Change the submission order of VA objects so that to make that process
21028 more logical. i.e. submit sequence parameter first, if any; next the
21029 packed headers associated to sequece, picture or slices; and finally
21030 the actual picture and associated slices.
21032 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21034 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21035 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21036 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21037 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21038 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21039 encoder: clean-up objects.
21040 Various clean-ups to improve consistency and readability: rename some
21041 variables, drop unused macro definitions, drop initialization of vars
21042 that are zero-initialized from the base class, drop un-necessary casts,
21043 allocate GPtrArrays with a destroy function.
21045 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21047 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21048 encoder: h264: fix frame cropping rectangle calculation.
21049 Fix frame cropping rectangle calculation to handle horizontal resolutions
21050 that don't match a multiple of 16 pixels, but also the vertical resolution
21051 that was incorrectly computed for progressive sequences too.
21052 https://bugzilla.gnome.org/show_bug.cgi?id=722089
21054 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21056 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21057 encoder: h264: improve automatic bitrate calculation.
21058 For non "Constant-QP" modes, we could provide more reasonable heuristics
21059 for the target bitrate. In general, 48 bits per macroblock with all the
21060 useful coding tools enable looks safe enough. Then, this rate is raised
21061 by +10% to +15% for each coding tool that is disabled.
21062 https://bugzilla.gnome.org/show_bug.cgi?id=719699
21064 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21066 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21067 encoder: h264: support "high-compression" tuning option.
21068 Add support for "high-compression" tuning option. First, determine the
21069 largest supported profile by the hardware. Next, check any target limit
21070 set by the user. Then, enable each individual coding tool based on the
21071 resulting profile_idc value to use.
21072 https://bugzilla.gnome.org/show_bug.cgi?id=719696
21074 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21076 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21077 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21078 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21079 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21080 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
21081 * gst/vaapi/gstvaapiencode_h264.c:
21082 encoder: h264: allow target decoder constraints.
21083 Allow user to precise the largest profile to use for encoding due
21084 to target decoder constraints. For instance, if CABAC entropy coding
21085 mode is requested by "constrained-baseline" profile only is desired,
21086 then an error is returned during codec configuration.
21087 Also make sure that the suitable profile we derived actually matches
21088 what the HW can cope with.
21089 https://bugzilla.gnome.org/show_bug.cgi?id=719694
21091 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21093 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21094 encoder: h264: refine size of coded buffer.
21095 Refine the heuristic to determine the maximum size of a coded buffer
21096 to account for the exact number of slices. set_context_info() is the
21097 last step during codec reconfiguration, no additional change is done
21098 afterwards, so re-using the num_slices field here is fine.
21099 https://bugzilla.gnome.org/show_bug.cgi?id=719953
21101 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
21103 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21104 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21105 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21106 encoder: h264: expose more coding tools.
21107 Add new H.264 coding tools to improve compression:
21108 - "cabac": enable CABAC entropy coding (default: FALSE);
21109 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
21110 https://bugzilla.gnome.org/show_bug.cgi?id=719693
21111 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21113 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21115 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21116 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21117 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21118 encoder: h264: derive profile and level from active coding tools.
21119 Automatically derive the minimum profile and level to be used for
21120 encoding, based on the activated coding tools. The encoder will
21121 be trying to generate a bitstream that has the best chances to be
21122 decoded on most platforms by default.
21123 Also change the default profile to "constrained-baseline" so that
21124 to ensure maximum compatibility when the stream is decoded.
21125 https://bugzilla.gnome.org/show_bug.cgi?id=719691
21127 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21129 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21130 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21131 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21132 encoder: h264: fix hardware profile lookup.
21133 Fix lookup for a suitable HW profile, as to be used by the underlying
21134 hardware, based on heuristics that lead to characterize the SW profile,
21135 i.e. the one used by the SW level encoding logic.
21136 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
21137 as they should respectively match the baseline and main profile.
21138 https://bugzilla.gnome.org/show_bug.cgi?id=719827
21140 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21142 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21143 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21144 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21145 encoder: h264: support only the byte-stream format.
21146 The libgstvaapi core encoders are meant to support raw bitstreams only.
21147 Henceforth, we are always producing a stream in "byte-stream" format.
21148 However, the "codec-data" buffer which holds SPS and PPS headers is
21149 always available. The "lengthSizeMinusOne" field is always set to 3
21150 so that in-place "byte-stream" format to "avc" format conversion could
21153 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21155 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21156 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21157 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21158 * gst/vaapi/gstvaapiencode_h264.c:
21159 encoder: h264: clean-ups.
21160 Various clean-ups to improve consistency and readability: rename some
21161 variables, drop unused macro definitions, drop initialization of vars
21162 that are zero-initialized from the base class, drop un-necessary casts.
21164 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21166 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21167 encoder: mpeg2: fix hardware profile lookup.
21168 Fix lookup for a suitable HW profile, as to be used by the underlying
21169 hardware, based on heuristics that lead to characterize the SW profile,
21170 i.e. the one used by the SW level encoding logic.
21172 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21174 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21175 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
21176 encoder: mpeg2: derive profile and level from active coding tools.
21177 Automatically derive the minimum profile and level to be used for
21178 encoding, based on the activated coding tools. Improve lookup for
21179 the best suitable level with the new MPEG-2 helper functions.
21180 Also change the default profile to "simple" so that to ensure maximum
21181 compatibility when the stream is decoded.
21182 https://bugzilla.gnome.org/show_bug.cgi?id=719703
21184 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21186 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21187 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
21188 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
21189 encoder: mpeg2: clean-ups.
21190 Various clean-ups to improve consistency and readability: drop unused
21191 macro definitions, drop initialization of vars that are zero-initialized
21192 from the base class, drop un-necessary casts.
21194 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21196 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21197 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21198 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21199 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21200 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21201 encoder: add tuning options API.
21202 Add encoder "tune" option to override the default behaviour that is to
21203 favor maximum decoder compatibility at the expense of lower compression
21205 Expected tuning options to be developed are:
21206 - "high-compression": improve compression, target best-in-class decoders;
21207 - "low-latency": tune for low-latency decoding;
21208 - "low-power": tune for encoding in low power / resources conditions.
21210 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21212 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21213 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21214 encoder: fix bitrate units to match kbps.
21215 Bitrate is expressed in kilobits per second (kbps). So, this exactly
21216 means in multiple of 1000 bits, not 1024 bits.
21217 https://bugzilla.gnome.org/show_bug.cgi?id=722086
21219 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21221 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21222 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21223 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21224 encoder: clean-ups.
21225 Drop obsolete and unused macros. Add a few doc comments. Slightly
21226 improve indentation of a few leftovers.
21228 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21230 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21231 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21232 * gst-libs/gst/vaapi/gstvaapivalue.c:
21233 * gst-libs/gst/vaapi/gstvaapivalue.h:
21234 encoder: filter out the supported set of rate-control properties.
21235 Only expose the exact static set of supported rate-control properties
21236 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
21237 only support CQP rate control, then only add it the the exposed enum
21239 Add helper macros and functions to build a GType for an enum subset.
21241 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21243 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21244 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21245 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21246 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21247 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21248 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21249 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
21250 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
21251 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21252 encoder: add keyframe period API.
21253 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
21254 user control the maximum distance between two keyframes. This new
21255 property can only be set prior to gst_vaapi_encoder_set_codec_state().
21256 A value of zero for "keyframe-period" gets it re-evaluated to the
21257 actual framerate during encoder reconfiguration.
21259 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21261 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21262 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21263 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21264 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21265 encoder: improve codec reconfiguration.
21266 Improve codec reconfiguration to be performed only through a single
21267 function. That is, remove the _set_context_info() hook as subclass
21268 should not alter the parent GstVaapiContextInfo itself. Besides, the
21269 VA context is constructed only at the final stages of reconfigure().
21271 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21273 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
21274 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
21275 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21276 encoder: fix possible memory leak of coded buffer pools.
21277 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
21278 buffer pool only if the coded buffer size actually changed.
21280 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21282 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21283 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21284 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21285 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21286 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21287 * gst/vaapi/gstvaapiencode.c:
21288 * gst/vaapi/gstvaapiencode.h:
21289 encoder: add video codec-state API.
21290 Add interface to communicate the encoder resolution and related info
21291 like framerate, interlaced vs. progressive, etc. This new interface
21292 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
21293 but rather use GstVideoCodecState.
21294 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
21295 point for codec config. This means that the encoder is reconfigured
21296 there to match the latest properties.
21298 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21300 * gst/vaapi/gstvaapiencode.c:
21301 vaapiencode: don't crash on NULL encoder on _finish().
21302 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
21303 if it was not created in the first place. Return "not-negotiated" error
21304 since this means we did not even reach GstVideoEncoder::set_format(),
21305 where the encoder could have been created.
21306 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
21307 and that we failed to negotiate either pad.
21308 https://bugzilla.gnome.org/show_bug.cgi?id=719704
21310 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21312 * gst/vaapi/gstvaapiencode.c:
21313 * gst/vaapi/gstvaapiencode.h:
21314 * gst/vaapi/gstvaapiencode_h264.c:
21315 vaapiencode: use more GstVaapiPluginBase facilities.
21316 Avoid duplication of pad references or query functions since they are
21317 provided through the GstVaapiPluginBase object.
21319 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21321 * gst/vaapi/gstvaapiencode.c:
21322 * gst/vaapi/gstvaapiencode.h:
21323 * gst/vaapi/gstvaapiencode_h264.c:
21324 * gst/vaapi/gstvaapiencode_h264.h:
21325 * gst/vaapi/gstvaapiencode_mpeg2.c:
21326 vaapiencode: fix negotiation process of output caps.
21327 The specified caps in gst_video_encoder_set_output_state() function
21328 arguments should not contain any resolution, pixel-aspect-ratio,
21329 framerate, codec-data et al. Those rather should be set through the
21330 returned GstVideoCodecState. This means that output caps creation
21331 could be delayed until before gst_video_encoder_finish_frame() is
21333 This greatly simplifies the GstVideoEncoder::set_format() callback
21336 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21338 * gst/vaapi/gstvaapiencode.c:
21339 vaapiencode: make GstVaapiEncode an abstract type.
21340 Make base GstVaapiEncode class an abstract type so that we cannot
21341 create an instance from it without going through any of the codec
21342 specific derived class.
21344 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21346 * gst/vaapi/gstvaapiencode.c:
21347 * gst/vaapi/gstvaapiencode.h:
21348 * gst/vaapi/gstvaapiencode_h264.c:
21349 * gst/vaapi/gstvaapiencode_mpeg2.c:
21350 vaapiencode: rename a few member functions.
21351 Rename a few member functions to make them more consistent:
21352 - alloc_encoder(): now reduced to allocate the encoder object only;
21353 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
21355 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21357 * gst/vaapi/gstvaapiencode.c:
21358 * gst/vaapi/gstvaapiencode.h:
21359 * gst/vaapi/gstvaapiencode_h264.c:
21360 * gst/vaapi/gstvaapiencode_h264.h:
21361 * gst/vaapi/gstvaapiencode_mpeg2.c:
21362 vaapiencode: update for new properties API.
21363 Update MPEG-2 and H.264 encode elements to cope with the new core
21364 libgstvaapi properties API. i.e. all configurable properties are now
21365 directly handled at the GstVaapiEncoder level.
21366 Besides, this also makes sure to not use or modify the GstVaapiEncoder
21367 private definitions directly. Private data need to remain private.
21368 https://bugzilla.gnome.org/show_bug.cgi?id=719529
21370 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21372 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21373 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21374 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21375 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21376 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21377 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
21378 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21379 encoder: add properties API.
21380 Add interface to communicate configurable properties to the encoder.
21381 This covers both the common ones (rate-control, bitrate), and the
21382 codec specific properties.
21383 https://bugzilla.gnome.org/show_bug.cgi?id=719529
21385 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21387 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21388 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21389 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21390 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21391 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21392 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
21393 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21394 * gst/vaapi/gstvaapiencode.c:
21395 * gst/vaapi/gstvaapiencode_h264.c:
21396 * gst/vaapi/gstvaapiencode_mpeg2.c:
21397 encoder: add bitrate API.
21398 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
21399 the bitrate for encoding. Currently, changing this parameter is only
21400 valid before the first frame is encoded. Should the value be modified
21401 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
21403 https://bugzilla.gnome.org/show_bug.cgi?id=719529
21405 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21407 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21408 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21409 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21410 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21411 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
21412 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21413 * gst-libs/gst/vaapi/gstvaapitypes.h:
21414 * gst/vaapi/gstvaapiencode.c:
21415 * gst/vaapi/gstvaapiencode.h:
21416 * gst/vaapi/gstvaapiencode_h264.c:
21417 * gst/vaapi/gstvaapiencode_mpeg2.c:
21418 encoder: add rate control API.
21419 Add gst_vaapi_encoder_set_rate_control() interface to request a new
21420 rate control mode for encoding. Changing the rate control mode is
21421 only valid prior to encoding the very first frame. Afterwards, an
21422 error ("operation-failed") is issued.
21423 https://bugzilla.gnome.org/show_bug.cgi?id=719529
21425 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21427 * gst/vaapi/gstvaapiencode.c:
21428 * gst/vaapi/gstvaapiencode_h264.c:
21429 * gst/vaapi/gstvaapiencode_mpeg2.c:
21430 vaapiencode: fix indentation.
21432 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21434 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21435 * gst-libs/gst/vaapi/gstvaapiencoder.h:
21436 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21437 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21438 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
21439 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21440 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21441 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21442 * gst/vaapi/gstvaapiencode.h:
21443 encoder: fix indentation.
21445 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21447 * gst-libs/gst/vaapi/Makefile.am:
21448 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
21449 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
21450 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
21451 utils: add new MPEG-2 helper functions.
21452 Add various helper functions to convert profile, level, chroma formats
21453 from gstreamer-vaapi world and the MPEG-2 specification world.
21455 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21457 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21458 utils: h264: don't use fatal asserts.
21459 Replace g_assert() with a g_debug() so that to not make the program
21460 abort when an unsupported value is supplied.
21462 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21464 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21465 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
21466 utils: h264: add helpers for profile and level string mappings.
21467 Add profile and level helper functions to convert to/from strings.
21469 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21471 * gst-libs/gst/vaapi/Makefile.am:
21472 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21473 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21474 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
21475 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
21476 utils: h264: expose levels in public header.
21477 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
21478 H.264 levels in there. The additional helper functions are meant
21479 to be private for now.
21481 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21483 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21484 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21485 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21486 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21487 codec: add helper macros to maintain object refcount.
21488 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
21489 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
21491 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21493 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21494 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21495 codec: re-indent decoder objects.
21497 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21499 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21500 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21501 codec: re-indent base codec objects.
21503 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21505 * gst/vaapi/gstvaapipluginbase.c:
21506 plugins: do not free debug category in finalize method.
21507 Fixes a crash when multiple vaapidecode elements are finalized since
21508 the debug category is created once in the class init method.
21509 This is a regression from git commit 7e58d60.
21510 https://bugzilla.gnome.org/show_bug.cgi?id=721390
21511 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21513 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21515 * gst-libs/gst/vaapi/glibcompat.h:
21516 * tests/simple-decoder.c:
21517 tests: simple-decoder: don't use deprecated g_thread_create().
21518 Use g_thread_try_new() instead of the deprecated g_thread_create()
21519 function. Provide compatibility glue for any GLib version < 2.31.2.
21521 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21523 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21524 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
21525 * gst-libs/gst/vaapi/gstvaapisurface.c:
21526 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
21527 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
21528 * gst/vaapi/gstvaapiencode.c:
21529 Fix printf()-like formats.
21530 Fix formts for various GST_DEBUG et al. invocations. More precisely,
21531 make size_t arguments use the %zu format specifier accordingly; force
21532 XID formats to be a 32-bit unsigned integer; and fix the format used
21533 for gst_vaapi_create_surface_with_format() error cases since we have
21534 been using strings nowadays.
21536 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21538 * gst-libs/gst/vaapi/video-format.c:
21539 * gst-libs/gst/vaapi/video-format.h:
21540 utils: format: drop unused helper functions.
21541 The following helper functions are no longer used, thus are removed:
21542 - gst_vaapi_video_format_from_structure()
21543 - gst_vaapi_video_format_from_caps()
21544 - gst_vaapi_video_format_to_caps()
21546 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21548 * gst-libs/gst/vaapi/video-format.c:
21549 * gst-libs/gst/vaapi/video-format.h:
21550 utils: re-indent GstVideoFormat related helpers.
21552 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21554 * gst/vaapi/gstvaapidownload.c:
21555 download: use GstVideoInfo facilities to build output caps.
21556 Use standard GstVideoInfo related functions to build the output caps,
21557 thus directly preserving additional fields as needed, instead of
21558 manually copying them over through gst_vaapi_append_surface_caps().
21559 Also ensure that the input caps are fixated first.
21561 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21563 * gst/vaapi/gstvaapidownload.c:
21564 * gst/vaapi/gstvaapipluginutil.c:
21565 * gst/vaapi/gstvaapipluginutil.h:
21566 * gst/vaapi/gstvaapiuploader.c:
21567 plugins: factor out construction of template caps.
21568 Add new helper functions to build video template caps.
21569 - gst_vaapi_video_format_new_template_caps():
21570 create GstCaps with size, frame rate and PAR to full range
21571 - gst_vaapi_video_format_new_template_caps_from_list():
21572 try to create a "simplified" list from the supplied formats
21574 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21576 * gst/vaapi/gstvaapipluginutil.c:
21577 * gst/vaapi/gstvaapipluginutil.h:
21578 * gst/vaapi/gstvaapipostproc.c:
21579 plugins: factor out construction of GValue from GstVideoFormat.
21580 Add new helper functions to build GValues from GstVideoFormat:
21581 - gst_vaapi_value_set_format():
21582 build a GValue from the supplied video format
21583 - gst_vaapi_value_set_format_list():
21584 build a GValue list from the supplied array of video formats
21586 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21588 * gst/vaapi/gstvaapipluginutil.c:
21589 * gst/vaapi/gstvaapipluginutil.h:
21590 * gst/vaapi/gstvaapivideocontext.c:
21591 * gst/vaapi/gstvaapivideocontext.h:
21592 plugins: re-indent common and video context creation utils.
21594 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21596 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21597 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21598 * gst/vaapi/gstvaapidecode.c:
21599 * tests/test-display.c:
21600 display: don't use GstCaps for decode or encode profiles list.
21601 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
21602 more convenient APIs that return an array of GstVaapiProfile instead
21603 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
21605 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21607 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21608 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21609 * gst/vaapi/gstvaapidownload.c:
21610 * gst/vaapi/gstvaapiuploader.c:
21611 * tests/test-display.c:
21612 display: don't use GstCaps for image or subpicture formats list.
21613 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
21614 returned GstCaps, with more convenient APIs that return an array of
21615 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
21617 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21619 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21620 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21621 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21622 display: allocate queried resources on-demand.
21623 Allocate the set of decoders or encoders on-demand, when they are
21624 queried. Likewise for VA display attributes, image and subpicture
21627 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21629 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21630 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21631 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21632 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
21633 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
21634 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
21635 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
21636 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
21637 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21638 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21639 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
21640 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
21641 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21642 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
21643 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
21644 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21645 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21646 display: re-indent all GstVaapiDisplay related source code.
21648 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21650 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21651 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21652 utils: add helper functions to get codec or profile name.
21654 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21656 * gst/vaapi/gstvaapipostproc.c:
21657 * gst/vaapi/gstvaapipostproc.h:
21658 * gst/vaapi/gstvaapiuploader.c:
21659 plugins: fix permissions for certain files.
21660 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
21663 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21665 * gst/vaapi/gstvaapivideometa_texture.c:
21666 plugins: implement GLTextureUploadMeta user data copy.
21667 Makes the copies of a buffer reference their own GLTextureUploadMeta
21668 user data and prevent the original buffer accessing already freed
21669 memory if its copies has been released and freed.
21670 https://bugzilla.gnome.org/show_bug.cgi?id=720336
21671 [Propagate the original meta texture to the copy too]
21672 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21674 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21676 * gst/vaapi/gstvaapiencode.c:
21677 * gst/vaapi/gstvaapiencode.h:
21678 * gst/vaapi/gstvaapipluginbase.c:
21679 * gst/vaapi/gstvaapipluginbase.h:
21680 * gst/vaapi/gstvaapipostproc.c:
21681 * gst/vaapi/gstvaapipostproc.h:
21682 * gst/vaapi/gstvaapisink.c:
21683 * gst/vaapi/gstvaapisink.h:
21684 plugins: factor out support for raw YUV buffers on sink pads.
21685 Factor out propose_allocation() hooks, creation of video buffer pool
21686 for the sink pad, conversion from raw YUV buffers to VA surface backed
21687 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
21688 with the new GstVaapiPluginBase abilities.
21690 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21692 * gst-libs/gst/vaapi/gstcompat.h:
21693 * gst/vaapi/gstvaapidecode.c:
21694 * gst/vaapi/gstvaapidecode.h:
21695 * gst/vaapi/gstvaapidownload.c:
21696 * gst/vaapi/gstvaapipluginbase.c:
21697 * gst/vaapi/gstvaapipluginbase.h:
21698 * gst/vaapi/gstvaapipostproc.c:
21699 * gst/vaapi/gstvaapipostproc.h:
21700 * gst/vaapi/gstvaapisink.c:
21701 * gst/vaapi/gstvaapiupload.c:
21702 plugins: factor out pad caps.
21704 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21706 * gst/vaapi/gstvaapidecode.c:
21707 * gst/vaapi/gstvaapidownload.c:
21708 * gst/vaapi/gstvaapiencode.c:
21709 * gst/vaapi/gstvaapipluginbase.c:
21710 * gst/vaapi/gstvaapipostproc.c:
21711 * gst/vaapi/gstvaapisink.c:
21712 * gst/vaapi/gstvaapiupload.c:
21713 plugins: factor out video context sharing code.
21715 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21717 * gst/vaapi/gstvaapidecode.c:
21718 * gst/vaapi/gstvaapidownload.c:
21719 * gst/vaapi/gstvaapiencode.c:
21720 * gst/vaapi/gstvaapipluginbase.c:
21721 * gst/vaapi/gstvaapipluginbase.h:
21722 * gst/vaapi/gstvaapipostproc.c:
21723 * gst/vaapi/gstvaapisink.c:
21724 * gst/vaapi/gstvaapiupload.c:
21725 plugins: factor out GstImplementsInterface.
21727 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21729 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21730 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21731 * gst/vaapi/gstvaapipluginbase.c:
21732 * gst/vaapi/gstvaapipluginutil.c:
21733 plugins: check type of display obtained from neighbours.
21734 Fix display creation code to check that any display obtained from a
21735 neighbour actually has the type we expect. Note: if display type is
21736 set to "any", we can then accept any VA display type.
21738 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21740 * gst/vaapi/gstvaapidecode.c:
21741 * gst/vaapi/gstvaapidownload.c:
21742 * gst/vaapi/gstvaapiencode.c:
21743 * gst/vaapi/gstvaapipluginbase.c:
21744 * gst/vaapi/gstvaapipluginbase.h:
21745 * gst/vaapi/gstvaapipluginutil.c:
21746 * gst/vaapi/gstvaapipluginutil.h:
21747 * gst/vaapi/gstvaapipostproc.c:
21748 * gst/vaapi/gstvaapisink.c:
21749 * gst/vaapi/gstvaapisink.h:
21750 * gst/vaapi/gstvaapiupload.c:
21751 plugins: factor out display creation process.
21752 Move common VA display creation code to GstVaapiPluginBase, with the
21753 default display type remaining "any". Also add a "display-changed"
21754 hook so that subclasses could perform additional tasks when/if the
21755 VA display changed, due to a new display type request for instance.
21756 All plug-ins are updated to cope with the new internal APIs.
21758 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21760 * gst/vaapi/Makefile.am:
21761 * gst/vaapi/gstvaapidecode.c:
21762 * gst/vaapi/gstvaapidecode.h:
21763 * gst/vaapi/gstvaapidownload.c:
21764 * gst/vaapi/gstvaapidownload.h:
21765 * gst/vaapi/gstvaapiencode.c:
21766 * gst/vaapi/gstvaapiencode.h:
21767 * gst/vaapi/gstvaapipluginbase.c:
21768 * gst/vaapi/gstvaapipluginbase.h:
21769 * gst/vaapi/gstvaapipostproc.c:
21770 * gst/vaapi/gstvaapipostproc.h:
21771 * gst/vaapi/gstvaapisink.c:
21772 * gst/vaapi/gstvaapisink.h:
21773 * gst/vaapi/gstvaapiupload.c:
21774 * gst/vaapi/gstvaapiupload.h:
21775 plugins: add new base object, store display in there.
21776 Introduce a new GstVaapiPluginBase object that will contain all common
21777 data structures and perform all common tasks. First step is to have a
21778 single place to hold VA displays.
21779 While we are at it, also make sure to store and subsequently release
21780 the appropriate debug category for the subclasses.
21782 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21784 * gst-libs/gst/vaapi/gstvaapiobject.h:
21785 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
21786 * gst/vaapi/gstvaapivideometa_texture.c:
21787 * gst/vaapi/gstvaapivideometa_texture.h:
21788 plugins: fix GLTextureUploadMeta to work with different texture ids.
21789 The GLTextureUploadMeta implementation assumed that for each upload()
21790 sequence, the supplied texture id is always the same as the one that
21791 was previously cached into the underlying GstVaapiTexture. Cope with
21792 any texture id change the expense to recreate the underlying VA/GLX
21794 https://bugzilla.gnome.org/show_bug.cgi?id=719643
21796 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21798 * gst/vaapi/gstvaapidecode.c:
21799 * gst/vaapi/gstvaapivideobufferpool.c:
21800 * gst/vaapi/gstvaapivideometa_texture.c:
21801 plugins: allow builds without GLX enabled for GStreamer 1.2.
21802 Don't try to build GLTextureUploadMeta related code if GLX is not
21803 enabled during GStreamer >= 1.2 builds.
21805 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21807 * gst/vaapi/gstvaapidecode.c:
21808 * gst/vaapi/gstvaapivideobufferpool.c:
21809 * gst/vaapi/gstvaapivideobufferpool.h:
21810 * gst/vaapi/gstvaapivideometa_texture.c:
21811 * gst/vaapi/gstvaapivideometa_texture.h:
21812 plugins: request GLTextureUpload meta on buffers in the buffer pool.
21813 Requesting the GLTextureUpload meta on buffers in the bufferpool
21814 prevents such metas from being de-allocated when buffers are released
21816 This is particulary useful in terms of performance when using the
21817 GLTextureUploadMeta API since the GstVaapiTexture associated with
21818 the target texture is stored in the meta.
21819 https://bugzilla.gnome.org/show_bug.cgi?id=712558
21820 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21822 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21824 * gst/vaapi/gstvaapivideometa_texture.c:
21825 plugins: robustify GstVideoGLTextureUploadMeta implementation.
21826 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
21827 when the GstVaapiTexture associated with the supplied texture id could
21830 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21832 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21833 h264: improve robustness when packets are missing.
21834 Improve robustness when some expected packets where not received yet
21835 or that were not correctly decoded. For example, don't try to decode
21836 a picture if there was no valid frame headers parsed so far.
21837 https://bugs.freedesktop.org/show_bug.cgi?id=57902
21839 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21841 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21842 decoder: h264: fix decoding of BA3_SVA_C.264.
21843 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
21844 extended profile specifications. However, the SPS header has the
21845 constraint_set1_flag syntax element set to 1. This means that, if
21846 a Main profile compliant decoder is available, then it should be
21847 able to decode this stream.
21848 This changes makes it possible to fall-back from Extended profile
21849 to Main profile if constraint_set1_flag is set to 1.
21850 https://bugzilla.gnome.org/show_bug.cgi?id=720190
21852 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21854 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21855 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21856 utils: h264: add more profiles.
21857 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
21858 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
21859 multiview profiles (H.10.1.1, H.10.1.2).
21860 Document "Constrained Baseline" and "High 10" profiles.
21862 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21864 * ext/codecparsers:
21865 codecparsers: update to gst-vaapi-branch commit e7d0e18.
21866 e7d0e18 h264: complete set of NAL unit types
21868 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
21870 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21871 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21872 decoder: h264: add support for constrained baseline profile.
21873 Recognize streams marked as conforming to the "Constrained Baseline
21874 Profile". If VA driver supports that as is, fine. Otherwise, fallback
21875 to baseline, main or high profile.
21876 Constrained Baseline Profile conveys coding tools that are common
21877 to baseline profile and main profile.
21878 https://bugzilla.gnome.org/show_bug.cgi?id=719947
21879 [Added fallbacks to main and high profiles]
21880 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21882 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21884 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21885 decoder: h264: fix decoding of scaling lists.
21886 The GStreamer codecparser layer now parses the scaling lists in zigzag
21887 scan order, as expected, so that to match the original bitstream layout
21888 and specification. However, further convert the scaling lists into
21889 raster scan order to fit the existing practice in most VA drivers.
21890 https://bugzilla.gnome.org/show_bug.cgi?id=706406
21892 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21894 * ext/codecparsers:
21895 codecparsers: update to gst-vaapi-branch commit 177c73b.
21896 a7e3255 add H.265 (HEVC) bitstream parser
21897 177c73b h264: fix picture level scaling lists derivation (rule B)
21898 14733f1 h264: fix parsing of VCL HRD parameters
21899 59a0b47 h264: store quantization matrices in zig-zag order
21900 ffb6e26 h264: add helpers to convert quantization matrices
21901 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
21902 719d1b0 mpeg2: turn internal consistency check into a g_assert()
21903 5241d8e all: remove some unused functions
21904 18eb312 all: fix for GST_DISABLE_GST_DEBUG
21905 963c04a all: make warnings more meaningful
21907 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21909 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21910 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21911 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
21912 utils: add helpers for H.264 levels.
21913 - gst_vaapi_utils_h264_get_level():
21914 Returns GstVaapiLevelH264 from H.264 level_idc value
21915 - gst_vaapi_utils_h264_get_level_idc():
21916 Returns H.264 level_idc value from GstVaapiLevelH264
21917 - gst_vaapi_utils_h264_get_level_limits():
21918 Returns level limits as specified in Table A-1 of the H.264 standard
21919 - gst_vaapi_utils_h264_get_level_limits_table():
21920 Returns the Table A-1 specification
21922 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21924 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21925 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21926 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21927 utils: add new H.264 profiles.
21928 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
21929 and helper functiions.
21931 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21933 utils: add new H.264 helper functions.
21935 - gst_vaapi_utils_h264_get_profile():
21936 Returns GstVaapiProfile from H.264 profile_idc value
21937 - gst_vaapi_utils_h264_get_profile_idc():
21938 Returns H.264 profile_idc value from GstVaapiProfile
21940 - gst_vaapi_utils_h264_get_chroma_type():
21941 Returns GstVaapiChromaType from H.264 chroma_format_idc value
21942 - gst_vaapi_utils_h264_get_chroma_format_idc():
21943 Returns H.264 chroma_format_idc value from GstVaapiChromaType
21945 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21947 * gst-libs/gst/base/Makefile.am:
21948 * gst-libs/gst/vaapi/Makefile.am:
21949 Fix missing files in distribution tarball.
21950 https://bugzilla.gnome.org/show_bug.cgi?id=719776
21951 [Additional fixes and clean-ups]
21952 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21954 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21956 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21957 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21958 encoder: fix computation of max coded buffer size (again).
21959 The previous fix was only valid to express the maximum size of the
21960 macroblock layer, i.e. without any headers. Now, also account for
21961 the slice headers and top picture header, but also any other header
21962 we might stuff into the VA coded buffer, e.g. sequence headers.
21964 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21966 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21967 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21968 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21969 encoder: fix computation of max coded buffer size.
21970 Fix coded buffer size for each codec. A generic issue was that the
21971 number of macroblocks was incorrectly computed. The second issue was
21972 specific to MPEG-2 were the max number of bits per macroblock, and
21973 as defined by the standard, was incorrectly mapped to the (lower)
21974 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
21976 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21978 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21979 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21980 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21981 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
21982 encoder: simplify VA context initialization process.
21983 Change get_context_info() into a set_context_info() function that
21984 initializes common defaults into the base class, thus allowing the
21985 subclasses to specialize the context info further on.
21986 The set_context_info() hook is also the location where additional
21987 context specific data could be initialized. At this point, we are
21988 guaranteed to have valid video resolution size and framerate. i.e.
21989 gst_vaapi_encoder_set_format() was called beforehand.
21991 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
21993 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
21994 encoder: fix mpeg2 compilation error.
21995 https://bugzilla.gnome.org/show_bug.cgi?id=719746
21996 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21998 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22000 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22001 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22002 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22003 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22004 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22005 * gst/vaapi/gstvaapiencode.c:
22006 encoder: clean-ups and document public APIs.
22007 Clean public APIs up so that to better align with the decoder APIs.
22008 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
22009 return the VA coded buffer proxy. Also provide useful documentation
22010 for the public APIs.
22012 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22014 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22015 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22016 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22017 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
22018 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
22019 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
22020 through GstVaapiCodedBufferProxy user-data facility.
22021 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
22023 Partial fix for the following report:
22024 https://bugzilla.gnome.org/show_bug.cgi?id=719530
22026 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22028 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22029 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22030 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22031 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22032 * gst/vaapi/gstvaapiencode.c:
22033 encoder: refactor status codes.
22034 Drop obsolete or unused status codes. Align some status codes with the
22035 decoder counterparts.
22037 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22039 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22040 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22041 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22042 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22043 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22044 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22045 encoder: fix subclassing process.
22046 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
22047 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
22048 thus avoiding useless run-time checks. Also simplify the subclass
22049 initialization process to be less error prone.
22051 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22053 encoder: rework GstVaapiCodedBuffer and related proxy.
22054 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
22055 public and private interfaces. Besides, the map/unmap APIs should not
22056 be exposed as is but appropriate accessors should be provided instead.
22057 * GstVaapiCodedBuffer: VA coded buffer abstraction
22058 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
22059 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
22060 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
22061 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
22062 the specified max size, and bound to the supplied encoder
22063 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
22064 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
22065 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
22066 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
22067 Rationale: more optimized transfer functions might be provided in the
22068 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
22069 https://bugzilla.gnome.org/show_bug.cgi?id=719775
22071 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22073 * gst/vaapi/gstvaapidecode.c:
22074 * gst/vaapi/gstvaapiencode.c:
22075 * gst/vaapi/gstvaapipostproc.c:
22076 * gst/vaapi/gstvaapisink.c:
22077 plugins: fix reference leaks of VA display objects.
22078 Fix GstElement::set_context() implementation for all plug-in elements
22079 to avoid leaking an extra reference to the VA display, thus preventing
22080 correct cleanup of VA resources in GStreamer 1.2 builds.
22082 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22084 * gst/vaapi/gstvaapipluginutil.c:
22085 * gst/vaapi/gstvaapivideocontext.c:
22086 plugins: simplify gst_vaapi_ensure_display().
22087 Return earlier if the creation of a VA display failed. Likewise, simplify
22088 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
22091 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22093 * gst/vaapi/gstvaapivideomemory.c:
22094 plugins: fix memory leaks through GstVideoMeta maps.
22095 When GstVideoMeta maps were used, the supporting functions incorrectly
22096 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
22097 always increasing the associated GstMemory reference count and giving
22098 zero chance to actually release that, and subsequently the VA display.
22100 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22102 * gst-libs/gst/vaapi/gstvaapifilter.c:
22103 * gst/vaapi/gstvaapiencode_h264.c:
22104 * gst/vaapi/gstvaapiencode_mpeg2.c:
22105 * gst/vaapi/gstvaapipostproc.c:
22106 * gst/vaapi/gstvaapisink.c:
22107 * gst/vaapi/gstvaapiuploader.c:
22108 plugins: use G_PARAM_STATIC_STRINGS.
22109 This avoids a few string copies during initialization.
22111 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22113 * gst/vaapi/gstvaapivideometa.c:
22114 plugins: simplify VA video meta to only reference surface proxies.
22115 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
22116 now allocated from a surface pool. This also means that the local
22117 reference to the VA surface is also gone, as it could be extracted
22118 from the associated surface proxy.
22120 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22122 * gst/vaapi/gstvaapivideobuffer.c:
22123 * gst/vaapi/gstvaapivideobuffer.h:
22124 * gst/vaapi/gstvaapivideometa.c:
22125 * gst/vaapi/gstvaapivideometa.h:
22126 plugins: drop obsolete functions.
22127 Drop the following functions that are not longer used:
22128 - gst_vaapi_video_buffer_new_with_surface()
22129 - gst_vaapi_video_meta_new_with_surface()
22130 - gst_vaapi_video_meta_set_surface()
22131 - gst_vaapi_video_meta_set_surface_from_pool()
22133 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22135 * gst/vaapi/gstvaapivideometa.c:
22136 plugins: allow VA video meta to be allocated from surface proxy pools.
22137 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
22138 from surface pools instead of plain VA surfaces. This is to simplify
22139 allocations now that surface proxies are created from a surface pool.
22141 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22143 * docs/reference/libs/libs-sections.txt:
22144 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22145 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
22146 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
22147 surfaceproxy: add copy function.
22148 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
22149 proxy with the same information from the parent proxy, except that the
22150 user-defined destroy notify function is not copied over.
22151 The underlying VA surface is pushed back to the video pool only when
22152 the last reference to the parent surface proxy is released.
22154 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22156 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22157 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22158 * gst/vaapi/gstvaapiencode.c:
22159 vaapiencode: optimize _handle_frame() to avoid extra allocation.
22160 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
22161 and in particular the GstVaapiEncObjUserData object. i.e. directly use
22162 the VA surface proxy from the source buffer. This also makes the user
22163 data attached to the GstVideoCodecFrame more consistent between both
22164 the decoder and encoder plug-in elements.
22166 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22168 * gst/vaapi/gstvaapiencode.c:
22169 vaapiencode: fix memory leaks in _push_frame() on error.
22170 Simplify gst_vaapiencode_push_frame(), while also removing the call
22171 to gst_video_encoder_negotiate() since this is implicit in _finish()
22172 if caps changed. Also fixed memory leaks that occured on error.
22174 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22176 * gst/vaapi/gstvaapiencode.c:
22177 * gst/vaapi/gstvaapiencode.h:
22178 * gst/vaapi/gstvaapiencode_h264.c:
22179 * gst/vaapi/gstvaapiencode_h264.h:
22180 * gst/vaapi/gstvaapiencode_mpeg2.c:
22181 vaapiencode: additional clean-ups.
22182 Constify pointers wherever possible. Drop unused variables, and use
22183 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
22184 to correctly report errors, especially when in-place conversion from
22185 bytestream to avcC format failed.
22187 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22189 * gst/vaapi/gstvaapiencode.c:
22190 * gst/vaapi/gstvaapiencode.h:
22191 * gst/vaapi/gstvaapiencode_h264.c:
22192 * gst/vaapi/gstvaapiencode_h264.h:
22193 * gst/vaapi/gstvaapiencode_mpeg2.c:
22194 * gst/vaapi/gstvaapiencode_mpeg2.h:
22195 vaapiencode: move common properties to base class.
22196 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
22197 base class. The actual range of supported rate control modes is currently
22198 implemented as a plug-in element hook. This ought to be determined from
22199 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
22201 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22203 * gst/vaapi/gstvaapiencode_h264.c:
22204 * gst/vaapi/gstvaapiencode_mpeg2.c:
22205 vaapiencode: fix plugin description and debug name.
22206 Align the plug-in debug category to its actual name. i.e. enable debug
22207 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
22208 the plug-in element description to make it more consistent with other
22211 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22214 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22215 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22216 * gst-libs/gst/video/Makefile.am:
22217 * gst/vaapi/gstvaapiencode.c:
22218 * gst/vaapi/gstvaapiencode.h:
22219 * gst/vaapi/gstvaapiencode_h264.c:
22220 * gst/vaapi/gstvaapiencode_mpeg2.c:
22221 vaapiencode: add initial support for GStreamer 0.10.
22223 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22225 * gst-libs/gst/vaapi/gstcompat.h:
22226 libs: add more GstBuffer compat glue for GStreamer 0.10.
22227 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
22228 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
22231 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22234 * gst-libs/gst/video/Makefile.am:
22235 libs: always use built-in videoutils for GStreamer 0.10.
22236 GStreamer 0.10.36 is the latest and ultimate version to be released
22237 from the GStreamer 0.10 branch. i.e. no further releases are to be
22238 made. So, we can safely enable the built-in videoutils replacement
22239 now that they are in sync with the 0.10 branch.
22241 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22244 videoutils: update to master commit d4a15a5.
22245 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
22246 86096cc videodecoder: minor cosmetic changes to align a bit more with master
22247 b4b8b52 videodecoder: allow parse function to not use all data on adapter
22248 2145495 videodecoder: warn if frame list gets long
22249 36c3753 videodecoder: Also use the object lock to protect the output_state
22250 518c93d videodecoder: fix seeking again
22251 185fb63 video: Correct usage of the base class stream lock
22252 170e944 videodecoder: Expose _negotiate function
22254 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22257 * gst-libs/gst/vaapi/Makefile.am:
22258 * tests/Makefile.am:
22259 Fix build with GStreamer >= 1.3.
22260 http://bugzilla.gnome.org/show_bug.cgi?id=715183
22261 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22263 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22266 configure: disable encoders with GStreamer 0.10.
22267 Don't try to build video encoders for GStreamer 0.10. Support code is
22268 not there yet, and probably will never for such an ancient version.
22270 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22272 * gst/vaapi/gstvaapiencode.c:
22273 vaapiencode: fix error handling while allocating output buffers.
22274 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
22275 unmap the coded buffer prior to returning an error.
22277 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22279 * gst/vaapi/gstvaapiencode.c:
22280 vaapiencode: fix error handling in _finish() hook.
22281 Fix GstVideoEncoder::finish() implementation to really return possible
22282 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
22284 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22286 * gst/vaapi/gstvaapiencode.c:
22287 * gst/vaapi/gstvaapiencode.h:
22288 * gst/vaapi/gstvaapiencode_h264.c:
22289 * gst/vaapi/gstvaapiencode_h264.h:
22290 * gst/vaapi/gstvaapiencode_mpeg2.c:
22291 * gst/vaapi/gstvaapiencode_mpeg2.h:
22292 vaapiencode: minor clean-ups.
22293 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
22294 the GObject type system. We are guaranteed to only deal with the same
22295 plug-in element object.
22297 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22299 * gst/vaapi/gstvaapiencode.c:
22300 * gst/vaapi/gstvaapiencode_h264.c:
22301 * gst/vaapi/gstvaapiencode_mpeg2.c:
22302 vaapiencode: fix support for raw YUV sink buffers.
22303 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
22304 The most efficient way to do so is to let the vaapiencode elements
22305 allocate a buffer pool, and subsequently buffers from it. This means
22306 that upstream elements are expected to honour downstream pools.
22307 If upstream elements insist on providing their own allocated buffers
22308 to the vaapiencode elements, then it possibly would be more efficient
22309 to insert a vaapipostproc element before the vaapiencode element.
22310 This is because vaapipostproc currently has better support than other
22311 elements for "foreign" raw YUV buffers.
22313 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22315 * gst/vaapi/gstvaapiencode.c:
22316 vaapiencode: fix support for GStreamer 1.2.
22318 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
22320 * gst/vaapi/gstvaapiencode.c:
22321 * gst/vaapi/gstvaapiencode_h264.c:
22322 * gst/vaapi/gstvaapiencode_mpeg2.c:
22323 vaapiencode: initial port to GStreamer 1.2.
22324 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22326 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
22328 * gst/vaapi/Makefile.am:
22329 * gst/vaapi/gstvaapi.c:
22330 * gst/vaapi/gstvaapiencode_mpeg2.c:
22331 * gst/vaapi/gstvaapiencode_mpeg2.h:
22332 plugins: add mpeg2 encoder element.
22333 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
22334 is called "vaapiencode_mpeg2".
22336 - rate-control: rate control mode (default: cqp - constant QP)
22337 - bitrate: desired bitrate in kbps (default: auto-calculated)
22338 - key-period: maximal distance between two key frames (default: 30)
22339 - max-bframes: number of B-frames between I and P (default: 2)
22340 - quantizer: constant quantizer (default: 8)
22341 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22343 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
22345 * gst/vaapi/Makefile.am:
22346 * gst/vaapi/gstvaapi.c:
22347 * gst/vaapi/gstvaapiencode_h264.c:
22348 * gst/vaapi/gstvaapiencode_h264.h:
22349 plugins: add h264 encoder element.
22350 Add GstVaapiEncodeH264 element object. The actual plug-in element
22351 is called "vaapiencode_h264".
22353 - rate-control: rate control mode (default: none)
22354 - bitrate: desired bitrate in kbps (default: auto-calculated)
22355 - key-period: maximal distance between two key frames (default: 30)
22356 - num-slices: number of slices per frame (default: 1)
22357 - max-bframes: number of B-frames between I and P (default: 0)
22358 - min-qp: minimal quantizer (default: 1)
22359 - init-qp: initial quantizer (default: 26)
22360 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22362 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
22364 * gst/vaapi/Makefile.am:
22365 * gst/vaapi/gstvaapiencode.c:
22366 * gst/vaapi/gstvaapiencode.h:
22367 plugins: add base encoder element.
22368 vaapiencode element is based on GstVideoEncoder APIs.
22369 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22371 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
22373 * gst-libs/gst/vaapi/Makefile.am:
22374 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22375 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22376 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22377 encoder: add mpeg2 encoder.
22378 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
22379 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22381 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
22383 * gst-libs/gst/vaapi/Makefile.am:
22384 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22385 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22386 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22387 encoder: add h264 encoder.
22388 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22390 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
22393 * gst-libs/gst/vaapi/Makefile.am:
22394 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22395 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22396 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22397 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22398 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22399 Add initial infrastructure for video encoding.
22400 Add initial API for video encoding: only basic interfaces and small
22401 encoder objects are implemented so far.
22402 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22404 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
22407 * gst-libs/gst/Makefile.am:
22408 * gst-libs/gst/base/Makefile.am:
22409 * gst-libs/gst/base/gstbitwriter.c:
22410 * gst-libs/gst/base/gstbitwriter.h:
22411 * gst-libs/gst/vaapi/Makefile.am:
22412 libs: add generic bitstream writer.
22413 GstBitWriter provides a bit writer that can write any number of bits
22414 to a pre-allocated memory buffer. Helper functions are also provided
22415 to write any number of bits from 8, 16, 32 and 64 bit variables.
22416 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22418 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
22420 * gst-libs/gst/vaapi/gstvaapicontext.c:
22421 * gst-libs/gst/vaapi/gstvaapicontext.h:
22422 libs: add support for rate-control to GstVaapiContext.
22423 Extend GstVaapiContextInfo structure to hold the desired rate control
22424 mode for encoding purposes. For decoding purposes, this field is not
22425 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
22426 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22428 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
22430 * gst-libs/gst/vaapi/gstvaapitypes.h:
22431 * gst-libs/gst/vaapi/gstvaapiutils.c:
22432 * gst-libs/gst/vaapi/gstvaapiutils.h:
22433 * gst-libs/gst/vaapi/gstvaapivalue.c:
22434 * gst-libs/gst/vaapi/gstvaapivalue.h:
22435 libs: add rate-control attributes.
22436 Add GstVaapiRateControl types and GType values in view to supporting
22437 rate controls for encoding. This is meant to be used for instance in
22439 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22441 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22444 Bump version for development.
22446 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22448 * gst/vaapi/Makefile.am:
22449 build: fix for Wayland headers not in standard include dirs.
22450 Fix build when Wayland headers don't live in plain system include dirs
22451 like /usr/include but rather in /usr/include/wayland for instance.
22452 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
22453 https://bugzilla.gnome.org/show_bug.cgi?id=712282
22455 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
22457 * gst-libs/gst/vaapi/Makefile.am:
22458 build: link libgstvaapi-wayland against videoutils.
22459 This library is using symbols that don't exist in GStreamer 0.10 so
22460 it needs to link to built-in implementation (libgstvaapi-videoutils).
22461 https://bugzilla.gnome.org/show_bug.cgi?id=712282
22462 Signed-off-by: Ross Burton <ross.burton@intel.com>
22463 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22465 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22467 * gst-libs/gst/vaapi/gstvaapifilter.c:
22468 * gst/vaapi/gstvaapipostproc.c:
22469 vaapostproc: fix memory leaks.
22470 Destroy VPP output surface pool on exit. Also avoid a possible crash
22471 in double-free situation caused by insufficiently reference counted
22472 array of formats returned during initialization.
22474 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22476 * gst/vaapi/gstvaapipostproc.c:
22477 * gst/vaapi/gstvaapipostproc.h:
22478 vaapipostproc: fix and optimize advanced deinterlacing mode.
22479 Fix advanced deinterlacing modes with VPP to track only up to 2 past
22480 reference buffers. This used to be 3 past reference buffers but this
22481 doesn't fit with the existing decode pipeline that only has 4 extra
22483 Also optimize references tracking to be only enabled when needed, i.e.
22484 when advanced deinterlacing mode is used. This means that we don't
22485 need to track past references for basic bob or weave deinterlacing.
22487 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22489 * gst/vaapi/gstvaapipostproc.c:
22490 vaapipostproc: fix "mixed" mode deinterlacing.
22491 In "mixed" interlaced streams, the buffer contains additional flags that
22492 specify whether the frame contained herein is interlaced or not. This means
22493 that we can alternatively get progressive or interlaced frames. Make sure
22494 to disable deinterlacing at the VPP level when the source buffer is no longer
22497 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22499 * gst/vaapi/gstvaapipostproc.c:
22500 vaapipostproc: fix memory leaks with advanced deinterlacing.
22501 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
22502 of past buffers. Completely reset the deinterlace state, thus destroying
22503 any buffer currently held, on _start(), _stop() and _destroy().
22505 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22509 - GStreamer 1.2 APIs are supported ;
22510 - Video Processing (VA/VPP) features.
22512 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22515 README: update for GStreamer >= 1.0.x and VPP features.
22517 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22519 * gst-libs/gst/vaapi/glibcompat.h:
22520 * gst-libs/gst/vaapi/gstvaapicontext.h:
22521 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
22522 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
22523 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
22524 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
22525 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
22526 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
22527 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
22528 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
22529 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
22530 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
22531 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22532 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
22533 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
22534 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22535 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
22536 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
22537 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
22538 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22539 * gst-libs/gst/vaapi/gstvaapiimage.c:
22540 * gst-libs/gst/vaapi/gstvaapiimage.h:
22541 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
22542 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
22543 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22544 * gst-libs/gst/vaapi/gstvaapiobject.c:
22545 * gst-libs/gst/vaapi/gstvaapiobject.h:
22546 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22547 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22548 * gst-libs/gst/vaapi/gstvaapisurface.h:
22549 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
22550 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
22551 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
22552 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22553 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
22554 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
22555 * gst-libs/gst/vaapi/gstvaapitexture.c:
22556 * gst-libs/gst/vaapi/gstvaapitexture.h:
22557 * gst-libs/gst/vaapi/gstvaapitypes.h:
22558 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22559 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22560 * gst-libs/gst/vaapi/gstvaapivalue.c:
22561 * gst-libs/gst/vaapi/gstvaapivalue.h:
22562 * gst-libs/gst/vaapi/gstvaapivideopool.c:
22563 * gst-libs/gst/vaapi/gstvaapivideopool.h:
22564 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
22565 * gst-libs/gst/vaapi/gstvaapiwindow.c:
22566 * gst-libs/gst/vaapi/gstvaapiwindow.h:
22567 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
22568 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
22569 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22570 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
22571 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22572 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
22573 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22574 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
22575 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
22576 * gst/vaapi/gstvaapi.c:
22577 * gst/vaapi/gstvaapidecode.h:
22578 * gst/vaapi/gstvaapidownload.h:
22579 * gst/vaapi/gstvaapipluginutil.c:
22580 * gst/vaapi/gstvaapipluginutil.h:
22581 * gst/vaapi/gstvaapipostproc.h:
22582 * gst/vaapi/gstvaapisink.h:
22583 * gst/vaapi/gstvaapivideoconverter_glx.h:
22587 * tests/test-display.c:
22588 * tests/test-jpeg.c:
22589 * tests/test-jpeg.h:
22590 * tests/test-mpeg4.c:
22591 * tests/test-mpeg4.h:
22592 * tests/test-surfaces.c:
22593 * tests/test-windows.c:
22594 legal: update copyright notice dates.
22596 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22598 * gst-libs/gst/vaapi/glibcompat.h:
22599 * gst-libs/gst/vaapi/gstcompat.h:
22600 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22601 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22602 * gst-libs/gst/vaapi/gstvaapicompat.h:
22603 * gst-libs/gst/vaapi/gstvaapicontext.c:
22604 * gst-libs/gst/vaapi/gstvaapicontext.h:
22605 * gst-libs/gst/vaapi/gstvaapidebug.h:
22606 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22607 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22608 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
22609 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
22610 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22611 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
22612 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22613 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
22614 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22615 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
22616 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22617 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
22618 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22619 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22620 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22621 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
22622 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22623 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22624 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
22625 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22626 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22627 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
22628 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
22629 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
22630 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
22631 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
22632 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
22633 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22634 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22635 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
22636 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
22637 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22638 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
22639 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
22640 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
22641 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22642 * gst-libs/gst/vaapi/gstvaapifilter.c:
22643 * gst-libs/gst/vaapi/gstvaapifilter.h:
22644 * gst-libs/gst/vaapi/gstvaapiimage.c:
22645 * gst-libs/gst/vaapi/gstvaapiimage.h:
22646 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
22647 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
22648 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
22649 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
22650 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22651 * gst-libs/gst/vaapi/gstvaapiobject.c:
22652 * gst-libs/gst/vaapi/gstvaapiobject.h:
22653 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22654 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
22655 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
22656 * gst-libs/gst/vaapi/gstvaapipixmap.c:
22657 * gst-libs/gst/vaapi/gstvaapipixmap.h:
22658 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22659 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22660 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
22661 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22662 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22663 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22664 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
22665 * gst-libs/gst/vaapi/gstvaapisurface.c:
22666 * gst-libs/gst/vaapi/gstvaapisurface.h:
22667 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
22668 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
22669 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
22670 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22671 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
22672 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
22673 * gst-libs/gst/vaapi/gstvaapitexture.c:
22674 * gst-libs/gst/vaapi/gstvaapitexture.h:
22675 * gst-libs/gst/vaapi/gstvaapitypes.h:
22676 * gst-libs/gst/vaapi/gstvaapiutils.c:
22677 * gst-libs/gst/vaapi/gstvaapiutils.h:
22678 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22679 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22680 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22681 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22682 * gst-libs/gst/vaapi/gstvaapivalue.c:
22683 * gst-libs/gst/vaapi/gstvaapivalue.h:
22684 * gst-libs/gst/vaapi/gstvaapivideopool.c:
22685 * gst-libs/gst/vaapi/gstvaapivideopool.h:
22686 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
22687 * gst-libs/gst/vaapi/gstvaapiwindow.c:
22688 * gst-libs/gst/vaapi/gstvaapiwindow.h:
22689 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
22690 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
22691 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22692 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
22693 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22694 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22695 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
22696 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22697 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
22698 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
22699 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
22700 * gst-libs/gst/vaapi/sysdeps.h:
22701 * gst-libs/gst/vaapi/video-format.c:
22702 * gst-libs/gst/vaapi/video-format.h:
22703 * gst/vaapi/gstvaapi.c:
22704 * gst/vaapi/gstvaapidecode.c:
22705 * gst/vaapi/gstvaapidecode.h:
22706 * gst/vaapi/gstvaapidownload.c:
22707 * gst/vaapi/gstvaapidownload.h:
22708 * gst/vaapi/gstvaapipluginutil.c:
22709 * gst/vaapi/gstvaapipluginutil.h:
22710 * gst/vaapi/gstvaapipostproc.c:
22711 * gst/vaapi/gstvaapipostproc.h:
22712 * gst/vaapi/gstvaapisink.c:
22713 * gst/vaapi/gstvaapisink.h:
22714 * gst/vaapi/gstvaapiupload.c:
22715 * gst/vaapi/gstvaapiupload.h:
22716 * gst/vaapi/gstvaapiuploader.c:
22717 * gst/vaapi/gstvaapiuploader.h:
22718 * gst/vaapi/gstvaapivideobuffer.c:
22719 * gst/vaapi/gstvaapivideobuffer.h:
22720 * gst/vaapi/gstvaapivideobufferpool.c:
22721 * gst/vaapi/gstvaapivideobufferpool.h:
22722 * gst/vaapi/gstvaapivideocontext.c:
22723 * gst/vaapi/gstvaapivideocontext.h:
22724 * gst/vaapi/gstvaapivideoconverter_glx.c:
22725 * gst/vaapi/gstvaapivideoconverter_glx.h:
22726 * gst/vaapi/gstvaapivideoconverter_x11.c:
22727 * gst/vaapi/gstvaapivideoconverter_x11.h:
22728 * gst/vaapi/gstvaapivideomemory.c:
22729 * gst/vaapi/gstvaapivideomemory.h:
22730 * gst/vaapi/gstvaapivideometa.c:
22731 * gst/vaapi/gstvaapivideometa.h:
22732 * gst/vaapi/gstvaapivideometa_texture.c:
22733 * gst/vaapi/gstvaapivideometa_texture.h:
22742 * tests/simple-decoder.c:
22743 * tests/test-decode.c:
22744 * tests/test-decode.h:
22745 * tests/test-display.c:
22746 * tests/test-filter.c:
22747 * tests/test-h264.c:
22748 * tests/test-h264.h:
22749 * tests/test-jpeg.c:
22750 * tests/test-jpeg.h:
22751 * tests/test-mpeg2.c:
22752 * tests/test-mpeg2.h:
22753 * tests/test-mpeg4.c:
22754 * tests/test-mpeg4.h:
22755 * tests/test-surfaces.c:
22756 * tests/test-textures.c:
22757 * tests/test-vc1.c:
22758 * tests/test-vc1.h:
22759 * tests/test-windows.c:
22760 legal: add per-file authorship information.
22761 Credit original authors on a per-file basis as we cannot expect people
22762 to know all country-specific rules, or bother browsing through the git
22765 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22771 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22776 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22778 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22779 decoder: don't include obsolete headers.
22780 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
22781 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
22784 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22786 * gst/vaapi/Makefile.am:
22787 * gst/vaapi/gstvaapi.c:
22788 * gst/vaapi/gstvaapipostproc.c:
22789 vaapipostproc: add initial support for GStreamer 1.2.
22790 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
22791 right now so that to cope with auto-plugging issues/regressions. e.g.
22792 this happens when the correct set of expected caps are being exposed.
22793 This means that, currently, the proposed caps are not fully accurate.
22795 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
22797 * gst/vaapi/gstvaapipostproc.c:
22798 * gst/vaapi/gstvaapipostproc.h:
22799 vaapipostproc: add support for denoise and sharpen filters.
22800 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22802 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22804 * gst/vaapi/gstvaapipostproc.c:
22805 * gst/vaapi/gstvaapipostproc.h:
22806 vaapipostproc: add support for advanced deinterlacing.
22807 Add initial support for advanced deinterlacing. The history buffer
22808 size is arbitrarily set to 3 references for now.
22810 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22812 * gst/vaapi/gstvaapipostproc.c:
22813 vaapipostproc: fix deinterlacing with VPP.
22814 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
22815 for the first field. Render flags were supplied instead of the actual
22816 deinterlacing flags (deint_flags).
22818 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22820 * gst/vaapi/gstvaapipostproc.c:
22821 vaapipostproc: fix transform caps.
22822 Fix GstBaseTransform::transform_caps() implementation to always return
22823 the complete set of allowed sink pad caps (unfixated) even if the src
22824 pad caps we are getting are fixated. Rationale: there are just so many
22825 possible combinations, and it was wrong to provide a unique set anyway.
22826 As a side effect, this greatly simplifies the ability to derive src pad
22827 caps from fixated sink pad caps.
22829 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
22831 * docs/reference/libs/libs-sections.txt:
22832 * gst-libs/gst/vaapi/gstvaapifilter.c:
22833 * gst-libs/gst/vaapi/gstvaapifilter.h:
22834 filter: add helper to specify references for deinterlacing.
22835 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
22836 list of surfaces used for forward or backward reference in advanced
22837 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
22838 The list of surfaces used as deinterlacing references shall be live
22839 until the next call to gst_vaapi_filter_process().
22840 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22842 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22844 * gst-libs/gst/vaapi/gstvaapifilter.c:
22845 * gst-libs/gst/vaapi/gstvaapifilter.h:
22846 * gst-libs/gst/vaapi/gstvaapiutils.c:
22847 * gst/vaapi/gstvaapipostproc.c:
22848 * tests/test-filter.c:
22849 filter: fix semantics of deinterlacing flags.
22850 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
22851 flag is meant to specify the organization of reference frames used in
22852 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
22853 to specify that the top-field of the supplied input surface is to be
22854 used for deinterlacing. Conversely, if not set, this means that the
22855 bottom field of the supplied input surface will be used instead.
22857 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22859 * docs/reference/libs/libs-sections.txt:
22860 * gst-libs/gst/vaapi/gstvaapifilter.c:
22861 * gst-libs/gst/vaapi/gstvaapifilter.h:
22862 filter: add helpers to check for supported/active operation.
22863 Add a couple of helper functions:
22864 - gst_vaapi_filter_has_operation(): checks whether the VA driver
22865 advertises support for the supplied operation ;
22866 - gst_vaapi_filter_use_operation(): checks whether the supplied
22867 operation was already enabled to its non-default value.
22869 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22871 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22872 libs: fix GstVaapiSurfaceProxy destroy notify call site.
22873 The user-defined destroy notify function is meant to be called only when
22874 the surface proxy was fully released, i.e. once it actually released the
22875 VA surface back to the underlying pool.
22877 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
22879 * gst-libs/gst/vaapi/gstvaapivideopool.c:
22880 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
22881 libs: make GstVaapiVideoPool thread-safe.
22882 https://bugzilla.gnome.org/show_bug.cgi?id=707108
22883 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22885 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
22887 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22888 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22889 libs: robustify decoder objects and surface proxy initialization.
22890 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
22891 sequences to have the expected default values set beforehand in case of an
22892 error raising up further during creation. i.e. make it possible to cleanly
22893 destroy those partially initialized objects.
22894 https://bugzilla.gnome.org/show_bug.cgi?id=707108
22895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22897 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22899 * gst/vaapi/gstvaapidecode.c:
22900 vaapidecode: fix decoder flush.
22901 There are situations where gst_video_decoder_flush() is called, and
22902 this subsequently produces a gst_video_decoder_reset() that kills the
22903 currently active GstVideoCodecFrame. This means that it no longer
22904 exists by the time we reach GstVideoDecoder::finish() callback, thus
22905 possibly resulting in a crash if we assumed spare data was still
22906 available for decode (current_frame_size > 0).
22907 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
22908 that means a flush, thus performing the actual operations there like
22909 calling gst_video_decoder_have_frame() if pending data is available.
22911 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22913 * gst/vaapi/gstvaapidecode.c:
22914 * gst/vaapi/gstvaapidecode.h:
22915 vaapidecode: fix dead-locks with decoder task.
22916 Review all interactions between the main video decoder stream thread
22917 and the decode task to derive a correct sequence of operations for
22918 decoding. Also avoid extra atomic operations that become implicit under
22919 the GstVideoDecoder stream lock.
22921 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
22923 * gst/vaapi/gstvaapidecode.c:
22924 vaapidecode: fix hard reset for seek cases.
22925 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
22926 and completely purge any decoded output frame that may come out from
22927 it. At this stage, the GstVaapiDecoder shall be in a complete clean
22928 state to start decoding over new buffers.
22929 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22931 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
22933 * gst/vaapi/gstvaapidecode.c:
22934 * gst/vaapi/gstvaapidecode.h:
22935 vaapidecode: drop decode timeout, always wait for a free surface.
22936 vaapidecode used to wait up to one second past the expected time of
22937 presentation for the last decoded frame. This is not realistic in
22938 practice when it comes to video pause/resume. Changed behaviour to
22939 unconditionnally wait for a free VA surface prior to continuing the
22940 decoding. The decode task will continue pushing the output frames to
22941 the downstream element while also reporting errors at the same time
22942 to the main thread.
22943 https://bugzilla.gnome.org/show_bug.cgi?id=707108
22944 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22946 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22948 * gst/vaapi/gstvaapidecode.c:
22949 vaapidecode: fix srcpad caps for GStreamer 1.2.
22950 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
22951 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
22952 that it relied on possibly un-initialized data. Fix srcpad caps to be
22953 initialized from a sanitized copy of GstVideoDecoder output state caps.
22954 Note: the correct way to expose the srcpad caps triggers an additional
22955 issue in core GStreamer auto-plugging capabilities as the correct caps
22956 to be exposed should be format=ENCODED with memory:VASurface caps feature
22957 at the minimum. In some situations, we could determine the underlying
22958 VA surface format, but this is not always possible. e.g. cases where it
22959 is not allowed to expose the underlying VA surface data, or when the
22960 VA driver implementation cannot actually provide such information.
22962 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22964 * gst/vaapi/gstvaapidecode.c:
22965 * gst/vaapi/gstvaapisink.c:
22966 plugins: streamline VA formats exposed in caps to a realistic set.
22967 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
22968 output formats for GStreamer 1.2 in caps to a realistic subset. This
22969 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
22970 underlying VA surface format, or if it is actually not allowed to get
22971 access to the surface contents.
22973 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22975 * gst/vaapi/gstvaapidecode.c:
22976 * gst/vaapi/gstvaapisink.c:
22977 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
22978 Fix vaapidecode srcpad caps to only expose RGBA video format for the
22979 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
22980 so far. Besides, drop this meta from the vaapisink sinkpad caps since
22981 we really don't support that for rendering.
22982 https://bugzilla.gnome.org/show_bug.cgi?id=711828
22984 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22987 configure: automatically detect GStreamer API version.
22988 Automatically detect GStreamer API version. The --with-gstreamer-api
22989 configure option now defaults to "autodetect" and configure then tries
22990 to derive the GStreamer API version from the highest version based on
22991 what pkg-config --modversion would report.
22992 https://bugzilla.gnome.org/show_bug.cgi?id=711657
22994 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
22996 * gst/vaapi/gstvaapipostproc.c:
22997 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
22998 Fix raw YUV data uploaded as in the following pipeline:
22999 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
23000 The main reason why it failed was that the videoparse element simply
23001 allocates GstBuffer with raw data chunk'ed off the sink pad without
23002 any prior knowledge of the actual frame info. i.e. it basically just
23003 calls gst_adapter_take_buffer().
23004 We could avoid the extra copy performed in vaapipostproc if the videoparse
23005 element was aware of the downstream pool and bothers copying line by
23006 line, for each plane. This means that, for a single frame per buffer,
23007 the optimizatin will be to allocate the video buffer downstream, map
23008 it, and copy each line that is coming through until we need to fills
23009 in the successive planes.
23010 Still, optimized raw YUV uploads already worked with the following:
23011 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
23012 https://bugzilla.gnome.org/show_bug.cgi?id=711250
23013 [clean-ups, fixed error cases to unmap and unref outbuf]
23014 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23016 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23018 * gst/vaapi/gstvaapipostproc.c:
23019 vaapipostproc: try to downgrade deinterlace-method when needed.
23020 If the currently selected deinterlacing method is not supported by the
23021 underlying hardware, then try to downgrade the method to a supported one.
23022 At the minimum, basic bob-deinterlacing shall always be supported.
23024 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23026 * gst/vaapi/gstvaapipostproc.c:
23027 vaapipostproc: add initial support for deinterlacing with VPP.
23028 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
23029 this only covers bob-deinterlacing when the output pixel format is
23032 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23034 * gst/vaapi/gstvaapipostproc.c:
23035 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
23036 The size argument for GstBaseTransform::transform_size() hook is a
23037 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
23039 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23041 * gst/vaapi/gstvaapipostproc.c:
23042 * gst/vaapi/gstvaapipostproc.h:
23043 vaapipostproc: add initial support for scaling.
23044 Add initial support for basic scaling with size specified through the
23045 "width" and "height" properties. If either user-provided dimension is
23046 zero and "force-aspect-ratio" is set to true (the default), then the
23047 other dimension is scaled to preserve the aspect ratio.
23049 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23051 * gst/vaapi/gstvaapipostproc.c:
23052 * gst/vaapi/gstvaapipostproc.h:
23053 vaapipostproc: add initial support for color conversion.
23054 If VPP is available, we always try to implicitly convert the source
23055 buffer to the "native" surface format for the underlying accelerator.
23056 This means that no optimization is performed yet to propagate raw YUV
23057 buffers to the downstream element as is, if VPP is available. i.e. it
23058 will always cause a color conversion.
23060 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23062 * gst/vaapi/gstvaapipostproc.c:
23063 vaapipostproc: fix bug when user disabled deinterlacing.
23064 Fix pipeline error / hang when the user disabled deinterlacing through
23065 the deinterlace-mode=disabled property setting.
23067 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23069 * gst/vaapi/gstvaapipostproc.c:
23070 * gst/vaapi/gstvaapipostproc.h:
23071 vaapipostproc: factor out operations to be applied into flags.
23072 Even if we only support deinterlacing for now, use flags to specify
23073 which filters are to be applied to each frame we receive in transform().
23074 This is preparatory work for integrating new filters.
23076 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23078 * gst/vaapi/gstvaapipostproc.c:
23079 * gst/vaapi/gstvaapipostproc.h:
23080 vaapipostproc: add support for raw YUV video source buffers.
23081 Allow video processing from raw YUV buffers coming from the sink pad,
23082 while still producing a VA surface for the downstream elements.
23084 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23086 * gst/vaapi/gstvaapipluginutil.c:
23087 * gst/vaapi/gstvaapipluginutil.h:
23088 * gst/vaapi/gstvaapipostproc.c:
23089 vaapipostproc: add support for "mixed" interlace mode.
23090 Add support for "mixed" interlace-mode, whereby the video frame buffer
23091 shall be deinterlaced only if its flags mention that's actually an
23092 interlaced frame buffer.
23094 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23096 * gst-libs/gst/vaapi/gstcompat.h:
23097 * gst/vaapi/gstvaapipostproc.c:
23098 * gst/vaapi/gstvaapipostproc.h:
23099 * gst/vaapi/gstvaapivideobuffer.c:
23100 * gst/vaapi/gstvaapivideobuffer.h:
23101 vaapipostproc: rework plug-in element.
23102 Rewrite the vaapipostproc plug-in element so that it derives from
23103 GstBaseTransform, thus simplifying the caps negotiation process.
23105 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23107 * gst/vaapi/gstvaapivideobufferpool.c:
23108 * gst/vaapi/gstvaapivideomemory.c:
23109 * gst/vaapi/gstvaapivideomemory.h:
23110 plugins: fix and optimize check for buffer pool allocator params.
23111 Reset the buffer pool allocator only if the config caps changed in a
23112 sensible way: format or resolution change. i.e. don't bother with
23113 other caps like colorimetry et al. as this doesn't affect the way to
23114 allocate VA surfaces or images.
23116 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23118 * gst/vaapi/gstvaapivideomemory.c:
23119 plugins: enable memory maps for read & write with direct-rendering.
23120 Enable read and write mappings only if direct-rendering is supported.
23121 Otherwise, this means that we may need to download data from the VA
23122 surface first for correctness, even if the VA surface doesn't need to
23123 be read at all. i.e. sometimes, READWRITE mappings are meant for
23124 surfaces that are written to first, and read afterwards for further
23126 https://bugzilla.gnome.org/show_bug.cgi?id=704078
23128 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23130 * gst/vaapi/gstvaapivideomemory.c:
23131 plugins: fix check for direct-rendering support.
23132 Fix check for direct-rendering if the creation of VA surfaces with
23133 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
23134 that we tried to allocate a VA surface based on the corresponding
23135 chroma type. i.e. in that particular case, we have to make sure that
23136 the derived image has actually the expected format.
23138 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23140 * gst/vaapi/gstvaapivideobufferpool.c:
23141 * gst/vaapi/gstvaapivideomemory.c:
23142 * gst/vaapi/gstvaapivideomemory.h:
23143 plugins: fix buffer pool reset_buffer() to reset memory resources.
23144 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
23145 memory resources, and more particularly the VA surface proxy. Most
23146 importantly, the GstVaapiVideoMeta is retained. Cached surface in
23147 memory are released, thus triggering a new allocation the next time
23148 we need to map the buffer.
23150 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23152 * gst/vaapi/gstvaapivideomemory.c:
23153 * gst/vaapi/gstvaapivideomemory.h:
23154 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
23155 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
23156 pool stored in the parent VA memory allocator.
23157 This fixes the following scenario:
23158 - VA video buffer 1 is allocated from a buffer pool
23159 - Another video buffer is created, and inherits info from buffer 1
23160 - Buffer 1 is released, thus pushing it back to the buffer pool
23161 - New buffer alloc request comes it, this yields buffer 1 back
23162 - At this stage, buffers 1 and 2 still share the same underlying VA
23163 surface, but buffer 2 was already submitted downstream for further
23164 processing, thus conflicting with additional processing we were
23165 about to perform on buffer 1.
23166 Maybe the core GstBufferPool implementation should have been fixed
23167 instead to actually make sure that the returned GstBuffer memory we
23168 found from the pool is writable?
23170 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23172 * gst/vaapi/gstvaapiuploader.c:
23173 plugins: create a proxy for GstVaapiUploader allocated buffers.
23174 Always make sure to allocate a VA surface proxy for GstVaapiUploader
23175 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
23177 This fixes cases where we want to retain the underlying surface longer,
23178 instead of releasing it back to the surface pool right away.
23180 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23182 * gst/vaapi/gstvaapidecode.c:
23183 * gst/vaapi/gstvaapipluginutil.c:
23184 * gst/vaapi/gstvaapipluginutil.h:
23185 * gst/vaapi/gstvaapipostproc.c:
23186 plugins: add helper function to disable deinterlacing in caps.
23187 Add gst_caps_set_interlaced() helper function that would reset the
23188 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
23189 interlaced field to "false" for GStreamer 0.10.
23191 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23193 * gst-libs/gst/vaapi/gstvaapifilter.c:
23194 filter: fix memory leak of VPP operations.
23195 Fix ensure_operations() to release the VPP operations array if non
23196 NULL, prior to returning to the caller. The former function was also
23197 renamed to a more meaningful get_operations() since the caller owns
23198 the returned array that needs to be released.
23200 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
23202 * gst-libs/gst/vaapi/gstvaapifilter.c:
23203 filter: fix first-time operation lookup.
23204 Fix first-time operation lookup through find_operation() if the set
23205 of supported operations was not initially determined through the
23206 gst_vaapi_filter_get_operations() helper function.
23207 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23209 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
23211 * gst-libs/gst/vaapi/gstvaapifilter.c:
23212 filter: fix colorbalance related subtypes.
23213 Fix intiialization of GstVaapiFilterOpData for colorbalance related
23214 operations. In particular, fill in the va_subtype field accordingly.
23215 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23217 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23219 * gst-libs/gst/vaapi/gstvaapifilter.c:
23220 filter: fix VA-API 0.34.0 symbol guards.
23221 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
23222 that need to be guarded for libva 0.34 and 0.33, respectively.
23223 https://bugzilla.gnome.org/show_bug.cgi?id=709102
23224 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23226 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23228 * gst/vaapi/gstvaapidecode.c:
23229 * gst/vaapi/gstvaapipluginutil.c:
23230 * gst/vaapi/gstvaapisink.c:
23231 plugins: hanle the context query in any pad.
23232 Also this patch simplifies the code, since now the query is common for the
23233 decoder and the sink.
23234 https://bugzilla.gnome.org/show_bug.cgi?id=709200
23236 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23238 * gst/vaapi/gstvaapivideocontext.c:
23239 plugins: query upstream element for a GstContext.
23240 Fix gst_vaapi_video_context_prepare() to also query upstream elements
23241 for a valid GstContext. Improve comments regarding the steps used to
23242 lookup or build that context, thus conforming to the GstContext API
23244 https://bugzilla.gnome.org/show_bug.cgi?id=709112
23245 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23247 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23250 * debian.upstream/control.in:
23251 Fix detection and packaging of GStreamer 1.2.x builds.
23252 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
23253 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
23254 purposes, update the versioning to -1.2 suffix instead.
23256 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23258 * gst/vaapi/Makefile.am:
23259 * gst/vaapi/gstvaapidecode.c:
23260 * gst/vaapi/gstvaapidecode.h:
23261 * gst/vaapi/gstvaapisink.c:
23262 * gst/vaapi/gstvaapivideometa_texture.c:
23263 * gst/vaapi/gstvaapivideometa_texture.h:
23264 plugins: add support for GstVideoGLTextureUploadMeta.
23265 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
23266 requested, and more specifically under a GLX configuration, then add
23267 the GstVideoGLTextureUploadMeta to the output buffer.
23268 https://bugzilla.gnome.org/show_bug.cgi?id=703236
23269 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23271 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23273 * gst/vaapi/gstvaapidecode.c:
23274 * gst/vaapi/gstvaapisink.c:
23275 * gst/vaapi/gstvaapivideomemory.h:
23276 plugins: add support for GstCaps features.
23277 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
23278 as expressed in caps, to the more standard use of caps features. i.e.
23279 add "memory:VASurface" feature attribute to the associated caps.
23280 https://bugzilla.gnome.org/show_bug.cgi?id=703271
23281 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23283 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23285 * gst/vaapi/gstvaapidecode.c:
23286 * gst/vaapi/gstvaapisink.c:
23287 plugins: improve ::query() debugging messages.
23288 Fix gst_vaapidecode_query() to correctly display the query type name,
23289 instead of randomly displaying that we shared the underlying display.
23290 Also add debug info for the GstVaapiSink::query() handler, i.e. the
23291 supplied query type name actually.
23292 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23294 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23296 * gst/vaapi/gstvaapidecode.c:
23297 * gst/vaapi/gstvaapisink.c:
23298 plugins: add support for GstContext API.
23299 Add support for the new GstContext API from GStreamer 1.2.x.
23300 - implement the GstElement::set_context() hook ;
23301 - reply to the `context' query from downstream elements.
23302 https://bugzilla.gnome.org/show_bug.cgi?id=703235
23303 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23305 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23307 * gst/vaapi/Makefile.am:
23308 * gst/vaapi/gstvaapipluginutil.c:
23309 * gst/vaapi/gstvaapivideocontext.c:
23310 * gst/vaapi/gstvaapivideocontext.h:
23311 plugins: add compat layer for GstVideoContext.
23312 Add thin compatibility layer for the deprecated GstVideoContext API.
23313 For GStreamer API >= 1.2, this involves the following two functions:
23314 - gst_vaapi_video_context_prepare(): queries if a context is already
23315 set in the pipeline ;
23316 - gst_vaapi_video_context_propagate(): propagates the newly-created
23317 context to the rest of the pipeline.
23318 https://bugzilla.gnome.org/show_bug.cgi?id=703235
23319 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23321 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
23324 * gst/vaapi/Makefile.am:
23325 * gst/vaapi/gstvaapi.c:
23326 * gst/vaapi/gstvaapidecode.c:
23327 * gst/vaapi/gstvaapipluginutil.c:
23328 * gst/vaapi/gstvaapisink.c:
23329 * gst/vaapi/gstvaapivideobuffer.c:
23330 plugins: initial port to GStreamer 1.2.
23331 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
23332 is rather minimalistic so that to test the basic functionality.
23333 Disable vaapipostproc plugin for now as further polishing is needed.
23334 Also disable GstVideoContext interface support since this API is now
23335 gone in 1.2.x. This is preparatory work for GstContext support.
23336 https://bugzilla.gnome.org/show_bug.cgi?id=703235
23337 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23339 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23341 * tests/simple-decoder.c:
23342 tests: simple-decoder: fix for non-X11 backends.
23343 Don't try to create pixmaps if we have not requested that feature. This
23344 fixes execution for non-X11 backends, and most specifically DRM video
23347 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23349 * ext/codecparsers:
23350 codecparsers: update to gst-vaapi-branch commit b33bd32.
23351 b33bd32 jpeg: fix and optimize scan for next marker code
23353 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23355 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23356 jpeg: fix calculation of MCU count.
23357 Fix calculation of MCU count for image sizes that are not a multiple
23358 of 8 pixels in either dimension, but also for non-common sampling
23359 factors like 4:2:2 in non-interleaved mode.
23361 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23363 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23364 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23365 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23366 jpeg: add support for multiscan images.
23367 Add support for images with multiple scans per frame. The Huffman table
23368 can be updated before SOS, and thus possibly requiring multiple uploads
23369 of Huffman tables to the VA driver. So, the latter must be able to cope
23370 with multiple VA buffers of type 'huffman-table' and with the correct
23373 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23375 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23376 jpeg: improve robustness when packets are missing.
23377 Improve robustness when some expected packets where not received yet
23378 or that were not correctly decoded. For example, don't try to decode
23379 a picture if there was no valid frame headers.
23381 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23383 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23384 jpeg: minor clean-ups.
23385 Improve debugging and error messages. Rename a few variables to fit the
23386 existing naming conventions. Change some fatal asserts to non-fatal
23389 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23391 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23392 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23393 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
23394 jpeg: rework and optimize parser.
23395 Split the input buffer data into decoder units that represent a JPEG
23396 segment. Handle scan decoder unit specifically so that it can include
23397 both the scan header (SOS) but also any other ECS or RSTi segment.
23398 That way, we parse the input buffer stream only once at the gst-vaapi
23399 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
23400 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
23401 determine segment boundaries and decode them.
23402 In practice, this is a +15 to +25% performance improvement.
23404 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
23406 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23407 jpeg: handle comment segments.
23408 Fix decode_buffer() function to gracefully skip comment (COM) segments.
23409 This fixes decoding of streams generated by certain cameras, e.g. like
23410 the Logitech Pro C920.
23411 https://bugzilla.gnome.org/show_bug.cgi?id=708208
23412 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
23414 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23416 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23417 jpeg: fix determination of image bounds.
23418 Look for the exact image bounds characterised by the <SOI> and <EOI>
23419 markers. Use the gst_jpeg_parse() codec parser utility function to
23420 optimize the lookup for the next marker segment.
23421 https://bugzilla.gnome.org/show_bug.cgi?id=707447
23423 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
23425 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23426 jpeg: fix calculation of offset to next marker segment.
23427 Fix calculation of the offset to the next marker segment since the
23428 correction of the codecparser part to match the API specification.
23429 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
23430 of the segment minus any marker prefix.
23431 https://bugzilla.gnome.org/show_bug.cgi?id=707447
23432 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
23434 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23436 * ext/codecparsers:
23437 codecparsers: update to gst-vaapi-branch commit 23c7dde.
23438 23c7dde jpeg: fix calculation of segment size
23440 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23443 Bump version for development.
23445 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23451 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23456 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
23459 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23460 configure: fix detection of VA/JPEG decoding API.
23461 Fix detection of VA/JPEG decoding API with non-standard libva packages.
23462 More precisely, some packages were shipping with a <va/va.h> header that
23463 did not include <va/va_dec_jpeg.h>.
23464 https://bugzilla.gnome.org/show_bug.cgi?id=706055
23465 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23467 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
23469 * gst/vaapi/gstvaapisink.c:
23470 vaapisink: ensure the uploader is setup for upstream allocated buffers.
23471 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
23472 is setup in case upstream elements allocate buffers themselves without
23473 honouring our GstVaapiSink::bufer_alloc() hook.
23474 In particular, this fixes support for OGG video streams with WebKit.
23475 https://bugzilla.gnome.org/show_bug.cgi?id=703934
23476 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23478 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23480 * gst/vaapi/gstvaapisink.c:
23481 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
23482 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
23485 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23487 * gst/vaapi/gstvaapisink.c:
23488 * gst/vaapi/gstvaapisink.h:
23489 vaapisink: handle raw buffers not created from VA video buffer pool.
23490 Handle raw video buffers that were not created from a VA video buffer
23491 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
23492 builds instead of the GstVaapiUploader.
23493 https://bugs.freedesktop.org/show_bug.cgi?id=55818
23495 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23497 * gst/vaapi/gstvaapidecode.c:
23498 vaapidecode: remove extraneous size information from allowed caps.
23499 Fix _getcaps() implementation to not report codecs with size information
23500 filled in the returned caps. That's totally useless nowadays. Ideally,
23501 this is a hint to insert a video parser element, thus allowing future
23502 optimizations, but this is not a strict requirement for gstreamer-vaapi,
23503 which is able to parse the elementary bitstreams itself.
23504 https://bugzilla.gnome.org/show_bug.cgi?id=704734
23506 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
23508 * gst/vaapi/gstvaapidecode.c:
23509 * gst/vaapi/gstvaapidecode.h:
23510 vaapidecode: submit the last frame from output adapter to decoder.
23511 If there is no frame delimiter at the end of the stream, e.g. no
23512 end-of-stream or end-of-sequence marker, and that the current frame
23513 was fully parsed correctly, then assume that last frame is complete
23514 and submit it to the decoder.
23515 https://bugzilla.gnome.org/show_bug.cgi?id=705123
23516 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
23517 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23519 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23521 * gst/vaapi/gstvaapidecode.c:
23522 * gst/vaapi/gstvaapidecode.h:
23523 vaapidecode: push all decoded frames from within the task.
23524 Make sure to push all decoded frames from the task so that the unlying
23525 VA surfaces could all be rendered from the same thread.
23527 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23529 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23530 wayland: render the raw surface if VPP failed.
23531 As a last resort, if video processing capabilities (VPP) are not available,
23532 or they did not produce anything conclusive enough, then try to fallback to
23533 the original rendering code path whereby the whole VA surface is rendered
23534 as is, no matter of video cropping or deinterlacing requests.
23535 Note: under those conditions, the visual outcome won't be correct but at
23536 least, something gets displayed instead of bailing out.
23538 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23540 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23541 wayland: add supporting for video processing.
23542 Try to use VA/VPP processing capabilities to handle video cropping and
23543 additional rendering flags that may not be directly supported by the
23544 underlying hardware when exposing a suitable Wayland buffer for the
23545 supplied VA surface. e.g. deinterlacing, different color primaries than
23548 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23550 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23551 wayland: add new frame redraw infrastructure.
23552 Update the frame redraw infrastructure with a new FrameState stucture
23553 holds all the necessary information used to display the next pending
23555 While we are at it, delay the sync operation down to when it is actually
23556 needed. That way, we keep performing additional tasks meanwhile.
23558 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23560 * docs/reference/libs/libs-sections.txt:
23561 * gst-libs/gst/vaapi/gstvaapifilter.c:
23562 * gst-libs/gst/vaapi/gstvaapifilter.h:
23563 filter: allow specification of render target regions.
23564 Add support for rendering the source surface to a particular region within
23565 the supplied target surface. The default background color is black.
23567 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23569 * gst/vaapi/gstvaapivideobuffer.c:
23570 decode: fix creation of GLX video buffers for GStreamer 0.10.
23571 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
23572 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
23574 This fixes support for cluttersink with GStreamer 0.10 builds.
23576 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23578 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23579 mpeg2: disable video cropping as picture_display_extension() is missing.
23580 Disable video cropping in MPEG-2 codec because it is partially implemented
23581 and actually because nobody implements it that way, and the standard spec
23582 does not specify the display process either anyway.
23583 Most notably, there are two possible use cases for sequence_display_extension()
23584 horizontal_display_size & vertical_display_size: (i) guesstimating the
23585 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
23586 in conjunction with picture_display_extension() information.
23587 https://bugzilla.gnome.org/show_bug.cgi?id=704848
23589 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
23591 * gst/vaapi/gstvaapisink.c:
23592 * gst/vaapi/gstvaapisink.h:
23593 vaapisink: allow scaling to ignore aspect ratio.
23594 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
23595 which allows you to say that you don't want the sink to respect aspect
23596 ratio. Add the same property to vaapisink.
23597 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
23598 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
23600 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
23602 * gst/vaapi/gstvaapisink.c:
23603 vaapisink: fix memory leak of GstVaapiUploader instance.
23604 Make sure gst_vaapisink_ensure_uploader() checks for the existence
23605 of a former GstVaapiUploader instance prior to forcibly creating a
23607 https://bugzilla.gnome.org/show_bug.cgi?id=703980
23609 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
23611 * gst/vaapi/gstvaapisink.c:
23612 vaapisink: fix get_caps() implementation for GStreamer 1.0.
23613 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
23614 by honouring the filter caps argument. More precisely, this fixes the
23615 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
23616 https://bugzilla.gnome.org/show_bug.cgi?id=705192
23617 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
23618 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23620 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23622 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23623 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
23624 This fixes the following issue:
23625 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
23626 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
23627 'GstVaapiDecoderMpeg4Class'
23628 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
23629 'GstVaapiDecoderMpeg4Class' was here
23630 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
23631 make[5]: Leaving directory
23632 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
23633 https://bugzilla.gnome.org/show_bug.cgi?id=705148
23635 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23637 * tests/test-filter.c:
23638 tests: filter: add support for deinterlacing.
23639 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
23640 deinterlacing filter. However, if --deinterlace option is not set but the
23641 --deinterlace-flags option is set with "top-field-first", then the very
23642 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
23644 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
23646 * tests/test-filter.c:
23647 tests: filter: add support for denoising and sharpening.
23648 Add --denoise option to enable noise reduction with the level specified
23649 as the option value (float). Likewise, add --sharpen option to enable
23651 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23653 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23655 * tests/test-filter.c:
23656 tests: filter: add support for frame cropping.
23657 Add support for frame cropping through the --crop-rect|-c argument.
23658 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
23659 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
23661 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23663 * tests/test-filter.c:
23664 tests: filter: dump supported operations and formats.
23666 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
23668 * tests/Makefile.am:
23669 * tests/test-filter.c:
23670 tests: add initial test for video processing.
23671 Add minimal test case for video processing: scaling and color format
23673 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23675 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
23677 * docs/reference/libs/libs-sections.txt:
23678 * gst-libs/gst/vaapi/gstvaapifilter.c:
23679 * gst-libs/gst/vaapi/gstvaapifilter.h:
23680 * gst-libs/gst/vaapi/gstvaapiutils.c:
23681 * gst-libs/gst/vaapi/gstvaapiutils.h:
23682 * gst/vaapi/gstvaapipostproc.c:
23683 * gst/vaapi/gstvaapipostproc.h:
23684 filter: add initial support for deinterlacing.
23685 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
23686 the selected field from the input surface is kept for the target surface.
23687 Setting gst_vaapi_filter_set_deinterlacing() method argument to
23688 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
23689 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
23690 to libgstvaapi core library.
23691 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23693 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
23695 * docs/reference/libs/libs-sections.txt:
23696 * gst-libs/gst/vaapi/gstvaapifilter.c:
23697 * gst-libs/gst/vaapi/gstvaapifilter.h:
23698 filter: add support for color balance adjustment.
23699 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
23700 and contrast. The respective range for each filter shall be the same as
23701 for the VA display attributes.
23702 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23704 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
23706 * docs/reference/libs/libs-sections.txt:
23707 * gst-libs/gst/vaapi/gstvaapifilter.c:
23708 * gst-libs/gst/vaapi/gstvaapifilter.h:
23709 filter: add support for sharpening.
23710 Sharpening is configured with a float value. The supported range is
23711 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
23713 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23715 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
23717 * docs/reference/libs/libs-sections.txt:
23718 * gst-libs/gst/vaapi/gstvaapifilter.c:
23719 * gst-libs/gst/vaapi/gstvaapifilter.h:
23720 filter: add support for denoising.
23721 Noise reduction is configured with a float value. The supported range
23722 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
23724 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23726 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23728 * docs/reference/libs/libs-sections.txt:
23729 * gst-libs/gst/vaapi/gstvaapifilter.c:
23730 * gst-libs/gst/vaapi/gstvaapifilter.h:
23731 filter: add support for frame cropping.
23732 Frame cropping is defined with a GstVaapiRectangle value. The default
23733 behaviour is to treat the source surface as a whole
23735 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23737 * gst-libs/gst/vaapi/gstvaapifilter.c:
23738 filter: add helper functions.
23739 Add helper functions to ensure an operation VA buffer is allocated to
23740 the right size; that filter caps get parsed and assigned to the right
23741 operation too; and that float parameters are correctly scaled to fit
23742 the reported range from the VA driver.
23744 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23747 * docs/reference/libs/libs-docs.xml.in:
23748 * docs/reference/libs/libs-sections.txt:
23749 * gst-libs/gst/vaapi/Makefile.am:
23750 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23751 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23752 * gst-libs/gst/vaapi/gstvaapifilter.c:
23753 * gst-libs/gst/vaapi/gstvaapifilter.h:
23754 Add initial infrastructure for video processing.
23755 Add initial API for video processing: only scaling and color format
23756 conversion operations are supported.
23758 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23760 * gst-libs/gst/vaapi/video-format.c:
23761 * gst-libs/gst/vaapi/video-format.h:
23762 libs: add gst_vaapi_video_format_from_string() helper.
23763 Add gst_vaapi_video_format_from_string() helper function to convert from
23764 a video format string representation to a suitable GstVideoFormat. This
23765 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
23766 builds, and a proper iteration over all GstVideoFormat string representations
23767 otherwise for earlier GStreamer 0.10.x builds.
23769 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23771 * gst-libs/gst/vaapi/video-format.c:
23772 * gst-libs/gst/vaapi/video-format.h:
23773 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
23774 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
23775 VA fourcc value to a suitable GstVideoFormat.
23777 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23779 * gst-libs/gst/vaapi/gstvaapivalue.c:
23780 * gst-libs/gst/vaapi/gstvaapivalue.h:
23781 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
23782 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
23783 structures as a standard GType. This could be useful to have them
23784 described as a GValue later on.
23786 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23788 * docs/reference/libs/libs-docs.xml.in:
23789 * docs/reference/libs/libs-sections.txt:
23790 * gst-libs/gst/vaapi/Makefile.am:
23791 * gst-libs/gst/vaapi/gstvaapicontext.h:
23792 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23793 libs: drop some public APIs.
23794 Don't expose GstVaapiContext APIs and make them totally private to
23795 libgstvaapi core library. That API would also tend to disappear in
23796 a future revision. Likewise, don't expose GstVaapiDisplayCache API
23797 but keep symbols visible so that the various render backends could
23798 share a common display cache implementation in libgstvaapi.
23799 Try to clean-up the documentation from any stale entry too.
23801 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23805 tests: image: allow creation of images with interleaved patterns.
23806 Add image_generate_full() function to create interleaved color rectangles.
23807 If flags is zero, the whole frame is generated with a unique pattern. If
23808 flags is non-zero, then each field is handled individually.
23810 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23813 tests: image: fix conversion from RGB to YUV.
23814 Fix RGB to YUV conversion to preserve full data range.
23816 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23819 tests: image: try to upload images through vaDeriveImage() too.
23820 On some platforms, vaPutImage() would fail even if it does not involve
23821 color format conversion or scaling, whereas copying raw pixels through
23822 vaDeriveImage() could work instead.
23824 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23827 tests: image: add support for packed YUV formats.
23828 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
23830 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23833 tests: image: fix generation of I420/YV12 images.
23834 U/V planes were reversed, thus producing invalid images.
23836 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23839 tests: image: fix string representation for GstVideoFormat.
23841 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23843 * docs/reference/libs/libs-sections.txt:
23844 * gst-libs/gst/vaapi/Makefile.am:
23845 * gst-libs/gst/vaapi/gstvaapiimage.c:
23846 * gst-libs/gst/vaapi/gstvaapiimage.h:
23847 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
23848 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
23849 * gst-libs/gst/vaapi/gstvaapisurface.c:
23850 image: clean image API up.
23851 Don't expose functions that reference a GstVaapiImageRaw, those are
23852 meant to be internal only for implementing subpictures sync. Also add
23853 a few private definitions to avoid functions calls for retrieving
23854 image size and format information.
23856 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23858 * docs/reference/libs/libs-sections.txt:
23859 * gst-libs/gst/vaapi/gstvaapiimage.c:
23860 * gst-libs/gst/vaapi/gstvaapiimage.h:
23861 image: add gst_vaapi_image_copy() helper.
23862 Add gst_vaapi_image_copy() helper function to copy images of same format
23865 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23867 * gst/vaapi/gstvaapivideoconverter_x11.c:
23868 plugins: handle video cropping in X11 pixmap converter.
23869 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
23870 we could decode from the stream.
23872 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23874 * gst/vaapi/Makefile.am:
23875 * gst/vaapi/gstvaapivideobuffer.c:
23876 * gst/vaapi/gstvaapivideoconverter_glx.c:
23877 * gst/vaapi/gstvaapivideoconverter_x11.c:
23878 * gst/vaapi/gstvaapivideoconverter_x11.h:
23879 plugins: add support for "x11-pixmap" video converter type.
23880 Install a new video converter that supports X11 pixmap targets for X11
23881 backends only, or make the GLX converter creation function chain up to
23882 the X11 converter whenever requested.
23884 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23886 * tests/simple-decoder.c:
23887 tests: simple-decoder: add support for pixmap API.
23888 Add support for the new render-to-pixmap API. Avoid flickering on
23889 platforms supporting video overlay by keeping up to 2 intermediate
23892 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23894 * tests/simple-decoder.c:
23895 tests: simple-decoder: add support for video cropping.
23896 Handle video cropping information attached to a VA surface proxy.
23898 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23902 * tests/test-decode.c:
23903 tests: add support for render-to-pixmap.
23904 Add --pixmap option to test-decode so that to allow copies of VA
23905 surface to an intermediate pixmap and rendering from that pixmap.
23906 Only X11 backends are supported for now.
23908 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23911 * gst-libs/gst/vaapi/Makefile.am:
23912 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23913 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23914 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23915 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
23916 x11: implement pixmap rendering with RENDER extension.
23917 Use hardware accelerated XRenderComposite() function, from the RENDER
23918 extension, to blit a pixmap to screen. Besides, this can also support
23919 cropping and scaling.
23921 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23923 * docs/reference/libs/libs-docs.xml.in:
23924 * docs/reference/libs/libs-sections.txt:
23925 * gst-libs/gst/vaapi/Makefile.am:
23926 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23927 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23928 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23929 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
23930 x11: implement pixmap API.
23931 Implement the new render-to-pixmap API. The only supported pixmap format
23932 that will work is xRGB, with native byte ordering. Others might work but
23933 they were not tested.
23935 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23937 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
23938 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
23939 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23940 x11: update x11_get_geometry() helper function with depth output.
23941 Allow x11_get_geometry() utility function to also return the depth
23942 assigned to the X drawable.
23944 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23946 * docs/reference/libs/libs-docs.xml.in:
23947 * docs/reference/libs/libs-sections.txt:
23948 * gst-libs/gst/vaapi/Makefile.am:
23949 * gst-libs/gst/vaapi/gstvaapipixmap.c:
23950 * gst-libs/gst/vaapi/gstvaapipixmap.h:
23951 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
23952 * gst-libs/gst/vaapi/gstvaapiwindow.c:
23953 * gst-libs/gst/vaapi/gstvaapiwindow.h:
23954 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
23955 Add initial Pixmap API.
23956 Add API to transfer VA urfaces to native pixmaps. Also add an API to
23957 render a native pixmap, for completeness. In general, rendering to
23958 pixmap would only be useful to certain VA drivers and use cases on
23959 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
23962 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23964 * docs/reference/libs/libs-sections.txt:
23965 * gst-libs/gst/vaapi/gstvaapiimage.c:
23966 * gst-libs/gst/vaapi/gstvaapisurface.c:
23967 * gst-libs/gst/vaapi/video-format.c:
23968 * gst-libs/gst/vaapi/video-format.h:
23969 libs: add and expose gst_vaapi_video_format_to_string() helper.
23970 This is just a wrapper over gst_video_format_to_string() for older
23971 GStreamer 0.10 builds.
23973 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
23975 * gst/vaapi/gstvaapipluginutil.c:
23976 plugins: fix display type comparison in gst_vaapi_create_display().
23977 After the code got moved to create the gst_vaapi_create_display() helper,
23978 this comparison was not updated to dereference the newly-created
23979 pointer, so the code was comparing the pointer itself to the type, and
23980 therefore failing to retrieve the VA display.
23981 This fixes the following error (and gets gst-vaapi decoding again):
23982 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
23983 https://bugzilla.gnome.org/show_bug.cgi?id=704410
23984 Signed-off-by: Emilio López <emilio@elopez.com.ar>
23986 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23989 Bump version for development.
23991 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23993 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23994 mpeg2: don't output dummy pictures.
23995 Mark dummy pictures as output already so that we don't try to submit
23996 them to the upper layer since this is purely internal / temporary
23997 picture for helping the decoder.
23999 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24001 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24002 decoder: dispose GstVideoCodecFrame earlier.
24003 Once the picture was output, it is no longer necessary to keep an extra
24004 reference to the underlying GstVideoCodecFrame. So, we can release it
24005 earlier, and maybe subsequently release the associate surface proxy
24008 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24014 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24016 * docs/reference/libs/libs-sections.txt:
24017 * gst-libs/gst/vaapi/Makefile.am:
24018 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24019 * gst-libs/gst/vaapi/gstvaapiimage.c:
24020 * gst-libs/gst/vaapi/gstvaapisurface.c:
24021 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24022 * gst-libs/gst/vaapi/video-format.c:
24023 * gst-libs/gst/vaapi/video-format.h:
24024 * gst/vaapi/gstvaapidownload.c:
24025 * gst/vaapi/gstvaapiuploader.c:
24027 * tests/test-display.c:
24028 Fix new video format API.
24029 Fix new internal video format API, based on GstVideoFormat, to not
24030 clobber with system symbols. So replace the gst_video_format_* prefix
24031 with gst_vaapi_video_format_ prefix, even if the format type remains
24034 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24037 Bump library major version.
24038 Bump the library major version due to API/ABI changes that occurred in
24039 the imaging API. In particular, GstVaapiImageFormat type was replaced
24040 with the standard GstVideoFormat type. All dependent APIs were updated
24041 to match this change.
24043 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24048 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24050 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24051 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24052 decoder: fix memory leak when processing interlaced pictures.
24053 Fix memory leak when processing interlaced pictures and that occurs
24054 because the first field, represented as a GstVideoCodecFrame, never
24055 gets released. i.e. when the picture is completed, this is generally
24056 the case when the second field is successfully decoded, we need to
24057 propagate the GstVideoCodecFrame of the first field to the original
24058 GstVideoDecoder so that it could reclaim memory.
24059 Otherwise, we keep accumulating the first fields into GstVideoDecoder
24060 private frames list until the end-of-stream is reached. The frames
24061 are eventually released there, but too late, i.e. too much memory
24062 may have been consumed.
24063 https://bugzilla.gnome.org/show_bug.cgi?id=701257
24065 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24067 * gst/vaapi/gstvaapipluginutil.c:
24068 plugins: simlpify gst_vaapi_create_display() helper.
24069 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
24070 performs the necessary validation checks for the underlying VA display
24071 prior to returning to the caller. So, if an error occurred, then NULL is
24072 really returned in that case.
24074 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24076 * gst/vaapi/gstvaapipluginutil.c:
24077 plugins: add gst_vaapi_create_display() helper.
24078 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24079 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24081 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24083 * gst/vaapi/gstvaapivideobufferpool.c:
24084 plugins: don't reallocate pool allocator for the same caps.
24085 If the video buffer pool config doesn't have new caps, then it's not
24086 necessary to reinstantiate the allocator. That could be a costly
24087 operation as we could do some extra heavy checking in there.
24089 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24091 * gst/vaapi/gstvaapivideomemory.c:
24092 plugins: fix ref counting of GstVaapiVideoMemory allocator.
24093 Fix reference counting issue whereby gst_memory_init() does not hold
24094 an extra reference to the GstAllocator. So, there could be situations
24095 where the last instance of GstVaapiVideoAllocator gets released before
24096 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
24098 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24100 * gst/vaapi/gstvaapiuploader.c:
24101 vaapiupload: use implicit color conversion to NV12.
24102 Always perform conversion of sources buffers to NV12 since this is
24103 the way we tested for this capability in ensure_allowed_caps(). This
24104 also saves memory bandwidth for further rendering. However, this may
24105 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
24107 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24109 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24110 pool: fix deallocation of video pools.
24111 The queue of free objects to used was deallocated with g_queue_free_full().
24112 However, this convenience function shall only be used if the original queue
24113 was allocated with g_queue_new(). This caused memory corruption, eventually
24114 leading to a crash.
24115 The correct solution is to pair the g_queue_init() with the corresponding
24116 g_queue_clear(), while iterating over all free objects to deallocate them.
24118 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
24120 * gst/vaapi/gstvaapidownload.c:
24121 vaapidownload: fix src caps format error.
24122 This fixes direct linking of vaapidownload element to xvimagesink with
24123 VA drivers supporting vaGetImage() from the native VA surface format to
24124 a different VA image format. i.e. color conversion during download.
24125 http://bugzilla.gnome.org/show_bug.cgi?id=703937
24126 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24128 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24130 * gst/vaapi/gstvaapidownload.c:
24131 vaapidownload: fix debug string for image formats.
24132 The image is now expressed as a standard GstVideoFormat, which is not
24133 a FOURCC but rather a regular enum value.
24134 This is a regression introduced in commit 09397fa.
24136 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
24138 * gst-libs/gst/vaapi/gstvaapiimage.c:
24139 image: add support for raw YUY2/UYVY image copies.
24140 Implement raw image copies for YUY2 format. Add support for UYVY format
24141 too, with the same copy function as for YUY2. Even though components
24142 ordering differs, copying line strides is essentially the same.
24143 https://bugzilla.gnome.org/show_bug.cgi?id=703939
24144 https://bugzilla.gnome.org/show_bug.cgi?id=703940
24145 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24147 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24149 * gst/vaapi/gstvaapiuploader.c:
24150 plugins: clean-up video uploader helper.
24151 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
24152 were already negotiated beforehand, and they are not used from the
24153 buffer in upstream elements.
24154 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
24155 represented as a GstVideoInfo.
24157 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24159 * gst/vaapi/gstvaapiuploader.c:
24160 plugins: use GstVideoInfo in video uploader helper.
24162 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24164 * gst/vaapi/gstvaapivideomemory.c:
24165 plugins: allow creation of VA surfaces with explicit pixel format.
24166 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
24167 with an explicit pixel format. This allows for direct rendering to
24168 VA surface memory from a software decoder.
24170 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24172 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24173 surface: fix surface pool creation with an explicit pixel format.
24174 Fix creation of surface pool objects to honour explicit pixel format
24175 specification. If this operation is not supported, then fallback to
24176 the older interface with chroma format.
24178 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24180 * gst-libs/gst/vaapi/gstvaapisurface.c:
24181 surface: try to determine the underlying VA surface format.
24182 If a VA surface was allocated with the chroma-format interface, try to
24183 determine the underlying pixel format on gst_vaapi_surface_get_format(),
24184 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
24186 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24188 * docs/reference/libs/libs-sections.txt:
24189 * gst-libs/gst/vaapi/gstvaapisurface.c:
24190 * gst-libs/gst/vaapi/gstvaapisurface.h:
24191 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24192 surface: allow creation with explicit pixel format.
24193 Make it possible to create VA surfaces with a specific pixel format.
24194 This is a new capability brought in by VA-API >= 0.34.0. If that
24195 capability is not built-in (e.g. using VA-API < 0.34.0), then
24196 gst_vaapi_surface_new_with_format() will return NULL.
24198 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24200 * docs/reference/libs/libs-sections.txt:
24201 * gst-libs/gst/vaapi/video-format.c:
24202 * gst-libs/gst/vaapi/video-format.h:
24203 surface: add helper function to get chroma type from GstVideoFormat.
24204 Add gst_video_format_get_chroma_type() helper function to determine
24205 the GstVaapiChromaType from a standard GStreamer video format. It is
24206 possible to reconstruct that from GstVideoFormatInfo but it is much
24207 simpler (and faster?) to use the local GstVideoFormatMap table.
24209 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24211 * gst-libs/gst/vaapi/gstvaapisurface.c:
24212 * gst-libs/gst/vaapi/gstvaapisurface.h:
24213 * gst-libs/gst/vaapi/gstvaapiutils.c:
24214 * gst-libs/gst/vaapi/gstvaapiutils.h:
24215 surface: add new chroma formats.
24216 Add new chroma formats available with VA-API >= 0.34.0. In particular,
24217 this includes "RGB" chroma formats, and more YUV subsampled formats.
24218 Also add a new from_GstVaapiChromaType() helper function to convert
24219 libgstvaapi chroma type to VA chroma format.
24221 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24223 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24224 pool: fix image pool to check for the video format to use.
24225 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
24226 image pool object, only if the underlying VA display does support the
24227 requested VA image format.
24229 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24231 * gst-libs/gst/vaapi/gstvaapicontext.c:
24232 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24233 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24234 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24235 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24236 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24237 * gst/vaapi/gstvaapidownload.c:
24238 * gst/vaapi/gstvaapiuploader.c:
24239 * tests/Makefile.am:
24240 * tests/test-surfaces.c:
24241 Use GstVideoInfo for video pools.
24242 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
24243 structures instead. Those are smaller, and allows for streamlining
24246 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24248 * gst-libs/gst/vaapi/gstvaapiimage.c:
24249 * gst-libs/gst/vaapi/video-format.c:
24250 Add more video formats.
24251 Add new video format mappings to VA image formats:
24252 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
24253 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
24255 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24257 * gst-libs/gst/vaapi/gstvaapiimage.c:
24258 image: fix debug message with video format.
24259 Fix debug message string with image format expressed with GstVideoFormat
24260 instead of the obsolete format that turned out to be a fourcc.
24261 This is a regression from git commit e61c5fc.
24263 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24267 * tests/test-display.c:
24268 * tests/test-textures.c:
24269 * tests/test-windows.c:
24270 tests: port to new video format API.
24272 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24274 * gst/vaapi/gstvaapidownload.c:
24275 * gst/vaapi/gstvaapiuploader.c:
24276 * gst/vaapi/gstvaapivideomemory.c:
24277 plugins: port to new video format API.
24279 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24281 * gst-libs/gst/vaapi/gstvaapiimage.c:
24282 libs: use GstVideoInfo wherever possible.
24283 In particular, use gst_video_info_from_caps() helper function in VA image
24284 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
24285 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
24287 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24289 * docs/reference/libs/libs-docs.xml.in:
24290 * docs/reference/libs/libs-sections.txt:
24291 * gst-libs/gst/vaapi/Makefile.am:
24292 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24293 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
24294 libs: drop GstVaapiImageFormat helpers.
24295 Drop GstVaapiImageFormat helpers since everything was moved to the new
24296 GstVideoFormat based API. Don't bother with backwards compatibility and
24297 just bump the library major version afterwards.
24299 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24301 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24302 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24303 * gst-libs/gst/vaapi/gstvaapiimage.c:
24304 * gst-libs/gst/vaapi/gstvaapiimage.h:
24305 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24306 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24307 libs: port to new video format API.
24309 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24311 * docs/reference/libs/libs-docs.xml.in:
24312 * docs/reference/libs/libs-sections.txt:
24313 * gst-libs/gst/vaapi/Makefile.am:
24314 * gst-libs/gst/vaapi/video-format.c:
24315 * gst-libs/gst/vaapi/video-format.h:
24316 Add new video format API.
24317 Leverage GstVideoFormat utilities from core GStreamer to provide an
24318 adaptation layer to VA image formats.
24320 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24325 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24327 * gst/vaapi/gstvaapisink.c:
24328 vaapisink: fix creation of GLX texture.
24329 Fix creation of GLX texture, to not depend on the GstCaps video size that
24330 could be wrong, especially in presence of frame cropping. So, use the size
24331 from the source VA surfaces.
24332 An optimization could be to reduce the texture size to the actual visible
24333 size on screen. i.e. scale down the texture size to match the screen dimensions,
24334 while preserving the VA surface aspect ratio. However, some VA drivers don't
24337 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24339 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24340 mpeg2: add support for video cropping.
24341 If the stream has a sequence_display_extenion, then attach the
24342 display_horizontal/display_vertical dimension as the cropping
24343 rectangle width/height to the GstVaapiPicture.
24344 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24346 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24348 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24349 vc1: add support for video cropping.
24350 If the Advanced profile has display_extension fields, then set the display
24351 width/height dimension as cropping rectangle to the GstVaapiPicture.
24352 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24354 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24356 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24357 h264: add support for video cropping.
24358 If the encoded stream has the frame_cropping_flag set, then associate
24359 the cropping rectangle to GstVaapiPicture.
24360 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24362 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24366 * tests/test-decode.c:
24367 * tests/test-subpicture.c:
24368 tests: add basic support for video cropping.
24369 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
24370 instead of a plain GstVaapiSurface. This means that we can now retrieve
24371 the frame cropping rectangle from the surface proxy, along with additional
24372 information if ever needed.
24374 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24376 * gst/vaapi/gstvaapidecode.c:
24377 * gst/vaapi/gstvaapisink.c:
24378 * gst/vaapi/gstvaapivideometa.c:
24379 plugins: add support for video cropping.
24380 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
24381 specific meta information to hold video cropping details. Make the sink
24382 support video cropping in X11 and GLX modes.
24384 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24386 * gst/vaapi/gstvaapivideometa.c:
24387 * gst/vaapi/gstvaapivideometa.h:
24388 plugins: add helper functions to set the render rectangle.
24389 Some video clips may have a clipping region that needs to propogate to
24390 the renderer. These helper functions make it possible to attach that
24391 clipping region, as a GstVaapiRectangle, the the video meta associated
24393 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24394 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24396 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24398 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24399 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24400 surfaceproxy: allow for NULL cropping rectangle.
24401 Make it possible associate an empty cropping rectangle to the surface
24402 proxy, thus resetting any cropping rectangle that was previously set.
24403 This allows for returning plain NULL when no cropping rectangle was
24404 initially set up to the surface proxy, or if it was reset to defaults.
24406 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24408 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24409 surfaceproxy: clean-up helper macros.
24410 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
24411 proxy macro argument to a GstVaapiSurfaceProxy pointer.
24413 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24415 * gst-libs/gst/vaapi/gstvaapisurface.c:
24416 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24417 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24418 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24419 surface: add simple surface info accessors as helper macros.
24420 Add helper macros to retrieve the VA surface information like size
24421 (width, height) or chroma type. This is a micro-optimization to avoid
24422 useless function calls and NULL pointer re-checks in internal routines.
24424 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24426 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24427 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24428 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24429 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24430 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24431 decoder: add support for video cropping.
24432 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
24433 cropping information from raw bitstreams to each picture being decoded.
24434 Also add helper function to surface proxy to propagate that information
24435 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
24436 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24437 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24439 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24441 * ext/codecparsers:
24442 codecparsers: update to gst-vaapi-branch commit f90de0a.
24443 f90de0a h264: fix calculation of the frame cropping rectangle
24444 535515c h264: parse the cropping rectangle separately
24446 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24448 * ext/codecparsers:
24449 codecparsers: update to gst-vaapi-branch commit 0f68a71.
24450 0f68a71 mpeg2: fix video packet header size checks
24452 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
24454 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24455 mpeg2: reset quantization matrices on new sequence headers.
24456 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
24457 shall be reset to their default values when a Sequence_Header() is
24459 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24461 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24464 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24465 mpeg2: cope with latest codecparser changes.
24466 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
24467 used in individual header parsers. Also use the new slice parsing API.
24469 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24471 * ext/codecparsers:
24472 codecparsers: update to gst-vaapi-branch commit dddd182.
24473 dddd182 mpeg2: add slice header parsing API
24474 94e6228 mpeg2: add sequence scalable extension parsing API
24475 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
24476 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
24478 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24480 * gst/vaapi/gstvaapisink.c:
24481 vaapisink: expose the raw video formats in static caps template.
24482 Expose all raw video formats in the static caps template since the
24483 vaapisink is supporting raw data. We will get the exact set of formats
24484 supported by the driver dynamically through the _get_caps() routine.
24485 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
24486 https://bugzilla.gnome.org/show_bug.cgi?id=702178
24487 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24489 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24491 * gst/vaapi/gstvaapisink.c:
24492 * gst/vaapi/gstvaapisink.h:
24493 vaapisink: add "use-glx" property for OpenGL rendering.
24494 Now that VA/GLX capable buffers are generated by default on X11, thus
24495 depending on a VA/GLX display, we stil want to use vaPutSurface() for
24496 rendering since it is faster.
24497 Anyway, OpenGL rendering in vaapisink was only meant for testing and
24498 enabling "fancy" effects to play with. This has no real value. So,
24499 disable OpenGL rendering by default.
24501 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24503 * gst/vaapi/gstvaapipluginutil.c:
24504 plugins: try to allocate a GLX display first over an X11 one.
24505 If the gstreamer-vaapi plug-in elements are built with GLX support, then
24506 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
24508 https://bugzilla.gnome.org/show_bug.cgi?id=701742
24510 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
24513 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
24514 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
24515 https://bugzilla.gnome.org/show_bug.cgi?id=698858
24516 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24518 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
24520 * gst-libs/gst/vaapi/gstvaapiimage.c:
24521 image: fix wrong check for rect bounds in copy_image().
24523 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24526 Bump version for development.
24528 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24534 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24539 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24542 * gst-libs/gst/codecparsers/Makefile.am:
24543 configure: always build the MPEG-4 parser.
24544 Always build the MPEG-4 parser for now as there are also core fixes
24545 included in the parser that cannot be tested for with API checks.
24547 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24550 configure: add --enable-builtin-codecparsers [default="yes"] option.
24551 Add flag to have all codecparsers built-in, thus ensuring that the
24552 resulting binaries have all the necessary bug fixes and this is what
24553 the QA has been testing anyway.
24554 Of course, for a completely up-to-date Linux distribution, you could
24555 also opt for --disable-builtin-codecparsers and use the system ones.
24556 Though, some core fixes could be missing, and those cannot be tested
24557 for with API checks.
24559 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24561 * ext/codecparsers:
24562 codecparsers: update to gst-vaapi-branch commit 843ce3e.
24563 843ce3e jpeg: fix default Huffman tables generation.
24564 8655187 mpeg2: fix the pixel-aspect-ratio calculation
24565 21099dc mpeg2: actually store video bitrate values
24566 dd02087 mpeg2: fix picture packet extension size check
24567 25948e9 mpeg2: increase min size for picture coding ext
24568 f1f5a40 ensure the debug category is properly initialized
24570 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24572 * debian.upstream/Makefile.am:
24573 debian: fix list of generated files for .deb packaging.
24575 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24578 * debian.upstream/Makefile.am:
24579 * debian.upstream/control.in:
24580 debian: fix libgstvaapi -dev package name.
24581 Fix libgstvaapi -dev package name so that to allow installation of both
24582 GStreamer 0.10 and 1.0.x based packages.
24584 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24589 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24591 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24592 wayland: fix memory leak of display resources.
24594 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
24596 * gst/vaapi/gstvaapisink.c:
24597 vaapisink: fix build without VA/GLX support.
24599 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24601 * gst/vaapi/gstvaapivideomemory.c:
24602 * gst/vaapi/gstvaapivideomemory.h:
24603 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
24604 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
24605 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
24606 caller. This is the only sensible enough thing to do in this mode as
24607 the underlying surface pixels need to be extracted through an explicit
24608 call to the gst_video_frame_map() function instead.
24609 A possible use-case of this is to implement a "handoff" signal handler
24610 to fakesink or identity element for further processing.
24612 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24614 * gst/vaapi/gstvaapivideomemory.c:
24615 plugins: silence check for direct-rendering mode in video memory.
24616 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
24617 mode support, and not trigger fatal-criticals if either test surface or
24618 image could not be created. Typical case: pixel format mismatch, e.g. NV12
24619 supported by most hardware vs. I420 supported by most software decoders.
24621 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24623 * gst/vaapi/gstvaapivideomemory.c:
24624 plugins: improve video memory flags safety checks.
24625 On map, ensure we have GST_MAP_WRITE flags since this is only what we
24626 support for now. Likewise, on unmap, make sure that the VA image is
24627 unmapped for either read or write, while still committing it to the
24628 VA surface if write was requested.
24630 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24632 * gst-libs/gst/vaapi/gstvaapisurface.c:
24633 surface: fix memory leak through unreleased parent context.
24634 Break the circular references between GstVaapiContext and its children
24635 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
24636 context, which holds a reference to its VA surfaces, then none of those
24638 How does this impact support for subpictures?
24639 The only situation when the parent context needs to disappear is when
24640 it is replaced with another one because of a resolution change in the
24641 video stream for instance, or a normal destroy. In this case, it does
24642 not really matter to apply subpictures to the peer surfaces since they
24643 are either gone, or those that are left in the pipe can probably bear
24644 a reinstantiation of the subpictures for it.
24645 So, parent_context is set to NULL when the parent context is destroyed,
24646 other VA surfaces can still get subpictures attached to them, individually
24647 not as a whole. i.e. subpictures for surface S1 will be created from
24648 active composition buffers and associated to S1, subpictures for S2 will
24649 be created from the next active composition buffers, etc. We don't try
24650 to cache the subpictures in those cases (pending surfaces until EOS
24651 is reached, or pending surfaces until new surfaces matching new VA context
24652 get to be used instead).
24654 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24656 * gst/vaapi/gstvaapisink.c:
24657 vaapisink: fix one-time initialization when display property is set.
24658 Fix gst_vaapisink_ensure_display() to perform one-time initialization
24659 tasks even if the `display' property was explicitly set.
24661 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24663 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24664 window: fix GLX window initialization.
24665 Make sure to create the GLX context once the window object has completed
24666 its creation. Since gl_resize() relies on the newly created window size,
24667 then we cannot simply overload the GstVaapiWindowClass::create() hook.
24668 So, we just call into gst_vaapi_window_glx_ensure_context() once the
24669 window object is created in the gst_vaapi_window_glx_new*() functions.
24671 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24673 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24674 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24675 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24676 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24677 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24678 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24679 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24680 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24681 * gst-libs/gst/vaapi/gstvaapitexture.c:
24682 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24683 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24684 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24685 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24686 display: validate display types.
24688 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24690 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24691 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24692 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24693 display: drop internal NAME_PREFIX, store the real display name.
24694 Always store a valid display name/device path, instead of adding a
24695 particular prefix. i.e. make it simply a strdup(), or "" if it was
24698 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24700 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24701 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24702 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24703 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24704 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24705 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24706 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24707 display: make it possible to lookup the display cache by type.
24708 Make it possible to add extra an extra filter to most of display cache
24709 lookup functions so that the GstVaapiDisplay instance can really match
24710 a compatible and existing display by type, instead of relying on extra
24711 string tags (e.g. "X11:" prefix, etc.).
24713 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24715 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24716 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24717 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24718 display: cope with new display cache API.
24720 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24722 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24723 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24724 display: rework display cache API.
24725 Simplify display cache API, while making it more flexible. We can now create
24726 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
24728 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24730 * tests/test-display.c:
24731 tests: improve check for display cache.
24732 Improve check for display cache infrastructure. In particular, for X11 and
24733 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
24734 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
24735 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
24736 already exists will have to generate different VA displays.
24738 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
24740 * gst/vaapi/gstvaapiuploader.c:
24741 uploader: fix memory leak in GStreamer 0.10 builds.
24742 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
24743 but it exhibited a memory leak because the surface generated for the
24744 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
24745 possible to release that surface back to the parent pool when the meta
24746 gets released, and the memory consumption kept growing.
24747 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24749 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24751 * gst/vaapi/gstvaapivideometa.c:
24752 plugins: fix gst_vaapi_video_meta_new_from_pool().
24753 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
24754 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
24755 was hereby totally broken. Fixed this regression by using the newly
24756 provided gst_vaapi_video_pool_get_object_type() function.
24758 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24760 * gst/vaapi/gstvaapiuploader.c:
24761 * gst/vaapi/gstvaapivideomemory.c:
24762 * gst/vaapi/gstvaapivideometa.c:
24763 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
24765 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24768 tests: cope with GST_VAAPI_IS_xxx() macros removal.
24770 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24772 * docs/reference/libs/libs-sections.txt:
24773 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24774 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24775 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24776 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24777 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24778 libs: add query for GstVaapiVideoPool object types.
24779 Add API to identify the underlying GstVaapiVideoPool object type.
24781 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24783 * docs/reference/libs/libs-sections.txt:
24784 * gst-libs/gst/vaapi/gstvaapicontext.c:
24785 * gst-libs/gst/vaapi/gstvaapicontext.h:
24786 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24787 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24788 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24789 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24790 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24791 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24792 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24793 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24794 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24795 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24796 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24797 * gst-libs/gst/vaapi/gstvaapiimage.c:
24798 * gst-libs/gst/vaapi/gstvaapiimage.h:
24799 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24800 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24801 * gst-libs/gst/vaapi/gstvaapiobject.c:
24802 * gst-libs/gst/vaapi/gstvaapiobject.h:
24803 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24804 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24805 * gst-libs/gst/vaapi/gstvaapisurface.c:
24806 * gst-libs/gst/vaapi/gstvaapisurface.h:
24807 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24808 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24809 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24810 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24811 * gst-libs/gst/vaapi/gstvaapitexture.c:
24812 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24813 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24814 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24815 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24816 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24817 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24818 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24819 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24820 libs: drop GST_VAAPI_IS_xxx() helper macros.
24821 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
24822 deriving from GObject and so those were only checking for whether the
24823 argument was NULL or not. This is now irrelevant, and even confusing
24824 to some extent, because we no longer have type checking.
24825 Note: this incurs more type checking (review) but the libgstvaapi is
24826 rather small, so this is manageable.
24828 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24831 Bump library major version.
24832 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
24833 This is a fundamental change that requires a new SONAME. More changes are
24834 underway to streamline the core libraries.
24835 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
24836 On one particular test (sintel HD trailer), the total number of executed
24837 instruction was reduced by 8%.
24839 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24841 * docs/reference/libs/Makefile.am:
24842 * docs/reference/libs/libs-docs.xml.in:
24843 * docs/reference/libs/libs-sections.txt:
24844 * docs/reference/libs/libs.core.types:
24845 * docs/reference/libs/libs.glx.types:
24846 * docs/reference/libs/libs.x11.types:
24847 docs: cope with removed APIs.
24848 Some APIs are dead because they are no longer based on GObject.
24850 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24852 * gst/vaapi/gstvaapidecode.c:
24853 * gst/vaapi/gstvaapidownload.c:
24854 * gst/vaapi/gstvaapipluginutil.c:
24855 * gst/vaapi/gstvaapipostproc.c:
24856 * gst/vaapi/gstvaapisink.c:
24857 * gst/vaapi/gstvaapiupload.c:
24858 * gst/vaapi/gstvaapiuploader.c:
24859 * gst/vaapi/gstvaapivideobufferpool.c:
24860 * gst/vaapi/gstvaapivideoconverter_glx.c:
24861 * gst/vaapi/gstvaapivideomemory.c:
24862 * gst/vaapi/gstvaapivideometa.c:
24863 plugins: cope with new GstVaapiMiniObject objects.
24865 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24870 * tests/simple-decoder.c:
24871 * tests/test-decode.c:
24872 * tests/test-display.c:
24873 * tests/test-subpicture.c:
24874 * tests/test-surfaces.c:
24875 * tests/test-textures.c:
24876 * tests/test-windows.c:
24877 tests: cope with new GstVaapiMiniObject objects.
24879 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24881 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24882 display: fix set_synchronous() to lock display.
24884 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24886 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24887 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24888 videopool: simplify creation of video objects pool.
24890 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24892 * gst-libs/gst/vaapi/gstvaapiobject.c:
24893 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24894 * gst-libs/gst/vaapi/gstvaapitypes.h:
24895 libs: simplify GstVaapiID definitions.
24896 Make GstVaapiID a gsize instead of guessing an underlying integer large
24897 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
24898 this is plain zero and that it is no longer passed as varargs.
24900 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24902 * gst-libs/gst/vaapi/Makefile.am:
24903 * gst-libs/gst/vaapi/gstvaapi_priv.h:
24904 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
24905 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
24906 * gst-libs/gst/vaapi/gstvaapivalue.c:
24907 * gst-libs/gst/vaapi/gstvaapivalue.h:
24908 libs: drop obsolete function helpers and objects.
24909 Drop obsolete GstVaapiID related function helpers for passing them as
24912 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24914 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24915 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24916 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24917 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24918 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24919 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24920 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24921 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24922 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24923 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24924 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24925 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24926 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24927 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24928 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24929 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24930 * gst-libs/gst/vaapi/gstvaapiobject.c:
24931 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24932 libs: use GstVaapiMiniObject for display objects.
24934 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24936 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24937 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24938 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24939 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24940 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24941 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24942 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24943 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24944 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24945 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24946 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24947 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24948 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24949 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24950 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24951 libs: use GstVaapiMiniObject for video decoders.
24952 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
24953 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
24954 helper function to let the user add a callback to a function triggered
24955 whenever the codec state (e.g. caps) changes.
24957 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24959 * docs/reference/libs/libs-sections.txt:
24960 * gst-libs/gst/vaapi/Makefile.am:
24961 * gst-libs/gst/vaapi/gstvaapicontext.c:
24962 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24963 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24964 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24965 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24966 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24967 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24968 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24969 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24970 libs: use GstVaapiMiniObject for video object pools.
24971 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
24972 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
24973 no longer used for a long time. Make object allocators static, i.e.
24974 local to the shared library.
24976 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24978 * gst-libs/gst/vaapi/gstvaapitexture.c:
24979 * gst-libs/gst/vaapi/gstvaapitexture.h:
24980 libs: use GstVaapiObject for texture objects.
24982 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24984 * gst-libs/gst/vaapi/Makefile.am:
24985 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24986 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24987 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24988 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24989 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24990 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24991 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24992 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24993 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24994 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24995 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24996 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24997 libs: use GstVaapiObject for window objects.
24999 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25001 * gst-libs/gst/vaapi/gstvaapicontext.c:
25002 * gst-libs/gst/vaapi/gstvaapicontext.h:
25003 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25004 * gst-libs/gst/vaapi/gstvaapiimage.c:
25005 * gst-libs/gst/vaapi/gstvaapiimage.h:
25006 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25007 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
25008 * gst-libs/gst/vaapi/gstvaapisurface.c:
25009 * gst-libs/gst/vaapi/gstvaapisurface.h:
25010 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25011 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25012 libs: use GstVaapiObject for VA objects.
25014 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25016 * gst-libs/gst/vaapi/Makefile.am:
25017 * gst-libs/gst/vaapi/gstvaapiobject.c:
25018 * gst-libs/gst/vaapi/gstvaapiobject.h:
25019 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
25020 Port GstVaapiObject to GstVaapiMiniObject.
25022 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25024 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
25025 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
25026 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25027 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25028 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
25029 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
25030 libs: refine GstVaapiMiniObject.
25031 Drop support for user-defined data since this capability was not used
25032 so far and GstVaapiMiniObject represents the smallest reference counted
25033 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
25034 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
25035 is also possible to further simplify the layout of the object. i.e. merge
25036 GstVaapiMiniObjectBase into GstVaapiMiniObject.
25038 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25040 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25041 decoder: update picture size from the bitstream.
25042 Propagate the picture size from the bitstream to the GstVaapiDecoder,
25043 and subsequent user who installed a signal on notify::caps. This fixes
25044 decoding of TS streams when the demuxer failed to extract the required
25047 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25049 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25050 decoder: fix raw decoding mode.
25051 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
25052 surface proxy to the caller.
25054 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25056 * docs/reference/libs/libs-sections.txt:
25057 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25058 * gst-libs/gst/vaapi/gstvaapidecoder.h:
25059 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25060 * gst/vaapi/gstvaapidecode.c:
25061 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
25062 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
25063 wait for a frame to be decoded, until the specified timeout in microseconds,
25064 prior to returning to the caller.
25065 This is a fix to performance regression from 851cc0, whereby the vaapidecode
25066 loop executed on the srcpad task was called to often, thus starving all CPU
25069 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25072 Bump version for development.
25074 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25080 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25085 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25087 * gst/vaapi/gstvaapidecode.c:
25088 vaapidecode: rework heuristics to detect decode timeout.
25089 Rework heuristics to detect when downstream element ran into errors,
25090 and thus failing to release any VA surface in due time for the current
25091 frame to get decoded. In particular, recalibrate the render time base
25092 when the first frame gets submitted downstream, or when there is no
25093 timestamp that could be inferred.
25095 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25097 * gst-libs/gst/vaapi/gstcompat.h:
25098 * gst/vaapi/gstvaapidecode.c:
25099 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
25100 Rework GstVideoDecoder::handle_frame() to decode the current frame,
25101 while possibly waiting for a free surface, and separately submit all
25102 decoded frames from a task. This makes it possible to pop and render
25103 decoded frames as soon as possible.
25105 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25107 * gst/vaapi/gstvaapidecode.c:
25108 * gst/vaapi/gstvaapidownload.c:
25109 * gst/vaapi/gstvaapisink.c:
25110 * gst/vaapi/gstvaapiupload.c:
25111 plugins: use gst_object_unref() wherever applicable.
25112 Use gst_object_unref() wherever applicable, e.g. objects derived from
25113 GstElement, GstVideoPool, etc.
25115 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25117 * docs/reference/plugins/plugins-docs.xml.in:
25118 * docs/reference/plugins/plugins-sections.txt:
25119 * docs/reference/plugins/plugins.types:
25120 docs: drop obsolete plug-ins.
25121 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
25122 i.e. vaapiupload and vaapidownload are no longer the recommended
25125 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25127 * debian.upstream/rules:
25128 debian: fix build of GStreamer 0.10 packages.
25129 Fix build of Debian packages to scan the actual GStreamer API version
25130 from the generated changelog file.
25132 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25134 * gst/vaapi/gstvaapipostproc.c:
25135 vaapipostproc: minor clean-ups.
25136 Use g_clear_object() wherever appropriate and remove dead-code.
25138 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25140 * gst/vaapi/gstvaapipostproc.c:
25141 vaapipostproc: fix reference counting buf for passthrough mode.
25142 Fix reference counting bug for passthrough mode, whereby the input buffer
25143 was propagated as is downstream through gst_pad_push() without increasing
25144 its reference count before. The was a problem when gst_pad_push() returns
25145 an error and we further decrease the reference count of the input buffer.
25147 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25149 * gst-libs/gst/vaapi/gstcompat.h:
25150 * gst/vaapi/Makefile.am:
25151 * gst/vaapi/gstvaapi.c:
25152 * gst/vaapi/gstvaapidecode.c:
25153 * gst/vaapi/gstvaapipluginutil.h:
25154 * gst/vaapi/gstvaapipostproc.c:
25155 vaapipostproc: port to GStreamer 1.0.
25156 Add support for interlaced streams with GStreamer 1.0 too. Basically,
25157 this enables vaapipostproc, though it is not auto-plugged yet. We also
25158 make sure to reply to CAPS queries, and happily handle CAPS events.
25160 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25162 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25163 decoder: fix GstVideoCodecFrame flags for interlaced contents.
25164 Fix support for interlaced contents with GStreamer 0.10. In particular,
25165 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
25167 This is a regression from commit 87e5717.
25169 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25171 * gst-libs/gst/vaapi/Makefile.am:
25172 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25173 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25174 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
25175 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
25176 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
25177 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
25178 structure was only useful to parsing and a proper GstvaapiDecoderFrame
25179 instance will be created instead.
25181 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25183 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25184 decoder: export presentation timestamp for raw decoding mode.
25185 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
25186 held any information about the expected presentation timestamp, frame
25187 duration or additional flags like interlaced or top-field-first.
25189 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25191 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25192 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25193 decoder: use new GstVaapiSurfaceProxy utility functions.
25194 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
25195 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
25196 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
25197 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
25198 than gst_vaapi_picture_output().
25200 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25202 * docs/reference/libs/libs-sections.txt:
25203 * gst-libs/gst/vaapi/Makefile.am:
25204 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25205 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25206 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
25207 surfaceproxy: add more attributes for raw decoding modes.
25208 Add more attributes for raw decoding modes, i.e. directly through the
25209 libgstvaapi helper library. In particular, add presentation timestamp,
25210 duration and a couple of flags (interlaced, TFF, RFF, one-field).
25212 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25214 * docs/reference/libs/libs-sections.txt:
25215 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25216 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25217 * gst/vaapi/gstvaapidecode.c:
25218 * tests/simple-decoder.c:
25219 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
25220 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
25221 to call some user-provided function when the surface proxy is released.
25223 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25226 * gst-libs/gst/vaapi/Makefile.am:
25227 build: link libgstvaapi-glx-1.0.so against libdl.
25228 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
25229 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
25231 https://bugzilla.gnome.org/show_bug.cgi?id=698046
25232 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25234 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25236 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25237 decoder: fix gst_vaapi_decoder_get_codec_state().
25238 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
25239 supposed to make GstVaapiDecoder own the return GstVideoCodecState
25240 object. Only comment was updated, not the actual code.
25242 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25244 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25245 * gst/vaapi/gstvaapidecode.c:
25246 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
25247 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
25248 i.e. make the GstVaapiDecoder object own the return state so that callers
25249 that want an extra reference to it would just gst_video_codec_state_ref()
25250 it before usage. This aligns the behaviour with what we had before with
25251 gst_vaapi_decoder_get_caps().
25252 This is an ABI incompatible change, library major version was bumped from
25253 previous release (0.5.2).
25255 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25257 * gst/vaapi/gstvaapivideobufferpool.h:
25258 * gst/vaapi/gstvaapivideoconverter_glx.h:
25259 plugins: mark a few more functions as internal.
25260 Mark the following functions are internal, i.e. private to the vaapi plug-in:
25261 - gst_vaapi_video_buffer_pool_get_type()
25262 - gst_vaapi_video_converter_glx_get_type()
25263 - gst_vaapi_video_converter_glx_new()
25265 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25267 * gst/vaapi/gstvaapivideobuffer.c:
25268 plugins: implement GstSurfaceMeta API.
25269 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
25270 an unstable/deprecated API, this makes it possible to support Clutter
25271 sink with minimal changes. Tested against clutter-gst 1.9.92.
25273 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25275 * gst/vaapi/gstvaapisink.c:
25276 vaapisink: optimize GstVideoOverlayInterface::expose().
25277 When render-mode is "overlay", then it is not really useful to peek into
25278 the GstBaseSink::last_buffer, since we have our own video_buffer already
25279 recorded and maintained into GstVaapiSink.
25281 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25283 * gst/vaapi/gstvaapisink.c:
25284 vaapisink: fix memory leak of GstSample objects.
25285 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
25286 This also fixes extra unreferencing of the underlying GstBuffer in the common
25287 path afterwards (for both 0.10 or 1.0).
25289 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25291 * gst-libs/gst/vaapi/gstcompat.h:
25292 * gst/vaapi/gstvaapi.c:
25293 plugins: fix description for gst-inspect.
25294 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
25295 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
25296 incorrectly uses #name for creating the plug-in name, instead of using macro
25297 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
25299 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25303 Update build requirements for GStreamer 1.0.x support. Add section for
25304 ways to report bugs.
25306 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25311 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25313 * gst-libs/gst/vaapi/Makefile.am:
25314 * gst/vaapi/Makefile.am:
25315 Fix make dist to include all source files, in any case.
25316 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
25317 sure to include all source files in either case while generating source
25320 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25323 Bump library major version.
25324 Bump library major version, while preserving a major version of 0 for
25325 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
25326 0.10 based librarieS.
25328 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25330 * gst/vaapi/gstvaapivideomemory.c:
25331 * gst/vaapi/gstvaapivideomemory.h:
25332 plugins: implement direct-rendering mode for raw YUV buffer uploads.
25333 Allow direct-rendering (writes) into target VA surfaces.
25335 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25337 * gst/vaapi/gstvaapivideobufferpool.c:
25338 * gst/vaapi/gstvaapivideomemory.c:
25339 * gst/vaapi/gstvaapivideomemory.h:
25340 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
25341 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
25342 the last component is unmapped. Downloads are not supported yet. The aim
25343 was to first support SW decoding + HW accelerated rendering (vaapisink).
25346 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25348 * gst/vaapi/gstvaapidecode.c:
25349 vaapidecode: submit all decoded frames before decoding a new one.
25350 Make sure to purge all pending frames that were already decoded prior
25351 to decoding a new one. This helps release VA surfaces as early as
25354 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25356 * gst/vaapi/gstvaapidecode.c:
25357 vaapidecode: reply to CAPS queries.
25358 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
25359 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
25360 This fixes fallback to SW decoding if no HW decoder is available.
25362 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25364 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25365 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25366 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25367 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25368 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25369 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25370 decoder: fix unpaired GstBuffer map/unmaps.
25371 This possibly fixes a few memory leaks along the way.
25373 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25376 * gst-libs/gst/vaapi/gstcompat.h:
25377 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25378 * gst-libs/gst/vaapi/gstvaapiprofile.c:
25379 * gst/vaapi/Makefile.am:
25380 * gst/vaapi/gstvaapi.c:
25381 * gst/vaapi/gstvaapidecode.c:
25382 * gst/vaapi/gstvaapisink.c:
25383 * gst/vaapi/gstvaapisink.h:
25384 * gst/vaapi/gstvaapiuploader.c:
25386 Allow build against either GStreamer API (0.10 or 1.0).
25387 Introduce a new configure option --with-gstreamer-api that determines
25388 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
25389 Also integrate more compatibility glue into gstcompat.h and plugins.
25391 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25393 * gst/vaapi/gstvaapidecode.c:
25394 * gst/vaapi/gstvaapisink.c:
25395 * gst/vaapi/gstvaapisink.h:
25396 plugins: use new video buffer pools.
25397 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
25398 GstBaseSink::propose_allocation() to expose that pool to upstream
25399 elements; and also implement GstVideoDecoder::decide_allocation() to
25400 actually use that pool (from downstream), if any, or create one.
25401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25403 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25405 * gst/vaapi/Makefile.am:
25406 * gst/vaapi/gstvaapivideobufferpool.c:
25407 * gst/vaapi/gstvaapivideobufferpool.h:
25408 * gst/vaapi/gstvaapivideomemory.c:
25409 * gst/vaapi/gstvaapivideomemory.h:
25410 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
25411 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
25412 object currently holds a reference to GstVaapiVideoMeta.
25413 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25415 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25417 * gst/vaapi/gstvaapivideometa.c:
25418 * gst/vaapi/gstvaapivideometa.h:
25419 plugins: allow copies of GstVaapiVideoMeta objects.
25420 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
25421 objects created from GstVaapiVideoPool. This is mostly useful to clone a
25422 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
25425 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25427 * gst/vaapi/gstvaapivideometa.c:
25428 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
25429 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
25430 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
25431 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
25434 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25436 * gst/vaapi/Makefile.am:
25437 * gst/vaapi/gstvaapi.c:
25438 * gst/vaapi/gstvaapidecode.c:
25439 * gst/vaapi/gstvaapidownload.c:
25440 * gst/vaapi/gstvaapipluginutil.c:
25441 * gst/vaapi/gstvaapipostproc.c:
25442 * gst/vaapi/gstvaapisink.c:
25443 * gst/vaapi/gstvaapiupload.c:
25444 * gst/vaapi/gstvaapiuploader.c:
25445 * gst/vaapi/gstvaapivideobuffer.c:
25446 * gst/vaapi/gstvaapivideoconverter_glx.c:
25447 * gst/vaapi/gstvaapivideometa.c:
25448 * gst/vaapi/gstvaapivideometa.h:
25449 plugins: initial port to GStreamer 1.0.
25450 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
25451 is rather minimalistic so that to test the basic functionality.
25452 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
25453 needs polishing wrt. to GStreamer 1.x functionality and the former are
25454 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
25455 which are yet to be implemented.
25456 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25458 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25460 * gst-libs/gst/vaapi/gstcompat.h:
25463 * tests/simple-decoder.c:
25464 * tests/test-subpicture.c:
25465 tests: add support for GStreamer 1.0.
25467 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25470 * gst-libs/gst/vaapi/gstcompat.h:
25471 * gst-libs/gst/vaapi/gstvaapicontext.c:
25472 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25473 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25474 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25475 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25476 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25477 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25478 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25479 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25480 * gst-libs/gst/vaapi/gstvaapiimage.c:
25481 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25482 * gst-libs/gst/vaapi/gstvaapiprofile.c:
25483 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25484 * gst-libs/gst/vaapi/gstvaapisurface.h:
25485 Add initial support for GStreamer 1.0.
25486 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
25487 core decoding library. The changes are kept rather minimal here so that
25488 the library retains as little dependency as possible on core GStreamer
25490 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25492 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25494 * gst/vaapi/gstvaapisink.c:
25495 vaapisink: improve check for raw YUV format mode.
25496 Improve check for raw YUV format modes by avoiding checks against strings
25497 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
25498 GstBaseSink::set_caps() is called first and if VA surface format mode is
25499 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
25500 called before set_caps(), then we just make a full check. This one is
25501 pretty rare though, e.g. it usually happens once for custom pipelines.
25503 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25505 * gst/vaapi/gstvaapipluginutil.c:
25506 plugins: don't fail if there is no overlay composition to apply.
25507 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
25508 was found. i.e. return success (TRUE). This was harmless though extra
25509 debug messages are not nice.
25510 This is a regression introduced by commit 95b8659.
25512 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25514 * gst/vaapi/gstvaapidecode.c:
25515 * gst/vaapi/gstvaapidecode.h:
25516 vaapidecode: expose the exact set of supported HW decoders.
25517 Don't return static caps that don't mean anything for the underlying codecs
25518 that are actually supported for decoding. i.e. always allocate a VA display
25519 and retrieve the exact set of HW decoders available. That VA display may be
25520 re-used later on during negotiation through GstVideoContext "prepare-context".
25521 This fixes fallback to SW decoding if no HW decoder is available.
25523 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25525 * docs/reference/libs/libs-sections.txt:
25526 * gst-libs/gst/vaapi/gstvaapicontext.c:
25527 * gst-libs/gst/vaapi/gstvaapicontext.h:
25528 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25529 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25530 decoder: drop obsolete functions.
25531 Drop the following functions that are now obsolete:
25532 - gst_vaapi_context_get_surface()
25533 - gst_vaapi_context_put_surface()
25534 - gst_vaapi_context_find_surface_by_id()
25535 - gst_vaapi_surface_proxy_new()
25536 - gst_vaapi_surface_proxy_get_context()
25537 - gst_vaapi_surface_proxy_set_context()
25538 - gst_vaapi_surface_proxy_set_surface()
25539 This is an API change.
25541 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25543 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25544 decoder: delegate surface size check to VA context reset.
25545 Now that the surface pool is reference counted in the surface proxy wrapper,
25546 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
25547 Besides, this check is already performed in gst_vaapi_context_reset_full().
25549 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25551 * docs/reference/libs/libs-sections.txt:
25552 * gst-libs/gst/vaapi/gstvaapicontext.c:
25553 * gst-libs/gst/vaapi/gstvaapicontext.h:
25554 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25555 * gst-libs/gst/vaapi/gstvaapisurface.h:
25556 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25557 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25558 decoder: simplify acquisition/release of spare surface.
25559 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
25560 proxy from the context surface pool. This change also makes sure to retain
25561 the parent surface pool in the proxy.
25562 Besides, it was also totally useless to attach/detach parent context to
25563 VA surface each time we acquire/release it. Since the whole context owns
25564 all associated VA surfaces, we can mark this as such only once and for all.
25566 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25569 Bump version for development.
25571 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25577 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25582 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25584 * gst/vaapi/gstvaapipluginutil.c:
25585 * gst/vaapi/gstvaapisink.c:
25586 plugins: fix usage of gst_vaapi_reply_to_query().
25587 Make gst_vaapi_reply_to_query() first check whether the query argument
25588 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
25589 Then, make sure vaapisink propagates the query to the parent class if
25590 it is not a video-context query.
25592 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25594 * gst/vaapi/gstvaapivideobuffer.c:
25595 * gst/vaapi/gstvaapivideobuffer.h:
25596 plugins: streamline video buffers.
25597 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
25598 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
25599 gst_vaapi_video_buffer_get_meta().
25601 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25603 * docs/reference/libs/libs-sections.txt:
25604 * gst-libs/gst/vaapi/Makefile.am:
25605 * gst/vaapi/Makefile.am:
25606 * gst/vaapi/gstvaapidecode.c:
25607 * gst/vaapi/gstvaapidownload.c:
25608 * gst/vaapi/gstvaapipostproc.c:
25609 * gst/vaapi/gstvaapisink.c:
25610 * gst/vaapi/gstvaapiupload.c:
25611 * gst/vaapi/gstvaapiuploader.c:
25612 * gst/vaapi/gstvaapivideobuffer.h:
25613 * gst/vaapi/gstvaapivideoconverter_glx.c:
25614 * gst/vaapi/gstvaapivideometa.c:
25615 * gst/vaapi/gstvaapivideometa.h:
25616 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
25617 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
25618 actual plugin elements. That's only useful there. Also inline reference
25619 counting code from GstVaapiMiniObject.
25621 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25623 * gst/vaapi/Makefile.am:
25624 * gst/vaapi/gstvaapidecode.c:
25625 * gst/vaapi/gstvaapidownload.c:
25626 * gst/vaapi/gstvaapipluginbuffer.c:
25627 * gst/vaapi/gstvaapipluginbuffer.h:
25628 * gst/vaapi/gstvaapipostproc.c:
25629 * gst/vaapi/gstvaapiupload.c:
25630 * gst/vaapi/gstvaapiuploader.c:
25631 * gst/vaapi/gstvaapivideobuffer.c:
25632 * gst/vaapi/gstvaapivideobuffer.h:
25633 plugins: drop gstvaapipluginbuffer.[ch] helper files.
25634 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
25635 to gstvaapivideobuffer.[ch], and drop the obsolete files.
25637 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25639 * docs/reference/libs/libs-sections.txt:
25640 * docs/reference/libs/libs.core.types:
25641 * gst-libs/gst/vaapi/Makefile.am:
25642 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25643 * gst/vaapi/Makefile.am:
25644 * gst/vaapi/gstvaapidownload.h:
25645 * gst/vaapi/gstvaapipluginbuffer.c:
25646 * gst/vaapi/gstvaapipostproc.h:
25647 * gst/vaapi/gstvaapivideobuffer.c:
25648 * gst/vaapi/gstvaapivideobuffer.h:
25649 * gst/vaapi/gstvaapivideoconverter_glx.h:
25650 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
25651 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
25652 actual plugin elements. That's only useful there.
25654 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25656 * gst/vaapi/gstvaapipluginutil.c:
25657 * gst/vaapi/gstvaapipluginutil.h:
25658 * gst/vaapi/gstvaapisink.c:
25659 * gst/vaapi/gstvaapivideoconverter_glx.c:
25660 plugins: use common helper function to apply compositions.
25661 Use common gst_vaapi_apply_composition() helper function to apply compositions
25662 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
25664 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25666 * gst-libs/gst/vaapi/Makefile.am:
25667 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25668 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
25669 * gst/vaapi/Makefile.am:
25670 * gst/vaapi/gstvaapipluginbuffer.c:
25671 * gst/vaapi/gstvaapivideoconverter_glx.c:
25672 * gst/vaapi/gstvaapivideoconverter_glx.h:
25673 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
25674 Make sure libgstvaapi core decoding library doesn't include un-needed
25675 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
25676 Besides, even if the vaapisink element is not used, we are bound to have
25677 a correctly populated GstSurfaceBuffer from vaapidecode.
25678 Also clean-up the file along the way.
25680 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25682 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25683 vc1: fix use of possibly uninitialized variable.
25684 In decode_codec_data(), force initialization of format to zero so that
25685 we can catch up cases where codec-data has neither "format" nor "wmvversion"
25686 fields, thus making it possible to gracefully fail in this case.
25688 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25690 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25691 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
25693 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25695 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25696 * gst-libs/gst/vaapi/gstvaapidecoder.h:
25697 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25698 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25699 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25700 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25701 decoder: sanitize codec-data decoding.
25702 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
25703 codec-data in the decoder sub-class. Provide a common shared helper
25704 function to do the actual work and delegating further to the sub-class.
25706 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25708 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25709 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25710 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
25711 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
25712 decoder: get rid of GstVaapiDecoderUnit::buffer field.
25713 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
25714 useless nowadays as creating sub-buffers doesn't bring any value. It
25715 actually means more memory allocations. We can't do without that in
25716 JPEG and MPEG-4:2 decoders.
25718 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25720 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25721 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25722 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25723 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25724 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25725 decoder: sanitize uses of codec frame input buffer (cosmetics).
25726 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
25729 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25731 * gst/vaapi/gstvaapisink.c:
25732 vaapisink: add helper function to apply a composition buffer.
25733 Simplify application of a composition buffer to a GstVaapiSurface, and
25734 all its peers, until that function is eventually promoted to libgstvaapi.
25736 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25738 * gst/vaapi/gstvaapisink.c:
25739 vaapisink: fix support for raw YUV buffers.
25740 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
25741 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
25742 However, we previously assumed in that case that it was a "native" VA buffer,
25743 thus not calling into GstVaapiUploader::process().
25745 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25747 * gst-libs/gst/vaapi/gstcompat.h:
25748 * gst/vaapi/gstvaapidecode.c:
25749 * gst/vaapi/gstvaapidownload.c:
25750 * gst/vaapi/gstvaapipostproc.c:
25751 * gst/vaapi/gstvaapisink.c:
25752 * gst/vaapi/gstvaapiupload.c:
25753 plugins: use modern GstElement metadata information.
25754 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
25755 basically is the same as gst_element_class_set_details_simple() in
25756 GStreamer 0.10 context.
25758 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25760 * gst/vaapi/gstvaapidecode.c:
25761 * gst/vaapi/gstvaapidownload.c:
25762 * gst/vaapi/gstvaapipostproc.c:
25763 * gst/vaapi/gstvaapisink.c:
25764 * gst/vaapi/gstvaapiupload.c:
25765 plugins: move up interfaces (cosmetics).
25766 Move GstImplementsInterface and GstVideoContext support functions up
25767 so that to keep a clear separation between the plugin element and its
25770 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25772 * gst/vaapi/gstvaapisink.c:
25773 * gst/vaapi/gstvaapiuploader.c:
25774 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
25775 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
25776 Also use the newly added gst_vaapi_image_format_from_structure() helper
25777 in GstVaapiUploader::ensure_allowed_caps().
25779 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25781 * gst/vaapi/gstvaapipluginbuffer.c:
25782 plugins: fix creation of video buffer from another source buffer.
25783 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
25784 buffer video meta since it would be unreference'd from the get_buffer()
25785 helper function. For other cases, we still use (steal) the newly created
25788 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25790 * gst/vaapi/gstvaapipluginbuffer.c:
25791 * gst/vaapi/gstvaapipluginutil.c:
25792 plugins: include "sysdeps.h" header instead of "config.h".
25794 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25796 * gst-libs/gst/vaapi/gstcompat.h:
25798 tests: modernize GstTypeFind functions.
25799 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
25800 exactly correspond to the expected behaviour.
25802 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25806 * tests/test-decode.c:
25807 * tests/test-display.c:
25808 * tests/test-h264.c:
25809 * tests/test-h264.h:
25810 * tests/test-jpeg.c:
25811 * tests/test-jpeg.h:
25812 * tests/test-mpeg2.c:
25813 * tests/test-mpeg2.h:
25814 * tests/test-mpeg4.c:
25815 * tests/test-mpeg4.h:
25816 * tests/test-textures.c:
25817 * tests/test-vc1.c:
25818 * tests/test-vc1.h:
25819 * tests/test-windows.c:
25820 tests: fix license templates.
25822 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25824 * tests/test-display.c:
25825 tests: use gst_vaapi_image_format_from_structure() in test-display.
25826 Use gst_vaapi_image_format_from_structure() helper in test-display and
25827 then extract a VAImageFormat from it instead of relying on GstCaps for
25828 YUV and RGB formats.
25830 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25835 * tests/test-decode.c:
25836 * tests/test-display.c:
25837 * tests/test-subpicture.c:
25838 * tests/test-textures.c:
25839 * tests/test-windows.c:
25840 tests: include "sysdeps.h" header instead of "config.h".
25842 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25844 * gst-libs/gst/vaapi/gstcompat.h:
25845 * gst-libs/gst/vaapi/gstvaapicontext.c:
25846 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25847 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
25848 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
25849 function with GStreamer 0.10 compatible semantics, or that tries to
25850 approach the current meaning. Basically, this is also just about moving
25851 the helper to gstcompat.h.
25853 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25855 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25856 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25857 image: add gst_vaapi_image_format_from_structure() helper.
25858 Add helper function to convert video formats from a GstStructure to a
25859 plain GstVaapiImageFormat.
25861 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25863 * gst-libs/gst/vaapi/Makefile.am:
25864 * gst-libs/gst/vaapi/gstcompat.h:
25865 * gst-libs/gst/vaapi/sysdeps.h:
25866 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
25868 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25870 * gst-libs/gst/vaapi/sysdeps.h:
25871 sysdeps: add more standard includes by default.
25873 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25876 configure: improve GStreamer API version checks.
25878 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25881 * debian.upstream/Makefile.am:
25882 * debian.upstream/changelog.in:
25883 * debian.upstream/control.in:
25884 * debian.upstream/gstreamer-vaapi-doc.install.in:
25885 * debian.upstream/libgstvaapi-dev.install.in:
25886 * debian.upstream/libgstvaapi-drm.install.in:
25887 * debian.upstream/libgstvaapi-glx.install.in:
25888 * debian.upstream/libgstvaapi-wayland.install.in:
25889 * debian.upstream/libgstvaapi-x11.install.in:
25890 * debian.upstream/libgstvaapi.install.in:
25891 * docs/reference/libs/Makefile.am:
25892 * docs/reference/libs/libs-docs.xml.in:
25893 * docs/reference/plugins/Makefile.am:
25894 * docs/reference/plugins/plugins-docs.xml.in:
25895 * gst-libs/gst/vaapi/Makefile.am:
25896 * gst/vaapi/Makefile.am:
25897 * pkgconfig/Makefile.am:
25898 * pkgconfig/gstreamer-vaapi-drm.pc.in:
25899 * pkgconfig/gstreamer-vaapi-glx.pc.in:
25900 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
25901 * pkgconfig/gstreamer-vaapi-x11.pc.in:
25902 * pkgconfig/gstreamer-vaapi.pc.in:
25903 * tests/Makefile.am:
25904 configure: rename GST_MAJORMINOR to GST_API_VERSION.
25906 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25909 configure: improve check for H.264 codecparser.
25911 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
25913 * gst/vaapi/gstvaapiuploader.c:
25914 vaapiupload: fix illegal write in ensure_image().
25915 Fix ensure_image() to only zero-initialize the first line of each plane.
25916 Properly initializing each plane to their full vertical resolution would
25917 require to actually compute it based on the image format.
25918 In particular, for NV12 images, the UV plane has half vertical resolution
25919 vs. the Y plane. So using the full image height to initialize the UV plane
25920 will obviously lead to a buffer overflow. Likewise for other YUV format.
25921 Since ensure_image() is only a helper function to initialize something,
25922 and not necessarily the whole thing, it is fine to initializ the first
25923 line only. Besides, the target surface is not rendered either.
25924 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25926 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
25928 * gst-libs/gst/codecparsers/Makefile.am:
25929 * gst-libs/gst/video/Makefile.am:
25930 build: fix compiling of local GstVideoDecoder and codecparsers.
25931 Generated source files were missing a dependency on the complete set of
25932 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
25933 to build and almost every codec parser source depends on parserutils.h.
25934 https://bugs.freedesktop.org/show_bug.cgi?id=59575
25935 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
25936 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25938 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25940 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25941 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
25942 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
25943 there is no pred_weight_table() that was parsed.
25944 This is a workaround for the VA intel-driver on Ivy Bridge.
25946 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25948 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25949 h264: use new profile definitions from codecparsers.
25951 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25953 * ext/codecparsers:
25954 codecparsers: update to gst-vaapi-branch commit 500bc02.
25955 500bc02 h264: add profile enums
25957 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25962 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25964 * ext/codecparsers:
25965 codecparsers: update to gst-vaapi-branch commit 31b1c57.
25966 8957fb7 mpeg2: add helpers to convert quantization matrices
25967 07c4034 mpeg2: store quantization matrices in zigzag scan order
25969 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25971 * tests/simple-decoder.c:
25972 tests: simple-decoder: fix build on older platforms.
25973 Make simple-decoder build and execute correctly on older platforms,
25974 and more precisely older versions of glib.
25976 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25978 * gst-libs/gst/vaapi/glibcompat.h:
25979 glibcompat: add replacement for g_async_queue_timeout_pop().
25980 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
25981 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
25982 new data to arrive in the queue.
25984 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25986 * gst-libs/gst/vaapi/glibcompat.h:
25987 glibcompat: add replacement for g_cond_wait().
25989 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25991 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25992 mpeg2: fix decoding of 4K videos.
25993 Account for slice_vertical_position_extension when vertical_size > 2800.
25995 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25997 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25998 mpeg2: fix decoding of sequence_end().
25999 There shall be only one place to call decode_current_picture(), and this
26000 is in the end_frame() hook. The EOS unit is processed after end_frame()
26001 so this means we cannot have a valid picture to decode/output at this
26004 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26006 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26007 mpeg2: improve robustness when packets are missing.
26008 Improve robustness when some expected packets where not received yet
26009 or that were not correctly decoded. For example, don't try to decode
26010 a picture if there was no valid sequence or picture headers.
26012 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26014 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26015 decoder: handle decode-only frames in raw API mode.
26016 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
26017 surface proxy, i.e. with a valid VA surface. This means that any frame
26018 marked as decode-only is simply skipped.
26020 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26022 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26023 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26024 decoder: allow frames to be dropped.
26025 If the decoder was not able to decode a frame because insufficient
26026 information was available, e.g. missing sequence or picture header,
26027 then allow the frame to be gracefully dropped without generating
26029 It is also possible that a frame is not meant to be displayed but
26030 only used as a reference, so dropping that frame is also a valid
26031 operation since GstVideoDecoder base class has extra references to
26032 that GstVideoCodecFrame that needs to be released.
26034 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26036 * gst/vaapi/gstvaapidecode.c:
26037 vaapidecode: handle decode-only frames.
26038 Decode-only frames may not have a valid surface proxy. So, simply discard
26039 them gracefully, i.e. don't create meta data information. GstVideoDecoder
26040 base class will properly handle this case and won't try to push any buffer
26041 to downstream elements.
26043 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26045 * gst/vaapi/gstvaapidecode.c:
26046 vaapidecode: add support for post-seek semantics reset.
26047 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
26048 and the creation of a new VA decoder.
26049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26051 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26054 Bump version for development.
26056 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26062 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26064 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26065 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
26067 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26069 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
26070 decoder: fix documentation for GstVaapiDecoderFrame.
26071 Drop superfluous reference to prev_slice member.
26073 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26075 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26076 decoder: assume current frame is complete at end-of-stream.
26077 Assume we got a complete frame when the end-of-stream is reached and that
26078 the current codec frame contains at least one slice data unit.
26080 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26084 * debian.upstream/copyright:
26085 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26086 * gst-libs/gst/vaapi/gstvaapicontext.c:
26087 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26088 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26089 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26090 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
26091 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
26092 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
26093 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26094 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26095 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26096 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26097 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26098 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26099 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26100 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
26101 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
26102 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26103 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26104 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26105 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26106 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26107 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26108 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26109 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26110 * gst-libs/gst/vaapi/gstvaapisurface.c:
26111 * gst-libs/gst/vaapi/gstvaapiutils.c:
26112 * gst-libs/gst/vaapi/gstvaapiutils.h:
26113 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26114 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26115 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
26116 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26117 * gst-libs/gst/vaapi/sysdeps.h:
26118 * gst/vaapi/gstvaapidecode.c:
26119 * gst/vaapi/gstvaapidownload.c:
26120 * gst/vaapi/gstvaapipluginbuffer.c:
26121 * gst/vaapi/gstvaapipluginbuffer.h:
26122 * gst/vaapi/gstvaapipostproc.c:
26123 * gst/vaapi/gstvaapisink.c:
26124 * gst/vaapi/gstvaapiupload.c:
26125 * gst/vaapi/gstvaapiuploader.c:
26127 * tests/test-decode.c:
26128 * tests/test-subpicture.c:
26129 legal: fix year for some copyright notices (2013).
26131 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26133 * gst-libs/gst/vaapi/gstvaapicontext.h:
26134 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26135 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26136 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26137 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26138 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26139 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26140 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26141 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26142 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26143 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26144 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26145 * gst-libs/gst/vaapi/gstvaapisurface.c:
26146 * gst-libs/gst/vaapi/gstvaapisurface.h:
26147 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26148 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
26149 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26150 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26151 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
26152 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
26153 * gst/vaapi/gstvaapidecode.h:
26154 * gst/vaapi/gstvaapisink.h:
26155 * tests/test-subpicture.c:
26156 legal: fix year for some copyright notices (2012).
26158 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26160 * gst-libs/gst/vaapi/gstvaapicompat.h:
26161 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26162 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26163 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26164 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26165 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26166 * gst-libs/gst/vaapi/gstvaapiobject.c:
26167 * gst-libs/gst/vaapi/gstvaapiobject.h:
26168 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26169 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26170 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26171 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26172 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26173 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26174 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26175 * gst-libs/gst/vaapi/gstvaapitexture.c:
26176 * gst-libs/gst/vaapi/gstvaapitexture.h:
26177 * gst-libs/gst/vaapi/gstvaapitypes.h:
26178 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
26179 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
26180 * gst-libs/gst/vaapi/gstvaapivalue.c:
26181 * gst-libs/gst/vaapi/gstvaapivalue.h:
26182 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26183 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26184 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26185 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26186 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26187 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26188 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26189 * tests/test-display.c:
26190 * tests/test-surfaces.c:
26191 * tests/test-windows.c:
26192 legal: add Intel copyright on modified files.
26194 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26199 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26201 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26202 wayland: use a local event queue to avoid lock contention.
26203 This improves performance when rendering several surfaces from within
26204 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
26206 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26208 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26209 wayland: fix thread-safe issues.
26210 The Wayland API is not fully thread-safe and client applications shall
26211 perform locking themselves on key functions. Besides, make sure to
26212 release the lock if the _render() function fails.
26214 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26216 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26217 wayland: really wait until the pending redraw completed.
26218 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
26219 the completion of the redraw request. Use it in _render() function to
26220 actually block until the previous draw request is completed.
26222 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26224 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26225 wayland: fix frame_redraw callback.
26226 The redraw callback needs to be attached to the surface prior to the
26227 commit. Otherwise, the callback notifies the next surface repaint,
26228 which is not the desired behaviour. i.e. we want to be notified for
26229 the surface we have just filled.
26230 Another isse was the redraw_pending was reset before the actual completion
26231 of the frame redraw callback function, thus causing concurrency issues.
26232 e.g. the callback could have been called again, but with a NULL buffer.
26234 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26236 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26237 wayland: fix display sharing.
26238 When the Wayland display is shared, we still have to create our own local
26239 shell and compositor objects, since they are not propagated from the cache.
26240 Likewise, we also need to determine the display size or vaapisink would
26241 fail to account for the display aspect ratio, and will try to create a 0x0
26244 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26246 * ext/codecparsers:
26247 codecparsers: update to gst-vaapi-branch commit 21a098e.
26248 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
26249 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
26251 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26253 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26254 vc1: handle frames with multiple slices.
26256 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26258 * ext/codecparsers:
26259 codecparsers: update to gst-vaapi-branch commit 3fba492.
26260 3fba492 vc1: add API to parse slice headers
26262 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26264 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26265 vc1: handle CLOSED_ENTRY.
26266 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
26267 lack a reference anchor picture, these B pictures shall be discarded.
26268 https://bugs.freedesktop.org/show_bug.cgi?id=59505
26270 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26272 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26273 vc1: cope with latest codecparser changes.
26274 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
26275 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
26276 the actual value of DQPROFILE.
26278 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26280 * ext/codecparsers:
26281 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
26282 3d2c67c vc1: simplify GstVC1VopDquant structure
26284 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26286 * ext/codecparsers:
26287 codecparsers: update to gst-vaapi-branch commit 5d33da8.
26288 5d33da8 vc1: fix bitplanes decoding
26289 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
26290 0b13d2b vc1: fix calculation of ALTPQUANT
26291 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
26293 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26295 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26296 vc1: fix size of encapsulated BDU.
26297 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
26298 the size of the BDU data, starting from offset, i.e. after any start
26300 This fixes a buffer overflow during the unescaping process.
26302 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
26304 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26305 vc1: fix decoding of WMV3 videos in AVI format.
26306 The AVI demuxer (avidemux) does not set a proper "format" attribute
26307 to the generated caps. So, try to recover the video codec format from
26308 the "wmvversion" property instead.
26309 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26311 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26313 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26314 vc1: review and report errors accordingly.
26315 Use GST_ERROR() to report real errors instead of hiding them into
26318 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26320 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26321 vc1: don't create GstBuffers for all decoder units.
26322 Don't create temporary GstBuffers for all decoder units, even if they
26323 are lightweight "sub-buffers", since it is not really necessary to keep
26324 the buffer data around.
26326 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26328 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26329 vc1: implement flush() hook.
26330 Make it a simple DPB flush.
26332 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26334 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26335 vc1: implement {start,end}_frame() hooks.
26336 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
26337 that to create new VA context earlier and submit VA pictures to the
26338 HW for decoding as soon as possible. i.e. don't wait for the next
26339 frame to start decoding the previous one.
26341 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26343 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26344 vc1: fix next POC for new sequence layers.
26345 Fix next POC when a new sequence layer is reached. At this point, we
26346 need to reset any previous reference picture, i.e. non B-frame.
26348 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26350 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26351 vc1: port to common GstVaapiDpb interface.
26352 Use GstVaapiDpb interface instead of maintaining our own prev and next
26353 picture pointers. While doing so, try to derive a sensible POC value.
26354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26356 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26358 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26359 vc1: fix decode_sequence_end() to return success, not EOS.
26361 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26363 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26364 decoder: simplify gst_vaapi_decoder_get_surface().
26365 Avoid extraenous branches, i.e. immediately return with success once we
26366 have a decoded frame available.
26368 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26370 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26371 decoder: optimize and clean decode_step() up.
26372 Avoid usage of goto. Simplify decode_step() process to first accumulate all
26373 pending buffers into the GstAdapter, and then parse and decode units from
26374 that input adapter. Stop the process once a frame is fully decoded or an
26377 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26379 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26380 display: move "vaapi" debug init to libgstvaapi_init_once().
26382 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26385 * gst-libs/gst/vaapi/Makefile.am:
26386 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26387 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
26388 display: dump gstreamer-vaapi version for debugging purposes.
26390 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26392 * tests/Makefile.am:
26393 tests: simple-decoder: fix build with built-in videoutils.
26394 Fix build with built-in videoutils, i.e. when system GStreamer installation
26395 does not know about GstVideoDecoder API.
26397 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26399 * tests/simple-decoder.c:
26400 tests: simple-decoder: flush decoded frames at EOS.
26401 Flush the remaining decoded frames when an end-of-stream is reached.
26403 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26405 * tests/simple-decoder.c:
26406 tests: simple-decoder: drop use of GstVaapiVideoMeta.
26407 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
26408 in libgstvaapi forever. Rather, that'd move to plugin elements at some
26411 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26413 * tests/simple-decoder.c:
26414 tests: simple-decoder: add benchmark mode.
26415 Add --benchmark option to enable benchmark mode where rendering is not
26416 synchronized with presentation timestamps of the decoded surfaces.
26418 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26420 * tests/Makefile.am:
26421 * tests/simple-decoder.c:
26422 tests: simple-decoder: honour framerate from the bitstream.
26423 Try to honour the framerate from the bitstream, or cap the playback to
26426 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26428 * tests/simple-decoder.c:
26429 tests: simple-decoder: set window size to the surface dimensions.
26430 Set the window size to the decoded surface dimensions, if the user has
26431 not requested the application to run in full-screen mode. Besides, no
26432 effort is made to preserve aspect ratio or to center the video within
26435 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26437 * tests/Makefile.am:
26438 * tests/simple-decoder.c:
26439 tests: add simple decoder application.
26440 Add simple decoder application to show off decoding capabilities from
26441 raw bitstreams, for debugging or performance evaluation purposes.
26443 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26445 * tests/Makefile.am:
26448 tests: add codec helper utils.
26449 Add helper functions to determine the codec type from a specific file
26450 or utility functions to convert from codec type to GstCaps or from
26451 codec name to codec type.
26453 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26456 tests: allow fullscreen mode.
26457 Add new --fullscreen|-f option to create new windows in fullscreen mode.
26459 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26461 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26462 h264: implement GstVaapiDecoder::flush() as a DPB flush.
26464 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26466 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26467 h264: handle end-of-stream NALU.
26468 Handle <end-of-stream> NAL unit to actually flush any pending picture
26471 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26473 * gst/vaapi/gstvaapidecode.c:
26474 vaapidecode: handle EOS events.
26475 Flush all decoded frames to downstream when EOS is received. This is
26476 performed by implementing GstVideoDecoder::finish() hook.
26478 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26480 * gst/vaapi/gstvaapidecode.c:
26481 vaapidecode: split gvd_handle_frame() into decode/push frames.
26482 Split GstVideoDecoder::handle_frame() implementation into two functions:
26483 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
26484 for purging all decoded frames and submit them downstream.
26486 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26488 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26489 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26490 decoder: add GstVaapiDecoder::flush() hook.
26492 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26494 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26495 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26496 decoder: fix check for end-of-stream in raw API mode.
26497 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
26498 if the end-of-stream was already reached at the previous iteration.
26500 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26502 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26503 decoder: make decode_step() return once the frame is decoded.
26504 Make sure we always have a free surface left to use for decoding the
26505 current frame. This means that decode_step() has to return once a frame
26506 gets decoded. If the current adapter contains more buffers with valid
26507 frames, they will get parsed and decoded on subsequent iterations.
26509 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26511 * ext/codecparsers:
26512 codecparsers: update to gst-vaapi-branch commit b47983a.
26513 8840c2d h264: zero-initialize SPS VUI parameters
26515 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26518 Bump version for development.
26520 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26526 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26528 * docs/reference/libs/libs-docs.xml.in:
26529 * docs/reference/libs/libs-sections.txt:
26530 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26531 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26532 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26533 docs: expose new interfaces.
26535 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26540 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26542 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26543 dpb: cosmetics (clean-ups).
26545 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26547 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26548 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
26549 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26550 dpb: port to GstVaapiMiniObject.
26552 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26554 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26555 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
26556 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26557 dpb: drop GstVaapiDpb2 interface, keep only one class.
26558 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
26559 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
26560 around the specified picture POC.
26562 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26564 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26565 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
26566 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26567 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
26568 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
26569 useful to other decoders that require 2 reference pictures, e.g. VC-1.
26570 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26572 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26575 Bump version for pre-release.
26577 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26582 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
26585 * gst-libs/gst/vaapi/gstvaapicontext.c:
26586 * gst-libs/gst/vaapi/gstvaapiutils.c:
26587 * gst-libs/gst/vaapi/sysdeps.h:
26588 * tests/test-subpicture.c:
26589 overlay: fix build without advanced GstVideoOverlayFormatFlags.
26590 Check for global-alpha support in GstVideoOverlayComposition API.
26591 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26593 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26595 * tests/test-subpicture.c:
26596 tests: add support for global-alpha subpictures.
26597 Add --global-alpha option to test-subpicture.
26599 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26601 * tests/Makefile.am:
26602 * tests/test-subpicture.c:
26603 tests: use GstVideoOverlayComposition API for subpicture test.
26605 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26607 * tests/Makefile.am:
26608 * tests/test-subpicture.c:
26609 tests: use common decoder helpers for subpicture test.
26610 Use common decoder helpers for subpicture test, thus allowing to decode
26611 sample images in an alternate format.
26613 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26615 * tests/Makefile.am:
26618 * tests/test-decode.c:
26619 tests: add decoder helpers.
26621 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26623 * gst-libs/gst/vaapi/gstvaapicontext.c:
26624 overlay: fix ordering of composition layers.
26625 Make sure to maintain the association order of composition layers when
26626 GstVideoOverlayRectangle objects are kept around (cached).
26628 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
26630 * gst-libs/gst/vaapi/gstvaapicontext.c:
26631 overlay: fix support for global-alpha.
26632 Fix support for global-alpha subpictures. The previous changes brought
26633 the ability to check for GstVideoOverlayRectangle changes by comparing
26634 the underlying pixel buffer pointers. If sequence number and pixel data
26635 did not change, then this is an indication that only the global-alpha
26636 value changed. Now, try to update the underlying VA subpicture global-alpha
26638 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26640 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26642 * gst-libs/gst/vaapi/gstvaapicontext.c:
26643 overlay: detect render-rect changes.
26644 Don't re-upload VA subpicture if only the render rectangle changed.
26645 Rather deassociate the subpicture and re-associate it with the new
26648 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26650 * gst-libs/gst/vaapi/gstvaapicontext.c:
26651 overlay: fix check for pixels buffer change.
26652 A GstVideoOverlayRectangle is created whenever the underlying pixels data
26653 change. However, when global-alpha is supported, it is possible to re-use
26654 the same GstVideoOverlayRectangle but with a change to the global-alpha
26655 value. This process causes a change of sequence number, so we can no longer
26657 Still, if sequence numbers did not change, then there was no change in
26658 global-alpha either. So, we need a way to compare the underlying GstBuffer
26659 pointers. There is no API to retrieve the original pixels buffer from
26660 a GstVideoOverlayRectangle. So, we use the following heuristics:
26661 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
26662 format flags from which the GstVideoOverlayRectangle was created. This
26663 will work if there was no prior consumer of the GstVideoOverlayRectangle
26664 with alternate (non-"native") format flags.
26665 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
26666 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
26667 with flags that match the subpicture. This is needed to cope with
26668 platforms that don't support global-alpha in HW, so the gst-video
26669 layer takes care of that and fixes this up with a possibly new
26670 GstBuffer, and hence pixels data (or) in-place by caching the current
26671 global-alpha value applied. So we have to determine the rectangle
26672 was previously used, based on what previous flags were used to
26673 retrieve the ARGB pixels buffer.
26675 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26677 * gst-libs/gst/vaapi/gstvaapicontext.c:
26678 overlay: optimize cache at the GstVideoOverlayRectangle level.
26679 We previously assumed that an overlay composition changed if the number
26680 of overlay rectangles in there actually changed, or that the rectangle
26681 was updated, and thus its seqnum was also updated.
26682 Now, we can cope with cases where the GstVideoOverlayComposition grew
26683 by one or a few more overlay rectangles, and the initial overlay rectangles
26686 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26688 * gst-libs/gst/vaapi/gstvaapicontext.c:
26689 overlay: simplify caching of GstVideoOverlayComposition objects.
26690 Create the GPtrArray once in the _init() function and destroy it only
26691 in the _finalize() function. Then use overlay_clear() to remove all
26692 subpicture associations for intermediate updates, don't recreate the
26694 Make GstVaapiOverlayRectangle a reference counted object. Also make
26695 sure that overlay_rectangle_new() actually creates and associates the
26698 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
26700 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26701 * gst-libs/gst/vaapi/gstvaapiutils.c:
26702 * gst-libs/gst/vaapi/gstvaapiutils.h:
26703 overlay: add support for global-alpha.
26704 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
26705 the same code path could also work for premultiplied-alpha but this
26707 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26709 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
26711 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26712 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26713 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26714 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26715 * gst-libs/gst/vaapi/gstvaapisurface.c:
26717 * tests/test-subpicture.c:
26718 subpicture: add support for global-alpha.
26719 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
26720 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
26721 to address this feature.
26722 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26724 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26726 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26727 * gst-libs/gst/vaapi/gstvaapiutils.c:
26728 * gst-libs/gst/vaapi/gstvaapiutils.h:
26729 subpicture: add premultiplied-alpha and global-alpha feature flags.
26730 Add premultiplied-alpha and global-alpha feature flags, along with converters
26731 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
26732 also necessary for GstVideoOverlayComposition API.
26734 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26736 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26737 display: allow image/subpicture formats with additional flags.
26738 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
26739 and any additional flags needed. Currently, all flags are set to zero.
26741 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26743 * gst-libs/gst/codecparsers/Makefile.am:
26744 * gst-libs/gst/video/Makefile.am:
26745 * tests/Makefile.am:
26746 libs: fix build of submodule wrappers.
26747 Make sure to build codecparsers/ and videoutils/ sources against the
26748 newly generated headers when out-of-source builds are used.
26750 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26753 configure: fix checks for packages installed in non-standard roots.
26755 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26757 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26758 decoder: fix mini object implementation on 64-bit systems.
26759 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
26760 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
26761 Only a gsize can hold all bits of a pointer.
26762 Thanks to Ouping Zhang for spotting this error.
26764 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26766 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26767 mpeg2: optimize scan for the end of the frame.
26768 Heuristic: if the second start-code is available, check whether that
26769 one marks the start of a new frame because e.g. this is a sequence
26770 or picture header. This doesn't save much, since we already cache the
26773 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26775 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26776 mpeg2: optimize scan for start codes.
26777 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
26778 A start code prefix is defined by the following bytes: 00 00 01. Thus,
26779 for any group of 3 bytes (xx yy zz), we have the following possible cases:
26780 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
26781 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
26782 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
26783 4. xx == 00, yy == 00, zz == 1, we have match!
26784 This algorithm requires to peek bytes from the adapter. This increases the
26785 amount of bytes copied to a temporary buffer, but this process is much faster
26786 than scanning for all the bytes and using shift/masks. So, overall, this is
26789 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26791 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26792 mpeg2: drop useless gst_adapter_peek().
26793 Drop useless gst_adapter_peek() since the returned buffer was not used
26794 and this could incur superfluous memcpy().
26796 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26798 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26799 mpeg2: cosmetics: move parse_slice() down.
26801 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26803 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26804 mpeg2: avoid too many allocations of parser info objects.
26805 Move parsing back to decoding step, but keep functions separate for now.
26806 This is needed for future optimizations that may introduce some meta data
26807 for parsed info attached to codec frames.
26809 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26811 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
26812 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
26813 decoder: decoder units are no longer dynamically allocated objects.
26815 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26817 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26818 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
26819 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
26820 decoder: optimize pre-allocation of decoder units.
26821 Optimize pre-allocation of decoder units, thus avoiding un-necessary
26822 memory reallocations. The heuristic used is that we could have around
26823 one slice unit per macroblock line.
26825 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26827 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26828 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
26829 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
26830 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26831 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
26832 decoder: use an array of units instead of a single-linked list.
26833 Use a GArray to hold decoder units in a frame, instead of a single-linked
26834 list. This makes 'append' calls faster, but not that much. At least, this
26835 makes things clearer.
26837 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26839 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26840 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26841 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26842 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26843 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26844 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26845 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
26846 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
26847 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26848 decoder: refactor decoder unit API.
26849 Allocate decoder unit earlier in the main parse() function and don't
26850 delegate this task to derived classes. The ultimate purpose is to get
26851 rid of dynamic allocation of decoder units.
26853 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26855 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26856 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
26857 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
26858 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
26860 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26862 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26863 h264: introduce parser info instead of H.264 specific decoder unit.
26864 Use a new GstVaapiParserInfoH264 data structure instead of deriving
26865 from GstVaapiDecoderUnit for H.264 specific parser information.
26867 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26869 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26870 h264: set default values for some header fields.
26871 The SPS, PPS and slice headers are not fully zero-initialized in the
26872 codecparsers/ library. Rather, the standard upstream behaviour is to
26873 initialize only certain syntax elements with some inferred values if
26874 they are not present in the bitstream.
26875 At the gstreamer-vaapi decoder level, we need to further initialize
26876 certain syntax elements with some sensible default values so that to
26877 not complicate VA drivers that just pass those verbatim to the HW,
26878 and also avoid an memset() of the whole decoder unit.
26879 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26880 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26882 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26884 * ext/codecparsers:
26885 codecparsers: update to gst-vaapi-rebased commit b47983a.
26886 b47983a h264: add inferred value for slice_beta_offset_div2
26888 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26890 * gst/vaapi/gstvaapidecode.c:
26891 * gst/vaapi/gstvaapidownload.c:
26892 * gst/vaapi/gstvaapipluginbuffer.c:
26893 * gst/vaapi/gstvaapipluginbuffer.h:
26894 * gst/vaapi/gstvaapipostproc.c:
26895 * gst/vaapi/gstvaapisink.c:
26896 * gst/vaapi/gstvaapiupload.c:
26897 * gst/vaapi/gstvaapiuploader.c:
26898 plugins: cope with new GstVaapiVideoMeta API.
26899 Update plugin elements with the new GstVaapiVideoMeta API.
26900 This also fixes support for subpictures/overlay because GstVideoDecoder
26901 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
26902 is marked as read-only. However, when comes in the textoverlay element
26903 for example, it checks whether the input buffer is writable. Since that
26904 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
26905 does not preserve the parent field, the generated buffer in textoverlay
26906 is not exploitable because we lost all VA specific information.
26907 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
26908 all information are preserved through gst_buffer_copy() since the latter
26909 does copy metadata (qdata in this case).
26911 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26913 * gst-libs/gst/vaapi/Makefile.am:
26914 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26915 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26916 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
26917 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
26918 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
26919 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
26920 videobuffer: wrap video meta into a surface buffer.
26921 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
26922 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
26923 expecting a GstSurfaceBuffer like Clutter.
26925 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26927 * gst-libs/gst/vaapi/Makefile.am:
26928 * gst-libs/gst/vaapi/gstvaapivideometa.c:
26929 * gst-libs/gst/vaapi/gstvaapivideometa.h:
26930 videobuffer: add video meta information.
26931 Add new GstVaapiVideoMeta object that holds all information needed to
26932 convey gst-vaapi specific data as a GstBuffer.
26934 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26936 * gst/vaapi/gstvaapidecode.c:
26937 vaapidecode: fix calculation of the time-out value.
26938 Fix calculation of the time-out value for cases where no VA surface is
26939 available for decoding. In this case, we need to wait until downstream
26940 sink consumed at least one surface. The time-out was miscalculated as
26941 it was always set to <current-time> + one second, which is not suitable
26942 for streams with larger gaps.
26944 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26946 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26947 decoder: always use the calculated presentation timestamp.
26948 Use PTS value computed by the decoder, which could also be derived from
26949 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
26950 the original one was miscomputed or only represented a DTS instead.
26952 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26954 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26955 h264: don't create sub-buffer for slice data.
26957 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26959 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26960 decoder: create new context when encoded resolution changes.
26961 Create a new VA context if the encoded surface size changes because we
26962 need to keep the underlying surface pool until the last one was released.
26963 Otherwise, either of the following cases could have happened: (i) release
26964 a VA surface to an inexistent pool, or (ii) release VA surface to an
26965 existing surface pool, but with different size.
26967 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26969 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26970 mpeg2: don't create sub-buffer for slice data.
26971 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
26972 frame input buffer data. This is possible because the codec frame is valid
26973 until end_frame() where we submit the VA buffers for decoding. Anyway, the
26974 slice data buffer is copied into the VA buffer when it is created.
26976 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26978 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26979 mpeg2: minor clean-ups.
26980 Drop explicit initialization of most fields that are implicitly set to
26981 zero. Remove some useless checks for NULL pointers.
26983 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26985 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26986 mpeg2: optimize scan for the second start code.
26987 Optimize scan for the second start code, on the next parse() call so that
26988 to avoid scanning again earlier bytes where we didn't find any start code.
26990 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26992 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26993 mpeg2: use sequence_display_extension() to compute PAR.
26994 Also compute pixel-aspect-ratio from sequence_display_extension(),
26995 should it exist in the bitstream.
26997 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26999 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27000 mpeg2: handle sequence_display_extension().
27002 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27004 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27005 mpeg2: implement {start,end}_frame() hooks.
27006 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
27007 that to create new VA context earlier and submit VA pictures to the
27008 HW for decoding as soon as possible. i.e. don't wait for the next
27009 frame to start decoding the previous one.
27011 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27013 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27014 mpeg2: parse slice() header earlier.
27015 Parse slice() header and first macroblock position earlier in _parse()
27016 function instead of waiting for the _decode() stage. This doesn't change
27017 anything but readability.
27019 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27021 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27022 mpeg2: add codec specific decoder unit.
27023 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
27024 GstMpegVideoPacket and additional parsed header info. Besides, we now
27025 parse as early as in the _parse() function so that to avoid un-necessary
27026 creation of sub-buffers in _decode() for video packets that are not slices.
27028 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27030 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27031 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27032 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27033 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27034 decoder: introduce lists of units to decode before/after frame.
27035 Theory of operations: all units marked as "slice" are moved to the "units"
27036 list. Since this list only contains slice data units, the prev_slice pointer
27037 was removed. Besides, we now maintain two extra lists of units to be decoded
27038 before or after slice data units.
27039 In particular, all units in the "pre_units" list will be decoded before
27040 GstVaapiDecoder::start_frame() is called and units in the "post_units"
27041 list will be decoded after GstVaapiDecoder::end_frame() is called.
27043 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27045 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27046 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27047 decoder: drop useless checks for codec objects.
27048 Codec objects are used internally only and they are bound to be created
27049 with a valid GstVaapiDecoder object.
27051 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27053 * gst/vaapi/gstvaapidecode.c:
27054 vaapidecode: use GST_ERROR to print error messages.
27056 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27058 * gst/vaapi/gstvaapidecode.c:
27059 vaapidecode: avoid double release of frame on error.
27060 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
27061 was already called before and it returned an error. In that case, we were
27062 releasing the frame again, thus leading to a "double-free" condition.
27064 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27071 * gst-libs/gst/Makefile.am:
27072 * gst-libs/gst/vaapi/Makefile.am:
27073 * gst-libs/gst/video/Makefile.am:
27074 * gst/vaapi/Makefile.am:
27075 Add videoutils submodule for GstVideoDecoder APIs.
27077 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27080 configure: check for GstVideoDecoder API.
27081 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
27082 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
27083 parties may either use upstream git 0.10 branch or backport the necessary support
27084 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
27086 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27088 * docs/reference/libs/libs.core.types:
27089 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
27090 GstVaapiSurfaceProxy is no longer based on the GType system.
27092 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27094 * docs/reference/libs/libs-sections.txt:
27095 docs: fix entries for GstVaapiSurfaceProxy.
27097 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27102 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27105 * gst-libs/gst/vaapi/Makefile.am:
27106 Bump library major version.
27107 Increase library major so that to cope with API/ABI incompatible changes
27108 since 0.4.x series and avoid user issues.
27110 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27112 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27113 surfaceproxy: minor clean-ups.
27115 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27117 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27118 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27119 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27120 surfaceproxy: drop accessors to obsolete attributes.
27121 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
27122 VA surface. i.e. drop any other attribute like timestamp, duration,
27123 interlaced or top-field-first.
27125 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27127 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27128 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27129 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27130 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27131 * gst/vaapi/gstvaapidecode.c:
27132 decoder: maintain decoded frames as GstVideoCodecFrame objects.
27133 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
27134 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
27135 the strict minimum: a context and a surface.
27137 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27139 * gst/vaapi/gstvaapidecode.c:
27140 vaapidecode: output all decoded frames as soon as possible.
27141 Make sure to push all decoded frames downstream as soon as possible.
27142 This makes sure we don't need to wait for a new frame to be ready to
27143 be decoded before receiving new decoded frames.
27144 This also separates the decode process and the output process. The latter
27145 could be moved to a specific GstTask later on.
27147 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27149 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27150 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27151 decoder: add gst_vaapi_decoder_get_frame() API.
27152 Add new gst_vaapi_decoder_get_frame() function meant to be used with
27153 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
27154 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
27155 as the user-data object.
27157 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27159 * gst/vaapi/gstvaapipostproc.c:
27160 vaapipostproc: use GstBuffer flags for TFF.
27161 Determine whether the buffer represents the top-field only by checking for
27162 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
27163 flag. Also trust "interlaced" caps to determine whether the input frame
27164 is interleaved or not.
27166 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27168 * gst/vaapi/gstvaapipostproc.c:
27169 vaapipostproc: handle video sub-buffers.
27170 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
27171 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
27173 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27175 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27176 h264: optimize initialization process of decoder units.
27177 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
27178 The latter don't require zero-initialization since the codecparsers/ lib
27179 will do so for key variables already. This is not a great value per se but
27180 at least it makes it possible to check whether the default initialization
27181 decisions made in the codecparsers/ lib were right or not.
27182 This can be reverted if this exposes too many issues.
27184 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27186 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27187 h264: minor clean-ups.
27188 Drop explicit initialization of most fields that are implicitly set to
27189 zero. Drop helper macros for casting to GstVaapiPictureH264 or
27190 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
27192 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27194 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27195 h264: drop GstVaapiSliceH264 object.
27196 Use standard GstVaapiSlice object from now on since we already have
27197 parsed and recorded the slice headers (GstH264SliceHdr decode units).
27199 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27201 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27202 h264: detect new pictures from decode-units.
27203 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
27204 of assuming frame boundaries when first_mb_in_slice is zero.
27206 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27208 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27209 h264: implement {start,end}_frame() hooks.
27210 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
27211 that to create new VA context earlier and submit VA pictures to the
27212 HW for decoding as soon as possible. i.e. don't wait for the next
27213 frame to start decoding the previous one.
27215 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27217 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27218 h264: optimize scan for the second start code.
27219 Optimize scan for the second start code, on the next parse() call so that
27220 to avoid scanning again earlier bytes where we didn't find any start code.
27222 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27224 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27225 h264: add codec specific decoder unit.
27226 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
27227 NAL unit header (GstH264NalUnit) and additional parsed header info.
27228 Besides, we now parse headers as early as in the _parse() function so
27229 that to avoid un-necessary creation of sub-buffers in _decode() for
27230 NAL units that are not slices.
27231 This is a performance win by ~+1.1% only.
27233 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27235 * gst/vaapi/gstvaapisink.c:
27236 vaapisink: handle sub video-buffers.
27237 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
27238 for non raw YUV cases. Make sure vaapisink now understands those buffers.
27240 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27242 * gst/vaapi/gstvaapidecode.c:
27243 vaapidecode: use gst_vaapi_decoder_get_codec_state().
27244 Directly use the GstVideoCodecState associated with the VA decoder
27245 instead of parsing caps again.
27246 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27247 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27249 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27251 * gst/vaapi/gstvaapidecode.c:
27252 vaapidecode: use more standard helpers.
27253 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
27256 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27258 * gst/vaapi/gstvaapidecode.c:
27259 * gst/vaapi/gstvaapidecode.h:
27260 vaapidecode: move to GstVideoDecoder base class.
27261 Make vaapidecode derive from the standard GstVideoDecoder base element
27262 class. This simplifies the code to the strict minimum for the decoder
27263 element and makes it easier to port to GStreamer 1.x API.
27264 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27265 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27267 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27269 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27270 jpeg: initial port to new GstVaapiDecoder API
27272 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27274 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27275 vc1: initial port to new GstVaapiDecoder API
27277 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27279 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27280 h264: initial port to new GstVaapiDecoder API
27282 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27284 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27285 mpeg4: initial port to new GstVaapiDecoder API
27287 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27289 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27290 mpeg2: initial port to new GstVaapiDecoder API.
27292 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27294 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27295 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27296 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27297 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27298 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27299 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27300 decoder: use GstVideoCodecState.
27301 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
27302 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
27303 it possible to drop picture size (width, height) information, framerate
27304 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
27305 and interlace mode (is_interlaced field).
27306 This is a new API with backwards compatibility maintained. In particular,
27307 gst_vaapi_decoder_get_caps() is still available.
27308 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27309 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27311 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27313 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27314 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27315 * tests/test-decode.c:
27316 * tests/test-subpicture.c:
27317 decoder: update gst_vaapi_decoder_get_surface() semantics.
27318 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
27319 API. That is, return a GstVaapiDecoderStatus and the decoded surface
27320 as a handle to GstVaapiSurfaceProxy in parameter.
27321 This is an API/ABI change.
27323 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27325 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27326 decoder: use standard helper functions.
27327 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
27328 whenever necessary.
27330 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27332 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27333 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27334 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27335 decoder: expose new parse/decode API.
27336 Introduce new decoding process whereby a GstVideoCodecFrame is created
27337 first. Next, input stream buffers are accumulated into a GstAdapter,
27338 that is then passed to the _parse() function. The GstVaapiDecoder object
27339 accumulates all parsed units and when a complete frame or field is
27340 detected, that GstVideoCodecFrame is passed to the _decode() function.
27341 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
27342 process was successful.
27344 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27346 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27347 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27348 decoder: add {start,end}_frame() hooks.
27349 The start_frame() hook is called prior to traversing all decode-units
27350 for decoding. The unit argument represents the first slice in the frame.
27351 Some codecs (e.g. H.264) need to wait for the first slice in order to
27352 determine the actual VA context parameters.
27354 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27356 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27357 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27358 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27359 decoder: add new GstVaapiDecoder API.
27360 Split decoding process into two steps: (i) parse incoming bitstreams
27361 into simple decoder-units until the frame or field is complete; and
27362 (ii) decode the whole frame or field at once.
27363 This is an ABI change.
27365 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27367 * gst-libs/gst/vaapi/Makefile.am:
27368 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27369 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27370 decoder: add new "decoder-frame" object.
27371 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
27372 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
27373 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
27374 as the user-data member element.
27375 This is a libgstvaapi internal object.
27377 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27379 * gst-libs/gst/vaapi/Makefile.am:
27380 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27381 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27382 decoder: add new "decoder-unit" object.
27383 Introduce GstVaapiDecoderUnit which represents a fragment of the source
27384 stream to be decoded. For instance, a decode-unit will be a NAL unit for
27385 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
27387 This is a libgstvaapi internal object.
27389 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27391 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27392 Port GstVaapiFrameStore to GstVaapiMiniObject.
27394 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27396 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27397 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
27398 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27399 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27400 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27401 Port codec objects to GstVaapiMiniObject.
27403 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27405 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27406 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27407 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27408 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27409 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27410 * gst/vaapi/gstvaapidecode.c:
27411 * gst/vaapi/gstvaapipluginbuffer.c:
27412 * tests/test-decode.c:
27413 * tests/test-subpicture.c:
27414 surfaceproxy: port to GstVaapiMiniObject.
27415 GstVaapiSurfaceProxy does not use any particular functionality from
27416 GObject. Actually, it only needs a basic object type with reference
27418 This is an API and ABI change.
27420 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27422 * gst-libs/gst/vaapi/Makefile.am:
27423 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27424 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
27425 Add GstVaapiMiniObject.
27426 Introduce a new reference counted object that is very lightweight and
27427 also provides flags and user-data functionalities. Initialization and
27428 finalization times are reduced by up to a factor 5x vs GstMiniObject
27429 from GStreamer 0.10 stack.
27430 This is a libgstvaapi internal object.
27432 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27434 * tests/Makefile.am:
27435 * tests/test-decode.c:
27436 * tests/test-mpeg4.c:
27437 * tests/test-mpeg4.h:
27438 tests: add test for MPEG-4:2 decoding.
27440 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27442 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27443 h264: initialize VA context before allocating the first slice.
27444 Fix decode_slice() to ensure a VA context exists prior to creating a
27445 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
27446 context ID. i.e. the latter was not initialized, thus causing failures
27447 on Cedar Trail for example.
27449 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
27452 configure: install plugin elements in GST_PLUGIN_PATH, if set.
27453 If GST_PLUGIN_PATH environment variable exists and points to a valid
27454 directory, then use it as the system installation path for gst-vaapi
27456 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27458 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27461 configure: downgrade glib required version to 2.28.
27463 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27465 * gst-libs/gst/vaapi/glibcompat.h:
27466 * gst/vaapi/gstvaapi.c:
27467 libs: fix compatibility with glib 2.28.
27468 Always prefer non deprecated APIs by default and provide compatibility
27469 glue for older glib versions when necessary.
27471 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27473 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27474 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27475 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
27476 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27477 libs: use glib >= 2.32 semantics for mutexes.
27478 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
27479 and termination. Basically, the new mutex objects can be used as static
27480 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
27482 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27484 * gst-libs/gst/vaapi/Makefile.am:
27485 libs: only export gst_vaapi_*() symbols.
27486 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
27487 library and the system-provided one, mainly used by videoparses/. Now,
27488 only symbols with the gst_vaapi_* prefix will be exported, if they are
27489 not marked as "hidden" to libgstvaapi.
27491 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27493 * gst/vaapi/gstvaapiuploader.c:
27494 vaapiupload: reset direct-rendering to zero when changing caps.
27495 Make sure to reset direct-rendering flag to zero when caps are changed,
27496 and only derive it to one when the next checks succeed.
27498 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27500 * gst/vaapi/gstvaapiupload.c:
27501 vaapiupload: fix sink caps to report the supported set of YUV caps.
27502 Try to allocate the GstVaapiUploader helper object prior to listing the
27503 supported image formats. Otherwise, only a single generic caps is output
27504 with no particular pixel format referenced in there.
27506 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
27508 * gst/vaapi/gstvaapiupload.c:
27509 * gst/vaapi/gstvaapiupload.h:
27510 vaapiupload: use new GstVaapiUploader helper.
27511 Use GstVaapiUploader helper that automatically handles direct rendering
27512 mode, thus making the "direct-rendering" property obsolete and hence it
27514 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
27515 really well supported and it could actually trigger degraded performance.
27516 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27518 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27520 * gst/vaapi/gstvaapisink.c:
27521 * gst/vaapi/gstvaapiuploader.c:
27522 * gst/vaapi/gstvaapiuploader.h:
27523 vaapisink: compute and expose the supported set of YUV caps.
27524 Make vaapisink expose only the set of supported caps for raw YUV buffers.
27525 Add gst_vaapi_uploader_get_caps() helper function to determine the set
27526 of supported YUV caps as source (for images). This function actually
27527 tries to zero and upload each image to a 64x64 test surface. Of course,
27528 this relies on VA drivers to not claim success if vaPutImage() is not
27529 correctly supported.
27531 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27534 * gst/vaapi/Makefile.am:
27535 * gst/vaapi/gstvaapisink.c:
27536 * gst/vaapi/gstvaapisink.h:
27537 * gst/vaapi/gstvaapiuploader.c:
27538 * gst/vaapi/gstvaapiuploader.h:
27539 vaapisink: add support for raw YUV buffers.
27540 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
27541 It is up to the caller to negotiate source caps (for images) and output
27542 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
27543 to help decide between the creation of a GstVaapiVideoBuffer or a regular
27544 GstBuffer on sink pads.
27545 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
27546 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27548 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27550 * gst-libs/gst/vaapi/gstvaapiimage.c:
27551 image: fix GstVaapiImage map and unmap.
27552 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
27553 structure correctly filled in if the image was already mapped.
27554 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
27555 was already unmapped.
27557 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
27560 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27561 videobuffer: fix memory leak for surface and image.
27562 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
27563 thus resulting on actual memory leak of GstVaapiImage when using them
27564 for downloads/uploads from VA surfaces and more specifically surfaces
27565 when the pipeline is shutdown. i.e. vaTerminate() was never called
27566 because the resources were not unreferenced, and thus not deallocated
27568 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27570 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27575 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27577 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27578 h264: fix picture size in macroblocks.
27579 The picture size signalled by sps->{width,height} is the actual size with
27580 cropping applied, not the original size derived from pic_width_in_mbs_minus1
27581 and pic_height_in_map_units_minus1. VA driver expects that original size,
27583 There is another issue pending: frame cropping information needs to be
27586 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27588 * gst-libs/gst/codecparsers/Makefile.am:
27589 codecparsers: always build parserutils first.
27590 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
27591 This is needed since that's the common dependency for actual codec
27592 parsers (gstvc1parser.c for instance).
27594 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27596 * gst-libs/gst/codecparsers/Makefile.am:
27597 codecparsers: always build the VC-1 parser library.
27598 ... this is useful to make sure pixel-aspect-ratio and framerate
27599 information are correctly parsed since we have no means to detect
27600 that at configure time.
27602 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27605 * gst-libs/gst/codecparsers/Makefile.am:
27606 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27607 mpeg2: fix PAR calculation from commit bd11bae.
27608 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
27609 correct PAR values. While doing so, require a newer version of the
27610 bitstream parser library.
27611 Note: it may be necessary to also parse the Sequence_Display_Extension()
27613 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27614 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27616 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27618 * gst-libs/gst/vaapi/Makefile.am:
27619 Fix build with the GNU gold linker.
27620 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
27621 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
27623 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
27626 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27627 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
27628 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27629 wayland: port to 1.0 version of the protocol.
27630 This patch updates to relect the 1.0 version of the protocol. The main
27631 changes are the switch to wl_registry for global object notifications
27632 and the way that the event queue and file descriptor is processed.
27633 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27635 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27638 h264: fix incorrect integration of previous commit (4d31e1e).
27639 git am got confused somehow, though the end result doesn't change at
27640 all since we require both SPS and PPS to be parsed prior to decoding
27643 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27645 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27646 h264: start decoding slices after first SPS/PPS activation.
27647 Only start decoding slices when at least one SPS and PPS got activated.
27648 This fixes cases when a source represents a substream of another stream
27649 and no SPS and PPS was inserted before the first slice of the generated
27652 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27654 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27655 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
27656 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
27657 contain up to 32 fields but VA ReferenceFrames[] array expects up to
27658 16 reference frames, thus including both fields.
27660 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27662 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27663 h264: fix interlaced stream decoding with MMCO.
27664 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
27665 is equal to 1, i.e. when memory management control operations are used. In
27666 particular, when field_pic_flag is set to 0, the new reference flags shall
27667 be applied to both fields.
27669 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27671 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27672 h264: add initial support for interlaced streams.
27673 Decoded frames are only output when they are complete, i.e. when both
27674 fields are decoded. This also means that the "interlaced" caps is not
27675 propagated to vaapipostproc or vaapisink elements. Another limitation
27676 is that interlaced bitstreams with MMCO are unlikely to work.
27678 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27680 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27681 h264: split remove_reference_at() into finer units.
27682 Split remove_reference_at() into a function that actually removes the
27683 specified entry from the short-term or long-term reference picture array,
27684 and a function that sets reference flags to the desired value, possibly
27685 zero. The latters marks the picture as "unused for reference".
27687 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27689 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27690 decoder: fix gst_vaapi_picture_new_field() object type.
27691 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
27692 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
27693 shall generate a GstVaapiPictureH264 object.
27695 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27697 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27698 h264: add picture structure for reference picture marking process.
27699 Introduce new `structure' field to the H.264 specific picture structure
27700 so that to simplify the reference picture marking process. That local
27701 picture structure is derived from the original picture structure, as
27702 defined by the syntax elements field_pic_flag and bottom_field_flag.
27704 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27706 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27707 h264: introduce new frame store structure.
27708 The frame store represents a Decoded Picture Buffer entry, which can
27709 hold up to two fields. So far, the frame store is only used to hold
27712 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27714 * ext/codecparsers:
27715 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
27716 73d6aab h264: fix rbsp_more_data() implementation
27717 25d04cf h264: fix error code for invalid size parsed in SPS
27718 84798e5 fix FSF address
27720 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27722 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27723 h264: minor clean-ups.
27724 Move DPB flush up if the current picture to decode is an IDR. Besides,
27725 don't bother to check for IDR pictures in dpb_add() function since an
27726 explicit DPB flush was already performed in this case.
27728 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27730 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27731 h264: simplify reference picture marking process.
27732 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
27733 of maintaining them separately. This avoids refs/unrefs while making it
27734 possible to generate the list based on the actual picture structure.
27735 This also ensures that the list of generated ReferenceFrames[] actually
27736 matches what reference frames are available in the DPB. i.e. short_ref[]
27737 and long_ref[] entries are implied from the DPB, so there is no risk of
27738 having "dangling" references.
27740 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27742 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27743 h264: introduce per-field POC in GstVaapiPictureH264.
27744 Use the POC member available in the GstVaapiPicture base class and
27745 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
27746 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
27747 initialized to INT_MAX, so that to simplify picture POC calculation
27748 for non frame pictures.
27750 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27752 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27753 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
27754 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
27755 reference bits, thus simplifying the reference picture marking process
27756 to only track a single set of reference flags. Also introduce a new
27757 long_term_frame_idx member.
27759 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27761 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27762 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
27764 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27766 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27767 h264: fill in GstVaapiPicture structure.
27768 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
27770 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27772 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27773 h264: add vaapi_fill_picture() helper.
27774 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
27775 to VAPictureH264 structure. This is preparatory work to get rid of the
27776 local VAPictureH264 member in GstVaapiPictureH264.
27778 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27780 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27781 h264: fix activation order of picture and sequence parameters.
27782 Delay ensure_context() until we actually need a VA context for allocating
27783 new VA surfaces, and then GstVaapiPictures, but also when a real activation
27784 of a new picture parameter set occurs, thus also implying an activation
27785 of the related sequence parameter set.
27786 The most important thing was to drop the global pps and sps pointers since
27787 they may not have matched the currently activated picture parameter or
27788 sequence parameter sets at the specified decode point.
27789 Anoter positive side-effect is that this cleans up all occurrences of
27790 decode_current_picture() to only keep those useful in decode_picture(),
27791 before a new picture is allocated, or in decode_sequence_end() when
27792 an end-of-stream or end-of-sequence condition occurred.
27794 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27796 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27797 h264: fix scaling list generation.
27798 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
27799 array was partially copied to the VAIQMatrixBufferH264. While we are
27800 at it, also improve bounds checking and avoid copying 8x8 scaling
27801 lists if transform_8x8_mode_flag is set to 0.
27803 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27805 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27806 h264: fix detection of picture boundaries.
27807 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
27808 unit of a primary coded picture.
27810 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27812 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27813 h264: optimize handling of scaling lists.
27814 Don't copy scaling lists twice to an intermediate state. Rather, directly
27815 use the scaling lists from GstH264PPS since they would match those provided
27816 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
27817 available in the bitstream.
27819 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27821 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27822 h264: simplify code when MMCO is 5.
27823 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
27824 is now updated accordingly to the standard. Besides, MMCO = 5 specific
27825 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
27827 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27829 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27830 h264: fix MMCO-based reference picture marking process.
27831 Fix adaptive memory control decoded reference picture marking process
27832 implementation for operations 2 to 6, thus also fixing support for
27833 long-term reference pictures.
27835 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27837 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27838 h264: move MMCO handlers out of the loop (cosmetics).
27839 This change only splits each individual MMCO handler into several functions
27840 dedicated for each operation. This is needed to perform further work later
27843 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27846 debian: fix make dist for packaging.
27847 bzip2 tarballs are now used, so update the deb.upstream dependencies
27848 to include dist-bzip2 instead of plain old dist, and use the correct
27849 tar extract options to handle that format.
27851 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27854 configure: generate bzip2 tarballs in ustar format by default.
27856 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27859 configure: bump glib required version to 2.31.2.
27860 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
27861 rather than g_mutex_new() and g_cond_new() respectively.
27863 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
27865 * gst/vaapi/gstvaapidecode.c:
27866 * gst/vaapi/gstvaapidecode.h:
27867 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
27868 The use of heap allocated GMutex/GCond is deprecated. Instead place them
27869 inside the structure they are locking.
27870 These changes switch to use g_mutex_init/g_cond_init rather than the heap
27871 allocation functions.
27872 Because we cannot test for a NULL pointer for the GMutex/GCond we must
27873 initialise inside the GObject _init function and clear inside the _finalize
27874 which is guaranteed to only be called once and after the object is no longer
27877 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27879 * gst/vaapi/gstvaapidecode.c:
27880 vaapidecode: fix compiler warnings.
27881 Don't care of the return value for gst_vaapi_decoder_put_buffer()
27882 during destruction of the element. Don't print out (uninitialised)
27883 error code when allocation of video buffer failed.
27885 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27887 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27888 h264: add flag to compile with strict DPB ordering mode.
27889 Allow build with strict DPB ordering mode whereby evicted entries
27890 are replaced by the next entries, in order instead of optimizing
27891 it away with the last entry in the DPB.
27892 This is only useful for debugging purpose, against a reference SW
27893 decoder for example.
27895 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27897 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27898 h264: drop extra code covered by built-in codecparsers.
27899 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
27900 a newer version of codecparsers/ are used if the system provided one is
27901 now recent enough to have those required extensions.
27903 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27905 * gst-libs/gst/codecparsers/Makefile.am:
27906 codecparsers: fix generation of symlinks.
27907 Try to improve dependencies while generating symlinks to externally
27908 maintained copy of codecparsers (derived from upstream git master
27911 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27913 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27914 vc1: use framerate information from bitstream parser.
27916 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
27918 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27919 vc1: use pixel-aspect-ratio from bitstream parser.
27920 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
27921 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27923 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
27925 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27926 mpeg2: use pixel-aspec-ratio information from bitstream parser.
27927 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
27928 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27930 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27933 * gst-libs/gst/codecparsers/Makefile.am:
27934 codecparsers: h264: use submodule sources.
27935 Use newer sources from the codecparsers/ submodule for
27936 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
27937 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
27939 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27943 * gst-libs/gst/codecparsers/Makefile.am:
27944 * gst-libs/gst/codecparsers/gstjpegparser.c:
27945 * gst-libs/gst/codecparsers/gstjpegparser.h:
27946 * gst-libs/gst/vaapi/Makefile.am:
27947 codecparsers: jpeg: use submodule sources.
27949 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27956 * ext/codecparsers:
27957 Add codecparsers submodule.
27959 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27962 .gitignore: updates.
27964 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27967 autogen: fix check for gtkdocize and autoreconf.
27968 If gtkdocize or autoreconf programs were not found, then the autogen.sh
27969 script would fail to report that correctly because test -z was not passed
27970 any argument (empty string "" in this case).
27972 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
27974 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27975 h264: use pixel-aspect-ratio from SPS header.
27976 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
27977 from the sequence headers.
27978 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
27979 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27981 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27983 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27984 h264: add decode_nalu() helper function.
27985 Split decode_buffer() into the core infrastructure that determines
27986 the NAL units contained in the adapter and the actual function that
27987 decodes the NAL unit.
27989 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27991 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27992 h264: fix end-of-stream conditions (flush).
27993 Decode pending data in the adapter prior to processing the actual
27994 code for end-of-stream.
27996 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27998 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27999 mpeg2: add decode_packet() helper function.
28000 Split decode_buffer() into the core infrastructure that determines
28001 the packets contained in the adapter and the actual function that
28002 decodes the packet data.
28004 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28006 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28007 mpeg2: fix end-of-stream conditions (flush).
28008 Decode pending data in the adapter prior to processing the actual
28009 code for end-of-stream. Initial code from Feng Yuan.
28011 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28013 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28014 mpeg2: fix memory leak of empty packets.
28015 Fix memory leakage of empty packets, i.e. packets that only contain
28016 the start code prefix. In particular, free empty user-data packets.
28017 Besides, the codec parser will already fail gracefully if the packet
28018 to parse does not have the minimum required size. So, we can also
28019 completely drop the block of code that used to handle packets of size 4
28020 (including the start code).
28022 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28024 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28025 mpeg2: fix return value for "no-data" conditions.
28026 Fix return value when the second scan for start code fails. This means
28027 there is not enough data to determine the full extents of the current
28028 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
28029 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
28031 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28033 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28034 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
28035 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
28036 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
28037 or with a size equals to zero. In this case, that buffer is simply
28038 skipped and the function returns TRUE. A NULL buffer argument still
28039 marks the end-of-stream.
28041 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28043 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28044 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28045 decoder: drop unused functions.
28047 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
28049 * gst/vaapi/gstvaapidecode.c:
28050 vaapidecode: flush buffers when receiving EOS.
28051 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28053 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28055 * debian.upstream/Makefile.am:
28056 debian: fix make dist for packaging.
28058 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28060 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
28061 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28062 wayland: cosmetics (remove tabs).
28064 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
28066 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28067 wayland: add support for windowed mode.
28068 Rather than always making the surface fullscreen instead implement the
28069 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
28070 fullscreen on not depending on that.
28071 Reviewed-by: Joe Konno <joe.konno@intel.com>
28072 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28074 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28077 Bump version for development.
28079 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28083 Fix and document build dependencies better.
28085 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28087 * debian.upstream/control.in:
28088 debian: fix GStreamer build dependencies.
28090 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28093 * debian.upstream/control.in:
28094 debian: fix Wayland build dependencies.
28096 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28098 * debian.upstream/control.in:
28099 debian: fix conditional build of packages.
28100 Make it still possible to build package even if one of the build dependencies
28101 for a specific video backend is not available.
28103 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28105 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28106 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28107 utils: drop unused GLX helpers.
28108 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
28109 extensions since they are not used throughout gstreamer-vaapi.
28111 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28113 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28114 utils: fix build with <GL/glext.h> version >= 85.
28115 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
28116 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
28117 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
28118 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
28119 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
28120 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
28121 newer versions of the <GL/glext.h> header.
28123 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28126 configure: update VA-API version requirements.
28127 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
28129 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28131 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28132 h264: review and report errors accordingly.
28133 Use GST_ERROR() to report real errors instead of hiding them into
28136 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28138 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28139 h264: exclusively use GstAdapter, drop sub-buffer hack.
28140 Maintaining the sub-buffer is rather suboptimal especially since we
28141 were also maintaining a GstAdapter. Now, we only use the GstAdapter
28142 thus requiring minor extra parsing when receiving avcC buffers.
28144 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28149 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28154 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28156 * debian.upstream/gstreamer-vaapi.install.in:
28157 debian: fix packaging on recent Ubuntu platforms.
28158 Use explicit GStreamer plugins path.
28160 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28162 * docs/reference/libs/libs-docs.xml.in:
28163 * docs/reference/libs/libs.core.types:
28164 docs: fix build for make dist.
28166 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
28168 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28169 wayland: set opaque region for YUV surface.
28170 This allows the compositor to optimize redraws and cull away changes
28171 obscured by the video surface.
28172 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28174 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28177 configure: fix check for libva-glx and libva-drm.
28179 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28181 * gst-libs/gst/vaapi/glibcompat.h:
28182 glibcompat: add replacement for g_cond_wait_until().
28184 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28186 * gst/vaapi/gstvaapidecode.c:
28187 * gst/vaapi/gstvaapidownload.c:
28188 * gst/vaapi/gstvaapipostproc.c:
28189 * gst/vaapi/gstvaapisink.c:
28190 * gst/vaapi/gstvaapiupload.c:
28191 plugins: include "sysdeps.h" instead of "config.h".
28193 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28195 * gst-libs/gst/codecparsers/gstjpegparser.c:
28196 codecparsers: jpeg: add missing includes.
28198 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28200 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28201 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28202 * gst/vaapi/gstvaapidecode.c:
28203 vaapidecode: don't reset decoder if codec type is the same.
28204 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
28205 if the underlying codec type actually changed. This makes it possible
28206 to be more tolerant with certain MPEG-2 streams that get parsed to
28207 form caps that are compatible with the previous state but minor changes
28210 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28212 * gst/vaapi/gstvaapidecode.c:
28213 vaapidecode: simplify codec lookup from caps.
28214 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
28215 the specified caps. Don't globally expose this function since this is
28216 really trivial and only used in the vaapidecode element.
28218 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28220 * gst/vaapi/gstvaapidecode.c:
28221 * gst/vaapi/gstvaapidecode.h:
28222 vaapidecode: improve "no free surface" conditions.
28223 Previously, vaapidecode would wait up to one second until a free surface
28224 is available, or it aborts decoding. Now, vaapidecode waits until the
28225 last decoded surface was to be presented, plus one second. Besides, end
28226 times are now expressed relative to the monotonic clock.
28228 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28230 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28231 * gst/vaapi/gstvaapidecode.c:
28232 decoder: propagate buffer duration downstream.
28234 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28236 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28237 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28238 surfaceproxy: add "duration" property.
28240 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28242 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28243 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28244 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28245 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28246 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28247 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28248 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28249 decoder: cope with new GstVaapiContextInfo based API.
28250 Update decoders to report the maximum number of reference frames to use.
28252 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28254 * gst-libs/gst/vaapi/gstvaapicontext.c:
28255 context: JPEG codec does not need any reference frame.
28257 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28259 * gst-libs/gst/vaapi/gstvaapicontext.c:
28260 * gst-libs/gst/vaapi/gstvaapicontext.h:
28261 context: allow number of reference frames to be set.
28262 Make it possible to specify the maximum number of references to use within
28263 a single VA context. This helps reducing GPU memory allocations to the useful
28264 number of references to be used.
28266 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28268 * gst/vaapi/gstvaapipostproc.c:
28269 vaapipostproc: fix deinterlace-{mode,method} types definition.
28271 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28273 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28274 mpeg4: fix debug info for unsupported profile.
28276 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28278 * gst-libs/gst/vaapi/gstvaapicontext.c:
28279 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28280 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28281 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28282 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28283 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28284 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28285 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28286 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
28287 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
28288 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28289 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28290 * gst-libs/gst/vaapi/gstvaapiimage.c:
28291 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28292 * gst-libs/gst/vaapi/gstvaapiobject.c:
28293 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28294 * gst-libs/gst/vaapi/gstvaapisurface.c:
28295 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28296 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28297 * gst-libs/gst/vaapi/gstvaapitexture.c:
28298 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28299 * gst-libs/gst/vaapi/gstvaapivalue.c:
28300 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28301 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28302 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28303 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28304 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28305 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
28306 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28307 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28308 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28309 libs: fix build in strict ISO C mode.
28311 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28313 * gst/vaapi/gstvaapi.c:
28314 * gst/vaapi/gstvaapidecode.c:
28315 * gst/vaapi/gstvaapidownload.c:
28316 * gst/vaapi/gstvaapipostproc.c:
28317 * gst/vaapi/gstvaapisink.c:
28318 * gst/vaapi/gstvaapiupload.c:
28319 plugins: fix build in strict ISO C mode.
28321 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28323 * pkgconfig/gstreamer-vaapi-glx.pc.in:
28324 * pkgconfig/gstreamer-vaapi-x11.pc.in:
28325 * pkgconfig/gstreamer-vaapi.pc.in:
28326 pkgconfig: fix dependencies and slightly improve description.
28327 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
28328 descriptions with clearer renderer names.
28330 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
28332 * gst/vaapi/gstvaapidecode.c:
28333 vaapidecode: acquire lock only if the mutex exists.
28334 When playback stops the GstVaapiDecode object is reset into a clean
28335 state. However, surfaces may still be referenced by library users and
28336 unreferencing them after the reset triggers an access to an unset mutex.
28337 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28339 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28341 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28342 decoder: drop extraneous return for void function.
28344 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28346 * gst-libs/gst/vaapi/gstvaapiimage.c:
28347 image: don't use (void *) pointer arithmetic.
28349 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
28351 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28352 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28353 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28354 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28355 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28356 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28357 * gst-libs/gst/vaapi/gstvaapisurface.h:
28358 * gst-libs/gst/vaapi/gstvaapitypes.h:
28359 * gst/vaapi/gstvaapipostproc.h:
28360 Do not forward declare enums.
28361 Forward declaring enums is not allowed by the C standard and aborts
28362 compilation if the header file is included in a C++ project.
28363 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28365 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28368 configure: fix check for VA/DRM API.
28370 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28372 * gst/vaapi/gstvaapisink.c:
28373 vaapisink: fix calculation of window size.
28374 If either dimension is out-of-bounds, then scale window to fit the
28375 display size, even if the output is to be rotated. Use the standard
28376 gst_video_sink_center_rect() function to center and scale the window
28377 wrt. the outer (display) bounds.
28379 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
28381 * gst/vaapi/gstvaapisink.c:
28382 * gst/vaapi/gstvaapisink.h:
28383 vaapisink: add video rotation support.
28384 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28386 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28388 * gst/vaapi/gstvaapipluginutil.h:
28389 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
28390 This macro helps swapping variables while maintaining the correct underlying
28391 and primitive type.
28393 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28395 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28396 display: fix display aspect ratio when display is rotated.
28398 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28401 * gst-libs/gst/vaapi/Makefile.am:
28402 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28403 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
28404 display: fix physical display size when display is rotated.
28406 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28408 * gst-libs/gst/vaapi/gstvaapivalue.c:
28409 display: fix GstVaapiRotation enumeration of values.
28411 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28413 * docs/reference/libs/libs-docs.xml.in:
28414 * docs/reference/libs/libs-sections.txt:
28415 * gst-libs/gst/vaapi/Makefile.am:
28416 * gst-libs/gst/vaapi/gstvaapivideosink.c:
28417 * gst-libs/gst/vaapi/gstvaapivideosink.h:
28418 * gst/vaapi/gstvaapidecode.c:
28419 * gst/vaapi/gstvaapidownload.c:
28420 * gst/vaapi/gstvaapipostproc.c:
28421 * gst/vaapi/gstvaapisink.c:
28422 * gst/vaapi/gstvaapiupload.c:
28423 vaapisink: drop obsolete GstVaapiVideoSink interface.
28424 This interface was deprecated since 0.3.x series when the GstVideoContext
28425 interface was added to the main GStreamer APIs.
28427 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28429 * gst/vaapi/gstvaapisink.c:
28430 * gst/vaapi/gstvaapisink.h:
28431 vaapisink: automatically detect overlay rendering mode.
28432 Retain the VA surface until another surface is to be displayed only
28433 if VA display rendering mode is determined to be "overlay" mode.
28435 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28437 * gst/vaapi/gstvaapisink.c:
28438 * gst/vaapi/gstvaapisink.h:
28439 vaapisink: retain VA surface until another one is displayed.
28440 Keep VA surface proxy associated with the surface that is currently
28441 being displayed. This makes sure that surface is not released back
28442 to the pool of surfaces free to use for decoding. This is necessary
28443 with VA driver implementations that support rendering to an overlay
28444 pipe. Otherwise, there could be cases where we are decoding into a
28445 surface that is being displayed, hence some flickering.
28447 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28449 * gst/vaapi/gstvaapisink.h:
28450 vaapisink: fix build with older toolchains.
28451 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
28453 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28455 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28456 display: partially revert 8ebe4d6.
28457 Don't try to fix up the initial values, this could make things worse.
28458 Simply assume the driver does not support the capability in this case.
28460 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28462 * tests/test-display.c:
28463 tests: dump VA display properties.
28465 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28467 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28468 display: fix validation process of properties during discovery.
28469 Some VA drivers (e.g. EMGD) can have completely random values for initial
28470 display attributes. So, try to improve the discovery process to check the
28471 initial display attribute values actually fall within valid bounds. If not,
28472 try to reset those to some sensible values like the default value reported
28473 through vaQueryDisplayAttributes().
28475 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28477 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28478 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28479 display: add color balance properties.
28480 Add support for hue, saturation, brightness and contrast attributes.
28482 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28484 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28485 display: initialize default attribute values.
28486 Ensure the display attribute is actually supported by trying to retrieve
28487 its current value during GstVaapiDisplay creation.
28489 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28491 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28492 display: raise "notify" for property changes.
28494 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28496 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28497 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28498 display: expose display attributes as GObject properties.
28499 Expose VA display "render-mode" and "rotation" attributes as standard
28500 GObject properties.
28502 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28504 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28505 display: install properties in batch.
28506 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
28507 It is useful to maintain properties as GParamSpec so that to be able to raise
28508 "notify" signals by id instead of by name in the future.
28510 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28512 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28513 display: fix gst_vaapi_display_has_property().
28514 Append the "render-mode" and "rotation" properties, should they be supported
28515 by the underlying VA driver.
28517 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
28519 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28520 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28521 * gst-libs/gst/vaapi/gstvaapitypes.h:
28522 * gst-libs/gst/vaapi/gstvaapiutils.c:
28523 * gst-libs/gst/vaapi/gstvaapiutils.h:
28524 * gst-libs/gst/vaapi/gstvaapivalue.c:
28525 * gst-libs/gst/vaapi/gstvaapivalue.h:
28526 display: add support for rotation modes.
28527 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28529 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28531 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28532 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28533 * gst-libs/gst/vaapi/gstvaapitypes.h:
28534 * gst-libs/gst/vaapi/gstvaapivalue.c:
28535 * gst-libs/gst/vaapi/gstvaapivalue.h:
28536 display: add support for rendering modes.
28537 A rendering mode can be "overlay" or "texture"'ed blit.
28538 The former mode implies that a VA surface used for rendering can't be
28539 re-used right away for decoding, so the sink shall make provisions to
28540 retain the associated surface proxy until the next surface is to be
28542 The latter mode implies that the VA surface is implicitly copied to an
28543 intermediate backing store, or back buffer of a frame buffer, so the
28544 associated surface proxy can be disposed right away.
28546 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28548 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28549 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28550 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
28551 display: add initial support for display attributes.
28552 The VA display attributes are mapped to properties so that to maintain the
28553 GStreamer terminology. Properties are to be identified by name, but internal
28554 functions are available to lookup the property by the actual VA display
28557 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28559 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28560 jpeg: fix end-of-image (EOI) handler.
28561 decode_current_picture() was converted to return a gboolean instead
28562 of a GstVaapiDecoderStatus, so we were not getting out of the decode
28563 loop as expected, or could cause an error instead.
28564 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28566 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28568 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28569 mpeg2: include start code into VA slice data buffer.
28570 Integrate the start code prefix in the slice data buffer that is submitted
28571 to the hardware. VA-API specifies that slice_data_offset is the offset to
28572 the first byte of slice data. And, for MPEG-2, slice() data begins with
28573 the slice_start_code. Some VA driver implementations (EMGD) expect this.
28575 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
28578 autogen: fix configure script generation when srcdir != builddir.
28579 This patch allows for regenerating the configure script from a build
28580 directory that is not the actual source directory.
28581 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28583 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
28586 configure: use new libtool syntax.
28587 This now requires libtool >= 2.2 to regenerate the configure script.
28588 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28590 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
28592 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28593 decoder: use g_object_notify_by_pspec().
28594 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
28595 avoid a property name lookup. i.e. this makes notifications faster to
28596 the `vaapidecode' element.
28597 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28599 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28601 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28602 wayland: handle de-interlacing flags.
28603 VA/Wayland API was updated to allow flags for bob deinterlacing.
28604 More elaborated filters will require a complete VA/VPP pipeline.
28606 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28608 * gst-libs/gst/codecparsers/gstjpegparser.c:
28609 jpeg: fix default quantization tables.
28610 Two elements in the luminance quantization table were wrong. So,
28611 gst_jpeg_get_default_quantization_tables() now reconstructs tables
28612 in zig-zag order from the standard ones (Tables K.1 and K.2).
28614 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28616 * gst-libs/gst/codecparsers/gstjpegparser.c:
28617 jpeg: compute default Huffman tables.
28618 ... instead of having them pre-calculated. This saves around 1.5 KB
28619 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
28620 to do more work. Though, the client application may have to call that
28621 function at most once, only.
28623 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28625 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28626 display: drop VAProfileNone entries from debug messages.
28628 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
28630 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28631 display: query for supported display attributes.
28632 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28634 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
28636 * gst-libs/gst/vaapi/gstvaapiutils.c:
28637 * gst-libs/gst/vaapi/gstvaapiutils.h:
28638 utils: add string_of_VADisplayAttributeType() helper.
28639 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28641 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28643 * gst/vaapi/gstvaapisink.c:
28644 vaapisink: handle VA/DRM API.
28645 This is not useful in practice but for raw performance evaluation when
28646 the sink is invoked with display=drm sync=false. fakesink could also be
28649 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28651 * gst/vaapi/Makefile.am:
28652 * gst/vaapi/gstvaapipluginutil.c:
28653 plugins: add support for headless pipelines.
28655 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28657 * tests/Makefile.am:
28659 * tests/test-display.c:
28660 * tests/test-windows.c:
28661 tests: add support for headless decoding.
28663 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28667 * debian.upstream/Makefile.am:
28668 * debian.upstream/control.in:
28669 * debian.upstream/libgstvaapi-drm.install.in:
28670 * gst-libs/gst/vaapi/Makefile.am:
28671 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28672 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28673 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
28674 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
28675 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
28676 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
28677 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
28678 * pkgconfig/Makefile.am:
28679 * pkgconfig/gstreamer-vaapi-drm.pc.in:
28680 Add initial support for VA/DRM.
28682 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28685 * gst-libs/gst/vaapi/Makefile.am:
28686 Fix build without X11 (again).
28687 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
28688 files list wrt. x11, glx and wayland backends.
28690 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28693 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
28694 * gst-libs/gst/vaapi/gstvaapicompat.h:
28695 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28696 jpeg: update to the latest VA-API changes (0.32.1+).
28698 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28700 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28701 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
28702 * gst/vaapi/gstvaapisink.c:
28703 wayland: implement display ::get_size*() hooks.
28705 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28707 * gst/vaapi/gstvaapipluginutil.c:
28708 plugins: prefer X11 rendering over GLX.
28709 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
28710 for rendering instead of texturing.
28712 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
28714 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28715 wayland: use scale fullscreen method.
28716 This makes the compositor scale the surface to fit and preserves aspect
28718 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28720 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
28722 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28723 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
28724 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28726 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28728 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28729 wayland: fix double disconnect of display.
28731 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28733 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28734 wayland: mangle display name for cache lookups.
28736 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28739 * debian.upstream/Makefile.am:
28740 * debian.upstream/control.in:
28741 * debian.upstream/libgstvaapi-wayland.install.in:
28742 * pkgconfig/Makefile.am:
28743 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
28744 wayland: add packaging files.
28746 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28748 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28749 * gst/vaapi/gstvaapipluginutil.c:
28750 * gst/vaapi/gstvaapisink.c:
28751 * pkgconfig/Makefile.am:
28752 Fix build without X11.
28754 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28756 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28757 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28758 * gst/vaapi/Makefile.am:
28759 * gst/vaapi/gstvaapipluginutil.c:
28760 * gst/vaapi/gstvaapisink.c:
28761 plugins: add support for Wayland.
28763 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28765 * tests/Makefile.am:
28767 * tests/test-display.c:
28768 * tests/test-windows.c:
28769 tests: add support for Wayland.
28771 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28775 * gst-libs/gst/vaapi/Makefile.am:
28776 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28777 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
28778 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
28779 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
28780 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28781 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
28782 Add initial support for VA/Wayland.
28783 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28785 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28787 * gst/vaapi/gstvaapipluginbuffer.c:
28788 plugins: fix creation of video buffer from surface proxy.
28789 Fix a regression introduced with commit 8ef490a.
28791 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28793 * gst/vaapi/gstvaapipluginbuffer.c:
28794 * gst/vaapi/gstvaapipluginutil.c:
28795 plugins: use new display types more.
28796 In particular, simplify gst_vaapi_reply_to_query() with display types.
28797 Likewise for creating new video buffers.
28799 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28801 * gst/vaapi/gstvaapidecode.c:
28802 * gst/vaapi/gstvaapidownload.c:
28803 * gst/vaapi/gstvaapipluginutil.c:
28804 * gst/vaapi/gstvaapipluginutil.h:
28805 * gst/vaapi/gstvaapipostproc.c:
28806 * gst/vaapi/gstvaapisink.c:
28807 * gst/vaapi/gstvaapiupload.c:
28808 plugins: fix display type selection and propagation.
28809 If vaapisink is in the GStreamer pipeline, then we shall allocate a
28810 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
28811 queries from vaapidecode shall get a valid answer from vaapisink.
28813 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28815 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28816 display: fix destruction of mutex.
28818 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28820 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28821 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28822 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
28823 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
28824 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28825 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
28826 * gst/vaapi/gstvaapipluginutil.c:
28827 * gst/vaapi/gstvaapipluginutil.h:
28828 * gst/vaapi/gstvaapisink.c:
28829 display: add display types.
28830 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
28831 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
28832 type to "any", and add a "display-type" attribute.
28834 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28836 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28837 display: use prefixed display names for cache lookups.
28838 This improves display name comparisons by always allocating a valid display
28839 name. This also helps to disambiguate lookups by name in the global display
28840 cache, should a new backend be implemented.
28842 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28844 * gst/vaapi/gstvaapipluginutil.h:
28845 plugins: declare helper functions as internal.
28847 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28849 * docs/reference/libs/libs-sections.txt:
28850 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28851 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28852 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28853 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28854 * gst/vaapi/Makefile.am:
28855 * gst/vaapi/gstvaapidecode.c:
28856 * gst/vaapi/gstvaapidownload.c:
28857 * gst/vaapi/gstvaapipluginbuffer.c:
28858 * gst/vaapi/gstvaapipluginbuffer.h:
28859 * gst/vaapi/gstvaapipostproc.c:
28860 * gst/vaapi/gstvaapiupload.c:
28861 videobuffer: drop deprecated functions.
28862 Move video buffer creation routines to plugin elements. That exclusively
28863 uses *_typed_new*() variants.
28865 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28867 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28868 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28869 videobuffer: mark video buffer creation routines as deprecated.
28870 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
28871 plugin elements. So deprecate any explicit creation routines that are not the
28872 new *_typed_new*() variants.
28874 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28876 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28877 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28878 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28879 videobuffer: factor out base and GLX implementations.
28880 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
28881 This avoids duplication of code, and makes it possible to further implement
28882 generic video buffer creation routines that automatically map to base or GLX
28885 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28887 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28888 utils: fix gl_create_context() with parent context set.
28889 If GLX window was created from a foreign Display, then that same Display shall
28890 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
28891 will now use the same Display that the parent, if available.
28892 This fixes cluttersink with the Intel GenX VA driver.
28894 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28896 * gst/vaapi/gstvaapidecode.c:
28897 * gst/vaapi/gstvaapidownload.c:
28898 * gst/vaapi/gstvaapipluginutil.c:
28899 * gst/vaapi/gstvaapipluginutil.h:
28900 * gst/vaapi/gstvaapipostproc.c:
28901 * gst/vaapi/gstvaapisink.c:
28902 * gst/vaapi/gstvaapiupload.c:
28903 pluginutils: improve automatic display type selection.
28905 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28907 * gst/vaapi/gstvaapipluginutil.c:
28908 * gst/vaapi/gstvaapipluginutil.h:
28909 pluginutils: cosmetics (indentation fixes).
28911 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28914 configure: simplify video outputs summary.
28916 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28919 * gst/vaapi/gstvaapipluginutil.c:
28920 * gst/vaapi/gstvaapipluginutil.h:
28921 * gst/vaapi/gstvaapisink.c:
28922 * gst/vaapi/gstvaapisink.h:
28923 configure: drop check for --enable-vaapisink-glx.
28924 vaapisink is now built with support for multiple display types, whenever
28925 they are enabled. The new "display" attribute is used to select a particular
28928 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28931 * gst-libs/gst/vaapi/gstvaapicompat.h:
28932 * gst/vaapi/Makefile.am:
28933 * gst/vaapi/gstvaapidecode.c:
28934 * gst/vaapi/gstvaapidownload.c:
28935 * gst/vaapi/gstvaapipluginutil.c:
28936 * gst/vaapi/gstvaapipostproc.c:
28937 * gst/vaapi/gstvaapiupload.c:
28938 * tests/test-display.c:
28939 configure: drop check for --enable-vaapi-glx.
28940 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
28941 support, or fallback to TFP+FBO if this API is not found. Now, we check for
28942 the VA/GLX API by default if --enable-glx is set. If this API is not found,
28943 we now default to use TFP+FBO.
28944 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
28945 will be removed in the future. If GLX rendering is requested, then the VA/GLX
28946 API shall be used as it covers most usages. e.g. AMD driver can't render to
28949 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28952 tests: allow GLX output, if available and selected.
28954 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28956 * tests/Makefile.am:
28959 * tests/test-decode.c:
28960 * tests/test-subpicture.c:
28961 * tests/test-surfaces.c:
28962 tests: use common display and window creation routines.
28963 Add new --output option to select the renderer. Use --list-outputs to
28964 print a list of supported renderers.
28966 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28968 * tests/Makefile.am:
28969 tests: move encoded bitstreams to libutils.la.
28971 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28973 * tests/Makefile.am:
28974 tests: build convenience library for common utilities.
28976 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28978 * tests/Makefile.am:
28979 * tests/test-display.c:
28980 tests: simplify build with various display options.
28982 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28985 configure: improve checks for X11.
28987 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28989 * tests/Makefile.am:
28990 configure: fix previous commit for GLX deps.
28992 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28995 * gst-libs/gst/vaapi/Makefile.am:
28996 configure: improve checks for GLX.
28998 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29001 * gst-libs/gst/vaapi/gstvaapicompat.h:
29002 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29003 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
29004 * gst-libs/gst/vaapi/gstvaapiutils.h:
29005 Drop support for obsolete VA-API versions < 0.30.4.
29007 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29010 * gst-libs/gst/Makefile.am:
29011 * gst-libs/gst/gstutils_version.h.in:
29012 * gst/vaapi/gstvaapisink.c:
29013 vaapisink: drop checks for new APIs used by default.
29014 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
29015 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
29016 are no longer necessary.
29018 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29021 configure: cosmetics and some minor changes.
29022 - Better grouping of feature checks
29023 - Sort list of config files to generate
29025 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29028 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29029 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
29030 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29031 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29032 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
29033 * gst-libs/gst/vaapi/gstvaapiutils.h:
29034 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29035 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
29036 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
29038 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29040 * gst-libs/gst/vaapi/Makefile.am:
29041 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
29042 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
29043 Drop obsolete GstVaapiTSB.
29044 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
29046 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29048 * docs/reference/libs/libs-sections.txt:
29049 docs: add missing entries for the JPEG decoder.
29051 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29054 * gst-libs/gst/vaapi/Makefile.am:
29055 * gst/vaapi/gstvaapidecode.c:
29056 * tests/test-decode.c:
29057 * tests/test-subpicture.c:
29058 Drop all references to USE_CODEC_PARSERS.
29060 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29064 * docs/reference/libs/libs-sections.txt:
29065 * docs/reference/libs/libs.core.types:
29066 * gst-libs/gst/vaapi/Makefile.am:
29067 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
29068 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
29069 * gst/vaapi/gstvaapidecode.c:
29070 * gst/vaapi/gstvaapidecode.h:
29071 * tests/test-decode.c:
29072 * tests/test-subpicture.c:
29073 Drop FFmpeg-based decoders.
29074 GStreamer codecparsers-based decoders are the only supported decoders now.
29075 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
29077 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
29080 * debian.upstream/control.in:
29081 configure: bump glib required version to 2.28.
29082 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29084 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
29086 * gst/vaapi/gstvaapidecode.h:
29087 * gst/vaapi/gstvaapidownload.h:
29088 * gst/vaapi/gstvaapipostproc.h:
29089 * gst/vaapi/gstvaapisink.h:
29090 * gst/vaapi/gstvaapiupload.h:
29091 plugins: declare _get_type() functions as const.
29092 Declaring a function as const enables better optimization of calls to
29094 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29096 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
29098 * gst/vaapi/gstvaapidecode.c:
29099 * gst/vaapi/gstvaapidownload.c:
29100 * gst/vaapi/gstvaapipostproc.c:
29101 * gst/vaapi/gstvaapisink.c:
29102 * gst/vaapi/gstvaapiupload.c:
29103 plugins: use g_clear_object() wherever applicable.
29104 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29106 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
29108 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29109 * gst-libs/gst/vaapi/gstvaapicontext.h:
29110 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29111 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
29112 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
29113 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
29114 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
29115 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
29116 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
29117 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29118 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
29119 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29120 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
29121 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
29122 * gst-libs/gst/vaapi/gstvaapiimage.h:
29123 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
29124 * gst-libs/gst/vaapi/gstvaapiobject.h:
29125 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
29126 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
29127 * gst-libs/gst/vaapi/gstvaapisurface.h:
29128 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
29129 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29130 * gst-libs/gst/vaapi/gstvaapitexture.h:
29131 * gst-libs/gst/vaapi/gstvaapivalue.h:
29132 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
29133 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
29134 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
29135 * gst-libs/gst/vaapi/gstvaapivideopool.h:
29136 * gst-libs/gst/vaapi/gstvaapivideosink.h:
29137 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29138 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
29139 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
29140 libs: declare _get_type() functions as const.
29141 Declaring a function as const enables better optimization of calls
29143 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29145 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
29147 * gst-libs/gst/vaapi/glibcompat.h:
29148 * gst-libs/gst/vaapi/gstvaapicontext.c:
29149 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29150 * gst-libs/gst/vaapi/gstvaapiobject.c:
29151 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29152 * gst-libs/gst/vaapi/gstvaapisurface.c:
29153 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29154 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29155 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29156 * gst-libs/gst/vaapi/gstvaapivideopool.c:
29157 libs: use g_clear_object() wherever applicable.
29158 This is a preferred thread-safe version. Also add an inline version of
29159 g_clear_object() if compiling with glib < 2.28.
29160 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29162 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
29166 * docs/reference/libs/Makefile.am:
29167 * gst-libs/gst/vaapi/Makefile.am:
29168 * gst-libs/gst/vaapi/gstvaapimarshal.list:
29169 * gst-libs/gst/vaapi/gstvaapiobject.c:
29170 libs: use generic g_cclosure_marshal_VOID__VOID().
29171 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29173 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29176 * gst-libs/gst/vaapi/glibcompat.h:
29177 glibcompat: drop explicit check for g_list_free_full().
29179 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29182 Bump version for development.
29184 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29186 * gst-libs/gst/codecparsers/Makefile.am:
29187 jpeg: fix make dist.
29189 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
29193 * docs/Makefile.am:
29194 configure: fix build without gtk-doc support.
29195 Also do not generate tamplate files as all the documentation is inline.
29196 Drop un-needed code in autogen.sh as well.
29197 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29199 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
29204 configure: put m4 macros and autogenerated files into m4/ directory.
29205 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29207 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
29210 configure: drop deprecated autoconf macros.
29211 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
29212 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29214 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
29217 configure: don't use AC_SUBST for some variables.
29218 PKG_CHECK_MODULES already does this for us.
29219 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29221 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29223 * gst/vaapi/gstvaapidecode.c:
29224 * gst/vaapi/gstvaapidownload.c:
29225 * gst/vaapi/gstvaapipostproc.c:
29226 * gst/vaapi/gstvaapiupload.c:
29227 plugins: add support for GstImplementsInterface.
29229 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
29232 * gst/vaapi/gstvaapidecode.c:
29233 * gst/vaapi/gstvaapidownload.c:
29234 * gst/vaapi/gstvaapipostproc.c:
29235 * gst/vaapi/gstvaapisink.c:
29236 * gst/vaapi/gstvaapiupload.c:
29237 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
29238 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29240 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
29243 * gst/vaapi/gstvaapisink.c:
29244 plugins: do not use deprecated GStreamer -base symbols.
29245 Bump GStreamer plugins -base required version to 0.10.31, needed for
29246 gst_x_overlay_got_window_handle().
29247 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29249 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
29252 * gst/vaapi/gstvaapidecode.c:
29253 * gst/vaapi/gstvaapidownload.c:
29254 * gst/vaapi/gstvaapipostproc.c:
29255 * gst/vaapi/gstvaapisink.c:
29256 * gst/vaapi/gstvaapiupload.c:
29257 plugins: do not use deprecated core GStreamer symbols.
29258 Bump GStreamer required version to 0.10.14, needed for
29259 gst_element_class_set_details_simple().
29260 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29262 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29264 * tests/test-decode.c:
29265 tests: fix build without JPEG decoder support.
29267 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29269 * tests/Makefile.am:
29270 * tests/test-decode.c:
29271 * tests/test-jpeg.c:
29272 * tests/test-jpeg.h:
29273 tests: add test for JPEG decoding.
29275 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29277 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29278 jpeg: update to match latest parser API.
29280 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29282 * gst-libs/gst/codecparsers/gstjpegparser.c:
29283 * gst-libs/gst/codecparsers/gstjpegparser.h:
29284 codecparsers: jpeg: tweak parser API.
29285 ... to allow for more consistent parsing API among various codec parsers.
29286 In particular, drop use of GList.
29288 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29291 jpeg: fix configure check for VA/JPEG decoding API.
29293 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29295 * gst-libs/gst/vaapi/gstvaapiprofile.c:
29296 jpeg: fix build with VA-API < 0.32.0.
29298 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29303 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29306 Bump version for development.
29308 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29314 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29319 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
29321 * gst/vaapi/gstvaapipluginutil.c:
29322 vaapiplugin: fix build when compiling without GLX.
29323 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29325 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29328 configure: disable FFmpeg-based decoders.
29329 FFmpeg decoders are still available through the --enable-ffmpeg option
29330 but are no longer maintained.
29332 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29334 * gst-libs/gst/vaapi/Makefile.am:
29335 Fix build with recent GStreamer stack.
29337 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29340 * gst-libs/gst/vaapi/gstvaapicompat.h:
29341 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29342 jpeg: update to current VA/JPEG decoding API.
29344 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29346 * gst-libs/gst/codecparsers/gstjpegparser.c:
29347 * gst-libs/gst/codecparsers/gstjpegparser.h:
29348 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29349 codecparsers: jpeg: track valid quantization and Huffman tables.
29350 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
29351 to determine whether a table actually changed since the last user
29352 synchronization point. That way, this makes it possible for some
29353 hardware accelerated decoding solution to upload only those tables
29356 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
29358 * gst-libs/gst/codecparsers/gstjpegparser.c:
29359 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
29360 Use GstByteReader *_unchecked() variants as much as possible.
29361 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29363 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
29365 * gst-libs/gst/codecparsers/gstjpegparser.c:
29366 * gst-libs/gst/codecparsers/gstjpegparser.h:
29367 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29368 jpeg: add new GstJpegHuffmanTables structure.
29369 Add new GstJpegHuffmanTables helper structure to hold all possible
29370 AC/DC Huffman tables available to all components.
29371 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29373 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
29375 * gst-libs/gst/codecparsers/gstjpegparser.c:
29376 * gst-libs/gst/codecparsers/gstjpegparser.h:
29377 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29378 jpeg: make gst_jpeg_parse() support multiple scans.
29379 gst_jpeg_parse() now gathers all scans available in the supplied
29380 buffer. A scan comprises of the scan header and any entropy-coded
29381 segments or restart marker following it. The size and offset to
29382 the associated data (ECS + RST segments) are append to a new
29383 GstJpegScanOffsetSize structure.
29384 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29386 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
29388 * gst-libs/gst/codecparsers/gstjpegparser.c:
29389 * gst-libs/gst/codecparsers/gstjpegparser.h:
29390 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29391 jpeg: update to match latest parser API.
29392 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29394 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29396 * gst-libs/gst/codecparsers/gstjpegparser.h:
29397 jpeg: simplify and optimize parser API.
29399 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
29401 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29402 mpeg: fix picture used to determine backward_reference_vop_coding_type.
29403 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
29404 but Gwenole did not apply all the bits.
29405 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29407 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
29409 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29410 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
29411 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29413 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
29415 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29416 mpeg4: handle skipped frames (vop_hdr->coded = 0).
29417 Gracefully skip non VOP coded frames.
29418 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29420 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
29422 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29423 mpeg4: fix timestamp issues on too fast playback.
29424 Improve generation of presentation timestamps to be less sensitive
29425 to input stream errors. In practise, GOP is also a synchronization
29426 point for PTS calculation.
29427 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29429 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29431 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29432 Fix build without JPEG decoder.
29434 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
29436 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29437 mpeg4: fix VOP coding type of backward reference pictures.
29438 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29440 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
29442 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29443 mpeg4: fix handling of temporal reference distances.
29444 TRD and TRB fields are not large enough to hold the difference of PTS
29445 expressed with nanosecond resolution. So, compute them from the original
29447 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29449 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29451 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
29452 dpb: mpeg2: cosmetics.
29453 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
29455 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
29458 * gst-libs/gst/vaapi/Makefile.am:
29459 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29460 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29461 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29462 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
29463 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29464 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29465 * gst-libs/gst/vaapi/gstvaapiprofile.c:
29466 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29467 * gst/vaapi/gstvaapidecode.c:
29468 Add initial JPEG decoder.
29469 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29471 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
29474 * gst-libs/gst/Makefile.am:
29475 * gst-libs/gst/codecparsers/Makefile.am:
29476 * gst-libs/gst/codecparsers/gstjpegparser.c:
29477 * gst-libs/gst/codecparsers/gstjpegparser.h:
29478 * gst-libs/gst/vaapi/Makefile.am:
29479 codecparsers: add JPEG parser.
29480 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29482 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
29484 * gst/vaapi/gstvaapidecode.c:
29485 vaapidecode: fix VA display type.
29486 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
29488 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29490 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29492 * gst/vaapi/gstvaapidecode.c:
29493 vaapidecode: fix includes when compiling for a single API.
29495 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29498 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29499 mpeg2: fix calculation of macroblock_offset.
29500 Fix decoding of streams with extra slice() information before the first
29501 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
29503 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29505 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29506 mpeg2: fix interpolation of GOP TSN from new PTS.
29507 New GOP TSN base could be mis-calculated. In particular, this fixes
29508 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
29510 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29513 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29514 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29515 mpeg2: fix decoding of high profile streams.
29516 Allow MPEG-2 High profile streams only if the HW supports that profile
29517 or no High profile specific bits are used, and thus Main profile could
29518 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
29519 set to 11 and no sequence_scalable_extension() was parsed.
29521 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29524 * gst/vaapi/gstvaapidecode.c:
29525 vaapidecode: report unsupported codec profiles.
29526 Try to gracefully abort when the HW does not support the requested
29527 profile. There is no fallback unless profiles are correctly parsed
29528 and matched through caps beforehand.
29530 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
29533 * gst/vaapi/gstvaapisink.c:
29534 vaapisink: don't resize a 'foreign' X-window.
29535 Don't forcibly resize foreign X windows. The user is responsible for
29536 their size and vaapisink shall not change this.
29537 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29539 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
29542 * gst/vaapi/gstvaapisink.c:
29543 * gst/vaapi/gstvaapisink.h:
29544 vaapisink: recalculate render rect only if caps are negotiated.
29545 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
29546 caps got negotiated. Besides, when a foreign window is provided by the
29547 user, so should the render rect.
29548 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29550 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29553 Bump version for development.
29555 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29560 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29562 * docs/reference/libs/libs-docs.xml.in:
29563 * docs/reference/libs/libs-sections.txt:
29564 * docs/reference/plugins/plugins-docs.xml.in:
29565 * docs/reference/plugins/plugins-sections.txt:
29566 * docs/reference/plugins/plugins.types:
29567 * gst-libs/gst/vaapi/gstvaapiimage.c:
29568 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29569 * gst/vaapi/gstvaapipostproc.c:
29570 Fix a few documentation issues.
29572 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29576 Update introduction and changelog.
29578 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29580 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
29581 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
29582 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29583 mpeg2: allocate dummy picture for first field based I-frame.
29584 In P-pictures, prediction shall be made from the two most recently
29585 decoded reference fields. However, when the first I-frame is a field,
29586 the next field of the current picture could be a P-picture but only a
29587 single field was decoded so far. In this case, create a dummy picture
29588 with POC = -1 that will be used as reference.
29589 Some VA drivers would error out if P-pictures don't have a forward
29590 reference picture. This is true in general but not in this very specific
29593 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29596 mpeg2: fix simple to main profile fallback.
29597 Allow fallback from simple to main profile when the HW decoder does
29598 not support the former profile and that no sequence_header_extension()
29599 is available to point out this.
29601 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
29603 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29604 mpeg4: improve error checking while decoding packets.
29605 decode_picture() could return an error when an MPEG-4 profile is not
29606 supported for example. In this case, the underlying VA context is not
29607 allocated and no other proper action can be taken. Likewise on exit
29608 from decode_slice().
29609 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29611 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29613 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
29614 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29615 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29616 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29617 decoder: use POC to maintain the DPB.
29618 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
29619 numbers. A signed 32-bit integer should be enough for 1 year of continuous
29620 video streaming at 60 Hz.
29621 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
29622 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
29624 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29626 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29627 mpeg2: rework generation of presentation timestamps.
29628 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
29629 i.e. demuxer could not determine the PTS or the generated PTS is lower than
29630 max PTS from past pictures, then try to fix it up based on the duration of
29632 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
29633 reconstruct a current time. Also now handle wrapped TSN correctly.
29635 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29637 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29638 mpeg2: ignore empty user-data packets.
29639 Fix tcela-8.bits conformance test.
29641 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29643 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29644 mpeg2: review and report errors accordingly.
29645 Use GST_ERROR() to report real errors instead of hiding them into
29648 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29650 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29651 mpeg2: fix invalid interlaced frame in progressive sequence.
29652 Some streams, badly constructed, could have signaled an interlaced
29653 frame while the sequence was meant to be progressive. Warn and force
29654 frame to be progressive in this case.
29656 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29658 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29659 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29660 mpeg2: add support for interlaced streams.
29661 Pictures are submitted to the HW for rendering only when both fields
29662 are decoded or current picture is a full frame.
29664 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29666 * gst-libs/gst/vaapi/Makefile.am:
29667 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
29668 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
29669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29670 mpeg2: add new decoded picture buffer infrastructure.
29671 Decoded pictures are now maintained into DPB, similarly to H.264.
29672 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
29674 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29676 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29677 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29678 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29679 decoder: add first-field flag to picture.
29680 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
29681 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
29682 as the first field. Any subsequent allocated field will become the second field.
29684 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29686 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29687 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29688 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29689 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29690 decoder: allow pictures to be cloned for field decoding.
29691 Add gst_vaapi_picture_new_field() function that clones a picture, while
29692 preserving the parent picture surface. i.e. the surface proxy reference
29693 count is increased and other fields copied as is. Besides, the picture
29694 is reset into a "non-output" mode.
29696 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29698 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29699 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29700 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29701 decoder: rework picture field flags.
29702 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
29703 could be propagated to the surface proxy when it is pushed for rendering.
29704 Besides, top and bottom fields are now expressed with picture structure flags
29705 from GstVaapiSurfaceRenderFlags.
29707 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29709 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29710 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29711 decoder: add OUTPUT flag to pictures.
29712 Allow pictures to be marked as output gst_vaapi_picture_output().
29714 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29716 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29717 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29718 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29719 decoder: fix semantics of SKIPPED pictures.
29720 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
29721 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
29722 has nothing to do with rendering. This only means that the currently decoded
29723 picture is just a copy of its reference picture.
29725 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29727 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
29728 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29729 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29730 * gst/vaapi/gstvaapipostproc.c:
29731 vaapipostproc: get "interlaced" attribute from surface proxy.
29732 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
29733 vaapipostproc so that to handles cases where bitstream is interlaced
29734 but almost only frame pictures are generated. In this case, we should
29735 not be alternating between top/bottom fields.
29737 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29740 * debian.upstream/control.in:
29741 * gst/vaapi/Makefile.am:
29742 * gst/vaapi/gstvaapi.c:
29743 * gst/vaapi/gstvaapipostproc.c:
29744 * gst/vaapi/gstvaapipostproc.h:
29745 vaapipostproc: add new element for video postprocessing.
29746 Add vaapipostproc element for video postprocessing. So far, only basic
29747 bob deinterlacing is implemented. Interlaced mode is automatically
29748 detected based on sink caps ("interlaced" field).
29750 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29752 * docs/reference/libs/libs-sections.txt:
29753 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29754 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
29755 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29756 * gst/vaapi/gstvaapisink.c:
29757 videobuffer: add surface render flags.
29758 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
29759 to be set to the video buffer. In particular, this is mostly useful for
29760 basic deinterlacing.
29762 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29764 * gst-libs/gst/vaapi/gstvaapicompat.h:
29765 compat: add compatibility glue with VA-API 0.34+ (WIP).
29767 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29769 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29770 h264: skip all Filler Data NALs.
29772 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
29774 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29775 mpeg4: check for decoder status prior to decoding packet.
29776 Make sure there is a VA surface free prior to decoding the current frame.
29777 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29779 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
29781 * gst/vaapi/gstvaapidecode.c:
29782 * gst/vaapi/gstvaapidecode.h:
29783 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
29784 Rationale: playbin2 links all elements at run-time. Once vaapidecode
29785 is created and a NEWSEGMENT event arrives, downstream element may not
29786 be ready yet. So, delay this event until next element is chained in,
29787 otherwise basesink could output "Received buffer without a new-segment.
29788 Assuming timestamps start from 0".
29789 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29791 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
29793 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29794 mpeg2: fix GOP timestamps when incorrect data is received.
29795 Some streams have incorrect GOP timestamps, or nothing set at all.
29796 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
29797 from demuxer timestamps, which are monotonic.
29798 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29800 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
29802 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29803 mpeg2: don't decode anything before the first sequence_header().
29804 Skip all pictures prior to the first sequence_header(). Besides,
29805 skip all picture_data() if there was no prior picture_header().
29806 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29808 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
29810 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
29811 ffmpeg: add support for interlaced streams.
29812 Evaluate interlaced stream properties.
29813 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29815 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
29817 * gst/vaapi/gstvaapidecode.c:
29818 vaapidecode: propagate interlaced and TFF properties downstream.
29819 Propagate "interlaced" caps downstream and set "tff" buffer flag
29820 appropriately to output buffers for interlaced pictures.
29821 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29823 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
29825 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29826 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29827 decoder: maintain caps for interlaced streams.
29828 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
29830 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29832 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
29834 * docs/reference/libs/libs-sections.txt:
29835 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29836 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29837 surfaceproxy: add TFF property.
29838 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
29839 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29841 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29844 AUTHORS: update to match current authors.
29846 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29848 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29849 mpeg2: fix is_first_field calculation.
29850 Reset is_first_field for frame pictures. Factor out locations where
29851 the flag is updated.
29853 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29855 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29856 mpeg2: catch incorrect picture_structure from bitstreams.
29857 Assume "frame" picture structure if the syntax element was zero or if
29858 progressive_frame is set.
29860 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29862 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29863 mpeg2: fix slice_vertical_position calculation (again).
29864 VA-API expects slice_vertical_position as the initial position from the
29865 bitstream. i.e. the direct slice() information. VA drivers will be fixed
29868 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29870 * gst/vaapi/gstvaapidecode.c:
29871 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
29872 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
29873 For gst_element_class_get_pad_template(), no unreferencing is necessary
29874 according to the GStreamer documentation.
29876 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29879 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29880 h264: fix slice_data_bit_offset calculation.
29881 Unlike what VA-API documentation defines, the slice_data_bit_offset
29882 represents the offset to the first macroblock in the slice data, minus
29883 any emulation prevention bytes in the slice_header().
29884 This fix copes with binary-only VA drivers that won't be fixed any
29885 time soon. Besides, this aligns with the current FFmpeg behaviour
29886 that was based on those proprietary drivers implementing the API
29889 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
29891 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29892 h264: skip all Access Unit (AU) NALs.
29893 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29895 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
29897 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29898 h264: fix modification process of reference picture lists.
29899 Construction of RefPicList0/1 could be off by one element.
29900 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29902 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29904 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29905 mpeg2: fix size calculation from sequence_extension().
29906 Original values from sequence_header() are 12-bit and the remaining
29907 2 most significant bits are coming from sequence_extension().
29908 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29910 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29912 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29913 mpeg2: fix slice_vertical_position calculation.
29914 Make sure to adjust slice_vertical_position if picture structure
29915 is a top or bottom field.
29917 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29919 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29920 decoder: add picture structure flags.
29922 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29924 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29925 mpeg2: fix decoding at end-of-sequence.
29927 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29929 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29930 mpeg2: fix slice_horizontal_position calculation.
29932 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29934 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29935 mpeg2: drop useless mb_y and mb_height members.
29937 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29939 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29940 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
29941 6.3.15 says that "some slices may have the same slice_vertical_position,
29942 since slices may start and finish anywhere". So, we can't submit the current
29943 picture to the HW right away since subsequent slices would be missing.
29945 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29947 * gst-libs/gst/vaapi/gstvaapiimage.c:
29948 image: fix source stride in picture copy.
29950 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29952 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29953 decoder: fix double buffer free with some VA drivers.
29954 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
29955 push the VA buffer object into a list of free buffers to be re-used. However,
29956 reference pictures (and data) that was kept would explicitly release the VA
29957 buffer object later on, thus possibly destroying a valid (re-used) object.
29958 Besides, some other VA drivers don't support correctly the vaRenderPicture()
29959 semantics for VA buffers disposal and would leak memory if there is no explicit
29960 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
29961 right after vaRenderPicture(). All VA drivers need to be aligned.
29963 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29965 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29966 h264: complete any current picture decoder before SPS / PPS change.
29967 This ensures the VA context is clear when the encoded resolution
29968 changes. i.e. make sure older picture is decoded with the older
29969 VA context before it changes.
29971 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29973 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29974 h264: create VA context earlier when SPS is parsed.
29976 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29978 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29979 h264: don't allocate too big data structures on stack.
29981 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29983 * gst-libs/gst/vaapi/glibcompat.h:
29984 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29985 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29986 glib: map deprecated API to glib >= 2.32 equivalents.
29987 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
29988 GRecMutex, which no longer require any prior call to g_thread_init().
29990 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29992 * gst-libs/gst/vaapi/gstvaapiutils.h:
29993 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29994 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
29995 glib: fix includes.
29997 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29999 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
30000 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30001 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30002 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30003 cosmetics: fix warnings (drop unused variables).
30005 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30007 * gst/vaapi/gstvaapidecode.c:
30008 vaapidecode: fix another pad template ref leak.
30010 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30012 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30013 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30014 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30015 mpeg2: fix crash when there is no free surface to decode into.
30017 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
30019 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30020 display: skip profiles which have no entrypoints.
30021 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30023 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30025 * gst/vaapi/gstvaapiupload.c:
30026 vaapiupload: use g_object_unref() for GstVaapiImage.
30028 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30030 * gst/vaapi/gstvaapidecode.c:
30031 * gst/vaapi/gstvaapidownload.c:
30032 * gst/vaapi/gstvaapisink.c:
30033 * gst/vaapi/gstvaapiupload.c:
30034 plugins: fix pad template ref leaks.
30036 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30039 Bump version for development.
30041 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30047 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30051 Mention codecparsers-based decoders, FFmpeg is now optional. Update
30052 list of support HW.
30054 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30059 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30061 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
30062 decoder: allocate proxy surface earlier.
30063 This simplifies gst_vaapi_picture_output() to only update the presentation
30064 timestamp and submit the proxy to the decoder for output.
30066 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30068 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
30069 decoder: fix memory leak of VA objects on exit.
30070 On sequence end, if the last decoded picture is not output for rendering,
30071 then the proxy surface is not created. In this case, the original surface
30072 must be released explicitly to the context.
30074 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30076 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30077 mpeg2: use GstAdapter to track input sequence.
30078 This fixes possible memory leaks and improves performance by removing
30081 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30084 * gst-libs/gst/vaapi/Makefile.am:
30085 * gst-libs/gst/vaapi/glibcompat.h:
30086 * gst-libs/gst/vaapi/sysdeps.h:
30087 Add glib compatibility glue for older versions.
30089 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30091 * gst-libs/gst/vaapi/Makefile.am:
30092 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
30093 * gst-libs/gst/vaapi/gstvaapicontext.c:
30094 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30095 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30096 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30097 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30098 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30099 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
30100 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30101 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30102 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30103 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30104 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30105 * gst-libs/gst/vaapi/gstvaapiimage.c:
30106 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30107 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30108 * gst-libs/gst/vaapi/gstvaapiobject.c:
30109 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
30110 * gst-libs/gst/vaapi/gstvaapiprofile.c:
30111 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30112 * gst-libs/gst/vaapi/gstvaapisurface.c:
30113 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30114 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30115 * gst-libs/gst/vaapi/gstvaapitexture.c:
30116 * gst-libs/gst/vaapi/gstvaapiutils.c:
30117 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30118 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
30119 * gst-libs/gst/vaapi/gstvaapivalue.c:
30120 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30121 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30122 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30123 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30124 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30125 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30126 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30127 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30128 * gst-libs/gst/vaapi/sysdeps.h:
30129 Add header for system-dependent definitions.
30131 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30133 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
30134 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
30135 * gst-libs/gst/vaapi/gstvaapiutils.c:
30136 * gst-libs/gst/vaapi/gstvaapiutils.h:
30137 decoder: optimize slice data buffers initialization.
30138 VA drivers may have a faster means to transfer user buffers to GPU
30139 buffers than using memcpy(). In particular, on Intel Gen graphics, we
30140 can use pwrite(). This provides for faster upload of bitstream and can
30141 help higher bitrates.
30142 vaapi_create_buffer() helper function was also updated to allow for
30143 un-mapped buffers and pre-initialized data for buffers.
30145 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30147 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30148 h264: simplify RefPicList reconstruction.
30150 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30152 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30153 h264: flush DPB when the end of the sequence is reached.
30155 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30157 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30158 h264: handle Decoded Picture Buffer (DPB).
30160 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30162 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30163 h264: fix pred_weight_table() reconstruction.
30164 Only the explicit pred_weight_table(), possibly with the inferred default
30165 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
30166 is not set for P/SP slices.
30168 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30170 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30171 h264: execute reference picture marking process (MMCO).
30173 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30175 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30176 h264: fix presentation timestamps.
30178 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30180 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30181 h264: execute reference picture marking process (sliding window).
30183 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30185 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30186 h264: handle avcC format for decoding buffers.
30188 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30190 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30191 h264: handle codec-data.
30192 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30194 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30196 * gst-libs/gst/vaapi/Makefile.am:
30197 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30198 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30199 * gst/vaapi/gstvaapidecode.c:
30200 * tests/test-decode.c:
30201 Add initial H.264 decoder.
30203 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30205 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
30206 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30207 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
30208 Keep a valid reference to the proxy in GstVaapiPicture so that frames
30209 marked as "used for reference" could be kept during the lifetime of the
30210 picture. i.e. don't release them too soon as they could be re-used right
30213 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30215 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30216 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30217 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30218 decoder: properly reference count pictures.
30219 This fixes cases where a GstVaapiPicture would be destroyed whereas
30220 there is still a valid instance of it in either prev, current or
30223 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30225 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30226 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30227 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
30228 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30229 decoder: simplify output of decoded frames.
30230 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
30231 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
30232 is already set correctly and reference count increased, if necessary.
30234 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30236 * gst-libs/gst/vaapi/Makefile.am:
30237 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
30238 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30239 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30240 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30241 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30242 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
30243 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30244 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30245 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30246 decoder: rework the internal VA objects API.
30247 The new API simplifies a lot reference counting and makes it more
30248 flexible for future additions/changes. The GstVaapiCodecInfo is
30249 also gone. Rather, new helper macros are provided to allocate
30250 picture, slice and quantization matrix parameter buffers.
30252 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30254 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30255 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30256 decoder: allow slices to be attached to pictures later.
30258 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30260 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30261 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30262 decoder: add ref_count to GstVaapiPicture.
30264 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30266 * gst/vaapi/gstvaapisink.c:
30267 vaapisink: cap window size to the maximum display size.
30269 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
30271 * gst-libs/gst/vaapi/gstvaapiprofile.c:
30272 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
30273 profile: match video/x-h263 as H.263 Baseline profile.
30274 HACK: qtdemux does not report profiles for H.263. So, assume plain
30275 "video/x-h263" is H.263 Baseline profile.
30276 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30278 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30280 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30281 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
30282 display: report H.263 Baseline profile.
30283 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
30284 profile (VAProfileMPEG4Simple) is supported.
30286 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30288 * gst-libs/gst/vaapi/Makefile.am:
30289 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
30290 Add template for workarounds.
30292 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30294 * tests/test-decode.c:
30295 tests: error out if FFmpeg|codecparsers are not supported.
30297 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30299 * docs/reference/libs/libs-sections.txt:
30300 * gst-libs/gst/vaapi/gstvaapisurface.h:
30301 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30302 surface: don't expose gst_vaapi_surface_get_parent_context().
30303 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
30304 It's just an internal helper function. However, it's still possible to get
30305 the parent context through the "parent-context" property.
30307 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30309 * tests/Makefile.am:
30310 * tests/test-subpicture.c:
30311 tests: fix build without FFmpeg.
30313 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30316 Bump version for development.
30318 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30324 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30327 * debian.upstream/copyright:
30328 * gst-libs/gst/vaapi/gstvaapicontext.c:
30329 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30330 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30331 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30332 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30333 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30334 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30335 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30336 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30337 * gst-libs/gst/vaapi/gstvaapiimage.c:
30338 * gst-libs/gst/vaapi/gstvaapiimage.h:
30339 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30340 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30341 * gst-libs/gst/vaapi/gstvaapiutils.c:
30342 * gst-libs/gst/vaapi/gstvaapiutils.h:
30343 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30344 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30345 * gst/vaapi/gstvaapi.c:
30346 * gst/vaapi/gstvaapidecode.c:
30347 * gst/vaapi/gstvaapidownload.c:
30348 * gst/vaapi/gstvaapidownload.h:
30349 * gst/vaapi/gstvaapipluginutil.c:
30350 * gst/vaapi/gstvaapipluginutil.h:
30351 * gst/vaapi/gstvaapisink.c:
30352 * gst/vaapi/gstvaapiupload.c:
30353 * gst/vaapi/gstvaapiupload.h:
30354 * tests/test-decode.c:
30355 legal: fix year for some copyright notices.
30357 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30359 * gst-libs/gst/vaapi/gstvaapicontext.c:
30360 * gst-libs/gst/vaapi/gstvaapicontext.h:
30361 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30362 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30363 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30364 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30365 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30366 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30367 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30368 * gst-libs/gst/vaapi/gstvaapiimage.c:
30369 * gst-libs/gst/vaapi/gstvaapiimage.h:
30370 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30371 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30372 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30373 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30374 * gst-libs/gst/vaapi/gstvaapisurface.c:
30375 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30376 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30377 * gst-libs/gst/vaapi/gstvaapiutils.c:
30378 * gst-libs/gst/vaapi/gstvaapiutils.h:
30379 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30380 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
30381 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30382 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30383 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30384 * gst/vaapi/gstvaapidownload.h:
30385 * gst/vaapi/gstvaapisink.h:
30386 * gst/vaapi/gstvaapiupload.h:
30387 * tests/test-decode.c:
30388 legal: add Intel copyright on modified files.
30390 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30392 * gst-libs/gst/vaapi/gstvaapi_priv.h:
30393 * gst-libs/gst/vaapi/gstvaapicompat.h:
30394 * gst-libs/gst/vaapi/gstvaapicontext.c:
30395 * gst-libs/gst/vaapi/gstvaapicontext.h:
30396 * gst-libs/gst/vaapi/gstvaapidebug.h:
30397 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30398 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30399 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30400 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30401 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30402 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30403 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30404 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30405 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30406 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
30407 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30408 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30409 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30410 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30411 * gst-libs/gst/vaapi/gstvaapiimage.c:
30412 * gst-libs/gst/vaapi/gstvaapiimage.h:
30413 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30414 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30415 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30416 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30417 * gst-libs/gst/vaapi/gstvaapiobject.c:
30418 * gst-libs/gst/vaapi/gstvaapiobject.h:
30419 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30420 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
30421 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30422 * gst-libs/gst/vaapi/gstvaapiprofile.c:
30423 * gst-libs/gst/vaapi/gstvaapiprofile.h:
30424 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30425 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30426 * gst-libs/gst/vaapi/gstvaapisurface.c:
30427 * gst-libs/gst/vaapi/gstvaapisurface.h:
30428 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30429 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30430 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30431 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30432 * gst-libs/gst/vaapi/gstvaapitexture.c:
30433 * gst-libs/gst/vaapi/gstvaapitexture.h:
30434 * gst-libs/gst/vaapi/gstvaapitypes.h:
30435 * gst-libs/gst/vaapi/gstvaapiutils.c:
30436 * gst-libs/gst/vaapi/gstvaapiutils.h:
30437 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30438 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30439 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
30440 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30441 * gst-libs/gst/vaapi/gstvaapivalue.c:
30442 * gst-libs/gst/vaapi/gstvaapivalue.h:
30443 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30444 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30445 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30446 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30447 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30448 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30449 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30450 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30451 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30452 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30453 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30454 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30455 * gst/vaapi/gstvaapidecode.c:
30456 * gst/vaapi/gstvaapidecode.h:
30457 * gst/vaapi/gstvaapidownload.c:
30458 * gst/vaapi/gstvaapidownload.h:
30459 * gst/vaapi/gstvaapisink.c:
30460 * gst/vaapi/gstvaapisink.h:
30461 * gst/vaapi/gstvaapiupload.c:
30462 * gst/vaapi/gstvaapiupload.h:
30465 * tests/test-decode.c:
30466 * tests/test-decode.h:
30467 * tests/test-display.c:
30468 * tests/test-h264.c:
30469 * tests/test-h264.h:
30470 * tests/test-mpeg2.c:
30471 * tests/test-mpeg2.h:
30472 * tests/test-surfaces.c:
30473 * tests/test-textures.c:
30474 * tests/test-vc1.c:
30475 * tests/test-vc1.h:
30476 * tests/test-windows.c:
30477 legal: fix copyright notices to include "Copyright" term.
30479 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
30481 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30482 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30483 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
30484 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30486 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
30488 * gst-libs/gst/vaapi/Makefile.am:
30489 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30490 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30491 * gst/vaapi/gstvaapidecode.c:
30492 Add initial MPEG-4 decoder.
30493 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30495 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30497 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30498 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30499 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
30500 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30502 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30504 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30505 vc1: fix codec-data decoding for WMV3 format.
30507 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30509 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30510 vc1: fix presentation timestamps.
30512 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30514 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30515 vc1: fix MV mode packing.
30517 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30519 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30520 vc1: handle codec-data.
30522 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30524 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30525 vc1: handle encapsulated bitstreams.
30527 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30529 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30530 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30531 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30532 vc1: fix bitplanes decoding.
30534 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30536 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30537 vc1: fix BFRACTION reconstruction.
30539 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30541 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30542 vc1: fix framerate calculation.
30544 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30546 * gst-libs/gst/vaapi/Makefile.am:
30547 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30548 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30549 * gst/vaapi/gstvaapidecode.c:
30550 * tests/test-decode.c:
30551 Add initial VC-1 decoder.
30553 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
30555 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30556 mpeg2: fix first field detection.
30557 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30559 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30561 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30562 mpeg2: fix quantisation matrix construction.
30564 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30566 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30567 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30568 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
30569 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30571 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30573 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30574 mpeg2: fix packets spanning over two buffers.
30576 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30578 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30579 mpeg2: ignore system start codes (PES headers).
30581 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30583 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30584 mpeg2: handle closed_gop.
30586 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30588 * gst-libs/gst/vaapi/Makefile.am:
30589 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30590 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30591 * gst/vaapi/gstvaapidecode.c:
30592 * tests/test-decode.c:
30593 Add initial MPEG-2 decoder.
30595 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30598 * gst-libs/gst/vaapi/Makefile.am:
30599 * gst/vaapi/gstvaapidecode.c:
30600 * tests/test-decode.c:
30601 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
30603 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30605 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30606 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30607 Add VA decoder helpers.
30609 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30611 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30612 decoder: add new error codes.
30613 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
30614 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
30616 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30618 * gst-libs/gst/vaapi/Makefile.am:
30619 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30620 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30621 Add timestamp buffer store helper utils.
30623 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30625 * gst-libs/gst/vaapi/gstvaapiutils.c:
30626 * gst-libs/gst/vaapi/gstvaapiutils.h:
30627 Add VA buffer helpers.
30629 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30631 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30632 utils: slight improvements to gl_bind_texture().
30634 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30636 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30637 utils: pretty-print output of gl_get_error_string().
30639 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30641 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30642 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
30644 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30646 * gst-libs/gst/vaapi/gstvaapiutils.c:
30647 utils: simplify string of VAProfile/VAEntrypoint.
30649 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30651 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30652 * gst-libs/gst/vaapi/gstvaapiutils.c:
30653 * gst-libs/gst/vaapi/gstvaapiutils.h:
30654 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
30656 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30661 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30663 * tests/test-decode.c:
30664 tests: check for shared VA displays (display cache).
30666 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30668 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30669 display: always free VA display cache if it is empty.
30671 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30673 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30674 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30675 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30676 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30677 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30678 display: use VA display cache for X11 and GLX winsys.
30680 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30682 * gst-libs/gst/vaapi/Makefile.am:
30683 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30684 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30685 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
30686 display: implement a VA display cache.
30688 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30690 * gst/vaapi/gstvaapipluginutil.c:
30691 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
30692 This ensures the display name provided to gst_vaapi_display_*_new()
30693 maps to the system defaults, instead of forcing "" that could be different
30694 from the current DISPLAY name.
30696 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
30698 * gst/vaapi/gstvaapiupload.c:
30699 vaapiupload: only set caps on newly created buffers.
30700 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30702 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30704 * gst/vaapi/gstvaapisink.c:
30705 vaapisink: ensure VA display in GstBaseSink::start() hook.
30706 This ensures a VA display is ready by the time upstream elements request
30709 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
30711 * gst/vaapi/gstvaapisink.c:
30712 vaapisink: don't leak GL texture.
30713 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30715 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30717 * gst/vaapi/gstvaapisink.c:
30718 vaapisink: fix calculation of render region.
30720 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30722 * gst/vaapi/gstvaapisink.c:
30723 vaapisink: automatically fit video to window.
30725 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30727 * gst/vaapi/gstvaapisink.c:
30728 vaapisink: implement GstXOverlay::set_render_rectangle().
30730 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30732 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30733 window: always check geometry when the window is mapped.
30735 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
30737 * gst-libs/gst/vaapi/gstvaapiutils.c:
30738 Add missing profiles from VA-API 0.32.0.
30739 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30741 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30744 .gitignore: add test-subpicture.
30746 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30749 Bump version for development.
30751 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30757 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30759 * tests/Makefile.am:
30760 tests: fix make dist (ship with test-subpicture-data.h).
30762 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30767 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30769 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30770 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30771 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30772 decoder: fix possible leak of VA surfaces.
30773 Under some circumstances, we could have leaked a surface, thus not
30774 releasing it to the pool of available surfaces in the VA context.
30775 The strategy is now to use a proxy earlier and automatically ref/unref
30776 whenever necessary. In particular, during the lifetime needed for FFmpeg.
30778 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30780 * docs/reference/libs/libs-sections.txt:
30781 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30782 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30783 surfaceproxy: add helper to retrieve the VA surface ID.
30785 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30787 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30788 surfaceproxy: simplify destruction.
30789 Also make sure to always make sure to release the surface back to the
30790 pool of surfaces in the associated VA context, if any.
30792 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30794 * gst/vaapi/gstvaapidecode.c:
30795 vaapidecode: fix deinitialization order.
30797 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30799 * gst-libs/gst/vaapi/gstvaapicontext.c:
30800 context: avoid self reference loops with surfaces.
30802 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30804 * debian.upstream/control.in:
30805 debian: update control.in description for new plugins.
30807 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30809 * gst/vaapi/gstvaapiupload.c:
30810 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
30811 This also fixes extra structures, beyond the one at index 0, to hold
30812 the right additional values.
30814 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30816 * gst/vaapi/gstvaapiupload.c:
30817 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
30819 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30822 * docs/reference/plugins/plugins-docs.xml.in:
30823 * docs/reference/plugins/plugins-sections.txt:
30824 * docs/reference/plugins/plugins.types:
30825 * gst/vaapi/Makefile.am:
30826 * gst/vaapi/gstvaapi.c:
30827 * gst/vaapi/gstvaapidownload.c:
30828 * gst/vaapi/gstvaapidownload.h:
30829 vaapidownload: add new plugin to download pixels from VA surfaces.
30831 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30833 * gst/vaapi/gstvaapipluginutil.c:
30834 * gst/vaapi/gstvaapipluginutil.h:
30835 vaapipluingutils: add helper to append surface caps to YUV caps.
30837 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30839 * docs/reference/libs/libs-sections.txt:
30840 * gst-libs/gst/vaapi/gstvaapiimage.c:
30841 * gst-libs/gst/vaapi/gstvaapiimage.h:
30842 image: add helpers to extract pixels to user buffers.
30844 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30846 * gst-libs/gst/vaapi/gstvaapiimage.c:
30847 image: simplify initialization of raw images from video buffers.
30849 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30851 * gst-libs/gst/vaapi/gstvaapiimage.c:
30852 image: fix update from NV12 buffers.
30854 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30856 * gst/vaapi/gstvaapiupload.c:
30857 vaapiupload: fix memory leak in _init() function.
30859 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30863 * debian.upstream/control.in:
30864 * docs/reference/plugins/plugins-docs.xml.in:
30865 * docs/reference/plugins/plugins-sections.txt:
30866 * docs/reference/plugins/plugins.types:
30867 * gst/vaapi/Makefile.am:
30868 * gst/vaapi/gstvaapi.c:
30869 * gst/vaapi/gstvaapiupload.c:
30870 * gst/vaapi/gstvaapiupload.h:
30871 Rename vaapiconvert element to vaapiupload.
30873 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30876 Bump version for development.
30878 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30884 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30889 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30891 * gst-libs/gst/vaapi/gstvaapisurface.c:
30892 * gst-libs/gst/vaapi/gstvaapisurface.h:
30893 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30894 * gst/vaapi/gstvaapisink.c:
30895 surface: apply composition to the parent context, if requested.
30897 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30899 * docs/reference/libs/libs-sections.txt:
30900 * gst-libs/gst/vaapi/gstvaapicontext.c:
30901 * gst-libs/gst/vaapi/gstvaapicontext.h:
30902 context: make it possible to apply composition globally.
30904 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30906 * gst-libs/gst/vaapi/gstvaapisurface.c:
30907 surface: fix associate subpicture to not report deassociation errors.
30909 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30911 * gst-libs/gst/vaapi/gstvaapisurface.c:
30912 surface: fix typo in debug message.
30914 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30916 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30917 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30918 * gst-libs/gst/vaapi/gstvaapisurface.c:
30919 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
30921 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30923 * docs/reference/libs/libs-sections.txt:
30924 * gst-libs/gst/vaapi/Makefile.am:
30925 * gst-libs/gst/vaapi/gstvaapicontext.c:
30926 * gst-libs/gst/vaapi/gstvaapisurface.c:
30927 * gst-libs/gst/vaapi/gstvaapisurface.h:
30928 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30929 surface: record parent context.
30931 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30933 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
30934 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30935 * gst/vaapi/gstvaapidecode.c:
30936 * gst/vaapi/gstvaapisink.c:
30939 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30941 * gst-libs/gst/vaapi/gstvaapisurface.c:
30942 * gst-libs/gst/vaapi/gstvaapisurface.h:
30943 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30944 * gst/vaapi/gstvaapisink.c:
30945 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
30947 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30950 configure: check for GstVideoOverlayComposition.
30952 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30957 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
30959 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30960 converter: add support for GstVideoOverlayComposition planes.
30961 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30963 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
30965 * gst/vaapi/gstvaapisink.c:
30966 vaapisink: handle GstVideoOverlayComposition planes.
30967 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30969 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30971 * gst-libs/gst/vaapi/gstvaapisurface.c:
30972 surface: use unscaled overlay rectangle for blending.
30974 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30976 * gst-libs/gst/vaapi/gstvaapisurface.c:
30977 surface: fix VA image leak when an error occurred.
30979 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
30981 * gst-libs/gst/vaapi/gstvaapisurface.c:
30982 * gst-libs/gst/vaapi/gstvaapisurface.h:
30983 surface: add helper to handle GstVideoOverlayComposition.
30984 This helper resets the subpictures to reflect the current composition
30985 layers provided with the buffers.
30986 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30988 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30990 * docs/reference/libs/libs-sections.txt:
30991 * gst-libs/gst/vaapi/Makefile.am:
30992 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30993 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30994 * gst/vaapi/gstvaapiconvert.c:
30995 image: add gst_vaapi_image_format_from_video() helper.
30997 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30999 * gst-libs/gst/vaapi/gstvaapiimage.c:
31000 * gst-libs/gst/vaapi/gstvaapiimage.h:
31001 image: allow updates from GstVaapiImageRaw.
31003 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31005 * gst-libs/gst/vaapi/gstvaapiimage.c:
31006 * gst-libs/gst/vaapi/gstvaapiimage.h:
31007 * gst/vaapi/gstvaapiconvert.c:
31008 * tests/test-subpicture.c:
31009 image: allow partial updates.
31011 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31013 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31014 subpicture: fix doc for gst_vaapi_subpicture_set_image().
31016 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31018 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31019 display: fix has_image_format() to check against subpicture formats.
31021 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31023 * tests/test-subpicture.c:
31024 tests: fix subpicture test.
31026 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
31028 * tests/Makefile.am:
31029 * tests/test-subpicture-data.c:
31030 * tests/test-subpicture-data.h:
31031 * tests/test-subpicture.c:
31032 tests: add test for subpictures.
31033 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31035 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
31037 * gst/vaapi/gstvaapiconvert.c:
31038 * gst/vaapi/gstvaapidecode.c:
31039 Add missing video context queries.
31040 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31042 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31045 Bump version for development.
31047 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31049 * gst-libs/gst/video/Makefile.am:
31050 * gst-libs/gst/video/gstbasevideocodec.c:
31051 * gst-libs/gst/video/gstbasevideocodec.h:
31052 * gst-libs/gst/video/gstbasevideodecoder.c:
31053 * gst-libs/gst/video/gstbasevideodecoder.h:
31054 * gst-libs/gst/video/gstbasevideoutils.c:
31055 * gst-libs/gst/video/gstbasevideoutils.h:
31056 Drop unused copy of GstBaseVideoDecoder.
31058 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31064 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31067 README: update dependencies.
31069 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31074 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31077 configure: check for GstBaseSink 'query' vfunc.
31079 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31081 * gst/vaapi/Makefile.am:
31082 vaapiplugin: include local build dir to CFLAGS for generated files.
31084 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31087 autogen: don't configure if NO_CONFIGURE variable is set.
31089 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31091 * gst/vaapi/gstvaapidecode.c:
31092 * gst/vaapi/gstvaapidecode.h:
31093 vaapidecode: return sink caps template if decoder is in NULL state.
31094 Otherwise, the decoder would always create its own X display instead
31095 of probing it from the downstream element, which is not reliable.
31096 e.g. DISPLAY is not :0 or when running on Wayland.
31097 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31099 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31101 * gst/vaapi/gstvaapiconvert.c:
31102 * gst/vaapi/gstvaapidecode.c:
31103 vaapiplugin: properly set surface type to "vaapi" in caps.
31105 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31107 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31108 decoder: drop unused headers.
31110 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
31112 * gst/vaapi/gstvaapiconvert.c:
31113 * gst/vaapi/gstvaapidecode.c:
31114 vaapiplugin: properly set opengl support in caps.
31115 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31117 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
31119 * gst/vaapi/gstvaapiconvert.c:
31120 * gst/vaapi/gstvaapidecode.c:
31121 vaapiplugin: allocate GLX buffers when supported.
31122 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31124 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
31126 * gst-libs/gst/vaapi/Makefile.am:
31127 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31128 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31129 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
31130 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
31131 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31132 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
31133 videobuffer: add GLX buffer support.
31134 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31136 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
31138 * gst-libs/gst/vaapi/Makefile.am:
31139 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31140 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31141 Port to GstSurfaceBuffer interface.
31142 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31144 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
31146 * gst/vaapi/gstvaapidecode.c:
31147 * gst/vaapi/gstvaapisink.c:
31148 Don't use downstream buffer allocation.
31149 With the new video/x-surface abstraction, we can't rely on having a VA
31150 specific sink downstream. Also, there was no particular reason to do that.
31151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31153 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
31155 * gst-libs/gst/vaapi/Makefile.am:
31156 * gst-libs/gst/vaapi/gstvaapicontext.c:
31157 * gst-libs/gst/vaapi/gstvaapisurface.h:
31158 * gst/vaapi/gstvaapiconvert.c:
31159 * gst/vaapi/gstvaapisink.c:
31160 * tests/Makefile.am:
31161 * tests/test-surfaces.c:
31162 Change caps to use new video/x-surface generic type.
31163 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31165 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
31168 * gst-libs/gst/vaapi/Makefile.am:
31169 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
31170 * gst/vaapi/Makefile.am:
31171 * gst/vaapi/gstvaapiconvert.c:
31172 * gst/vaapi/gstvaapidecode.c:
31173 * gst/vaapi/gstvaapipluginutil.c:
31174 * gst/vaapi/gstvaapipluginutil.h:
31175 * gst/vaapi/gstvaapisink.c:
31176 * gst/vaapi/gstvaapisink.h:
31177 Port to GstVideoContext interface.
31178 This new interface allows for upstream and downstream display sharing
31179 that works in both static and dynamic pipelines.
31180 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31182 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31184 * gst/vaapi/gstvaapisink.c:
31185 vaapisink: use GST_ERROR to print error messages.
31187 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31189 * gst/vaapi/Makefile.am:
31190 vaapiplugin: link against VA/GLX when enabled.
31192 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31194 * gst/vaapi/gstvaapiconvert.c:
31195 * gst/vaapi/gstvaapisink.c:
31196 Add Intel copyright information.
31198 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31200 * gst/vaapi/gstvaapisink.c:
31201 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
31203 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31207 * gst-libs/gst/Makefile.am:
31208 * gst-libs/gst/gstutils_version.h.in:
31209 Add new GStreamer version check utilities.
31211 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31213 * gst/vaapi/gstvaapisink.c:
31214 vaapisink: replace the deprecated xoverlay API with the new one.
31215 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31217 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31220 configure: allow for pre-releases.
31222 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
31224 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31225 display: destroy display on creation failure.
31226 This allows element to detect that the display creation has actually
31228 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31230 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
31232 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31233 display: don't crash when config is empty.
31234 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31236 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31239 * debian.upstream/copyright:
31240 doc: mention Collabora copyrights.
31242 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31245 .gitignore: refine for generated docs.
31247 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
31250 * docs/reference/plugins/Makefile.am:
31252 * gst/vaapi/Makefile.am:
31253 * gst/vaapi/gstvaapi.c:
31254 * gst/vaapi/gstvaapiconvert.c:
31255 * gst/vaapi/gstvaapiconvert.h:
31256 * gst/vaapi/gstvaapidecode.c:
31257 * gst/vaapi/gstvaapidecode.h:
31258 * gst/vaapi/gstvaapisink.c:
31259 * gst/vaapi/gstvaapisink.h:
31260 * gst/vaapiconvert/Makefile.am:
31261 * gst/vaapidecode/Makefile.am:
31262 Group all plugins into the same bundle
31263 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31265 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31268 Bump version for development.
31270 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31273 * debian.upstream/control.in:
31274 debian: build against upstream libva packages.
31276 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31278 * docs/reference/libs/Makefile.am:
31279 * docs/reference/plugins/Makefile.am:
31280 * tests/Makefile.am:
31281 Fix build on Ubuntu 11.10 (Oneric).
31283 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31288 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
31292 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31294 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
31296 * gst/vaapiconvert/gstvaapiconvert.c:
31297 * gst/vaapidecode/gstvaapidecode.c:
31298 * gst/vaapisink/gstvaapisink.c:
31299 Update license in plugin definition
31300 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31302 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31305 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31306 decoder: fix use of invalid data at the end-of-stream.
31308 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31310 * gst/vaapiconvert/gstvaapiconvert.c:
31311 vaapiconvert: fix some warnings.
31313 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31316 * debian.upstream/changelog.in:
31317 * debian.upstream/control.in:
31318 * debian.upstream/copyright:
31319 * gst/vaapiconvert/gstvaapiconvert.c:
31320 * gst/vaapidecode/gstvaapidecode.c:
31321 * gst/vaapisink/gstvaapisink.c:
31322 Update with my current e-mail address.
31324 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31328 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
31330 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
31334 * tests/test-decode.c:
31335 * tests/test-decode.h:
31336 * tests/test-display.c:
31337 * tests/test-h264.c:
31338 * tests/test-h264.h:
31339 * tests/test-mpeg2.c:
31340 * tests/test-mpeg2.h:
31341 * tests/test-surfaces.c:
31342 * tests/test-textures.c:
31343 * tests/test-vc1.c:
31344 * tests/test-vc1.h:
31345 * tests/test-windows.c:
31346 switch tests licence to LGPL v2.1+
31348 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
31352 * debian.upstream/copyright:
31353 * gst/vaapiconvert/gstvaapiconvert.c:
31354 * gst/vaapiconvert/gstvaapiconvert.h:
31355 * gst/vaapidecode/gstvaapidecode.c:
31356 * gst/vaapidecode/gstvaapidecode.h:
31357 * gst/vaapisink/gstvaapisink.c:
31358 * gst/vaapisink/gstvaapisink.h:
31359 move plugins to LGPL v2.1+
31361 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31363 * gst/vaapidecode/gstvaapidecode.c:
31364 vaapidecode: fix sink caps to not expose size information.
31365 This fixes this particular issue:
31366 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
31367 a real subset of its template caps
31369 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31372 * gst/vaapidecode/gstvaapidecode.c:
31373 vaapidecode: fix decoding of MPEG-2 PS files.
31375 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31377 * gst-libs/gst/vaapi/Makefile.am:
31378 Cosmetics (sort source files).
31380 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31382 * gst/vaapiconvert/gstvaapiconvert.c:
31383 * gst/vaapiconvert/gstvaapiconvert.h:
31384 vaapiconvert: fix direct-rendering caps detection.
31386 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31388 * gst-libs/gst/vaapi/gstvaapiimage.c:
31389 Fix gst_vaapi_image_new_with_image().
31391 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31393 * gst/vaapiconvert/gstvaapiconvert.c:
31394 vaapiconvert: warn when surface failed to be updated with image.
31396 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31398 * gst/vaapiconvert/gstvaapiconvert.c:
31399 vaapiconvert: fix autodetection for vaDeriveImage() support.
31401 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31403 * gst/vaapiconvert/gstvaapiconvert.c:
31404 vaapiconvert: fix memory leak (VA surface image).
31406 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31409 * gst/vaapiconvert/gstvaapiconvert.c:
31410 vaapiconvert: fix direct-rendering mode.
31412 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31414 * docs/reference/libs/libs-sections.txt:
31415 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31416 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31417 Add gst_vaapi_video_buffer_new_from_buffer().
31418 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
31419 Any image, surface or surface proxy will be inherited from the source buffer
31420 if it is a GstVaapiVideoBuffer.
31422 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31424 * gst/vaapiconvert/gstvaapiconvert.c:
31425 vaapiconvert: protect access to direct_rendering.
31427 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31429 * gst/vaapiconvert/gstvaapiconvert.c:
31430 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
31432 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31436 * debian.upstream/copyright:
31437 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31438 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31439 * gst-libs/gst/vaapi/gstvaapisurface.h:
31440 * gst/vaapidecode/gstvaapidecode.c:
31441 * gst/vaapidecode/gstvaapidecode.h:
31442 Add Intel copyright information.
31444 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31449 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31451 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31452 Fix build with newer FFmpeg versions.
31454 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31456 * gst/vaapidecode/gstvaapidecode.c:
31457 * gst/vaapidecode/gstvaapidecode.h:
31458 Fix decoding of MPEG-2 TS files.
31460 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31462 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31463 Report caps update only once per video resolution change.
31465 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31467 * gst-libs/gst/vaapi/gstvaapisurface.h:
31468 Add canonical form (type name) of VA surface caps.
31470 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31473 Bump version for development.
31475 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31478 Use pretty build output with automake >= 1.11.
31480 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31482 * gst/vaapiconvert/Makefile.am:
31483 * gst/vaapidecode/Makefile.am:
31484 * gst/vaapisink/Makefile.am:
31485 * tests/Makefile.am:
31486 Fix build with libva headers not in a standard include dir.
31488 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
31493 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
31495 * gst-libs/gst/vaapi/gstvaapi_priv.h:
31496 * gst-libs/gst/vaapi/gstvaapicompat.h:
31497 * gst-libs/gst/vaapi/gstvaapicontext.c:
31498 * gst-libs/gst/vaapi/gstvaapicontext.h:
31499 * gst-libs/gst/vaapi/gstvaapidebug.h:
31500 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31501 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31502 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31503 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31504 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31505 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31506 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31507 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31508 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
31509 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
31510 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31511 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31512 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31513 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
31514 * gst-libs/gst/vaapi/gstvaapiimage.c:
31515 * gst-libs/gst/vaapi/gstvaapiimage.h:
31516 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31517 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
31518 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31519 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
31520 * gst-libs/gst/vaapi/gstvaapiobject.c:
31521 * gst-libs/gst/vaapi/gstvaapiobject.h:
31522 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
31523 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31524 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
31525 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31526 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31527 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31528 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31529 * gst-libs/gst/vaapi/gstvaapisurface.c:
31530 * gst-libs/gst/vaapi/gstvaapisurface.h:
31531 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31532 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
31533 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31534 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31535 * gst-libs/gst/vaapi/gstvaapitexture.c:
31536 * gst-libs/gst/vaapi/gstvaapitexture.h:
31537 * gst-libs/gst/vaapi/gstvaapitypes.h:
31538 * gst-libs/gst/vaapi/gstvaapiutils.c:
31539 * gst-libs/gst/vaapi/gstvaapiutils.h:
31540 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31541 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31542 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
31543 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
31544 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31545 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31546 * gst-libs/gst/vaapi/gstvaapivalue.c:
31547 * gst-libs/gst/vaapi/gstvaapivalue.h:
31548 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31549 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31550 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31551 * gst-libs/gst/vaapi/gstvaapivideopool.h:
31552 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31553 * gst-libs/gst/vaapi/gstvaapivideosink.h:
31554 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31555 * gst-libs/gst/vaapi/gstvaapiwindow.h:
31556 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31557 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
31558 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31559 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
31560 * gst/vaapiconvert/gstvaapiconvert.c:
31561 * gst/vaapiconvert/gstvaapiconvert.h:
31562 * gst/vaapidecode/gstvaapidecode.c:
31563 * gst/vaapidecode/gstvaapidecode.h:
31564 * gst/vaapisink/gstvaapisink.c:
31565 * gst/vaapisink/gstvaapisink.h:
31568 * tests/test-decode.c:
31569 * tests/test-decode.h:
31570 * tests/test-display.c:
31571 * tests/test-h264.c:
31572 * tests/test-h264.h:
31573 * tests/test-mpeg2.c:
31574 * tests/test-mpeg2.h:
31575 * tests/test-surfaces.c:
31576 * tests/test-textures.c:
31577 * tests/test-vc1.c:
31578 * tests/test-vc1.h:
31579 * tests/test-windows.c:
31580 Update copyright notice.
31582 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
31585 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31586 * gst-libs/gst/vaapi/gstvaapisurface.c:
31587 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31588 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31589 * gst-libs/gst/vaapi/gstvaapitexture.c:
31590 * gst-libs/gst/vaapi/gstvaapiutils.c:
31591 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31592 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31593 * gst-libs/gst/vaapi/gstvaapivalue.c:
31594 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31595 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31596 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31597 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31598 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31599 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31600 Fix licensing terms.
31602 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31607 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31609 * debian.upstream/copyright:
31610 Fix license terms...
31612 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31614 * gst/vaapisink/gstvaapisink.c:
31615 Render pretty background only in use-reflection=true mode.
31617 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31622 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31624 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31625 Drop the GLX 1.3 requirement.
31627 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31629 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31630 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31631 Call the GLX/Pixmap related functions through the vtable.
31633 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31637 * gst-libs/gst/vaapi/Makefile.am:
31638 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31639 Drop dependency on libavformat.
31641 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31643 * gst-libs/gst/video/gstbasevideodecoder.c:
31644 * gst-libs/gst/video/gstbasevideodecoder.h:
31645 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
31647 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31649 * gst-libs/gst/video/gstbasevideodecoder.c:
31650 * gst-libs/gst/video/gstbasevideoutils.c:
31651 * gst-libs/gst/video/gstbasevideoutils.h:
31652 Drop superfluous functions.
31654 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31656 * gst-libs/gst/video/gstbasevideodecoder.c:
31657 Really drop any dependency on libgstvideo. i.e. inline the helpers.
31659 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31661 * gst-libs/gst/video/gstbasevideodecoder.c:
31662 Further drop dependency on libgstvideo.
31664 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31666 * gst-libs/gst/video/Makefile.am:
31667 * gst-libs/gst/video/gstbasevideocodec.c:
31668 * gst-libs/gst/video/gstbasevideocodec.h:
31669 * gst-libs/gst/video/gstbasevideodecoder.c:
31670 * gst-libs/gst/video/gstbasevideodecoder.h:
31671 * gst-libs/gst/video/gstbasevideoutils.c:
31672 * gst-libs/gst/video/gstbasevideoutils.h:
31673 Add GstBaseVideoDecoder from gst-plugins-bad git.
31675 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31677 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31678 Fix GLX version check.
31680 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31684 Bump version for development.
31686 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31689 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31690 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
31692 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31697 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31699 * gst-libs/gst/vaapi/gstvaapicompat.h:
31700 Fix build with older VA-API 0.29-sds.
31702 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31704 * gst/vaapisink/gstvaapisink.c:
31705 * gst/vaapisink/gstvaapisink.h:
31706 Fix upscaling in foreign window (Totem).
31708 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31710 * gst/vaapisink/gstvaapisink.c:
31711 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
31713 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31716 * gst/vaapisink/gstvaapisink.c:
31717 Fix video rendering rect within an embedder window (Totem).
31719 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31722 * gst/vaapisink/gstvaapisink.c:
31723 Disable GLX rendering when vaapisink uses a foreign X window.
31725 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31727 * gst/vaapisink/gstvaapisink.c:
31728 Simplify GLX rendering code.
31730 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31733 Bump version for development.
31735 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31740 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31742 * gst/vaapidecode/gstvaapidecode.c:
31743 Wait for at most one second for a VA surface to become available.
31745 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31749 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
31751 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31755 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31756 Fix decoder caps to report codec aliases.
31758 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31761 * gst/vaapidecode/gstvaapidecode.c:
31762 * gst/vaapidecode/gstvaapidecode.h:
31763 Fix VC-1 decoding through the playbin2 pipeline.
31765 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31767 * docs/reference/libs/libs-sections.txt:
31768 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31769 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31770 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31771 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31772 Regularly update and expose decoder caps.
31774 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31776 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31777 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31778 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31779 Add mechanism to reinsert buffer leftovers into the queue.
31781 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31784 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31785 Fix memory leak of encoded buffers.
31787 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31789 * docs/reference/libs/libs-sections.txt:
31790 * gst-libs/gst/vaapi/gstvaapicontext.c:
31791 * gst-libs/gst/vaapi/gstvaapicontext.h:
31792 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31793 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31794 Check for out-of-free-surfaces condition.
31796 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31798 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31799 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
31801 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31803 * gst/vaapisink/gstvaapisink.c:
31804 Improve debug info for gst_vaapisink_ensure_render_rect().
31806 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31809 Bump version for development.
31811 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31816 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31818 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31819 Improve previous fix.
31821 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31824 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31825 Fix a crash in the FFmpeg decoder on close.
31827 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31830 Sort platforms by name.
31832 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31836 Bump version for development.
31838 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31840 * gst/vaapisink/gstvaapisink.c:
31841 Add debug info for _show_frame().
31843 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31846 Nuke older build dir.
31848 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31850 * debian.upstream/control.in:
31851 Fix packaging deps.
31853 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31858 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31861 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31862 Fix OpenGL texture internal format (Clutter).
31864 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31869 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31871 * gst/vaapisink/gstvaapisink.c:
31872 Debug video & display PARs.
31874 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31876 * gst/vaapisink/gstvaapisink.c:
31877 Use XGetGeometry() to retrieve the window size.
31879 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31881 * gst/vaapisink/gstvaapisink.c:
31884 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31886 * gst/vaapisink/gstvaapisink.c:
31887 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
31889 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31892 Drop obsolete comment.
31894 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31899 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31901 * gst/vaapidecode/gstvaapidecode.c:
31902 Fix GstVaapiDisplay refcounting in vaapidecode.
31904 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31906 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
31909 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31911 * gst/vaapisink/gstvaapisink.c:
31912 * gst/vaapisink/gstvaapisink.h:
31913 Fix render rect when the foreign window size changes.
31915 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31919 * gst/vaapisink/Makefile.am:
31920 * gst/vaapisink/gstvaapisink.c:
31921 Add GstXOverlay interface to vaapisink (e.g. for Totem).
31923 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31926 Update deps to match configure.ac versions.
31928 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31930 * gst/vaapiconvert/gstvaapiconvert.c:
31931 * gst/vaapidecode/gstvaapidecode.c:
31932 * gst/vaapisink/gstvaapisink.c:
31935 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31938 * gst/vaapidecode/Makefile.am:
31939 * gst/vaapidecode/gstvaapidecode.c:
31940 * gst/vaapidecode/gstvaapidecode.h:
31941 Fix vaapidecode to expose the HW supported caps only.
31943 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31945 * gst/vaapidecode/gstvaapidecode.c:
31946 Initialize decoder earlier.
31948 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31952 * gst/vaapidecode/gstvaapidecode.c:
31953 Fix integration within the playbin2 pipeline.
31955 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31957 * docs/reference/libs/Makefile.am:
31958 Exclude gstvaapiutils_gst.h from docs for now.
31960 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31962 * gst/vaapiconvert/gstvaapiconvert.c:
31963 * gst/vaapidecode/gstvaapidecode.c:
31964 * gst/vaapisink/gstvaapisink.c:
31965 Raise VA-API plugins ranks.
31967 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31969 * gst-libs/gst/vaapi/Makefile.am:
31970 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
31971 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
31972 Add gst_vaapi_display_lookup_downstream() helper.
31974 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31976 * gst/vaapidecode/gstvaapidecode.c:
31977 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
31979 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31981 * docs/reference/libs/libs-sections.txt:
31982 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31983 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31984 * gst/vaapisink/gstvaapisink.c:
31985 Expose VA display through GstVaapiVideoBuffer.
31987 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31989 * gst/vaapidecode/gstvaapidecode.c:
31990 Simplify gst_vaapidecode_set_caps() and fix memory leak.
31992 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
31994 * docs/reference/libs/libs-sections.txt:
31995 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31996 * gst-libs/gst/vaapi/gstvaapivideopool.h:
31997 Expose video pool display.
31999 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32001 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32002 Stop iteration if there is no more element to examine.
32004 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32006 * gst/vaapiconvert/gstvaapiconvert.c:
32007 * gst/vaapidecode/gstvaapidecode.c:
32008 * gst/vaapisink/gstvaapisink.c:
32009 Improve plugin details.
32011 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32013 * gst-libs/gst/vaapi/gstvaapisurface.h:
32014 * gst/vaapiconvert/gstvaapiconvert.c:
32015 * gst/vaapidecode/gstvaapidecode.c:
32016 * gst/vaapisink/gstvaapisink.c:
32017 Factor out VA surface caps.
32019 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32021 * gst/vaapidecode/gstvaapidecode.c:
32022 Add gst_vaapidecode_ensure_display() helper for set-caps.
32024 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32027 Bump version for development.
32029 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32032 Really make it 0.2.0.
32034 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32039 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32041 * docs/reference/libs/Makefile.am:
32042 Don't exclude GstVaapiParamSpecs.
32044 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32046 * docs/reference/libs/Makefile.am:
32047 * docs/reference/libs/libs-sections.txt:
32048 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32049 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32052 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32054 * gst/vaapiconvert/gstvaapiconvert.c:
32055 * gst/vaapidecode/gstvaapidecode.c:
32056 * gst/vaapisink/gstvaapisink.c:
32057 Lower plugins rank for now since playbin2 auto-plugging is not working properly. User applications will have to create their own pipeline or with some hacks around playbin2.
32059 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32061 * gst-libs/gst/vaapi/Makefile.am:
32062 Really link all helper libraries with libtool -no-undefined.
32064 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32066 * gst-libs/gst/vaapi/Makefile.am:
32067 Link helper libraries with libtool -no-undefined.
32069 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32072 * debian.upstream/gstreamer-vaapi.install.in:
32073 * gst/vaapiconvert/Makefile.am:
32074 * gst/vaapidecode/Makefile.am:
32075 * gst/vaapisink/Makefile.am:
32076 Don't build plugins with SONAME. Make them plain *.so.
32078 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32081 Improve documentation for release.
32083 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32085 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32086 Fix build with older VA-API 0.29.
32088 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32093 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32095 * tests/Makefile.am:
32098 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32100 * docs/reference/libs/Makefile.am:
32101 * docs/reference/libs/libs-docs.xml.in:
32102 * docs/reference/libs/libs-sections.txt:
32103 * docs/reference/libs/libs.core.types:
32104 * docs/reference/plugins/Makefile.am:
32105 * docs/reference/plugins/plugins-docs.xml.in:
32106 * docs/reference/plugins/plugins-sections.txt:
32107 * docs/reference/plugins/plugins.types:
32110 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32112 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32115 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32117 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32118 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32119 * gst/vaapidecode/gstvaapidecode.c:
32120 * tests/test-decode.c:
32121 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
32123 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32125 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32126 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32127 Extract framerate information from caps.
32129 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32131 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32132 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32133 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32134 Move caps initialization to parent class.
32136 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32138 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32141 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32143 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32146 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32148 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32149 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32150 More simplifications.
32152 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32154 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32155 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32156 * tests/test-decode.c:
32157 Simplify GstVaapiDecoder API.
32159 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32161 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32162 Drop obsolete defs.
32164 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32166 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32167 Drop obsolete decls.
32169 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32171 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32172 * gst/vaapidecode/gstvaapidecode.c:
32173 Add more aliases for MPEG-4 decoding.
32175 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32177 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32178 Use avctx->coded_{width,height} info to create the VA context.
32180 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32182 * tests/test-decode.c:
32183 * tests/test-decode.h:
32184 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
32186 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32188 * tests/test-decode.c:
32189 * tests/test-decode.h:
32190 * tests/test-h264.c:
32191 * tests/test-h264.h:
32192 * tests/test-mpeg2.c:
32193 * tests/test-mpeg2.h:
32194 * tests/test-vc1.c:
32195 * tests/test-vc1.h:
32196 Simplify tests info.
32198 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32200 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32201 Try to improve heuristics to use an AVCodecContextParser.
32203 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32205 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32206 Fix VC-1 decoding, it does not require any specific parser.
32208 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32210 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32211 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
32213 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32215 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32216 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32217 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
32219 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32221 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32222 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32223 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32224 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32225 * gst/vaapidecode/gstvaapidecode.c:
32226 * gst/vaapidecode/gstvaapidecode.h:
32227 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
32229 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32231 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32232 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32233 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32234 Improve WMV3 detection yet further.
32236 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32238 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32239 Fix detection of plain old WMV3 contents.
32241 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32243 * tests/test-vc1.c:
32244 Add End-of-Sequence start code.
32246 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32248 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32249 * gst/vaapidecode/gstvaapidecode.c:
32250 Fix VC-1 detection.
32252 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32254 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32255 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
32257 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32259 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32260 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32261 Drop obsolete (and wrong) code.
32263 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32265 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32266 Cosmetics (spelling).
32268 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32270 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32271 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32272 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32273 Try to fix timestamps (step 1). Looks OK on H55.
32275 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32277 * debian.upstream/Makefile.am:
32278 Ship with COPYING.LIB.
32280 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32285 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32286 * gst-libs/gst/vaapi/gstvaapicompat.h:
32287 * gst-libs/gst/vaapi/gstvaapicontext.c:
32288 * gst-libs/gst/vaapi/gstvaapicontext.h:
32289 * gst-libs/gst/vaapi/gstvaapidebug.h:
32290 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32291 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32292 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32293 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32294 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32295 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32296 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32297 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32298 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32299 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32300 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32301 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32302 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32303 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32304 * gst-libs/gst/vaapi/gstvaapiimage.c:
32305 * gst-libs/gst/vaapi/gstvaapiimage.h:
32306 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32307 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32308 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32309 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32310 * gst-libs/gst/vaapi/gstvaapiobject.c:
32311 * gst-libs/gst/vaapi/gstvaapiobject.h:
32312 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32313 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32314 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32315 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32316 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32317 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32318 * gst-libs/gst/vaapi/gstvaapisurface.h:
32319 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32320 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32321 * gst-libs/gst/vaapi/gstvaapitexture.h:
32322 * gst-libs/gst/vaapi/gstvaapitypes.h:
32323 * gst-libs/gst/vaapi/gstvaapiutils.h:
32324 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32325 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32326 * gst-libs/gst/vaapi/gstvaapivalue.h:
32327 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32328 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32329 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32330 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32331 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32332 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32333 Relicense gst-libs/ code to LGPL v2.1+.
32335 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32337 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32338 Drop extraneous comma.
32340 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32342 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32343 Drop variant=itu field to help codec detection.
32345 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32347 * gst/vaapidecode/gstvaapidecode.c:
32348 Decode as many surfaces as possible in gst_vaapidecode_step().
32350 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32352 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32353 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32354 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32355 * gst/vaapidecode/gstvaapidecode.c:
32356 * gst/vaapidecode/gstvaapidecode.h:
32357 * tests/test-decode.c:
32358 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
32360 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32365 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32367 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32368 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
32370 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32372 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32373 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32374 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
32376 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32378 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32379 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32380 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
32382 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32384 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32385 Document H.264 / AVC1 format case better.
32387 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32389 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32390 Fix H.264 decoding with AVC1 format bitstreams.
32392 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32394 * gst/vaapidecode/gstvaapidecode.c:
32395 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
32397 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32399 * gst/vaapisink/gstvaapisink.c:
32400 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
32402 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32404 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32405 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32406 Export gst_vaapi_video_buffer_new().
32408 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32410 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32411 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
32413 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32418 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32423 * gst/vaapidecode/Makefile.am:
32424 * gst/vaapidecode/gstvaapidecode.c:
32425 * gst/vaapidecode/gstvaapidecode.h:
32426 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
32428 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32430 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32431 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32432 Add gst_vaapi_decoder_pause().
32434 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32436 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32437 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32438 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32439 Use a GstTask with start/stop semantics for the decoder thread.
32441 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32443 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32444 Drop extraneous var.
32446 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32448 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32449 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32450 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
32452 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32454 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32455 Fix gst_vaapi_decoder_get_surface() status.
32457 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32459 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32460 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32461 Try to set correct timestamps to the decoded surface proxy.
32463 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32465 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32466 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32467 * tests/test-decode.c:
32468 Add timestamps to GstVaapiSurfaceProxy.
32470 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32472 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32473 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
32475 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32477 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32478 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
32480 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32482 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32483 Prefer profile from codec-data if any was found there.
32485 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32487 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32488 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
32490 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32492 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32493 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
32495 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32497 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32498 Fix VC-1 codec initialization, it really needs an extradata buffer.
32500 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32502 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32503 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32504 Split decoder creation with actual resources allocation and codec setup (probe). This fixes a memory leak (avctx, pctx) on destroy and most interestingly makes it possible to detect unsupported codecs.
32506 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32508 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32509 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
32511 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32513 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32514 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32515 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32516 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32517 * tests/test-decode.c:
32518 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
32520 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32522 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32523 Cosmetics (weird indentation).
32525 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32527 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32528 Cosmetics (extraneous variable, debug message).
32530 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32533 Fix check for VA-API enabled FFmpeg.
32535 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32537 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32538 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32539 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32540 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32541 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
32543 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32545 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32546 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32547 Add more error codes. Fix documentation.
32549 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32551 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32552 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
32554 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32556 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32557 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32558 * tests/test-decode.c:
32559 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
32561 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32563 * tests/test-vc1.c:
32564 Drop useless End-of-Sequence marker.
32566 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32568 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32569 Flush stream only if avcodec_decode_video() read something. Otherwise, we might still have to seek into the stream. i.e. keep the data longer.
32571 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32573 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32574 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32575 Use a recursive mutex so that a single thread can lock several times. This fixes decoding of MPEG-2 and H.264 because those created a GstVaapiContext later through avcodec_decode_video() that was a protected call.
32577 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32579 * tests/test-h264.c:
32580 * tests/test-vc1.c:
32581 Regenerate correct clips.
32583 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32585 * tests/Makefile.am:
32586 * tests/test-decode.c:
32587 * tests/test-h264.c:
32588 * tests/test-h264.h:
32589 * tests/test-mpeg2.c:
32590 * tests/test-mpeg2.h:
32591 * tests/test-vc1.c:
32592 * tests/test-vc1.h:
32593 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
32594 XXX: only VC-1 decoding works at this time because of awful
32595 bugs left in GstVaapiDecoderFfmpeg et al.
32597 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32600 * gst-libs/gst/vaapi/Makefile.am:
32601 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32602 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32603 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32604 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32605 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32606 Add initial (multithreaded) decoder based on FFmpeg.
32607 There are tons of bugs left:
32608 - Decoder API not nice enough with error conditions
32609 - FFmpeg parser is sometimes broken
32610 - Packets queue can be lost
32612 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32614 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32615 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32616 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
32618 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32620 * gst-libs/gst/vaapi/gstvaapicontext.c:
32621 * gst-libs/gst/vaapi/gstvaapicontext.h:
32622 Add VA context abstraction.
32624 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32626 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32627 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
32629 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32631 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32632 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32633 Add a means to cap the number of objects allocated in the pool.
32635 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32637 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32638 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32639 Add VA entrypoint abstraction.
32641 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32643 * docs/reference/libs/libs-docs.xml.in:
32644 * docs/reference/libs/libs-sections.txt:
32645 * gst-libs/gst/vaapi/Makefile.am:
32646 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32647 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32648 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32649 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32650 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32651 * tests/test-display.c:
32652 Add VA profile abstraction.
32654 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32656 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32657 Fix OpenGL rendering on G45 systems.
32659 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32661 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32662 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
32664 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32666 * gst-libs/gst/vaapi/gstvaapitexture.c:
32667 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32668 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32669 Fix TFP logic and simplify the FBO model. i.e. it's not necessary to create another texture (and storage) for the TFP, simply a new texture name.
32671 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32673 * gst-libs/gst/vaapi/gstvaapitexture.c:
32674 Fix get-out conditions.
32676 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32678 * gst-libs/gst/vaapi/gstvaapitexture.c:
32679 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32680 The shared GL context in GstVaapiTexture is only useful for cases where TFP+FBO are used, thus avoiding the need fully preserve the states and call into glGet*() functions that need synchronization.
32682 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32684 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32687 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32689 * docs/reference/libs/libs-sections.txt:
32690 * gst-libs/gst/vaapi/Makefile.am:
32691 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32692 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32693 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32694 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32695 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32696 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32697 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32698 * gst-libs/gst/vaapi/gstvaapitexture.c:
32699 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32700 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32701 * tests/test-windows.c:
32702 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
32704 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32706 * gst-libs/gst/vaapi/Makefile.am:
32707 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32708 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32709 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32710 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32711 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32712 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32713 * gst-libs/gst/vaapi/gstvaapiimage.c:
32714 * gst-libs/gst/vaapi/gstvaapiobject.c:
32715 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32716 * gst-libs/gst/vaapi/gstvaapisurface.c:
32717 * gst-libs/gst/vaapi/gstvaapitexture.c:
32718 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32719 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32720 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32721 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
32723 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32725 * gst-libs/gst/vaapi/gstvaapitexture.c:
32726 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32727 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32728 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32729 Improve handling of GL contexts.
32731 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32736 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32739 Bump version for development.
32741 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32744 * debian.upstream/Makefile.am:
32745 * debian.upstream/control.in:
32746 Rename -dev package to libgstvaapi-dev.
32748 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32754 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32756 * gst-libs/gst/vaapi/gstvaapiutils.c:
32757 Fix build with VA-API < 0.30.
32759 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32762 * gst-libs/gst/vaapi/gstvaapicompat.h:
32763 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32764 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32765 * gst-libs/gst/vaapi/gstvaapitexture.c:
32766 * tests/test-display.c:
32767 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
32769 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32771 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32772 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32773 Add TFP and FBO helpers.
32775 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32777 * gst-libs/gst/vaapi/gstvaapiutils.c:
32778 * gst-libs/gst/vaapi/gstvaapiutils.h:
32779 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
32781 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32783 * gst-libs/gst/vaapi/gstvaapitexture.c:
32784 * gst-libs/gst/vaapi/gstvaapiutils.c:
32785 * gst-libs/gst/vaapi/gstvaapiutils.h:
32786 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32787 Use a shorter function name.
32789 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32791 * docs/reference/libs/libs-sections.txt:
32792 * gst-libs/gst/vaapi/gstvaapisurface.c:
32793 * gst-libs/gst/vaapi/gstvaapisurface.h:
32794 * gst-libs/gst/vaapi/gstvaapiutils.c:
32795 * gst-libs/gst/vaapi/gstvaapiutils.h:
32796 Add gst_vaapi_surface_query_status() wrapper.
32798 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32800 * docs/reference/plugins/Makefile.am:
32801 Fix leftover during migration.
32803 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32807 * docs/reference/plugins/Makefile.am:
32809 * gst/vaapiconvert/Makefile.am:
32810 * gst/vaapiconvert/gstvaapiconvert.c:
32811 * gst/vaapiconvert/gstvaapiconvert.h:
32812 * gst/vaapisink/Makefile.am:
32813 * gst/vaapisink/gstvaapisink.c:
32814 * gst/vaapisink/gstvaapisink.h:
32815 Rename to gst/ as sys/ was too vague.
32817 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32819 * gst-libs/gst/vaapi/gstvaapiimage.c:
32820 * gst-libs/gst/vaapi/gstvaapiimage.h:
32821 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32822 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32823 * gst-libs/gst/vaapi/gstvaapisurface.c:
32824 * gst-libs/gst/vaapi/gstvaapisurface.h:
32825 Try to not reference VA-API types directly.
32827 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32829 * sys/vaapisink/gstvaapisink.c:
32830 Fix reflection code to preserve aspect ratio.
32832 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32834 * sys/vaapisink/gstvaapisink.c:
32835 * sys/vaapisink/gstvaapisink.h:
32836 Fix fullscreen mode.
32838 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32840 * sys/vaapisink/gstvaapisink.c:
32841 * sys/vaapisink/gstvaapisink.h:
32842 Add OpenGL reflection effect ("use-reflection").
32844 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32847 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32848 Use a projection suitable for rotation around the Y axis.
32850 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32853 * sys/vaapisink/Makefile.am:
32854 * sys/vaapisink/gstvaapisink.c:
32855 * sys/vaapisink/gstvaapisink.h:
32856 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
32858 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32861 * debian.upstream/Makefile.am:
32862 * debian.upstream/control.in:
32863 * debian.upstream/libgstvaapi-glx.install.in:
32864 Add libgstvaapi-glx-0 package.
32866 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32868 * pkgconfig/Makefile.am:
32869 Really fix make distclean.
32871 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32873 * docs/reference/libs/Makefile.am:
32876 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32878 * pkgconfig/Makefile.am:
32879 Fix make distclean.
32881 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32883 * tests/Makefile.am:
32886 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32888 * docs/reference/libs/Makefile.am:
32889 * docs/reference/libs/libs.core.types:
32890 * docs/reference/libs/libs.glx.types:
32891 * docs/reference/libs/libs.x11.types:
32894 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32896 * sys/vaapisink/gstvaapisink.h:
32897 Fix build without GLX.
32899 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32904 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32906 * sys/vaapisink/Makefile.am:
32907 * sys/vaapisink/gstvaapisink.c:
32908 * sys/vaapisink/gstvaapisink.h:
32909 Add VA/GLX support to vaapisink.
32911 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32913 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32914 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32915 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32916 Add glXSwapBuffers() workaround for NVIDIA.
32918 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32920 * tests/Makefile.am:
32921 * tests/test-textures.c:
32922 Improve VA/GLX textures test.
32924 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32926 * gst-libs/gst/vaapi/gstvaapitexture.c:
32927 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32928 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32929 Fix texture rendering.
32931 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32933 * docs/reference/libs/libs-docs.xml.in:
32934 * docs/reference/libs/libs-sections.txt:
32935 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32936 * gst-libs/gst/vaapi/gstvaapitexture.c:
32939 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32941 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32942 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32943 Add gst_vaapi_window_glx_put_texture() helper.
32945 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32947 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32950 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32954 * tests/test-windows.c:
32957 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32959 * gst-libs/gst/vaapi/Makefile.am:
32960 * gst-libs/gst/vaapi/gstvaapitexture.c:
32961 * gst-libs/gst/vaapi/gstvaapitexture.h:
32962 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32963 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32964 Add initial VA/GLX texture abstraction though the API is not good enough yet.
32966 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32968 * docs/reference/libs/libs-sections.txt:
32969 * gst-libs/gst/vaapi/gstvaapiobject.c:
32970 * gst-libs/gst/vaapi/gstvaapiobject.h:
32971 Add gst_vaapi_object_{,un}lock_display() helpers.
32973 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32975 * tests/Makefile.am:
32978 * tests/test-windows.c:
32979 Factor out image utilities.
32981 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32983 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32984 MT-Safe: lock display.
32986 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32988 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32989 Make sure window resize completed prior to resizing the GL viewport.
32991 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32993 * gst-libs/gst/vaapi/Makefile.am:
32994 gstvaapicompat.h is a private header, don't install it.
32996 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
32998 * docs/reference/libs/libs-sections.txt:
32999 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33000 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33001 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33002 Add gst_vaapi_display_{sync,flush}() helpers.
33004 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33006 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33007 * sys/vaapisink/gstvaapisink.c:
33008 * sys/vaapisink/gstvaapisink.h:
33009 Add "synchronous" mode.
33011 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33013 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33014 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33015 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
33017 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33019 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33020 Restore GLX context only if there is one.
33022 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33024 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33025 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33026 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33027 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33028 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
33030 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33032 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33033 Check GstVaapiWindow::render() is available prior to calling it.
33035 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33037 * tests/Makefile.am:
33038 * tests/test-display.c:
33039 * tests/test-textures.c:
33040 Add VA/GLX display tests.
33042 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33045 * gst-libs/gst/vaapi/Makefile.am:
33048 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33050 * docs/reference/libs/Makefile.am:
33051 * docs/reference/libs/libs-docs.xml.in:
33052 * docs/reference/libs/libs-sections.txt:
33053 * docs/reference/libs/libs.types:
33054 Add missing API documentation.
33056 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33059 * gst-libs/gst/vaapi/Makefile.am:
33060 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33061 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33062 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33063 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33064 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33065 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33066 * pkgconfig/Makefile.am:
33067 * pkgconfig/gstreamer-vaapi-glx.pc.in:
33068 * tests/Makefile.am:
33069 * tests/test-textures.c:
33070 Add initial VA/GLX support.
33072 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33074 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33075 Add missing includes (for vaapi_check_status()).
33077 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33079 * gst-libs/gst/vaapi/gstvaapidebug.h:
33080 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
33082 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33084 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33085 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33086 Add gst_vaapi_window_x11_is_foreign_xid() helper.
33088 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33090 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33091 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33092 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33093 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33094 Allow derived classes to specify custom Visual and Colormap.
33096 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33098 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33099 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33100 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33101 Allow window creation with a specific visual (e.g. for GLX support).
33103 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33105 * gst-libs/gst/vaapi/gstvaapiimage.c:
33106 Fix return value on error (though it's the same in the end).
33108 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33110 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33111 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33112 Simplify initialization of VADisplay.
33114 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33117 Move __attribute__((visibility("hidden"))) check down.
33119 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33121 * docs/reference/libs/libs-sections.txt:
33122 * gst-libs/gst/vaapi/gstvaapiimage.c:
33123 * gst-libs/gst/vaapi/gstvaapiimage.h:
33124 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33125 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33126 * gst-libs/gst/vaapi/gstvaapisurface.c:
33127 * gst-libs/gst/vaapi/gstvaapisurface.h:
33128 * tests/test-surfaces.c:
33129 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
33131 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33133 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33134 Use the parent display object, no need to maintain another one.
33135 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
33137 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33139 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33140 Add more internal helpers.
33142 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33144 * gst-libs/gst/vaapi/gstvaapiimage.c:
33145 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33146 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33147 * gst-libs/gst/vaapi/gstvaapisurface.c:
33148 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33149 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33150 Rename to GST_VAAPI_OBJECT_DISPLAY().
33152 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33154 * docs/reference/libs/libs-sections.txt:
33155 * gst-libs/gst/vaapi/gstvaapiimage.c:
33156 * gst-libs/gst/vaapi/gstvaapiobject.c:
33157 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33158 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33159 * gst-libs/gst/vaapi/gstvaapisurface.c:
33160 * gst-libs/gst/vaapi/gstvaapitypes.h:
33161 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33162 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
33164 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33166 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33167 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33168 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33169 Make GstVaapiWindow* derive from GstVaapiObject.
33171 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33174 Factor out use gstreamer-vaapi (PACKAGE name).
33176 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33179 Improve versioning summary.
33181 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33183 * gst-libs/gst/vaapi/Makefile.am:
33184 gstvaapicompat.h is now a private header (not installed).
33186 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33188 * gst-libs/gst/vaapi/gstvaapiimage.c:
33189 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33190 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33191 * gst-libs/gst/vaapi/gstvaapiobject.c:
33192 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33193 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33194 Include gstvaapicompat.h in source files only, not headers.
33196 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33199 * gst-libs/gst/vaapi/Makefile.am:
33200 * sys/vaapiconvert/Makefile.am:
33201 * sys/vaapisink/Makefile.am:
33202 * tests/Makefile.am:
33203 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
33205 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33209 * gst-libs/gst/vaapi/Makefile.am:
33210 * gst-libs/gst/vaapi/gstvaapicompat.h:
33211 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33212 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33213 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33214 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33215 * gst-libs/gst/vaapi/gstvaapisurface.c:
33216 * gst-libs/gst/vaapi/gstvaapiutils.c:
33217 * gst-libs/gst/vaapi/gstvaapiutils.h:
33218 * pkgconfig/gstreamer-vaapi-x11.pc.in:
33219 * pkgconfig/gstreamer-vaapi.pc.in:
33220 * sys/vaapiconvert/Makefile.am:
33221 * sys/vaapisink/Makefile.am:
33222 * tests/Makefile.am:
33223 Add compatibility with the original VA-API 0.29.
33225 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33227 * gst-libs/gst/vaapi/gstvaapivalue.h:
33228 Add missing file (gstvaapivalue.h).
33230 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33232 * gst-libs/gst/vaapi/gstvaapiimage.c:
33233 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33234 * gst-libs/gst/vaapi/gstvaapisurface.c:
33235 Fix g_warning() invocation.
33237 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33239 * gst-libs/gst/vaapi/gstvaapisurface.c:
33240 Deassociate subpictures while destroying the surface.
33242 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33244 * gst-libs/gst/vaapi/gstvaapisurface.c:
33245 Fix destruction order of subpictures. They should be destroyed first.
33247 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33250 * gst-libs/gst/vaapi/gstvaapiimage.c:
33251 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33252 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33253 * tests/test-windows.c:
33254 Add support for AYUV format.
33256 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33258 * tests/test-windows.c:
33259 Simplify upload process and fallback to subpictures.
33261 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33263 * docs/reference/libs/libs-docs.xml.in:
33264 * docs/reference/libs/libs-sections.txt:
33265 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33268 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33270 * gst-libs/gst/vaapi/Makefile.am:
33271 * gst-libs/gst/vaapi/gstvaapiobject.c:
33272 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33273 * gst-libs/gst/vaapi/gstvaapitypes.h:
33274 * gst-libs/gst/vaapi/gstvaapivalue.c:
33275 Move GValue specific stuff to a dedicated file.
33277 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33279 * tests/test-surfaces.c:
33280 Cosmetics (lowercase for consistency).
33282 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33284 * gst-libs/gst/vaapi/gstvaapiobject.c:
33285 Cosmetics (vertical alignment).
33287 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33289 * gst-libs/gst/vaapi/gstvaapiobject.c:
33290 Fix return value on error.
33292 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33294 * docs/reference/libs/libs-sections.txt:
33295 * gst-libs/gst/vaapi/gstvaapiimage.c:
33296 * gst-libs/gst/vaapi/gstvaapiimage.h:
33297 * gst-libs/gst/vaapi/gstvaapiobject.c:
33298 * gst-libs/gst/vaapi/gstvaapiobject.h:
33299 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33300 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33301 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33302 * gst-libs/gst/vaapi/gstvaapisurface.c:
33303 * gst-libs/gst/vaapi/gstvaapisurface.h:
33304 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33305 * tests/test-surfaces.c:
33306 Move "id" down to the GstVaapiObject base.
33308 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33310 * gst-libs/gst/vaapi/gstvaapitypes.c:
33311 Cosmetics (drop extraneous empty line).
33313 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33315 * gst-libs/gst/vaapi/Makefile.am:
33316 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33317 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33318 Add GParamSpecs for GstVaapiID.
33320 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33322 * docs/reference/libs/libs.types:
33323 Drop gst_vaapi_id_get_type().
33325 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33327 * docs/reference/libs/libs-sections.txt:
33328 * gst-libs/gst/vaapi/gstvaapitypes.h:
33329 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
33331 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33333 * docs/reference/libs/libs-sections.txt:
33334 * docs/reference/libs/libs.types:
33335 * gst-libs/gst/vaapi/Makefile.am:
33336 * gst-libs/gst/vaapi/gstvaapitypes.c:
33337 * gst-libs/gst/vaapi/gstvaapitypes.h:
33338 Add GstVaapiID abstraction.
33340 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33342 * docs/reference/libs/libs.types:
33345 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33347 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33348 * gst-libs/gst/vaapi/gstvaapiimage.c:
33349 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33350 * gst-libs/gst/vaapi/gstvaapisurface.c:
33351 Drop useless include (<va/va_backend.h>).
33353 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33355 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33356 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
33358 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33360 * gst-libs/gst/vaapi/Makefile.am:
33361 * gst-libs/gst/vaapi/gstvaapiimage.c:
33362 * gst-libs/gst/vaapi/gstvaapiobject.c:
33363 * gst-libs/gst/vaapi/gstvaapiobject.h:
33364 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33365 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33366 * gst-libs/gst/vaapi/gstvaapisurface.c:
33367 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33368 Move private definitions and accessors to gstvaapiobject_priv.h.
33370 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33372 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33373 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33374 * gst-libs/gst/vaapi/gstvaapiimage.c:
33375 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33376 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33377 * gst-libs/gst/vaapi/gstvaapiobject.c:
33378 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33379 * gst-libs/gst/vaapi/gstvaapisurface.c:
33380 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33381 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33382 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33383 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33384 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33385 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33386 Fix short descriptions.
33388 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33392 * debian.upstream/Makefile.am:
33393 * debian.upstream/changelog.in:
33394 * debian.upstream/compat:
33395 * debian.upstream/control.in:
33396 * debian.upstream/copyright:
33397 * debian.upstream/gstreamer-vaapi-doc.install.in:
33398 * debian.upstream/gstreamer-vaapi.install.in:
33399 * debian.upstream/libgstvaapi-dev.install.in:
33400 * debian.upstream/libgstvaapi-x11.install.in:
33401 * debian.upstream/libgstvaapi.install.in:
33402 * debian.upstream/rules:
33403 Generate upstream packages through make deb.upstream.
33405 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33408 Bump version for development.
33410 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33412 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33413 Use a black background for new windows.
33415 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33420 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33423 * docs/reference/libs/libs.types:
33424 * gst-libs/gst/vaapi/Makefile.am:
33425 * gst-libs/gst/vaapi/gstvaapimarshal.list:
33426 * gst-libs/gst/vaapi/gstvaapiobject.c:
33427 * gst-libs/gst/vaapi/gstvaapiobject.h:
33428 * tests/test-surfaces.c:
33429 Add "destroy" signal.
33431 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33433 * docs/reference/libs/libs-docs.xml.in:
33434 Improve gst-plugins-vaapi Library reference template.
33436 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33438 * docs/reference/libs/libs-docs.xml.in:
33439 * docs/reference/libs/libs-sections.txt:
33440 * gst-libs/gst/vaapi/Makefile.am:
33441 * gst-libs/gst/vaapi/gstvaapiimage.c:
33442 * gst-libs/gst/vaapi/gstvaapiimage.h:
33443 * gst-libs/gst/vaapi/gstvaapiobject.c:
33444 * gst-libs/gst/vaapi/gstvaapiobject.h:
33445 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33446 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33447 * gst-libs/gst/vaapi/gstvaapisurface.c:
33448 * gst-libs/gst/vaapi/gstvaapisurface.h:
33449 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33450 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
33452 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33454 * sys/vaapisink/gstvaapisink.c:
33457 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33459 * sys/vaapisink/gstvaapisink.c:
33460 Make sure VA display is valid when created with an explicit "display" name.
33462 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33464 * sys/vaapisink/gstvaapisink.c:
33465 Use plain "display" property for the X11 display name.
33467 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33469 * sys/vaapiconvert/gstvaapiconvert.c:
33470 * sys/vaapisink/gstvaapisink.c:
33471 Document vaapiconvert & vaapisink plugins.
33473 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33476 * docs/reference/Makefile.am:
33477 * docs/reference/plugins/Makefile.am:
33478 * docs/reference/plugins/plugins-docs.xml.in:
33479 * docs/reference/plugins/plugins-overrides.txt:
33480 * docs/reference/plugins/plugins-sections.txt:
33481 * docs/reference/plugins/plugins.types:
33482 Add plugins documentation template.
33484 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33486 * sys/vaapisink/gstvaapisink.c:
33487 * sys/vaapisink/gstvaapisink.h:
33488 Don't export gst_vaapisink_get_display().
33490 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33493 * docs/reference/libs/libs-docs.xml.in:
33494 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33495 * gst-libs/gst/vaapi/gstvaapiimage.c:
33496 * gst-libs/gst/vaapi/gstvaapisurface.c:
33497 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33498 Drop introspection annotations since they require gtk-doc >= 1.12.
33500 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33502 * gst-libs/gst/vaapi/gstvaapisurface.c:
33503 Add note about the fact that the surface holds an extra reference to the subpicture.
33505 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33507 * gst-libs/gst/vaapi/gstvaapiimage.c:
33508 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33509 * gst-libs/gst/vaapi/gstvaapisurface.c:
33510 Improve debugging messages.
33512 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33514 * tests/test-windows.c:
33515 Unref subpicture earlier as the surface is supposed to hold a reference to it.
33517 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33519 * docs/reference/libs/libs-sections.txt:
33520 * gst-libs/gst/vaapi/gstvaapisurface.c:
33521 * gst-libs/gst/vaapi/gstvaapisurface.h:
33522 * tests/test-windows.c:
33523 Add gst_vaapi_surface_{,de}associate_subpicture() API.
33525 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33527 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33528 Wait for MapNotify or UnmapNotify events on foreign windows too.
33530 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33532 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33533 Check whether the foreign XID is mapped at binding time.
33535 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33537 * sys/vaapisink/gstvaapisink.c:
33538 Add missing includes.
33540 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33543 * debian/Makefile.am:
33544 * debian/control.in:
33545 * debian/gstreamer-vaapi-doc.install.in:
33549 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33551 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33552 Fix warnings (drop extraneous var).
33554 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33556 * docs/reference/libs/libs-sections.txt:
33557 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33558 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
33560 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33562 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33565 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33567 * gst-libs/gst/vaapi/Makefile.am:
33568 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33569 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33570 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
33571 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33572 Try to improve switch to fullscreen mode.
33574 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33576 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33577 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33578 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33579 Improve display locking and rework X event wait functions.
33581 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33583 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33584 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
33585 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
33587 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33589 * gst-libs/gst/vaapi/Makefile.am:
33590 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33591 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
33592 Add private API to set window size & fullscreen modes without triggering any notification or virtual functions. This is useful for derived class to fix up sizes whenever appropriate.
33594 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33596 * docs/reference/libs/libs-sections.txt:
33597 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33598 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33599 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
33601 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33603 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33604 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33605 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33606 Add gst_vaapi_window_get_display() to base.
33608 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33610 * docs/reference/libs/libs-docs.xml.in:
33611 * docs/reference/libs/libs-sections.txt:
33612 * gst-libs/gst/vaapi/Makefile.am:
33613 * gst-libs/gst/vaapi/gstvaapitypes.h:
33614 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33615 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33616 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33617 * sys/vaapisink/gstvaapisink.c:
33618 * sys/vaapisink/gstvaapisink.h:
33619 Add GstVaapiPoint & GstVaapiRectangle data structures.
33621 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33626 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33629 * sys/vaapisink/gstvaapisink.c:
33630 * sys/vaapisink/gstvaapisink.h:
33631 Allow `vaapisink` to render videos in fullscreen mode.
33633 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33635 * docs/reference/libs/libs-sections.txt:
33636 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33637 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33638 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33639 Add gst_vaapi_window_set_fullscreen() API.
33641 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33643 * sys/vaapisink/gstvaapisink.c:
33644 Size window so that to respect the video and pixel aspect ratio.
33646 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33648 * docs/reference/libs/libs-sections.txt:
33649 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33650 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33651 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33652 * tests/test-display.c:
33653 Add gst_vaapi_display_get_pixel_aspect_ratio().
33655 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33657 * docs/reference/libs/libs-sections.txt:
33660 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33662 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33663 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33664 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33665 * tests/test-display.c:
33666 Add display size accessors.
33668 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33671 * debian/control.in:
33672 Build-Requires: gstreamer-plugins-base >= 0.10.16.
33674 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33676 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33677 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33678 * gst-libs/gst/vaapi/gstvaapiimage.h:
33679 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33680 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33681 * gst-libs/gst/vaapi/gstvaapisurface.h:
33682 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33683 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33684 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33685 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33686 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33687 Fix documentation of *Class'es.
33689 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33691 * gst-libs/gst/vaapi/gstvaapiutils.c:
33692 * gst-libs/gst/vaapi/gstvaapiutils.h:
33693 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33694 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
33696 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33698 * docs/reference/libs/libs-sections.txt:
33699 * gst-libs/gst/vaapi/gstvaapisurface.h:
33700 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33701 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
33703 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33705 * docs/reference/libs/libs-sections.txt:
33706 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33707 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33708 * sys/vaapisink/gstvaapisink.c:
33709 * tests/test-windows.c:
33710 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
33712 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33714 * docs/reference/libs/Makefile.am:
33715 Fix make dist for --enable-gtk-doc builds.
33717 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33720 Improve autogen.sh.
33722 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33726 Generate gtk-doc.make from gtkdocize.
33728 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33733 * docs/Makefile.am:
33734 * docs/reference/Makefile.am:
33735 * docs/reference/libs/Makefile.am:
33736 * docs/reference/libs/libs-docs.xml.in:
33737 * docs/reference/libs/libs-overrides.txt:
33738 * docs/reference/libs/libs-sections.txt:
33739 * docs/reference/libs/libs.types:
33740 Document public API for libgstvaapi-*.so.*.
33742 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33744 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33745 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33746 Document GstVaapiVideoBuffer.
33748 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33750 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33751 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33752 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33753 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33754 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33755 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33756 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
33758 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33760 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33761 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33762 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33763 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33764 * gst-libs/gst/vaapi/gstvaapiimage.c:
33765 * gst-libs/gst/vaapi/gstvaapiimage.h:
33766 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33767 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33768 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33769 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33770 * gst-libs/gst/vaapi/gstvaapisurface.c:
33771 * gst-libs/gst/vaapi/gstvaapisurface.h:
33772 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33773 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33774 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33775 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33776 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33777 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33778 Add tedious documentation.
33780 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33782 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33783 Beautify append_formats().
33785 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33787 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33788 Simplify GstVaapiDisplay (use GArray).
33790 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33793 * sys/vaapiconvert/gstvaapiconvert.c:
33794 * sys/vaapiconvert/gstvaapiconvert.h:
33795 Factor out direct-rendering infrastructure.
33797 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33799 * sys/vaapiconvert/gstvaapiconvert.c:
33800 * sys/vaapiconvert/gstvaapiconvert.h:
33801 Allow user to specify inout-buffers & derive-image optimizations.
33803 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33805 * sys/vaapiconvert/gstvaapiconvert.c:
33806 Reduce number of debug messaged printed out.
33808 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33810 * sys/vaapiconvert/gstvaapiconvert.c:
33811 * sys/vaapiconvert/gstvaapiconvert.h:
33812 Add vaDeriveImage() optimization.
33814 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33816 * gst-libs/gst/vaapi/gstvaapiimage.c:
33817 Fix gst_vaapi_image_create() from a foreign VA image.
33819 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33821 * gst-libs/gst/vaapi/gstvaapiimage.c:
33822 * gst-libs/gst/vaapi/gstvaapiimage.h:
33823 * gst-libs/gst/vaapi/gstvaapisurface.c:
33824 * gst-libs/gst/vaapi/gstvaapisurface.h:
33825 Add gst_vaapi_surface_derive_image() API.
33827 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33829 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33830 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33831 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33832 Make it possible to bin an X11 window to GstVaapiWindowX11 with plain g_object_new() and "xid" property. i.e. get foreign window size in gst_vaapi_window_x11_create().
33834 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33836 * tests/test-windows.c:
33837 Try YV12 & I420 image formats too.
33839 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33841 * gst-libs/gst/vaapi/gstvaapiimage.c:
33842 Split map/unmap functions into internal functions that don't check preconditions.
33844 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33846 * gst-libs/gst/vaapi/gstvaapiimage.c:
33847 Improve gst_vaapi_image_new() sanity checks.
33849 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33851 * tests/test-windows.c:
33854 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33856 * sys/vaapiconvert/gstvaapiconvert.c:
33857 Check if our inout buffer is still alive or default to a separate output buffer.
33859 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33861 * sys/vaapiconvert/gstvaapiconvert.c:
33862 * sys/vaapiconvert/gstvaapiconvert.h:
33863 Factor out buffers negotiation and optimization checks.
33865 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33867 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33868 * gst-libs/gst/vaapi/gstvaapiimage.c:
33869 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33870 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33871 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33872 * sys/vaapiconvert/gstvaapiconvert.h:
33875 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33877 * gst-libs/gst/vaapi/gstvaapiimage.c:
33878 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
33880 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33882 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33883 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33884 * gst-libs/gst/vaapi/gstvaapiimage.c:
33885 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33886 * gst-libs/gst/vaapi/gstvaapisurface.c:
33887 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33888 Add VA display locking utilities.
33890 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33892 * sys/vaapisink/gstvaapisink.c:
33893 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
33895 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33897 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33898 * tests/test-windows.c:
33899 Don't show window by default during creation.
33901 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33903 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33904 Fix gst_vaapi_window_x11_destroy().
33906 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33908 * sys/vaapiconvert/gstvaapiconvert.c:
33909 * sys/vaapiconvert/gstvaapiconvert.h:
33910 Alias sink & src pad buffers whenever possible.
33912 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33914 * gst-libs/gst/vaapi/gstvaapiimage.c:
33915 * gst-libs/gst/vaapi/gstvaapiimage.h:
33916 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
33918 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33920 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33921 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33922 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
33924 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33926 * sys/vaapiconvert/gstvaapiconvert.c:
33927 Fix image & surface size cache.
33929 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33932 Move gstreamer-vaapi package versioning to the top.
33934 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33937 Bump version for development.
33939 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33942 Cosmetics (shorten lines).
33944 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33950 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33952 * debian/Makefile.am:
33953 * debian/changelog.in:
33955 * debian/control.in:
33956 * debian/copyright:
33957 * debian/gstreamer-vaapi.install.in:
33958 * debian/libgstvaapi-dev.install.in:
33959 * debian/libgstvaapi-x11.install.in:
33960 * debian/libgstvaapi.install.in:
33962 Add debian packaging.
33964 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33968 Add debian packaging.
33970 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33972 * pkgconfig/Makefile.am:
33973 Silence GNU make extensions warning.
33975 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33978 Add AM_PROG_CC_C_O, thus fixing this warning: tests/Makefile.am:16: compiling `test-display.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.ac'
33980 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33984 * pkgconfig/Makefile.am:
33985 * pkgconfig/gstreamer-vaapi-x11.pc.in:
33986 * pkgconfig/gstreamer-vaapi.pc.in:
33987 Add pkgconfig files.
33989 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33992 * gst-libs/gst/vaapi/Makefile.am:
33993 * sys/vaapisink/Makefile.am:
33994 * tests/Makefile.am:
33995 Split X11 support to libgstvaapi-x11-*.so.*
33997 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33999 * gst-libs/gst/vaapi/Makefile.am:
34000 Don't install private headers.
34002 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34004 * gst-libs/gst/vaapi/gstvaapidebug.h:
34005 * gst-libs/gst/vaapi/gstvaapiutils.c:
34006 * gst-libs/gst/vaapi/gstvaapiutils.h:
34009 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34011 * gst-libs/gst/vaapi/Makefile.am:
34012 * gst-libs/gst/vaapi/gstvaapidebug.h:
34013 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34014 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34015 * gst-libs/gst/vaapi/gstvaapiimage.c:
34016 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34017 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34018 * gst-libs/gst/vaapi/gstvaapisurface.c:
34019 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
34020 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34021 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34022 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34023 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34024 Rename vaapi_debug.h to gstvaapidebug.h.
34026 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34028 * gst-libs/gst/vaapi/Makefile.am:
34029 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34030 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34031 * gst-libs/gst/vaapi/gstvaapiimage.c:
34032 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34033 * gst-libs/gst/vaapi/gstvaapisurface.c:
34034 * gst-libs/gst/vaapi/gstvaapiutils.c:
34035 * gst-libs/gst/vaapi/gstvaapiutils.h:
34036 * gst-libs/gst/vaapi/vaapi_debug.h:
34037 Move vaapi_utils.* to gstvaapiutils.*
34039 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34041 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34042 Cosmetics (remove an extra line).
34044 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34046 * gst-libs/gst/vaapi/Makefile.am:
34047 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34048 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34049 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34050 Move X11 utilties to gstvaapiutils_x11.[ch].
34052 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34054 * gst-libs/gst/vaapi/Makefile.am:
34055 * gst-libs/gst/vaapi/gstvaapivideosink.c:
34056 * gst-libs/gst/vaapi/gstvaapivideosink.h:
34057 * sys/vaapiconvert/gstvaapiconvert.c:
34058 * sys/vaapisink/gstvaapisink.c:
34059 Rename GstVaapiSinkBase to GstVaapiVideoSink.
34061 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34064 * tests/Makefile.am:
34065 * tests/examples/Makefile.am:
34066 * tests/examples/generic/Makefile.am:
34067 * tests/test-display.c:
34068 * tests/test-surfaces.c:
34069 * tests/test-windows.c:
34070 Move tests to top-level tests/ directory.
34072 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34074 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34075 * gst-libs/gst/vaapi/gstvaapiimage.c:
34076 * sys/vaapiconvert/gstvaapiconvert.c:
34077 * sys/vaapiconvert/gstvaapiconvert.h:
34078 Handle I420 formats internally in GstVaapiImage.
34080 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34082 * sys/vaapiconvert/gstvaapiconvert.c:
34083 * sys/vaapiconvert/gstvaapiconvert.h:
34084 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
34086 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34088 * gst-libs/gst/vaapi/gstvaapiimage.c:
34089 Implement I420 and YV12 if the underlying implementation does not.
34091 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34093 * sys/vaapiconvert/Makefile.am:
34094 * sys/vaapiconvert/gstvaapiconvert.c:
34095 * sys/vaapiconvert/gstvaapiconvert.h:
34096 Add initial vaapiconvert plugin.
34098 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34100 * sys/vaapisink/gstvaapisink.c:
34101 * sys/vaapisink/gstvaapisink.h:
34104 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34106 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34109 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34111 * tests/examples/generic/test-windows.c:
34112 Generate R/G/B rects.
34114 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34116 * gst-libs/gst/vaapi/gstvaapisurface.c:
34117 * gst-libs/gst/vaapi/gstvaapisurface.h:
34118 Add gst_vaapi_surface_sync().
34120 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34122 * gst-libs/gst/vaapi/gstvaapiimage.c:
34123 Cosmetics (reverse args order).
34125 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34127 * gst-libs/gst/vaapi/gstvaapiimage.c:
34128 * gst-libs/gst/vaapi/gstvaapiimage.h:
34129 * gst-libs/gst/vaapi/gstvaapisurface.c:
34132 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34134 * gst-libs/gst/vaapi/Makefile.am:
34135 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34136 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34137 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34138 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34139 * tests/examples/generic/Makefile.am:
34140 * tests/examples/generic/test-windows.c:
34141 Add VA/X11 window abstraction.
34143 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34145 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34146 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34147 Add VA and X11 display accessors.
34149 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34151 * gst-libs/gst/vaapi/gstvaapiimage.c:
34154 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34156 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34159 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34161 * gst-libs/gst/vaapi/gstvaapiimage.c:
34162 * gst-libs/gst/vaapi/gstvaapiimage.h:
34163 * gst-libs/gst/vaapi/gstvaapisurface.c:
34164 * gst-libs/gst/vaapi/gstvaapisurface.h:
34165 Add gst_vaapi_{get,put}_image() API.
34167 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34169 * gst-libs/gst/vaapi/gstvaapiimage.c:
34170 * gst-libs/gst/vaapi/gstvaapiimage.h:
34171 Add gst_vaapi_image_update_from_buffer() helper.
34173 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34175 * sys/vaapisink/Makefile.am:
34176 * sys/vaapisink/gstvaapisink.c:
34177 * sys/vaapisink/gstvaapisink.h:
34178 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
34180 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34182 * tests/examples/generic/Makefile.am:
34183 * tests/examples/generic/test-surfaces.c:
34186 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34188 * gst-libs/gst/vaapi/Makefile.am:
34189 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34190 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34191 Add basic GstVaapiVideoBuffer.
34193 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34195 * gst-libs/gst/vaapi/Makefile.am:
34196 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34197 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
34198 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
34199 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34200 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34201 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34202 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
34204 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34206 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34207 Simplify format conversion code.
34209 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34211 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34212 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34213 Add gst_vaapi_image_format_from_caps() helper.
34215 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34217 * gst-libs/gst/vaapi/Makefile.am:
34218 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
34219 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34220 Add VA surface pool (lazy allocator).
34222 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34224 * gst-libs/gst/vaapi/gstvaapisurface.c:
34225 * gst-libs/gst/vaapi/gstvaapisurface.h:
34226 Add gst_vaapi_surface_get_size() helper.
34228 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34230 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34231 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
34233 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34235 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34236 Reset display-name if the user provided his own X11 display.
34238 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34240 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34241 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34242 * tests/examples/generic/test-display.c:
34243 Add gst_vaapi_display_x11_new_with_display() API.
34245 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34247 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34248 * gst-libs/gst/vaapi/gstvaapiimage.h:
34249 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34250 * gst-libs/gst/vaapi/gstvaapisurface.h:
34251 Fix *_GET_CLASS() definitions...
34253 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34255 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34256 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34257 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34258 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34259 * tests/examples/generic/test-display.c:
34260 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
34262 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34264 * gst-libs/gst/vaapi/gstvaapisurface.c:
34265 * gst-libs/gst/vaapi/gstvaapisurface.h:
34266 Use GstVaapiChromaType abstraction.
34268 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34270 * gst-libs/gst/vaapi/gstvaapiimage.c:
34271 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34272 * gst-libs/gst/vaapi/gstvaapisurface.c:
34273 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
34275 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34277 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34278 Don't warn on failure, just return an appropriate error or value.
34280 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34282 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34283 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34284 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34285 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
34287 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34289 * gst-libs/gst/vaapi/Makefile.am:
34290 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
34291 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
34292 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
34294 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34296 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34297 * gst-libs/gst/vaapi/gstvaapiimage.c:
34298 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34299 * gst-libs/gst/vaapi/gstvaapisurface.c:
34300 * gst-libs/gst/vaapi/vaapi_debug.h:
34303 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34305 * gst-libs/gst/vaapi/gstvaapiimage.c:
34306 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34307 Fix GstVaapiImage and GstVaapiSubpicture initialization.
34309 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34311 * gst-libs/gst/vaapi/gstvaapisurface.c:
34312 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
34314 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34316 * tests/examples/generic/test-display.c:
34319 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34321 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34322 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34323 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34324 Fix GstVaapiDisplay initialization.
34326 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34328 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34329 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34330 Get VA image & subpicture formats as GstCaps.
34332 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34334 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34335 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34336 Add helper to convert from GstVaapiImageFormat to GstCaps.
34338 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34340 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34341 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34342 * gst-libs/gst/vaapi/gstvaapisurface.c:
34343 Cosmetics (drop unused variables).
34345 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34348 * sys/vaapiconvert/Makefile.am:
34349 * sys/vaapiconvert/gstvaapiconvert.c:
34350 * sys/vaapiconvert/gstvaapiconvert.h:
34351 * sys/vaapisink/Makefile.am:
34352 * sys/vaapisink/gstvaapisink.c:
34353 * sys/vaapisink/gstvaapisink.h:
34354 Add boilerplate for vaapiconvert and vaapisink elements.
34356 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34360 * sys/vaapiconvert/Makefile.am:
34361 Add vaapiconvert element hierarchy.
34363 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34365 * sys/vaapisink/Makefile.am:
34366 Rename to vaapisink.
34368 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34370 * gst-libs/gst/vaapi/gstvaapisurface.c:
34371 Shorter code (and more correct).
34373 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34375 * gst-libs/gst/vaapi/gstvaapisurface.c:
34376 * gst-libs/gst/vaapi/gstvaapisurface.h:
34377 Add helper to get GstVaapiDisplay from a surface.
34379 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34381 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34382 Fix subpicture formats list length.
34384 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34386 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34387 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34388 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
34390 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34392 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34393 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34394 Cosmetics (more checks, includes).
34396 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34398 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34399 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34400 Really add VA subpicture abstraction.
34402 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34404 * gst-libs/gst/vaapi/Makefile.am:
34405 * gst-libs/gst/vaapi/gstvaapiimage.c:
34406 * gst-libs/gst/vaapi/gstvaapiimage.h:
34407 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34408 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34409 * gst-libs/gst/vaapi/gstvaapisurface.c:
34410 * gst-libs/gst/vaapi/gstvaapisurface.h:
34411 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
34413 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34416 * gst-libs/gst/vaapi/Makefile.am:
34417 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34418 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34419 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34420 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34421 * gst-libs/gst/vaapi/vaapi_debug.h:
34422 * gst-libs/gst/vaapi/vaapi_utils.c:
34423 * gst-libs/gst/vaapi/vaapi_utils.h:
34424 * tests/examples/generic/Makefile.am:
34425 * tests/examples/generic/test-display.c:
34426 Add initial VA display abstraction.
34428 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34432 * tests/Makefile.am:
34433 * tests/examples/Makefile.am:
34434 * tests/examples/generic/Makefile.am:
34435 Add tests infrastructure.
34437 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34440 Clean up VA-API checks.
34442 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34445 Check for __attribute__((visibility("hidden"))).