1 === release 1.19.90 ===
3 2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7 * gstreamer-vaapi.doap:
11 2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
14 Update ChangeLogs for 1.19.90
16 2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
20 meson: Add explicit check: kwarg to all run_command() calls
21 This is required since Meson 0.61.0, and causes a warning to be
23 https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
24 https://github.com/mesonbuild/meson/issues/9300
25 This exposed a bunch of places where we had broken run_command()
26 calls, unnecessary run_command() calls, and places where check: true
28 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
30 2022-01-04 16:19:44 +0800 He Junyan <junyan.he@intel.com>
32 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33 vaapi: av1dec: Use named profiles to replace the numeric ones.
34 Use named AV1 profiles (i.e., main, high) to replace the old "0"
36 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
38 2021-12-01 15:36:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
40 * gst/vaapi/gstvaapidecodebin.c:
41 vaapidecodebin: Misc enhancements.
42 - Use GST_WARNING rather than g_critical
43 - Replace gst_ghost_pad_new_from_template() with
44 gst_ghost_pad_new() to avoid using the template.
45 - Declare extern variable
46 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
48 2021-12-01 12:26:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
50 * gst/vaapi/gstvaapidecode.c:
51 vaapidecode: Autogenerate caps template.
52 vaapidecode is used in vaapidecodebin and it exposes all the
53 theoretically supported caps, but that slows down autoplug. With this
54 autplug is negotiated faster, giving more option to decodebin to select
56 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
58 2021-11-16 17:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
60 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
61 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
62 vaapi: libs: Use unsized arrays as parameters.
63 Instead of defining a sized array for function signature, use it
64 unsized (a pointer alias, basically). In this way clang warning is
66 warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]
67 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
69 2021-11-16 17:21:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
72 vaapi: meson: Fail if static build.
73 And initialize the plugin array.
74 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
76 2021-11-15 16:38:34 +0800 Ung, Teng En <teng.en.ung@intel.com>
78 * gst/vaapi/gstvaapipostproc.c:
79 vaapipostproc: fix mising metadata when using system
80 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1325>
82 2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
87 === release 1.19.3 ===
89 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
94 * gstreamer-vaapi.doap:
98 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
101 Update ChangeLogs for 1.19.3
103 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
105 * tests/check/meson.build:
106 meson: update for meson.build_root() and .build_source() deprecation
107 -> use meson.project_build_root() or .global_build_root() instead.
108 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
110 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
113 * gst-libs/gst/vaapi/meson.build:
115 * tests/check/meson.build:
116 meson: update for dep.get_pkgconfig_variable() deprecation
117 ... in favour of dep.get_variable('foo', ..) which in some
118 cases allows for further cleanups in future since we can
119 extract variables from pkg-config dependencies as well as
120 internal dependencies using this mechanism.
121 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
123 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
126 meson: bump meson requirement to >= 0.59
127 For monorepo build and ugly/bad, for advanced feature
128 option API like get_option('xyz').required(..) which
129 we use in combination with the 'gpl' option.
130 For rest of modules for consistency (people will likely
131 use newer features based on the top-level requirement).
132 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
134 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
137 Docs: Fix a typo for Intel's vaapi driver name.
138 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
140 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
143 doc: update IRC links to OFTC
144 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
146 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
150 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
152 === release 1.19.2 ===
154 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
159 * gstreamer-vaapi.doap:
163 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
165 * gst/vaapi/gstvaapidecode.c:
166 vaapi: decoder: modify the condition to judge whether dma buffer is supported
167 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
168 return false even if this platform support the mem_type dma buffer.
169 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
170 on Gen12(such as TGL).
171 Without this patch, The command such as:
172 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
173 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
174 will return not-negotiated.
175 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
176 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
178 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
180 * gst-libs/gst/vaapi/gstvaapidisplay.c:
181 * gst/vaapi/gstvaapivideocontext.c:
182 Display: Add a property to export the VA display handle.
183 Just like what we do in VA plugins. The display can be seen as a
184 generic gst object and we can add a property to get the internal
186 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
188 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
190 * gst/vaapi/gstvaapivideomemory.c:
191 * gst/vaapi/gstvaapivideomemory.h:
192 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
193 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
194 peek the surface of the VA buffers. The old flag 0 just peek the
195 surface proxy, which may not be convenient for the users who do not
196 want to include our headers.
197 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
199 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
201 * gst/vaapi/gstvaapi.c:
202 * gst/vaapi/gstvaapidecode.c:
203 Revert "vaapi: Demote vaapidecodebin to rank NONE."
204 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
205 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
207 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
209 * gst/vaapi/gstvaapiencode.c:
210 plugins: encode: fix a deadlock because of _drain()
211 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
212 whose context does not hold the stream lock of the encoder. The
213 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
214 lock count to the stream lock of encoder and causes hang later.
215 We just remove the gst_vaapiencode_drain() and expand its logic
216 correctly according to the lock/unlock context.
217 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
219 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
221 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
222 libs: decoder: av1: Clean the film_grain_info field.
223 We need to clean all film_grain_info fields when the film grain
224 feature is not enabled. It may have random data because the picture
225 parameter buffer is not cleaned.
226 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
228 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
230 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
231 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
232 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
233 The MPEG2 spec has amendment 3 to introduce a new level highP, which
234 is used for 1080@50p/60p streams. We need to add this level to avoid
235 encoding failure because of the level check.
237 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
239 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
241 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
242 Decoder: H264: Add the support for frame packing arrangement SEI message.
243 Frame packing arrangement SEI message is an alternative simple stereo 3D
244 manner for AVC. We need to recognize that SEI message and report the correct
246 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
248 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
250 * gst-libs/gst/vaapi/gstvaapifilter.c:
252 Use g_memdup2() where available and add fallback for older GLib versions
253 Alloc size is based on existing allocations and struct sizes.
254 g_memdup() is deprecated since GLib 2.68 and we want to avoid
255 deprecation warnings with recent versions of GLib.
256 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
258 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
263 === release 1.19.1 ===
265 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
270 * gstreamer-vaapi.doap:
274 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
276 * gst/vaapi/gstvaapi.c:
277 * gst/vaapi/gstvaapidecode.c:
278 vaapi: Demote vaapidecodebin to rank NONE.
279 One of the main reasons of vaapidecodebin was because it mitigated the
280 possible surface exhaustion. But that problem is currently
281 solved. Nowadays, vaapidecodebin brings more problems than it
282 solves. Thus this patch demotes vaapidecodebin to NONE rank while
283 bumping PRIMARY + 1 the most common decoders.
284 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
286 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
288 * gst/vaapi/gstvaapi.c:
289 * gst/vaapi/gstvaapioverlay.c:
290 plugins: Demote rank of vaapipostproc and vaapioverlay.
291 Since almost all video filters have rank NONE, these both elements
293 This is useful for autovideoconvert and other bins, and users might
294 force to use these by setting the environment variable
295 GST_PLUGIN_FEATURE_RANK.
296 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
298 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
300 * tests/check/elements/vaapioverlay.c:
301 Use gst_element_request_pad_simple...
302 Instead of the deprecated gst_element_get_request_pad.
303 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
305 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
307 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
308 libs: encoder: VP9: fix > 4k encode fail issue
309 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
310 width of a tile in units of superblocks. So the max width of one tile
311 should not be larger than 64x64=4096. When the width exceeds 4k, we
312 need to split it into multiple tiles in columns. The current vp9 encoder
313 does not handle this correctly.
315 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
316 vaapivp9enc ! fakesink
318 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
320 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
322 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
323 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
324 Otherwise user will be misled that the specified device is using
325 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
326 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
328 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
330 * gst-libs/gst/vaapi/gstvaapiencoder.c:
331 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
332 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
333 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
334 If ROI is enabled, the CUs within the ROI region may have different
335 QP from the other part of the picture. This needs us to enable the
336 cu_qp_delta_enabled_flag even in the CQP mode.
337 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
339 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
341 * gst-libs/gst/vaapi/gstvaapicontext.c:
342 * gst-libs/gst/vaapi/gstvaapicontext.h:
343 * gst-libs/gst/vaapi/gstvaapiencoder.c:
344 * gst-libs/gst/vaapi/gstvaapifilter.c:
345 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
346 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
347 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
348 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
349 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
350 * gst-libs/gst/vaapi/gstvaapivalue.c:
351 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
352 * gst/vaapi/gstvaapipluginbase.c:
353 * gst/vaapi/gstvaapisink.c:
354 * gst/vaapi/gstvaapisink.h:
355 * gst/vaapi/gstvaapivideocontext.c:
356 * gst/vaapi/gstvaapivideomemory.c:
357 * tests/internal/simple-decoder.c:
358 gst: don't use volatile to mean atomic
359 volatile is not sufficient to provide atomic guarantees and real atomics
360 should be used instead. GCC 11 has started warning about using volatile
361 with atomic operations.
362 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
363 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
364 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
366 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
368 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
369 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
370 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
371 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
373 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
375 * gst/vaapi/gstvaapipostproc.c:
376 plugins: postproc: Fix a problem of propose_allocation when passthrough.
377 We should query the downstream element to answer a precise allocation
378 query when the passthrough mode is enabled.
379 The current way still decides the allocation by the postproc itself. The
381 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
382 vaapipostproc ! fakevideosink silent=false sync=true
383 will lose some info such as the GST_VIDEO_META_API_TYPE.
384 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
386 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
388 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
389 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
390 * gst/vaapi/gstvaapivideocontext.c:
391 libs: display: drm: support gst.vaapi.app.Display context for drm backend
392 Attributes for drm backend:
393 - va-display : ponter of VADisplay
394 - drm-device-fd : the DRM device file descriptor
395 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
397 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
400 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
401 libs: display: drm: allow user specify a drm device via an env variable
402 Currently the default drm device is always used on a system with
403 multiple drm devices. This patch allows user to specify the required
404 drm device via GST_VAAPI_DRM_DEVICE env variable
406 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
407 vaapih264enc ! fakesink
408 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
410 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
412 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
413 libs: display: drm: fix set_device_path_from_fd
414 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
415 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
416 so we can't get the right device path. Running test-display will get the
418 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
420 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
421 issue because a special permission is required for SET_VERSION ioctl.
422 This patch retrieves the device path from file descriptor via
424 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
425 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
427 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
429 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
430 glx: Iterate over FBConfig and select 8 bit color size
431 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
432 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
433 over it to find the correct config with supported values.
434 This also adds 8 bit alpha size to the framebuffer configuration which is
435 required to get it working properly.
436 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
438 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
440 * gst-libs/gst/vaapi/gstvaapiutils.c:
441 vaapipostproc: fix code style.
442 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
444 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
446 * gst-libs/gst/vaapi/gstvaapidisplay.c:
447 * gst-libs/gst/vaapi/gstvaapidisplay.h:
448 * gst-libs/gst/vaapi/gstvaapifilter.c:
449 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
450 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
452 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
454 * gst-libs/gst/vaapi/gstvaapiutils.c:
455 vaapipostproc: Added gstreamer BT2020 color standard support.
456 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
458 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
460 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
461 decoder: AV1: Fix a static analysis problem of update_state().
462 No need to check the picture pointer after we have already dereferenced it.
464 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
466 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
468 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
469 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
470 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
471 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
472 The AV1 film_graim feature needs two surfaces the same time for
473 decoding. One is for recon surface which will be used as reference
474 later, and the other one is for display. The GstVaapiPicture should
475 contain the surface for display, while the vaBeginPicture() need
476 the recon surface as the target.
477 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
479 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
481 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
483 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
484 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
485 * gst-libs/gst/vaapi/gstvaapiprofile.c:
486 * gst-libs/gst/vaapi/gstvaapiprofile.h:
487 * gst-libs/gst/vaapi/gstvaapiutils.c:
488 * gst-libs/gst/vaapi/meson.build:
489 * gst/vaapi/gstvaapidecode.c:
491 libs: decoder: AV1: Add the av1 decoder support.
492 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
494 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
496 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
497 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
498 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
499 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
500 libs: codecobject: Add number of elements when create codec object.
501 One slice data may need several slice parameter buffers at one time.
502 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
504 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
506 * gst/vaapi/gstvaapidecodebin.c:
507 * gst/vaapi/gstvaapipluginbase.c:
508 * gst/vaapi/gstvaapivideobufferpool.c:
509 vaapi: use gst_clear_object instead of g_clear_object
510 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
512 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
514 * gst/vaapi/gstvaapiencode.c:
515 plugins: encode: unlock the stream lock before _flush()
516 The current encoder will hang when EOS comes. When we call the
517 gst_vaapi_encoder_encode_and_queue(), we should release the stream
518 lock, just like what we do in gst_vaapiencode_handle_frame().
519 The deadlock happens when: The input thread holding the stream lock
520 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
521 buffer, while the output thread which holding the coded buffer resource
522 is acquiring the stream lock in _push_frame() to push the data to
524 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
526 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
528 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
529 libs: encoder: H264: Fix one assert in get_pending_reordered().
530 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
531 case for HIERARCHICAL_B mode. The pipeline:
532 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
533 keyframe-period=32 ! fakesink
535 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
536 assertion failed: (count != 0)
537 The last few B frames are not fetched in correct order when HIERARCHICAL_B
539 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
540 make the last several frames encoded in reverse order. The NAL of last few
541 frames come in reverse order in the bit stream, though it can still output
543 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
545 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
547 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
548 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
549 libs: encoder: H265: Add screen content coding extensions support.
550 In scc mode, the I frame can ref to itself and it needs the L0 reference
551 list enabled. So we should set the I frame to P_SLICE type. We do not need
552 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
553 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
554 the driver consider the current frame as reference. For bits conformance,
555 the NumRpsCurrTempList0 should be incremented by one to include the current
556 picture as the reference frame. We manually do it when packing the slice header.
558 gst-launch-1.0 videotestsrc num-buffers=10 ! \
559 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
560 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
561 filesink location=out.265
562 Can be used to specify that the encoder should use SCC profiles.
563 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
565 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
567 * gst/vaapi/gstvaapiencode_vp9.c:
568 plugin: encode: vp9: Implement the set_config().
569 We store the allowed profiles list to encoder in set_config().
570 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
572 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
574 * gst/vaapi/gstvaapiencode_vp9.c:
575 plugin: encode: vp9: Add the profile into output caps.
576 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
578 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
580 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
581 libs: encoder: vp9: no need to ensure_hw_profile.
582 Once we decide the profile and can get the valid entrypoint for
583 that profile, hw must already support this profile/entrypoint pair.
584 No need to check it again in set_context_info().
585 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
587 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
589 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
590 libs: encoder: vp9: Improve the manner to decide the profile.
591 We should decide the VP9 encoder's profile based on the chroma and
592 depth of the input format, then make sure it is included in the
594 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
596 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
598 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
599 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
600 libs: util: vpx: add get_chroma_format_idc for VP9
601 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
603 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
605 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
606 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
607 libs: encoder: vp9: Add allowed_profiles.
608 We need the allowed_profiles to store the allowed profiles in down
611 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
613 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
615 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
617 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
619 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
620 libs: decoder: H265: Fix a typo in scc reference setting.
621 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
623 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
625 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
626 * gst-libs/gst/vaapi/gstvaapiprofile.c:
627 * gst-libs/gst/vaapi/gstvaapiprofile.h:
628 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
629 * gst-libs/gst/vaapi/video-format.c:
630 * gst/vaapi/gstvaapidecode.c:
631 libs: decoder: H265: Add MAIN_422_12 profile supporting.
632 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
634 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
636 * gst-libs/gst/vaapi/gstvaapiimage.c:
637 * gst-libs/gst/vaapi/video-format.c:
638 * gst-libs/gst/vaapi/video-format.h:
639 video-format: Add Y212_LE format.
640 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
641 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
643 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
645 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
647 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
648 * gst-libs/gst/vaapi/gstvaapiprofile.c:
649 * gst-libs/gst/vaapi/gstvaapiprofile.h:
650 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
651 * gst-libs/gst/vaapi/video-format.c:
652 * gst/vaapi/gstvaapidecode.c:
653 libs: decoder: H265: Add MAIN_444_12 profile supporting.
654 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
656 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
658 * gst-libs/gst/vaapi/gstvaapiimage.c:
659 * gst-libs/gst/vaapi/video-format.c:
660 * gst-libs/gst/vaapi/video-format.h:
661 video-format: Add Y412_LE format.
662 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
663 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
665 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
667 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
669 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
670 libs: decoder: h265: fill missing predictor_palette_size field.
671 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
672 forgotten and need to be filled when streams have palettes.
673 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
675 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
677 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
678 libs: utils: h265: Use get_profile_from_sps to get profile.
679 We now use gst_h265_get_profile_from_sps() to replace the old way
680 of gst_h265_profile_tier_level_get_profile() to get more precise
681 profile. The new function consider the unstandard cases and give
682 a more suitable profile decision.
683 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
685 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
687 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
688 libs: decoder: vp9: 0xff segment pred probs if no temporal update
689 According to the spec (6.2.11 Segmentation params syntax)
690 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
691 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
693 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
695 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
696 libs: decoder: vp9: avoid reference rewriting
697 The removed code set all the reference frames to the current frame it is a key
698 one, but later, all the reference frames were rewritten with the decoded picture
699 buffers or VA_INVALID_SURFACE if they were not available.
700 Basically, all this time the first reference frame assignment has been ignored,
701 and it's not described by the spec, and this patch removes that code.
702 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
704 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
706 * gst/vaapi/gstvaapidecode.c:
707 decoder: don't reply src caps query with allowed if pad is fixed
708 If the pad is already fixed the caps query have to be reply with the
709 current fixed caps. Otherwise the query has to be replied with the
710 autogeneratd src caps.
711 This path fix this by falling back to the normal caps query processing
712 if the pad is already fixed. Otherwise it will fetch the allowed src
714 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
716 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
718 * gst/vaapi/gstvaapidecode.c:
719 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
720 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
722 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
724 * gst/vaapi/gstvaapisink.c:
725 vaapisink: when updating the caps, reset rotation
726 When an element upstream changes settings (e.g. crop), new caps are sent
727 to vaapisink. When vaapisink was rotating the image, it needs to
728 re-evaluate if the sink needs to rotate the image.
729 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
731 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
734 ci: include template from gst-ci master branch again
736 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
741 === release 1.18.0 ===
743 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
749 * gstreamer-vaapi.doap:
753 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
755 * gst-libs/gst/vaapi/gstvaapifilter.c:
756 Update for gst_video_transfer_function_*() function renaming
757 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
759 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
761 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
762 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
763 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
764 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
765 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
767 === release 1.17.90 ===
769 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
774 * gstreamer-vaapi.doap:
778 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
780 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
781 libs: surface: egl: guard memory type
782 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
784 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
786 * gst/vaapi/gstvaapidecode.c:
787 plugin: decode: Fix two mem leaks because of caps.
788 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
790 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
792 * gst/vaapi/gstvaapivideomemory.c:
793 plugin: allocator: No need to ref allocator when create mem.
794 We do not need to ref the allocator when creating GstVaapiVideoMemory
795 kind memory, and then release it in _free(). The framework already
797 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
799 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
801 * gst/vaapi/gstvaapiencode_h264.c:
802 vaapiencode: h264: ignore level without breaking negotiation
803 Since commit 9f627ef2 if the user sets level in the encoder src caps
804 the caps negotiation is rejected.
805 But since the same commit the same encoder set the autoconfigured
806 level in caps. Some change in the base class might fixed the operation
807 order so now the caps are set and later negotiated.
808 This patch removes the level check.
810 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
812 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
814 * gst-libs/gst/vaapi/egl_vtable.h:
815 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
816 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
817 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
818 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
819 This code path is used when frames are rendered as textures through
820 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
821 Originally the EGLImage was exported as GEM, which was handled by
822 Intel drivers, but Gallium ones cannot create VA surfaces from
823 GEM buffers, only DMABuf.
824 This patch checks the memory types supported by VA driver to choose
825 the render the EGLImages from GEM or DMABuf, because GEM is still
826 better where supported.
827 DMABuf is well handled either by intel-vaapi-driver and gallium.
829 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
831 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
833 * gst-libs/gst/vaapi/gstvaapifilter.c:
834 * gst-libs/gst/vaapi/gstvaapifilter.h:
835 libs: filter: gst_vaapi_filter_get_memory_types()
836 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
838 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
840 * gst/vaapi/gstvaapipluginbase.c:
841 * gst/vaapi/gstvaapipluginbase.h:
842 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
843 Since nobody uses it, just remove it.
844 Thus extract_allowed_surface_formats() is refactored to attend only
845 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
846 Now a surface is created when the image chorma is different from the
847 previous one. And if the driver has the quirk, it outputs all the
848 supported image formats without trying them.
849 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
851 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
853 * gst/vaapi/gstvaapidecode.c:
854 vaapidecode: expose raw src caps with same chroma
855 The try-and-error approach for getting the possible image formats from
856 a surface has brought several problems in different drivers, from
857 crashes to drop in performance.
858 Instead of that we change the algorithm to determine the possible
859 image formats based in the surface chroma: only those available image
860 formats with same chroma are exposed as possible raw caps.
861 Do this is important to avoid performance degrading in raw sinks
862 which doesn't handle NV12 but it does YV12 or I420.
863 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
865 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
867 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
868 libs: util: h265: use common parser API to get vaapi profiles.
869 We can reuse H265 parser's API to recognize the correct profile and
870 then just need to convert them to VAAPI profiles.
871 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
873 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
875 * gst-libs/gst/vaapi/meson.build:
876 * gst/vaapi/meson.build:
878 build: update for gl pkg-config file split
879 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
881 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
883 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
884 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
885 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
886 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
888 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
890 * gst-libs/gst/vaapi/gstvaapiencoder.c:
891 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
892 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
893 libs: encoder: H265: Enable Main 12 profile support.
894 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
896 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
898 * gst-libs/gst/vaapi/video-format.c:
899 video format: Fix P012_LE's chrome type typo.
900 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
902 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
904 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
905 gstvaapiminiobject.c: fix clang 10 warnings
906 the typesystem checks in g_atomic_pointer_compare_and_exchange
907 seem to trigger some false positives with clang 10
908 similar to gstreamer!584
909 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
911 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
913 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
914 libs: window: wayland: destroy all wayland buffers during finalize
915 Some buffers and the associated FrameState state may still be pending at
916 that point. If the wayland connection is shared, then messages for the
917 buffer may still arrive. However, the associated event queue is already
918 deleted. So the result is a crash.
919 With a private connection the associated memory is leaked instead.
920 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
922 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
924 * tests/examples/test-vaapicontext.c:
925 test: vaapicontext: fix draw callback with multiple videos
926 The callback is called for both windows. So make sure that
927 gst_video_overlay_set_render_rectangle() is called for the correct one.
928 Otherwise, the left video will be randomly moved behind the right video.
929 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
931 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
933 * tests/examples/meson.build:
934 * tests/examples/test-vaapicontext.c:
935 test: vaapicontext: support wayland display
936 On Wayland, The whole gtk window is one Wayland surface. So
937 gtk_widget_get_window() must be called on the top-level widget.
938 For any other widget the following gdk_window_ensure_native() may create a
939 new top-level Wayland surface that is never visible.
940 As a result, the coordinates passed to
941 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
942 window. Otherwise the video is placed incorrectly.
943 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
944 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
946 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
948 * tests/examples/test-vaapicontext.c:
949 test: vaapicontext: use playbin to test files
950 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
952 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
954 * tests/examples/test-vaapicontext.c:
955 test: vaapicontext: add PLAY and NULL buttons
956 They only appear when only one sink is instanciated and their purpose
957 is to test the NULL-PLAY use case in context sharing.
958 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
960 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
962 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
963 libs: wayland: update the opaque region in set_render_rect
964 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
965 thread. That thread may be responsible for making the window visible.
966 At that point another thread will block in gst_vaapi_window_wayland_sync()
967 because the frame callback will not be called until the window is visible.
968 If that happens, then acquiring the display lock in
969 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
970 Cache the size of the opaque rectangle separately and create the opaque
971 region right before applying it to the surface.
972 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
974 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
976 * gst-libs/gst/vaapi/gstvaapiwindow.c:
977 * gst-libs/gst/vaapi/gstvaapiwindow.h:
978 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
979 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
980 * gst/vaapi/gstvaapisink.c:
981 libs: window: implements gst_vaapi_window_set_render_rectangle
982 Implements new vmethod gst_vaapi_window_set_render_rectangle,
983 which is doing set the information of the rendered rectangle set by
985 This is necessary on wayland at least to get exact information of
987 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
989 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
991 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
993 * gst/vaapi/gstvaapisink.c:
994 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
995 Implements gst_vaapisink_wayland_create_window_from_handle() to support
996 using external wl_surface.
997 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
999 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1001 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1002 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1003 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1004 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1005 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
1006 libs: wayland: implement video overlay API
1007 The Wayland sub-surfaces API is used to embed the video into an application
1009 See Appendix A. Wayland Protocol Specification as the following.
1011 The aim of sub-surfaces is to offload some of the compositing work
1012 within a window from clients to the compositor. A prime example is
1013 a video player with decorations and video in separate wl_surface
1015 This should allow the compositor to pass YUV video buffer processing to
1016 dedicated overlay hardware when possible.
1018 Added new method gst_vaapi_window_wayland_new_with_surface()
1019 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1020 Zhao Halley <halley.zhao@intel.com>
1021 changzhix.wei@intel.com
1022 Hyunjun Ko <zzoon@igalia.com>
1023 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1025 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1027 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1028 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
1029 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1031 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1033 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1034 libs: display: always call close_display()
1035 All close_display() have their own checks for use_foreign_display and only
1036 destroy locally created objects in that case.
1037 Without this objects other than the actuall foreign display itself are
1039 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1041 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
1043 * gst-libs/gst/vaapi/video-format.h:
1044 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
1045 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
1047 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1049 * gst/vaapi/gstvaapidecode.c:
1050 * gst/vaapi/gstvaapipluginutil.c:
1051 * gst/vaapi/gstvaapipluginutil.h:
1052 plugins: add gst_vaapi_caps_set_width_and_height_range()
1053 This utility function is called internally by
1054 gst_vaapi_build_caps_from_formats() and can be used outside.
1055 This function sets frame size and framerates ranges.
1056 Also gst_vaapi_build_caps_from_formats() is simplified.
1057 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
1059 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
1061 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1062 libs: decoder: fix a crash issue when get_surface_formats.
1063 Some context does not report any valid format that we can support.
1064 For example, the HEVC 444 12 bits decoder context, all the formats
1065 it reports is not supported now, which make the formats list a NULL
1066 array. We should check that pointer before we use it.
1067 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
1069 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
1071 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1072 libs: encoder: h265: choose the profile based on allowed list.
1073 We can decide the profile in ensure_profile(), based on allowed list
1074 passed by the encode. We also need to check whether the entrypoint is
1075 available. Once it is decided, no need to check the hw entrypoint
1077 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1079 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
1081 * gst/vaapi/gstvaapiencode_h265.c:
1082 plugins: encode: h265: set all allowed profiles to encoder.
1083 We should collect all allowed profiles and pass them to the inside
1084 encoder, rather than just calculate the max profile idc.
1085 The allowed profiles should also be supported by the HW.
1086 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1088 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
1090 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1091 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1092 libs: display: Add a helper function to get profiles by codec.
1093 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1095 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
1097 * gst/vaapi/gstvaapiencode_h265.c:
1098 plugins: encode: h265: collect all allowed profiles to encoder.
1099 We should collect all allowed profiles and pass them to the inside
1100 encoder, rather than just calculate the max profile idc.
1101 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1103 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1105 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1106 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1107 * gst/vaapi/gstvaapiencode_h265.c:
1108 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1109 In h265, bigger profile idc may not be compatible with the small profile
1110 idc. And more important, there are multi profiles with the same profile
1111 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1113 So recording the max profile idc is not enough, the encoder needs to know
1114 all allowed profiles when deciding the real profile.
1115 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1117 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1119 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1120 libs: encoder: h265: No need to check hw_max_profile.
1121 In h265, higher profile idc number does not mean better compression
1122 performance and may be not compatible with the lower profile idc.
1123 So, it is not suitable to find the heighest idc for hw to ensure the
1125 On the other side, when the entrypoint of the selected profile is valid,
1126 it means the hw really support this profile, no need to check it again.
1127 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1129 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1131 * gst/vaapi/gstvaapipostproc.c:
1132 vaapipostproc: early return if fixate srcpad caps fails
1133 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1135 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1137 * gst/vaapi/gstvaapipluginutil.c:
1138 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1139 Generalize the way how the preferred color format is chosen. Also
1140 use new GStreamre API as syntatic sugar.
1141 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1143 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1145 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1146 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1147 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1148 * gst/vaapi/gstvaapidecode.c:
1149 * gst/vaapi/gstvaapiencode.c:
1150 libs: profile: Use get_codec_from_caps to get codec type.
1151 There is no need to get a profile from the caps and then convert
1152 that profile into codec type. We can get the codec type by caps's
1154 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1156 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1158 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1159 libs: profile: h265: Fix return value of from_codec_data_h265.
1160 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1161 The codec data of caps contain the profile IDC, but the mapping between
1162 profile IDC and GstVaapiProfile is wrong.
1163 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1165 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1167 * gst/vaapi/gstvaapiencode_vp9.c:
1168 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1169 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1171 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1173 * gst/vaapi/gstvaapiencode_h264.c:
1174 * gst/vaapi/gstvaapiencode_h265.c:
1175 * gst/vaapi/gstvaapipluginutil.c:
1176 * gst/vaapi/gstvaapipluginutil.h:
1177 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1178 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1179 as VP9 also needs to use this function.
1180 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1182 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1184 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1185 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1186 * gst-libs/gst/vaapi/meson.build:
1187 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1188 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1190 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1192 * gst-libs/gst/vaapi/gstvaapicontext.c:
1193 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1194 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1195 libs: display, context: handle broken jpeg decoder for i965 driver
1196 JPEG decoding in i965 driver is pretty much broken, and the driver is
1197 deprecated which mean authors only accept trivial fixes.
1198 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1199 format which is not a common format in GStreamer. It can export it to
1200 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1201 This patch artificially adds NV12 to the context format list when it's
1202 JPEG decoder for i965 and force the usage of old VA-API for surface
1203 creation without specifying color format. Also it artificially
1204 disables the DMABuf announcement.
1205 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1206 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1208 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1210 * gst-libs/gst/vaapi/gstvaapicontext.c:
1211 libs: context: change function to internal code style
1212 Instead of a getter the function `get_preferred_format()` to
1213 `ensure_preferred_format()` which aligns to the code style.
1214 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1216 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1218 * gst/vaapi/gstvaapidecode.c:
1219 vaapidecode: always merge profile caps in sink caps
1220 This commit fixes a regression of e962069d, where if the profile's
1221 caps doesn't have a caps profile, it's ignored.
1222 This patch add a conditional jump if the caps doesn't have a profile
1225 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1227 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1230 build: request libdrm >= 2.4.98 and fallback
1232 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1234 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1236 * gst/vaapi/gstvaapidecode.c:
1237 vaapidecode: dma caps only use reported color format
1238 This fix pipelines without vaapipostproc after vaapi decoder, such as
1239 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1240 On EGL platforms, so DMABuf is used.
1241 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1243 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1245 * gst/vaapi/gstvaapidecode.c:
1246 vaapidecode: use allowed srcpad caps for caps query
1247 Instead of using just the template caps use the current allowed
1248 srcpad caps, which is created considering the current decoder
1250 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1252 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1254 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1255 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1256 * gst/vaapi/gstvaapidecode.c:
1257 vaapidecode: build allowed srcpad caps from va context
1258 Instead of generating allowed srcpad caps with generic information,
1259 now it takes the size an formats limits from the decoder's context.
1260 This is possible since srcpad caps are generated after the internal
1262 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1263 gst_vaapi_decoder_get_suface_attributes().
1264 From these attributes, formats are only used for VASurface memory
1265 caps feature. For system memory caps feature, the old
1266 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1267 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1268 And for the other caps features (dmabuf and texture upload) the
1269 same static list are used.
1270 This patch also adds DMABuf caps feature only if the context
1271 supports that memory type. Nonetheless, we keep the pre-defined
1272 formats since they are the subset of common derive formats formats
1273 supported either by amd/gallium and both intel drivers, since,
1274 when exporting the fd through vaAcquireBufferHandle()/
1275 vaReleaseBufferHandle(), the formats of the derivable image cannot
1276 be retriebable from the driver. Later we'll use the attribute
1277 formats for the DMABuf feature too, when the code be ported to
1278 vaExportSurfaceHandle().
1279 Finally, the allowed srcpad caps are removed if the internal decoder
1280 is destroyed, since context attribues will change.
1281 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1283 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1285 * gst/vaapi/gstvaapidecode.c:
1286 vaapidecode: reorder src caps template
1287 Since negotiation depends on caps order, first is VA, then DMABuf,
1288 later GLUploadTexture (deprecated) and finally raw.
1289 Also, for decoders, the possible available color formats for DMABuf
1290 is extended to all the possible VA color formats.
1291 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1293 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1295 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1296 libs: window: wayland: use dmabuf protocol if available
1297 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1298 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1299 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1300 compatible with a Wayland server that uses the iris Mesa driver.
1301 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1302 protocol. Formats and modifiers supported by the Wayland server are taken
1303 into account. If necessary, VPP is enabled to convert the buffer into a
1305 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1307 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1309 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1311 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1312 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1313 libs: window: allow choosing the format for the vpp pool
1314 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1315 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1317 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1319 * gst-libs/gst/vaapi/video-format.c:
1320 * gst-libs/gst/vaapi/video-format.h:
1321 video-format: add DRM formats to the mapping table
1322 This will be needed for the DMABuf protocol support to map DRM formats to
1323 vaapi and gstreamer formats.
1324 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1326 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1328 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1329 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1330 * gst-libs/gst/vaapi/meson.build:
1331 libs: display: wayland: add basic dmabuf protocol support
1332 This is just the basic infrastructure. Hook up the interface and collect
1333 all supported formats.
1334 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1336 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1338 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1339 libs: window: wayland: wait for configure before committing the first buffer
1340 Committing the first buffer for a surface must not be done before
1341 ack_configure() has been sent for the xdg_surface.
1342 With weston, the commit will fail with "error 3: xdg_surface has never been
1344 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1346 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1348 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1350 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1351 libs: encoder: h265: set no P frame automatically.
1352 The double reference lists may be required by drivers and there should
1353 be no P frames in the of stream. The old way of converting P frames to
1354 B frames is by setting `low-delay-b` property, which is unconvenient
1355 and has bad user experience, since most of the users do not know when
1356 to set this property, and if it is not set correctly, the encoding
1357 pipeline fails or even hangs on some platforms. VA driver now provides
1358 a attribute to query whether both reference lists must be un-NULL for
1359 a profile/entrypoint pair.
1360 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1362 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1364 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1365 libs: encoder: h265: Deprecate the low-delay-b property.
1366 In HEVC, P and B definitions are different from AVC: P frames have
1367 just one reference list and so 1 MV, while B frames have two reference
1368 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1369 forward/backward reference. So P and B can both have bi-directions
1370 dependency, the difference is just their reference list
1371 number (i.e. MV number). This is different from the AVC.
1372 The *low delay b mode* refers to a special HEVC mode, in which the
1373 stream just contain I and B frames, without P frames, and all B frames
1374 only have forward direction dependencies (i.e. all inter frames have 2
1375 reference lists but no backward reference in both lists). This is
1376 similar to AVC I/P mode, but changing the P to the forward dependent
1378 The `low-delay-b` property is now just used to simply convert all P
1379 frames to B frames when driver does not support P frames (so both
1380 reference lists have the same references frames). This is a little
1381 different from the meaning of low delay b mode (the two ref lists may
1382 have the different reference frames). And the driver now can report
1383 whether it supports P frames correctly, so there is no need to use
1384 this property and deprecate it.
1385 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1387 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1389 * gst/vaapi/gstvaapipostproc.c:
1390 postproc: reconfigure after changing cropping values
1391 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1393 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1395 * gst/vaapi/gstvaapiencode.h:
1396 * gst/vaapi/gstvaapiencode_h264.c:
1397 * gst/vaapi/gstvaapiencode_h265.c:
1398 * gst/vaapi/gstvaapiencode_jpeg.c:
1399 * gst/vaapi/gstvaapiencode_mpeg2.c:
1400 * gst/vaapi/gstvaapiencode_vp8.c:
1401 * gst/vaapi/gstvaapiencode_vp9.c:
1402 plugin: encode: Add static caps for template documentation.
1403 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1405 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1407 * gst/vaapi/gstvaapiencode_vp9.c:
1408 plugin: encode: vp9: Use the dynamically built src template caps.
1409 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1411 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1413 * gst/vaapi/gstvaapiencode_vp8.c:
1414 plugin: encode: vp8: Use the dynamically built src template caps.
1415 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1417 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1419 * gst/vaapi/gstvaapiencode_jpeg.c:
1420 plugin: encode: jpeg: Use the dynamically built src template caps.
1421 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1423 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1425 * gst/vaapi/gstvaapiencode_mpeg2.c:
1426 plugin: encode: mpeg2: Use the dynamically built src template caps.
1427 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1429 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1431 * gst/vaapi/gstvaapiencode_h265.c:
1432 plugin: encode: h265: Use the dynamically built src template caps.
1433 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1435 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1437 * gst/vaapi/gstvaapiencode_h264.c:
1438 plugin: encode: h264: Use the dynamically built src template caps.
1439 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1441 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1443 * gst/vaapi/gstvaapiencode.h:
1444 * gst/vaapi/gstvaapiencode_h264.c:
1445 * gst/vaapi/gstvaapiencode_h265.c:
1446 * gst/vaapi/gstvaapiencode_jpeg.c:
1447 * gst/vaapi/gstvaapiencode_mpeg2.c:
1448 * gst/vaapi/gstvaapiencode_vp8.c:
1449 * gst/vaapi/gstvaapiencode_vp9.c:
1450 plugin: encode: Store the coded caps in type's init data.
1451 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1453 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1455 * gst/vaapi/gstvaapipluginutil.c:
1456 * gst/vaapi/gstvaapipluginutil.h:
1457 plugin: util: add helper function build_template_coded_caps_by_codec()
1458 Like build_template_raw_caps_by_codec(), this function can detect and
1459 build the caps for specified codec based on the query of the profiles.
1460 The result is coded caps such as video/x-h265, video/x-h264. The result
1461 can be used as the template of encode's src or decode's sink.
1462 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1464 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1466 * gst/vaapi/gstvaapiencode.h:
1467 * gst/vaapi/gstvaapipluginutil.c:
1468 * gst/vaapi/gstvaapipluginutil.h:
1469 plugins: utils: rename build_template_caps_by_codec.
1470 Rename the function build_template_caps_by_codec() to the name of
1471 build_template_raw_caps_by_codec(). It can be used to collect all
1472 raw video formats for encode's sink and decode's src.
1473 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1475 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1477 * gst/vaapi/gstvaapidecode.c:
1478 * gst/vaapi/gstvaapipluginutil.c:
1479 * gst/vaapi/gstvaapipluginutil.h:
1480 vaapidecode: merge common profiles before setting size range
1481 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1482 added at the end of processing all available VA profiles. This
1483 generated an non-optimal caps for negotiation, since the synthetic
1484 profiles don't have frame size ranges.
1485 This patch adds those possible synthetic profiles when the associated
1486 profile is processed, with its frame size ranges.
1487 Now allowed sink caps are simpler.
1488 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1490 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1492 * gst/vaapi/gstvaapipluginutil.c:
1493 plugin: util: Add the missing DMA buffer input in template caps.
1494 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1495 and lose the DMA feature in caps.
1496 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1498 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1500 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1501 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1502 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1503 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1504 * gst-libs/gst/vaapi/video-format.c:
1505 * gst/vaapi/gstvaapidecode.c:
1506 libs: decoder: H265: Add MAIN_12 profile supporting.
1507 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1509 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1511 * gst-libs/gst/vaapi/gstvaapiimage.c:
1512 * gst-libs/gst/vaapi/video-format.c:
1513 video-format: Add P012_LE format.
1514 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1515 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1517 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1519 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1521 * gst/vaapi/gstvaapidecode.c:
1522 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1523 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1524 contains all profiles of the whole VAAPI, like:
1525 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1526 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1527 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1528 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1529 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1530 constrained-high, progressive-high, baseline }; video/x-h265,
1531 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1532 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1533 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1534 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1535 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1536 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1537 height=(int)[ 0, 3840 ]
1538 Which is verbose and may have latent problems. It should only contains
1539 the profiles belong to its codec type. For example, h265 should only
1541 video/x-h265, profile=(string){ main, main-intra },
1542 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1543 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1545 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1547 * gst/vaapi/gstvaapidecodebin.c:
1548 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1549 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1551 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1553 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1554 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1555 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1557 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1559 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1560 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1561 * gst/vaapi/gstvaapidecode.c:
1562 * gst/vaapi/gstvaapidecode.h:
1563 * tests/internal/simple-decoder.c:
1564 vaapidecode: Remove NO_SURFACE error handling
1565 Since surfaces are not bounded to decoding context it makes no sense
1566 to keep the surface semaphore. This patch removes the handling of
1568 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1570 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1572 * gst/vaapi/gstvaapidecode.c:
1573 * gst/vaapi/gstvaapidecode.h:
1574 Revert "vaapidecode: drop non-keyframe in reverse playback"
1575 Since the number of surfaces are not bounded to decoder context,
1576 this hack is no longer needed.
1577 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1578 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1580 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1582 * gst-libs/gst/vaapi/gstvaapicontext.c:
1583 libs: decoder: context: remove surfaces binding from context.
1584 The vaCreateContext do not need to specify the surfaces for the
1585 context creation now. So we do not need to bind any surface to the
1586 context anymore. Surfaces should be the resource belong to display
1587 and just be used in encoder/decoder context.
1588 The previous manner has big limitation for decoder. The context's
1589 surface number is decided by dpb size. All the surfaces in dpb will
1590 be attached to a gstbuffer and be pushed to down stream, and the
1591 decoder need to wait down stream free the surface and go on if not
1592 enough surface available. For more and more use cases, this causes
1593 deadlock. For example,
1594 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1595 ! x264enc ! filesink location=./output.h264
1596 will cause deadlock and make the whole pipeline hang.
1597 the x264enc encoder need to cache more than dpb size surfaces.
1598 The best solution is seperating the surfaces number and the dpb size.
1599 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1600 And let the surfaces_pool in context maintain the re-use of all surfaces.
1601 For encoder, the situation is better, all the surfaces are just used
1602 as reference frame and no need to be pushed to down stream. We can
1603 just reserve and set the capacity of the surfaces_pool to meet the
1607 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1608 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1610 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1613 * scripts/extract-release-date-from-doap-file.py:
1614 meson: set release date from .doap file for releases
1615 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1617 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1619 * gst/vaapi/gstvaapipluginbase.c:
1620 plugins: use VA allocator by default on raw caps
1621 Instead of using dmabuf allocator in source pad, when raw video caps
1622 are negotiated, it uses VA allocator as before, since it is stable
1623 in more use cases, for example transcoding, and more backend drivers.
1624 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1625 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1627 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1629 * gst/vaapi/gstvaapi.c:
1630 vaapisink: rank it as secondary
1631 iHD doesn't provide a full implemention for rendering surfaces and
1632 i965 has problems in wayland. And I suspect this path is followed
1633 by other driver implementations.
1634 This patch demotes the rank of vaapisink to secondary, so it will
1635 not be autoplugged avoiding bad experience of users.
1636 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1638 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1640 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1641 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1642 libs: decoder: h264, h265: in context at least 16 reference surfaces
1643 Registering only stream's DBP size number of surfaces for decoding VA
1644 surfaces brings issues for certain streams. This change register all
1645 possible number of reference surfaces in a stream, which is 16.
1648 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1650 * gst/vaapi/gstvaapiencode_h265.c:
1651 plugins: encode: h265: Add profile,level,tier to output caps.
1652 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1654 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1656 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1657 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1658 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1660 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1662 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1663 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1664 0 is a valid value for h265 tier.
1665 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1667 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1669 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1670 libs: encoder: h265: no need to check the high compression tune.
1671 The h265 encoder just support tune mode:
1673 (3): low-power - Low power mode
1674 So, no need to check and set the high compression parameters.
1675 And by the way, the current ensure_tuning_high_compression manner
1676 of choosing the hightest profile idc as the best compression profile
1677 is not correct. Unlike h264, in h265 the higher profile idc number
1678 does not mean it has more compression tools, and so it has better
1679 compression performance. It may even be un-compatible with the lower
1680 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1681 9 is not compatible with 3D_MAIN profile with idc 8.
1682 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1684 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1689 === release 1.17.2 ===
1691 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
1696 * gstreamer-vaapi.doap:
1700 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
1702 * docs/gst_plugins_cache.json:
1703 * gst/vaapi/gstvaapiencode.c:
1704 docs: Mark parent classes as plugin API
1706 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1709 meson: mark plugins cache target as always stale
1711 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
1713 * docs/gst_plugins_cache.json:
1714 doc: Stop documenting properties from parents
1716 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
1721 === release 1.17.1 ===
1723 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
1728 * gstreamer-vaapi.doap:
1732 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
1734 * docs/gst_plugins_cache.json:
1735 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1736 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1737 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1738 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1739 Update plugin docs and add more plugins
1740 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1742 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1744 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1745 libs: wayland: display: only handle the first output
1746 Right now, all outputs are handled. The means that the registry object for
1747 all but the last are leaked. As a result the sizes are not used correctly.
1748 With two outputs, at first the mode and physical size of the second output
1749 are used. If the first output changes the mode, then the physical size of
1750 the second output is used in combination with the resolution of the first
1751 output. The resulting pixel aspect ratio is incorrect.
1752 There seems to be no way to determine on which output the window is shown,
1753 so just use the first one to get consistent results.
1754 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1756 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
1758 * gst/vaapi/gstvaapipluginbase.c:
1759 plugins: pluginbase: Do not destroy display when _close()
1760 When the element's state changes to NULL, it can still receive
1761 queries, such as the image formats. The display is needed in such
1762 queries but not well protected for MT safe.
1763 For example, ensure_allowed_raw_caps() may still use the display
1764 while it is disposed by gst_vaapi_plugin_base_close() because of
1766 We can keep the display until the element is destroyed. When the
1767 state changes to NULL, and then changes to PAUSED again, the display
1768 can be correctly set(if type changes), or leave untouched.
1770 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1772 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1774 * gst-libs/gst/vaapi/gstvaapicontext.c:
1775 libs: context: use correct printing modifier
1776 GstVaapiID is an alias of gsize, thus its modifier is platform
1778 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1780 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1782 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1783 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1784 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1785 * gst-libs/gst/vaapi/gstvaapifilter.c:
1786 * gst-libs/gst/vaapi/gstvaapivalue.c:
1787 plugins: uddate gst_type_mark_as_plugin_api() calls
1789 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
1791 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1792 libs: encoder: h265: Enable tile in VA command.
1793 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1795 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
1797 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1798 libs: encoder: h265: Add ensure_tile to calculate tiles.
1799 We need consider tiles and slices together, separate tiles uniformly
1800 and then assign slices uniformly to each tiles.
1801 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1803 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
1805 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1806 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1807 libs: display: add a quirk for iHD driver tile encoding.
1808 The iHD driver has a requirement that one slice can not span tiles
1809 when tile is enabled, which is not required by hevc spec.
1810 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1812 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
1814 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1815 libs: encoder: h265: Add tile info to bitstream.
1816 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1818 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
1820 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1821 libs: encoder: h265: promote level if tile is enabled.
1822 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1824 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
1826 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1827 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1828 libs: encoder: h265: Add num-tile-cols/rows properties.
1829 These properties are used for support of tile encoding. We just
1830 support uniform mode of tile encoding, that is, separating picture
1831 equally by (num-tile-cols X num-tile-rows).
1832 According to HEVC spec A1, the max number of tiles in column is 20
1833 and in rows is 22, so add two constant definitions.
1834 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1836 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
1838 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1839 libs: encoder: h265: extract slice creation from add_slice_headers
1840 extract slice creation details from add_slice_headers, and let the
1841 add_slice_headers just focuses on calculating slice start address
1843 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1845 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
1847 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1848 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1849 libs: encoder: Add a helper function to check the tile support.
1850 Encoding by tiles separation now is a very common feature for all
1851 relative new codecs, such as HEVC, AV1, and VP9. Just make this
1852 check as a common helper function of the encoder base class.
1853 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1855 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
1857 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1858 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1859 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1860 * gst-libs/gst/vaapi/gstvaapiutils.c:
1861 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1862 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1863 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1865 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
1867 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1868 libs: decoder: update reference list for SCC.
1869 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1871 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
1873 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1874 libs: decoder: H265: Fill picture and slice SCC parameters.
1875 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1877 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
1879 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1880 libs: util: H265: recognize the SCC profiles.
1881 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1883 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
1885 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1886 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1887 * gst-libs/gst/vaapi/gstvaapiutils.c:
1888 libs: profile: Add screen extended main/main10/main444 define.
1889 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1891 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
1893 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1894 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1895 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1896 * gst/vaapi/gstvaapiencode_h265.c:
1897 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1898 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1899 streams and using Y210 as the input of the encoder can generate main
1900 4:2:2 10 bit streams.
1901 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1903 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
1905 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1906 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1907 We need to use the chroma_format_idc as the index for getting the
1908 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1909 The wrong SubWidthC or SubHeightC make us calculate a wrong right
1910 or bottom offset for crop size and generate garbage in output.
1911 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1913 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
1915 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1916 libs: encoder: h265: Fix chrome idc for 444 10 bits
1917 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1918 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1919 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1921 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
1924 doc: Require hotdoc >= 0.11.0
1926 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
1928 * gst/vaapi/gstvaapipostproc.c:
1929 doc: Fix wrong link to GstVideoDirectionMethod
1931 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
1933 * docs/gst_plugins_cache.json:
1934 * meson_options.txt:
1935 docs: Update plugin cache with the new format
1936 And fix the default URL which should not be inside quotes.
1938 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
1940 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1941 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1942 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1943 * gst-libs/gst/vaapi/gstvaapifilter.c:
1944 * gst-libs/gst/vaapi/gstvaapivalue.c:
1945 * gst/vaapi/gstvaapipostproc.c:
1946 Use gst_type_mark_as_plugin_api() for all non-element plugin types
1948 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
1950 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1951 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1952 * gst-libs/gst/vaapi/gstvaapicontext.h:
1953 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1954 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1955 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1956 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1957 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1958 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1959 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1960 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1961 * gst-libs/gst/vaapi/gstvaapiimage.h:
1962 * gst-libs/gst/vaapi/gstvaapiobject.c:
1963 * gst-libs/gst/vaapi/gstvaapiobject.h:
1964 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
1965 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1966 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1967 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1968 * gst-libs/gst/vaapi/gstvaapisurface.h:
1969 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1970 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1971 * gst-libs/gst/vaapi/meson.build:
1972 libs: delete all gstvaapiobject related files.
1973 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1975 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
1977 * gst-libs/gst/vaapi/gstvaapisurface.c:
1978 libs: surface: return fail immediately if can not create subpicture
1979 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1981 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
1983 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1984 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1985 * gst-libs/gst/vaapi/gstvaapisurface.c:
1986 * tests/internal/image.c:
1987 libs: subpicture: Make subpicture a standard GstMiniObject.
1988 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1990 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
1992 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1993 libs: decoder: h264: Add ref flags for splited field.
1994 When split one frame into fields, the second field should also
1995 copy the reference flags.
1996 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
1998 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2000 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2001 libs: decoder: h264: disallow multiple slice group
2002 As far as we know there are no VAAPI drivers supporting FMO, which
2003 migth be used in baseline streams.
2004 This commit is a continuation of
2005 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
2006 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
2008 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2010 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2011 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2012 * gst/vaapi/gstvaapidecode.c:
2013 * gst/vaapi/gstvaapidecode_props.c:
2014 * gst/vaapi/gstvaapidecode_props.h:
2015 vaapidecoder: h264: remove baseline as constrained property
2016 From now on always the baseline is going to be treated as constrained without
2017 need of setting a property.
2018 Since the property was added along the development cycle (1.17 / commit
2019 866a9f06) and never released, we assume that it is safe to remove it.
2021 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
2023 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2026 README: update VP9 decoder and encoder
2027 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
2029 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
2031 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2032 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
2033 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
2034 so let's align this plugin with other libraries / softwares.
2035 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
2037 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2039 * gst/vaapi/gstvaapivideobufferpool.c:
2040 vaapivideobufferpool: fix meta overwrite
2041 commit 7ac2a207 added a regression by erroneously assumed that
2042 GstVaapiVideoMeta is actually a GstMeta, which is not.
2043 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
2045 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2047 * gst/vaapi/gstvaapivideobufferpool.c:
2048 * gst/vaapi/gstvaapivideometa_texture.c:
2049 * gst/vaapi/gstvaapivideometa_texture.h:
2050 vaapivideopool: Set pooled flag to added metas.
2051 So this could hint filters how to use these metas.
2052 Had to change the return value for texutre upload meta in order
2054 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
2056 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2058 * gst-libs/gst/vaapi/gstvaapicontext.c:
2059 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2060 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2061 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
2062 * gst-libs/gst/vaapi/gstvaapisurface.c:
2063 libs: use array_unref() rather than array_free()
2064 It is more convinience and thread-safe.
2065 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
2067 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
2069 * gst/vaapi/gstvaapi.c:
2070 plugin: use register_type to replace get_type for encode init.
2071 xxx_register_type will detect the template sink caps and is needed
2072 to be called at init time.
2073 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2075 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
2077 * gst/vaapi/gstvaapiencode_vp9.c:
2078 * gst/vaapi/gstvaapiencode_vp9.h:
2079 plugins: encode: Modify sink template of vp9 encode.
2080 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2081 Also implement gst_vaapiencode_vp9_register_type, which should be
2082 called at plugin register time.
2083 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2085 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
2087 * gst/vaapi/gstvaapiencode_vp8.c:
2088 * gst/vaapi/gstvaapiencode_vp8.h:
2089 plugins: encode: Modify sink template of vp8 encode.
2090 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2091 Also implement gst_vaapiencode_vp8_register_type, which should be
2092 called at plugin register time.
2093 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2095 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
2097 * gst/vaapi/gstvaapiencode_mpeg2.c:
2098 * gst/vaapi/gstvaapiencode_mpeg2.h:
2099 plugins: encode: Modify sink template of mpeg2 encode.
2100 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2101 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2102 called at plugin register time.
2103 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2105 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2107 * gst/vaapi/gstvaapiencode_h265.c:
2108 * gst/vaapi/gstvaapiencode_h265.h:
2109 plugins: encode: Modify sink template of h265 encode.
2110 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2111 Also implement gst_vaapiencode_h265_register_type, which should be
2112 called at plugin register time.
2113 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2115 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2117 * gst/vaapi/gstvaapiencode_h264.c:
2118 * gst/vaapi/gstvaapiencode_h264.h:
2119 plugins: encode: Modify sink template of h264 encode.
2120 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2121 Also implement gst_vaapiencode_h264_register_type, which should be
2122 called at plugin register time.
2123 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2125 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2127 * gst/vaapi/gstvaapiencode_jpeg.c:
2128 * gst/vaapi/gstvaapiencode_jpeg.h:
2129 plugins: encode: Modify sink template of jpeg encode.
2130 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2131 Also implement gst_vaapiencode_jpeg_register_type, which should be
2132 called at plugin register time.
2133 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2135 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2137 * gst/vaapi/gstvaapiencode.h:
2138 plugin: encode: add a helper macro to register encode type.
2139 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2141 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2143 * gst/vaapi/gstvaapipluginutil.c:
2144 * gst/vaapi/gstvaapipluginutil.h:
2145 plugins: util: Add a helper function to detect supported caps.
2146 This helper function iterate all profiles and entrypoints belong
2147 to the specified codec, query the VAConfigAttribRTFormat and list
2148 all possible video formats.
2149 This function is used by each codec to get the template sink caps
2150 (for encode) or src caps(for decode) at register time, when just
2151 all possible formats are listed and no need to be very accurate.
2152 So there is no context created for the performance reason. Most
2153 codecs just use YUV kinds of formats as the input/output, so we do
2154 not include RGB kinds of formats. User can specified more formats
2155 in extra_fmts(For example, jpeg may need BGRA) if needed.
2156 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2158 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2160 * gst/vaapi/gstvaapiencode.c:
2161 * gst/vaapi/gstvaapipluginutil.c:
2162 * gst/vaapi/gstvaapipluginutil.h:
2163 plugin: encode: extract the allowed caps maker as a helper function.
2164 Extract all logic about making caps for encode's sink as a standalone
2165 helper function. It can be reused.
2166 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2168 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2170 * gst-libs/gst/vaapi/video-format.c:
2171 * gst-libs/gst/vaapi/video-format.h:
2172 libs: video-format: add a helper function of get_formats_by_chroma.
2173 The function iterates all supported video formats and returns the
2174 formats belong to the specified chroma type.
2175 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2177 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2179 * gst-libs/gst/vaapi/gstvaapitexture.c:
2180 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2181 libs: texture: remove unused headers include
2182 This is continuation of
2183 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2184 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2186 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2188 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2189 * gst-libs/gst/vaapi/gstvaapiimage.h:
2190 * gst-libs/gst/vaapi/gstvaapisurface.h:
2191 libs: removed duplicated function declarations
2192 Some headers had duplicated inlined function declaration. This was
2193 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2194 documentation is not generated. So let's remove these extra lines.
2195 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2197 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2199 * gst-libs/gst/vaapi/gstvaapitexture.c:
2200 * gst-libs/gst/vaapi/gstvaapitexture.h:
2201 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2202 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2203 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2204 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2205 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2206 * gst/vaapi/gstvaapivideometa_texture.c:
2207 * tests/internal/test-textures.c:
2208 libs: texture: Make texture a standard GstMiniObject.
2209 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2210 the qdata of miniobject and avoid extending the base texture class.
2211 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2213 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2217 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2219 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2221 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2222 libs: display: drm: use g_strcmp0 to be null safe
2223 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2225 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2227 * gst/vaapi/gstvaapipluginutil.c:
2228 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2229 We may build this plugin with window system support but run it without
2230 window system. Without this patch, the following pipeline will trigger a
2231 segfault when running it without window system.
2232 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2233 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2235 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2238 build: use join_paths() for driverdir
2240 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2243 README: Update supported hardware
2244 Added the AMD hardware list to the "Hardware Requirements" section.
2246 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2248 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2249 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2250 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2251 libs: bufferproxy: remove GstMemory reference
2252 Since bufferproxy and surface are not referenced circularly, there's
2253 no need to keep, in the buffer proxy, a reference to the GstMemory
2254 where it is held. This patch removes that handling.
2256 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2258 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2259 * gst-libs/gst/vaapi/gstvaapisurface.c:
2260 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2261 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2262 * gst/vaapi/gstvaapivideomemory.c:
2263 libs,plugin: break surface-bufferproxy circular reference
2264 The bufferproxy may reference the surface and the surface may also
2265 reference the bufferproxy, producing a circular reference, which might
2266 lead to serious resource leak problems.
2267 Now make the relationship clearer, the bufferproxy's references is
2268 transfered to surface, while bufferproxy just keeps the surface's
2269 address without increasing its reference count.
2270 The surface can be created through a bufferproxy like in
2271 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2272 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2273 both cases the surface holds a bufferproxy's reference.
2275 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2277 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2278 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2279 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2280 libs: bufferproxy: rename parent memeber as surface
2282 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2284 * gst/vaapi/gstvaapivideobufferpool.c:
2285 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2286 The old way of refer memory by bufferproxy is not a good one, since it
2287 make the logic error prone.
2288 Now it is established a map between surface-bufferproxy and its GstMemory,
2289 caching the memory bound by a surface looked for the specified surface.
2291 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2293 * gst/vaapi/gstvaapivideobufferpool.c:
2294 * gst/vaapi/gstvaapivideobufferpool.h:
2295 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2296 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2297 In fact, no one is using that flag, and all vaapi buffers should
2298 have GstVaapiVideoMeta.
2300 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2302 * gst/vaapi/gstvaapipostproc.c:
2303 * gst/vaapi/gstvaapipostproc.h:
2304 vaapipostproc: enable HDR10 tone mapping
2306 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2308 * gst-libs/gst/vaapi/gstvaapifilter.c:
2309 * gst-libs/gst/vaapi/gstvaapifilter.h:
2310 libs: filter: HDR10 tone mapping support
2311 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2313 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2315 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2316 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2317 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2318 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2319 * gst/vaapi/gstvaapiencode_h265.c:
2320 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2321 Using Y410 as the input of the encoder can generate main_444_10 bit
2324 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2326 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2327 libs: encoder: fix an inexact trace info in chroma type check.
2329 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2331 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2332 libs: encoder: make sure format array is not NULL when returning TRUE
2333 This fixed segfault when running the pipeline below with iHD driver
2334 (commit efe5e9a) on ICL
2335 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2338 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2340 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2341 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2342 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2343 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2344 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2345 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2346 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2347 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2348 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2349 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2350 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2351 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2352 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2353 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2354 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2355 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2356 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2357 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2358 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2359 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2360 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2361 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2362 * gst-libs/gst/vaapi/gstvaapifilter.h:
2363 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2364 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2365 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2366 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2367 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2368 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2369 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2370 libs: extend g_autoptr support
2372 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2374 * gst/vaapi/gstvaapivideometa.c:
2375 vaapivideometa: remove compiler warning
2377 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2380 * meson_options.txt:
2381 build: Add meson's option package-origin.
2382 This options is added to synchronize with other gstreamer packages
2383 build configuration.
2384 Though, to avoid breaking distro configuration it is set, as default,
2385 the issues gitlab's url, instead of the used string
2386 "Unkown package origin".
2387 Also, set_quoted is used for string based cdata.
2389 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2391 * gst/vaapi/gstvaapipostproc.c:
2392 vaapipostproc: deprecate format, width and size parameters
2393 Since they should only be controlled by caps negotiation.
2395 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2397 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2398 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2399 * gst/vaapi/gstvaapidecode.c:
2400 libs,plugins: decoder: Add -intra profile support for hevc.
2401 In hevc, we can consider the -intra profile a subset of the none
2402 -intra profile. The -intra profiles just contain I frames and we
2403 definitely can use the none -intra profiles's context to decode
2405 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2407 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2409 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2410 libs: encoder: h265: support ICQ/QVBR BRC
2411 Enable support for ICQ and QVBR bitrate control.
2412 The code is essentially the same for h264 ICQ/QVBR support
2413 which was added in commit 9e0c133a2403.
2415 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2417 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2418 libs: encoder: set VA HRD param before RC param
2419 This is a workaround for intel-media-driver bug
2420 https://github.com/intel/media-driver/issues/865
2421 The driver will force the RC method to CBR for HEVCe
2422 when it parses the HRD param. Thus, any RC method
2423 param submitted "prior" to the HRD param will be lost.
2424 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2425 effectively enabled if the RC method param "precedes"
2427 To work around this issue, set the HRD param before
2428 the RC method param so the driver will parse the RC
2429 method param "after" the HRD param.
2430 Afaict, other codecs in the driver (and other drivers)
2431 do not appear to be dependent on the order of HRD and
2432 RC param submission.
2434 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2436 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2437 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2438 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2439 vaapijpegenc: Add a quantization quirk for iHD driver
2440 iHD driver shifts the value by 50 when calculating quantization for JPEG
2441 encoding, so we should add 50 in this plugin for iHD driver too.
2443 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2445 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2446 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2447 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2448 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2449 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2450 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2451 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2452 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2453 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2454 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2455 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2456 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2457 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2458 * gst-libs/gst/vaapi/meson.build:
2460 * tests/internal/output.c:
2461 * tests/internal/output.h:
2462 * tests/internal/simple-decoder.c:
2463 * tests/internal/test-decode.c:
2464 libs: remove GstVaapiPixmap
2465 GstVaapiPixmap is an abstract base class which only implementation
2466 were GstVaapiPixmapX11. This class were used for a special type of
2467 rendering in the tests apps, utterly unrelated in GStreamer.
2468 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2469 we should remove this unused API.
2470 This removal drops libxrender dependency.
2472 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2474 * gst-libs/gst/vaapi/gstvaapiutils.c:
2475 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2476 HEVCMain444_10 is already a supported profile and misses the strings.
2478 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2480 * gst/vaapi/gstvaapi.c:
2481 plugin: don't error if cannot create display
2482 This might generated errors on automatic tools such as CI. Let's
2483 rather just raise a warning and let continue.
2485 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2487 * tests/check/meson.build:
2488 test: fix a ninja test failure for vaapioverlay.
2489 That test case only works with drm display, so the build such as
2490 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2492 gets a failure when run ninja test. Just enable this test when drm
2495 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2497 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2498 libs: videopool: fix a condition race for pool allocate.
2500 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2502 * gst/vaapi/gstvaapivideobufferpool.c:
2503 vaapivideobufferpool: force video meta if sizes are different
2504 The strides and offsets could be the same, but the allocation
2505 size might be different (e.g. alignment). Thus, ensure we also
2506 set the flag to copy from VA memory to system memory when alloc
2510 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2512 * gst/vaapi/gstvaapidecode.c:
2513 vaapidecode: don't set base sink caps twice
2514 Base class's sink pad caps are already set when calling set_format().
2515 There's no need to call it again in gst_vaapidecode_negotiate().
2517 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2519 * gst/vaapi/gstvaapidecode.c:
2520 vaapidecode: unlock stream if caps update fails
2521 If caps update fail a dead lock occurs since the stream mutex is not
2524 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2526 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2527 libs: decoder: h265: parser state after update dependent slice
2528 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2529 So we need check the slice type after we call populate_dependent_slice_hdr
2531 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2533 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2534 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2535 libs: display: force RGBA image format for i965 driver
2536 Since commit 32bf6f1e GLTextureUpload is broken because i965
2537 doesn't report properly RGBA support. It could be possible to use RGBx
2538 but GLTextureUpload only regotiates RGBA.
2539 The simplest fix to this regression is adding synthetically the RGBA
2540 format in the internal format map.
2542 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2544 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2545 libs: display: iterate all quirks table
2546 Instead of break at the fist foud quirk in the table, iterate all over
2547 so it would be feasible to add several quirks for one driver per
2550 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2552 * gst-libs/gst/vaapi/gstvaapifilter.c:
2553 libs: filter: handle RGB to/from YUV color primary driver quirk
2554 The intel-media-driver (iHD) can't convert output color
2555 primaries when doing YUV to/from RGB CSC. Thus, we must
2556 keep the output color primaries the same as the input
2557 color primaries for this case.
2560 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2562 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2563 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2564 libs: display: add YUV to/from RGB color primary quirk
2565 The intel-media-driver (iHD) can't convert output color
2566 primaries when doing YUV to/from RGB CSC.
2568 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2570 * gst/vaapi/gstvaapivideomemory.c:
2571 Revert "vaapivideomemory: Store surface allocation flags."
2572 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2573 it rewrites the buffer size whilst surface allocation flags are
2574 stored when allocator_params_init() is called since fab890ce.
2577 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2579 * gst/vaapi/gstvaapivideomemory.c:
2580 vaapivideomemory: Try surface with allocation flags.
2581 When a vaapi allocator is instantiated, it first try to generate a
2582 surface with the specified configuration.
2583 This patch adds, in this tried buffer, the requested allocation flags.
2585 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2587 * gst/vaapi/gstvaapivideomemory.c:
2588 vaapivideomemory: Store surface allocation flags.
2589 Store surface allocation flags passed to the vaapi allocator in
2590 GObject's qdata, because it might be used by the vaapivideobufferpool
2591 when recreating the allocator given any resolution change.
2593 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2595 * gst-libs/gst/vaapi/gstvaapisurface.c:
2596 * gst-libs/gst/vaapi/gstvaapisurface.h:
2597 libs: surface: Add hints to allocation flags.
2598 When creating surfaces it is possible to pass to VA hints of its usage,
2599 so the driver may do some optimizations.
2600 This commit adds the handling of encoding/decoding hints.
2602 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2604 * gst-libs/gst/vaapi/gstvaapicontext.c:
2605 * gst-libs/gst/vaapi/gstvaapisurface.c:
2606 * gst-libs/gst/vaapi/gstvaapisurface.h:
2607 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2608 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2609 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2610 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2611 * tests/internal/test-filter.c:
2612 * tests/internal/test-surfaces.c:
2613 libs: surface: surfacepool: Add allocation flags in constructors.
2615 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2618 build: let the build fail if none if X11, wayland or drm.
2619 In fact, gst_vaapi_create_test_display only test x11, wayland and
2620 drm, no glx and egl entries. So if none of them is enabled, no
2621 vaapi element can be detected.
2623 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2625 * tests/internal/test-display.c:
2626 test: avoid unused warning for test-display
2627 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2628 -Dwith_glx=no buildir
2629 generate unused warnings.
2631 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2634 build: fix meson build error when without x11.
2635 meson -Dwith_x11=no build_dir
2636 can not success build the project because the glx is still enabled.
2637 We need to disable GLX when X11 is disabled.
2639 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2641 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2642 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2643 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2644 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2645 other HWs if other HWs may support other values
2646 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2648 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2650 * gst/vaapi/gstvaapipostproc.c:
2651 * gst/vaapi/gstvaapipostprocutil.c:
2652 vaapipostproc: do not compensate for crop/direction if no VPP
2653 If we do not have functional VPP, then cropping and video
2654 direction is non-functional and we should avoid calling
2655 any of the gst_vaapi_filter* APIs.
2657 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2659 * gst/vaapi/gstvaapipostproc.c:
2660 vaapipostproc: only set VPP colorimetry when VPP is available
2661 If we don't have functional vpp then we should not call
2662 gst_vaapi_filter_set_colorimetry.
2664 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2666 * gst/vaapi/gstvaapivideobufferpool.c:
2667 * gst/vaapi/gstvaapivideomemory.c:
2668 * gst/vaapi/gstvaapivideomemory.h:
2669 videobufferpool: don't reset surface when created internally
2670 The bug fixing, in commit 89f202ea, just considers the case when
2671 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2672 which is typically a decoder's behavior. But vaapipostproc doesn't
2673 provide any surface when calling gst_buffer_pool_acquire_buffer(),
2674 thus a surface is created when GstMemory is allocated.
2675 If the surface proxy in buffer's meta is reset at
2676 buffer_pool_reset_buffer(), that surface will be destroyed and it
2677 won't be available anymore. But GstBuffers are cached in the buffer
2678 pool and they are reused again, hence only those images are rendered
2682 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2684 * gst-libs/gst/vaapi/gstvaapiblend.c:
2685 * gst-libs/gst/vaapi/gstvaapifilter.c:
2686 * gst/vaapi/gstvaapi.c:
2687 libs: blend: filter: handle finalize() if display isn't assigned
2688 I've just discovered iHD driver in Skylake doesn't have VideoProc
2689 entry point, hence, in this platform, when vaapioverlay is tried to be
2690 registered, critical warnings are raised because blend doesn't have a
2692 As it is possible to have drivers without EntryPointVideoProc it is
2693 required to handle it gracefully. This patch does that: only tries to
2694 register vaapioverlay if the testing display has VPP and finalize()
2695 vmethods, in filter and blend, bail out if display is NULL.
2697 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2699 * gst-libs/gst/vaapi/gstvaapifilter.c:
2700 * gst-libs/gst/vaapi/gstvaapiutils.c:
2701 libs: filter: guard all color properties to VA-API 1.2.0
2702 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2703 Thus, guard all colorimetry -> VA-API support to version
2707 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2709 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2710 libs: decoder: h265: set parser info state at decoding codec data
2711 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2712 parser info in sps array. If that parser info comes from decoding
2713 codec data, that parser info will have an undefined state which might
2715 This patch sets the parser info state, at decoding codec data, with
2716 the internal parser state. This is similar with h264 decoder apprach.
2717 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2719 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2721 * gst/vaapi/gstvaapipostproc.c:
2722 vaapipostproc: demote log message to trace level
2724 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2726 * gst-libs/gst/vaapi/video-format.c:
2727 libs: video-format: set general vaapi log category
2728 Instead of logging in an unspecified category, set the default vaapi.
2730 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2732 * gst-libs/gst/vaapi/gstvaapiutils.c:
2733 libs: utils: guard EncSliceLP for VA-API < 0.39.1
2736 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
2738 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2739 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2741 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2743 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2744 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2745 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2746 libs: remove crumbs of libva < 0.39
2747 All these guarded code seem like leftovers of commit 920b1ec7a. This
2748 patch completes that missing clean up.
2750 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2752 * gst-libs/gst/vaapi/gstvaapifilter.c:
2753 * gst-libs/gst/vaapi/gstvaapiutils.c:
2754 libs: VA explicit color standard not supported until 1.2.0
2755 VAProcColorStandardExplicit and associated VAProcColorProperties
2756 (primaries, transfer and matrix) are not supported until
2758 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2762 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2764 * gst-libs/gst/vaapi/gstvaapiutils.c:
2765 libs: utils: WA: use explicit for sRGB colorimetry
2766 Addresses #228 on iHD side. It seems iHD can't handle
2767 VAProcColorStandardSRGB in all situations for vpp. But
2768 it has no problem when we specify the sRGB parameters
2769 via VAProcColorStandardExplicit parameters.
2771 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2773 * gst-libs/gst/vaapi/gstvaapifilter.c:
2774 libs: filter: set vpp input/output color range
2775 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2776 And, the [iHD] driver essentially computes the same color
2777 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2778 cases were gstreamer computes it automatically. But,
2779 if the user wants to make it explicit, we should try
2782 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2784 * gst-libs/gst/vaapi/gstvaapiutils.c:
2785 * gst-libs/gst/vaapi/gstvaapiutils.h:
2786 libs: utils: map GstVideoColorRange to VAAPI VPP
2788 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2790 * gst/vaapi/gstvaapidecode.c:
2791 vaapidecode: don't remove chroma-site nor colorimetry
2792 Since now they can be handled by vaapipostproc.
2794 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2796 * gst/vaapi/gstvaapipostprocutil.c:
2797 vaapipostproc: use sink resolution to calculate src colorimetry
2798 The default output colorimetry is persuaded by the output
2799 resolution, which is too naive when doing VPP cropping
2800 and/or scaling. For example, scaling 4K(sink)->1080P(src)
2801 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2802 colorimetry selection and some drivers don't support that
2804 Thus, if output (i.e. downstream) does not specify a
2805 colorimetry then we use the input resolution instead of the
2806 output resolution to create the default colorimetry. Also,
2807 note that we still use the output format since it may be a
2808 different color space than the input. As in the example
2809 above, this will result in bt2020(sink)->bt2020(src)
2810 colorimetry selection and all drivers (afaik) should support
2813 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2815 * gst/vaapi/gstvaapipostprocutil.c:
2816 vaapipostproc: set srcpad colorimetry unconditionally
2817 We always need a srcpad colorimetry for VAAPI VPP
2819 Also, check the return value of _set_colorimetry.
2821 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2823 * gst/vaapi/gstvaapipostprocutil.c:
2824 vaapipostproc: do not override explicit srcpad colorimetry
2825 If colorimetry has been set by a capsfilter (e.g.
2826 vaapipostproc ! video/x-raw,colorimetry=bt709) then
2827 don't try to override it. Previously, the aforementioned
2828 capsfilter will fail to negotiate if default colorimetry
2829 is not the same as the capsfilter (e.g. 4K resolutions).
2831 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2833 * gst/vaapi/gstvaapipostproc.c:
2834 vaapipostproc: set vpp filter colorimetry
2835 Set the input and output colorimetry for vpp filter.
2837 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2839 * gst-libs/gst/vaapi/gstvaapifilter.c:
2840 * gst-libs/gst/vaapi/gstvaapifilter.h:
2841 libs: filter: support vpp input/output color standard
2842 Add API function to allow setting the input and output vpp
2843 color standard from GstVideoColorimetry.
2845 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2847 * gst-libs/gst/vaapi/gstvaapiutils.c:
2848 * gst-libs/gst/vaapi/gstvaapiutils.h:
2849 libs: utils: map GstVideoColorimetry to VAAPI VPP
2850 Fallback to VAProcColorStandardExplicit if there is no
2853 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2855 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2856 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2857 libs: display: add vpp color standard quirk for i965 driver
2858 The i965 does not properly report supported vpp color
2861 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2863 * gst/vaapi/gstvaapivideobufferpool.c:
2864 vaapivideobufferpool: dmabuf implies allocator
2865 Some code can be optimized since only if the dmabuf allocator is set,
2866 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2867 the allocator address.
2869 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2871 * gst/vaapi/gstvaapivideobufferpool.c:
2872 vaapivideobufferpool: reject configuration if allocator isn't vaapi
2873 If the requested allocator in set_config() is not a VAAPI valid one,
2874 reject the configuration, instead of lying and using a private one.
2875 This patch superseeds !254 and !24
2877 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2879 * gst/vaapi/gstvaapivideobufferpool.c:
2880 vaapivideobufferpool: add explanation for allocator reconfig
2882 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2884 * gst/vaapi/gstvaapivideobufferpool.c:
2885 vaapivideobufferpool: check for vaapi meta first
2886 If the configured meta doesn't request vaapi meta then it is not a
2887 vaapi buffer pool. Bail out as soon as possible.
2889 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2891 * gst/vaapi/gstvaapivideobufferpool.c:
2892 vaapivideobufferpool: turn errors into warnings
2893 set_config() vmethod should fail gracefully, thus upstream could
2894 negotiate another pool if possible.
2895 Instead of sending error messages to the bus, let demote the level
2898 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2900 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2901 libs: display: log out vendor string when available
2902 This is useful while asking for logs to know the used driver.
2904 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2906 * gst-libs/gst/vaapi/gstvaapisurface.c:
2907 libs: surface: initialize VASurfaceAttribExternalBuffers
2908 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2909 rather than using memset().
2911 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2913 * gst-libs/gst/vaapi/gstvaapisurface.c:
2914 libs: surface: merge two loops into one
2915 Merge two loops into one for setting offsets and strides in the
2916 external buffer descriptor.
2918 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2920 * gst-libs/gst/vaapi/gstvaapisurface.c:
2921 * gst-libs/gst/vaapi/gstvaapisurface.h:
2922 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2923 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2924 libs: surface: surfacepool: rename variable for clearity
2925 In order to be readable, the meaningless 'flags' is renamed to
2926 surface_allocation_flags, which is clearer.
2928 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2930 * gst/vaapi/gstvaapivideobufferpool.c:
2931 vaapivideobufferpool: Reuse internal allocator is possible.
2932 Instead of creating a new allocator when upstream requests a different
2933 allocator, this patch tries to reuse the internal allocator if it was
2934 already initializated.
2935 If the stream changes, then either one will be unref and a new
2936 allocator is created.
2938 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2940 * gst/vaapi/gstvaapivideobufferpool.c:
2941 vaapivideobufferpool: Log messages in proper category.
2942 The log messages where logged in the GstBufferPool category because
2943 the instance was not properly casted. This fix that situation.
2945 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2947 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2948 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2949 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2950 * gst/vaapi/gstvaapipluginbase.c:
2951 libs: display: driver quirks mechanism
2952 This mechanism comes from ffmpeg vaapi implementation, where they have
2954 A specific driver is identified by a substring present in the vendor
2955 string. If that substring is found, a set of bitwise flags are store.
2956 These flags can be accessed through the function
2957 gst_vaapi_display_has_driver_quirks().
2958 The purpose for this first quirks is to disable the put image try for
2959 AMD Gallium driver (see [1]).
2960 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
2962 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2964 * gst/vaapi/gstvaapipluginutil.c:
2965 plugins: renable Mesa Gallium driver
2967 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2969 * gst/vaapi/gstvaapivideobufferpool.c:
2970 vaapivideobufferpool: validate returned meta
2971 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
2972 the acquired buffer is not null.
2973 This situation should be very "pathological", but still it is better
2974 be safe since that meta might be used later to create a new dma
2977 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2979 * gst/vaapi/gstvaapivideobufferpool.c:
2980 vaapivideobufferpool: always update/release the underlying surface proxy
2981 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
2982 releases the last reference on an exported DMA buffer. This should
2983 release the underlying surface proxy. To avoid releasing the wrong
2984 surface due to a stale surface proxy reference in the buffer's
2985 GstVaapiVideoMeta, always update the reference to the correct surface
2986 in gst_vaapi_video_buffer_pool_acquire_buffer().
2988 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2990 * gst-libs/gst/vaapi/gstvaapicontext.c:
2991 * gst-libs/gst/vaapi/gstvaapicontext.h:
2992 * gst-libs/gst/vaapi/gstvaapisurface.c:
2993 * gst-libs/gst/vaapi/gstvaapisurface.h:
2994 libs: context: select vaCreateSurfaces version according attributes
2995 This commit tries to centralize the selection of vaCreateSurfaces
2996 version, instead of having fallbacks everywhere.
2997 These fallbacks are hacks, added because new drivers use the latest
2998 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
2999 old drivers (or profiles as JPEG decoder in i965) might rather use the
3001 In order to select which method, there's detected hack: each config
3002 context has a list of valid formats, in the case of JPEG decoder the
3003 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
3004 handled correctly by the current gstreamer-vaapi code [2].
3005 The hack consist in identify if the format list contains an arbitrary
3006 preferred format (which is suposedly well supported by
3007 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
3008 the the old version of vaCreateSurfaces is used, and the surfaces wil
3009 be mapped into a image with their own color format.
3010 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
3011 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
3013 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3015 * gst-libs/gst/vaapi/gstvaapicontext.c:
3016 libs: context: add debug category for context
3018 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3020 * gst-libs/gst/vaapi/gstvaapiblend.c:
3021 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
3023 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3025 * gst/vaapi/gstvaapiencode_h264.c:
3026 vaapiencode: promote info to warning
3027 Let's notify user about using constrained-baseline instead on
3028 requested basline profile.
3030 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3032 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3033 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3034 * gst/vaapi/gstvaapidecode.c:
3035 * gst/vaapi/gstvaapidecode_props.c:
3036 * gst/vaapi/gstvaapidecode_props.h:
3037 vaapih264dec: Add a property to assume constrained-baseline
3038 When baseline-as-constrained is set, the decoder will expose support
3039 for baseline decoding and assume that the baseline content is
3040 constrained-baseline. This can be handy to decode streams in hardware
3041 that would otherwise not be possible to decode. A lot of baseline
3042 content is in fact constrained.
3044 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3046 * gst/vaapi/gstvaapiencode_h264.c:
3047 * gst/vaapi/gstvaapipluginutil.c:
3048 vaapih264enc: accept baseline as constrained baseline compatible
3050 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3052 * gst/vaapi/gstvaapiencode_h264.c:
3053 vaapih264enc: update level in src caps
3054 And, if downstream requests a specific level, the caps are not
3055 negotiated, because there is no mechanism right now to specify a
3056 custom level in the internal encoder.
3058 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3060 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3061 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
3063 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3065 * gst/vaapi/gstvaapiencode_h264.c:
3066 vaapih264enc: force byte-stream if avc isn't supported
3067 Removing the validation in gst_vaapiencode_h264_get_caps() since that
3068 ought be handled in gst_vaapiencode_h264_set_config()
3070 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3072 * gst/vaapi/gstvaapiencode_h264.c:
3073 vaaph264enc: suppress avc if the driver does not support packed headers
3074 Do not negotiate AVC output if the driver does not support it.
3076 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3078 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3079 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3080 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
3081 AVC output requires packed header support in the driver.
3083 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3085 * gst/vaapi/gstvaapiencode_h264.c:
3086 vaapih264enc: intersect the new proposed caps
3087 Instead of just leave to keep the proposed caps, with the best profile
3088 in the allowed caps, is its intersected again.
3090 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3092 * gst/vaapi/gstvaapiencode_h264.c:
3093 vaapih264enc: propose new profile caps and fixate it
3094 When the available caps doesn't intersect with the allowed caps in the
3095 pipeline, a new caps is proposed rather than just expecting to
3097 Later, the intersected caps (profile_caps) is fixated in order to
3098 extract the configuration.
3100 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3102 * gst/vaapi/gstvaapiencode_h264.c:
3103 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3104 Add a common fail code path for gst_vaapiencode_h264_set_config().
3106 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3108 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3109 libs: encoder: unref formats array if none
3110 The formats array is always created, in order to keep the logic and
3111 to avoid broken caps, if this formats array doesn't contain any
3112 elements, it has to be unref and the function should return NULL.
3114 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3116 * gst/vaapi/gstvaapiencode_h264.c:
3117 vaapih264enc: fix log message
3118 Before the log wasn't processed because wrong instance pointer.
3120 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3122 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3123 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3124 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3125 * gst/vaapi/gstvaapiencode_h265.c:
3126 plugin: encode: Add H265 main-444 profile.
3127 Expose the main-444 profile to h265enc caps, when the upstream
3128 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3131 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3133 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3134 libs: encoder: h265: Consider main-444 profile when encoding.
3135 Add support of main-444 profile for parameter setting and packed header
3138 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3140 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3141 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3142 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3143 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3144 * gst/vaapi/gstvaapiencode.c:
3145 vaapiencode: DMABuf only if PRIME is available
3146 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3147 memory type is available in the VA surface attributes of codec
3150 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3152 * hooks/pre-commit.hook:
3153 Add hooks/pre-commit.hook
3154 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3155 Copied and pasted pre-commit.hook from other gstreamer modules to make
3156 sure gstreamer-vaapi follows the same code style
3158 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3160 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3161 libs: encoder: h265: Set encoder paramters base on entrypoint.
3162 When the tune is NONE, we now can choose entrypoint freely. So the
3163 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3165 We also delay CTU size calculation after entrypoint has been decided.
3167 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3169 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3170 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3171 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3172 * gst-libs/gst/vaapi/gstvaapicontext.c:
3173 * gst-libs/gst/vaapi/gstvaapicontext.h:
3174 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3175 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3176 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3177 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3178 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3179 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3180 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3181 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3182 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3183 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3184 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3185 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3186 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3187 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3188 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3189 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3190 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3191 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3192 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3193 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3194 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3195 * gst-libs/gst/vaapi/meson.build:
3196 * gst/vaapi/gstvaapi.c:
3197 * gst/vaapi/gstvaapiencode.c:
3198 * gst/vaapi/gstvaapiencode.h:
3199 * gst/vaapi/gstvaapiencode_h264_fei.c:
3200 * gst/vaapi/gstvaapiencode_h264_fei.h:
3201 * gst/vaapi/gstvaapifeivideometa.c:
3202 * gst/vaapi/gstvaapifeivideometa.h:
3203 * gst/vaapi/meson.build:
3205 * tests/internal/meson.build:
3206 * tests/internal/test-fei-enc-in.c:
3207 * tests/internal/test-fei-enc-out.c:
3208 Remove all FEI related
3209 FEI encoders are not actively mantained neither tested, and it is
3210 using infrastructure that is changing and FEI is stopping this
3212 Also it is required to rethink how FEI can be used in GStreamer.
3214 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3216 * gst/vaapi/gstvaapioverlay.c:
3217 vaapioverlay: ensure sinkpad has current buffer
3218 Use the gst_video_aggregator_pad_has_current_buffer API
3219 to check if the current sinkpad has a queued buffer before
3220 attempting to obtain a input buffer from the base plugin.
3221 If the sinkpad does not have a current buffer, then it is
3222 either not producing them yet (e.g. current time < sinkpad
3223 start time) or it has reached EOS.
3224 Previously, we only handled EOS case.
3226 gst-launch-1.0 videotestsrc num-buffers=100 \
3227 ! vaapipostproc ! vaapioverlay name=overlay \
3228 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3229 num-buffers=100 ! video/x-raw,width=160,height=120 \
3232 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3234 * gst/vaapi/gstvaapioverlay.c:
3235 vaapioverlay: unroll the recursive call
3236 Recursive functions are elegant but dangerous since they might
3237 overflow the stack. It is better to turn them into a list tranversal
3238 if possible, as this case.
3240 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3242 * gst-libs/gst/vaapi/gstvaapiblend.c:
3243 * gst/vaapi/gstvaapioverlay.c:
3244 vaapioverlay: add minimal documentation
3246 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3248 * gst-libs/gst/vaapi/gstvaapiblend.c:
3249 * gst-libs/gst/vaapi/gstvaapiblend.h:
3250 * gst/vaapi/gstvaapioverlay.c:
3251 libs: blend: simplify generator API
3252 Instead of using a parent structure that has to be derived by API
3253 consumers, this change propse a simplification by using the common
3254 pattern of GTK of passing a function pointer and user data which will
3255 be passed as its parameter. That user data contains the state and the
3256 function will be called to update that state.
3258 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3260 * gst-libs/gst/vaapi/gstvaapiblend.c:
3261 * gst-libs/gst/vaapi/gstvaapiblend.h:
3262 libs: blend: remove begin/render/end API
3263 This API was risky and is superseded by the surface
3264 generator (process) API.
3267 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3269 * gst/vaapi/gstvaapioverlay.c:
3270 vaapioverlay: use blend surface generator API
3273 2020-01-10 09:54:30 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3275 * gst-libs/gst/vaapi/gstvaapiblend.c:
3276 * gst-libs/gst/vaapi/gstvaapiblend.h:
3277 libs: blend: add surface generator API
3278 This new API allows the user to call a single method (process)
3279 which handles the [display] lock/unlock logic internally for
3281 This API supersedes the risky begin, render, end API.
3282 It eliminates the need for the user to call a lock method
3283 (process_begin) before processing the input buffers
3284 (process_render) and calling an unlock method (process_end)
3288 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3290 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3291 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3292 * gst/vaapi/gstvaapiencode.c:
3293 * gst/vaapi/gstvaapiencode.h:
3294 * gst/vaapi/gstvaapiencode_h264.c:
3295 * gst/vaapi/gstvaapiencode_h265.c:
3296 plugin: encode: List all possible profiles to detect input formats.
3297 The current get_profile just return one possible profile for the encode,
3298 which is not enough. For example, if we want to support HEVC 4:4:4
3299 profile, the input of encode should be VYUA rather than NV12 in HEVC
3300 main profile. So the command line:
3301 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3302 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3303 tune=low-power init-qp=30 ! fakesink
3304 can not work because vaapih265enc just report NV12 in sink caps, we need
3305 to specify the profile obviously like:
3306 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3307 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3308 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3309 profile=main-444 ! fakesink
3310 The encode should have the ability to choose the profile based on input
3311 format automatically. If the input video format is VUYA, the main-444
3312 profile should be auto choosed.
3313 We modify to let get_allowed_profiles of each encode sub class to return
3314 an array of all supported profiles based on downstream's allowed caps, or
3315 return NULL if no valid profiles specified by downstream.
3316 If no allowed profiles found, all profiles which belong to the current
3317 encoder's codec will be the candidates.
3318 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3319 attributes for that profile list we just get.
3320 So for this case, both NV12 and VUYA should be returned.
3321 TODO: some codec like VP9, need to implement the get_profile() function.
3323 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3325 * gst/vaapi/gstvaapipluginutil.c:
3326 * gst/vaapi/gstvaapipluginutil.h:
3327 plugin: util: add helper function to detect profiles in caps.
3329 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3331 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3332 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3333 libs: encoder: add a helper function to get all supported profiles
3335 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3337 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3338 libs: decoder: Don't unref null object
3339 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3340 gst_vaapi_context_unref: assertion 'context != NULL' failed
3342 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3344 * gst/vaapi/gstvaapioverlay.c:
3345 plugins: overlay: use proper NULL check on double pointer
3346 Check the address of the variable is not NULL,
3347 not the address of the pointer.
3349 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3351 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3352 libs: codedbuf: delete a useless field.
3353 The context field in GstVaapiCodedBuffer is not inited correctly
3354 and is never used, just delete it.
3356 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3358 * gst/vaapi/gstvaapipluginutil.c:
3359 plugins: add iHD driver in whitelist
3361 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3363 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3364 libs: encoder: modify 265 SPS header's profile compatibility flag.
3365 Make the SPS profile compatibility flags more precisely conform to
3368 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3370 * tests/check/elements/vaapioverlay.c:
3371 test: vaapioverlay: bail test if not available
3372 vaapioverlay is only registered if the VA driver support the blend
3374 This patch only executes the test if vaapioverlay is available,
3375 otherwise the test is bail out without raising an error.
3377 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3379 * tests/check/elements/vaapioverlay.c:
3380 tests: vaapioverlay: force drm backend
3382 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3384 * gst-libs/gst/vaapi/gstvaapiblend.c:
3385 libs: blend: update to new mini-object API
3387 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3389 * tests/check/elements/vaapioverlay.c:
3390 * tests/check/meson.build:
3391 tests: check: add basic vaapioverlay test
3392 Add test_overlay_position test to verify sink_1 input
3393 is overlayed onto sink_0 input at the appropriate
3396 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3398 * gst/vaapi/gstvaapi.c:
3399 * gst/vaapi/gstvaapioverlay.c:
3400 * gst/vaapi/gstvaapioverlay.h:
3401 * gst/vaapi/meson.build:
3402 plugins: add vaapioverlay plugin
3403 A plugin similar to the base compositor element but
3404 uses VA-API VPP blend functions to accelerate the
3405 overlay/compositing.
3407 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3408 ! tee name=testsrc ! queue \
3409 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3410 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3412 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3414 * gst-libs/gst/vaapi/gstvaapiblend.c:
3415 * gst-libs/gst/vaapi/gstvaapiblend.h:
3416 * gst-libs/gst/vaapi/meson.build:
3417 libs: add a vaapi blend class
3418 Support for the VA-API VPP blend functions.
3420 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3422 * gst/vaapi/gstvaapipluginbase.c:
3423 * gst/vaapi/gstvaapipluginbase.h:
3424 plugins: base: add GstVideoAggregator subclass support
3426 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3428 * gst-libs/gst/vaapi/gstvaapiimage.c:
3429 libs: image: init all image fields correctly.
3431 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3433 * gst/vaapi/gstvaapipostproc.c:
3434 doc: fix pipeline typo in vaapipostproc
3436 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3438 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3439 libs: encoder: modify 265 VPS header fields.
3440 vps_base_layer_internal_flag and vps_base_layer_available_flag
3441 have been clearly defined now.
3443 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3445 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3446 libs: display: fix a resource leak in X11 pixmap format.
3448 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3450 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3451 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3452 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3454 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3456 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3457 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3458 * gst/vaapi/gstvaapiencode.c:
3459 libs: encoder: get surfaces resolution the same time with formats.
3460 We can get all the information about the video format at one shot
3461 when we create the test context for getting the supported formats.
3462 The current way to get the width and height ranges are inefficient,
3463 since it calls the function gst_vaapi_profile_caps_append_encoder()
3464 and it creates another temporal context to detect the resolution
3466 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3468 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3470 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3471 libs: encoder: vp9: fix code style
3473 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3475 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3476 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3477 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3478 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3479 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3480 libs: encoder: set entrypoint based on tune automatically
3481 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3482 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3484 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3485 every time when we need to use this kind of profile. Or we can not
3486 create the encoder context successfully.
3487 2. More seriously, we set the entrypoint to a fixed value in
3488 init_context_info() and so the create_test_context_config() can not
3489 create the test context for these profile and can not get the
3490 supported video formats, either.
3491 We now change the entrypoint setting based on the tune option of the
3492 encoder. If no tune property provided, we just choose the first
3493 available entrypoint.
3495 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3497 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3498 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3499 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3500 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3501 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3502 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3503 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3504 libs: encoder: set context info profile by encoder
3505 Instead of init_context_info() setting the passed profile, it is
3506 assumed that it has to be set by each encoder.
3507 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3509 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3511 * gst-libs/gst/vaapi/gstvaapicontext.c:
3512 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3513 libs: context: add invalid entrypoint symbol
3514 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3515 zero, which was already used as an invalid value tacitly. This patch
3516 only makes it explicit.
3517 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3519 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3521 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3522 libs: pixmap: Fix a pixmap creation crash.
3523 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3524 pixmap creation, which causes crash if we run the internal test case
3526 test-decode --pixmap
3528 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3530 * gst/vaapi/gstvaapiencode.c:
3531 plugin: encode: set allowed_sinkpad_caps to empty.
3532 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3533 surfaces formats. This causes two problem:
3534 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3535 which changes its behavior. It will use encode's sinkpad template
3536 rather than empty caps to do the clip job. So even if we fail to set
3537 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3539 2. We should just set the allowed_sinkpad_caps once. The NULL point
3540 make the ensure_allowed_sinkpad_caps function works again and again.
3542 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3544 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3545 libs: encoder: Add NULL pointer check for context when finalize.
3546 Context may be NULL if pipeline fail in early stage, and the
3547 ensure_context will not be called. Need to add a pointer protection
3550 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3552 * gst/vaapi/gstvaapipluginbase.c:
3553 plugins: base: do not reset can_dmabuf
3554 Don't reset the can_dmabuf field. This restores the
3555 close/reset logic that existed prior to commit
3556 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3558 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3559 once during startup, but may need to reset the other private
3560 fields multiple times during negotiation. Thus, can_dmabuf
3561 should be exempt from the resets.
3564 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3566 * gst/vaapi/gstvaapiencode.c:
3567 plugin: encode: Refine encode's sink caps.
3568 The old manner to get the encode's sink caps is not correct.
3569 Such as 264 encode, it gets:
3570 video/x-raw(memory:VASurface),
3571 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3572 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3573 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3574 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3575 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3576 framerate=(fraction)[ 0/1, 2147483647/1 ];
3577 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3578 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3579 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3580 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3581 input format for encoder.
3583 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3584 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3585 video/x-raw(memory:VASurface), format=(string){ NV12 },
3586 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3587 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3588 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3589 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3590 as the correct result.
3592 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3594 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3595 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3596 libs: display: code clean up
3598 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3600 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3601 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3602 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3603 libs: display: refine the profile/entrypoint map.
3604 The old way make the one config for each profile/entrypoint pair,
3605 which is not very convenient for description the relationship
3606 between them. One profile may contain more than one entrypoints
3607 to within it, so a set like data structure should be more suitable.
3609 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3611 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3612 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3613 * gst-libs/gst/vaapi/gstvaapicontext.c:
3614 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3615 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3616 * gst-libs/gst/vaapi/gstvaapifilter.c:
3617 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3618 * gst-libs/gst/vaapi/gstvaapisurface.c:
3619 * gst-libs/gst/vaapi/gstvaapisurface.h:
3620 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3621 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3622 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3623 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3624 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3625 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3626 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3627 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3628 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3629 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3630 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3631 * gst/vaapi/gstvaapipluginbase.c:
3632 * gst/vaapi/gstvaapivideomemory.c:
3633 * gst/vaapi/gstvaapivideometa.c:
3634 * gst/vaapi/gstvaapivideometa_texture.c:
3635 * tests/internal/image.c:
3636 * tests/internal/test-filter.c:
3637 * tests/internal/test-surfaces.c:
3638 * tests/internal/test-windows.c:
3639 libs: surface: port to GstMiniObject
3640 GstVaapiMiniObject and GstVaapiObject are deprecated.
3641 This is the first step to remove them by porting GstVaapiSurface as
3642 a GstMiniBuffer descendant.
3643 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3645 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3647 * gst-libs/gst/vaapi/gstvaapisurface.c:
3648 libs: surface: rename create function names to init
3649 There are several internal functions with 'create' name, but they
3650 don't create any new structure, but rather it initializes that
3651 structure. Renaming those function to reflect better their purpose.
3653 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3655 * gst-libs/gst/vaapi/gstvaapisurface.c:
3656 libs: surface: use macro accessors
3658 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3660 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3661 libs: surface: fix internal documentation
3663 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3665 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3666 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3667 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3668 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3669 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3670 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3671 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3672 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3673 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3674 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3675 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3676 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3677 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3678 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3679 libs: codedbuffer: port to GstMiniObject
3680 GstVaapiMiniObject and GstVaapiObject are deprecated.
3681 This is the first step to remove them by porting GstVaapiCodedBuffer
3682 as a GstMiniBuffer descendant.
3683 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3685 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
3687 * gst-libs/gst/vaapi/gstvaapiimage.c:
3688 * gst-libs/gst/vaapi/gstvaapiimage.h:
3689 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3690 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3691 * gst-libs/gst/vaapi/gstvaapisurface.c:
3692 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3693 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3694 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3695 * gst/vaapi/gstvaapipluginbase.c:
3696 * gst/vaapi/gstvaapivideomemory.c:
3697 * gst/vaapi/gstvaapivideometa.c:
3698 * tests/internal/image.c:
3699 * tests/internal/simple-encoder.c:
3700 * tests/internal/test-fei-enc-in.c:
3701 * tests/internal/test-filter.c:
3702 * tests/internal/test-windows.c:
3703 libs: image: port to GstMiniObject base class
3704 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3705 first step to remove them, by porting GstVaapiImage as a
3707 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3709 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
3711 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3712 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3713 * gst-libs/gst/vaapi/gstvaapicontext.c:
3714 * gst-libs/gst/vaapi/gstvaapicontext.h:
3715 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3716 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3717 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3718 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3719 libs: context: port to a plain C structure
3720 The GstVaapiMiniObject is obsolete and we need to replace it. This
3721 patch turns GstVaapiContext into a plain C structure with its own
3722 reference counting mechanism.
3723 Also this patch removes unused overlays attributes.
3724 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3726 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
3728 * gst/vaapi/gstvaapiencode_h264.c:
3729 * gst/vaapi/gstvaapiencode_h264_fei.c:
3730 * gst/vaapi/gstvaapiencode_h265.c:
3731 * gst/vaapi/gstvaapiencode_jpeg.c:
3732 * gst/vaapi/gstvaapiencode_mpeg2.c:
3733 * gst/vaapi/gstvaapiencode_vp8.c:
3734 * gst/vaapi/gstvaapiencode_vp9.c:
3735 plugin: encode: change the dmabuf caps to all supported formats.
3736 The encode's dmabuf caps definition is obsolete, it can support
3737 more formats now. Re-define it to include all supported formats
3738 in video format map.
3740 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3742 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3743 libs: encoder: h264fei: remove unnecessary check
3744 Issue detected by Coverity
3745 `info_to_pack.h264_slice_header` is always allocated by
3746 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3747 in doesn't make much sense. But it requires to be free on the error
3749 There may be a null pointer dereference, or else the comparison
3750 against null is unnecessary.
3751 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3752 pointer comparison already dereference the pointer earlier
3754 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3756 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3757 libs: encoder: h264fei: remove unnecessary assert
3758 Issue detected by Coverity
3759 An unsigned value can never be negative, so this test will always
3760 evaluate the same way.
3761 In add_slice_headers: An unsigned value can never be less than 0
3763 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3765 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3766 libs: encoder: h264fei: remove unnecessary check
3767 Issue detected by Coverity
3768 There may be a null pointer dereference, or else the comparison
3769 against null is unnecessary.
3770 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3771 pointer comparison already dereference the pointer earlier
3773 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3775 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3776 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3777 libs: encoder: h264fei: don't free memory on stack
3778 Issue detected by Coverity
3779 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3780 declared in the stack, but it is free in
3781 gst_vaapi_feienc_h264_encode() as if declared on the heap.
3782 This patch initializes the structure and removes the free.
3783 A non-heap pointer is placed on the free list, likely causing a crash
3785 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3786 expression, which can never be heap allocated.
3788 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3790 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3791 libs: encoder: h264fei: fix surface leak
3792 Issue detected by Coverity
3793 If the FEI mode is not handled the created resources should be
3794 released and return and error code.
3795 The system resource will not be reclaimed and reused, reducing the
3796 future availability of the resource.
3797 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3800 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3802 * tests/check/elements/vaapipostproc.c:
3803 tests: check return calling of gst_navigation_event_parse.*
3804 This issue was detected by Coverity.
3805 If the function returns an error value, the error value may be mistaken
3807 In cb_mouse_event: Value returned from a function is not checked for
3808 errors before being used
3810 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
3812 * gst/vaapi/gstvaapiencode_h264.c:
3813 * gst/vaapi/gstvaapiencode_h264_fei.c:
3814 * gst/vaapi/gstvaapiencode_h265.c:
3815 * gst/vaapi/gstvaapiencode_jpeg.c:
3816 * gst/vaapi/gstvaapiencode_mpeg2.c:
3817 * gst/vaapi/gstvaapiencode_vp8.c:
3818 * gst/vaapi/gstvaapiencode_vp9.c:
3819 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3820 Then encode plugin just supports raw formats declared in vaapi video
3821 format map. This modification makes the template caps more precise.
3823 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3825 * gst/vaapi/gstvaapipluginbase.c:
3826 plugins: base: add GstPad param to internal helper functions
3827 The base plugin public API function implementations determine
3828 which pad should be passed to the internal helper functions.
3829 Currently, only the base plugin static sinkpad and static
3830 srcpad are supported/used. However, this change enables future
3831 API functions to be added that can accept a pad (i.e. request pad)
3832 from an element subclass (e.g. a GstVideoAggregator subclass).
3834 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3836 * gst/vaapi/gstvaapipluginbase.c:
3837 * gst/vaapi/gstvaapipluginbase.h:
3838 plugins: base: manage pad-specific data in a single struct
3839 Define a struct (GstVaapiPadPrivate) to encapsulate the
3840 pad-specific data (i.e. buffer pool, allocator, info,
3842 Add an interface to retrieve the data struct for a given
3844 Finally, update the base plugin to use the data struct
3845 throughout the implementation.
3846 This will enable us to easily extend the base plugin in the
3847 future to allow for N-to-1 pad subclasses (e.g. overlay/
3850 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3852 * gst/vaapi/gstvaapidecode.c:
3853 * gst/vaapi/gstvaapiencode.c:
3854 * gst/vaapi/gstvaapipluginbase.h:
3855 * gst/vaapi/gstvaapipostproc.c:
3856 plugins: use plugin base macros to access pad specific data
3857 Don't access base struct fields directly since the underlying
3858 definition can change. Instead, use the accessor macros.
3860 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
3862 * gst/vaapi/gstvaapidecode.c:
3863 libs: decoder: Modify decode src's template raw formats
3864 We do not need to maintain a standalone list of decoder's output
3865 template for raw formats and that is easy to make mistake(for
3866 example, the AYVU is wrong in that list, should be VUYA).
3867 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3870 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
3872 * gst/vaapi/gstvaapipostproc.c:
3873 libs: postproc: Modify src/sink template raw formats
3874 We need to provide more precise template caps for postproc's src
3875 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3876 available which are really superfluous.
3878 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
3880 * tests/check/elements/vaapipostproc.c:
3881 Do not mix declaration and code
3883 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3885 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3886 libs: decoder: h265: skip all pictures prior the first I-frame
3887 Don't try to decode until the first I-frame is received within the
3888 currently active sequence. i965 H265 decoder don't show any artifact
3892 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3894 * gst-libs/gst/vaapi/video-format.c:
3895 libs: video-format: remove dead code
3897 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
3899 * gst-libs/gst/vaapi/video-format.c:
3900 * gst-libs/gst/vaapi/video-format.h:
3901 * gst/vaapi/gstvaapipluginutil.h:
3902 libs: video-format: add GST_VAAPI_FORMATS_ALL
3903 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3904 as a caps template string, and make them available in caps with
3905 memory:VASurface feature.
3908 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
3910 * gst-libs/gst/vaapi/video-format.c:
3911 * tests/internal/test-windows.c:
3912 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3913 We only support VUYA format in gst vaapi now, need to correct
3916 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3918 * tests/check/elements/vaapipostproc.c:
3919 tests: check: vaapipostproc test_orientation_mouse_events
3920 Test that vaapipostproc properly translates mouse events
3921 when using video-direction (orientation).
3923 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3925 * tests/check/elements/vaapipostproc.c:
3926 * tests/check/meson.build:
3927 tests: check: vaapipostproc test_crop_mouse_events
3928 Test that vaapipostproc properly translates mouse events
3931 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3934 * meson_options.txt:
3935 * tests/check/elements/vaapipostproc.c:
3936 * tests/check/meson.build:
3937 * tests/meson.build:
3938 tests: check: initial unit test support
3939 Add minimal unit test toolchain files and a simple
3940 vaapipostproc unit test.
3942 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3945 * tests/examples/meson.build:
3946 * tests/examples/test-roi.c:
3947 * tests/examples/test-vaapicontext.c:
3948 * tests/examples/test-vaapipostproc.c:
3949 * tests/examples/test-vaapisink.c:
3950 * tests/internal/codec.c:
3951 * tests/internal/codec.h:
3952 * tests/internal/decoder.c:
3953 * tests/internal/decoder.h:
3954 * tests/internal/image.c:
3955 * tests/internal/image.h:
3956 * tests/internal/meson.build:
3957 * tests/internal/output.c:
3958 * tests/internal/output.h:
3959 * tests/internal/simple-decoder.c:
3960 * tests/internal/simple-encoder.c:
3961 * tests/internal/test-decode.c:
3962 * tests/internal/test-decode.h:
3963 * tests/internal/test-display.c:
3964 * tests/internal/test-fei-enc-in.c:
3965 * tests/internal/test-fei-enc-out.c:
3966 * tests/internal/test-filter.c:
3967 * tests/internal/test-h264.c:
3968 * tests/internal/test-h264.h:
3969 * tests/internal/test-jpeg.c:
3970 * tests/internal/test-jpeg.h:
3971 * tests/internal/test-mpeg2.c:
3972 * tests/internal/test-mpeg2.h:
3973 * tests/internal/test-mpeg4.c:
3974 * tests/internal/test-mpeg4.h:
3975 * tests/internal/test-subpicture-data.c:
3976 * tests/internal/test-subpicture-data.h:
3977 * tests/internal/test-subpicture.c:
3978 * tests/internal/test-surfaces.c:
3979 * tests/internal/test-textures.c:
3980 * tests/internal/test-vc1.c:
3981 * tests/internal/test-vc1.h:
3982 * tests/internal/test-windows.c:
3983 * tests/internal/y4mreader.c:
3984 * tests/internal/y4mreader.h:
3985 * tests/meson.build:
3986 tests: move examples and tests to subfolders
3987 This makes way for adding unit (check) tests.
3989 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
3997 * gst-libs/Makefile.am:
3998 * gst-libs/gst/Makefile.am:
3999 * gst-libs/gst/vaapi/Makefile.am:
4001 * gst/vaapi/Makefile.am:
4003 * tests/Makefile.am:
4004 * tests/elements/Makefile.am:
4005 Remove autotools build
4007 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4009 * gst/vaapi/gstvaapipostproc.c:
4010 vaapipostproc: fix off-by-one coord translations
4011 When translating navigation x,y coordinates for
4012 video-direction, it is necessary to subtract 1
4013 when using the video dimensions to compute the
4014 new x,y coordinates. That is, a 100x200 image
4015 should map coordinates in x=[0-99],y=[0-199].
4016 This issue was found with unit tests provided
4019 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4021 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4022 libs: window: x11: Avoid usage of deprecated API
4024 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4027 build: halt meson configuration if no renderer API
4028 We should halt meson configuration if there is no render API
4029 installed (either DRM, Wayland or X11).
4030 That behavior was already in autotools but missed in meson. This patch
4034 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4036 * gst-libs/gst/vaapi/gstvaapifilter.c:
4037 libs: filter: fix default orientation regression
4038 Fix regression introduced in f232f87f7082
4040 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4042 * gst-libs/gst/vaapi/gstvaapifilter.c:
4043 libs: filter: use OP_DATA_DEFAULT_VALUE macro
4045 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4047 * gst-libs/gst/vaapi/gstvaapifilter.c:
4048 libs: filter: use macro for returning op default value
4049 The code is essentially the same for getting all op default
4050 values. Thus, use a macro to help minimize code duplication
4051 and [hopefully] encourage using the same mechanism for all
4054 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4056 * gst-libs/gst/vaapi/gstvaapifilter.c:
4057 libs: filter: query param spec for default scale method
4060 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4062 * gst-libs/gst/vaapi/gstvaapifilter.c:
4063 libs: filter: query param spec for default skin-tone values
4066 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4068 * gst-libs/gst/vaapi/gstvaapifilter.c:
4069 libs: filter: query param spec for default video-direction
4072 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4077 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
4079 * gst-libs/gst/vaapi/gstvaapifilter.c:
4080 * gst-libs/gst/vaapi/gstvaapifilter.h:
4081 * gst/vaapi/gstvaapipostproc.c:
4082 * gst/vaapi/gstvaapipostproc.h:
4083 vaapipostproc: Use level value for skin-tone-enhancement filter.
4084 Currently the parameter of skin-tone-enhancement filter is forced
4085 to zero. In fact it could be set different value by the user.
4086 So create a new property named as "skin-tone-enhancement-level"
4087 for accepting the used defined parameter value.
4088 At the same time, skin-tone-enhancement is marked as deprecated.
4089 When skin-tone-enhancement-level is set, skin-tone-enhancement
4092 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4094 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4095 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4096 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4097 g_return_val_fail() documentations says:
4098 If expr evaluates to FALSE, the current function should be
4099 considered to have undefined behaviour (a programmer error).
4100 The only correct solution to such an error is to change the
4101 module that is calling the current function, so that it avoids
4102 this incorrect call.
4103 So it was missused in a couple parts of the H264 and H265 internal
4104 decoders. This patch changes that to plain conditionals.
4105 Also, it was included a couple code-style fixes.
4107 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4109 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4110 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4111 * tests/simple-encoder.c:
4112 * tests/test-fei-enc-in.c:
4113 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4114 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4115 need to keep a custom ref()/unref() methods. This patch deletes them.
4117 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4119 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4120 libs: encoder: correct encoder's ref/unref function.
4121 GstVaapiEncoder now is a standard gstobject and need to use
4122 gst_object_ref/unref functions.
4124 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4126 * gst/vaapi/gstvaapiencode_h264_fei.c:
4127 gst: encode: h264_fei: remove useless comparison
4128 The expression "len >= 0" is always true since "len"
4129 is an unsigned type. And it is clear that the writers
4130 intention was not to write "len > 0" since we handle
4131 len == 0 in the ensuing "if (len < 3)" conditional
4134 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4136 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4137 libs: encoder: h264_fei: fix potential overflow before widen
4138 Found by static analysis. encoder->mb_width * encoder->mb_height
4139 is evaluated using 32-bit arithmetic before widen. Thus, cast
4140 at least one of these to guint64 to avoid overflow.
4142 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4144 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4145 libs: encoder: h264_fei: remove dead error condition
4146 Found by static analysis. The feipak is always null
4147 when we reach the error target.
4149 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4151 * gst-libs/gst/vaapi/gstvaapiutils.c:
4152 libs: utils: add missing break in switch
4154 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4156 * gst-libs/gst/vaapi/video-format.c:
4157 libs: video-format: Make all YUV format available
4158 The YUV formats have no ambiguity for drivers, so we can add them all.
4159 Some old driver(i965) does not implement full get/put image functions
4160 but can use derive image funtions for the YUV format. It does not
4161 report that kind of formats correctly in image query, but will derive
4162 that YUV format image from surface. The dynamic mapping of YUV format
4163 will block that manner.
4164 Adding more YUV format mapping has no side effect. So considering the
4165 legacy driver conformance, we add all YUV formats mapping statically
4166 and dynamic mapping RBG formats
4170 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4172 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4173 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4174 egl: Fix racyness in display thread creation
4175 Multiple different scenarios could break the display thread creation and
4176 end up blocking waiting for thread o be created. Fix them all by
4177 correctly waiting for a new boolean to become valid.
4179 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4181 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4182 egl: don't advertise a wrapped EGLContext as actually wrapped
4183 It's not actually wrapped as we create a new EGLContext from the passed
4184 in EGLContext. As a result, the created EGLContext was never destroyed.
4186 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4188 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4189 libs: h264decoder: do not return error for unhandled NAL unit.
4190 Some streams have error data introducing unknown NAL type. There are
4191 also kinds of NAL types we do not want to handle. The old manner will
4192 set a decoder error when encounter this, which cause a latent crash bug.
4193 The decoder may successfully decode the picture and insert it into DPB.
4194 But there are error NAL units after the AU which cause the post unit error
4195 and make that frame dropped. The later output of the picture still want
4196 to ref that frame and crash.
4197 No need to set decoder error when can not recognize or handle the NAL
4198 unit, just skip it and continue.
4201 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4203 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4204 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4205 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4206 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4207 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4208 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4209 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4210 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4211 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4212 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4213 * gst/vaapi/gstvaapiencode.c:
4214 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4215 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4216 param in encoders to decide which parameters to expose. Thus
4217 gstreamer-vaapi will not interfere with any change in GStreamer in the
4219 Also, the internal symbol was change to
4220 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4222 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4224 * gst-libs/gst/vaapi/gstvaapiimage.c:
4225 * gst-libs/gst/vaapi/video-format.c:
4226 libs: Add BGR10A2_LE support for color space conversion.
4229 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4231 * gst-libs/gst/vaapi/gstvaapisurface.c:
4232 libs: surface: add pointer check for surface_new_from_formats.
4234 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4235 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4236 will crash on i965 driver because of no pointer check.
4237 We now generate the video format map between GST format and VA format
4238 dynamically based on the image format returned by vaQueryImageFormats.
4239 i965 driver does to report image format of 444P and Y800 forcc, while
4240 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4241 not recognize these format and pass a NULL pointer to
4242 gst_vaapi_surface_new_from_formats.
4243 We need to add a pointer check here and let the fallback logic handle
4244 this case correctly.
4245 Other drivers work well.
4247 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4249 * gst-libs/gst/vaapi/gstvaapiutils.c:
4250 libs: utils: guard the VAEntrypointFEI symbol
4251 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4253 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4255 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4256 * gst-libs/gst/vaapi/video-format.c:
4257 * gst-libs/gst/vaapi/video-format.h:
4258 libs: video-format: Refine the video format mapping.
4259 Improve the mapping between va format and gst format. The new map
4260 will be generated dynamically, based on the query result of image
4261 format in VA driver. Also consider the ambiguity of RGB color
4264 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4266 * gst/vaapi/gstvaapipluginutil.c:
4267 pluginutil: Remove Mesa from drivers white list
4268 The Mesa Gallium driver is poorly tested currently, leading to bad user
4269 experience for AMD users. The driver can be added back to the white list at
4270 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4272 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4274 * gst/vaapi/gstvaapipostproc.c:
4275 * gst/vaapi/gstvaapipostproc.h:
4276 * gst/vaapi/gstvaapipostprocutil.c:
4277 vaapipostproc: allow cropping via properties
4278 Add crop-left, crop-right, crop-top and crop-bottom
4279 properties to vaapipostproc.
4281 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4283 * gst/vaapi/gstvaapipostproc.c:
4284 vaapipostproc: rotate outbuf and crop meta if forwarding
4285 When forwarding crop meta to downstream, the output
4286 buffer and crop meta need to be rotated, too.
4288 for i in 90r 180 90l vert horiz ul-lr ur-ll
4290 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4291 ! videocrop top=100 bottom=30 left=40 right=20 \
4292 ! vaapipostproc video-direction=$i \
4294 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4295 ! videocrop top=100 bottom=30 left=40 right=20 \
4296 ! vaapipostproc video-direction=$i \
4297 ! identity drop-allocation=true \
4301 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4303 * gst/vaapi/gstvaapipostproc.c:
4304 vaapipostproc: fix output buffer WxH for crop meta forwarding
4305 Adding crop meta x,y to w,h only compensates for left,top
4306 cropping. But we also need to compensate for right,bottom
4308 The video meta contains the appropriate w,h (uncropped)
4309 values, so use it instead.
4311 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4312 ! videocrop top=50 bottom=30 left=40 right=20 \
4313 ! vaapipostproc ! vaapisink & \
4314 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4315 ! videocrop top=50 bottom=30 left=40 right=20 \
4316 ! vaapipostproc ! identity drop-allocation=1 \
4319 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4321 * gst/vaapi/gstvaapipostproc.c:
4322 vaapipostproc: handle size and direction together in src events
4323 Mapping a pointer event needs to consider both size and
4324 video-direction operations together, not just one or the other.
4325 This fixes an issue where x,y were not being mapped correctly
4326 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4327 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4328 the first condition in the pointer event handling was entered and
4329 x,y scale factor were incorrectly computed due to srcpad WxH
4331 This also fixes all cases where both video-direction and scaling
4332 are enabled at the same time.
4333 Test that all pointer events map appropriately:
4336 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4337 ! vaapipostproc video-direction=${i} width=300 \
4339 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4340 ! vaapipostproc video-direction=${i} width=300 height=200 \
4342 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4343 ! vaapipostproc video-direction=${i} height=200 \
4345 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4346 ! vaapipostproc video-direction=${i} \
4350 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4352 * gst/vaapi/gstvaapipostproc.c:
4353 * gst/vaapi/gstvaapipostproc.h:
4354 vaapipostproc: advertise crop meta is handled
4355 Advertise to upstream that vaapipostproc can handle
4357 When used in conjunction with videocrop plugin, the
4358 videocrop plugin will only do in-place transform on the
4359 crop meta when vaapipostproc advertises the ability to
4360 handle it. This allows vaapipostproc to apply the crop
4361 meta on the output buffer using vaapi acceleration.
4362 Without this advertisement, the videocrop plugin will
4363 crop the output buffer directly via software methods,
4364 which is not what we desire.
4365 vaapipostproc will not apply the crop meta if downstream
4366 advertises crop meta handling; vaapipostproc will just
4367 forward the crop meta to downstream. If crop meta is
4368 not advertised by downstream, then vaapipostproc will
4369 apply the crop meta.
4371 1. vaapipostproc will forward crop meta to vaapisink
4372 gst-launch-1.0 videotestsrc \
4373 ! videocrop left=10 \
4376 2. vaapipostproc will do the cropping
4377 gst-launch-1.0 videotestsrc \
4378 ! videocrop left=10 \
4380 ! identity drop-allocation=1 \
4383 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4385 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4386 libs: encoder: clean two virtual func in encoder class
4387 set_property and get_default_properties functions are no longer
4388 needed for encoder class.
4390 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4392 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4393 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4394 libs: encoder: delete old set_property and property enum feienc264
4396 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4398 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4399 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4400 libs: encoder: delete old set_property and property enum in h264 fei
4402 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4404 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4405 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4406 libs: encoder: delete old set_property and property enum in vp9
4408 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4410 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4411 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4412 libs: encoder: delete old set_property and property enum in vp8
4414 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4416 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4417 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4418 libs: encoder: delete old set_property and property enum in mpeg2
4420 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4422 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4423 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4424 libs: encoder: delete old set_property and property enum in jpeg
4426 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4428 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4429 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4430 libs: encoder: delete old set_property and property enum in h265
4432 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4434 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4435 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4436 libs: encoder: delete old set_property and property enum in h264
4438 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4440 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4441 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4442 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4443 libs: encoder: delete EncoderPropInfo related functions
4445 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4447 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4448 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4449 libs: encoder: delete encoder_set_property
4450 We no longer need this obsolete set_property function now after
4451 switch to standard gobject's property manner.
4452 Also delete the old encoder's property enum in the header file.
4454 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4456 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4457 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4458 libs: encoder: delete properties_get_default for base class
4460 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4462 * gst/vaapi/gstvaapiencode.c:
4463 * gst/vaapi/gstvaapiencode.h:
4464 plugin: encode: delete useless init_properties.
4465 Also delete the get_properties function in encode class. We now
4466 use g_object_class_list_properties to get all properties for
4467 internal encoder class.
4469 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4471 * gst/vaapi/gstvaapiencode.c:
4472 * gst/vaapi/gstvaapiencode.h:
4473 plugin: encode: delete set/get_property func in encode class
4474 Use standard gobject's property functions to replace the old way.
4476 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4478 * gst/vaapi/gstvaapiencode.c:
4479 * gst/vaapi/gstvaapiencode.h:
4480 plugin: encode: delete gst_vaapiencode_init_properties
4481 No need to init the properties got by get_default_properties func
4482 now. The properties are inited correctly in internal encoder class.
4484 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4486 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4487 libs: encoder: delete 3 useless init macro
4489 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4491 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4492 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4493 libs: encoder: delete get_default_properties of feienc
4495 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4497 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4498 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4499 libs: encoder: delete get_default_properties of H264 Fei
4501 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4503 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4504 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4505 libs: encoder: delete get_default_properties of VP9
4507 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4509 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4510 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4511 libs: encoder: delete get_default_properties of VP8
4513 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4515 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4516 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4517 libs: encoder: delete get_default_properties of MPEG2
4519 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4521 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4522 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4523 libs: encoder: delete get_default_properties of JPEG
4525 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4527 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4528 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4529 libs: encoder: delete get_default_properties of H265
4531 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4533 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4534 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4535 libs: encoder: delete get_default_properties of H264
4537 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4539 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4540 libs: encoder: delete the useless constructed func for encoder.
4542 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4544 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4545 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4546 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4547 libs: encoder: implement get_view_ids for h264 encoder.
4549 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4551 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4552 * gst/vaapi/gstvaapiencode.c:
4553 * gst/vaapi/gstvaapiencode_h264.c:
4554 * gst/vaapi/gstvaapiencode_h264_fei.c:
4555 * gst/vaapi/gstvaapiencode_h265.c:
4556 * gst/vaapi/gstvaapiencode_jpeg.c:
4557 * gst/vaapi/gstvaapiencode_mpeg2.c:
4558 * gst/vaapi/gstvaapiencode_vp8.c:
4559 * gst/vaapi/gstvaapiencode_vp9.c:
4560 gst: encode: enable new type of property mechanism.
4562 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4564 * gst/vaapi/gstvaapiencode.c:
4565 * gst/vaapi/gstvaapiencode.h:
4566 gst: encode: add property help functions for encoder properties.
4567 The encoder is a true gstobject now and all the properties are using
4568 gobject's properties mechanism. Add help functions to handle the properties
4569 between encode and encoder class.
4570 The basic idea is mapping the same property between encoder and encode. All
4571 the encoder's properties will have the same name, the same type in encode.
4572 The set/get property function just forward the property setting/getting to
4573 the encoder using the same property name and value. Because the encoder is
4574 created on needed, we need to cache the property setting in encode.
4576 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4578 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4579 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4580 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4581 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4582 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4583 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4584 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4585 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4586 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4587 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4588 libs: encoder: add flags to all encoder properties.
4589 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4590 need to init the properties manually.
4591 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4592 flag, means need to expose the property to according encode class.
4594 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4596 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4597 libs: encoder: Add properties for h264 encoder fei.
4598 Install properties for h264 encoder fei class. Also set the new get/set
4599 property functions for gobject class. Still use the old properties
4600 way now and this new feature will be enabled later.
4602 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4604 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4605 libs: encoder: Add properties for h264 fei encoder.
4606 Install properties for h264 fei encoder class. Also set the new get/set
4607 property functions for gobject class. Still use the old properties
4608 way now and this new feature will be enabled later.
4610 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4612 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4613 libs: encoder: Add properties for vp9 encoder.
4614 Install properties for vp9 encoder class. Also set the new get/set
4615 property functions for gobject class. Still use the old properties
4616 way now and this new feature will be enabled later.
4618 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4620 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4621 libs: encoder: Add properties for vp8 encoder.
4622 Install properties for vp8 encoder class. Also set the new get/set
4623 property functions for gobject class. Still use the old properties
4624 way now and this new feature will be enabled later.
4626 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4628 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4629 libs: encoder: Add properties for mpeg2 encoder.
4630 Install properties for mpeg2 encoder class. Also set the new get/set
4631 property functions for gobject class. Still use the old properties
4632 way now and this new feature will be enabled later.
4634 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4636 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4637 libs: encoder: Add properties for jpeg encoder.
4638 Install properties for jpeg encoder class. Also set the new get/set
4639 property functions for gobject class. Still use the old properties
4640 way now and this new feature will be enabled later.
4642 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4644 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4645 libs: encoder: Add properties for h265 encoder.
4646 Install properties for h265 encoder class. Also set the new get/set
4647 property functions for gobject class. Still use the old properties
4648 way now and this new feature will be enabled later.
4650 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4652 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4653 libs: encoder: Add properties for h264 encoder.
4654 Install properties for h264 encoder class. Also set the new get/set
4655 property functions for gobject class. Still use the old properties
4656 way now and this new feature will be enabled later.
4658 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4660 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4661 libs: encoder: add properties and prop help functions
4662 Add all common properties to encoder base class. rate-control and
4663 tune are moved to sub class.
4665 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4667 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4668 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4669 libs: encoder: delete useless gst_vaapi_encoder_new func.
4670 GstVaapiEncoder is a abstract gobject and never be created directly.
4672 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
4674 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4675 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4676 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4677 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4678 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4679 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4680 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4681 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4682 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4683 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4684 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4685 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4686 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4687 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4688 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4689 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4690 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4691 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4692 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4693 lib: encoder: gstobjectfy all vaapi encoders.
4694 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4695 Let the gstobject common logic to handle all the init and finalize
4696 works. But the property install/set/get still use the old way, need
4697 to be improved later.
4699 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4701 * gst/vaapi/gstvaapipostproc.c:
4702 vaapipostproc: check for filter before appending caps
4703 While ensuring the allowed sink pad caps, the filter attributes set
4704 the frame size restriction, but it is not ensured, at that moment,
4705 that the filter is already instantiaded.
4706 In order to silence the glib logs, this patch add only calls
4707 gst_vaapi_filter_append_caps() if the filter is instantiated.
4709 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
4711 * gst/vaapi/gstvaapidecodebin.c:
4712 Classify vaapidecodebin as a hardware decoder
4714 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
4716 * gst/vaapi/gstvaapipostproc.c:
4717 libs: postproc: fix a memory leak point.
4718 filter_ops and filter_formats should already have valid value when
4719 the function gst_vaapipostproc_ensure_filter_caps re-enter
4721 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
4723 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4724 libs: util: Fix a memory leak in config_surface_attributes_get
4726 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
4728 * gst/vaapi/gstvaapidecode.c:
4729 vaapidecode: support transform ROI meta
4730 This will benefit the use case like:
4731 src ---> encode ---> decode ---> circle ROI ---> sink
4736 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
4738 * gst/vaapi/gstvaapidecodedoc.c:
4739 docstrings: port ulinks to markdown links
4741 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4743 * gst-libs/gst/vaapi/Makefile.am:
4744 * gst-libs/gst/vaapi/gstvaapicontext.c:
4745 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4746 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4747 * gst-libs/gst/vaapi/meson.build:
4748 libs: remove context's overlay
4749 The context overlay was an optimization to apply a video composition
4750 to all the surfaces bound to a context.
4751 But since commit 18031dc6 this optimization was disabled, so it is
4752 better just get rid of it.
4754 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4756 * gst-libs/gst/vaapi/gstvaapicontext.c:
4757 * gst-libs/gst/vaapi/gstvaapisurface.c:
4758 * gst-libs/gst/vaapi/gstvaapisurface.h:
4759 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4760 * gst/vaapi/gstvaapipluginutil.c:
4761 * tests/test-subpicture.c:
4762 libs: remove surface's parent context
4763 In commit 18031dc6 surface's parent context is not assigned because of
4764 circular references. Since then (2013), there's has no issue with
4765 subpictures attached to a context, the current only users of this API.
4766 This patch cleans up all of related code with the unused surface's
4769 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4771 * gst/vaapi/gstvaapidecode.c:
4772 vaapidecode: guard if no structure is available in caps
4774 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4776 * gst-libs/gst/vaapi/gstvaapifilter.c:
4777 * gst-libs/gst/vaapi/gstvaapifilter.h:
4778 * gst/vaapi/gstvaapipostproc.c:
4779 vaapipostproc: append frame size restrictions in caps
4781 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4783 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4784 libs: profilecaps: refactor common code
4786 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4788 * gst/vaapi/gstvaapiencode.c:
4789 vaapiencode: set frame size restrictions in caps
4792 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4794 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4795 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4796 * gst/vaapi/gstvaapiencode.c:
4797 vaapiencode: enhance how the profile is defined
4798 This code doesn't define the profile used by the internal encoder, but
4799 it used to "predict" which is going to be used and to get the caps
4801 Before the profile was predicted by checking the donwstream caps, but
4802 sometimes they are not defined, setting an unknown profile. In order
4803 to enhances this situation, the encoder asks to internal encoder if it
4804 has one. If so, it is used.
4805 To ask the internal encoder's profile a new accessor function was
4806 added: gst_vaapi_encoder_get_profile()
4808 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4810 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4811 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4812 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4813 Previously it was just a boilerplate. Now it is real implementation.
4815 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4817 * gst-libs/gst/vaapi/gstvaapiutils.c:
4818 libs: utils: treat va_rt_format as bitwise flag
4819 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4820 is a bitwise flag with *all* the supported chroma types.
4821 Previously it was assumed that the return value was a single value,
4822 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4823 simple case. But it is wrong.
4824 This patch changes the case block with a sequence of ifs testing the
4825 bitwise. For now we assume a "priority" list in the testing sequence.
4827 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4829 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4830 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4831 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4832 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4833 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4834 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4835 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4836 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4837 * tests/test-display.c:
4838 libs: profile: add gst_vaapi_profile_get_va_name()
4839 gst_vaapi_profile_get_name() returns a proper name for
4840 GstCaps. Nonetheless, there are many profiles which don't have a name
4841 representation for that realm.
4842 gst_vaapi_profile_get_va_name() returns the name of the profile
4843 according to its VAProfile name.
4844 This new funtion is used in the encoder error message.
4846 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4848 * gst-libs/gst/vaapi/Makefile.am:
4849 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4850 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4851 * gst-libs/gst/vaapi/meson.build:
4852 * gst/vaapi/gstvaapidecode.c:
4853 libs: profilecaps: move caps config into a new file
4854 Implement all the appending of frame size restrictions in caps, for
4855 encoders and decoders, in a new source file.
4857 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4859 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4860 libs: decoder: ref the caps as property
4862 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4864 * gst-libs/gst/vaapi/gstvaapicontext.c:
4865 * gst-libs/gst/vaapi/gstvaapicontext.h:
4866 libs: context: add gst_vaapi_context_get_surface_attributes()
4867 This function copies the surface attributes from the context's object
4870 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4872 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4873 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4874 * gst-libs/gst/vaapi/gstvaapiutils.c:
4875 * gst-libs/gst/vaapi/gstvaapiutils.h:
4876 libs: move memory types conversions to gstvaapiutils
4877 And add more supported memory types by current VA.
4879 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4881 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4882 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4883 libs: utils: remove unused function gst_vaapi_get_surface_formats()
4885 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4887 * gst-libs/gst/vaapi/gstvaapicontext.c:
4888 * gst-libs/gst/vaapi/gstvaapicontext.h:
4889 * gst-libs/gst/vaapi/gstvaapifilter.c:
4890 libs: context, filter: use new surface attributes API
4892 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4894 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4895 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4896 libs: utils: add gst_vaapi_config_surface_attributes_get()
4897 To extract the surface restrictions per config using a new structure:
4898 GstVaapiConfigSurfaceAttributes
4900 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4902 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4903 Split the surface attribute retrieval
4905 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4907 * gst/vaapi/gstvaapipostproc.c:
4908 vaapipostproc: handle navigation downstream event
4909 When navigation events contains coordiantes those have to be mapped
4910 to the new size and/or orientation.
4912 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4914 * tests/elements/test-vaapisink.c:
4915 test-vaapisink: also use vaapipostproc to change orientation
4917 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4919 * gst-libs/gst/vaapi/gstvaapifilter.c:
4920 * gst-libs/gst/vaapi/gstvaapifilter.h:
4921 * gst/vaapi/gstvaapipostproc.c:
4922 * gst/vaapi/gstvaapipostproc.h:
4923 * gst/vaapi/gstvaapipostprocutil.c:
4924 vaapipostproc: handle image-orientation upstream event
4925 Now that vaapipostproc can possible handle video-direction, it
4926 should also handle the image-orientation event from upstream if
4927 video-direction property is set to auto.
4929 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4931 * gst/vaapi/gstvaapipostproc.c:
4932 vaapipostproc: add missing locks when adding flags
4934 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4936 * gst/vaapi/gstvaapipostproc.c:
4937 vaapipostproc: update filter before fixate caps
4938 It is requiered to know if postproc is capable to change the video
4939 direction before fixating the source caps.
4940 In order to do it, it'ss required to know if there's a functional VPP,
4941 but that's checked at create() vmethod, which occurs after caps
4943 This patch checks for a functional VPP at fixate caps and, if so,
4944 checks for the enabled filtes and later do the caps fixations.
4946 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4948 * gst-libs/gst/vaapi/gstvaapifilter.c:
4949 * gst-libs/gst/vaapi/gstvaapivalue.c:
4950 * gst-libs/gst/vaapi/gstvaapivalue.h:
4951 * gst/vaapi/gstvaapipostproc.c:
4952 vaapipostproc: element warning if video direction is unsupported
4953 If the video direction is unsupported by the driver, an element
4954 warning is posted in the bus to notify the application.
4955 gst_vaapi_enum_type_get_nick() was added in the library thus it can
4956 be used elsewhere. It retrives the nick from an enum gtype.
4958 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4960 * gst-libs/gst/vaapi/gstvaapifilter.c:
4961 libs: filter: check mirror and rotation caps only once
4962 This patch locks the display before querying the pipeline caps and
4963 stores the mirror and rotation capabilities, thus they are not queried
4964 every time the video direction is set.
4966 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4968 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4969 libs: encoder: vp9: set VP9_0 profile as default
4970 Commit 0afc8131 introduced a regression and only NV12 format were
4971 admitted, failing in any other valid color format.
4972 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
4974 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4976 * gst-libs/gst/vaapi/gstvaapifilter.c:
4977 libs: filter: fail if first color balance value is invalid
4979 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
4981 * gst-libs/gst/vaapi/gstvaapifilter.c:
4982 * gst-libs/gst/vaapi/gstvaapiutils.c:
4983 * gst-libs/gst/vaapi/gstvaapiutils.h:
4984 libs: filter: set all color balance values
4985 When set multiple settings of color balance like hue, saturation,
4986 brightness and contrast for vaapipostproc, they should be set as
4987 parameters of color balance filter, at the same color balance
4989 Otherwise, multiple color balance filter calling will cause
4990 previous setting get reset by the last calling with default value.
4992 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
4994 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
4996 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4997 libs: h265dec: remove limitation of get iq matrix
4998 According hevc spec, scaling_list_data is not related
4999 to chroma_format_idc.
5001 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
5003 * gst-libs/gst/vaapi/gstvaapivideopool.c:
5004 libs: videopool: fix undocumented behavior and counting
5005 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
5006 because it locks twice the same mutex.
5007 Also, n had different meanings in the current code: as an increase
5008 value and as a new total of allocated surfaces.
5009 This patche removes the undocumented behavoir (usually a deadlock) and
5010 fixes the meaning of n as the new total of allocated surfaces.
5011 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5013 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
5015 * gst-libs/gst/vaapi/gstvaapiutils.c:
5016 libs: utils: Add missing entries for string_of_VAEntrypoint.
5018 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
5020 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5021 libs: encoder: Consider vp9 profiles based on input format.
5022 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
5025 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5027 * gst/vaapi/gstvaapivideomemory.c:
5028 vaapivideomemory: demote error message to info
5029 The main reason to demote the message's level is because it is not an
5030 error, it's a possible output of the trial and there's a code path
5032 Secondly, it's very annoying when using gallium driver for radeon.
5034 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
5036 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5037 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5038 * gst-libs/gst/vaapi/gstvaapitypes.h:
5039 * gst-libs/gst/vaapi/gstvaapiutils.c:
5040 * gst-libs/gst/vaapi/gstvaapivalue.c:
5041 libs: encoder: h264: support ICQ/QVBR bitrate control mode
5042 ICQ is Intelligent Constant Quality. It will use the initial QP
5043 vaule of icq-quality-factor to adjust QP at MB level intelligently
5044 to improve subjective quality.
5045 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
5046 adjust QP for each MB to get enough quality picture without waste
5049 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
5051 * gst-libs/gst/vaapi/gstvaapitypes.h:
5052 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
5053 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
5054 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
5055 deal with unsigned int. Otherwise there may be an error of out of
5056 range of integer if we define few more rate-control mode.
5058 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5060 * gst/vaapi/gstvaapidecodebin.c:
5061 vaapidecodebin: set queue's max size buffers to 1
5062 Otherwise the queue will swallow all the available decoder's surfaces
5063 reaching a dead-lock.
5064 This setting might impact the bin's peformance, but it's a trade-off.
5066 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5068 * gst/vaapi/gstvaapidecodebin.c:
5069 vaapidecodebin: set properties default values
5071 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5073 * gst/vaapi/gstvaapidecode.c:
5074 vaapidecode: don't error if can't push buffers downtream
5075 When the code path goes to push buffers downstream when no surface
5076 available in decoder context, and it fails the code bails out with a
5078 That behavior is wrong, since it shouldn't be fatal. The use case is
5079 when the video stream is disabled.
5080 This patch just ignores the errors in this situation and demotes the
5081 level of a log message.
5083 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
5085 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5086 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5087 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5088 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5089 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5090 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5091 libs: encoder: h264,h265: add new property "max-qp"
5092 Add new property "max-qp" to allow set the maximum quantisation
5095 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
5097 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5098 libs: encoder: vp9: add low power mode encode
5099 By now, this feature only support by media-driver on Ice Lake
5100 platform, more information you can reference:
5101 https://github.com/intel/media-driver
5103 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5105 * gst/vaapi/gstvaapipostprocutil.c:
5106 vaapipostproc: update PAR when rotating
5107 When rotating, swap pixel-aspect-ratio during
5111 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5113 * gst-libs/gst/vaapi/gstvaapifilter.c:
5114 * gst-libs/gst/vaapi/gstvaapiutils.c:
5115 * gst-libs/gst/vaapi/gstvaapiutils.h:
5116 * gst/vaapi/gstvaapipostprocutil.c:
5117 vaapipostproc: add rotation support
5118 Adds vpp rotation support to vaapipostproc. Uses
5119 property video-direction. Default is identity (no
5123 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5125 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5126 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5127 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5128 cu_qp_delta_enabled_flag enabled.
5131 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5133 * gst-libs/gst/vaapi/gstvaapiutils.c:
5134 libs: encoder: Add MB ratecontrol mode to get its string
5136 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5138 * gst-libs/gst/vaapi/gstvaapiutils.c:
5139 libs: encoder: refine guard of bitrate control mode
5140 Remove useless guard of all bitrate control mode's guard except MB
5141 which is define in VA-API version 0.39.1.
5143 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5145 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5146 h264: Update for parse_vui_params parameter removal.
5147 Update calls to the h264 parser lib for removal of the
5148 parse_vui_params parameter.
5150 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5152 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5153 libs: dec: vp9: do not use display size as decoded size
5154 If display size is smaller than current frame size, then the crop size
5155 will be set as display size, which either crashes the pipeline or the
5156 output MD5 does not match. Rather it should use the actual decoded size.
5157 This patch removes the cropping set. For rendering we can use aspect
5158 ratio to set display size.
5160 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5161 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5163 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5168 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5170 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5171 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5172 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5173 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5174 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5175 than 8 bits, which cause using the wrong NV12 surface as the render target
5179 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5181 * gst/vaapi/gstvaapidecode.c:
5182 vaapidecode: set initial decode format according surface chroma type
5183 For surfaces with different chroma type, it is prefer to initialize
5184 a format which chroma type should be same with surface chroma type
5185 instead of using fixed NV12.
5187 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5189 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5190 * gst-libs/gst/vaapi/gstvaapiimage.c:
5191 * gst-libs/gst/vaapi/video-format.c:
5192 * gst/vaapi/gstvaapidecode.c:
5193 * gst/vaapi/gstvaapipluginutil.h:
5194 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5195 When create vaapi surface, it is better to use the chroma type get
5196 from jpeg file instead of using fixed 420 format. And the correct
5197 chroma type can be determined by horizontal_factor/vertical_factor
5198 flags that get from jpegparse.
5200 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5202 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5203 libs: dec: h265: Fix profile_idc mapping.
5204 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5205 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5206 happened to be the correct value.
5207 We only support Annex A profile_idc (1-4).
5209 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5211 * gst/vaapi/gstvaapipluginbase.c:
5212 plugins: remove last negotiated video info if caps are same
5213 If the allocation caps and negotiated caps are the same,
5214 then ensure any previously negotiated video info is also
5215 removed. This can occur when multi-resolution video
5216 decoding returns to it's original resolution.
5219 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5221 * gst/vaapi/gstvaapivideomemory.c:
5222 vaapivideomemory: allow negotiated info to be removed
5223 Allow NULL negotiated_vinfo to be passed into
5224 gst_allocator_set_vaapi_negotiated_video_info to allow
5225 any previously set info to be removed.
5227 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5229 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5230 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5231 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5232 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5233 counter, hence the newly created frame could become a P-frame, leading to some
5234 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5235 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5236 GstVaapiEncoderVP9 implementations.
5238 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5240 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5241 libs: encoder: increase bitrate prop max value
5242 There are many profile levels that can support
5243 more than 102400 kbps. Thus, increase the max
5244 allowed bitrate property value from 102400 kbps
5245 to 2048000 kbps (same as msdk encoder plugins).
5247 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5249 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5250 libs: mpeg2 encoder: No packed header for SPS and PPS
5251 Dislable passing down packed PPS and PPS to driver if driver does
5255 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5260 meson: Bump minimal GLib version to 2.44
5261 This means we can use some newer features and get rid of some
5262 boilerplate code using the G_DECLARE_* macros.
5263 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5265 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5267 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5268 libs: dec: vp9: clear parser pointer after release
5269 Fix an use-after-release of the parser pointer in VP9 decoder.
5271 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5273 * gst/vaapi/gstvaapiencode.c:
5274 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5275 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5276 srcpad's chain function was locked waiting for available buffers. Since the
5277 coded buffers in codedbuf_queue become available after sinkpad consume the
5278 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5279 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5280 available buffers and holds the stream_lock of the srcpad.
5282 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5284 * gst-libs/gst/vaapi/gstvaapitypes.h:
5285 * gst/vaapi/gstvaapidecodebin.c:
5286 * gst/vaapi/gstvaapidecodedoc.c:
5287 * gst/vaapi/gstvaapiencode_h264.c:
5288 * gst/vaapi/gstvaapiencode_h264_fei.c:
5289 * gst/vaapi/gstvaapiencode_h265.c:
5290 * gst/vaapi/gstvaapiencode_jpeg.c:
5291 * gst/vaapi/gstvaapiencode_mpeg2.c:
5292 * gst/vaapi/gstvaapiencode_vp8.c:
5293 * gst/vaapi/gstvaapiencode_vp9.c:
5294 * gst/vaapi/gstvaapipostproc.c:
5295 * gst/vaapi/gstvaapisink.c:
5296 doc: remove xml from comments
5298 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5300 * gst-libs/gst/vaapi/gstvaapifilter.c:
5301 * gst-libs/gst/vaapi/gstvaapifilter.h:
5302 * gst-libs/gst/vaapi/gstvaapiutils.c:
5303 * gst-libs/gst/vaapi/gstvaapiutils.h:
5304 * gst/vaapi/gstvaapipostproc.c:
5305 * gst/vaapi/gstvaapipostproc.h:
5306 vaapipostproc: add mirror support
5307 Adds vpp mirroring support to vaapipostproc. Use
5308 property video-direction. Valid values are identity,
5309 horiz or vert. Default is identity (no mirror).
5311 v2: Use GstVideoOrientationMethod enum
5312 v3: Don't warn for VA_MIRROR_NONE.
5313 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5314 v4: Query VAAPI caps when setting mirror value
5315 instead of during per-frame processing.
5316 v5: Return TRUE in warning cases when setting mirror value.
5318 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5320 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5321 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5322 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5323 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5324 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5325 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5326 * gst/vaapi/gstvaapidecodebin.c:
5327 * gst/vaapi/gstvaapisink.c:
5328 doc: fix some incorrect gtk-doc links
5330 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5332 * docs/gst_plugins_cache.json:
5333 docs: Update plugin cache
5334 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5336 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5338 * gst-libs/gst/vaapi/gstvaapisurface.h:
5339 libs: surface: fix documentation format
5341 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5343 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5344 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5345 When enable low delay B, the reference list 1 will be same with
5346 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5347 to num_ref_idx_l0_active_minus1.
5350 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5353 meson: Fix call to wrong function
5355 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5360 * docs/gst_plugins_cache.json:
5363 * docs/plugins/Makefile.am:
5364 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5365 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5366 * docs/plugins/gstreamer-vaapi-plugins.types:
5367 * docs/plugins/inspect/plugin-vaapi.xml:
5368 * docs/plugins/running.xml:
5370 * docs/version.entities.in:
5371 * gst/vaapi/meson.build:
5373 * meson_options.txt:
5374 docs: Port to hotdoc
5376 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5378 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5379 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5380 libs: encoder: not call ensure_num_slices inside g_assert
5381 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5382 defined. The function inside the g_assert will take no effect and
5383 we will fail to set the correct slice number.
5385 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5387 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5388 libs: h265: dec: Add extension flags setting.
5389 Use VAPictureParameterBufferHEVCExtension&
5390 VASliceParameterBufferHEVCExtension to pass extension setting from
5391 some extension profile clips which may include these information.
5392 The hevc extension setting only supported after libva release 2.2.0
5395 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5397 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5398 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5399 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5400 libs: encoder: add target-percentage property
5401 Allow users to set the target-percentage for
5402 variable rate controls. The default value is
5403 70 (as hard-coded prior).
5404 v2: minimum allowed value changed from 0 to 1
5405 v3: target-percentage unchanged if CBR used
5408 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5410 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5411 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5413 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5415 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5416 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5417 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5418 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5419 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5420 libs: encoder: Enable trellis quantization method.
5421 The advanced trellis algorithm is supported in VA driver. We add
5422 its support as a property named "trellis" of encoder.
5423 It only works for H264 now, should be more in future.
5425 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5427 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5428 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5429 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5430 type, so we need to add subsampling_x&subsampling_y to fix it.
5431 Here is the relationship between chroma type and profile and
5432 subsampling_x&subsampling_y according to vp9 spec:
5433 ------------------------------------------
5434 Profile | Bit depth | Chroma subsampling |
5435 ------------------------------------------
5437 ------------------------------------------
5438 1 | 8 | 422,440,444 |
5439 ------------------------------------------
5441 ------------------------------------------
5442 3 | 10, 12 | 422,440,444 |
5443 ------------------------------------------
5444 -----------------------------------------------
5445 Subsampling_x | Subsampling_y | Chroma format |
5446 -----------------------------------------------
5448 -----------------------------------------------
5450 -----------------------------------------------
5452 -----------------------------------------------
5454 -----------------------------------------------
5456 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5458 * gst-libs/gst/vaapi/gstvaapiimage.c:
5459 * gst-libs/gst/vaapi/video-format.c:
5460 libs: Add packed 24 RGB format support.
5461 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5462 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5463 type. This kind of surface will just be created by new API with fourcc
5464 and no old style chrome based creation is available.
5467 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5469 * gst/vaapi/gstvaapiencode.c:
5470 * gst/vaapi/gstvaapiencode_h264.c:
5471 * gst/vaapi/gstvaapiencode_h264_fei.c:
5472 * gst/vaapi/gstvaapiencode_h265.c:
5473 * gst/vaapi/gstvaapiencode_jpeg.c:
5474 * gst/vaapi/gstvaapiencode_mpeg2.c:
5475 * gst/vaapi/gstvaapiencode_vp8.c:
5476 * gst/vaapi/gstvaapiencode_vp9.c:
5477 vaapiencode: handle DMABuf caps feature in sink pad
5478 Add DMABuff caps features in all encoders' sink pad.
5480 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5482 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5483 libs: encoder: continue if roi meta is NULL
5485 If the function actually returns a null value, a null pointer
5486 dereference will occur.
5487 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5488 function which returns null is dereferenced without checking
5490 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5492 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5493 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5494 The decoder's surface chroma type should depend on the bit depth
5495 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5496 10 bits surface as the decoder result.
5499 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5501 * gst/vaapi/gstvaapipostprocutil.c:
5502 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5503 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5504 with commit 3e992d8a
5505 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5506 from caps negotiation, different from the default one (NV12), the
5507 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5508 feature is negotiated, no color transformation shall be done.
5509 Nonetheless, with commit 3e992d8a the requested format changes
5510 firstly, because there's no video sink yet, so ANY caps are
5511 negotiated; but later, when there's a video sink and a caps
5512 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5513 format conversion still ongoing. It is required to reset that
5515 This patch force default color format when GL_TEXTURE_UPLOAD is
5516 selected as preferred, thus avoiding the color conversion.
5519 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5521 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5522 libs: surface: fix double free when dmabuf export fails
5523 Happens if vaAcquireBufferHandle fails.
5525 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5527 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5528 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5530 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5534 * docs/plugins/inspect/plugin-vaapi.xml:
5538 === release 1.16.0 ===
5540 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5546 * gstreamer-vaapi.doap:
5550 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5552 * docs/plugins/inspect/plugin-vaapi.xml:
5555 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5557 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5558 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5559 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5560 libs: encoder: h264,h265: guard VA version for max_qp property
5561 This patch fixes a regression from commit 5b1fe9c6.
5562 max_qp, in rate control configuration, appeared in libva release
5563 2.1 (API 1.1), thus it is required to guard the VA API version.
5566 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5568 * gst-libs/gst/vaapi/gstvaapiimage.c:
5569 * gst-libs/gst/vaapi/video-format.c:
5570 libs: Add RGB565 image format support.
5572 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5575 build: configure: delay USE_GTK conditional until check libva-x11
5576 libva-x11 is used for X11 applications, so it is required to build
5577 any GTK application.
5578 Later, when Wayland test is added, we should change this.
5580 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5583 build: configure: disable GLX if libva-x11 is not found
5585 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5587 * gst-libs/gst/vaapi/gstvaapiutils.c:
5588 libs: utils: avoid macro evaluation when stringify
5589 string_of_va_chroma_format() gets a wrong string format description.
5590 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5591 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5592 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5594 To avoid the macro evaluation, it is changed to show only the color
5595 format without VA_RT_FORMAT_ prefix.
5597 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5599 * gst-libs/gst/vaapi/gstvaapiutils.c:
5600 libs: utils: use glib's macros
5601 Don't reinvent the wheel.
5603 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5605 * gst/vaapi/gstvaapipluginutil.c:
5606 plugins: find the preferred format from right caps.
5607 When the downstream has any caps, then raw video feature will
5608 be used. At this situation, the preferred format should be chose
5609 from caps which contains "vide/x-raw" feature instead of from
5610 the fist allowed caps.
5613 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5615 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5616 libs: encoder: h265: fill tier in va seq param buf
5617 Now that tier is calculated in commit 58e74f9440fe (!68),
5618 ensure we fill in the general_tier_flag in the
5619 VAEncSequenceParameterBufferHEVC.
5621 === release 1.15.90 ===
5623 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5629 * gstreamer-vaapi.doap:
5633 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5635 * docs/plugins/inspect/plugin-vaapi.xml:
5638 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5640 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5641 libs: encoder: h265: Recognize the correct level and tier.
5642 The current manner can not recognize the correct level and always
5643 set the tier to main. Need to add frame rate check to recognize
5644 levels such as 4.1, 6.2, etc. We also add a logic to check main
5645 and high tier based on bitrate.
5648 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5650 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5651 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5652 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5653 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5654 media-driver currently fails to set a correct value of max_qp when
5655 min_qp is different to zero, in CBR and VBR mode, generating full
5656 quality frames, thus unexpected huge output.
5657 This patch sets max_qp to an arbitrary value to avoid this output
5661 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5663 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5664 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5665 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5666 libs: encoder: h264,h265: initial and minimal QP can be zero
5667 Currently the minimal value for either min_qp and init_qp are 1,
5668 but VA documentation specifiy that zero is also valid and means
5669 to ignore the quantiser.
5670 The default value is not changed though to avoid behaivor changes
5673 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5675 * tests/elements/meson.build:
5676 meson: build test-vaapicontext when using X11
5677 x11_dep and libva_x11_dep are optional and meson ignores these
5678 dependencies even if they are added into the dependency list.
5679 This fixes the error below when libva-x11 is not avaiblabe:
5680 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5681 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5682 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5683 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5684 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5685 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5686 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5687 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5688 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5689 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5690 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5691 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5692 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5693 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5694 -DHAVE_CONFIG_H -MD -MQ
5695 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5697 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5699 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5700 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5701 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5702 error: va/va_x11.h: No such file or directory
5703 #include <va/va_x11.h>
5705 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
5707 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5708 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5709 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5710 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5711 GValueArray is deprecated. Use GstValueArray instead.
5713 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
5715 * gst/vaapi/gstvaapipluginutil.c:
5716 vaapipluginutil: Fix #endif for USE_X11
5718 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5720 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5721 libs: encoder: h264: simplify the view-ids setting
5723 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
5725 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5726 libs: encoder: h264: Use gst_param_spec_array for view-ids
5727 GValueArray is deprecated. Use GstValueArray instead.
5728 gst_param_spec_array can be deserialized from command line using:
5729 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5730 While the g_param_spec_value_array() can not, and always get
5731 error: "gst_value_deserialize_g_value_array: unimplemented"
5732 Also fixed an out-of-range bug.
5734 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
5736 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5737 libs: Change the parameter setting order when encode picture.
5738 The order in gst_vaapi_enc_picture_encode when encoding one
5739 picture is not very correct. The misc parameters are set before
5740 the picture parameters. Some of the misc parameters such as
5741 ROI may change the current picture parameters. But the later
5742 setting of picture parameter will re-init all picture related
5743 parameters and clear the previous setting. The right order
5744 should be picture parameter first and then misc parameters.
5745 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5747 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
5749 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5750 libs: decoder: jpeg: support dynamic resolution change decode.
5751 Add size_changed flag to watch out resolution. if change, reset
5752 jpeg decoder's context.
5754 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
5756 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5757 libs: encoder: h265: add low power mode encode.
5758 By now, this feature only support by media-driver on Ice Lake
5759 platform, more information you can reference:
5760 https://github.com/intel/media-driver
5762 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
5764 * gst/vaapi/gstvaapiencode.c:
5765 vaapiencode: gobject's prop_id differ from vaapi encoder
5766 The vaapi internal encoder's property id are negative, thus they are
5767 different from GObject's property ids.
5768 gst_vaapi_encoder_set_property() should map to the internal encoder
5769 property id, assigned in gst_vaapiencode_default_set_property().
5771 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
5774 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5776 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
5779 meson: use new 'python' module instead of deprecated 'python3' one
5781 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
5784 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5785 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5787 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
5792 * docs/plugins/inspect/plugin-vaapi.xml:
5796 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
5798 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5799 libs: Fix a typo in comments.
5800 Fix a typo in function description of
5801 gst_vaapi_surface_pool_new_with_chroma_type.
5802 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5804 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5806 * gst/vaapi/gstvaapipluginutil.c:
5807 plugin: if any caps in downstream, negotiate raw video
5808 When downstream has any caps, vaapi should not shovel vaapi featured
5809 buffers, but rather plain raw video, assuming always the worst case
5810 scenario (downstream cannot handle featured video memory but raw
5811 system memory buffers).
5812 This patch query the peer caps without any filter, to know if
5813 donwstream just ask for any caps, if so jump to the color space
5814 checking, otherwise do the caps intersection and continue with the
5815 feature selection algorithm.
5818 === release 1.15.2 ===
5820 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5826 * gstreamer-vaapi.doap:
5830 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5832 * docs/plugins/inspect/plugin-vaapi.xml:
5835 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
5837 * gst/vaapi/gstvaapivideomemory.c:
5838 vaapivideomemory: Prefer same format for surface and image
5839 We prefer to use the same format between image and surface for gst
5840 vaapi allocator. The old way may choose different formats between
5841 image and surface. For example, the RGBA image may have a NV12 surface.
5842 So we need to do format conversion when we put/get image to surface.
5843 Some drivers such as iHD can not support such conversion and always
5844 cause a data flow error. There may also have some performance cost
5845 for format conversion when put/get images.
5846 So we prefer to use the same format for image and surface in the
5847 allocator. If the surface can not support that format, we then
5848 fallback to find a best one as the surface format.
5849 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5851 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
5853 * gst-libs/gst/vaapi/video-format.c:
5854 libs: Delete the duplicated ARGB video format.
5855 Two ARGB formats with the same format information.
5856 Should be verbose and delete one.
5857 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5859 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
5862 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5863 glx: Stop specifying GLX_DEPTH_SIZE
5864 This code is just confused. It's asking for at least as many bits of
5865 (z-axis) depth as the root window has bits of (color) depth. For rgb565
5866 or rgb888 this is harmless, but at 10 bits per channel this demands a
5867 30-bit or deeper Z buffer. While some hardware could in principle do a
5868 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5870 We're not actually using the Z buffer, so just stop asking for one.
5872 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
5875 * gst-libs/gst/vaapi/Makefile.am:
5876 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5877 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5878 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5879 * gst-libs/gst/vaapi/meson.build:
5880 * gst/vaapi/gstvaapisink.c:
5882 libs: wayland: add support for XDG-shell protocol
5883 [wl_shell] is officially [deprecated], so provide support for the
5884 XDG-shell protocol should be provided by all desktop-like compositors.
5885 (In case they don't, we can of course fall back to wl_shell).
5886 Note that the XML file is directly provided by the `wayland-protocols`
5887 dependency and generates the protocol marshalling code.
5888 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5889 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5891 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
5893 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5894 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5895 It will help us to distinguish from other Wayland shell surface
5896 (such as XDG-shell) later on.
5898 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
5900 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5901 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5902 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5903 libs: wayland: Prefix wl_shell field with `wl_`
5904 It will help us to distinguish from other Wayland shells (such as
5905 XDG-shell) later on.
5907 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
5909 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5910 libs: display: lock ensure_profile()
5911 Thread safety patch for ensure_profile() function
5914 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5917 meson: bump the minimum wayland version requirement to 1.11.0
5918 This was missed on commit 77bb3424
5920 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5922 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5923 * gst/vaapi/gstvaapisink.c:
5924 vaapisink: x11: trap WM_DELETE_WINDOW message
5925 Register the WM_DELETE_WINDOW message from window manager and
5926 trap it to stop the pipeline cleanly.
5927 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5929 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5931 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5932 libs: window: remove native-id property
5933 native-id property is problematic since the variable that stores it is
5934 gsize, which is platform specific, and in some is bigger than unsigned
5935 long, and there are not way to handle gsize properties.
5936 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5937 like to keep using it for this scope.
5938 This patch removes the native-id property and set it manually in
5939 gst_vaapi_window_new_internal().
5941 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5943 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5944 libs: window: use G_GSIZE_MODIFIER for window id
5945 gsize type is not equal in all platforms, then the 'l' print modifier
5946 shall not be used always.
5947 This issue was found in Debian builds.
5949 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
5951 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5952 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5953 encoder: h264/h265: set SPS cbr_flag with correct value.
5954 The flag only set as 1 when the rate-control mode is CBR.
5956 === release 1.15.1 ===
5958 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5964 * gstreamer-vaapi.doap:
5968 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5970 * docs/plugins/inspect/plugin-vaapi.xml:
5973 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5975 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5976 libs: encoder: refactor to avoid code duplication
5977 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
5978 the same code segment where the coded buffer is created, the picture
5979 encoded on it and pushed to the async queue.
5980 The function gst_vaapi_encoder_encode_and_queue() refactor this.
5982 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5984 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5985 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5986 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5987 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5988 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5989 libs: encoder: h264/h265: flush pending ordered pictures
5990 In order to flush the pending pictures, a new internal encoder vmethod
5991 is used: get_pending_reordered()
5992 This method follows an iterator pattern which will return the next
5993 picture to encode and push.
5994 The base encoder will call this function in a loop when flush() is called.
5995 For now, only H.264 and H.265 encoders implement this flushing mechanism.
5997 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com>
5999 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6000 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6001 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6002 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6003 libs: encoder: h264/h265: fix encode lose frame issue.
6004 Instead of dropping all remain frames in reorder_frame_list during
6005 flush, keep encoding.
6006 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
6008 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
6010 * gst/vaapi/gstvaapipostproc.c:
6011 vaapipostproc: before set surface proxy, check if it already been created and exist.
6012 Fix the deinterlace black frame when playing with glimagesink:
6013 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
6014 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
6016 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
6018 * gst-libs/gst/vaapi/gstvaapiutils.c:
6019 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
6021 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6023 * gst-libs/gst/vaapi/meson.build:
6024 * gst/vaapi/meson.build:
6026 * tests/meson.build:
6027 meson: build h264 fei encoder if possible
6029 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
6032 configure: bump the minimum wayland version requirement to 1.11.0
6034 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
6037 * gst-libs/gst/vaapi/Makefile.am:
6038 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6039 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6040 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6041 * gst-libs/gst/vaapi/gstvaapicompat.h:
6042 * gst-libs/gst/vaapi/gstvaapicontext.c:
6043 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6044 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6045 * gst-libs/gst/vaapi/gstvaapifilter.c:
6046 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6047 * gst-libs/gst/vaapi/gstvaapisurface.c:
6048 * gst-libs/gst/vaapi/gstvaapiutils.c:
6049 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6050 * gst-libs/gst/vaapi/meson.build:
6051 * gst/vaapi/Makefile.am:
6052 * gst/vaapi/gstvaapi.c:
6053 * gst/vaapi/gstvaapidecode.c:
6054 * gst/vaapi/gstvaapidecodebin.c:
6055 * gst/vaapi/gstvaapipluginbase.c:
6056 * gst/vaapi/meson.build:
6059 * tests/simple-decoder.c:
6060 vaapi: bump the minimum vaapi version requirement to 0.39.0
6061 And reduce unnecessary API version and structures check as well.
6062 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
6064 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6066 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6067 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6068 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6069 * tests/test-decode.c:
6070 * tests/test-filter.c:
6071 * tests/test-subpicture.c:
6072 * tests/test-textures.c:
6073 * tests/test-windows.c:
6074 libs: window: remove custom ref() and unref()
6075 Use gst_object_ref() and gst_object_unref() instead.
6077 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6079 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6080 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6081 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6082 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6083 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6084 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6085 libs: window: use its own debug category
6087 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6089 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6090 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6091 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6092 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6093 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6094 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6095 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6096 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6097 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6098 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6099 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6100 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6101 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6102 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6103 libs: window: refactor as gobject
6104 This is another step in the gobjectification of the internal library
6105 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6107 The idea is to minimize the changeset keeping the same design as
6109 GstVaapiWindow is defined as an abstract class with two properties:
6110 the GstVaapiDisplay and the native ID. Thus, many of the
6111 GstVaapiObject macros were copied as GstVaapiWindow macros.
6112 The function gst_vaapi_window_new_internal() is kept as a decorator
6113 of for calling gst_vaapi_window_create() and the possibility of
6115 The descendant classes, such as glx, still use the private
6116 structures, but through the gobject mechanism.
6118 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6120 * gst-libs/gst/vaapi/gstvaapifilter.c:
6121 libs: filter: use its own debug category
6123 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6125 * gst/vaapi/gstvaapidecode.c:
6126 * gst/vaapi/gstvaapipluginbase.c:
6127 * gst/vaapi/gstvaapipluginbase.h:
6128 * gst/vaapi/gstvaapipostproc.c:
6129 * gst/vaapi/gstvaapisink.c:
6130 plugins: Add more check for allowed raw caps.
6131 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6132 pad and src pad, which cause some bugs. For sink pad, we need to verify
6133 vaPutImage() while for the src pad we need to verify vaGetImage().
6134 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6135 to verify whether the decoded result(in some surface, NV12 format most
6136 of the time) can be vaGetImage to some raw image format. Add more check
6137 to fix all these problems.
6138 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6139 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6141 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6143 * gst/vaapi/gstvaapipostproc.c:
6144 vaapipostproc: fix csc fail when only change width or height.
6146 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6148 * tests/elements/meson.build:
6149 meson: Add gtk guard
6151 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6153 * gst/vaapi/gstvaapiencode_h264.c:
6154 libs: enc: h264: set max profile idc with correct profile.
6155 Use the highest rank of available profile as the max profile to
6157 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6159 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6161 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6162 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6163 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6164 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6165 This gets rid of the strange `do_init` macro and makes the intent a bit
6168 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6171 Automatic update of common submodule
6172 From ed78bee to 59cb678
6174 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6176 * gst-libs/gst/vaapi/gstvaapiimage.c:
6177 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6178 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6179 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6180 * gst-libs/gst/vaapi/video-format.c:
6181 * gst/vaapi/gstvaapidecode.c:
6182 * gst/vaapi/gstvaapipluginutil.h:
6183 libs: dec: h265: support decode for main-444 10bit streams.
6184 Add 444 10bit yuv format Y410, which can be used to decode
6185 main-444 10bit streams. Currently, this feature is only
6186 supported by media-driver in Icelake.
6188 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6190 * gst/vaapi/gstvaapidecode.c:
6191 * gst/vaapi/gstvaapisink.c:
6192 Run gst-indent through the files
6193 This is required before we enabled an indent test in the CI.
6194 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6196 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6198 * gst/vaapi/gstvaapipluginbase.c:
6199 plugins: modify image check of extract_allowed_surface_formats.
6200 The extract_allowed_surface_formats function just check whether
6201 we can support some kind of surface/image format pair. We just
6202 need to create a surface, create an image with the same video-format
6203 and putImage from image to surface. All these operations success,
6204 that kind of video-format is supported.
6205 The old manner do not work for some kind of video-format. For example,
6206 the RGBA kind of format will create a NV12 surface and RGBA image,
6207 and the putImage will fail because the format is not same. And so
6208 the RGBA format is not supported but actually it is supported.
6210 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6212 * gst/vaapi/gstvaapipostproc.c:
6213 vaapipostproc: add some missing locking
6214 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6215 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6217 This is needed when the pipeline is stopped during startup.
6219 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6221 * gst/vaapi/gstvaapivideomemory.c:
6223 Otherwise it will result in resource leak when failed to create
6226 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6228 * gst/vaapi/gstvaapiencode.c:
6229 vaapiencode: don't start src pad task in set_format
6230 Otherwise the task may be restarted during shutdown. Start the task in
6231 gst_vaapiencode_handle_frame() instead.
6233 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6235 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6236 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6237 * gst-libs/gst/vaapi/gstvaapiutils.c:
6238 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6239 * gst/vaapi/gstvaapidecode.c:
6240 * gst/vaapi/gstvaapipluginutil.h:
6241 libs: dec: h265: support decode for main-444 8bit streams.
6242 Add 444 8bit yuv format AYUV, which can be used to decode
6243 main-444 8bit streams. Currently, this feature is only
6244 supported by media-driver in Icelake.
6245 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6247 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6250 Add Gitlab CI configuration
6251 This commit adds a .gitlab-ci.yml file, which uses a feature
6252 to fetch the config from a centralized repository. The intent is
6253 to have all the gstreamer modules use the same configuration.
6254 The configuration is currently hosted at the gst-ci repository
6255 under the gitlab/ci_template.yml path.
6256 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6258 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6260 * gst-libs/gst/vaapi/gstvaapisurface.h:
6261 * gst-libs/gst/vaapi/gstvaapiutils.c:
6262 libs: Sync the GstVaapiChromaType to VA header file.
6263 Add more kinds of chrometype which will be used to describe
6264 new video formats. Sync it with 1.4.0 version header file.
6265 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6266 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6268 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6270 * gst-libs/gst/vaapi/meson.build:
6271 meson: link with -lm
6272 Fixes #117 hopefully.
6274 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6277 meson: bump meson required to 0.47 for feature options
6279 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6281 * gst-libs/gst/vaapi/video-format.c:
6282 libs: Modify the video format of endianness.
6283 We lack some video format because endianness declare.
6284 The video format should not directly relate to endianness. For example,
6285 ARGB on big endian should not be simplely seen as BGRA on little endian
6286 machine. We should provide endianess convert or format convert help
6287 functions if endianness does not match.
6288 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6289 Signed-off-by: Junyan He <junyan.he@intel.com>
6291 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6293 * gst/vaapi/gstvaapipluginutil.c:
6294 plugins: Fix build error when GL is enabled while EGL is disabled.
6295 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6296 unused-variable warning and may block build when Werror enabled.
6297 Several functions like gst_vaapi_display_egl_new_with_native_display
6298 have no prototype warning and link error when GL is enabled but EGL
6299 is disabled. Fix all these warning and link error.
6300 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6301 Signed-off-by: Junyan He <junyan.he@intel.com>
6303 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6305 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6306 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6307 libs: encoder: h264/h264fei: remove unuseless code.
6308 The variable are set twice, remove previous one.
6309 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6311 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6313 * tests/simple-encoder.c:
6314 * tests/test-fei-enc-in.c:
6315 tests: check return value when using gst_buffer_map.
6316 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6318 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6321 * meson_options.txt:
6322 * tests/elements/meson.build:
6323 * tests/meson.build:
6324 build: meson: build examples
6326 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6328 * gst-libs/gst/vaapi/meson.build:
6329 build: meson: declare headers for libgstvaapi
6330 Thus handling its recompilation if needed.
6332 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6335 Update common submodule location
6336 Remove the git directory
6338 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6341 * gstreamer-vaapi.doap:
6342 Clone the code from gitlab
6343 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6345 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6347 * gst-libs/gst/vaapi/gstvaapiimage.c:
6348 * gst-libs/gst/vaapi/gstvaapisurface.h:
6349 * gst-libs/gst/vaapi/gstvaapiutils.c:
6350 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6351 * gst-libs/gst/vaapi/video-format.c:
6352 * gst/vaapi/gstvaapidecode.c:
6353 * gst/vaapi/gstvaapipluginutil.h:
6354 libs: dec: h265: support decode for main-10-422 10bit streams.
6355 Add 422 10bit yuv format Y210, which can be used to decode
6356 main-10-422 10bit streams. Currently, this feature is only
6357 supported by media-driver in Icelake.
6358 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6360 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6362 * gst-libs/gst/vaapi/gstvaapicontext.c:
6363 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6364 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6365 rate control mode is set as CQP. In CQP mode, it shouldn't check
6366 roi_rc_qp_delta_support return value from driver backend.
6367 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6369 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6371 * gst/vaapi/gstvaapipostproc.c:
6372 vaapipostproc: fix classification string
6373 The classification string is splitted by '/' and then looks for the
6375 This patch removes the ';' by unifying all the components.
6377 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6379 * gst/vaapi/gstvaapipostproc.c:
6380 vaapipostproc: Add Hardware classifier to metadata
6382 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6384 * gst-libs/gst/vaapi/gstvaapicontext.c:
6385 libs: context: create context first before using it to create surface.
6386 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6387 sure to create it first before allocating its associated surfaces.
6388 This patch fixes a regression introduced in commit 82872f4 because
6389 the formats available in the current context now are ensured before
6390 creating the context's surfaces.
6391 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6393 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6395 * docs/plugins/inspect/plugin-vaapi.xml:
6396 * gst/vaapi/gstvaapidecode.c:
6397 * gst/vaapi/gstvaapiencode_h264.c:
6398 * gst/vaapi/gstvaapiencode_h264_fei.c:
6399 * gst/vaapi/gstvaapiencode_h265.c:
6400 * gst/vaapi/gstvaapiencode_jpeg.c:
6401 * gst/vaapi/gstvaapiencode_mpeg2.c:
6402 * gst/vaapi/gstvaapiencode_vp8.c:
6403 * gst/vaapi/gstvaapiencode_vp9.c:
6404 gst: Advertise elements interacting with hardware devices
6406 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6408 * gst-libs/gst/vaapi/gstvaapicontext.c:
6409 * gst-libs/gst/vaapi/gstvaapisurface.c:
6410 * gst-libs/gst/vaapi/gstvaapisurface.h:
6411 libs: context: query surface format before context to create surface.
6412 Before using context to create surface, the supported surface format
6413 should be checked first.
6414 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6416 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6418 * gst-libs/gst/vaapi/gstvaapiimage.c:
6419 * gst-libs/gst/vaapi/gstvaapivalue.c:
6420 libs: replace g_error with GST_ERROR
6421 And handle those errors rather than halting.
6423 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6425 * gst-libs/gst/vaapi/gstvaapiimage.c:
6426 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6427 * gst-libs/gst/vaapi/gstvaapisurface.c:
6428 libs: replace g_warning with GST_WARNING
6430 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6432 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6433 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6434 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6435 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6436 libs: Move from g_debug to GST_DEBUG.
6437 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6439 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6441 * gst/vaapi/gstvaapipostproc.c:
6442 vaapipostproc: change the way of handling deinterlace
6443 The current vaapipostproc calls driver's video processing
6444 pipeline for deinterlacing only if it is Advance deinterlacing.
6445 Modify in the way that it always tries with driver's video
6446 processing pipeline for deinterlacing, and falls back to software
6447 method of appending picture structure meta data only if it fails
6448 with driver's method.
6449 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6451 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6453 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6454 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6455 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6456 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6457 from T-REC-H.264-201704.
6458 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6460 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6462 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6463 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6464 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6465 * gst-libs/gst/vaapi/gstvaapisurface.c:
6466 * gst-libs/gst/vaapi/gstvaapiutils.c:
6467 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6468 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6469 * gst-libs/gst/vaapi/video-format.c:
6470 * gst-libs/gst/vaapi/video-format.h:
6471 * gst/vaapi/gstvaapidecode.c:
6472 * gst/vaapi/gstvaapipluginbase.c:
6473 * gst/vaapi/gstvaapipluginutil.h:
6474 libs: dec: h265: add 422 chroma format support.
6475 Add main-422-10 profile which support 422 chroma format stream.
6476 Currently, this feature is only supported by media-driver in Icelake.
6477 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6479 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6481 * tests/y4mreader.c:
6482 tests: include sysdeps.h in compilation unit
6483 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6484 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6486 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6488 * tests/y4mreader.c:
6489 * tests/y4mreader.h:
6490 tests: fix compilation
6491 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6493 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6495 * tests/y4mreader.h:
6496 tests: don's use sysdeps.h in header
6498 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6500 * gst-libs/gst/vaapi/gstvaapiutils.h:
6501 libs: utils: no need of include config.h
6503 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6507 * tests/test-decode.c:
6508 * tests/test-subpicture.c:
6509 tests: remove already include string.h
6510 Since sysdeps.h includes string.h there's no need to include it again.
6512 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6514 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6515 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6516 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6517 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6518 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6519 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6520 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6521 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6522 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6523 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6524 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6525 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6526 * gst-libs/gst/vaapi/gstvaapiimage.c:
6527 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6528 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6529 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6530 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6531 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6532 libs: remove already include string.h
6533 Since sysdeps.h includes string.h there's no need to include it again.
6535 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6537 * gst-libs/gst/vaapi/gstvaapiobject.h:
6538 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6539 * gst/vaapi/gstvaapivideometa_texture.c:
6540 libs: object: separation of internal API and plugins
6541 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6542 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6544 The purpose is readability.
6545 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6547 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6549 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6550 libs: parser_frame: change macros for inlined functions
6551 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6553 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6555 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6556 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6557 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6558 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6559 libs: videopool: remove unneeded code
6560 The removed code comes frome the bad practice of copy&paste. Better
6561 move it as internal function.
6562 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6564 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6566 * gst-libs/gst/vaapi/Makefile.am:
6567 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6568 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6569 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6570 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6571 * gst-libs/gst/vaapi/gstvaapiobject.c:
6572 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6573 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6574 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6575 * gst-libs/gst/vaapi/gstvaapitexture.c:
6576 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6577 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6578 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6579 * gst-libs/gst/vaapi/meson.build:
6580 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6581 This conditional code was when libgstvaapi was intended to be library
6582 used outside GStreamer. This not the case anymore, thus removing it.
6583 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6585 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6587 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6588 libs: dec: h265: fix the macros used for IDC profile
6589 profile_idc flag in SPS only indicate the IDC profile, which may
6590 need some other flags together to get the real profile.
6591 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6593 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6595 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6596 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6597 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6598 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6599 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6600 libs: use g_clear_pointer() when possible
6601 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6603 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6605 * gst-libs/gst/vaapi/gstvaapifilter.h:
6606 libs: filter: add gobject's cleanup function
6608 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6610 * gst-libs/gst/vaapi/gstvaapifilter.c:
6611 * gst-libs/gst/vaapi/gstvaapifilter.h:
6612 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6613 * tests/test-filter.c:
6614 libs: filter: remove custom ref() and unref()
6615 Replacing them by gst_object_ref() and gst_object_unref()
6616 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6618 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6620 * gst-libs/gst/vaapi/gstvaapifilter.c:
6621 * gst-libs/gst/vaapi/gstvaapifilter.h:
6622 libs: filter: refactor filter as gobject
6623 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6625 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6627 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6628 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6629 libs: decoder: remove destoy() and create() callbacks
6630 They were all replaced by reset()
6631 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6633 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6635 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6636 libs: decoder: vp9: implement reset() callback
6637 remove destroy() and create() callback
6638 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6640 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6642 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6643 libs: decoder: vp8: implement reset() callback
6644 remove create() and destroy() callbacks
6645 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6647 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6649 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6650 libs: decoder: vc1: implement reset() callback
6651 remove destroy() and create() callbacks
6652 use g_clear_pointer for rbdu_buffer
6654 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6656 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6658 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6659 libs: decoder: mpeg4: implement reset() callback
6660 remove destroy() and create() callback
6661 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6663 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6665 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6666 libs: decoder: mpeg2: implement reset() callback
6667 remove create() and destroy() callbacks
6668 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6670 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6672 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6673 libs: decoder: jpeg: implement reset() callback
6674 and remove create() and destroy() callbacks.
6675 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6677 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6679 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6680 libs: decoder: h265: implement reset() callback
6681 and remove create() and destroy()
6682 and use g_clear_pointer for dpb structure
6683 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6685 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6687 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6688 libs: decoder: h264: remove create() and destroy() callbacks
6689 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6691 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6693 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6694 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6695 * tests/test-decode.c:
6696 * tests/test-subpicture.c:
6697 libs: decoder: remove gst_vaapi_decoder_unref()
6698 Replaced by gst_object_unref() in tests
6699 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6701 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6703 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6704 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6705 libs: decoder: remove gst_vaapi_decoder_ref()
6706 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6708 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6710 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6711 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6712 libs: decoder: remove gst_vaapi_decoder_new()
6713 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6715 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6717 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6718 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6719 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6720 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6721 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6722 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6723 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6724 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6725 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6726 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6727 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6728 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6729 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6730 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6731 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6732 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6733 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6734 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6735 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6736 libs: decoder: refactor decoders as gobject
6737 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6739 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6741 * gst/vaapi/gstvaapidecode.c:
6742 vaapidecode: Requests upstream a key unit at parse or decode error.
6743 This is done to resume decoding after a parse error or decode error.
6744 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6746 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6748 * gst/vaapi/gstvaapidecode.c:
6749 vaapidecode: sets return value in failure case.
6750 In gst_vaapidecode_handle_frame, when there is a decode error
6751 there is a code path the returns an uninitialized value.
6752 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6754 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6756 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6757 libs: display: lock at extracting available image formates
6758 When running several vaapi elements at the concurrently, at
6759 initialization, there is a race condition when extractin the avaible
6760 formats for images and subpictures.
6761 This patch add a lock when the those arrays are filled.
6762 https://bugzilla.gnome.org/show_bug.cgi?id=797039
6764 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
6767 meson: Sync libversion and osxversion code from other repos
6768 gstreamer-vaapi does not build any libraries, only plugins, so this is
6769 not used, but sync it just in case someone does add it in the future.
6771 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6773 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6774 libs: encoder: h265: trivial documentation fix
6776 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
6778 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6779 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6780 libs: encoder: h265: add low delay B frame support.
6781 Low delay B frame provide the function of transforming
6782 P frame into low delay B frame which frame type is B, but
6783 only reference predictive frames. This can be used when P
6784 frame unsupported. Especially for P and B both unsupported,
6785 in this case, I and low delay B frame can be encoded in a
6787 https://bugzilla.gnome.org/show_bug.cgi?id=796984
6789 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6791 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6792 libs: decoder: h264: Avoid using picture after it has been free
6793 In some cases, the found_picture ended up being evicted and freed, which
6794 would lead to a use after free when accessing picture->base.poc. In this
6795 fix, we take a ref on the picture before calling dpb_evict.
6796 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6798 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6800 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6801 h264decoder: Fail decoding slice with missing inter-view reference
6802 Similarly to previous patch, we have no error concealment. As a side
6803 effect, it's better to skip slices with missing references then passing
6804 NULL pointers to the accelerator. Passing NULL pointer would lead to
6805 major visual artifact, a behaviour that is likely undefined.
6806 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6808 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
6810 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6811 libs: decoder: h264: reset context when the number of view is increased
6812 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6813 That's why it resets context without this patch.
6814 But for some media it doesn't increase dpb size. Even in this case we
6815 should reset context to deal with MVC decoding.
6816 Otherwise, it leads to assert.
6817 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6819 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6821 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6822 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6823 * gst/vaapi/gstvaapidecode.c:
6824 vaapidecode: Skip unparsable units from adapter
6825 If the unit could not be parsed, just skip this nal and keep parsing
6826 what is left in the adapter. We need to flush the broken unit in the
6827 decoder specific parser because the generic code does not know about
6828 units boundary. This increases error resilliance.
6829 Before this, the broken unit would stay in the adapter and EOS would be
6830 returned. Which stopped the streaming. Just removing the EOS would have
6831 lead to the adapter size growing indefinitely.
6832 https://bugzilla.gnome.org/show_bug.cgi?id=796863
6834 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6836 * gst/vaapi/gstvaapidecode.c:
6837 vaapidecoder: Don't error out on decode errors
6838 This is problematic on live pipeline where loosing network can
6839 cause an important amount of errors.
6840 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6842 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6844 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6845 h265decoder: Don't scan empty buffer
6846 Same as what we did for H264 decoder, this is to avoid an assertion
6848 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6850 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6852 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6853 libs: h264: renable the vaapi category for logging
6854 h264 log messages were logged in default category because a regression
6855 in code. This patch renable the usage of vaapi logging category.
6856 This regression was introduced in commit 7c365bdd.
6858 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6860 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6861 h264decoder: Fail decoding slice if modification process failed
6862 This patch chains up failure to executing the modification process. The
6863 end result is that we now fail decoding the slice if this process fails.
6864 This avoid sending a corrupted state to the accelerator. In some special
6865 cases, this could lead to unrecoverable errors.
6866 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6868 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6870 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6871 h264decoder: Don't scan empty buffer
6872 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6873 try and scan in that case. This fixes assertion that would some times
6874 happen when the stream is corrupted.
6875 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6877 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
6879 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6880 libs: encoder: jpeg: set component id and Tqi
6881 This change is due a problem encoding JPEGs with Intel's
6882 media-driver: green/black image when playback jpeg
6883 This patch sets component identifier and quantization table
6884 destination selector in frame header to support packing headers
6885 by Intel's media-driver that does not accept packed header
6887 https://bugzilla.gnome.org/show_bug.cgi?id=796705
6889 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
6891 * gst/vaapi/gstvaapipluginutil.c:
6892 pluginutil: downgrade unsupported driver logging
6893 On systems with an Nvidia card, this error is output each time
6894 the registry is rebuilt, which happens pretty often when
6895 using gst-build as a development environment.
6896 https://bugzilla.gnome.org/show_bug.cgi?id=796663
6898 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
6900 * gst/vaapi/gstvaapivideobufferpool.c:
6901 Update for g_type_class_add_private() deprecation in recent GLib
6903 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6905 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6906 h264dec: Remove false assumption about parity order
6907 The decoder was trying to detect earlier that a field was lost base
6908 on guessing the parity order. This breaks in streams were the parity
6910 This patch reverts the field order prediction code added by commit
6912 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6914 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6916 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6917 h264dec: Properly set sentinel in ref frame list
6918 This ensure that we always have sentinels set in the reference
6919 pictures arrays. The code wasn't unsafe, this simply improve the
6920 tracing, so instead of printing 32 lines of zeros, va tracer
6921 prints proper empty lists.
6922 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6924 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6926 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6927 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6928 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6929 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6930 * gst-libs/gst/vaapi/gstvaapifilter.c:
6931 * gst-libs/gst/vaapi/gstvaapiobject.c:
6932 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6933 * gst/vaapi/gstvaapipluginbase.c:
6934 * gst/vaapi/gstvaapivideometa.c:
6935 * tests/test-decode.c:
6936 libs: display: remove gst_vaapi_display_ref()
6937 Replace it with gst_object_ref()
6938 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6940 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6942 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6943 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6944 * gst/vaapi/gstvaapi.c:
6945 * gst/vaapi/gstvaapidecode.c:
6946 * gst/vaapi/gstvaapiencode.c:
6947 * gst/vaapi/gstvaapipluginbase.c:
6948 * gst/vaapi/gstvaapipluginutil.c:
6950 * tests/simple-encoder.c:
6951 * tests/test-decode.c:
6952 * tests/test-display.c:
6953 * tests/test-fei-enc-in.c:
6954 * tests/test-filter.c:
6955 * tests/test-subpicture.c:
6956 * tests/test-surfaces.c:
6957 * tests/test-textures.c:
6958 * tests/test-windows.c:
6959 libs: display: remove gst_vaapi_display_unref()
6960 Use gst_object_unref() instead.
6961 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6963 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6965 * gst/vaapi/gstvaapivideobufferpool.c:
6966 vaapibufferpool: declare parameter display as object
6967 We have neglected to update this code since GstVaapiDisplay turned
6968 into a GstObject descendant.
6969 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6971 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
6973 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6974 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6975 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6976 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
6977 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6978 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6979 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6980 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
6981 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
6982 But still something breaking GObject code convention remains, which is
6983 calling gst_vaapi_display_new() in each decendants.
6984 This patch replaces it with gst_vaapi_display_config(), defined in private
6986 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6988 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6990 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6991 libs: display: redefine gst_vaapi_display_create()
6992 The function name was gst_vaapi_display_create_unlocked(), nonetheless
6993 it wasn't called unlocked. In order to keep the semantics this patch
6994 renames the gst_vaapi_display_create_unlocked() as
6995 gst_vaapi_display_create(), removing the previous function
6996 gst_vaapi_display_create().
6997 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6999 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7002 Revert "build: meson: libva gst-uninstall friendly"
7003 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
7005 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7007 * gst/vaapi/gstvaapipluginutil.c:
7008 plugins: fix compilation
7009 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
7011 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7014 build: meson: libva gst-uninstall friendly
7015 Make gstreamer-vaapi to use libva uninstalled.
7017 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7019 * gst/vaapi/gstvaapipluginutil.c:
7020 plugins: refactor gst_vaapi_create_display_from_gl_context()
7021 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
7022 This path refactors it, in order to make the code readable and
7024 https://bugzilla.gnome.org/show_bug.cgi?id=796564
7026 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7028 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7029 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7030 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7031 libs: display: resurrect parent private member
7032 This is, practically, a revert of commit dcf135e2.
7033 The parent logic is useful for the EGL display, which is a decorator
7034 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
7035 calling vaInitialize() and vaTerminate() twice.
7036 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7038 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7040 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7041 libs: display: egl: initialize params structure
7042 Statically initialise the internal params structure.
7043 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7045 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7047 * gst/vaapi/gstvaapipluginutil.c:
7048 plugins: handle EGL when creating VAAPI display from gl
7049 If GstGL reports a EGL platform force to create a EGL display using
7050 the native EGL display.
7051 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7053 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
7055 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7056 * gst/vaapi/gstvaapipluginutil.c:
7057 display: egl: create VaapiDisplayEGL with native EGL display
7058 gst_vaapi_display_egl_new_with_native_display() has been broken since
7060 Currently it's needed to call this API to create a display providing
7061 the EGL display, so it could avoid duplicated calls to the native
7062 display (eg. eglTerminate).
7063 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
7064 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7066 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
7068 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7069 libs: decoder: release VA buffers after vaEndPicture
7070 This change is due a problem decoding JPEGs with Intel's media-driver:
7071 no image was generated.
7072 This patch relases the VA buffers after vaEndPicture() is called,
7073 and not before (after vaRenderPicture()).
7074 https://bugzilla.gnome.org/show_bug.cgi?id=796505
7076 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
7078 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7079 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
7080 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
7081 meson: fix build when xrender or xrandr are not available
7082 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
7084 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7086 * gst/vaapi/gstvaapipostproc.c:
7087 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7088 Otherwise a reference to a DMABuf input buffer is kept until the output
7090 https://bugzilla.gnome.org/show_bug.cgi?id=796399
7092 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7094 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7095 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7096 libs: display: remove unnecessary legacy code since gobjectification
7097 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7099 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7101 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7102 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7103 libs: display: remove unused code
7104 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7106 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7108 * gst/vaapi/gstvaapiencode_h264.c:
7109 vaapiencode: h264: log output caps
7111 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7113 * gst/vaapi/gstvaapiencode_h264.c:
7114 vaapiencode: h264: find profile in available and allowed caps
7115 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7116 find best profile in those available") changed the code to pick a profile
7117 that is actually supported by the hardware. Unfortunately it dropped the
7118 downstream constraints. This can cause negotiation failures under certain
7120 The fix is split in two cases:
7121 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7123 * The best allowed profile (pipeline's caps) is set as the encoding
7124 target profile (it will be adjusted later by the available profiles
7126 2\ the available VA-API caps does intersect with pipeline's allowed
7128 * The intersected caps are fixed, and its profile is set as the
7129 encoding target profile. In this case the is not the best profile,
7130 but the minimal one (if VA-API reports the profiles in order).
7131 Setting the minimal profile of the intersected caps is better for
7133 This patch fixes other tests related with caps negotiation, for
7134 example, it handles baseline profile, even when VA only supports
7135 constrained-baseline.
7136 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7137 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7139 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7141 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7142 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7143 The specification says,
7144 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7145 This patch changes the upper limit from 6 to 12.
7146 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7148 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7150 * gst/vaapi/gstvaapipluginutil.c:
7151 plugins: guard GstGL code
7153 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7155 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7156 libs: decoder: h264: use g_clear_pointer()
7158 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7160 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7161 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7162 libs: decoder: mpeg4, vc1: remove unused header
7164 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7166 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7167 libs: decoder: remove unused forward declaration
7169 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7172 fix configure.ac regression
7173 Fixes regression introduced by 77527d67abe
7174 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7176 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7178 * gst-libs/gst/Makefile.am:
7179 * gst-libs/gst/base/Makefile.am:
7180 * gst-libs/gst/base/gstbitwriter.c:
7181 * gst-libs/gst/base/gstbitwriter.h:
7182 * gst-libs/gst/base/meson.build:
7183 * gst-libs/gst/meson.build:
7184 * gst-libs/gst/vaapi/Makefile.am:
7185 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7186 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7187 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7188 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7189 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7190 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7191 * gst-libs/gst/vaapi/meson.build:
7192 libs: remove gstbitwriter
7193 Since it is deployed in gstreamer-core, there is no need to use
7195 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7197 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7199 * gst/vaapi/gstvaapidecode.c:
7200 vaapih264dec: add constrained and progressive profiles
7201 Those profiles have been added in the version 2012-01
7202 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7203 Both are supported by VAProfileH264High
7204 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7206 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7208 * gst/vaapi/gstvaapipluginbase.c:
7209 * gst/vaapi/gstvaapipluginutil.c:
7210 * gst/vaapi/gstvaapivideocontext.c:
7211 * gst/vaapi/gstvaapivideocontext.h:
7212 plugin: remove custom GstGL context handling
7213 Instead of using our own context handling for looking for GstGL
7214 parameters (display, context and other context), this patch changes
7215 the logic to use the utility function offered by GstGL.
7216 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7218 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7220 * gst/vaapi/gstvaapipluginbase.c:
7221 plugins: GstGL API must use the member variables
7222 This commit basically is a revert of commits 8092537 and fc1c415
7223 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7225 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7227 * gst/vaapi/gstvaapipluginbase.c:
7228 plugins: pass members as parameters of gst_gl_ensure_element_data()
7229 The parameters of gst_gl_ensure_element_data() have to be not
7230 local variable since they are going to be used to see if they're
7231 set in gst_element_set_context() inside the API.
7232 This is basically a revert of commit 3d56306c
7233 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7235 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7238 meson: fix USE_GLES_VERSION_MASK
7239 1. The macro in the code is USE_GLES_VERSION_MASK
7240 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7242 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7244 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7246 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7247 libs: egl: utils: mark context as wrapped when it is
7248 The returning egl context may be null, so we should check the
7250 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7252 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7254 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7255 libs: egl: utils: fix usage of GstGL macros
7256 Include gl.h for the required GstGL symbols.
7257 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7259 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7262 meson: use -Wl,-Bsymbolic-functions where supported
7263 Just like the autotools build.
7265 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7268 meson: use get_pkgconfig_variable()
7269 Use get_pkgconfig_variable() method, of dependency class, rather
7270 than using run_command().
7272 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7274 * gst-libs/gst/base/meson.build:
7275 * gst-libs/gst/vaapi/meson.build:
7277 meson: fix miscellaneous meson warnings
7278 WARNING: Passed invalid keyword argument "rqeuired".
7279 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7280 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7281 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7282 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7284 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7286 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7287 display: drm: Allow finding DRM paths out of the PCI subsystem
7288 This removes hard-coded checks on the parent subsystem of potential DRM
7289 devices. These checks were set to exlude devices that do not originate
7290 from the PCI bus, which is only a valid approach on x86 devices.
7291 Other devices may have a DRM device originating from the platform
7292 subsystem, so the checks that were previously restricted to PCI are
7293 extended to cover platform devices as well.
7294 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7295 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7297 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7299 * gst/vaapi/gstvaapivideocontext.c:
7300 videocontext: support wl-display in "gst.vaapi.app.Display"
7301 Through "gst.vaapi.app.Display" context, users can set their own
7302 VADisplay and native display of their backend.
7303 So far we support only X11 display, from now we also support Wayland
7306 - wl-display : pointer of struct wl_display .
7307 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7309 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7311 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7312 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7313 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7314 Implements new API function so that users could create GstVaapiDisplay
7315 with their own VADisplay within a native display as backend.
7316 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7318 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7320 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7321 wayland: don't poll if there are no pending frames
7322 Otherwise the following poll may not return for an arbitrary amount of
7323 time. This can happen if another wayland event queue has flushed and read
7325 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7327 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7329 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7330 libs: encoder: h265: 16 bit rounding of picture width and height
7331 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7333 In addition, codedbuf_size must be calculated according to this change.
7334 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7336 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7339 Automatic update of common submodule
7340 From 3fa2c9e to ed78bee
7342 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7344 * gst/vaapi/gstvaapiencode_h264.c:
7345 vaapiencode: h264: find best profile in those available
7346 Instead to look for the best profile in the allowed profiles by
7347 downstream, the encoder should look for the base profile in the
7348 available profile in VA-API.
7349 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7351 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7356 * docs/plugins/inspect/plugin-vaapi.xml:
7360 === release 1.14.0 ===
7362 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7367 * gstreamer-vaapi.doap:
7371 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7373 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7374 libs: decoder: h264: ensure num_ref_frames is greater than 0
7375 Even if it is the h264parse fault or bad video file, vaapih264dec
7376 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7377 as the driver might use it.
7378 Also see "info.ref_frames = dpb_size;" in
7379 gstvaapidecoder_h264.c::ensure_context
7380 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7382 === release 1.13.91 ===
7384 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7389 * gstreamer-vaapi.doap:
7393 === release 1.13.90 ===
7395 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7400 * gstreamer-vaapi.doap:
7404 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7406 * gst/vaapi/gstvaapipostproc.c:
7407 vaapipostproc: change how the metadata is copied
7408 Instead of copying the metada in prepare_output_buffer() vmethod,
7409 it is done in append_output_buffer_metadata() thus deinterlaced
7410 buffers could also have the proper metas.
7411 GstVideoCropMeta now it is copied internally and it is decided via
7412 transform_meta() vmethod.
7413 A new internal method, copy_metadata() was added to handle VPP
7414 transformation where non-GstVideoVaapiMeta metas were lost.
7416 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7418 * gst/vaapi/gstvaapipostproc.c:
7419 postproc: Copy meta data from input to output
7420 This will ensure that meta data without memory tags will be copied. This
7421 was noticed when testing ROI.
7422 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7424 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7426 * tests/elements/test-roi.c:
7427 tests: element: rewrite ROI test
7428 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7429 than injecting GstEvents. These meta are added as a pad probe in
7432 * Use of navigation messages to control de test
7433 * Use signal watch for processing messages
7434 * Change to H265 rather than H264 since current intel-vaapi-driver
7435 only supports ROI on kabylake.
7436 TODO: add a parameter to change the encoder/decoder to test.
7437 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7439 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7441 * gst-libs/gst/vaapi/gstvaapicontext.c:
7442 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7443 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7444 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7445 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7446 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7447 libs: encoder: reimplement ROI using meta
7448 Check input buffers for ROI metas and pass them to VA. Also added a
7449 new "default-roi-delta-qp" property in order to tell the encoder what
7450 delta QP should be applied to ROI by default.
7451 Enabled it for H264 and H265 encoders.
7452 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7454 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7456 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7457 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7458 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7459 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7460 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7461 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7463 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7465 * tests/simple-encoder.c:
7466 Revert "tests: simple-encoder: add an option to set ROI"
7467 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7468 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7470 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7472 * gst/vaapi/gstvaapiencode.c:
7473 * gst/vaapi/gstvaapiencode_h264.c:
7474 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7475 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7476 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7478 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7480 * gst/vaapi/gstvaapipluginbase.c:
7481 plugins: copy input buffer metas
7482 When importing buffers to a VA-base buffer, it is required to copy
7483 the metas in the original buffer, otherwise information will be
7484 lost, such as GstVideoRegionOfInterestMeta.
7485 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7487 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7489 * gst-libs/gst/vaapi/gstvaapisurface.c:
7490 libs: surface: cast to uintptr_t pointer
7491 According to Debian package auto-building, uintptr_t is not an
7492 unsigned long in i386 arch, raising an "incompatible pointer type"
7494 This patch adds a casting for compiler's satisfaction in i386.
7496 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7498 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7499 libs: encoder: add zero as valid value for periodic keyframe.
7500 Enabled zero as valid value for keyframe-period property.
7501 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7503 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7505 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7506 libs: encoder: code-style fix
7508 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7510 * gst/vaapi/gstvaapidecode.c:
7511 vaapidecode: generate system allocated buffers
7512 Generate system allocated output buffers when downstream doesn't
7513 support GstVideoMeta.
7514 The VA buffer content is copied to the new output buffer, and it
7515 replaces the VA buffer.
7516 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7518 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7520 * gst/vaapi/gstvaapipostproc.c:
7521 vaapipostproc: handle system allocated buffers when required
7522 When downstream can't handle GstVideoMeta it is required to send
7523 system allocated buffers.
7524 The system allocated buffers are produced in prepare_output_buffer()
7525 vmethod if downstream can't handl GstVideoMeta.
7526 At transform() vmethod if the buffer is a system allocated buffer,
7527 a VA buffer is instanciated and replaces the out buffer. Later
7528 the VA buffer is copied to the system allocate buffer and it
7529 replaces the output buffer.
7530 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7532 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7534 * gst/vaapi/gstvaapipluginbase.c:
7535 * gst/vaapi/gstvaapipluginbase.h:
7536 plugins: add gst_vaapi_copy_va_buffer()
7537 This helper function aims to copy buffers with VA memory to dumb
7538 buffers, when GstVideoMeta is not available dowstream.
7539 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7541 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7543 * gst/vaapi/gstvaapipluginbase.c:
7544 * gst/vaapi/gstvaapipluginbase.h:
7545 plugins: add COPY_OUTPUT_FRAME flag
7546 This patch add the member copy_output_frame and set it TRUE when
7547 when downstream didn't request GstVideoMeta API, the caps are raw
7548 and the internal allocator is the VA-API one.
7549 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7551 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7553 * gst/vaapi/gstvaapipluginbase.c:
7554 * gst/vaapi/gstvaapipluginbase.h:
7555 plugins: store the first downstream allocator if available
7556 The allocator will be required if we need to allocate a buffer
7557 to store the frame with the expected strides.
7558 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7560 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7562 * gst/vaapi/gstvaapivideobufferpool.c:
7563 * gst/vaapi/gstvaapivideobufferpool.h:
7564 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7565 This function will inform the element if it shall copy the generated
7566 buffer by the pool to a system allocated buffer before pushing it
7568 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7570 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7572 * gst/vaapi/gstvaapivideobufferpool.c:
7573 vaapibufferpool: don't change config when forcing video meta
7574 VA-API based buffer might need a video meta because of different
7575 strides. But when donwstream doesn't support video meta we need to
7576 force the usage of video meta.
7577 Before we changed the buffer pool configuration, but actually this
7578 is a hack and we cannot rely on that for downstream.
7579 This patch add a check fo raw video caps and allocator is VA-API,
7580 then the option is enabled without changing the pool configuration.
7581 In this case the element is responsible to copy the frame to a
7582 simple buffer with the expected strides.
7583 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7585 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7587 * gst/vaapi/gstvaapipostproc.c:
7588 vaapipostproc: set discont flag at vpp deinterlacing
7589 When deinterlacing with VPP the discont flag was not forwarded to
7590 the new created buffer. This patch sets the discont flag if input
7593 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7595 * gst/vaapi/gstvaapivideobufferpool.h:
7596 vaapibufferpool: remove wrong gcc annotation
7598 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7600 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7601 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7602 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7603 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7604 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7605 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7606 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7607 libs: encoder: h264,h265: extend max periodic keyframe.
7608 Increased max values of periodic key frame for h26x codecs.
7609 This allow more fine tunning of encoder that in certian scenario
7610 want higher periodic key frame.
7611 For example: it doesn't want a key frame each 10 seconds but
7613 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7615 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7621 === release 1.13.1 ===
7623 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7628 * gstreamer-vaapi.doap:
7632 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7634 * gst/vaapi/Makefile.am:
7635 vaapi: dist new header
7637 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7639 * gst/vaapi/gstvaapi.c:
7640 vaapi: register vaapisink as marginal on wayland
7641 vaapsink, when used with the Intel VA-API driver, tries to display
7642 surfaces with format NV12, which are handled correctly by
7643 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7644 pipelines on mutter.
7645 This shall be solved either by COGL or by making the driver to paint
7646 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7647 marginal when the Wayland environment is detected, no matter if it is
7649 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7651 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7653 * gst/vaapi/gstvaapipluginutil.c:
7654 plugins: update mesa's vendor string in whitelist
7655 Mesa has updated its VA-API Gallium driver vendor string:
7656 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7657 This patch tries to cover both, the old and the new one.
7658 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7660 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7663 meson: make version numbers ints and fix int/string comparison
7664 WARNING: Trying to compare values of different types (str, int).
7665 The result of this is undefined and will become a hard error
7666 in a future Meson release.
7668 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7670 * gst/vaapi/gstvaapipluginbase.c:
7671 plugins: handle vaapi allocator in allocation query
7672 In propose_allocation() if the numer of allocation params is zero, the
7673 system's allocator is added first, and lastly the native VA-API
7675 In decide_allocation(), the allocations params in query are travered,
7676 looking for a native VA-API allocator. If it is found, it is reused as
7677 src pad allocator. Otherwise, a new allocator is instantiated and
7678 appended in the query.
7679 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7681 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7683 * gst/vaapi/gstvaapivideomemory.h:
7684 vaapivideomemory: remove unused macro
7685 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7686 was never used, since the native VA-API allocator name has been
7687 GST_VAAPI_VIDEO_MEMORY_NAME.
7688 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7689 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7691 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
7693 * gst/vaapi/gstvaapisink.c:
7694 vaapisink: don't mask button events for foreign windows
7695 Don't subscribe to button press events when using a foreing window,
7696 because the user created window would trap those events, preveting the
7698 https://bugzilla.gnome.org/show_bug.cgi?id=791615
7700 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
7703 autotools: use -fno-strict-aliasing where supported
7704 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7706 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
7709 meson: use -fno-strict-aliasing where supported
7710 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7712 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
7714 * gst/vaapi/gstvaapi.c:
7715 vaapi: add NULL-sentinel to kernel_names
7716 The array needs to be NULL-terminated according to the
7717 gst_plugin_add_dependency() documentation.
7719 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7721 * gst/vaapi/gstvaapipostprocutil.c:
7722 vaapipostproc: remove spurious code
7723 This assignation is dead code, since gst_video_info_from_caps() set
7725 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7727 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7729 * gst/vaapi/gstvaapipostprocutil.c:
7730 vaapipostproc: if no p-a-r in out caps define a range
7731 Instead of copying the pixel-aspect-ratio from the sink caps, define
7732 an open range for the src caps pixel-aspect-ratio. Later it will be
7734 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7736 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7738 * gst/vaapi/gstvaapisink.c:
7739 vaapisink: check for display's color-balance properties
7740 Check for display's color-balance properties, available by the VA-API
7741 driver, before setting them.
7742 Also logs an info message of those unavailable properties.
7743 https://bugzilla.gnome.org/show_bug.cgi?id=792638
7745 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7747 * gst/vaapi/gstvaapipluginbase.c:
7748 plugins: re-using buffer pool breaks renegotiation
7749 at propose_allocation() we should not reuse the proposed buffer,
7750 because it could break renegotiation.
7751 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7753 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7755 * gst/vaapi/gstvaapipluginbase.c:
7756 plugins: use g_clear_object() to unref sinkpad_buffer_pool
7757 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7759 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7761 * gst-libs/gst/vaapi/meson.build:
7762 build: meson: add missing GstGL dependency
7764 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7766 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7767 libs: utils: egl: add missing guards for GstGL
7769 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7771 * gst/vaapi/gstvaapipluginbase.c:
7772 plugins: remove dmabuf-import hack
7773 Remove the hack to check if an upstream element has enabled the
7774 property io-mode enabled as dmabuf-import.
7775 https://bugzilla.gnome.org/show_bug.cgi?id=792034
7777 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7779 * gst-libs/gst/vaapi/Makefile.am:
7780 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7781 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7782 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7783 libs: egl: utils: use eglGetPlatformDisplay()
7784 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
7785 eglGetDisplay() is rather fragile, and it is recommended to use
7786 eglGetPlatformDisplay() when possible.
7787 In order to do that, this patch uses the helper in GstGL. If
7788 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7790 https://bugzilla.gnome.org/show_bug.cgi?id=790493
7792 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
7794 * gst/vaapi/gstvaapipostproc.c:
7795 vaapipostproc: lock ensure_filter with postproc_lock
7796 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7797 and allowed_sinkpad_caps. This can race with copying these caps in
7798 gst_vaapipostproc_transform_caps and lead to segfaults.
7799 The gst_vaapipostproc_transform_caps function already locks
7800 postproc_lock before copying the caps. Make sure that calls to
7801 gst_vaapipostproc_ensure_filter also acquire this lock.
7802 https://bugzilla.gnome.org/show_bug.cgi?id=791404
7804 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7806 * tests/test-filter.c:
7807 tests: test-filter: fix dereference before null check
7808 Null-checking op_info suggests that it may be null, but it has already
7809 been dereferenced on all paths leading to the check.
7810 There may be a null pointer dereference, or else the comparison
7811 against null is unnecessary.
7813 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7815 * tests/y4mreader.c:
7816 tests: y4mreader: fix string state checkup
7817 str cannot be null in that moment, but it may be the end of string.
7819 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7821 * tests/y4mreader.c:
7822 tests: y4mreader: use int for fgetc
7823 Assigning the return value of fgetc to char truncates its value.
7824 It will not be possible to distinguish between EOF and a valid
7827 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7829 * tests/y4mreader.c:
7830 tests: y4mreader: fix incompatible cast
7831 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7832 they are dereferenced as a wider long (64 bits, signed). This may lead
7833 to memory corruption.
7835 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7838 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7840 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
7843 Automatic update of common submodule
7844 From e8c7a71 to 3fa2c9e
7846 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7848 * gst/vaapi/gstvaapivideocontext.c:
7849 videoconvert: gst_element_post_message() is transfer full on msg
7850 For this reson we need not to unref the message, even if it failed.
7852 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7854 * gst/vaapi/gstvaapivideocontext.c:
7855 Revert "vaapivideocontext: possible memleak when no bus attached"
7856 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7858 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7860 * tests/elements/test-vaapicontext.c:
7861 test: vaapicontext: process have-context bus message
7863 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7865 * tests/elements/test-vaapicontext.c:
7866 test: vaapicontext: app context is not persistent
7868 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7870 * gst/vaapi/gstvaapipluginbase.c:
7871 * gst/vaapi/gstvaapivideocontext.c:
7872 * gst/vaapi/gstvaapivideocontext.h:
7873 vaapivideocontext: only vaapisink process app context
7874 gst.vaapi.app.Display context is made for applications that will
7875 provide the VA display and the native display to used by the
7876 pipeline, when are using vaapisink as overlay. There are no use
7877 case for encoders, decoders, neither for the postprocessor.
7878 In the case of the vaapisink, it shall query for gst.vaapi.Display
7879 upstream first, and then, if there is no reply,
7880 gst.vaapi.app.Display context will be posted in the bus for the
7881 application. If the application replies, a GstVaapiDisplay object
7882 is instantiated given the context info, otherwise a
7883 GstVaapiDisplay is created with the normal algorithm to guess the
7884 graphics platform. Either way, the instantiated GstVaapiDisplay
7885 is propagated among the pipeline and the have-message bus message.
7886 Also only vaapisink will process the gst.vaapi.app.Display, if
7887 and only if, it doesn't have a display already set. This is
7888 caused because if vaapisink is in a bin (playsink, for example)
7889 the need-context is posted twice, leading to an error state.
7890 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7892 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7894 * gst/vaapi/gstvaapivideocontext.c:
7895 vaapivideocontext: log the name of GstVaapiDisplay
7896 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7898 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7900 * gst/vaapi/gstvaapivideocontext.c:
7901 vaapivideocontext: possible memleak when no bus attached
7902 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7904 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7906 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7907 libs: window: wayland: remove unused header include
7908 Remove wayland-client.h include since there is no exposed symbols from
7911 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7913 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7914 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7915 libs: encoder: h264,h265: guard rate control's macroblock
7916 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7918 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
7921 Automatic update of common submodule
7922 From 3f4aa96 to e8c7a71
7924 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7926 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7927 libs: encoder: h264: Add Hierarchical-B encode
7928 Frames are encoded as different layers. Frame in a particular
7929 layer will use pictures in lower or same layer as references.
7930 Which means decoder can drop the frames in upper layer but still
7931 decode lower layer frames.
7932 B-frames, except the one in top most layer, are reference frames.
7933 All the base layer frames are I or P.
7934 eg: with 3 temporal layers
7938 T1, T2, T3: Temporal Layers
7941 T1: I0->P4 , P4->P8 etc..
7943 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7944 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7945 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7947 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7949 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7950 libs: encoder: h264: Add Hierarchical-P encode
7951 Frames are encoded as different layers. A frame in a particular
7952 layer will use pictures in lower or same layer as references.
7953 Which means decoder can drop the frames in upper layer but still
7954 decode lower layer frames.
7955 eg: with 3 temporal layers
7959 T1, T2, T3: Temporal Layers
7961 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
7962 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7963 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7965 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7967 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7968 libs: encoder: h264: Fix frame_num generation
7969 The frame_num generation was not correctly implemented.
7970 According to h264 spec, frame_num should get incremented
7971 for each frame if previous frame is a referece frame.
7972 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
7973 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7974 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7976 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7978 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7979 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7980 libs: encoder: h264: Add new property "prediction-type"
7981 Adds new property "prediction-type" to select different reference
7982 picture selection modes like hierarchical-p, hierarchical-b etc.
7983 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7984 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7986 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
7988 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7989 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7990 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
7991 Adds some basic building blocks to ease the implementation
7992 of hierarchical prediction modes.
7993 -- add an utility method to find temporal level of each frame
7994 -- define max_ref_frame count based on temporal level count
7995 -- add temporal_level_div[] for finding temporal level each frame
7997 -- find ip_period based on temporal level count
7998 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7999 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8001 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
8003 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8004 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8005 libs: encoder: h264: Add property "temporal-levels"
8006 Adds new property "temporal-levels" to select the number of
8007 temporal levels to be included in the encoded stream.
8008 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8009 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8011 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
8013 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8014 libs: encoder: objects: Add a reference flag
8015 We can have p-frame as non-ref and also b-frame as ref
8016 which are not supported yet. Reference flag
8017 is the first machinery needed for more advanced
8018 reference picture selection modes.
8019 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8020 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8022 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
8024 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8025 libs: surface: egl: add comment
8026 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
8027 where the creation of surfaces from GEM fd may fail.
8028 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8030 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8032 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8033 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
8034 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8035 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
8036 Adds a new function that changes the internal EGL display to the
8037 current one (eglGetCurrentDisplay()) and sets the current context
8038 too (eglGetCurrentContext()).
8039 This new function is called by gst_vaapi_texture_egl_create() updating
8040 the GstVaapiDisplayEGL with the current EGL display.
8041 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8043 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8045 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8046 libs: texture: egl: update EGL display and context
8047 It is required to use the context of the calling thread when wrapping
8048 a foreign texture. According the documentation of
8049 GstVideoGLTextureUploadMeta:
8050 "The caller of gst_video_gl_texture_upload_meta_upload() must
8051 have OpenGL set up and call this from a thread where it is valid
8052 to upload something to an OpenGL texture."
8053 This patch updates the EGL display and context in GstVaapiDisplay
8054 instance to the one used by te renderer that uploads the texture.
8055 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
8056 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8058 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8060 * gst/vaapi/gstvaapipluginbase.c:
8061 plugins: centralize assignation of GL objects
8062 Add plugin_set_gst_gl() where the GstGL objects are assigned.
8063 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8065 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8067 * gst/vaapi/gstvaapipluginbase.c:
8068 plugins: set GL objects if ensured
8069 Only set the GL display and GL other context if they are ensured.
8070 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8072 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8074 * gst/vaapi/gstvaapipluginbase.c:
8075 plugins: set GL objects if context is handled
8076 Only set the GL display and GL other context if they are extracted
8077 correctly from the gstreamer's context.
8078 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8080 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8082 * gst/vaapi/gstvaapipluginbase.c:
8083 plugins: fix memory leak when GL context is created
8084 When the GL display and context are created inside an VAAPI element
8085 the created GL context is leaked.
8086 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8088 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8090 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8091 libs: display: egl: free leaked memory
8092 The EGL VAAPI display forgot to release the egl display, context and
8093 proxied VAAPI display.
8094 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8096 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8098 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8099 libs: texture: egl: code style
8100 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8102 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8104 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8105 libs: surface: egl: error message if no extension
8106 Instead of silently fail to export the image if there is not available
8107 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8109 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8111 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8113 * gst/vaapi/gstvaapipluginbase.c:
8114 plugins: direct rendering on memory:VASurface
8115 As buffers negotiated with memory:VASurface caps feature can also be
8116 mapped, they can also be configured to use VA derived images, in other
8117 words "direct rendering".
8118 Also, because of the changes in dmabuf allocator as default allocator,
8119 the code for configuring the direct rendering was not clear.
8120 This patch cleans up the code and enables direct rendering when the
8121 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8122 even then the memory:VASurface cap feature is negotiated.
8123 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8125 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8127 * gst/vaapi/gstvaapipluginbase.c:
8128 * gst/vaapi/gstvaapipluginutil.c:
8129 plugins: only dmabuf on srcpad if downstream
8130 Set if source pad can handle dmabuf only if the GstGL context comes
8132 It is possible to know that at two moments:
8133 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8134 downstream pool reports back gst.gl.GstGLContext.
8135 2\ When GstGLContext is found as GstContext from dowstream.
8136 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8138 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8140 * gst/vaapi/gstvaapivideocontext.c:
8141 vaapivideocontext: add inline documentation
8142 Document function gst_vaapi_find_gl_local_context().
8143 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8145 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8147 * gst/vaapi/gstvaapipluginutil.c:
8148 * gst/vaapi/gstvaapivideocontext.c:
8149 * gst/vaapi/gstvaapivideocontext.h:
8150 vaapivideocontext: return the direction of gl context
8151 In function gst_vaapi_find_gl_context() add a direction parameter to
8152 return back the direction where the GstGL context was found.
8153 This is going to be useful when checking if downstream can import
8154 dmabuf-based buffers.
8155 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8157 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8159 * gst/vaapi/gstvaapipluginbase.c:
8160 * gst/vaapi/gstvaapipluginbase.h:
8161 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8162 This patch refactors the code by adding the function
8163 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8164 GstGLContext can handle dmabuf-based buffers.
8165 The function is exposed publicly since it is intended to be used later
8166 at GstVaapiDisplay instantiation.
8167 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8169 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8171 * gst/vaapi/gstvaapiencode.c:
8172 vaapiencode: allow to set property on runtime
8173 Tis patch, allows some properties that we want to be set on
8174 runtime. (eg. bitrate)
8175 Note that all properties are under control by num_codedbuf_queued.
8176 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8178 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8180 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8181 libs: encoder: allow to set bitrate on runtime
8182 In case of streaming, controlling bitrate dynamically for encoder might be
8183 important to manage quality of the streaming.
8184 This patch is to support such a scenario.
8185 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8187 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8189 * gst/vaapi/gstvaapi.c:
8190 * gst/vaapi/gstvaapi.h:
8191 * gst/vaapi/gstvaapidecodebin.c:
8192 vaapidecodebin: Register element if no VPP support is available too
8193 VPP support is only needed for advanced deinterlacing, which is not
8194 enabled by default either. Error out if it is selected but VPP is not
8195 supported, and otherwise just work without VPP support.
8196 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8198 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8200 * gst/vaapi/gstvaapipluginutil.c:
8201 Avoid infinite loop when vaapi_create_display fails
8202 Which might be the case when using, for example, xvfb.
8204 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8206 * gst-libs/gst/vaapi/gstvaapiutils.c:
8207 libs: utils: log warn if display fail
8208 gstreamer-vaapi initializes the display by trial-and-error, thus
8209 logging an error message if the display initialisation fails the user
8210 may be weary of the error message in the screen, if using VA-API 1.0
8211 This commit set the VA error log handler to GStreamer warning level
8212 while calling vaInitialize() and set it to error after that.
8213 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8215 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8217 * gst/vaapi/gstvaapipluginutil.c:
8218 plugins: try to create test display in order
8219 When creating the test display for querying capabilites, it try in
8220 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8221 since they are either composited with X11 or Wayland.
8222 The reason for this is to reduce the posibility of failure that could
8223 blacklist the plugin.
8224 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8226 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8228 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8229 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8230 libs: display: delay getting screen resolution
8231 Instead of extracting the screen resolution at GstVaapiDisplay
8232 creation, this patch delay it until the screen size is requested for
8234 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8236 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8238 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8239 libs: display: egl: avoid two vaDisplay instantiates
8240 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8241 or Wayland. Nonetheless it created another vaDisplay for it, instead
8242 of using the wrapped one.
8243 This patch enables the reuse of the wrapped vaDisplay avoiding
8245 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8247 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8249 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8250 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8251 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8252 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8253 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8254 libs: display: remove display_type from display info
8255 Since it's no required to pass the display type in the display info,
8256 the structure member is removed.
8257 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8259 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8261 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8262 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8263 libs: display: remove display_type member
8264 It is not used any more since GstVaapiDisplay was ported as a
8265 GstObject-based. This information is part of the class information.
8266 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8268 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8270 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8271 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8272 libs: display: remove parent member
8273 Parent was a crumb left from display cache.
8274 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8276 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8278 * gst/vaapi/gstvaapi.c:
8279 vaapi: Also register vaapipostproc without VPP support
8280 It can still do simple deinterlacing then.
8282 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8284 * gst/vaapi/gstvaapipostproc.c:
8285 vaapipostproc: Allow running without VPP support
8286 We returned FALSE from ::start() if VPP support is not available, but it
8287 is only really needed for complex filters and during transform we check
8288 for that. For simple deinterlacing it is not needed.
8290 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8292 * gst/vaapi/gstvaapipostproc.c:
8293 vaapipostproc: use scoped variable for return value
8294 Instead of reusing a parameter variable for the return value of
8295 gst_vaapipostproc_transform_caps(), this patch uses the function
8296 scoped pointer. Thus, the code is cleaner.
8297 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8299 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8301 * gst/vaapi/gstvaapipostproc.c:
8302 vaapipostproc: removed unused parameter
8303 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8304 helper function since the it is not used.
8305 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8307 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8309 * gst/vaapi/gstvaapipostproc.c:
8310 vaapipostproc: use scoped variable for return value
8311 Instead of reusing a parameter variable for the return value of
8312 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8313 pointer. Thus, the code is cleaner.
8314 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8316 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8318 * gst/vaapi/gstvaapipluginutil.h:
8319 plugins: memory:DMABuf only handles planar formats
8320 When glimagesink negotiates the caps feature memory:DMABuf the
8321 exported dmabufs buffers with NV12 format are not well rendered, thus
8322 setting only planar.
8323 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8325 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8327 * gst/vaapi/gstvaapiencode.c:
8328 vaapiencode: flush pending frames before set format
8329 Flush pending frames, if any, in the internal encorder, before setting
8330 the new negotiated format.
8331 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8333 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8335 * gst/vaapi/gstvaapidecode.c:
8336 vaapidecode: drain pending frames before set format
8337 Drain pending frames, if any, in the internal decoder before setting
8338 the new negotiated format.
8339 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8341 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8343 * tests/test-display.c:
8344 tests: display: use GObject getter
8345 Instead of using the gst_vaapi_display_get_property(), this patch
8346 replaces it with g_object_get_property() to dump the available VA
8348 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8350 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8352 * gst/vaapi/gstvaapisink.c:
8353 vaapisink: use GObject setter and getter
8354 Instead of using gst_vaapi_display_set_property() or
8355 gst_vaapi_display_get_property(), this patch set replace it usage
8356 with g_object_set() or g_object_get().
8357 Also the internal helper cb_set_value() is removed since it is not
8359 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8361 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8363 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8364 libs: display: initialize value if they are not yet
8365 This is a difference between the GObject API and the GstVaapi one: the
8366 GValue passed to get a property value, in GObject has to be
8367 initialized with g_value_init(), but in GstVaapi is has not.
8368 In order to overcome this mismatch, this patch call g_value_init()
8369 internally only in the passed one is not already initialized.
8370 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8372 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8374 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8375 libs: display: optimize properties setters and getters
8376 Shuffled some code to avoid to find the properties descriptor in the
8377 array twice, adding the internal functions _set_property() and
8379 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8381 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8383 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8384 libs: display: install properties in class
8385 Install the properties in the class as a normal GObject. Implement
8386 set_property() and get_property() vmethods.
8387 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8389 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8391 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8392 libs: display: remove gst_vaapi_display_properties_init()
8393 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8394 gst_vaapi_display_class_init()
8395 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8397 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8399 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8400 libs: display: remove libgstvaapi_init_once()
8401 It is not required since it can be unrolled in
8402 gst_vaapi_display_class_init()
8403 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8405 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8407 * tests/test-display.c:
8408 tests: test-display: remove display cache tests
8409 Since commit ec3e10f6, display cache was removed. This patch removes
8410 this leftovers in the display test.
8412 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8414 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8415 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8416 libs: decoder: h264/h265: decode codec data only if opened
8417 Fixes regression introduced by commit 2eb2b26a.
8418 There is a use case when the decoder set the src caps and immediatly
8419 tries to process the media codec_data, this happens before decoder is
8420 even opened, thus priv->parser is not instantiated yet.
8421 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8423 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8425 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8426 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8427 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8428 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8429 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8430 libs: encoder: change mbbrc from uint to enum
8431 Instead of handling the macroblock bitrate control as a integer, this
8432 patch changes it as a enum, which is more self documented in the
8434 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8436 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8438 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8439 Fix a typo in the prop string for compliance-mode
8441 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8443 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8444 libs: encoder: don't unref properties
8445 This patch fixes a regression introduced in commit 148f867c, since the
8446 props variable is set to object's member variable
8447 encoder->properties. And it is set in the instance initialization,
8448 thus it will not be leaked.
8449 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8451 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8453 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8454 * gst/vaapi/gstvaapiencode.c:
8455 vaapiencode/libs: encoder: fix leaks of properties
8456 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8458 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8460 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8461 libs: decoder: at update_caps() decode codec_data
8462 When updating the caps in decoder, if the caps has codec_data (avC
8463 format), it has to be parsed to update the state of the decoder.
8464 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8466 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8468 * gst-libs/gst/vaapi/gstvaapicontext.c:
8469 libs: context: fix wrong counter of the array of attributes
8470 The counter value passed to vaCreateConfig is always +1.
8471 This is a regression caused by commit e42ec3ad.
8472 The present patch fixes wrong counting of the array of attributes.
8473 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8475 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8477 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8478 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8479 libs: encoder: h265: support I/P/B QP setting seperatedly
8480 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8482 and set slice_qp_delta for each frame according to the value provided.
8483 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8485 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8487 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8488 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8489 libs: encoder: h264: support I/P/B QP setting seperatedly
8490 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8492 and set slice_qp_delta for each frame according to the value provided.
8493 In addition, remove the limitation of (<= 4) when setting
8495 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8497 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8499 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8500 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8501 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8502 Creates new variable for QP for I frame and keep it at configuration and
8503 use this for pic_init_qp and slice_qp_delta setting.
8504 Since changing min qp doesn't make sense, keep min qp as is.
8505 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8507 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8509 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8510 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8511 libs: encoder: h265: Add mbbrc property
8512 This property supports Macroblock level Bitrate Control as the
8513 following (same as h264 encoder):
8517 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8519 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8521 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8522 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8523 libs: encoder: h264: Add mbbrc property
8524 This property supports Macroblock level Bitrate Control as the
8529 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8531 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8533 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8534 libs: encoder: h265: add multi reference support
8535 This is doing the same as h264 encoder as the following:
8536 Using num_ref_frames provided and the result of the Query
8537 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8538 and perform encoding with multi reference frames as the following:
8539 1\ The num_ref_frames is being considered as the number of
8540 reference picture list0
8541 2\ Encoder adds 1 reference frame more to the reference picture list1
8542 internally if b-frame encoding.
8543 3\ If num_ref_frames is bigger than the number of refrence frames
8544 supported in the driver, it will be lowered.
8545 Also this patch includes:
8546 - Set num_negative_pics and num_positive_pics according to the number of
8548 - Set delta_poc according to the number of refs.
8549 - Increase max_dec_pic_buffering according to the number of refs
8550 - Change max_num_reorder_pics according to num of bframes
8551 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8553 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8555 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8556 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8557 libs: encoder: h265: add refs property
8558 Users can provide the number of reference frame by this property,
8559 which is exaclty same as h264.
8560 The value of the property will be considered as the number of
8561 reference picture list0 and will add 1 reference frame more to the
8562 reference picture list1 internally if b-frame encoding.
8563 If the value provided is bigger than the number of refrence frames
8564 supported in the driver, it will be lowered.
8565 The maximum value is aligned to the value of the driver supported now.
8566 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8568 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8570 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8571 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8572 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8573 Follows the specification as below:
8574 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8575 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8576 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8577 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8579 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8580 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8582 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8584 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8586 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8587 libs: encoder: h265: keep idr_period equal to keyframe period
8588 Remove FIXME code, which makes previous assignation spurious.
8589 This also means to make idr_period equal to keyframe period,
8590 which is same as h264 encoder.
8591 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8593 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8595 * gst/vaapi/gstvaapipluginbase.c:
8596 Request minimum buffer even if need_pool is FALSE
8597 When tee is used, it will not request a pool, but still it wants to
8598 know how many buffers are required.
8599 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8601 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8603 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8604 libs: encoder: h264_fei: VA-API 1.0 compat
8605 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8607 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8608 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8610 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8612 * gst/vaapi/gstvaapisink.c:
8613 vaapisink: Fix rendering in drm display
8614 Make sure vaapisink create a va surface backed buffer pool and all
8615 required attributes get assigned correctly for drm display type.
8616 This is needed to make the below pipeline working:
8617 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8618 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8619 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8621 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8623 * tests/Makefile.am:
8624 * tests/test-fei-enc-in.c:
8625 * tests/test-fei-enc-out.c:
8626 FEI: Add test applications to showcase fei use case
8627 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8629 ./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
8630 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8632 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8633 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8634 from saved files is still not working
8636 Wang, Yi <yi.a.wang@intel.com>
8637 Leilei <leilei.shang@intel.com>
8638 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8639 xiaominc <xiaomin.chen@intel.com>
8640 Li, Jing B <jing.b.li@intel.com>
8641 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8642 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8644 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8646 * gst/vaapi/Makefile.am:
8647 * gst/vaapi/gstvaapi.c:
8648 * gst/vaapi/gstvaapiencode_h264_fei.c:
8649 * gst/vaapi/gstvaapiencode_h264_fei.h:
8650 FEI: plugin: Add vaapih264feienc element
8651 A new FEI based encoder element for h264 is added: vaapih264feienc
8652 FEI is a an extension to VA-API which is providing low level
8653 advanced control over different stages of encoding.
8654 Extending vaapih264enc with fei support is possible, but it will
8655 make the code too much complicated and will be difficult
8656 to debug. So adding the new encoder element, but keeping
8657 the rank as 0 , vaapih264enc will stay as the primary
8658 encoder for normal use cases.
8659 The vaaih264feienc is mainly useful for customers who want to play
8660 with MotionVectors and Macroblock Predictions. Also user can
8661 do one stage of encoding(eg: only the Motion Vector Calculation)
8662 in software and offload trasformation/entroy-coding etc to
8663 Hardware (which is what PAK module is doing) using FEI element.
8664 vaapih264feienc can work in different modes using fei-mode properoty
8665 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8666 Important Note: ENC only mode won't produce any encoded data which is expected.
8667 But ENC alwys requires the output of PAK in order to do the inter-prediction
8668 over reconstructed frames.
8669 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8670 upstream element providing those buffers, PAK only won't work as expected.
8671 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8672 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8673 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8674 separately in vaapih264feienc.
8676 Wang, Yi <yi.a.wang@intel.com>
8677 Leilei <leilei.shang@intel.com>
8678 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8679 xiaominc <xiaomin.chen@intel.com>
8680 Li, Jing B <jing.b.li@intel.com>
8681 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8682 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8683 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8685 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
8687 * gst/vaapi/gstvaapiencode.c:
8688 * gst/vaapi/gstvaapiencode.h:
8689 FEI: plugin: Add virtual methods to base encode
8690 Two new virtual methods are added to gstvaapiencode.
8691 load_control_data(): load the FEI input buffers set by the upstream elements
8692 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8693 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8694 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8695 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8697 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
8699 * gst/vaapi/Makefile.am:
8700 * gst/vaapi/gstvaapifeivideometa.c:
8701 * gst/vaapi/gstvaapifeivideometa.h:
8702 FEI: plugin: Add fei specific video meta
8703 GstVaapiFeiVideoMeta holds the below fei codec objects:
8704 GstVaapiEncFeiMbCode
8706 GstVaapiEncFeiMvPredictor
8707 GstVaapiEncFeiMbControl
8709 GstVaapiEncFeiDistortion
8710 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8711 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8712 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8714 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8716 * gst-libs/gst/vaapi/Makefile.am:
8717 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8718 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8719 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8720 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8721 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8722 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8723 FEI: libs: Add FEI encoder
8724 Adding FEI encoder to core lib.
8725 The code is splitted into three session:
8726 1: gstvaapiencoder_h264_fei.{h,c}
8727 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8728 All the modes ENC, PAK and ENC_PAK are running based
8729 the code in these files.
8730 2: gstvaapifeienc_h264.{h,c}
8731 Abstract implementation intended for ENC (only VME) operation.
8732 3: gstvaapifeipak_h264.{h,c}
8733 Abstrct implementation intended for PAK (only the PAK module)
8734 Right now ENC_PAK, ENC and PAK are running based on code
8735 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8736 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8737 needed if user request for ENC+PAK mode operation.
8738 ENC+PAK: Here we need to invoke two sequence of
8739 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8740 first for the ENC only and the second for PAK only.
8741 Each mode associated with separate context ,but same pool of surfaces are
8742 shared between the modes.
8743 This is more useful once we have custom BRC algorithms.
8745 Wang, Yi <yi.a.wang@intel.com>
8746 Leilei <leilei.shang@intel.com>
8747 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8748 xiaominc <xiaomin.chen@intel.com>
8749 Li, Jing B <jing.b.li@intel.com>
8750 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8751 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8753 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8755 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8756 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8757 FEI: libs: Add fei codec objects to GstVaapiEncPicture
8758 All the codec objects(vaapi buffers) supposed to be
8759 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8760 for each frame, follow the same design for FEI too.
8761 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8762 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8764 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8766 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8767 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8768 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8769 FEI: libs: Add fei codec objects in codedbufferproxy
8770 MbCode, MV and Distortion buffers (fei codec objects)
8771 can be treated as output of different fei modes based user request.
8772 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8773 can be dumped as output in ENC_PAK mode for analysis purpose.
8774 So treating them as a part of CodedBufferProxy too.
8775 Here we avoided Qp, MbControl and MvPredictor codec objects since
8776 there is no practical use case of treating them as "output buffers".
8778 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8779 xiaominc <xiaomin.chen@intel.com>
8780 Leilei <leilei.shang@intel.com>
8781 Li, Jing B <jing.b.li@intel.com>
8782 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8783 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8785 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8787 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8788 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8789 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8790 FEI: libs: Add fei codec objects to surface proxy
8791 Add fei codec objects to surface proxy since handling the
8792 fei buffers(codec objects here) external to gstvaapisurfaceproxy
8793 will make the code complicated. Especially considering the behavior
8794 of encoder where the input frame order from upstream and output
8795 frame order to the downstream are not sequential.
8797 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8798 xiaominc <xiaomin.chen@intel.com>
8799 Leilei <leilei.shang@intel.com>
8800 Li, Jing B <jing.b.li@intel.com>
8801 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8802 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8804 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8806 * gst-libs/gst/vaapi/Makefile.am:
8807 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8808 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8809 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8810 FEI: Add codec objects for fei usecase
8811 There are 6 new va buffer types, each defined as a specific codec object.
8812 Borrowed the code from gstvaapicodecobject , but made a clear separation
8813 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8814 feicodecobjects can be shared between elements and also can be accessed
8815 from different thread.
8816 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8817 object is not shared between elements.So we utilize the already
8818 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8819 in gstvaapfei_objects_priv.h in order to have a better
8822 -- Probably we need _locked_map() and _unlocked_map()
8823 -- Context can be associated with PreEnc(not just Enoder)
8824 once we have the proper support inplace, but for now we don't have
8825 PreEnc support, so should be safe enough to use GstVaapiEncoder.
8826 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8827 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8829 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8831 * gst-libs/gst/vaapi/Makefile.am:
8832 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8833 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8834 FEI: libs: add H264 fei specific utility functions
8835 Added enum/flag type definitions for a number of FEI
8836 input and output parameters.
8837 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8838 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8839 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8840 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8841 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8843 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8845 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8846 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8847 FEI: libs: Add virtual method for secondary context creation.
8848 Add a new vitrual method ensure_secondary_context to the
8849 base encoder which is only required for the FEI entrypoint, that too
8850 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8851 supported directly by libva or driver, but this can be enabled
8852 from the middleware.
8853 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8854 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8855 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8856 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8857 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8858 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8860 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8862 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8863 FEI: libs: make sure the default context creation works as expected.
8864 Current code always guess the entrypoint during init phase in case
8865 if there is no entrypoint already configured in GstVaapiContextInfo.
8866 Make sure FEI Entrypoint is not messing up with this logic.
8867 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8868 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8870 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8872 * gst-libs/gst/vaapi/gstvaapicontext.c:
8873 * gst-libs/gst/vaapi/gstvaapicontext.h:
8874 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8875 FEI: libs: Add FEI functional mode configuration
8876 FEI Entrypoint can work in either one of the 3 different modes:
8877 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8878 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8879 functioal mode configuration.
8880 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8881 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8883 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8885 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8886 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8887 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8888 FEI: libs: Add FEI Entrypoint mapping
8889 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8890 for VAEntrypointFEI.
8891 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8892 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8894 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8897 FEI: Add support for FEI conditional build
8898 FEI(Flexible Encoding Infrastructure) is an extension
8899 to VA API. Define USE_H264_FEI_ENCODER based on
8900 fei header file and required structures availability.
8901 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8902 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8904 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
8906 * gst/vaapi/gstvaapidecode.c:
8907 vaapidecode: force add h264 SVC profiles in caps
8908 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8910 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8911 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8913 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
8915 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8916 libs: decoder: h264: decode SVC base layer only
8917 Drops non-base NALs when the base-only property is set to TRUE.
8918 This modifies the behavior for MVC streams with base-only too: All the
8919 non-base units are dropped before they are decoded instead of dropping
8920 the non-base frames.
8921 The relevant part from the H264 spec is:
8922 > Decoders that conform to one or more of the profiles specified in
8923 Annex A rather than the profiles specified in Annexes G or H shall
8924 ignore (remove from the bitstream and discard) the contents of all NAL
8925 units with nal_unit_type equal to 14, 15, or 20.
8926 To eliminate side effects from the offending units:
8927 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8929 - The NAL parsing is skipped and their flags are set to
8930 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8931 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8932 use them even if they are flagged to be skipped. Subset SPS's and slice
8933 extension units are not stored there either.
8934 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8935 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8937 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
8939 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8940 libs: decoder: h264: check nalu validity in parser info finalize
8941 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8942 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8944 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8946 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8947 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8948 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8949 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8950 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8951 libs: encoder: remove unused cast macro
8952 Remove internal macro to cast structure that are already declared
8955 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8957 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8958 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8959 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8960 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8961 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8962 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8963 Revert "libs: encoders: remove unused cast macros"
8964 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
8966 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8968 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8969 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8970 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8971 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8972 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8973 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8974 libs: encoders: remove unused cast macros
8975 They are only used inside the code, where another macro is defined.
8976 Thus these exported macros have no use.
8978 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8980 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8981 libs: decoder: h264: improve code-style
8982 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8984 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8986 * gst-libs/gst/vaapi/gstvaapicompat.h:
8987 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8988 libs: encoder: h264: handle deprecated enum
8989 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
8990 instead VAEncPackedHeaderRawData should be used.
8991 This patch creates a compatibility symbol,
8992 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
8994 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8996 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8998 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8999 * gst-libs/gst/vaapi/gstvaapiutils.c:
9000 libs: guard deprecated symbols
9001 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
9002 guards the H.264 baseline usage. Consider this commit as a
9003 continuation of commit e0e0a474
9004 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9006 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9010 * meson_options.txt:
9011 Revert "build: check for libva-2.0"
9012 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
9013 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9015 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9017 * gst-libs/gst/vaapi/gstvaapicompat.h:
9018 * gst-libs/gst/vaapi/gstvaapicontext.c:
9019 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9020 libs: macro to get a renamed value in VA-API 1.0
9021 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
9022 renamed one member from roi_value_is_qp_delat to
9023 roi_value_is_qp_delta, which is the correct name.
9024 In order to keep back compatibility a macro has added to access this
9026 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9028 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9030 * gst/vaapi/gstvaapipluginbase.h:
9031 * gst/vaapi/gstvaapipluginutil.c:
9032 plugins: include main gstgl header
9033 Instead including particular gstgl header files in a header file
9034 that doesn't export a gstgl symbol, the main gstgl header file is
9035 included in gstvaapipluginutil.c where the symbols are used.
9036 https://bugzilla.gnome.org/show_bug.cgi?id=786597
9038 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9040 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9041 libs: encoder: h264: fix enum namespace
9043 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
9046 Automatic update of common submodule
9047 From 48a5d85 to 3f4aa96
9049 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9051 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9052 libs: encoder: h264: remove spurious assignation
9054 An assigned value that is never used may represent unnecessary
9055 computation, an incorrect algorithm, or possibly the need for cleanup
9057 ip_period is assigned first to be rewritter inmediatly after. The
9058 first assignation is spurious.
9060 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
9062 * gst/vaapi/gstvaapidecode.c:
9063 vaapidecode: fix mismatch of the return type
9064 https://bugzilla.gnome.org/show_bug.cgi?id=786307
9066 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9068 * gst-libs/gst/vaapi/Makefile.am:
9069 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
9070 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
9071 * gst-libs/gst/vaapi/gstvaapiutils.h:
9072 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
9073 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9074 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9075 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9076 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
9077 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
9078 * gst-libs/gst/vaapi/meson.build:
9079 libs: remove unused header
9080 Since libgstvaapi is not distributed, there is no need to check for
9081 private header inclusion. Thus removing it.
9082 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9084 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9086 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9087 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9088 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9089 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9090 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9091 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9092 libs: utils: move gstvaapisurface.h to private headers
9093 Since the utils don't expose API defined in gstvaapisource.h, it is
9094 moved to their private headers where they are used.
9095 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9097 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9099 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9100 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9101 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9102 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9103 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9104 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9105 libs: utils: remove va.h include in header
9106 And include gstvaapicompat.h in the C files, since the VA-API is not
9107 exposed in the headers.
9108 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9110 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9112 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9113 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9114 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9115 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9116 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9117 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9118 libs: encoder: remove va.h include
9119 Since it is already managed by gstvaapicompat.h
9120 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9122 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9124 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9125 * gst-libs/gst/vaapi/gstvaapicompat.h:
9126 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9127 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9128 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9129 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9130 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9131 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9132 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9133 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9134 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9135 * gst-libs/gst/vaapi/gstvaapifilter.c:
9136 * gst-libs/gst/vaapi/gstvaapiutils.c:
9138 build: consolidate the VA sub API includes
9139 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9140 since they are all already included in va.h after VA-API 0.38.
9141 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9143 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9147 build: check for va_vpp.h
9148 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9149 allow us to handle the inclusion of the header better.
9150 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9152 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9155 meson: don't export symbols by default
9156 Only plugin entry points should be exported.
9158 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9160 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9161 libs: decoder: h265: remove spurious code
9163 Logically dead code: The indicated dead code may have performed some
9164 action; that action will never occur.
9165 By using pointer arithmetic is impossible to get NULL.
9167 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9169 * gst-libs/gst/vaapi/gstvaapicontext.c:
9170 libs: context: use attribs index instead pointers
9172 Out-of-bounds write. This could cause an immediate crash or incorrect
9174 Coverity basically found that it is possible to assign more than 4
9175 attribs in the array.
9176 In my opinion this was produced because code pattern used pointer
9177 arithmetic, which is not readable nor maintainable.
9178 This patch refactors config_create() to use an array index rather than
9179 pointer arithmetic. Also a run-time check for index size was added.
9181 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9183 * gst/vaapi/gstvaapiencode_h264.c:
9184 vaapiencode: h264: remove spurious code
9186 An unsigned value can never be negative, so this test will always
9187 evaluate the same way.
9188 As len is guint32, there is no need to check it if it is equal or
9191 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9193 * gst/vaapi/gstvaapidecode.c:
9194 vaapidecode: initialize variable
9196 The variable will contain an arbitrary value left from earlier
9198 Variable base_only is fetched from base-only property, and it may be
9199 not assigned. It needs to be initialized.
9201 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9203 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9204 libs: windows: wayland: fail if cannot remove last frame
9206 If the function returns an error value, the error value may be
9207 mistaken for a normal value.
9208 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9209 not the last one, the function fails. Thus, logging an info message.
9211 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9213 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9214 libs: utils: glx: check return value
9216 If the function returns an error value, the error value may be
9217 mistaken for a normal value.
9218 Function sscanf returns the number of assignations done. Validate this
9219 return value with the number of expected variables to match.
9221 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9223 * gst-libs/gst/vaapi/gstvaapiobject.c:
9224 libs: vaapi: object: remove unrequired NULL check
9226 Dereference after null check: Either the check against null is
9227 unnecessary, or there may be a null pointer dereference.
9228 Variable klass has been validated as non-NULL several time before in
9229 gst_vaapi_object_new() function, so there is no need to check it
9232 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9234 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9235 libs: encoder: h265: remove spurious assignation
9237 An assigned value that is never used may represent unnecessary
9238 computation, an incorrect algorithm, or possibly the need for cleanup
9240 ip_period is assigned first to be rewritter inmediatly after. The
9241 first assignation is spurious.
9243 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9245 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9246 libs: encoder: h264: fix copy & paste error
9248 The copied code will not have its intended effect.
9249 This is a bug from commit cdaf15b2, where the intention is to
9250 initialize RefPicList1 while setting RefPicList0.
9252 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9254 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9255 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9256 libs: encoder: h265: fix possible integer overflow
9258 Unintentional integer overflow. The expression's value may not be what
9259 the programmer intended, because the expression is evaluated using a
9260 narrow (i.e. few bits) integer type.
9261 Cast operator to guint64 before computation to avoid narrowing.
9264 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9266 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9267 libs: decoder: mpeg4: fail if return value is not OK
9269 An assigned value that is never used may represent unnecessary
9270 computation, an incorrect algorithm, or possibly the need for cleanup
9272 In the return value of decode_slice() or
9273 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9274 decode_packet() function.
9276 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9278 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9279 libs: decoder: h265: check for null
9281 Dereference after null check: Either the check against null is
9282 unnecessary, or there may be a null pointer dereference.
9283 While looking for hte lowest poc, according to rest of the code, the
9284 picture in the dbp (decoded picture buffer) might be NULL, thus we
9285 could check for a NULL picture before assigned as found.
9286 Also, split a comma operator because it is considered as a bad
9287 practice because it possible side effects.
9289 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9291 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9292 libs: decoder: h265: untaint loop control variable
9294 Scalars (for example, integers) are not properly
9295 bounds-checked (sanitized) before being used as array or pointer
9296 indexes, loop boundaries, or function arguments are considered as
9298 In this case, num_nals were not checked before used as loop control.
9300 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9302 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9303 libs: decoder: h264: remove unrequired NULL check
9305 Dereference after null check: Either the check against null is
9306 unnecessary, or there may be a null pointer dereference.
9307 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9308 prev_picture could be NULL, that's why the code did a null check. But,
9309 since commit 52adebe7, the previous reference frames are tracked, thus
9310 there is no need to check null anymore.
9312 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9314 * gst/vaapi/gstvaapidecode.c:
9315 vaapidecode: fix gst_caps_new_simple call
9316 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9318 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9320 * gst/vaapi/gstvaapidecode.c:
9321 vaapidecode: force add h264 MVC profiles in caps
9322 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9324 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9326 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9328 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9329 libs: decoder: h264: decode MVC base view only
9330 If processed SPS has mvc profile and the configuration is set to
9331 base-only, the frame is drop.
9332 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9334 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9336 * gst/vaapi/gstvaapidecode.c:
9337 * gst/vaapi/gstvaapidecode_props.c:
9338 vaapidecode: set h264 base-only to decoder
9339 Set the base-only value when property is set and the internal
9340 decoder is already instantiated or when the internal decoder
9342 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9344 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9346 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9347 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9348 libs: decoder: h264: add setter for base-only mode
9349 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9351 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9353 * gst/vaapi/gstvaapidecode_props.c:
9354 * gst/vaapi/gstvaapidecode_props.h:
9355 vaapidecode_props: h264: add base-only property
9356 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9358 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9360 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9361 libs: encoder: h264: missing property enum documentation
9363 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9365 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9366 libs: encoder: h264: add multi reference support
9367 Using num_ref_frames provided and the result of the Query
9368 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9369 and perform encoding with multi reference frames as the following:
9370 1\ The num_ref_frames is being considered as the number of
9371 reference picture list0
9372 2\ Encoder adds 1 reference frame more to the reference picture list1
9373 internally if b-frame encoding.
9374 3\ If num_ref_frames is bigger than the number of refrence frames
9375 supported in the driver, it will be lowered.
9376 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9378 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9380 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9381 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9382 libs: encoder: h264: add refs property
9383 Users can provide the number of reference frame by this property.
9384 The value of the property will be considered as the number of
9385 reference picture list0 and will add 1 reference frame more to the
9386 reference picture list1 internally if b-frame encoding.
9387 If the value provided is bigger than the number of refrence frames
9388 supported in the driver, it will be lowered.
9389 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9391 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9393 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9394 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9395 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9396 This function will query VAConfigAttribEncMaxRefFrames to get the
9397 maximum number of reference frames supported in the driver.
9398 This will be used for h264/h265 encoding.
9399 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9401 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9403 * gst/vaapi/gstvaapiencode_h265.c:
9404 vaapiencode: h265: compare an unsigned int if not zero
9405 An unsigned value can never be negative, so this test (greater than
9406 zero) will always evaluate the same way. Thus change it to just if
9409 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9411 * gst/vaapi/gstvaapipluginbase.c:
9412 plugins: check gst_gl_ensure_element_data() return value
9413 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9414 the return value of gst_gl_ensure_element_data(). The result is a code
9417 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9419 * gst/vaapi/gstvaapipluginutil.c:
9420 plugins: avoid dead code detection
9421 By using #elif macro, the static code analysis would stop to detect
9422 these lines as dead code. Also it is inforced the mutually exclusive
9425 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9427 * gst/vaapi/gstvaapivideobufferpool.c:
9428 vaapivideobufferpool: don't shift by negative since it's undefined
9429 The function g_bit_nth_lsf() may return -1 if the request bit position
9430 is not avaible. Thus, this patch check if the return value is not -1
9431 in order to continue.
9433 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9435 * gst/vaapi/gstvaapisink.c:
9436 vaapisink: fix memory leak
9438 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9440 * gst/vaapi/gstvaapipostprocutil.c:
9441 vaapipostproc: fix memory leaks
9443 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9445 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9446 libs: display: when appending formats change pointers to indexes
9447 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9449 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9451 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9453 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9454 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9455 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9456 Added a new property "compliance-mode", which default is the normal
9457 strict compliant mode.
9458 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9459 allocation size to improve performance in some specific Intel
9460 platforms (there is asignificant performance improvement in parallel
9461 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9462 pre-calculating the coded-buffer size.
9463 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9465 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9467 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9468 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9469 libs: utils_h264: Extend LevelLimit table with MinCR field
9470 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9472 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9474 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9476 * gst-libs/gst/vaapi/gstvaapiutils.c:
9477 libs: utils: libva 1.0 changed the logging
9478 The logging mechanism in libva has changed it's functions
9479 signatures. This patch updates that for libva versions >= 1.0
9480 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9482 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9484 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9485 libs: decoder: h264: libva 1.0 deprecated baseline
9486 libva 1.0 deprecated H.264 baseline profile and FMO support
9488 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9490 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9494 * meson_options.txt:
9495 build: check for libva-2.0
9496 Check for libva-2.0 since libva's developers decided to increase the
9497 library's version number.
9498 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9500 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9504 build: blacklist only libva 0.99.0
9505 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9506 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9508 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9510 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9512 * gst-libs/gst/vaapi/meson.build:
9513 build: meson: remove gstvaapidisplaycache.c
9514 This is a missing bit of commit ec3e10f6
9516 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9519 configure: do not break configure if gtk+-3.0 devel missing
9520 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9521 set USE_GTK=0 if gtk+-3.0 is not available.
9522 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9523 Author: Hyunjun Ko <zzoon@igalia.com>
9524 Date: Wed Jul 5 15:59:43 2017 +0900
9525 tests: elements: add testsuite of vaapi context
9526 ...configure fails if gtk+-3.0 development files are missing.
9527 The "with_gtk" option defaults to "check" in configure.ac
9528 which implies that if it is not explicitly requested then
9529 configure will only enable it if it's available on the system.
9530 However, the PKG_CHECK_MODULES rule that get's activated on
9531 "check" condition did not provide default when gtk+-3.0 devel
9532 packages are not found on the system. Thus, it resulted in
9534 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9535 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9537 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9540 * tests/elements/Makefile.am:
9541 * tests/elements/test-vaapicontext.c:
9542 tests: elements: add testsuite of vaapi context
9543 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9544 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9546 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9548 * gst/vaapi/gstvaapisink.c:
9549 vaapisink: fail if surface display is different
9550 Replacing GstVaapiDisplay during rendering might be hiding problems
9551 at some cases, even though it's safe currently since we use cache
9553 Play safe by failing if this happens.
9554 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9556 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9558 * gst/vaapi/gstvaapivideocontext.c:
9559 * gst/vaapi/gstvaapivideocontext.h:
9560 videocontext: support "gst.vaapi.app.Display" context
9561 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9562 and native display of their backend.
9564 - display : pointer of VADisplay
9565 - x11-display : pointer of X11 display (Display *), if they're using.
9566 This patch creates GstVaapidisplayX11 if information provided through
9567 "gst.vaapi.app.Display"
9568 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9570 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9572 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9573 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9574 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9575 Implements new API function so that users could create GstVaapiDisplay
9576 with their own VADisplay within a native display as backend.
9577 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9579 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9581 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9582 libs: display: pass display info when foreign display
9583 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9584 with that display, it also requires native display of the backend.
9585 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9587 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9589 * gst-libs/gst/vaapi/Makefile.am:
9590 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9591 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9592 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9593 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9594 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9595 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9596 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9597 libs: display: remove cache
9598 Remove a bunch of code that handles the VADisplay cache, since the
9599 context sharing should be doing this correctly.
9600 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9602 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9604 * tests/elements/Makefile.am:
9605 * tests/elements/test-vaapipostproc.c:
9606 tests: elements: add test for vaapipostproc
9607 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9609 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9611 * gst/vaapi/gstvaapipostproc.c:
9612 postproc: reconfigure when width or height changes
9613 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9615 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9617 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9618 libs: encoder: vp9: array terminated in zeros
9619 There is a crash when setting ref-pic-mode since the #GEnumValue
9620 array is not terminated with a structured with all memvers being
9622 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9624 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9626 * gst/vaapi/gstvaapiencode_h264.c:
9627 vaapiencode: h264: add plugin documentation
9628 Comment how the profile is set and other parameters.
9630 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9632 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9633 libs: decoder: h264: push frames as soon as possible
9634 Push frames downstream as soon as possible instead of waiting until
9635 they are ejected from the DPB.
9636 This patch makes the decoder not comply with the H.264 specification,
9637 but it is required for some video cameras.
9638 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9639 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9641 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9643 * gst/vaapi/gstvaapidecode_props.c:
9644 vaapidecode_props: h264: set low-latency in decoder
9645 Set the low-latency property if the H264 decoder is already
9646 instantiated, thus you could change the behavior in run-time.
9647 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9649 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9651 * gst/vaapi/gstvaapidecode.c:
9652 vaapidecode: set h264 low latency to decoder
9653 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9655 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9657 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9658 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9659 libs: decoder: h264: add getter/setter for low latency mode
9660 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9662 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9664 * gst/vaapi/gstvaapidecode_props.c:
9665 * gst/vaapi/gstvaapidecode_props.h:
9666 vaapidecode_props: h264: add low latency property
9667 Adding support for private data.
9668 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9670 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9672 * gst/vaapi/Makefile.am:
9673 * gst/vaapi/gstvaapidecode.c:
9674 * gst/vaapi/gstvaapidecode_props.c:
9675 * gst/vaapi/gstvaapidecode_props.h:
9676 * gst/vaapi/meson.build:
9677 vaapidecode_props: add skeleton for h264 decoder properties
9678 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9680 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9682 * gst/vaapi/gstvaapidecode.c:
9683 vaapidecode: properties callback in decoders map
9684 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9686 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
9689 meson: find python3 via python3 module
9690 https://bugzilla.gnome.org/show_bug.cgi?id=783198
9692 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
9694 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9695 libs: encoder: h264: submit sps in case of IDR picture
9696 If the picture is IDR, also submit a SPS header.
9697 This means when frame number reaches to keyframe-period or an force
9698 key unit event arrives, we insert SPS/PPS again.
9699 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9701 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
9703 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9704 libs: encoder: h264: set the frame as IDR if forced key unit
9705 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9706 the `frame-lost` event in the case of streaming, such as RTP.
9707 In case of this event, it is needed to start new GOP rather than just
9709 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9711 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9713 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9714 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9715 libs: encoder: h264: insert AU delimiter
9716 Insert an AUD as the first NAL of each encoded frame.
9717 Some applications require Access Unit Delimiter for decoding the
9719 The AU delimeter insertion is done only when the aud parameter is
9720 TRUE (by default is disabled). The reason of this it is because this
9721 header is only available from Intel Gen9 and the VA intel driver
9722 should be 1.8 or superior. Otherwise, the output will be corrupted.
9723 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9724 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9726 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9728 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9729 libs: encoder: h264: initialize all elements of view_ids
9730 Currently when num_views is changed by multiview-mode on sink caps, it produces
9731 wrong MVC encoded stream since the array view_ids is not set properly according
9732 to changed num_views.
9733 So this patch initializes all of the array sequentially to handle this case.
9734 Side effect is not going to happen by this patch since this array is being
9735 handled by num_views.
9736 https://bugzilla.gnome.org/show_bug.cgi?id=784321
9738 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
9740 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9741 Revert "encoder: h264: Use high profile by default"
9742 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9743 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9745 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
9747 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9748 libs: encoder: h264: set profile via capsfilter
9749 Until now, the encoder ignored the profile in src caps and chose one
9750 according with the given parameters. But the encoder must honor the
9751 profile specifed in src caps.
9752 This patch do that, and if the encoder needs to choose the profile,
9753 it will do it by following these rules:
9754 1\ If given parameters are not compatible with given profile, the
9755 encoder will bail out with an error.
9756 2\ The encoder will choose the higher profile indicated in the
9758 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9760 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
9762 * gst/vaapi/gstvaapiencode_h264.c:
9763 vaapiencode: h264: set profile to src caps
9764 So far vaapi encoder does not set profile to src caps. This patch makes it
9765 setting profile to src caps, which is determined by itself.
9766 In addition, if encoder chose different profile, which is not negotiated with
9767 downstream, we should set compatible profile to make negotiation working.
9768 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9770 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9772 * gst/vaapi/gstvaapiencode_h264.c:
9773 * gst/vaapi/gstvaapiencode_h264.h:
9774 vaapiencode: h264: verify if requested profile is supported
9775 Check if the requested profile in source caps, is supported by the
9776 VA driver. If it is not, an info log message is send saying that
9777 another (compatible?) profile will be used.
9778 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9780 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9782 * gst/vaapi/gstvaapiencode_h264.c:
9783 vaapiencode: h264: improve set_config() vmethod
9784 First check if downstream requests ANY caps. If so, byte-stream is
9785 used and the profile will be choose by the encoder. If dowstream
9786 requests EMPTY caps, the negotiation will fail.
9787 Lately, byte-stream and profile are looked in the allowed caps.
9788 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9790 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9792 * gst/vaapi/gstvaapiencode_h264.c:
9793 vaapiencode: h264: check for avc in set_config()
9794 The check for avc stream format was done in the vaapi encoder's
9795 vmethod get_caps(), but that is wrong since it has to be check
9796 when encoder set_format().
9797 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9799 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
9801 * gst/vaapi/gstvaapipostprocutil.c:
9802 vaapipostproc: set multivew-mode flags to src caps
9803 vaapipostproc didn't negotiate the proper multiview caps losing
9804 downstream information.
9805 This patch enables the playing of MVC encoded stream by setting
9806 the proper multiview mode/flags and views to src caps, according
9808 https://bugzilla.gnome.org/show_bug.cgi?id=784320
9810 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
9812 * gst/vaapi/gstvaapipostproc.c:
9813 vaapipostproc: add support for DMABuf caps feature
9814 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9815 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9817 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9819 * gst/vaapi/gstvaapidecode.c:
9820 vaapidecode: add support for DMABuf caps feature
9821 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9822 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9824 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9826 * gst/vaapi/gstvaapipluginbase.c:
9827 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9828 Instantiate all dmabuf allocator for src pad buffer pool if the
9829 src caps ask for memory:DMABuf feature.
9830 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9832 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
9834 * gst/vaapi/gstvaapipluginutil.c:
9835 * gst/vaapi/gstvaapipluginutil.h:
9836 vaapipluginutil: add support for DMABuf caps feature
9837 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9838 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9839 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9840 vaapipluginutil: add support for DMABuf caps feature
9842 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9844 * gst/vaapi/gstvaapipluginbase.c:
9845 vaapipluginbase: dmabuf memory map trial for raw caps
9846 Only push dmabuf-based buffers with raw caps if gst_memory_map()
9847 succeeds. Otherwise, use the the vaapi surfaces allocator.
9848 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9849 https://bugzilla.gnome.org/show_bug.cgi?id=774649
9850 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9852 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9854 * gst/vaapi/gstvaapivideomemory.c:
9855 * gst/vaapi/gstvaapivideomemory.h:
9856 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9857 This new method checks the specified allocator can create GstMemory that can
9859 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9861 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9863 * gst/vaapi/gstvaapivideobufferpool.c:
9864 vaapivideobufferpool: fix regression with video metas
9865 There is another regression with 7a206923 when setting the video
9866 info for the video meta, it should be the one from the image's
9867 allocator rather from the allocation caps.
9869 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9870 ! tee ! videoconvert ! videoscale \
9871 ! video/x-raw, width=1920, height=1080 ! xvimagesink
9873 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9875 * gst/vaapi/gstvaapipluginbase.c:
9876 * gst/vaapi/gstvaapivideobufferpool.c:
9877 plugins: update buffer size with the one reported by allocator
9878 There is a regression in 7a206923, since the buffer pool ditches all
9879 the buffers generated by them because the pool config size is
9880 different of the buffer's size.
9882 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9883 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
9884 --gst-debug=GST_PERFORMANCE:5
9885 The allocator may update the buffer size according to the VA surface
9886 properties. In order to do this, the video info is modified when the
9887 allocator is created, which reports through the allocation info the
9888 updated size, and set it to the pool config.
9890 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
9892 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9893 libs: decoder: h264: initialize active_sps/pps in reset
9894 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9895 they introduced regression in seek.
9896 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9897 But since the commits landed, it doesn't drop P-frame and does try to
9898 decode it continuously because active_sps is still alive. See ensure_sps function.
9899 But there are prev_frames and prev_ref_frames reset already, then it
9901 So it's necessary to reset active_sps/pps also in reset method.
9902 https://bugzilla.gnome.org/show_bug.cgi?id=783726
9904 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9906 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9907 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9908 libs: encoder: fix compilation with old versions of libva
9909 There are some symbols that are not used when compiling with old
9910 version of libva and those generates a compilation error.
9911 Original-patch-by: Matt Staples <staples255@gmail.com>
9913 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9915 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9916 libs: encoder: Fix the quality level clamping
9917 Change the hard-coded range of quality-level from {1-8} to {1-7},
9918 since it is the range Intel Open source driver supports.
9919 Also perform the range clamping only if the user provided
9920 quality-level is greater than the max-range suppored by the driver,
9921 because there could be non-intel drivers giving lower value than
9922 the hard-coded max value 7.
9923 https://bugzilla.gnome.org/show_bug.cgi?id=783567
9925 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9927 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9928 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9929 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9930 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9931 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9932 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9933 libs: encoder: log out the name of the profile
9934 Instead of printing a number, it is more readable to log out, in
9935 case of error, the name of the failing profile.
9937 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
9939 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9940 libs: encoder: h264: changes raw number of profile to macro name of its
9941 Changes raw number of profile to macro name of its to improve readability.
9942 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9944 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9946 * gst/vaapi/gstvaapivideobufferpool.c:
9947 vaapivideobufferpool: remove allocation_vinfo private attribute
9948 There is no need to keep this attribute internally since it is
9949 already managed by the allocator.
9950 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9952 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9954 * gst/vaapi/gstvaapivideobufferpool.c:
9955 vaapivideobufferpool: refactor set_config()
9956 Refactor the set_config() virtual method considering a cleaner
9957 approach to allocator instanciation, if it it not set or if it is
9958 not valid for the pool.
9959 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9961 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9963 * gst/vaapi/gstvaapipluginbase.c:
9964 * gst/vaapi/gstvaapivideobufferpool.c:
9965 * gst/vaapi/gstvaapivideomemory.c:
9966 * gst/vaapi/gstvaapivideomemory.h:
9967 plugins: distinguish allocation and negotiation caps
9968 The vaapi video decoders might have different allocation caps from
9969 the negotiation caps, thus the GstVideoMeta shall use the negotiation
9970 caps, not the allocation caps.
9971 This was done before reusing gst_allocator_get_vaapi_video_info(),
9972 storing there the negotiation caps if they differ from the allocation
9973 ones, but this strategy felt short when the allocator had to be reset
9974 in the vaapi buffer pool, since we need both.
9975 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
9976 gst_allocator_get_vaapi_negotiated_video_info() to store the
9977 negotiated video info in the allocator, and distinguish it from
9978 the allocation video info.
9979 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9981 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9983 * gst/vaapi/gstvaapivideomemory.c:
9984 * gst/vaapi/gstvaapivideomemory.h:
9985 vaapivideomemory: rename qdata quarks and ids
9986 Also the parameter names were renamed to reflect their origin
9988 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9990 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9992 * gst/vaapi/gstvaapivideobufferpool.c:
9993 vaapivideobufferpool: rename local variables
9994 Renamed local video info structure names in set_config() vitual
9995 method. The purpose of their renaming is to clarify the origin
9996 of those structures, whether come from passed caps parameter
9997 (new_allocation_vinfo) or from the configured allocator
9999 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10001 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10003 * gst/vaapi/gstvaapivideobufferpool.c:
10004 vaapivideobufferpool: rename video info structures
10005 Renamed private GstVideoInfo structure video_info to allocation_vinfo
10006 and alloc_info to negotiated_vinfo.
10007 The purpose of these renaming is to clarify the origin and purpose of
10008 these private variables:
10009 video_info (now allocation_vinfo) comes from the bufferpool
10010 configuration. It describes the physical video resolution to be
10011 allocated by the allocator, which may be different from the
10013 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
10014 the pipeline. It represents how the frame is going to be mapped
10015 using the video meta.
10016 In Intel's VA-API backend, the allocation_vinfo resolution is
10017 bigger than the negotiated_info.
10018 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10020 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10022 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10023 libs: encoder: set framerate if bigger than 0/1
10024 Just set the framerate parameter if the framerate numerator and
10025 denominator are bigger than zero.
10026 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
10028 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10029 https://bugzilla.gnome.org/show_bug.cgi?id=783532
10031 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10033 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10034 libs: encoder: bitrate target percentage calculation
10035 If the rate control is set to Constant Bit Rate (CBR) the target
10036 percentage is 100%, otherwise is 70%
10038 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10040 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10041 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10042 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10043 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10044 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10045 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10046 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
10047 Centralize the common configuration for the Rate Control parameter,
10048 thus can be overloaded per each specific encoder.
10050 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10052 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10053 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10054 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10055 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10056 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10057 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10058 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
10059 Since the framerate VA parameter is calculated equally among all the
10060 encoders, it is better to handle it in the base encoder class.
10062 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10064 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10065 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
10066 libs: encoder: vp9: Adds CBR and VBR Encoding support
10067 https://bugzilla.gnome.org/show_bug.cgi?id=766832
10068 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10069 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10071 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10073 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10074 libs: encoder: vp8: Adds VBR Encoding support
10075 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10077 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
10079 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10080 libs: encoder: h265: Adds VBR Encoding support
10081 Enables Variable BitRate mode, which does set FrameRate and RateControl
10083 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10085 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
10087 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10088 libs: encoder: Describes more detail about the bitrate property
10089 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10091 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10093 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10094 libs: encoder: h265: add rate control parameter
10095 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10097 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10099 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10100 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10101 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10102 libs: encoder: h264,h265,mpeg2: add framerate parameter
10103 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10105 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10107 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10108 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10109 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10110 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10111 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10112 Instead of recalculating the miscellaneous buffer parameters for
10113 every buffer, it is only done once, when the encoder is configured.
10114 And for every buffer, the same structures are just copied.
10115 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10117 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10119 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10120 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10121 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10122 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10123 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10124 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10125 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10126 This is patch pretends to decouple the assignation of the values
10127 in the parameter structures and the VA buffer's parameters setting.
10128 It may lead to some issues since HRD, framerate or controlrate may
10129 not be handled by the specific encoder, but they are set in
10130 the VA buffer's parameters.
10131 I leave as it because this patch is just a transitional patch.
10132 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10134 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10136 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10137 libs: encoder: vp8: fix frame rate calculation
10138 According to the VA documentation:
10139 The framerate is specified as a number of frames per second,
10140 as a fraction. The denominator of the fraction is given in
10141 the top half (the high two bytes) of the framerate field, and
10142 the numerator is given in the bottom half (the low two bytes).
10143 For example, if framerate is set to (100 << 16 | 750), this is
10144 750 / 100, hence 7.5fps.
10145 If the denominator is zero (the high two bytes are both zero)
10146 then it takes the value one instead, so the framerate is just
10147 the integer in the low 2 bytes.
10148 This patch fixes the the framerate calculation in vp8 encoder
10150 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10152 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10154 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10155 libs: encoder: vp8: refactor FrameRate parameter
10156 Move frame-rate parameter from ensure_misc_params() to
10157 ensure_contro_rate_param() since it only has meaning when the
10158 control rate is either VBR or CBR.
10159 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10161 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10163 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10164 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10165 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10166 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10167 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10168 Move the Hypothetical Reference Decoder (HRD) parameter, from
10169 ensure_misc_params() to ensure_control_rate_params(), since it
10170 only shall be defined when the control rate is either VBR or CBR.
10171 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10173 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10175 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10176 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10177 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10178 libs: encoder: h264,vp8,mpeg2: refactor control rate
10179 Instead of filling the control rate param in ensure_misc_params(),
10180 this patch refactor it out, as a first step to merge the same code
10181 for all the encoders.
10182 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10184 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10186 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10187 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10188 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10189 libs: encoder: h264, h265, mpeg2: remove assert
10190 Remove spurious asserts for misc parameters. If they cannot be
10191 allocated, FALSE is already returned.
10193 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10195 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10196 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10197 libs: encoder: use VA quality level structure
10198 Instead of using a proxy to story the buffer quality level, the
10199 encoder now uses the native VA structure, which is copied to the
10200 dynamically allocated VAEncMiscParameterBuffer.
10201 This approach is computationally less expensive.
10203 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10205 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10206 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10207 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10208 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10209 libs: standardize the FIXME comment
10210 This is a trivial patch that makes homogeneous the FIXME tag in
10212 For more info about these comment style:
10213 http://wiki.c2.com/?FixmeComment
10215 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10217 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10218 libs: encoder: vp8: set quality level regardless of rate control mode
10219 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10221 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10223 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10224 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10225 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10226 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10227 libs: encoder: check for maximum number of slices
10228 Right now, H264 and HEVC can set as a property the number of slices to
10229 process. But each driver can set a maximum number of slices, depending
10230 on the supported profile & entry point.
10231 This patch verifies the current num_slices to process against the maximum
10232 permitted by the driver and the media size.
10233 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10235 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10237 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10238 libs: utils: mark functions as internals
10239 The functions in this header are internal to the library.
10241 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10243 * gst-libs/gst/vaapi/gstvaapicontext.h:
10244 libs: context: add missing documentation
10245 Document the region-of-interest configuration variables.
10247 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10249 * tests/elements/test-vaapisink.c:
10250 tests: elements: vaapisink: handle nav events
10251 The test app can now handle navigation events to rotate the
10254 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10256 * tests/elements/test-vaapisink.c:
10257 tests: elements: clean up vaapisink test
10258 - Use gst_element_send_event() instead of gst_pad_push_event()
10259 - don't zero App structure
10260 - check for pipeline parsing error
10261 - only get vaapisink for property set
10263 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10265 * gst/vaapi/gstvaapisink.c:
10266 vaapisink: keep handle_events flag except that if user want to set
10267 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10268 flag is set to FALSE, and never recovered, and then event thread is never
10270 So we should allow to set the flag only when users try it.
10271 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10273 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10275 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10276 libs: window: x11: fix src rect info when using vpp
10277 Since we started using VPP in VaapiWindowX11, we need to care about
10278 the case that src rect and window's size are different.
10279 So, once VPP has converted to other format, we should honor the
10280 size of the VPP's surface as source rect. Otherwise, it is cropped
10281 according the previous size of the source rect.
10282 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10284 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10286 * gst/vaapi/gstvaapipluginutil.c:
10287 plugins: remove par from caps negotiation
10288 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10290 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10292 * tests/elements/Makefile.am:
10293 * tests/elements/test-roi.c:
10294 tests: elements: add an example for ROI
10295 This implements a pipleint to recognize difference between ROI and non-ROI.
10296 See comments in this code in detail.
10297 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10298 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10300 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10302 * gst/vaapi/gstvaapiencode.c:
10303 * gst/vaapi/gstvaapiencode_h264.c:
10304 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10305 Handles new custom event GstVaapiEncoderRegionOfInterest
10306 to enable/disable a ROI region.
10307 Writes a way to use new event to document.
10308 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10309 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10311 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10313 * tests/simple-encoder.c:
10314 tests: simple-encoder: add an option to set ROI
10315 $ simple-encoder -r inputfile.y4m
10316 And you'll got an output file in H264 with two regions of interest.
10317 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10318 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10320 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10322 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10323 libs: encoder: h264: set ROI params during encoding
10324 Set ROI params during encoding each frame, which are set via
10325 gst_vaapi_encoder_add_roi ()
10326 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10327 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10329 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10331 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10332 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10333 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10334 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10335 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10336 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10338 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10340 * gst-libs/gst/vaapi/gstvaapicontext.c:
10341 * gst-libs/gst/vaapi/gstvaapicontext.h:
10342 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10343 libs: encoder/context: query region of interest support
10344 Queries if the driver supports "Region of Interest" (ROI) during the config
10346 This attribute conveys whether the driver supports region-of-interest (ROI)
10347 encoding, based on user provided ROI rectangles. The attribute value is
10348 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10349 If ROI encoding is supported, the ROI information is passed to the driver
10350 using VAEncMiscParameterTypeROI.
10351 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10352 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10354 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10356 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10357 libs: encoder: fix a comment
10359 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10361 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10362 libs: encoder: guard quality level configuration
10363 The quality level appeared in VA-API 0.36. So let's guard its
10366 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10368 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10369 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10370 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10371 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10372 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10373 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10374 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10375 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10376 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10377 encoders: add quality level tuning
10378 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10379 in gstreamer-vaapi encoders:
10380 The encoding quality could be set through this structure, if the
10381 implementation supports multiple quality levels. The quality level set
10382 through this structure is persistent over the entire coded sequence, or
10383 until a new structure is being sent. The quality level range can be queried
10384 through the VAConfigAttribEncQualityRange attribute. A lower value means
10385 higher quality, and a value of 1 represents the highest quality. The quality
10386 level setting is used as a trade-off between quality and speed/power
10387 consumption, with higher quality corresponds to lower speed and higher power
10389 The quality level is set by the element's parameter "quality-level" with a
10390 hard-coded range of 1 to 8.
10391 Later, when the encoder is configured in run time, just before start
10392 processing, the quality level is scaled to the codec range. If
10393 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10394 the quality level is set to zero, which means "disabled".
10395 All the available codecs now process this parameter if it is available.
10396 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10397 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10399 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10403 Back to development
10405 === release 1.12.0 ===
10407 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10412 * gstreamer-vaapi.doap:
10416 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10418 * gst/vaapi/gstvaapidecodebin.c:
10419 Revert "vaapidecodebin: fix element's classification"
10420 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10422 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10426 build: Require libva < 0.99.0
10427 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10428 fail to configure instead of failing late in the build.
10429 This libva is bundled in msdk[1] and it is ahead in time with
10430 respect the official and open source libva[2]. GStreamer-VAAPI
10431 only supports the latter for now.
10432 1. https://software.intel.com/en-us/media-sdk/download
10433 2. https://github.com/01org/libva/
10434 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10436 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10438 * gst/vaapi/gstvaapidecodebin.c:
10439 vaapidecodebin: fix element's classification
10440 This bin should have similar classification as decodebin which is
10441 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10443 Signed-off-by: Victor Toso <victortoso@redhat.com>
10444 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10446 === release 1.11.91 ===
10448 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10453 * gstreamer-vaapi.doap:
10457 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10459 * gst/vaapi/gstvaapipluginutil.c:
10460 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10461 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10463 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10465 * gst/vaapi/gstvaapipluginutil.c:
10466 plugins: reject pixel-aspect-ratio with value 0/1
10467 Do not negotiate a pixel-aspect-ratio of 0/1.
10468 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10470 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10472 * gst/vaapi/gstvaapipostprocutil.c:
10473 * gst/vaapi/gstvaapisink.c:
10474 plugins: handle pixel-aspect-ratio with value 0/1
10475 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10476 calculations for resizing and formatting in vaapipostproc and
10477 vaapisink, respectively, failed, and thus the pipeline.
10478 This patch handles this situation by converting p-a-r of 0/1 to
10479 1/1. This is how other sinks, such as glimagesink, work.
10480 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10482 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10484 * gst/vaapi/gstvaapivideobufferpool.c:
10485 vaapivideobufferpool: fix leak of created allocator
10486 Since it's created by itself, it should be unref-counted
10487 after gst_buffer_pool_config_set_allocator call. Afterwards,
10488 this allocator will be ref-counted again when assigning to priv->allocator.
10489 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10491 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10493 * gst/vaapi/gstvaapivideobufferpool.c:
10494 vaapivideobufferpool: create or reconfig allocator
10495 Sometimes a video decoder could set different buffer pool
10496 configurations, because their frame size changes. In this case we
10497 did not reconfigure the allocator.
10498 This patch enables this use case, creating a new allocator inside
10499 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10500 If so, it is just reconfigured, since it doesn't have a surface pool.
10501 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10503 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10505 * tests/elements/Makefile.am:
10506 test: elements: fix compilation flags
10507 This issue was spotten on bug #766704
10508 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10510 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10512 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10513 libs: windows: wayland: fix leak if failure of sync
10514 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10515 during destruction.
10516 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10517 This surface is not attached to anything at this moment, so we should release
10519 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10521 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10524 Automatic update of common submodule
10525 From 60aeef6 to 48a5d85
10527 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10529 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10530 libs: window: wayland: mark frames as done
10531 When the frame listener callbacks 'done', the number of pending
10532 frames are decreased. Nonetheless, there might be occasions where
10533 the buffer listener callbacks 'release', without calling previously
10534 frame's 'done'. This leads to problem with
10535 gst_vaapi_window_wayland_sync() operation.
10536 This patch marks as done those frames which were callbacked, but if
10537 the buffer callbacks 'release' and associated frame is not marked
10538 as 'done' it is so, thus the number of pending frames keeps correct.
10539 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10540 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10542 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10544 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10545 libs: window: wayland: don't sync at destroy()
10546 Don't call gst_vaapi_window_wayland_sync() when destroying the
10547 wayland window instance, since it might lead to a lock at
10548 gst_poll_wait() when more than one instances of vaapisink are
10549 rendering in the same pipeline, this is because they share the
10551 Since now all the frames are freed we don't need to freed the
10552 private last_frame, since its address is invalid now.
10553 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10554 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10556 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10558 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10559 libs: window: wayland: null buffer at destroy()
10560 Fix leakage of the last wl buffer.
10561 VAAPI wayland sink needs to send a null buffer while destruction,
10562 it assures that all the wl buffers are released. Otherwise, the last
10563 buffer's callback might be not called, which leads to leak of
10565 This was inspired by gstwaylandsink.
10566 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10567 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10569 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10571 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10572 libs: window: wayland: rt event queue at destroy()
10573 The proxy object of wl_buffer for the last frame remains in the
10574 wl_map. Even though we call wl_buffer_destroy() in
10575 frame_release_callback(), the proxy object remains without being
10576 removed, since proxy object is deleted when wayland server sees the
10577 delete request and sends 'delete_id' event.
10578 We need to call roundtrip before destroying event_queue so that the
10579 proxy object is removed. Otherwise, it would be mess up as receiving
10580 'delete_id' event from previous play, when playing in the next
10581 va/wayland window with the same wl_display connection.
10582 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10583 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10585 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10587 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10588 libs: window: wayland: cancel read at poll message
10589 Always call wl_display_cancel_read() when an errno is set, but
10590 different to EAGAIN or EINTR.
10591 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10593 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10595 * gst/vaapi/gstvaapidecodebin.c:
10596 * gst/vaapi/gstvaapidecodebin.h:
10597 vaapidecodebin: skips configuration once it's done
10598 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10599 Otherwise, it always fails when it's trying to re-start playback.
10600 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10602 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10604 * gst/vaapi/gstvaapipostprocutil.c:
10605 vaapipostproc: fixes for memory leaks
10606 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10607 requires to clear the used GValue to avoid a memory leak.
10609 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10611 * gst/vaapi/gstvaapipluginbase.c:
10612 * gst/vaapi/gstvaapipluginbase.h:
10613 plugins: enable direct rendering with envvar
10614 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10615 performance in some Intel platforms (Haswell, for example) but in others
10616 (Skylake) is the opposite.
10617 In order to have some control, the patch enables the direct rendering
10618 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10619 Also it seems to generating some problems with gallium/radeon backend.
10621 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10623 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10625 * gst/vaapi/gstvaapidecode.c:
10626 vaapidecode: Don't renegotiate on every flush
10627 If caps don't actually change, don't update the
10628 decoder and don't set the do_renego flag forcing
10629 downstream renegotiation
10630 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10632 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10634 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10635 h264 decoder: Implement reset() for faster flush
10636 Implement a custom reset() function for faster flushes
10637 that just clear the reference pictures but don't reallocate
10638 the DPB or clear out SPS/PPS
10639 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10641 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10643 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10644 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10645 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10646 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10647 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10648 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10649 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10650 * gst/vaapi/gstvaapidecode.c:
10651 Implement decoder reset on flush, rather than recreating
10652 Clear decoders out on a flush but keep the same instance,
10653 rather than completely recreating them. That avoids
10654 unecessarily freeing and recreating surface pools
10655 and contexts, which can be quite expensive
10656 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10658 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10660 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10661 libs: window: don't add an unused function
10662 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10663 a function that is never used, thus when compiling we might see
10664 this warning (clang):
10665 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10666 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10668 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10670 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10672 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10673 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10674 libs: window: remove surface_format member
10675 Since we always convert to NV12, there is no need to keep a
10676 variable for that. Let us hard code it.
10677 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10679 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10681 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10682 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10683 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10684 libs: window: x11/wayland: use new api for conversion
10685 Since gst_vaapi_window_vpp_convert_internal is created,
10686 GstVaapiWindowX11/Wayland can use it for conversion.
10687 Note that once it chooses to use vpp, it's going to use vpp
10688 until the session is finished.
10689 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10691 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
10693 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10694 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10695 libs: window: add gst_vaapi_window_vpp_convert_internal()
10696 If a backend doesn't support specific format, we can use vpp for conversion
10697 and make it playing.
10698 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10699 so that GstVaapiWindowX11 could use it.
10700 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10702 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10704 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10705 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10706 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10707 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10708 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10709 libs: window: x11/wayland: chaining up to GstVaapiWindow
10710 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10711 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10712 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10714 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10716 * gst/vaapi/gstvaapipluginutil.c:
10717 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10718 When these definitions are false, they are undef in the
10719 preprocessor, not a defined value of 0. When they are unset the
10720 compile fails with:
10721 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10722 https://bugzilla.gnome.org/show_bug.cgi?id=780948
10724 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
10727 Automatic update of common submodule
10728 From 39ac2f5 to 60aeef6
10730 === release 1.11.90 ===
10732 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
10737 * gstreamer-vaapi.doap:
10741 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10743 * gst/vaapi/gstvaapiencode_h265.c:
10744 vaapiencode: h265: add main-10 in caps template
10745 This patch adds h265's main-10 profile in encoder src caps template.
10746 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10748 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10750 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10751 libs: encoder: h265: chroma and luma with format
10752 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10753 parameter buffer, shall be the color format bit depth minus 8, 10-8
10754 which is 2. Also for bit_depth_chroma_minus8.
10755 This patch gets the negotiated sink caps format and queries its
10756 luma's depth and uses that value to fill the mentioned parameters.
10757 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10759 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10761 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10762 libs: encoder: admit YUV420_10BPP as valid chroma
10763 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10765 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10767 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10769 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10770 libs: encoder: h265: ensures profile given format
10771 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10772 configured color format is P010_10LE.
10773 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10774 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10776 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10778 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10779 libs: encode: merge all possible surface formats
10780 When the function gst_vaapi_encoder_get_surface_formats() was added
10781 it was under the assumption that any VA profile of the specific codec
10782 supported the same format colors. But it is not, for example the
10783 profiles that support 10bit formats.
10784 In other words, different VA profiles of a same codec may support
10785 different color formats in their upload surfaces.
10786 In order to expose all the possible color formats, if no profile is
10787 specified via source caps, or if the encoder doesn't have yet a
10788 context, all the possible VA profiles for the specific codec are
10789 iterated and their color formats are merged.
10790 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10792 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10794 * gst/vaapi/gstvaapiencode.c:
10795 * gst/vaapi/gstvaapiencode.h:
10796 * gst/vaapi/gstvaapiencode_h264.c:
10797 * gst/vaapi/gstvaapiencode_h265.c:
10798 vaapiencode: add get_profile() vmethod
10799 This new virtual method, get_profile(), if implemented by specific
10800 encoders, will return the VA profile potentially determined by the
10802 Also it is implemented by h264 and h265 encoders, which are the main
10803 users of this vmethod.
10804 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10806 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10808 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10809 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10810 * gst/vaapi/gstvaapiencode.c:
10811 libs: encoder: pass profile to get_surface_formats()
10812 In order to get the supported surface formats within a specific
10813 profile this patch adds the GstVaapiProfile as property to
10814 gst_vaapi_encoder_get_surface_formats().
10815 Currently the extracted formats are only those related with the
10816 default profile of the element's codec.
10817 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10819 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10821 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10822 libs: encoder: dummy context for get_surface_formats()
10823 Instead of creating (if it doesn't exist, yet) the encoder's context
10824 the method gst_vaapi_encoder_get_surface_formats() now it creates
10825 dummy contexts, unless the encoder has it already created.
10826 The purpose of this is to avoid setting a encoder's context with a
10828 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10830 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10832 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10833 libs: encoder: refactor init_context_info()
10834 In order to generate vaapi contexts iterative, the function
10835 init_context_info() is refactored to pass, as parameters the
10836 GstVaapiContextInfo and the GstVaapiProfile.
10837 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10839 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10841 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10842 * gst-libs/gst/vaapi/gstvaapiutils.c:
10843 * gst-libs/gst/vaapi/gstvaapiutils.h:
10844 libs: encoder: initialize chroma_type
10845 Instead of initialize the chroma_type with a undefined value, which
10846 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10847 this patch queries the VA config, given the received
10848 GstVaapiContextInfo's parameters, and gets the first response.
10849 In order to get the GstVaapiChromaType value, also it was needed to
10850 add a new utility function: to_GstVaapiChromaType(), which, given a
10851 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10852 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10854 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10856 * gst/vaapi/gstvaapiencode.c:
10857 vaapiencode: enhance logs of negotiated caps
10858 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10860 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10862 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10863 libs: encoder: vp9: Fix initialization of ref_list
10864 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10865 'memset' used with length equal to number of elements without
10866 multiplication by element size [-Werror=memset-elt-size]
10867 https://bugzilla.gnome.org/show_bug.cgi?id=780947
10869 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10871 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10872 encoder: h264: Fix Backward ReferencePicture flag setting
10873 This is a regression introduced by e829b62 which
10874 override the reference flags and caused issues with
10875 latest intel-vaapi-driver.
10877 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10879 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10880 libs: encoder: h265: fix code style
10881 Trivial patch to remove a double ';' as end of instruction.
10883 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10885 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10886 encoder: h264: Fix B frame encoding artifacts
10887 The current implementation is updating the POC values only
10888 in Slice parameter Buffer.But we are not filling the
10889 picture order count and reference flags in VAPictureH264
10890 while populating VA Picture/Slice structures.The latest
10891 intel-vaapi-driver is directly accessing the above fields
10892 from VAPicutreH264 provided as RefPicLists, which resulted
10893 some wrong maths and prediction errors in driver.
10894 https://bugzilla.gnome.org/show_bug.cgi?id=780620
10896 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10898 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10899 libs: encoder: h265: remove unused macro definition
10900 Since the h265 encoder doesn't use GValueArray, there is no need to
10901 disable the Glib deprecation warnings, thus removing the macro
10904 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10906 * gst/vaapi/gstvaapidecode.c:
10907 * gst/vaapi/gstvaapiencode.c:
10908 * gst/vaapi/gstvaapipostproc.c:
10909 * gst/vaapi/gstvaapisink.c:
10910 plugins: when debug disabled, default category is NULL
10911 As in gstreamer-vaapi a common base class is used, the specific
10912 default category is passed to the base-plugin initializator, thus
10913 the log messages are categorized with the used plugin.
10914 Nonetheless, when the gst-debug is disabled in compilation time,
10915 it is needed to pass NULL to the base-plugin initializator. This
10917 https://bugzilla.gnome.org/show_bug.cgi?id=780302
10919 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
10921 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10922 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10923 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10924 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10925 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10926 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10927 unit length and data to a bitwriter.
10928 Note that this helper function applies EPB (Emulation Prevention
10929 Bytes), since otherwise produced codec_data might be broken when
10930 decoder/parser considering EPB, starts parsing.
10931 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10932 describes the emulation_prevention_three_byte.
10933 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10934 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10936 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
10938 * gst-libs/gst/vaapi/Makefile.am:
10939 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10940 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10941 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10942 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10943 * gst-libs/gst/vaapi/meson.build:
10944 libs: utils: h26x: create vaapiutils_h26x
10945 Since there is duplicated code in h264/265 encoder, we could
10946 refactor it to avoid duplicated code.
10947 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10948 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10950 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10952 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10953 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10954 libs: encoder: h264/5: fix wrong return value
10955 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10957 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10959 * gst/vaapi/gstvaapiencode_h264.c:
10960 * gst/vaapi/gstvaapiencode_h265.c:
10961 docs: h264/h265: put parser to the example pipeline
10962 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10964 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10966 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10967 libs: encoder: h265: fix reserved length of bits
10968 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
10969 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10971 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10973 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10974 * tests/test-display.c:
10975 O_CLOEXEC needs _GNU_SOURCE defined
10977 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
10978 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
10979 2.12, one can obtain their definitions by defining either
10980 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
10981 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
10982 2.11 and earlier, one obtains the definitions by defining
10984 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
10985 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
10986 gstreamer-vaapi with the uClibc C library.
10987 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10988 https://bugzilla.gnome.org/show_bug.cgi?id=779953
10990 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10993 README: fix "Sources" section
10994 Update the URL where the release source tarballs can be downloaded.
10996 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10999 README: fix "Reporting bugs" section
11000 The "Reporting bugs" section gives
11001 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
11002 link to report a bug, but this link says "Sorry, entering a bug into the
11003 product gstreamer-vaapi has been disabled.".
11004 This commit fixes the URL to point to the proper location, and also
11005 removes the following paragraph that is no longer correct.
11006 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11007 https://bugzilla.gnome.org/show_bug.cgi?id=779954
11009 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11011 * gst/vaapi/gstvaapipluginutil.c:
11012 plugins: retry to create the VA display
11013 Particularly in GNOME Wayland, the negotiated or created GL context
11014 defines a GLX environment, but VAAPI fails to create a GLX VA
11015 display because there is no a DRI2 connection.
11016 This patch retries to create the VA display if VA cannot create one
11017 with the GL context parameters. Now using the old list of display
11019 This should also work in the case of systems with two GPU, when the
11020 non-VAAPI has the graphics environment, and the VAAPI-enabled one
11021 shall work headless.
11022 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11024 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11026 * gst/vaapi/gstvaapipostproc.c:
11027 vaapipostproc: texture upload if driver supports GL
11028 Removes GstVideoGLTextureUploadMeta caps feature if the driver
11029 doesn't support opengl.
11030 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11031 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11033 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11035 * gst/vaapi/gstvaapidecode.c:
11036 vaapidecode: texture upload if driver supports GL
11037 When the allowed source pad caps are generated, the GLTextureUpload caps are
11038 only inserted if the driver support OpenGL.
11039 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11041 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11044 configure: Add missing compiler flags
11045 The AC_CHECK_HEADERS macro was failing to locate some headers, in
11046 particular the va_enc_* headers due to missing compiler flags.
11047 https://bugzilla.gnome.org/show_bug.cgi?id=779101
11048 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11050 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11052 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11053 libs: window: wayland: handle more VAStatus to use vpp
11054 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
11055 we should consider more returned VAStatus to use vpp.
11056 https://bugzilla.gnome.org/show_bug.cgi?id=779400
11058 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11060 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11061 libs: encoder: ensure profile when context initialization
11062 We can't be sure that encoder's profile is assgined already or not
11063 at context initialization.
11064 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11066 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11068 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11069 libs: encoder: set rate control info only when query succeed
11070 Currently, it set rate control information even when query fails.
11071 In addition, it doesn't update any more since the flag
11072 got_rate_control_mask is set to TRUE.
11073 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11075 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
11078 meson: Update version
11080 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
11083 Back to development
11085 === release 1.11.2 ===
11087 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
11092 * gstreamer-vaapi.doap:
11095 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11097 * gst/vaapi/gstvaapiencode.c:
11098 vaapiencode: merge tags for downstream's info
11099 Add encoder and codec name and the bitrate into the output for
11100 informational purposes. Some muxers or application use it as
11102 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11104 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11106 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11107 libs: encoder: caps can change at any time
11108 The encoder should be able to change its caps even it is already
11109 processing a stream.
11110 This is suppose to happen after a flush so the codedbuf_queue should
11112 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11114 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11116 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11117 libs: encoder: h265: bail if nal unit type fails
11118 Bail out if the NAL unit type is not recognized.
11119 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11121 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11123 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11124 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11125 libs: decoder: h264,h265 avoid uninitialized variable
11126 Configuring GCC to verify possible usage of uninitialized variables,
11127 shows that found_index might be used without previous assignation.
11128 This patch assigns a initial value to found_index, also avoid a
11129 branching when returning the result value.
11130 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11132 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11135 * gst-libs/gst/vaapi/Makefile.am:
11136 * gst/vaapi/gstvaapidecode.c:
11137 * gst/vaapi/gstvaapidecodebin.c:
11138 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11139 Rename to be consistent with H.264 and also H.265 encoder. The
11140 meson build assumed this was already consistently named, and so
11141 previously was not able to actually build the H.265 decoder.
11142 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11144 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11147 meson: gstreamer-codecparsers is a required dep
11148 Just like in configure.ac.
11150 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11153 meson: dist meson build files
11154 Ship meson build files in tarballs, so people who use tarballs
11155 in their builds can start playing with meson already.
11157 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11159 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11160 libs: encoder: vp8: add CBR encoding mode
11161 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11162 Basically it adds the configuration parameters required by libva to
11164 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11165 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11167 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11169 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11170 libs: encoder: vp8: fix bitrate calculation
11171 Base encoder's unit of bitrate is in Kbps. We should honor it so
11172 we use the value of bitrate in VA, in which is expressed in bps.
11173 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11175 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11177 * gst/vaapi/gstvaapipluginbase.c:
11178 plugins: fix build when gcc
11179 In commit a8e482f9 we added a function without parameters, but gcc
11182 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11184 * gst-libs/gst/base/meson.build:
11185 * gst-libs/gst/meson.build:
11186 * gst-libs/gst/vaapi/meson.build:
11187 * gst-libs/meson.build:
11189 * gst/vaapi/meson.build:
11191 * meson_options.txt:
11192 vaapi: add meson build
11193 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11195 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11198 * gst-libs/gst/vaapi/Makefile.am:
11199 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11200 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11201 make: remove gstvaapiversion.h generation
11202 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11204 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11206 * gst/vaapi/gstvaapipluginbase.c:
11207 plugins: use linear storage if not the same device
11208 When dmabuf is negotiated downstream and decoding and rendering are
11209 not done on the same device, the layout has to be linear in order for
11210 the memory to be shared accross devices, since each device has its
11211 own way to do tiling.
11212 Right now this code is rather just a to-do comment, since we are not
11213 fetching the device ids.
11214 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11216 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11218 * gst-libs/gst/vaapi/gstvaapiutils.c:
11219 libs: utils: add HEVC profiles representation
11220 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11222 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11224 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11225 libs: decoder: h264: reduce frame number of gaps
11226 Reduce frame num gaps so that we don't have to create unnecessary
11227 dummy pictures, just throw them away.
11228 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11229 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11231 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11233 * gst/vaapi/gstvaapidecode.c:
11234 vaapidecode: don't GLTextureUpload if dmabuf
11235 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11236 element can handle dmabuf-based buffers, avoiding its negotiation.
11238 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11240 * gst/vaapi/gstvaapidecode.c:
11241 vaapidecode: make pool to export decoder's surface
11242 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11243 pass the current proxy/surface to the pool.
11244 The pool will will export thins given surface instead of exporting a
11245 brand new surface that will never be filled in with meaningfull data.
11246 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11248 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11250 * gst/vaapi/gstvaapipluginbase.c:
11251 plugins: decoder can negotiate dmabuf downstream
11253 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11255 * gst/vaapi/gstvaapivideobufferpool.c:
11256 vaapivideobufferpool: override acquire_buffer()
11257 Overriding the vmethod acquire_buffer() it is possible to attach the
11258 right GstMemory to the current acquired buffer.
11259 As a matter of fact, this acquired buffer may contain any instantiated
11260 GstFdmemory, since this buffer have been popped out from the buffer
11261 pool, which is a FIFO queue. So there is no garantee that this buffer
11262 matches with the current processed surface. Evenmore, the VA driver
11263 might not use a FIFO queue. Therefore, it is no way to guess on the
11265 In short, acquire_buffer on the VA driver and on the buffer pool return
11266 none matching data, we have to manually attach the right GstFdMemory to
11267 the acquired GstBuffer. The right GstMemory is the one associated with
11268 the current surface.
11269 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11271 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11273 * gst/vaapi/gstvaapivideobufferpool.c:
11274 * gst/vaapi/gstvaapivideomemory.c:
11275 vaapivideomemory: export surface if it is provided
11276 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11277 had to create that surface. Now it can also export an already provided
11278 surface. It is useful to export decoder's surfaces (from VA context).
11279 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11281 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11283 * gst/vaapi/gstvaapivideobufferpool.h:
11284 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11285 Useful to let the pool know the current surface proxy when calling
11286 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11287 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11289 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11291 * gst-libs/gst/vaapi/gstvaapisurface.c:
11292 * gst-libs/gst/vaapi/gstvaapisurface.h:
11293 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11294 These functions are useful when a dmabuf-based memory is instantiated in
11295 order to relate the generated buffer @proxy with the processed @surface.
11296 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11298 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11300 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11301 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11302 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11303 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11304 This patch adds a GstMemory as a variable member of the buffer proxy,
11305 because we will need to associate the buffer proxy with the memory
11306 which exposes it. Later, we will know which memory, in the video buffer
11307 pool, is attached to the processed surface.
11308 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11310 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11312 * gst/vaapi/gstvaapipostproc.c:
11313 vaapipostproc: don't GLTextureUpload if dmabuf
11314 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11315 element can handle dmabuf-based buffers, avoiding its negotiation.
11316 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11317 feature if can dmabuf"
11318 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11320 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11322 * gst/vaapi/gstvaapipluginbase.c:
11323 plugins: enable DMAbuf allocator to downstream
11324 If the negotiated caps are raw caps and downstream supports the
11325 EGL_EXT_image_dma_buf_import extension, then the created allocator
11326 is the DMAbuf, configured to downstream.
11327 At this moment, the only element which can push dmabuf-based buffers
11328 to downstream, is vaapipostproc.
11330 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11332 * gst/vaapi/gstvaapipluginbase.c:
11333 * gst/vaapi/gstvaapipluginbase.h:
11334 plugins: check if negotiate dmabuf with downstream
11335 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11336 plugin needs to check if downstream can import dmabuf buffers.
11337 This patch checks if downstream can handle dmabuf, by introspecting the
11338 shared GL context. If the GL context is EGL/GLES2 and have the extension
11339 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11340 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11342 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11344 * gst/vaapi/gstvaapivideomemory.c:
11345 vaapivideomemory: release proxy's data if downstream
11346 The surface created for downstream is going to be filled by VAAPI
11347 elements. So, the driver needs write access on that surface.
11348 This patch releases the derived image held by the proxy, thus the
11349 surface is unmarked as busy.
11350 This is how it has to be done as discussed on libva mailing list.
11351 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11353 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11355 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11356 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11357 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11358 Adds an API to request the user's data release in the buffer proxy.
11359 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11361 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11363 * gst/vaapi/gstvaapipluginbase.c:
11364 * gst/vaapi/gstvaapivideomemory.c:
11365 * gst/vaapi/gstvaapivideomemory.h:
11366 vaapivideomemory: add direction to dmabuf allocator
11367 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11368 we later could do different thing when the allocated memory is for
11369 upstream or dowstream, as required by VA-API.
11370 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11372 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11374 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11375 libs: utils: return NULL if failed to get surface formats
11376 Thus, when generating the allowed caps, the element will throw a
11377 warning and it will use its caps template.
11378 This behavior might be a bug in the VA driver.
11379 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11381 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11383 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11384 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11385 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11387 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11389 * gst/vaapi/gstvaapipostproc.c:
11390 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11391 A value of width/height property should be set to out caps,
11392 if negotiation had been going properly.
11393 So we can use srcpad_info when making decision of scaling.
11394 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11396 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11398 * gst/vaapi/gstvaapidecode.c:
11399 * gst/vaapi/gstvaapiencode.c:
11400 * gst/vaapi/gstvaapipluginutil.c:
11401 * gst/vaapi/gstvaapipluginutil.h:
11402 * gst/vaapi/gstvaapipostproc.c:
11403 * gst/vaapi/gstvaapisink.c:
11404 plugins: handle GL params through context query
11405 If the element instantiated the GL display and context, they should
11406 handle them too through the context query.
11407 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11409 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11411 * gst/vaapi/gstvaapipluginbase.c:
11412 * gst/vaapi/gstvaapipluginbase.h:
11413 * gst/vaapi/gstvaapipluginutil.c:
11414 plugins: create a GL context on certain conditions
11415 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11416 then VAAPI elements look for a local GstGLContext in gst context
11417 sharing mechanism ('gst.gl.local.context').
11418 If this GstGLContext not found either then, only the VAAPI decoders
11419 and the VAAPI post-processor, will try to instantiate a new
11421 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11422 be instantiated with the platform, API and windowing specified by the
11423 instantiated GstGLContext.
11424 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11425 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11427 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11429 * gst/vaapi/gstvaapivideocontext.c:
11430 vaapivideocontext: context type can be rejected
11431 Instead of calling g_return_val_if_fail() to check the context type, we
11432 should use a normal conditional, since it is possible that other context types
11433 can arrive and try to be assigned. Otherwise a critical log message is
11435 This happens when we use playbin3 with vaapipostproc as video-filter.
11436 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11438 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11440 * gst/vaapi/gstvaapipostprocutil.c:
11441 vaapipostproc: use sink caps par if not requested
11442 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11443 is not already set.
11444 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11446 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11448 * gst/vaapi/gstvaapipostproc.c:
11449 * gst/vaapi/gstvaapipostprocutil.c:
11450 vaapipostproc: set interlace mode
11451 if the vaapipostproc is configured to not do deinterlacing, the
11452 interlace-mode in the src caps should be the same as the input caps.
11453 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11455 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11457 * gst/vaapi/gstvaapisink.c:
11458 vaapisink: fix gcc compiler warning
11459 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11461 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11463 * gst/vaapi/gstvaapisink.c:
11464 vaapisink: don't use member variable outside lock
11465 Thus a race condition segfault is avoided.
11466 Original-patch-by: Matt Staples <staples255@gmail.com>
11467 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11469 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11471 * gst/vaapi/gstvaapipluginbase.c:
11472 * gst/vaapi/gstvaapipostproc.c:
11473 plugins: avoid log flood when activating pool
11474 Every time a new buffer is allocated, the pool is activated. This
11475 doesn't impact in performance since gst_buffer_pool_set_active()
11476 checks the current state of the pool. Nonetheless it logs out a
11477 message if the state is the same, and it floods the logging subsystem
11479 To avoid this log flooding first the pool state is checked before
11482 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11484 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11485 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11486 * gst/vaapi/gstvaapidecode.c:
11487 * gst/vaapi/gstvaapidecode.h:
11488 vaapidecode: update internal decoder sink caps
11489 When a new sink caps arrive the internal decoder state is updated
11490 and, if it is, request a downstream renegotiation.
11491 Previously, when new caps arrived the whole decoder where destroyed
11492 and recreated. Now, if the caps are compatible or has the same codec,
11493 the internal decoder is kept, but a downstream renegotiation is
11495 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11497 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11500 Back to development
11502 === release 1.11.1 ===
11504 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11509 * gstreamer-vaapi.doap:
11512 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11514 * gst-libs/gst/vaapi/gstvaapiutils.c:
11515 vaapi: bump ifdef to API 0.40.0 for log redirect
11516 vaSetInfoCallback() is not released yet. It is going to appear in
11519 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11521 * gst-libs/gst/vaapi/gstvaapiutils.c:
11522 vaapiutils: Fix compilation with latest and previous libva releases
11523 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11526 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11528 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11529 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11530 * gst-libs/gst/vaapi/gstvaapiutils.c:
11531 * gst-libs/gst/vaapi/gstvaapiutils.h:
11532 libs: display: redirect logging at initialize
11533 Redirect libva's logs to GStreamer logging mechanism. This is
11534 particularly useful when VA is initialized, because it always logs
11535 out the drivers details.
11536 In order to achieve this a new helper function was added as a wrapper
11537 for the vaInitialize() function.
11538 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11540 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11542 * gst/vaapi/gstvaapipluginbase.c:
11543 plugins: provide at least two buffers in sink pool
11544 Adds two buffers as the default value of minimum buffer.
11545 This would be used when creating and proposing vaapi bufferpool for
11546 sink pad, hence the upstream element will keep, at least, these two
11548 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11549 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11551 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11553 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11554 libs: decoder: h264: don't update cloned attributes
11555 If the frame is a cloned picture, its PTS comes from its parent
11556 picture. In addition, the base decoder doesn't set a valid PTS to
11557 the frame corresponding to the cloned picture.
11558 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11560 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11562 * gst/vaapi/gstvaapivideomemory.c:
11563 vaapivideomemory: check for display
11564 This patch fixes the check of display, rather than check for the
11565 meta, which it is known it exists.
11567 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11569 * gst/vaapi/gstvaapivideomemory.c:
11570 * gst/vaapi/gstvaapivideomemory.h:
11571 vaapivideomemory: rename dmabuf allocator parameters
11572 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11573 'surface_alloc_flags' respectively. The purpose of this change is
11574 to auto-document those parameters.
11575 Also, aligned to this patch, the local 'alloc_info' variable was
11576 renamed as 'surface_info', because it stores the possible surface's
11577 video info, not the allocate one.
11579 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11581 * gst/vaapi/gstvaapivideomemory.c:
11582 * gst/vaapi/gstvaapivideomemory.h:
11583 vaapivideomemory: rename vip to alloc_info parameter
11584 In order to auto-document the code, this patch renames the 'vip'
11585 parameter in the functions related to gst_vaapi_video_allocator_new ()
11586 to 'alloc_info', since it declares the allocation video info from
11587 the vaapi buffer pool.
11589 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11591 * gst/vaapi/gstvaapivideomemory.c:
11592 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11593 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11594 the video format string.
11596 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11598 * gst/vaapi/gstvaapivideomemory.c:
11599 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11600 gst_vaapi_surface_new_with_format() is a wrapper for
11601 gst_vaapi_surface_new_full (). In this case, the former is simpler
11602 than the first. This patch changes that.
11604 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11606 * gst/vaapi/gstvaapipostproc.c:
11607 vaapipostproc: notify if src pad caps changed
11608 If src pad caps have changed, it needs to notify it downstream. In
11609 addition, do not set passthrough if they have changed.
11610 Otherwise, transform sometimes starts processing before caps change.
11611 The passthrough value will be set in fixate later in this case.
11612 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11614 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11616 * gst/vaapi/gstvaapidecodebin.c:
11617 vaapidecodebin: capsfilter to optimize negotiation
11618 Add a capsfilter forcing the caps
11619 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11620 queue and the vaapipostproc so no renegotiation is required.
11621 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11623 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11625 * gst/vaapi/gstvaapivideomemory.c:
11626 vaapivideomemory: fail surface/image configuration
11627 To detect and handle errors during allocator_configure_surface_info()
11628 and allocator_conigure_image_info().
11629 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11630 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11632 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11634 * gst/vaapi/gstvaapisink.c:
11635 vaapisink: ensures raw caps at start()
11636 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11637 race conditions at get_caps(), especially with multiple src elements.
11638 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11640 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11642 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11643 libs: surface: fix error handling code style
11645 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11647 * gst/vaapi/gstvaapivideomemory.c:
11648 vaapivideomemory: add gst_video_info_update_from_surface()
11649 With this function is possible to refactor and remove duplicated code
11650 between dmabuf configuration and direct rendering/uploading
11653 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11655 * gst/vaapi/gstvaapivideomemory.c:
11656 vaapivideomemory: no log object at initialization
11657 When an instance of GstVaapiVideoAllocator fails at initializing, the
11658 log message should not include the allocator's object, because it is
11659 going to be unrefed.
11661 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11663 * gst/vaapi/gstvaapidecode.c:
11664 vaapidecode: lock stream when setting caps
11666 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11668 * gst/vaapi/gstvaapidecode.c:
11669 Revert "vaapidecode: implement negotiate() vmethod"
11670 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11671 videodecode's negotiate() vmethod is also called when events arrive,
11672 but this would mean that the proper configuration of sink pad might
11673 not be complete, thus we should not update the src pad.
11674 Let's keep the old non-vmethod negotitate().
11676 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11678 * gst/vaapi/gstvaapi.c:
11679 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11680 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11682 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
11684 * gst/vaapi/gstvaapiencode.c:
11685 * gst/vaapi/gstvaapiencode.h:
11686 vaapiencode: get surface formats in get_caps()
11687 Query for the supported surface formats in config at get_caps() vmethod.
11688 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11689 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11691 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
11693 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11694 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11695 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11696 This method will return the valid surface formats in the current
11697 config. If the are no VAConfig it is created with the information
11699 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11700 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11702 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
11704 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11705 libs: encoder: split set_context_info()
11706 Split set_context_info() adding init_context_info() which only
11707 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11708 required for VAConfig.
11709 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11710 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11712 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
11714 * gst-libs/gst/vaapi/gstvaapicontext.c:
11715 libs: context: skip VAContext if no frame size
11716 If GstVaapiContextInfo has just initial information, without frame's
11717 width and height, skip the creation of the VAContext, just keep the
11719 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11720 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11722 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11724 * gst-libs/gst/vaapi/gstvaapicontext.c:
11725 libs: context: split context_create()
11726 Split the funcion context_create() into context_create() and
11728 Decoupling VAConfig and VAContext during context creation, we could
11729 query the VAConfig for the supported surface's formats without creating
11731 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11733 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11735 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11736 libs: drm: find render node in hybrid system
11737 Originally the drm backend only tried to open the first render node
11738 found. But in hybrid system this first render node might not support
11739 VA-API (propietary Nvidia driver, for example).
11740 This patch tries all the available nodes until a finding one with a
11741 VA-API supported driver.
11742 https://bugzilla.gnome.org/show_bug.cgi?id=774811
11743 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11744 Reza Razavi <reza@userful.com>
11746 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11748 * gst/vaapi/gstvaapivideomemory.c:
11749 vaapivideomemory: refactor code for readability
11750 Added the inlined function allocator_configure_pools() moving out code
11751 from gst_vaapi_video_allocator_new() to make clear that it is a
11752 post-initalization of the object.
11754 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11756 * gst/vaapi/gstvaapivideomemory.c:
11757 vaapivideomemory: log error if not VA image
11758 Log an error message if the test image for surface downloading
11759 cannot be allocated or mapped.
11761 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11763 * gst/vaapi/gstvaapivideomemory.c:
11764 vaapivideomemory: remove unused macros
11765 These macros are not used. Let us remove them.
11767 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11769 * gst/vaapi/gstvaapivideomemory.c:
11770 * gst/vaapi/gstvaapivideomemory.h:
11771 vaapivideomemory: rename video for allocation_info
11772 Since video_info stores the GstVideoInfo of the allocation caps,
11773 it is clear if we rename it as allocation_info, to distinguish it
11774 later from negotiation_info.
11776 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11778 * gst/vaapi/gstvaapivideomemory.c:
11779 * gst/vaapi/gstvaapivideomemory.h:
11780 vaapivideomemory: add real GstVaapiDmaBufAllocator
11781 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11782 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11783 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11784 from GstDmaBufAllocator.
11785 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11786 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11788 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
11790 * gst/vaapi/gstvaapivideomemory.c:
11791 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11792 Add a helper function to initialize the gst_debug_vaapivideomemory,
11793 to use it either by the GstVaapiVideoAllocatorClass or
11794 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11795 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11796 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11798 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
11800 * gst/vaapi/gstvaapiencode.c:
11801 vaapiencode: release internal encoder at stop()
11802 As the internal encoder is created at start(), let's release it at
11803 stop() vmethod, to be consistent.
11804 gst_vaapiencode_destroy() is called since it also resets the input and
11805 output states, which is something that the base class does internally
11806 after calling stop() vmethod.
11807 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11808 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11810 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
11813 Automatic update of common submodule
11814 From f49c55e to 39ac2f5
11816 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
11818 * gst/vaapi/gstvaapiencode.c:
11819 vaapiencode: call ensure_encoder() at start()
11820 Currently, specific encoder is created during set_format(). This might
11821 lead to race condition when creating profiles with multiple encoders.
11822 This patch moves ensure_encoder() call to start() vmethod to ensure
11823 avoiding the race condition.
11824 https://bugzilla.gnome.org/show_bug.cgi?id=773546
11826 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11828 * gst/vaapi/gstvaapidecodebin.c:
11829 vaapidecodebin: bring back dynamic configuration
11830 In commit ca0c3fd6 we remove the dynamic configuration if the bin
11831 because we assumed that the bin will be always static as it is
11833 Nonetheless we were wrong, because it is possible to request, with a
11834 property, to avoid the use of the post-processor.
11835 Since we want to add a way to disable the post-processor through
11836 environment variables, this remove feature is required again.
11837 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11838 postprocessor inside of the vaapidecodebin is disabled, then
11839 vaapidecodebin is an alias of the old vaapidecode.
11840 https://bugzilla.gnome.org/show_bug.cgi?id=775041
11842 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11844 * gst/vaapi/gstvaapidecode.c:
11845 vaapidecode: implement negotiate() vmethod
11846 Instead of decorating the negotiate() method, let us override it,
11847 so the stream is locked while called.
11848 https://bugzilla.gnome.org/show_bug.cgi?id=775040
11850 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
11853 common: use https protocol for common submodule
11854 https://bugzilla.gnome.org/show_bug.cgi?id=775110
11856 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
11858 * gst-libs/gst/vaapi/Makefile.am:
11859 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11860 In case libva-wayland has its headers not installed in default
11861 locations (like /usr/include), the build fails to include "wayland-client.h":
11862 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
11863 In file included from gstvaapidisplay_wayland.h:27:0,
11864 from gstvaapidisplay_egl.c:35:
11865 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11866 #include <wayland-client.h>
11867 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11868 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11869 for libva-wayland.pc in configure and use this in other places as well. It is thus only
11870 correct and consequent, to do it also at this spot.
11871 https://bugzilla.gnome.org/show_bug.cgi?id=773946
11873 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11875 * gst/vaapi/gstvaapivideocontext.c:
11876 vaapivideocontext: log a message if no bus
11877 Raise a warning if there is no bus when the element tries to post a
11880 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11882 * gst/vaapi/gstvaapisink.c:
11883 vaapisink: create display at open()
11884 Instead of creating the VA display before setting the bus to the
11885 element, it is created when the element is opened.
11886 Basically, this commit is a revert of
11887 5e5d62cac79754ba60057fc2516135aad8d7de35
11888 That was done when the GStreamer's context sharing was not mature
11889 enough as now. There is no reason to keep this hack.
11891 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11893 * gst/vaapi/gstvaapidecode.c:
11894 vaapidecode: don't add video crop meta
11895 Since the differentiation of negotiation caps and allocation caps,
11896 there is no need to add a video crop meta with the negotiation caps.
11897 Hence, removing it.
11898 https://bugzilla.gnome.org/show_bug.cgi?id=773948
11900 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11902 * gst/vaapi/gstvaapivideobuffer.c:
11903 * gst/vaapi/gstvaapivideometa.c:
11904 * gst/vaapi/gstvaapivideometa.h:
11905 remove the video converter from vaapi buffer meta
11906 Since all the video converter were deprecated in gstreamer-1.2, we don't need
11907 to handle them anymore in the vaapi's buffer meta.
11908 This patch removes its usage and the buffer meta's API for that.
11909 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11911 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11913 * gst/vaapi/gstvaapipluginbase.c:
11914 plugins: destroy source pad allocator and pool
11915 First, deactivate source pad pool when the out caps change, and if so,
11916 destroy texture map, the source pad allocator and pool only if the
11917 new caps are different from the ones already set.
11919 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11921 * gst/vaapi/gstvaapipluginbase.c:
11922 plugins: don't destroy sink pad allocator
11923 Don't destroy sink pad allocator at _set_caps() because it will be done at
11924 ensure_sinkpad_buffer_pool() if it is required.
11926 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11928 * gst/vaapi/gstvaapipluginbase.c:
11929 plugins: first validate the out caps
11930 When calling _set_caps() first validate the out caps before doing
11933 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11935 * gst/vaapi/gstvaapidecode.c:
11936 vaapidecode: negotiate after destroying allocator
11937 This is related with bug 758907 when no vaapipostproc is used (no
11938 vaapidecodebin). In order to negotiate downstream we need to destroy
11939 the source pad allocator, otherwise the same allocated buffers are
11940 used, failing the mapping.
11942 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11944 * gst/vaapi/gstvaapivideomemory.c:
11945 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11946 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11947 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
11949 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11951 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11953 * gst/vaapi/gstvaapipluginbase.c:
11954 plugins: update the src pad allocator video info
11955 Update the size, stride and offset of the source pad allocator video
11956 info, so the pool could set the correct GstVideoMeta
11957 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11959 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11961 * gst/vaapi/gstvaapivideomemory.c:
11962 vaapivideomemory: add missing documentation
11963 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11965 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11967 * gst/vaapi/gstvaapipluginbase.c:
11968 plugins: use early return without goto
11969 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11971 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11973 * gst/vaapi/gstvaapipluginbase.c:
11974 * gst/vaapi/gstvaapivideomemory.c:
11975 * gst/vaapi/gstvaapivideomemory.h:
11976 plugins: add allocator to allocation query
11977 This patch adds the created allocator to the allocation query either
11978 in decide_allocation() and propose_allocation() vmehtods.
11979 With it, there's no need to set the modified allocator's size in the
11980 pool configuration.
11981 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11983 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
11985 * gst/vaapi/gstvaapivideobufferpool.c:
11986 vaapivideobufferpool: set correct buffer size
11987 We should set the correct buffer size when we are configuring the pool,
11988 otherwise the buffer will be discarded when it returns to the pool.
11989 Indeed when the ref-count of a buffer reaches zero, its pool will queue
11990 it back (and ref it) if, and only if, the buffer size matches the
11991 configured buffer size on the pool.
11992 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
11993 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11995 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11997 * gst/vaapi/gstvaapivideomemory.c:
11998 vaapivideomemory: check for memory allocator
11999 When calling gst_vaapi_video_memory_copy() the allocator of the memory
12000 to copy should be allocated by the vaapi allocator.
12001 This patch does this verification.
12003 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12005 * gst/vaapi/gstvaapivideomemory.c:
12006 vaapivideomemory: code style fixes
12007 A cosmetic commit for enhance readability of the casts and method
12010 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12012 * gst/vaapi/gstvaapivideomemory.c:
12013 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
12014 Instead of having a gst_vaapi_video_memory_free() that is only going to
12015 be called by gst_vaapi_video_allocator_free(), let's just remove the first
12016 and merged into the second.
12018 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12020 * gst/vaapi/gstvaapivideomemory.c:
12021 vaapivideomemory: avoid virtual methods casting
12022 Use the expected virtual method signatures for readability.
12024 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12026 * gst/vaapi/gstvaapivideomemory.c:
12027 vaapivideomemory: remove unimplemented methods
12028 Remove unimplemented method for allocator mem_share() and mem_is_span().
12030 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12032 * gst/vaapi/gstvaapivideomemory.c:
12033 vaapivideomemory: fail if frame map can't get plane
12034 If map() vmethod in GstVideMeta cannot get the plane data, return false,
12035 thus the caller will not try to read invalid memory.
12036 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12038 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12040 * gst/vaapi/gstvaapivideomemory.c:
12041 * gst/vaapi/gstvaapivideomemory.h:
12042 vaapivideomemory: lock map and unmap operations
12043 In order to avoid race condition when two threads call map/unmap the same
12044 VA surface, this patch mutex these operations.
12045 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12047 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12049 * gst/vaapi/gstvaapivideomemory.c:
12050 vaapivideomemory: refactor vaapi memory unmapping
12051 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
12052 gst_vaapi_video_memory_unmap() when unmapping.
12053 This patch refactors both methods adding the common function
12054 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
12055 is correctly reset.
12056 Additionally, only when mapping flag has the WRITE bit, it set the image as
12057 current, which was done in gst_video_meta_map_vaapi_memory() but no in
12058 gst_vaapi_video_memory_map().
12059 In order to make this, the mapping flags were required, so instead of
12060 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
12061 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12063 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12065 * gst/vaapi/gstvaapivideomemory.c:
12066 vaapivideomemory: refactor vaapi memory mapping
12067 There were duplicated code in gst_video_meta_map_vaapi_memory() and
12068 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
12069 This patch refactors both methods adding the common function
12070 map_vaapi_memory().
12071 Additionally, only when flag has the READ bit it calls
12072 ensure_images_is_current(), which was done in
12073 gst_video_meta_map_vaapi_memory() but no in
12074 gst_vaapi_video_memory_map().
12075 https://bugzilla.gnome.org/show_bug.cgi?id=772151
12077 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12079 * gst/vaapi/gstvaapidecode.c:
12080 vaapidecode: unref allowed_sinkpad_caps at close()
12081 The variable member allowed_sinkpad_caps is constructed querying the
12082 current VA display. Bearing that in mind, the variable shall be freed
12083 when the VA display changes or is removed.
12084 This patch moves the freeing of allowed_sinkpad_caps to close(), when
12085 the VA display is freed.
12087 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12089 * gst/vaapi/gstvaapisink.c:
12090 vaapisink: finish event thread at stop()
12091 The thread that handles window's events should be finished during
12092 pipeline's shutdown, otherwise it will remain alive during pipeline
12093 re-activation, leading to unexpected problems.
12094 This patch fixes failures of intensive_state_change scenario of
12096 https://bugzilla.gnome.org/show_bug.cgi?id=774241
12098 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12100 * gst/vaapi/gstvaapipostproc.c:
12101 vaapipostproc: enhance debug message
12102 "gst_pad_push" is not a good description of the event.
12104 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12106 * gst/vaapi/gstvaapipostproc.c:
12107 postproc: honor gst_pad_push() return value
12108 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12109 deadlock during seek.
12110 This patch returns the same error of gst_pad_push() and log out the
12112 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12114 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12116 * gst/vaapi/gstvaapidecode.c:
12117 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12118 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12119 compiled with out EGL/GLX support: it shall not support
12120 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12121 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12122 allowed src caps for vaapedecode if EGL/GLX.
12124 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12126 * gst/vaapi/gstvaapivideomemory.c:
12127 vaapivideomemory: increment map counter only if succeeded
12128 Previously the frame map counter increased independently if the map succeeded
12129 or not. This leaded to critical messages and crashes if the frame was unable
12130 to be mapped, but the counter increased.
12131 This patch increases the map counter only if the map operation occurred.
12132 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12134 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12136 * gst/vaapi/gstvaapipluginbase.c:
12137 plugins: set negotiation caps in src allocator
12138 When the allocator is created, it stores the allocation caps. But sometimes
12139 the "allocation caps" may be different from the "negotiation caps".
12140 In this case, the allocator should store the negotiation caps since they
12141 are the ones used for frame mapping with GstVideoMeta.
12142 When vaapispostproc is used, this is not a problem since the element is assume
12143 to resize. But when using a vaapi decoder only, with a software renderer, it
12144 fails in this case.
12145 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12147 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12149 * gst/vaapi/gstvaapidecode.c:
12150 * gst/vaapi/gstvaapidecode.h:
12151 vaapidecode: generate source pad caps
12152 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12153 raw formats, so, the src caps can negotiate the exact caps that the context
12156 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12158 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12159 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12160 libs: decoder: add _get_surface_formats()
12161 This function exposes the available formats of the surfaces in the the current
12162 context to the plugins.
12164 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12166 * gst-libs/gst/vaapi/gstvaapicontext.c:
12167 * gst-libs/gst/vaapi/gstvaapicontext.h:
12168 libs: context: ensure context formats
12169 This patch ensures to get the formats, as filter does, available in the
12170 decoder / encoder context.
12171 The context fills up the array as soon it is created, otherwise the pipeline
12172 could get stalled (perhaps this is a bug in my HSW backend).
12173 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12175 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12177 * gst-libs/gst/vaapi/gstvaapifilter.c:
12178 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12179 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12180 libs: move get_surface_formats to utils_core
12181 The query of all the supported formats for a VA config were only used by the
12182 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12183 negotiate a suitable raw format with downstream, we need to query these
12184 formats against the decoder's config.
12185 This patch is the first step: moves the code in filter's ensure_image() to a
12186 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12187 shared later by the decoder.
12188 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12190 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12192 * gst/vaapi/gstvaapipluginbase.c:
12193 plugins: remove set_sinkpad_dmabuf_allocator()
12194 Since when the sink pad allocator is created, it is decided if the required
12195 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12198 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12200 * gst/vaapi/gstvaapipluginbase.c:
12201 plugins: ensure display when getting raw caps
12202 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12203 meanwhile it is transforming caps. The problem is that stop() calls
12204 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12205 the va display is used in tranform_caps() when it is extracting the possible
12206 format conversions. This display disappearing generates warning messages.
12207 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12208 hence it doesn't go away meanwhile it is used, even if the
12209 gst_vaapi_plugin_base_close() is called in other thread.
12210 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12212 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12214 * gst/vaapi/gstvaapiencode_h264.c:
12215 * gst/vaapi/gstvaapiencode_h265.c:
12216 plugins: fix code style for errors
12218 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12220 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12221 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12222 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12223 * gst-libs/gst/vaapi/gstvaapicontext.c:
12224 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12225 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12226 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12227 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12228 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12229 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12230 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12231 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12232 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12233 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12234 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12235 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12236 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12237 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12238 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12239 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12240 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12241 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12242 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12243 * gst-libs/gst/vaapi/gstvaapifilter.c:
12244 * gst-libs/gst/vaapi/gstvaapiimage.c:
12245 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12246 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12247 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12248 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12249 * gst-libs/gst/vaapi/gstvaapisurface.c:
12250 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12251 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12252 * gst-libs/gst/vaapi/gstvaapitexture.c:
12253 * gst-libs/gst/vaapi/gstvaapiutils.c:
12254 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12255 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12256 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12257 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12258 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12259 libs: fix code style for errors
12261 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12263 * gst/vaapi/gstvaapipluginbase.c:
12264 * gst/vaapi/gstvaapivideocontext.c:
12265 plugins: update GstGL deprecated symbol
12266 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12268 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12270 * gst/vaapi/gstvaapipluginbase.c:
12271 plugins: direct render when raw video
12272 Enable the direct rendering with linear surfaces if the negotiated src caps
12273 are video/x-raw without features.
12274 Pass also the caps, since they are needed to know the requested caps features.
12276 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12278 * gst/vaapi/gstvaapipluginbase.c:
12279 plugins: move src allocator error to instantiator
12280 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12281 into the ensure_srcpad_allocator() from the caller,
12282 gst_vaapi_plugin_base_decide_allocation()
12284 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12286 * gst/vaapi/gstvaapipluginbase.c:
12287 plugins: enable direct upload if raw video
12288 Enable the direct upload with linear surfaces if the negotiated sink caps are
12289 video/x-raw without features.
12291 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12293 * gst/vaapi/gstvaapipluginutil.c:
12294 * gst/vaapi/gstvaapipluginutil.h:
12295 pluginutil: add gst_caps_is_video_raw()
12297 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12299 * gst/vaapi/gstvaapipluginbase.c:
12300 plugins: receive caps in ensure_sinkpad_allocator()
12301 Instead of receiving the GstVideoInfo structure as parameter, get the original
12302 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12303 which allocator instantiate.
12305 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12307 * gst/vaapi/gstvaapivideomemory.c:
12308 vaapivideomemory: destroy derived image at unmap
12309 If the allocator was configured to use direct upload or rendering, the
12310 generated derived image created at mapping needs to be destroyed after
12311 unmapping, because, in order to process the surface, it should not be marked
12312 as "busy" by the driver.
12314 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12316 * gst/vaapi/gstvaapivideomemory.c:
12317 vaapivideomemory: enhance logs for direct modes
12318 Print, conditionally, only the enabled direct mode.
12320 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12322 * gst/vaapi/gstvaapivideomemory.c:
12323 * gst/vaapi/gstvaapivideomemory.h:
12324 vaapivideomemory: add direct upload flag
12325 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12326 GstVaapiVideoMemory.
12327 It still doesn't apply any functional change.
12329 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12331 * gst/vaapi/gstvaapipluginbase.c:
12332 * gst/vaapi/gstvaapivideomemory.c:
12333 * gst/vaapi/gstvaapivideomemory.h:
12334 vaapivideomemory: set direct rendering at run-time
12335 The way to experiment with the direct rendering is through and internal
12336 compiler pre-processor flag.
12337 The current change set enables a way to specified at run-time, as a flag
12338 passed to the allocator at instanciation time.
12340 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12342 * gst/vaapi/gstvaapivideomemory.c:
12343 vaapivideomemory: log in perf category when copy
12344 Log in performance category when the derive image handling fails, falling back
12347 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12349 * gst/vaapi/gstvaapivideomemory.c:
12350 vaapivideomemory: error log is derive image fails
12351 Instead of a silently failure of the derive image, this patch log an error
12352 message according to the failure.
12354 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12356 * gst/vaapi/gstvaapivideomemory.c:
12357 vaapivideomemory: store surface alloc flags in qdata
12358 For sake of consistency, we should add the requested surface allocation flags
12359 to the object's qdata structure.
12361 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12363 * gst/vaapi/gstvaapivideomemory.c:
12364 vaapivideomemory: category init when object define
12365 Move the Gstreamer debug category initialize to the GObject definition.
12367 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12369 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12370 libs: vaapitexturemap: trivial code-style fix
12372 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12374 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12375 libs: display: egl: avoid recreate native display
12376 Instead of passing the native descriptor of the display, just pass the received
12377 GstVaapiDisplay and reuse it.
12379 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12381 * gst/vaapi/gstvaapipluginbase.c:
12382 plugins: log the GstVaapiDisplay name
12383 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12384 name. Log it instead of the memory address.
12386 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12388 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12389 libs: window: egl: pass native va display
12390 When creating a GstVaapiWindowEGL, it also creates native window by its own
12391 native display. It should pass the native display, either X11 or Wayland.
12392 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12394 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12396 * gst-libs/gst/vaapi/gstvaapidebug.h:
12397 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12398 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12399 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12400 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12401 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12402 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12403 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12404 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12405 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12406 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12407 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12408 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12409 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12410 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12411 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12412 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12413 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12414 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12415 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12416 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12417 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12418 * gst/vaapi/gstvaapivideocontext.c:
12419 libs: display: GstVaapiDisplay as GstObject descendant
12420 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12421 instead of GstVaapiMiniObject. In this way we can use all the available
12422 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12423 In addition, a new debug category for GstVaapiDisplay is created to make it
12424 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12425 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12426 This patch is a step forward to expose GstVaapiDisplay for users in a future
12428 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12429 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12431 === release 1.11.0 ===
12433 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12436 Back to development
12438 === release 1.10.0 ===
12440 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12445 * gstreamer-vaapi.doap:
12448 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12450 * gst/vaapi/gstvaapidecodebin.c:
12451 vaapidecodebin: resurrect disable-vpp property
12452 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12454 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12456 * gst/vaapi/gstvaapidecodebin.c:
12457 vaapidecodebin: name the internal queue
12458 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12460 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12462 * gst/vaapi/gstvaapidecodebin.c:
12463 * gst/vaapi/gstvaapidecodebin.h:
12464 vaapidecodebin: remove unused variables
12465 Since vaapipostproc is only registered if the driver supports it, all the
12466 support for dynamic loading were removed. Though some leftovers remained.
12467 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12469 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12471 * docs/plugins/Makefile.am:
12472 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12473 * docs/plugins/running.xml:
12474 docs: document environment variables
12475 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12477 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12479 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12480 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12481 * gst/vaapi/Makefile.am:
12482 * gst/vaapi/gstvaapidecode.c:
12483 * gst/vaapi/gstvaapidecodebin.c:
12484 * gst/vaapi/gstvaapidecodedoc.c:
12485 docs: replace vaapidecode with each codec
12486 In the spirit of the codec split, this patch removes the documentation of
12487 vaapidecode and adds a page per each possible decoder.
12488 Nonetheless, only those available in the compilation system are going to be
12489 instrospected, because the rest are not registered.
12491 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12493 * gst/vaapi/gstvaapipluginutil.c:
12494 * gst/vaapi/gstvaapivideobuffer.c:
12495 * gst/vaapi/gstvaapivideometa.c:
12496 docs: add missing long descriptions
12498 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12500 * gst/vaapi/gstvaapipostproc.c:
12501 vaapipostproc: use GST_*_OBJECT when possible
12502 Since we can have several vaapipostproc operating in a pipeline, it is useful
12503 to know which one is generating the logging message.
12504 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12506 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12508 * gst/vaapi/gstvaapidecode.c:
12509 * gst/vaapi/gstvaapidecode.h:
12510 vaapidecode: rename member to allowed_sinkpad_caps
12511 vaapidecode has a member named allowed_caps, but this name is not enough
12512 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12513 No functional changes were included.
12514 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12516 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12518 * gst/vaapi/gstvaapiencode_h264.c:
12519 * gst/vaapi/gstvaapiencode_h265.c:
12520 * gst/vaapi/gstvaapisink.c:
12521 * gst/vaapi/gstvaapivideomemory.c:
12522 * gst/vaapi/gstvaapivideometa.c:
12523 * gst/vaapi/gstvaapivideometa_texture.c:
12524 plugins: fix code style for errors
12525 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12527 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12529 * gst/vaapi/gstvaapivideomemory.c:
12530 vaapivideomemory: comment style
12531 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12533 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12535 * gst/vaapi/gstvaapivideomemory.c:
12536 * gst/vaapi/gstvaapivideomemory.h:
12537 vaapivideomemory: rename input parameter
12538 In order to clarify the use of flag as input parameter, it is renamed to
12539 surface_alloc_flag, since it is used when creating a VA surface with certain
12541 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12543 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12545 * gst/vaapi/gstvaapidecode.c:
12546 vaapidecode: rename element description
12547 So encoders and decoders have similar descriptions.
12548 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12550 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12552 * gst/vaapi/gstvaapiencode_h264.c:
12553 * gst/vaapi/gstvaapiencode_h265.c:
12554 vaapiencode: h264, h265: rename codec name
12555 So encoder and decoders have the same codec name.
12556 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12558 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12560 * gst/vaapi/gstvaapipluginbase.c:
12561 plugins: simplify code
12562 Merge two lines of variable declarations.
12563 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12565 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12567 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12568 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12569 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12570 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12571 libs: minor correction for logical consistency
12572 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12573 use its methods, even though it doesn't change functionality.
12574 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12575 GstVaapiObject, hence its methods shall be used.
12576 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12578 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12580 * gst/vaapi/gstvaapivideomemory.c:
12581 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12582 In short GstFdMemory is configured to call close when using
12584 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12586 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12589 * gst-libs/gst/vaapi/Makefile.am:
12590 build: clean up the dlopen usage
12592 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12594 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12595 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12596 encoder: h264,h265: fix regression in offset count
12597 In commit dc35dafa a bug was introduced because I assumed that
12598 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12599 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12601 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12604 docs: update README
12606 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12608 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12609 libs: display: egl: remove unused header include
12610 The header gmodule.h is not used since the library dynamic loading for EGL
12611 display was removed.
12612 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12614 === release 1.9.90 ===
12616 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12622 * gstreamer-vaapi.doap:
12625 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12627 * gst/vaapi/gstvaapidecode.c:
12628 * gst/vaapi/gstvaapidecodebin.c:
12629 * gst/vaapi/gstvaapiencode_h264.c:
12630 * gst/vaapi/gstvaapiencode_h265.c:
12631 * gst/vaapi/gstvaapiencode_jpeg.c:
12632 * gst/vaapi/gstvaapiencode_mpeg2.c:
12633 * gst/vaapi/gstvaapiencode_vp8.c:
12634 * gst/vaapi/gstvaapipostproc.c:
12635 * gst/vaapi/gstvaapisink.c:
12636 vaapi: use new gst_element_class_add_static_pad_template()
12637 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12638 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12640 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12642 * gst/vaapi/gstvaapipluginbase.c:
12643 plugins: reset textures at negotiation/shutdown
12644 When caps reconfiguration is called, the new downstream frame size might be
12645 different. Thus, if the downstream caps change,the display's texture map is
12647 In addition, during pipeline shutdown, textures in texture map have to be
12648 released, since each one have a reference to the GstVaapiDisplay object, which
12649 is a dangerous circular reference.
12650 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12651 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12653 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12655 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12656 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12657 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12658 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12659 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12660 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12661 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12662 * gst/vaapi/gstvaapivideometa_texture.c:
12663 libs: display{egl,glx}: cache GstVaapiTextures
12664 instances when created and reuse
12665 This patch improves performance when glimagesink uploads a GL texture.
12666 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12667 instance of GstVaapiTextureMap, so our internal texture structure can be found
12668 by matching the GL texture id for each frame upload process, avoiding the
12669 internal texture structure creation and its following destruction.
12670 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12671 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12673 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
12675 * gst-libs/gst/vaapi/Makefile.am:
12676 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12677 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12678 libs: vaapitexturemap: implement GstVaapiTextureMap
12679 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12680 reused. Internally it is a hash table.
12681 Note that it is GstObject based rather than GstVaapiObject, as part of the future
12682 converstion to GstObject of most of the code.
12683 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12684 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12686 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12688 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12689 encoder: vp8: Increase the allocation size for coded buffer
12690 We are not getting enough compression for some streams and
12691 encoded frame end up with more size than allocated.
12692 Assuming a compression ratio of 4, which should be good enough
12693 for holding the frames.
12694 https://bugzilla.gnome.org/show_bug.cgi?id=771528
12696 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12698 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12699 encoder: vp9: Fix refresh frame flag setting
12700 While doing the mode-1 referece picture selection,
12701 the circular buffer logic was not correctly setting the
12702 refresh frame flags as per VP9 spec.
12703 Make sure refresh_flag[0] get updated correclty after
12704 each cycle of GST_VP9_REF_FRAMES.
12705 https://bugzilla.gnome.org/show_bug.cgi?id=771507
12707 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12709 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12710 vaapidecode: codec_data minimal size is 7
12711 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12712 stream, not in the codec_data, so the size of codec_data might be 7.
12713 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12714 https://bugzilla.gnome.org/show_bug.cgi?id=771441
12716 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12718 * gst/vaapi/gstvaapidecode.c:
12719 vaapidecode: reset decoder hard when set_format()
12720 set_format() is called by upstream when the stream capabilites has changed.
12721 Before, if the new stream is compatible with the old one the VA decoder was
12722 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12723 when the upstreamer parsers gets more details of the stream, such as the
12724 framerate. Hence, when the src caps are negotiates, the further sink caps
12725 updates are ignored.
12726 This patch forces the VA decoder destroying and recreation when set_format()
12728 https://bugzilla.gnome.org/show_bug.cgi?id=770921
12730 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
12733 configure: Depend on gstreamer 1.9.2.1
12735 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12737 * gst/vaapi/gstvaapivideomemory.c:
12738 Revert "vaapivideomemory: load VA Image when mapping to write"
12739 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12741 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
12744 Automatic update of common submodule
12745 From b18d820 to f980fd9
12747 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
12750 Automatic update of common submodule
12751 From f49c55e to b18d820
12753 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12755 * gst/vaapi/gstvaapipluginbase.c:
12756 plugins: set allocator's image size to sinkpad bufferpool
12757 Otherwise the buffer is always ditched by the bufferpool, losing performance.
12758 https://bugzilla.gnome.org/show_bug.cgi?id=771035
12760 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12762 * gst-libs/gst/vaapi/gstvaapisurface.c:
12763 libs: surface: ensure composite overlay is not bigger
12764 Ensure the composition overlay rectangle (subtitles) is not bigger than
12765 the surface where it is going to be composited and rendered.
12766 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12768 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
12770 * gst/vaapi/gstvaapivideomemory.c:
12771 vaapivideomemory: load VA Image when mapping to write
12772 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12773 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12775 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12777 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12779 * gst/vaapi/gstvaapidecode.c:
12780 vaapidecode: merge vc1 and wmv3 elements
12781 This patch merges vaapivc1dec and vaapiwmv3dec into a single
12782 vaapivc1dec. Also, removed the WMVA format, since it is not
12783 supported by libva.
12784 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12786 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12788 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12789 decoder: vc1: fails only on advanced profile
12790 In commit 2eb4394 the frame coding mode was verified for progressive
12791 regardless the profile. But the FCM is only valid in the advanced
12792 profile. This patch checks for the advanced profile before verifying FCM for
12794 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12796 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12798 * gst/vaapi/gstvaapi.c:
12799 vaapi: DISPLAY envvar as dependency
12800 In a multiple video cards system, a X11 environment may have different VA
12801 capabilities. This patch tracks the DISPLAY environment variable to
12802 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12803 https://bugzilla.gnome.org/show_bug.cgi?id=770357
12805 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12807 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12808 decoder: vc1: Fail only on actual interlaced frames
12809 In the earlier patch:
12810 f31d9f3 decoder: vc1: Print error on interlaced content
12811 Decoding would error out if the interlace flag was set in the
12812 sequence bdu. This isn't quite right because a video can have this
12813 flag set and yet not have any interlaced pictures.
12814 Here instead we error out when either parsing a field bdu or
12815 decoding a frame bdu which has fcm set to anything other than
12817 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12818 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12820 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
12823 Back to development
12825 === release 1.9.2 ===
12827 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
12832 * gstreamer-vaapi.doap:
12835 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
12837 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12838 decoder: vc1: Print error on interlaced content
12839 Interlaced video is as yet unsupported in the vc1 element. Print
12840 an error to make that more obvious.
12841 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12843 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12845 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12846 encoder: h264: fix C90 mixed declarations and code
12847 Commit 4259d1a introduced this compilation error. This patch fixes it.
12849 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12851 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12852 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12853 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12854 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12855 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12856 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12857 to avoid overflows, underflows and loss of precision.
12858 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12860 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12862 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12863 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12864 vaapiencode: h264,h265: validate fps numerator
12865 Validate that fps numerator is non-zero so it can be used to calculate
12866 the duration of the B frame.
12867 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12868 order to aviod overflows, underflows and loss of precision.
12869 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12871 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
12873 * gst/vaapi/gstvaapi.c:
12874 encoders: demote to RANK_NONE since not fit for autoplugging yet
12875 Encoders claim to support a whole bunch of input formats but then
12876 just error out if the format is not actually supported, even if
12877 there's a converter in front. This means they're not fit for
12878 autoplugging in encodebin or camerabin yet and therefore should
12879 not have a rank. People can still use them in custom pipelines.
12880 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12882 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12884 * gst/vaapi/gstvaapipluginbase.c:
12885 plugins: check dmabuf-import for sink pad allocator
12886 Check earlier if upstream video source has activated the dmabuf-import
12887 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12890 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12892 * gst/vaapi/gstvaapipluginbase.c:
12893 plugins: reset allocators if video info changed
12894 If the frame size or format, change, the allocators are reset, so a new ones
12895 can be created with the new video info.
12897 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12899 * gst/vaapi/gstvaapipluginbase.c:
12900 plugins: remove sink pad allocator if caps change
12901 If the negotiated sinkpad caps change, destroy the assignated allocator,
12902 because it is not valid anymore.
12904 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12906 * gst/vaapi/gstvaapipluginutil.c:
12907 * gst/vaapi/gstvaapipluginutil.h:
12908 pluginutil: const params to gst_video_info_changed()
12909 Since they are not modified, we should mark them as const.
12911 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12913 * gst/vaapi/gstvaapipluginbase.c:
12914 * gst/vaapi/gstvaapivideomemory.c:
12915 * gst/vaapi/gstvaapivideomemory.h:
12916 gstvaapivideomemory: allocator's image size getter
12917 Add the method gst_allocator_get_vaapi_image_size() for the
12918 GstVaapiVideoAllocator, which gets the size of the allocated images with the
12919 current video info.
12920 This method replaces the direct call to the allocator's image info when the
12921 pool is configured.
12923 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
12925 * gst/vaapi/gstvaapipluginbase.c:
12926 plugins: update buffer pool size with new allocator's image size
12927 Depends on media, video size is sometimes updated with new allocator.
12928 It leads to dismatch between bufferpool's set size and real allocated buffer size.
12929 In this case, it causes every buffer is freed during release in bufferpool,
12930 which should be reused. This affects performance.
12931 https://bugzilla.gnome.org/show_bug.cgi?id=769248
12933 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12936 configure: remove gmodule-2.0 EGL dependency
12937 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12938 thus the dependency to gmodule-2.0 is not mandatory anymore.
12940 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12943 configure: Fix non-fatal PKG_CHECK_MODULES invocations
12944 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12945 the package is missing, but action-if-not-found was given as an empty
12946 string which still causes the default action to run, which halts
12948 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12949 https://bugzilla.gnome.org/show_bug.cgi?id=769237
12951 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12953 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12954 libs: egl: remove dynamic library loading code
12955 Since the upstream of gstreamer-vaapi, the library is not a public shared
12956 object anymore. But the EGL support depended on this dynamic library, so the
12957 EGL support was broken.
12958 This patch removes the dynamic library loading code and instantiates the
12959 EGL display using either X11 or Wayland if available.
12960 https://bugzilla.gnome.org/show_bug.cgi?id=767203
12962 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12964 * gst/vaapi/gstvaapi.c:
12965 * gst/vaapi/gstvaapidecode.c:
12966 * gst/vaapi/gstvaapidecode.h:
12967 vaapidecode: register only the available decoders
12968 In order to register only the available decoders, this patch queries the
12969 created test VA display, which uses the currently used back-end (X11, Wayland,
12970 DRM, …) on the used display device.
12971 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12973 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12975 * gst/vaapi/gstvaapi.c:
12976 * gst/vaapi/gstvaapipluginutil.c:
12977 * gst/vaapi/gstvaapipluginutil.h:
12978 vaapi: register only the available encoders
12979 In order to register only the available encoders, this patch queries the
12980 created test VA display, which uses the currently used back-end (X11,
12981 Wayland, DRM, …) on the used display device.
12982 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12984 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12986 * gst/vaapi/gstvaapidecode.c:
12987 * gst/vaapi/gstvaapidecodebin.c:
12988 vaapidecode: split all the codecs
12989 Split the vaapidecode to all the supported codecs with the format
12991 vaapidecode is stil registered as a GObject type, but not as a
12992 GStreamer feature, so it can be used internally by vaapidecodebin without
12993 changing its code too much.
12994 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12996 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12998 * gst/vaapi/gstvaapidecodebin.c:
12999 vaapidecodebin: simplify the code
13000 Since the elements dependant of the VA video processor are now only registered
13001 if it is available, vaapidecodebin code can be simplified a lot, removing all
13002 the code required to check if the VA video processor was available.
13003 https://bugzilla.gnome.org/show_bug.cgi?id=768899
13005 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13007 * gst/vaapi/gstvaapidecode.c:
13008 vaapidecode: delay the GstVaapiDisplay instantiating
13009 Delay the GstVaapiDisplay instantiating until when changing the state from
13010 READY to PAUSE. In this way the element has more chances to find an already
13011 created GstVaapiDisplay, or a GL context, in the pipeline.
13012 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13014 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13016 * gst/vaapi/gstvaapipluginutil.c:
13017 pluginutil: set GLX display type
13018 The function gst_vaapi_create_display_from_gl_context() cretes a
13019 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
13020 when the GL platform was GLX, but a plain X11 VA display.
13021 This patch fixes that, by querying the GL platform earlier.
13022 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13024 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13026 * gst/vaapi/gstvaapipluginbase.c:
13027 * gst/vaapi/gstvaapivideocontext.c:
13028 * gst/vaapi/gstvaapivideocontext.h:
13029 plugins: add gst_vaapi_plugin_base_find_gl_context()
13030 Using the GstContext mechanism, it is possible to find if the pipeline
13031 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
13032 meta. This is interesting because we could negotiate system memory caps
13033 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
13034 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13036 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13038 * gst/vaapi/gstvaapipluginbase.c:
13039 * gst/vaapi/gstvaapipluginbase.h:
13040 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
13041 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
13044 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13046 * gst/vaapi/gstvaapipluginbase.h:
13047 plugins: remove common change_state() vmethod
13048 Remove the common change_state() vmethod for all the plugins, since no one is
13051 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13053 * gst/vaapi/gstvaapidecode.c:
13054 vaapidecode: remove change_state() vmethod
13055 Since the driver checkup is done at registering, there is no need to do it
13056 when changing the element state from NULL to READY. This patch remove this
13057 vmethod from vaapidecode.
13059 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13061 * gst/vaapi/gstvaapi.c:
13062 vaapi: register vaapipostproc only if supported
13063 Query the GstVaapiDisplay to know if the driver supports video
13064 postprocessing. If does, then register vaapipostproc and vaapidecodebin
13066 This patch will simplify the design of vaapidecodebin.
13067 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13069 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13071 * gst/vaapi/gstvaapi.c:
13072 vaapi: don't register if VA driver is unsupported
13073 Using the test VA display, the driver name is queried, and if it is not
13074 white-listed, the plugin rejects to register any element.
13075 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13077 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13079 * gst/vaapi/gstvaapipluginbase.c:
13080 * gst/vaapi/gstvaapipluginutil.c:
13081 * gst/vaapi/gstvaapipluginutil.h:
13082 plugins: add gst_vaapi_driver_is_whitelisted()
13083 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
13084 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
13085 when registering the plugin's feature set with the test VA display.
13086 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13088 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13090 * gst/vaapi/gstvaapi.c:
13091 vaapi: instantiate a VA display when registering
13092 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13093 features, if it fails, no gstreamer-vaapi element is registering.
13094 The purpose of this patch is to avoid a situation where the user has
13095 gstreamer-vaapi installed but their VA-API setup is not functional, which may
13096 lead to unexpected behavior.
13097 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13099 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13102 * gst/vaapi/gstvaapi.c:
13103 vaapi: declare external dependencies
13104 There are two main external dependencies that define the feature set of this
13105 plugin: a) the kernel and b) the VA driver
13106 This patch tracks both dependencies, if any of them change, GStreamer will
13107 re-inspect the plugin.
13108 The kernel is tracked through the device files /dev/dri/card*
13109 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13110 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13111 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13112 since they modify the driver lookup.
13113 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13114 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13116 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13118 * gst/vaapi/gstvaapidecode.c:
13119 vaapidecode: remove unneeded initializations
13120 GObject's memory is set to zero, so there is no need to initialize to zero or
13121 NULL it's class variables.
13123 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13125 * gst/vaapi/gstvaapipluginbase.h:
13126 plugins: remove undefined macros
13128 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13130 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13131 Revert "gstvaapisurface_drm: release image when done"
13132 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13133 372a03a9e38acbf435eb80bf31d9a9844069e504.
13134 While the dmabuf handle is exported, the derive image must exist, otherwise
13135 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13136 leading into a file descriptors leak.
13138 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13140 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13141 encoder: h265: fix code-style
13143 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13145 * gst/vaapi/gstvaapipostproc.c:
13146 vaapipostproc: update filters at color balance
13147 This is a fix for a regression of previous commit, which updates the filters
13148 only when the property is set, because it is also required to update the
13149 filter when the color balance interface change its values.
13151 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13153 * gst/vaapi/gstvaapipostproc.c:
13154 * gst/vaapi/gstvaapipostproc.h:
13155 vaapipostproc: make it enable/disable pass-through mode
13156 In case that sink caps and src caps are same, and no filtering parameter set,
13157 pass-through mode is enabled.
13158 If new filtering parameter is set during playback, it makes it reconfiguring,
13159 so that pass-through mode is changed
13160 In addition, updating filter is performed during reconfiguration, if needed.
13161 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13163 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13165 * gst-libs/gst/vaapi/gstvaapifilter.c:
13166 * gst-libs/gst/vaapi/gstvaapifilter.h:
13167 * gst/vaapi/gstvaapipostproc.c:
13168 vaapipostproc: checking and updating filter parameter only when it's set
13169 This patch is to avoid checking filter value at every frame.
13170 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13172 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13174 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13175 decoder: h265: handle the SEI NAL units included in codec_data
13176 The prefix/suffix SEI nal units can appear in codec_data too
13177 which weren't handled before. Parse these SEI headers to
13179 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13181 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13183 * docs/plugins/Makefile.am:
13184 build: doc: do not redefine MAINTAINERCLEANFILES
13185 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13186 overload it, the files should be added.
13188 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13190 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13191 encoder: h264: Fix MVC encode while enabling dct8x8
13192 Pack the transform_8x8_mode_flag and other necessary rbsp data
13193 in packed_pps header for MVC encode.
13194 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13196 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13198 * gst/vaapi/gstvaapisink.c:
13199 vaapisink: demote a debug message to trace
13200 Reduces noise when debugging.
13202 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13204 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13205 wayland: Error check before using cached wl_display
13206 A planar(or some other) buffer allocation may fail on the driver, then
13207 the wayland connection becomes invalid, not able to send request or
13208 receive any event. So we need to set up a new wayland connection if
13209 there's an error detected on the cached wl_display.
13210 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13211 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13213 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13216 Automatic update of common submodule
13217 From ac2f647 to f49c55e
13219 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13221 * gst/vaapi/gstvaapiencode.c:
13222 vaapiencode: demote a log to trace level
13223 Removes noise when debugging.
13225 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13227 * gst/vaapi/gstvaapiencode.c:
13228 vaapiencode: implement flush() vmethod
13229 In order to handle correctly seek and other operations, vaapiencode should
13230 flush all the remaining data from the encoder without pushing it downstream.
13231 This patch implements the flush() vmethod, only after of pausing the
13232 source pad task, and restarting it again after the flush stop.
13233 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13234 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13236 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13238 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13239 decoder: vc1: flush dpb only if opened
13240 Flush the decode picture buffer, if and only if, the decoder is
13241 started. Otherwise the dpb structure might be NULL.
13242 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13244 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13246 * gst/vaapi/gstvaapidecode.c:
13247 * gst/vaapi/gstvaapidecode.h:
13248 vaapidecode: drop non-keyframe in reverse playback
13249 To avoid surface-exhausted situation during reverse playback,
13250 drop frames except for key frame.
13251 Also, to avoid the corruption of the parser state, flush() vmethod
13252 doesn't destroy the VA decoder when playing in reverse.
13253 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13254 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13256 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13258 * gst/vaapi/gstvaapidecode.c:
13259 vaapidecode: unref output frame earlier
13260 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13261 unref that extra reference earlier making the code simpler to follow.
13262 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13264 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13266 * gst/vaapi/gstvaapidecode.c:
13267 vaapidecode: remove gst_vaapidecode_internal_flush()
13268 As gst_vaapidecode_finish() is the only callee of
13269 gst_vaapidecode_internal_flush(), it is better to inline it.
13270 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13272 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13274 * gst/vaapi/gstvaapidecode.c:
13275 vaapidecode: flush output adapter at drain()
13276 Calling drain() vmethod means "decode any data it can at this point, but that
13277 more data may arrive after". Hence, vaapidecode should check if there is data
13278 in the output adapter and process them, without destroying the decoded picture
13280 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13281 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13282 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13284 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13286 * gst/vaapi/gstvaapidecode.c:
13287 vaapidecode: call purge at flush()
13288 Calling flush() vmethod means "to flush all remaining data from the decoder
13289 without pushing it downstream".
13290 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13291 gst_video_decoder_have_frame() if there is still something in the input
13292 adapter, which may push buffers to downstream by calling handle_frame().
13293 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13294 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13295 decoder and releases all the rest of decoded frames.
13296 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13298 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13300 * tests/elements/Makefile.am:
13301 * tests/elements/test-vaapisink.c:
13302 test: elements: remove spurious linkage
13303 Element tests only need to link against gstreamer libraries.
13305 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13308 configure: Require GLib >= 2.40 like everywhere else
13310 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13313 Back to development
13315 === release 1.9.1 ===
13317 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13323 * gstreamer-vaapi.doap:
13326 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13328 * tests/elements/test-vaapisink.c:
13329 tests: elements: rotate orientation event
13331 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13334 * tests/Makefile.am:
13335 * tests/elements/Makefile.am:
13336 * tests/elements/test-vaapisink.c:
13337 tests: elements: Add testsuite for vaapisink
13338 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13340 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13342 * gst-libs/gst/vaapi/gstvaapitypes.h:
13343 * gst-libs/gst/vaapi/gstvaapivalue.c:
13344 * gst/vaapi/gstvaapisink.c:
13345 * gst/vaapi/gstvaapisink.h:
13346 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13347 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13349 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13351 * gst/vaapi/gstvaapipostproc.c:
13352 vaapipostproc: return caps template if no display
13353 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13354 be able to return the available raw caps handled by the VA display, but that
13355 only should happen when there a VA display. If there's none, the element
13356 should use the caps template.
13357 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13359 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13361 * gst/vaapi/gstvaapipostproc.c:
13362 vaapipostproc: don't require a vaapi display for all caps queries
13363 This delays the requirement of having a GstVaapiDisplay until later
13364 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13366 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13368 * gst-libs/gst/vaapi/gstvaapiutils.c:
13369 utils: report VP9 profiles
13370 Add VP9Profile0-3 name mapping.
13372 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13374 * gst/vaapi/gstvaapi.c:
13375 vaapi: nest includes under USE_ENCODER macro
13376 This is a missed changeset from commit 1c05c53, since also header includes
13379 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13381 * gst/vaapi/gstvaapi.c:
13382 vaapi: nest encoders under USE_ENCODER macro
13383 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13384 macro, it is clearer to nest them, showing explicitly the dependency relation.
13386 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13388 * gst/vaapi/gstvaapivideocontext.c:
13389 vaapivideocontext: check if query context is NULL
13390 Under certain conditions the element might receive a positive context query
13391 but without a context instance. This situation will lead to a segmentation
13392 fault when traversing the context list in the pipeline.
13393 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13395 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13397 * gst-libs/gst/vaapi/Makefile.am:
13398 * gst-libs/gst/vaapi/glibcompat.h:
13399 * gst-libs/gst/vaapi/sysdeps.h:
13400 remove unused glibcompat.h
13401 glibcompat.h is no longer doing anything. Remove it.
13402 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13403 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13405 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13407 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13408 encoder: h264: Use high profile by default
13409 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13410 by default. This will cause the default profile to be high instead
13411 of baseline. In most situations this is the right decision, and
13412 the profile can still be lowered in the case of caps restrictions.
13413 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13414 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13416 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13418 * gst/vaapi/gstvaapidecodebin.c:
13419 vaapidecodebin: element warning if missing element
13420 Raise an element warning if a required element is not available, thus the
13421 pipeline will post a warning message and the application will be informed.
13423 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13425 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13426 decoder: h265: fix to release all dpb pictures
13427 Without this, all dpb pictures are not released during flush,
13428 because we used the global dpb_count variable for checking the
13429 dpb fullness which get decremented in dpb_remove_index()
13430 routine during each loop iteration.
13431 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13433 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13436 Automatic update of common submodule
13437 From ac2f647 to f363b32
13439 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13441 * gst/vaapi/gstvaapidecode.c:
13442 * gst/vaapi/gstvaapipostproc.c:
13443 vaapi: fix minor leaks
13444 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13446 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13448 * gst/vaapi/gstvaapi.c:
13449 vaapi: remove an already included header
13450 gst/gst.h is already included in gstcompat.h
13452 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13454 * gst/vaapi/gstvaapidecodebin.c:
13455 vaapidecodebin: add vp9 in sink pad template
13457 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13459 * gst/vaapi/gstvaapisink.c:
13460 vaapisink: return caps template if no display
13461 If vaapisink received a caps query before getting a VA display, it returned
13462 only the surfaces related caps. This behavior broke the autovideosink
13464 This patch returns the pad's template caps if no VA display, otherwise the
13465 caps are crafted as before.
13466 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13468 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13470 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13471 decoder: vp9: Update comment about context resets
13472 Clarify that vaapi context resets are never needed for vp9, but
13473 that ensure_context() needs called when the size increases so that
13474 new surfaces can be allocated.
13475 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13476 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13478 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13480 * gst-libs/gst/vaapi/gstvaapicontext.c:
13481 * gst-libs/gst/vaapi/gstvaapicontext.h:
13482 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13483 gstvaapicontext: control reset_on_resize with option
13484 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13485 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13487 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13489 * gst/vaapi/gstvaapivideobufferpool.c:
13490 vaapivideobufferpool: add video meta to config when needed
13491 In cases where we know the video meta must be present, add it to
13492 the pool configuration.
13493 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13494 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13496 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13498 * gst/vaapi/gstvaapipluginbase.c:
13499 plugins: retry pool config
13500 if gst_buffer_pool_set_config returns FALSE, check the modified
13501 config and retry set_config if the config is still acceptable.
13502 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13503 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13505 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13507 * gst/vaapi/gstvaapivideomemory.h:
13508 vaapivideomemory: internal attributes to methods
13509 Mark as internal the functions used by VA-API dmabuf allocator.
13511 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13513 * gst/vaapi/gstvaapipluginbase.c:
13514 plugins: remove precondition for decide_allocation()
13515 There's no need to check for the display in the plugin object when
13516 decide_allocation() vmethod is called, because the display will created or
13517 re-created along the method execution.
13519 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13521 * gst/vaapi/gstvaapipluginbase.c:
13522 plugins: avoid possible memory leaks
13523 Get the pool config just before use it, to avoid a memory leak if the
13524 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13525 cannot be set, avoid keep a not used allocator in the pool.
13527 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13529 * gst/vaapi/gstvaapipluginbase.c:
13530 plugins: use GstParentBufferMeta
13531 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13532 use the GStreamer's GstParentBufferMeta.
13533 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13535 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13537 * gst/vaapi/gstvaapipluginbase.c:
13538 plugins: cache VASurfaces from dmabufs
13539 This patch avoids the creation of a VASurface each time a new input buffer is
13540 processed, caching them in the input buffer itself.
13541 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13543 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13545 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13546 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13547 * gst/vaapi/gstvaapipluginbase.c:
13548 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13549 Instead of passing the data already in GstVideoInfo, let's just pass the
13550 GstVideoInfo structure.
13551 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13553 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13555 * gst/vaapi/gstvaapipluginbase.c:
13556 * gst/vaapi/gstvaapipluginbase.h:
13557 plugins: use an unique allocator per pad
13558 Instead of instantiating an allocator per vaapivideobufferpool, only one
13559 allocator is instantiated per element's pad and shared among future pools.
13560 If the pad's caps changes, the allocator is reset.
13561 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13563 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13565 * gst/vaapi/gstvaapipluginbase.c:
13566 * gst/vaapi/gstvaapivideobufferpool.c:
13567 * gst/vaapi/gstvaapivideobufferpool.h:
13568 vaapivideobufferpool: share options flag with pluginbase
13569 Originally, vaapivideobufferpool has a set of boolean variables for the
13570 buffer configuration options.
13571 This pach changes these boolean variables for a single bitwise, just as
13572 it is used in pluginbase. Hence, the internal enum was moved to
13573 vaapivideobufferpool header.
13574 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13576 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13578 * gst/vaapi/gstvaapipluginbase.c:
13579 plugins: add gst_vaapi_plugin_base_create_pool()
13580 This patch refactors the code in pluginbase in order to centralize the buffer
13581 pool instantiation. As the buffer pool config may have different options, these
13582 are gathered using a bitwise flag.
13583 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13585 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13587 pluginbase negotiates allocator with bufferpool
13588 Originally vaapivideobufferpool instantiates its own allocator regardless the
13589 received configuration, and it relies in custom configuration options to
13590 choose which kind of allocator instantiate.
13591 This patch transfers the responsibility of the allocator instantiate to
13592 vaapipluginbase and pass it to the vaapivideobufferpool through its
13594 * gst/vaapi/gstvaapipluginbase.c
13595 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13596 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13597 bufferpool configuration
13598 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13600 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13601 allocator in bufferpool configuration
13602 * gst/vaapi/gstvaapivideobufferpool.c
13603 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13604 allocator, process the received one through its configuration.
13605 * gst/vaapi/gstvaapivideobufferpool.h: removed
13606 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13607 * gst/vaapi/gstvaapivideomemory.c
13608 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13609 allocator with the vaapi qdata.
13610 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13612 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13614 * gst/vaapi/gstvaapivideobufferpool.c:
13615 vaapivideobufferpool: keep only current video info
13616 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13617 the current one, the negotiated. The old one is not needed at all.
13618 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13620 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13622 * gst/vaapi/gstvaapipluginbase.c:
13623 * gst/vaapi/gstvaapipluginutil.c:
13624 * gst/vaapi/gstvaapipluginutil.h:
13625 * gst/vaapi/gstvaapivideomemory.c:
13626 pluginutil: add gst_video_info_force_nv12_if_encoded()
13627 This lines repeat a couple times in the code, so it would be better to put it
13629 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13631 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13633 * gst/vaapi/gstvaapipluginutil.c:
13634 * gst/vaapi/gstvaapipluginutil.h:
13635 * gst/vaapi/gstvaapipostproc.c:
13636 * gst/vaapi/gstvaapivideobufferpool.c:
13637 pluginutil: add gst_video_info_changed() helper
13638 This function is shared among different elements, so let factorized it.
13639 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13641 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13643 * gst/vaapi/gstvaapipostprocutil.c:
13644 vaapipostproc: Add colorimetry attributes to src caps
13645 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13647 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13649 * gst/vaapi/gstvaapidecode.c:
13650 vaapidecode: remove chroma-site and colorimetry from src caps
13651 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13653 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13655 * gst/vaapi/gstvaapipostproc.c:
13656 * gst/vaapi/gstvaapipostproc.h:
13657 vaapipostproc: add postproc_lock to protect data members
13658 Add a mutex to postproc to protect concurrent access to data members.
13659 Previously set_caps() could release the allowed_srcpad_caps while
13660 transform_caps was in the middle of using it.
13661 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13662 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13664 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13666 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13667 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13668 encoder: vp9: Add simple algorithms for reference picture selection
13669 Added two modes(as properties) for reference picture selection:
13670 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13671 and LastRef is pointing to the previous frame.
13672 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13673 and n-2 th frame as AltRef
13674 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13676 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13678 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13679 encoder: vp9: Define Max frame width and height
13680 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13682 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13684 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13685 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13686 encoder: vp9: Add more propertis for tuning encode quality
13687 Added three tuning properties:
13690 3: luma ac quant-table index
13691 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13693 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13695 * gst/vaapi/Makefile.am:
13696 * gst/vaapi/gstvaapi.c:
13697 * gst/vaapi/gstvaapiencode_vp9.c:
13698 * gst/vaapi/gstvaapiencode_vp9.h:
13699 Add vp9 encode element to "vaapi" plugin
13700 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13702 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13704 * gst-libs/gst/vaapi/Makefile.am:
13705 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13706 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13707 Add vp9 encoder support in libgstvaapi
13708 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13710 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13713 build: Add check for VP9 encode API support in libva
13714 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13716 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13718 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13719 gstvaapisurface_drm: fix internal documentation
13721 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13723 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13724 gstvaapisurface_drm: fix code-style
13726 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13728 * gst/vaapi/gstvaapipluginbase.c:
13729 plugins: remove unused header
13730 Remove the include of gst/allocators/allocators.h since it is not used.
13732 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13734 * gst/vaapi/gstvaapivideobufferpool.h:
13735 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13736 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13737 keep compatibility definition.
13738 This patch removes the definition of
13739 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13740 gst-plugins-base version 1.2.2
13742 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13744 * gst/vaapi/gstvaapipluginbase.c:
13745 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13746 This is a helper function to improve the readability of
13747 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13750 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13752 * gst/vaapi/gstvaapipluginbase.c:
13753 plugins: deactivate buffer pool before unref
13754 This buffer pool may still be processing buffers when a caps renegotiation is
13755 done. This one-liner patch deactivates the pool to drain it before it
13758 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13760 * gst/vaapi/gstvaapipluginbase.c:
13761 plugins: no sinkpad bufferpool when decoder
13762 Right now, the decoders create a buffer pool for their sink pad which is not
13763 used at all, because the decoders have never proposed it to upstream.
13764 This patch avoids the buffer pool instantiating when the element inherits from
13765 the GstVideoDecoder class.
13767 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13769 * gst/vaapi/gstvaapipluginbase.c:
13770 plugins: avoid to get/set pool config twice
13771 This patch is a bit of optimization, since the bufferpool configuration is get
13772 when the pool is created. Hence, we only need to request it when the pool from
13773 the allocation query is reused.
13775 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13777 * gst/vaapi/gstvaapipluginbase.c:
13778 plugins: destroy pool earlier if non-vaapi
13779 If the offered pool in decide_allocation() vmethod doesn't have the
13780 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13781 so it could be created later.
13783 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13785 * gst/vaapi/gstvaapivideobufferpool.c:
13786 vaapivideobufferpool: split caps validation
13787 When validating the caps from bufferpool config, this patch distinguishes the
13788 error from no caps received (NULL) from the invalid caps (cannot be converted
13789 into GstVideoInfo structure).
13791 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13793 * gst/vaapi/gstvaapidecode.c:
13794 * gst/vaapi/gstvaapipluginbase.c:
13795 plugins: check for caps in query earlier
13796 Check for caps as soon gst_query_parse_allocation() returns.
13798 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13800 * gst/vaapi/gstvaapipluginbase.c:
13801 * gst/vaapi/gstvaapipluginbase.h:
13802 plugins: remove unused variables
13803 This variables stopped to be used since commit 001a5c63, which removed the
13806 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13808 * gst/vaapi/gstvaapipluginbase.c:
13809 plugins: fix potential memleak from commit 9159328
13810 If gst_video_info_from_caps() fails it is required to unref the instantiated
13813 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13815 * gst/vaapi/gstvaapipostproc.c:
13816 vaapipostproc: handle if gst_video_info_from_caps() fails
13817 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13820 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13822 * gst/vaapi/gstvaapipluginbase.c:
13823 plugins: handle if gst_video_info_from_caps() fails
13824 Let's play safe and return error if, somehow, the received caps are wrong.
13826 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13828 * gst/vaapi/gstvaapipluginbase.c:
13829 plugins: relate errors to instance
13830 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13831 will show the name of the vaapipluginbase instance that failed.
13832 Also, the code-style is fixed, where some error labels need to be surrounded
13835 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13837 * gst/vaapi/gstvaapipluginbase.c:
13838 * gst/vaapi/gstvaapipluginutil.c:
13839 * gst/vaapi/gstvaapisink.c:
13840 plugins: use GstVideoInfo accessors
13841 Instead of access to GstVideInfo members directly, use their accessors
13842 macros. This patch makes more resistance to future changes in GStreamer core.
13844 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13846 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13847 * gst/vaapi/gstvaapipluginbase.c:
13848 * gst/vaapi/gstvaapipostproc.c:
13849 * tests/simple-encoder.c:
13850 remove spurious gst_video_info_init()
13851 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13852 gst_video_info_init(), hence it is not required to call it before them. This
13853 patch removes these spurious calls.
13855 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13857 * gst/vaapi/gstvaapipluginbase.c:
13858 vaapipluginbase: code-style: rename goto label
13859 The error labels have error_ prefix, but this one.
13861 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13863 * gst/vaapi/gstvaapivideomemory.c:
13864 vaapivideomemory: use allocator custom alloc flag
13865 Instead of a dummy alloc() vmethod, the allocator instance set the flag
13866 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13867 gst_allocator_alloc() on the allocator.
13869 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13871 * gst/vaapi/gstvaapivideobufferpool.c:
13872 vaapivideobufferpool: relate errors to instance
13873 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13874 the vaapivideobufferpool instance that failed.
13876 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13878 * gst/vaapi/gstvaapipluginbase.c:
13879 plugins: remove gst_vaapi_plugin_base_set_pool_config()
13880 This function helper make sense for GStreamer 1.2, but it is not helpful for
13881 greater version since the validation is already done in the API implementation.
13882 Thus, it is removed.
13884 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13886 * gst/vaapi/gstvaapipluginbase.c:
13887 gstvaapipluginbase: Fix typo in doc
13889 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13891 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13892 encoder : h264: Disable b-frame encode in low-power mode
13893 This is a workaround since vaapi-intel-driver doesn't have
13894 support for B-frame encode when utilizing low-power-enc
13896 Fixme :We should query the VAConfigAttribEncMaxRefFrames
13897 instead of blindly disabling b-frame support and set b/p frame count,
13898 buffer pool size etc based on the query result.
13899 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13901 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13903 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13904 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13905 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13906 Remove the duplicate property "low-power-enc" and use the
13907 tune property for enabling low power encoding mode.
13908 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13910 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13912 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13913 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13914 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13916 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13918 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13919 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13920 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13921 encoder: h264: Add support of low power/high performance encoding mode
13922 Added a new property "low-power-enc" for enabling low power
13923 encoding mode. Certain encoding tools may not be available
13924 with the VAEntrypointEncSliceLP.
13925 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13927 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13929 * gst-libs/gst/vaapi/gstvaapitypes.h:
13930 * gst-libs/gst/vaapi/gstvaapiutils.c:
13931 * gst-libs/gst/vaapi/gstvaapivalue.c:
13932 Add mapping for Macroblock level rate control (VA_RC_MB)
13934 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13936 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13937 gstvaapidisplay: Add VAEntrypointEncSliceLP support
13938 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13940 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13942 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13943 * gst-libs/gst/vaapi/gstvaapiprofile.h:
13944 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13945 This is for implementations that supports low_power/high_performance
13946 variant for slice level encode.
13947 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13949 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13951 * gst/vaapi/gstvaapipostprocutil.c:
13952 vaapipostproc: negotiate frame size fixation
13953 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
13954 using the sink caps, also it use the next capsfilter.
13955 This code is a shameless copy of gst_video_scale_fixate_caps() from
13956 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
13957 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13959 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13961 * gst/vaapi/gstvaapipostprocutil.c:
13962 vaapipostproc: don't use GstVideoInfo for src caps
13963 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
13964 this patch enables the first step for caps negotiation with a possible
13965 following caps filter.
13966 _get_preferred_caps() will traverse the possible src caps looking for the one
13967 wit the preferred feature and the preferred color format. Then the color
13968 format, the frame size and the frame rate are fixated.
13969 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13971 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13973 * gst/vaapi/gstvaapipostproc.c:
13974 * gst/vaapi/gstvaapipostprocutil.c:
13975 * gst/vaapi/gstvaapipostprocutil.h:
13976 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
13977 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
13978 No functional changes.
13979 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13981 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13983 * gst/vaapi/gstvaapipostproc.c:
13984 vaapipostproc: simplify code
13985 Change a convoluted snippet to find the preferred color format in the peer
13987 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13989 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13991 * gst/vaapi/gstvaapipostproc.c:
13992 vaapipostproc: use othercaps for preferred caps
13993 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
13994 from fixate_caps() vmethod to find the preferred caps feature and color
13996 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13998 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14000 * gst/vaapi/gstvaapipostproc.c:
14001 vaapipostproc: add fixate_caps() vmethod
14002 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
14003 implements the fixate_caps() vmethod and moves code around.
14004 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14006 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14008 * gst/vaapi/Makefile.am:
14009 * gst/vaapi/gstvaapipostproc.c:
14010 * gst/vaapi/gstvaapipostprocutil.c:
14011 * gst/vaapi/gstvaapipostprocutil.h:
14012 vaapipostproc: set early properties restrictions
14013 When running transform_caps() vmethod, returning the srcpad caps, the caps are
14014 early restricted to the element properties set: width, height, format and
14016 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
14018 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14020 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14022 * gst/vaapi/gstvaapipostproc.c:
14023 vaapipostproc: log the caps transformation
14024 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14026 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14028 * gst/vaapi/gstvaapipostproc.c:
14029 vaapipostproc: no GLTextureUpload in sinkpad
14030 As the vaapipostproc does not process frames with the VideoGLTextureUpload
14031 meta, the feature is removed from the sink pad template.
14032 https://bugzilla.gnome.org/show_bug.cgi?id=765931
14034 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
14036 * gst/vaapi/gstvaapivideobufferpool.c:
14037 vaapibufferpool: do not create texture upload meta if dmabuf
14038 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14040 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14043 build: update git.mk
14045 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14047 * gst/vaapi/gstvaapipluginbase.h:
14048 plugin: fix macro processor check
14049 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
14050 defined in config.h, but it would be 0 or 1 depending on the configure output.
14051 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14053 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14055 * tests/test-display.c:
14056 tests: display: guard possible unused variables
14057 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14059 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14065 * tests/simple-decoder.c:
14066 * tests/test-decode.c:
14067 * tests/test-display.c:
14068 * tests/test-filter.c:
14069 * tests/test-h264.c:
14070 * tests/test-jpeg.c:
14071 * tests/test-mpeg2.c:
14072 * tests/test-mpeg4.c:
14073 * tests/test-subpicture-data.c:
14074 * tests/test-subpicture.c:
14075 * tests/test-surfaces.c:
14076 * tests/test-textures.c:
14077 * tests/test-vc1.c:
14078 * tests/test-windows.c:
14079 tests: inforce gstreamer code-style
14081 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14083 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14084 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
14085 It seems driver requires enablement of cu_qp_delta_enabled_flag
14086 for modifying QP values to controll the CBR mode bitrate.
14087 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14089 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14091 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14092 encoder: h265: Add CBR Encoding support
14093 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14095 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
14097 * gst-libs/gst/vaapi/gstvaapisurface.c:
14098 gstvaapisurface: explicitely clear TILING flag if dmabuf
14099 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14101 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14103 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14104 gstvaapisurface_drm: release image when done
14105 Otherwise intel-vaapi-driver will fail to process the exported surface because
14106 it will find it is currently derived, so considered as busy.
14107 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14109 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14111 * gst/vaapi/gstvaapipostproc.c:
14112 vaapipostproc: already have a surface proxy if dmabuf
14113 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14115 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14117 * gst/vaapi/gstvaapipostproc.c:
14120 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14122 * gst/vaapi/gstvaapidecode.c:
14123 * gst/vaapi/gstvaapipluginbase.c:
14124 * gst/vaapi/gstvaapipluginbase.h:
14125 vaapidecode: search driver in whitelist
14126 If the backend driver vendor string is not in a white-list, and the
14127 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14128 change it state from NULL to READY, hence the auto-plug mechanism will look
14129 for another decoder.
14130 This patch assumes the GstContext has already being shared along the pipeline
14131 and the element has a valid GstVaapiDisplay instance.
14132 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14134 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14136 * gst/vaapi/gstvaapidecode.c:
14137 * gst/vaapi/gstvaapiencode.c:
14138 * gst/vaapi/gstvaapipluginbase.c:
14139 * gst/vaapi/gstvaapipluginbase.h:
14140 * gst/vaapi/gstvaapipostproc.c:
14141 * gst/vaapi/gstvaapisink.c:
14142 plugins: rework set_context() vmethod definition
14143 In bug 757598 was added the set_context() vmethod chain up in
14144 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14145 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14146 No error has shown up since none of the element's base classes redefined
14147 set_context() vmethod from GstElement, so always the correct function was
14148 called. Still this code is wrong and this patch make it right.
14149 Since set_context() is the same code, a macro is used to implement that code
14150 in all the gst-vaapi elements.
14151 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14153 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14155 * gst/vaapi/gstvaapipostproc.c:
14156 vaapipostproc: resize if negotiated and allocation caps are different
14157 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14158 the negotiated caps.
14159 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14160 resize the frame to the negotiated, if and only if, some other parameter is
14161 activated to avoid the passthrough. If it is not, the surface won't be mapped
14162 into a image. If not, the image won't be resized and the output buffer would be
14164 This patch will break the passthrough if the allocation query is different
14165 from the negotiation caps, forcing the resizing.
14166 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14168 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14170 * gst/vaapi/gstvaapidecode.c:
14171 vaapidecode: improve code readability
14172 No functional changes.
14174 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14176 * gst/vaapi/gstvaapidecode.c:
14177 vaapidecode: move GstCapsFeatures near to its use
14178 Move the handling of the GstCapsFeatures just after it is used, in order to
14179 avoid handling its memory.
14181 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14183 * gst/vaapi/gstvaapidecode.c:
14184 vaapidecode: caps negotiation checks
14185 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14186 compiled with GL support.
14188 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14190 * gst/vaapi/gstvaapidecode.c:
14191 * gst/vaapi/gstvaapipluginbase.c:
14192 * gst/vaapi/gstvaapipluginbase.h:
14193 * gst/vaapi/gstvaapipostproc.c:
14194 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14196 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14198 * gst/vaapi/gstvaapidecode.c:
14199 vaapidecode: bail early if not caps in decide_allocation()
14201 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14203 * gst/vaapi/gstvaapidecode.c:
14204 * gst/vaapi/gstvaapipluginbase.c:
14205 * gst/vaapi/gstvaapipluginutil.c:
14206 * gst/vaapi/gstvaapipluginutil.h:
14207 * gst/vaapi/gstvaapipostproc.c:
14208 plugin: use allowed caps filter from element
14209 Instead of using the srcpad template caps for filtering the peer caps, the
14210 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14211 for the element's allowed caps.
14212 With this modification, the vaapipostproc element simplifies a bit its code.
14213 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14215 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14217 * gst/vaapi/gstvaapidecode.c:
14218 * gst/vaapi/gstvaapipluginbase.c:
14219 * gst/vaapi/gstvaapipluginutil.c:
14220 * gst/vaapi/gstvaapipluginutil.h:
14221 * gst/vaapi/gstvaapipostproc.c:
14222 plugin: remove function parameter
14223 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14224 saved if the out format is used for both: in and out. Thus the code is more
14226 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14228 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14230 * gst/vaapi/gstvaapidecode.c:
14231 vaapidecode: warns if driver will do color conversions
14232 If the downstream feature is system memory, the surface has to be mapped,
14233 hence a warning message is logged saying that the driver has to do color
14234 conversions. This might be troublesome because not all the color conversion
14235 combinations are supported by the VA-API drivers, and there is not a reliable
14236 way to know them before hand.
14237 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14239 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14241 * gst/vaapi/gstvaapipluginutil.c:
14242 plugin: honour negotiated format
14243 Instead of setting the requested format by the caller, the function
14244 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14245 the negotiated format.
14246 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14247 given the format list from the negotiated caps, will choose the best one, if
14248 possible, given the native format.
14249 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14251 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14253 * gst/vaapi/gstvaapipluginutil.c:
14254 plugin: simplify caps feature selection
14255 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14256 Instead of intersecting custom caps to find the preferred feature, the peer
14257 caps are traversed in order to find the preferred feature, according to an
14258 ordered feature priority list.
14259 In the case of GLTextureUploadMeta, the colour format is computed using
14260 GstVideoInfo of the selected fixed caps.
14261 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14263 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14265 * gst/vaapi/gstvaapidecode.c:
14266 vaapidecode: use macros for GstVideoInfo
14267 Instead of accessing directly to the members of the structure, use the macros.
14269 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14271 * gst/vaapi/gstvaapidecode.c:
14272 vaapidecode: refactor is_display_resolution_changed()
14273 Make the comparisons more readable and simple.
14274 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14276 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14278 * gst/vaapi/gstvaapidecode.c:
14279 * gst/vaapi/gstvaapidecode.h:
14280 vaapidecode: keep only display_{width,height}
14281 Instead of keeping the structure GstVideoInfo when we are using its width and
14282 height, we only keep these two guints.
14283 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14285 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14287 * gst/vaapi/gstvaapidecode.c:
14288 vaapidecode: decoded_info is valid at src caps update
14289 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14290 is called, then we don't need to verify or replace it with the sinkpad info
14292 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14294 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14296 * gst/vaapi/gstvaapidecode.c:
14297 vaapidecode: always a valid format in decoded_info
14298 Always set a valid format in decoded_info class variable.
14299 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14301 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14303 * gst/vaapi/gstvaapidecode.c:
14304 vaapidecode: code style fixes
14305 No functional changes.
14306 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14308 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14310 * gst/vaapi/gstvaapidecode.c:
14311 vaapidecode: init {decoded,display}_info at open()
14312 It is required to initialize {decoded,display}_info variables when the decoder
14313 is open, not only at instance initialization.
14314 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14316 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14318 * gst/vaapi/gstvaapidecode.c:
14319 * gst/vaapi/gstvaapidecode.h:
14320 vaapidecode: remove spurious class variables
14321 active, do_pool_renego and do_outstate_renego class variables were used to
14322 indicate when negotiate downstream once, but now that each time a new surface
14323 resolution is pop out a renegotation verified, these variable are not required
14325 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14327 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14329 * gst/vaapi/gstvaapidecode.c:
14330 * gst/vaapi/gstvaapipluginbase.c:
14331 * gst/vaapi/gstvaapipluginbase.h:
14332 * gst/vaapi/gstvaapipostproc.c:
14333 remove custom allocation query
14334 When resolving bug 753914, a custom allocation query was added, overlapping
14335 the responsibilities of GstVideoDecoder.
14336 But with the merge of the patches from bug 764421 this overlapping was not
14337 required anymore. This patch restores this situation setting the
14338 allocation_caps in the GstVideoCodecState when needed.
14339 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14341 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14344 Automatic update of common submodule
14345 From 6f2d209 to ac2f647
14347 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14349 * gst/vaapi/gstvaapidecode.c:
14350 * gst/vaapi/gstvaapidecodebin.c:
14351 * gst/vaapi/gstvaapipostproc.c:
14352 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14353 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14354 their caps templates if they were not compiled either with GLX or EGL support.
14356 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14358 * gst/vaapi/gstvaapipluginutil.c:
14359 plugins: fix compilation when EGL/GLX is disabled
14360 The compiler might complain of gst_vaapi_create_display_from_handle() being
14361 unused if both EGL and GLX are disabled. This patch avoid that compilation
14364 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14366 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14367 libs: fix deleting a GstVaapiCodedBufferPool object
14368 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14369 Otherwise it is not called when the pool is destroyed and all objects
14370 referenced by the GstVaapiVideoPool are never released.
14371 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14373 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14375 * gst-libs/gst/vaapi/gstvaapisurface.c:
14376 surface: destroy derived image
14377 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14378 destroyed, otherwise the surface cannot be processed because is being used.
14379 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14381 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14383 * gst/vaapi/gstvaapidecode.c:
14384 vaapidecode: add stop function
14385 Clear any status on the current stream:
14386 stored frames, caps and decoder configuration
14387 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14389 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14391 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14392 decoder: vp9: Align with the ABI changes in vp9 codecparser
14393 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14394 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14395 These fields are only present in keyframe or intra-only frame, no need to
14396 duplicate them for inter-frames.
14397 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14399 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14401 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14402 decoder: vp9 : Add 10bit decoding support (Profile2)
14403 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14405 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14407 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14408 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14409 gstvaapiporfile: Add more VP9 profile definitions
14410 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14412 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14416 build: possibility to disable tests
14417 The configuration option --disable-examples will disable the compilation of
14418 the sample apps in tests/ directory.
14420 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14422 * gst/vaapi/gstvaapiencode_h264.c:
14423 * gst/vaapi/gstvaapiencode_h265.c:
14424 * gst/vaapi/gstvaapiencode_jpeg.c:
14425 * gst/vaapi/gstvaapiencode_mpeg2.c:
14426 * gst/vaapi/gstvaapiencode_vp8.c:
14427 * gst/vaapi/gstvaapipluginutil.h:
14428 * gst/vaapi/gstvaapisink.c:
14429 unify caps template for VAAPI encoders and decoders
14430 There is no difference in VAAPI surface caps between encoders and decoders.
14431 Thus, the patch makes a simplification by removing encoders specific caps and
14432 shares the same definition of VAAPI surfaces caps for all the elements.
14434 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14436 * gst/vaapi/gstvaapidecode.c:
14437 vaapidecode: move gst_vaapidecode_negotiate() code
14438 With it we can remove a function declaration, making the code a bit
14440 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14442 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14444 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14445 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14446 * gst/vaapi/gstvaapidecode.c:
14447 docs: generate vaapijpegdec documentation
14448 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14450 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14452 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14453 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14454 The array_completeness, reserved bit and num_nal_units fields
14455 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14456 but not for each occurance of similar headers.
14457 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14459 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14461 * gst-libs/gst/vaapi/video-format.c:
14462 video-format: Keep the HW order preference while mapping to GstVideoFormats
14464 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14466 * gst/vaapi/gstvaapidecode.c:
14467 * gst/vaapi/gstvaapipluginbase.c:
14468 * gst/vaapi/gstvaapipluginutil.c:
14469 * gst/vaapi/gstvaapipluginutil.h:
14470 * gst/vaapi/gstvaapivideomemory.c:
14471 gst/vaapi: keep precedence for NV12 over I420
14472 Use NV12 as default "assumption" format all over.
14473 NV12 is the default high priority format used my most of the
14476 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14478 * gst/vaapi/gstvaapidecode.c:
14479 vaapidecode: Use video format derived from decoded surface as default src pad format
14480 Use the surface format derived from first decoded surface
14481 to negotiate the downstream video format capabilities.
14482 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14484 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14486 * gst-libs/gst/vaapi/gstvaapiimage.c:
14487 * gst-libs/gst/vaapi/video-format.c:
14488 * gst/vaapi/gstvaapidecode.c:
14489 * gst/vaapi/gstvaapipluginutil.h:
14490 * gst/vaapi/gstvaapisink.c:
14491 Add P010 video format support
14492 The P010 video format is the native format used by the vaapi intel driver
14493 for HEVCMain10 decode . Add support for planes and images of this video format.
14494 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14496 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14498 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14499 libs: x11: allows 30-bit colour depth
14500 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14501 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14502 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14504 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14506 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14508 * gst/vaapi/gstvaapivideometa_texture.c:
14509 gltextureupload: use an array for texture type
14510 Instead of using a single value for the texture type, use an array with 4
14511 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14513 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14515 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14517 * gst/vaapi/gstvaapidecode.c:
14518 * gst/vaapi/gstvaapipluginbase.c:
14519 vaapidecode: Fix decide_allocation handling
14520 Set the already configured pool in decide_allocation query
14521 in cases where pool renegotiation is not required.
14522 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14524 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14526 * gst/vaapi/gstvaapidecode.c:
14527 vaapidecode: Derive and save the decoded surface format
14528 After the decoding of first frame, try to extract the exact
14529 decoded surface format using vaDeriveImage and keep this
14530 as the format in decoded_info.
14531 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14533 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14535 * gst/vaapi/gstvaapidecode.c:
14536 * gst/vaapi/gstvaapidecode.h:
14537 * gst/vaapi/gstvaapipluginbase.c:
14538 * gst/vaapi/gstvaapipluginbase.h:
14539 * gst/vaapi/gstvaapipostproc.c:
14540 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14541 -- Maintaing decoded surface resoluton and actual display resoultion separately
14542 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14543 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14544 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14545 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14546 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14547 This is slight overhead, but safe enough. Optimization could be possible though.
14548 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14550 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14552 * gst/vaapi/gstvaapidecode.c:
14553 vaapidecode: Delay the output format setting until we have a decoded surface
14554 This will help to consoidate the out caps negotiation to a single place,
14555 which will make the code simpler, allows to get the exact decoded format
14556 if needed and the selected chroma type too.
14557 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14559 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14561 * gst/vaapi/gstvaapidecode.h:
14562 vaapidecode: GST_VAAPIDECODE macro is a cast
14563 This patch is the continuation of commit 1e1d3b1d because the function
14564 gst_vaapidecode_get_type() got undefined since then.
14565 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14566 structure. The rest of the GObject handling macros were deleted too.
14568 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14571 Back to development
14573 === release 1.8.0 ===
14575 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14580 * gstreamer-vaapi.doap:
14583 === release 1.7.91 ===
14585 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14590 * gstreamer-vaapi.doap:
14593 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14595 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14596 decoder: h265: Fix offset calculation in codec_data parsing
14597 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14599 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14601 * gst/vaapi/gstvaapidecodebin.c:
14602 vaapidecodebin: don't handle jpeg decoding
14603 As JPEG decoder has been split and demoted, it cannot be handled by
14605 Added a fixme comment regarding the future removal of vaapidecode.
14606 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14608 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14610 * gst/vaapi/gstvaapidecode.c:
14611 vaapidecode: split out jpeg decoder
14612 Split, as a different element, the JPEG decoder.
14613 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14615 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14617 * gst/vaapi/gstvaapi.c:
14618 * gst/vaapi/gstvaapidecode.c:
14619 * gst/vaapi/gstvaapidecode.h:
14620 vaapidecode: register decoder with internal GType
14621 Don't expose the the vaapidecode GType, instead expose a function
14622 which will register element.
14623 This is the first step to split the decoder by codecs.
14624 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14626 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14628 * gst/vaapi/gstvaapidecode.c:
14629 vaapidecode: remove unused function declaration
14630 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14631 code-style of the other pre-declared functions.
14633 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14635 * docs/plugins/Makefile.am:
14636 build: git ignore gtkdoc generated files
14638 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14641 build: handle git ignore in m4 directory
14643 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14645 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14646 vaapidecoder_h265: plug leak of h265 parsing info
14647 If something goes wrong while parsing, the info object is
14649 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14651 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14653 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14654 vaapidecoder_h264: plug leak of h264 parsing info
14655 If something goes wrong while parsing, the info object is
14657 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14659 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14661 * gst/vaapi/gstvaapipluginutil.c:
14662 plugins: fix gstgl and vaapi memory leaks
14663 1\ Unref gl_display and gl_window as soon they are not needed.
14664 2\ Remove an unneeded display type check, since is handled by
14665 gst_vaapi_created_display_from_handle()
14666 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14667 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14668 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14670 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
14672 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14673 vaapidisplay: Fix uninitialized value error for VA attribute
14674 https://bugzilla.gnome.org/show_bug.cgi?id=763362
14676 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14678 * gst/vaapi/gstvaapidecode.c:
14679 * gst/vaapi/gstvaapiencode.c:
14680 plugins: proxy information from downstream caps
14681 Propagate to upstream the downstream information, such as fps, par, etc.
14682 This will fix several "getcaps" critical warnings in gst-validate.
14683 https://bugzilla.gnome.org/show_bug.cgi?id=763300
14685 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14687 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14688 decoder: vp9: Assign values for profile and bit_depth from frame header
14689 bit_depth field has added only in VA-API 0.39.0, added version check.
14691 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
14694 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14695 https://bugzilla.gnome.org/show_bug.cgi?id=763067
14697 === release 1.7.90 ===
14699 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
14704 * gstreamer-vaapi.doap:
14707 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
14710 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14712 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14714 * gst/vaapi/gstvaapidecode.c:
14715 vaapidecode: intersect with filter in getcaps()
14716 In commit 6034734d I forgot to add the caps filter intersection in the
14717 getcaps() vmethod generating a regression when a capsfilter is set in the
14719 This commit adds the caps filter intersection.
14721 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14723 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14724 Add memset to initialize value for VAEncSliceParameterBufferJPEG
14725 https://bugzilla.gnome.org/show_bug.cgi?id=762850
14727 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
14730 Automatic update of common submodule
14731 From b64f03f to 6f2d209
14733 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14738 build: add m4 directory
14739 Instead of rely on the automatic creation of m4 directory by aclocal, we
14740 already control it. Later we could create our own m4 scripts in order to
14741 unclutter configure.ac
14742 https://bugzilla.gnome.org/show_bug.cgi?id=762528
14744 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14746 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14747 decoder: hevc: Fill dependent slice segment headers while parsing
14748 Copy the data into the dependent slice segment header from the
14749 corresponding independent slice segment header during parsing.
14750 Previously the reference to the "previous" independent header was
14751 held through the parsing phase and then dereferenced during the
14752 decoding phase. This caused all dependent headers to be populated
14753 with the data of the AU's last independent header instead of the
14754 proper corresponding header.
14755 https://bugzilla.gnome.org/show_bug.cgi?id=762352
14757 - Reworded commit message
14759 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14761 * gst/vaapi/gstvaapidecode.c:
14762 vaapidecode: use video decoder getcaps()
14763 The usage of getcaps() vmethod is preferred than to handle manually the sink's
14765 In order to avoid function declarations, this patch moves the class_init()
14766 method to the end of the file.
14768 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14770 * gst/vaapi/gstvaapipluginbase.c:
14771 plugins: remove deprecated code
14772 Since we are only supporting current GStreamer version, since 1.3
14773 gst_buffer_pool_config_add_option() checks if the option to add is
14774 already set. There is no need to do it ourselves.
14776 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14778 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14779 vaapidecoder_h265: fix parsing of NALU aligned data
14780 Don't assume the whole buffer is a single NAL, instead look for the
14781 next start code in case there are multiple NALs per buffer.
14782 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14784 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14786 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14787 vaapidecoder_h264: fix parsing of NALU aligned data
14788 Don't assume the whole buffer is a single NAL, instead look for the
14789 next start code in case there are multiple NALs per buffer.
14790 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14792 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
14794 * gst/vaapi/gstvaapisink.c:
14795 vaapisink: Fix event,pad,structure memory leaks
14796 https://bugzilla.gnome.org/show_bug.cgi?id=762229
14798 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14800 * gst/vaapi/gstvaapipluginbase.c:
14801 Add icamerasrc as dmabuf capable peer element
14802 icamerasrc is another gstreamer plugin using to capture RAW
14803 frames from camera device. It is based on libcamhal library.
14804 There are some properties available to control icamera behavior.
14805 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14806 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14807 https://bugzilla.gnome.org/show_bug.cgi?id=759481
14808 Fixme: This is the similar workaround we done for v4l2src.
14809 The workaround will be removed once we fix #755072
14811 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14813 * gst/vaapi/gstvaapipluginbase.c:
14814 vaapipluginbase: Fix structure memory leak
14815 config structure is not being freed in all cases
14816 https://bugzilla.gnome.org/show_bug.cgi?id=762172
14818 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
14820 * gst/vaapi/gstvaapidecode.c:
14821 vaapidecode: Fix videocodec state memory leak
14822 When state is not NULL and either width/height of video info is 0, then state leaks
14823 https://bugzilla.gnome.org/show_bug.cgi?id=762173
14825 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
14827 * gst/vaapi/gstvaapisink.c:
14828 vaapisink: post message for application for unhandled keyboard/mouse events
14829 Makes (most) keyboard shortcuts work in gst-play-1.0 when
14830 the video window has focus.
14832 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
14834 * gst/vaapi/gstvaapidecode.c:
14835 vaapidecode: Fix capsfeature memory leak
14836 https://bugzilla.gnome.org/show_bug.cgi?id=762116
14838 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
14840 * gst/vaapi/gstvaapisink.c:
14841 vaapisink: Fix capsfeature memory leak
14842 caps feature allocated is not being freeing in some cases
14843 https://bugzilla.gnome.org/show_bug.cgi?id=762111
14845 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
14848 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14849 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14850 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14851 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14852 * gst-libs/gst/vaapi/gstvaapifilter.c:
14853 * gst/vaapi/gstvaapidecodebin.c:
14854 * gst/vaapi/gstvaapipluginutil.c:
14855 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14857 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
14860 configure: Fix setting of extra compiler warning flags
14862 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14864 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14865 libs: fix build error
14866 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14867 functions are used only when libva's API version is greater than 0.36.0
14868 This patch guards those functions completely rather than just their
14869 content. The patch is a continuation of commit 38f8fea4
14870 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14871 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14873 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
14875 * tests/simple-encoder.c:
14876 tests: simple-encoder: fix build error
14877 argument mismatch of gsize with 'long unsigned int'
14878 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14880 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14882 * gst/vaapi/gstvaapisink.c:
14883 vaapisink: Fix wrong caps advertising
14884 The get_caps() should only report the supported formats.
14885 https://bugzilla.gnome.org/show_bug.cgi?id=761147
14887 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14890 Automatic update of common submodule
14891 From e97c9bb to b64f03f
14893 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14895 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14896 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14897 * gst/vaapi/gstvaapi.c:
14898 * gst/vaapi/gstvaapiencode_h264.c:
14899 * gst/vaapi/gstvaapiencode_h265.c:
14900 * gst/vaapi/gstvaapiencode_jpeg.c:
14901 * gst/vaapi/gstvaapiencode_mpeg2.c:
14902 * gst/vaapi/gstvaapiencode_vp8.c:
14903 rename encoders to vaapi{codec}enc
14904 Trying to comply with GStreamer's element names, this patch renames the
14905 encoders using the name format vaapi{codec}enc.
14906 In this way, the plugin documentation is linked correctly.
14907 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14909 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14912 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14913 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14915 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14918 build: remove vp9 parser check
14919 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14920 the check of the parser, as we did for the others.
14921 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14923 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14927 Back to development
14928 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14930 === release 1.6.0 ===
14932 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14937 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14939 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14940 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14941 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14942 libs: fix compiler warnings
14943 After setting the release flags, the compiler warns about a couple
14944 initialized variables.
14945 Also marked a couple of set variables as unused, because they are only
14946 used for assertion.
14947 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14949 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14951 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14952 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14953 * gst/vaapi/gstvaapidecode.c:
14954 * gst/vaapi/gstvaapidecodebin.c:
14955 * gst/vaapi/gstvaapiencode_h264.c:
14956 * gst/vaapi/gstvaapiencode_h265.c:
14957 * gst/vaapi/gstvaapiencode_jpeg.c:
14958 * gst/vaapi/gstvaapiencode_mpeg2.c:
14959 * gst/vaapi/gstvaapiencode_vp8.c:
14960 * gst/vaapi/gstvaapipostproc.c:
14961 * gst/vaapi/gstvaapisink.c:
14962 docs: update plugin documentation
14963 Update all the documentation of elements of the vaapi plugin.
14964 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14966 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14970 * docs/Makefile.am:
14971 * docs/plugins/Makefile.am:
14972 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14973 * docs/plugins/gstreamer-vaapi-plugins.types:
14974 * docs/reference/Makefile.am:
14975 * docs/reference/plugins/Makefile.am:
14976 * docs/reference/plugins/plugins-sections.txt:
14977 * docs/reference/plugins/plugins.types:
14978 * docs/version.entities.in:
14979 resurrect gtk-doc machinery
14980 Our auto-generated documentation has been a bit neglected. This patch replaces
14981 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
14982 plugins, elements and libraries.
14983 This patch also re-enables documentation generation.
14984 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14986 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14992 use gst-common submodule
14993 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
14994 GStreamer common submodule.
14995 The documentation generation has been disable temporarily since it needs a
14996 major rework, which will be done in the following commit.
14997 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14999 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15003 add gst-common submodule
15004 Pointing to branch 1.6
15005 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15007 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15009 * gstreamer-vaapi.doap:
15010 add doap descriptor
15011 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
15012 describe software projects, in particular free and open source software.
15013 The description is used in GStreamer as in many other open source projects.
15014 This patch adds the doap description of this project.
15015 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15017 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15019 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
15020 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15021 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15022 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15023 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15024 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
15025 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15026 * gst-libs/gst/vaapi/gstvaapiimage.c:
15027 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
15028 * gst-libs/gst/vaapi/gstvaapipixmap.c:
15029 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15030 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15031 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
15032 libs: humongous code style fix
15033 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
15034 umbrella, we need to comply with the project's code style. This meant to
15035 change a lot of code.
15036 It was decided to use a single massive patch to update the code style.
15037 I would like to apologize with the original developers of this code because of
15038 the history breakage.
15039 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15041 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15043 * gst-libs/gst/vaapi/gstvaapicontext.c:
15044 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15045 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
15046 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15047 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15048 * gst/vaapi/gstvaapivideomemory.c:
15049 libs: small refactors to enhance the code style
15050 As gst-indent generated ugly code in these cases, this patch changes the used
15051 idiomatic into other one.
15052 No functional changes were introduced.
15053 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15055 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15057 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15058 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15059 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
15060 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15061 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15062 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15063 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15064 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15065 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15066 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15067 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15068 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15069 * gst-libs/gst/vaapi/gstvaapifilter.c:
15070 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15071 * gst-libs/gst/vaapi/gstvaapisurface.c:
15072 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15073 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
15074 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15075 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15076 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
15077 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15078 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15079 libs: small code style fixes
15080 This a set of small code style fixes detected as-is by gst-indent.
15081 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15083 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15085 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15086 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15087 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15088 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15089 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15090 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15091 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15092 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15093 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15094 libs: trivial comment style fixes
15095 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15097 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15099 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15100 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15101 libs: avoid gst-indent mess up
15102 Guard pieces of code to avoid gst-ident to mess up the following code.
15103 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15105 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15107 * gst/vaapi/gstvaapidecode.c:
15108 * gst/vaapi/gstvaapidecodebin.c:
15109 * gst/vaapi/gstvaapipluginutil.c:
15110 * gst/vaapi/gstvaapisink.c:
15111 * gst/vaapi/gstvaapivideomemory.c:
15112 plugins: fix code style
15113 Minor code style changes by executing gst-indent in gst/vaapi directory.
15114 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15116 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15118 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15119 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15120 Fix some more compiler warning
15121 Two (false) compiler warnings about variables potentially
15122 being used uninitialized, and one about a variable being
15124 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15126 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15128 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15129 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15130 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15131 * gst-libs/gst/vaapi/gstvaapifilter.c:
15132 * gst/vaapi/gstvaapidecode.c:
15133 * gst/vaapi/gstvaapipluginbase.c:
15134 * gst/vaapi/gstvaapipluginutil.c:
15135 * gst/vaapi/gstvaapipostproc.c:
15136 * tests/simple-encoder.c:
15137 * tests/test-filter.c:
15138 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15139 Declare variables at the beginning of a code block, which
15140 is how it's done in GStreamer.
15141 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15143 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15145 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15146 decoder: vp9: Fix crop rectangle setting
15147 Align with software vp9dec behaviour: Add crop rectangle
15148 only if display_width/display_height is less than the
15149 frame_hdr->width/frame_hdr->height
15151 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15153 * gst/vaapi/gstvaapidecode.c:
15154 vaapidecode: Fix renegotiation for resolution change
15155 Always renegotiate the pool if the immediate frame which going
15156 to be pushed has a different un-cropped resolution than the already
15159 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15161 * gst/vaapi/gstvaapipluginbase.h:
15162 plugins: use the same pre-processor macro
15163 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15164 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15165 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15166 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15167 in the header file.
15168 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15170 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15172 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15173 decoder: update a deprecated function
15174 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15175 deprecated since GStreamer 1.0.
15176 This patch replace it with gst_adapter_prev_pts()
15177 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15179 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15182 build: honor configure's cache
15183 The user might enable --config-cache when calling configure script. If so, our
15184 configuration variables will not be correctly calculated.
15185 This patch extracts the value of our variables either from the cache or from
15186 the operation result.
15187 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15189 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15192 build: use common version variables
15193 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15195 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15198 build: hard-code an unneeded macro
15199 That macro is required for EGL's dynamic module loading, but since
15200 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15201 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15202 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15204 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15207 build: refactorization of dependency tracking
15208 This patch tries to avoid branching in configure.ac using a more functional
15209 approach in macros usage.
15210 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15212 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15215 build: check for OpenGL either GLX or EGL are requested
15216 Refactor some code in configure.ac to centralize $enable_opengl definition.
15217 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15219 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15222 build: indent and add square braces
15223 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15225 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15228 build: upgrade autotools version dependency
15229 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15231 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15234 build: enhance string comparisons
15235 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15236 the string is empty or undefined.
15237 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15239 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15242 build: remove unused variables
15243 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15245 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15248 build: remove check for old version of gstreamer
15249 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15251 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15254 build: remove GStreamer's parsers checks
15255 This patch removes almost all the parsers check since they are already in place,
15256 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15257 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15259 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15262 * gst/vaapi/Makefile.am:
15263 build: add gstreamer-pbutils dependency
15264 This dependency was added in gstvaapidecodebin with the call
15265 gst_missing_element_message_new().
15266 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15268 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15271 build: fix variable declaration
15272 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15274 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15276 * gst-libs/gst/vaapi/Makefile.am:
15277 build: fix when HEVC decoder is disabled
15278 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15280 The encoder needs functions that are only available when the decoder is
15282 This patch moves the utils functions into the generic sources, such as the
15284 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15286 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15288 * gst/vaapi/Makefile.am:
15289 build: remove unused EGL specific sources
15290 These Makefile variables are not used at all.
15291 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15293 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15295 * gst/vaapi/Makefile.am:
15296 build: remove check for GStreamer 1.2
15297 Since we are working for current stable GStreamer 1.6
15298 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15300 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15302 * gst/vaapi/gstvaapiparse.h:
15303 Remove more video parser crufts
15304 This header is not used anymore since it declares parsers that are
15305 already in GStreamer 1.6
15306 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15308 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15311 * docs/reference/Makefile.am:
15312 * docs/reference/libs/Makefile.am:
15313 * docs/reference/libs/libs-docs.xml.in:
15314 * docs/reference/libs/libs-overrides.txt:
15315 * docs/reference/libs/libs-sections.txt:
15316 docs: remove library documentation which is non-public now
15317 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15319 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15323 * debian.upstream/Makefile.am:
15324 * debian.upstream/changelog.in:
15325 * debian.upstream/compat:
15326 * debian.upstream/control.in:
15327 * debian.upstream/copyright:
15328 * debian.upstream/gstreamer-vaapi-doc.install.in:
15329 * debian.upstream/gstreamer-vaapi.install.in:
15330 * debian.upstream/rules:
15331 Remove debian.upstream packaging
15332 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15334 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15336 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15337 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15338 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15339 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15340 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15341 * gst/vaapi/gstcompat.h:
15342 * gst/vaapi/gstvaapi.c:
15343 * gst/vaapi/gstvaapidecode.c:
15344 * gst/vaapi/gstvaapiencode.c:
15345 * gst/vaapi/gstvaapipluginbase.c:
15346 * gst/vaapi/gstvaapipluginbase.h:
15347 * gst/vaapi/gstvaapipluginutil.c:
15348 * gst/vaapi/gstvaapisink.c:
15349 Remove old gst version guards
15350 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15351 all the old GStreamer version guards.
15352 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15354 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15356 * gst/vaapi/gstvaapiparse.c:
15357 Remove video parser crufts
15358 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15360 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15362 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15364 * docs/reference/libs/Makefile.am:
15365 * docs/reference/plugins/Makefile.am:
15366 * gst-libs/gst/vaapi/Makefile.am:
15367 * gst/vaapi/Makefile.am:
15368 * tests/Makefile.am:
15369 libs: remove versioning
15370 Since we don't install libraries anymore, it makes no sense to keep
15371 versioning them according to the gstreamer's version.
15372 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15374 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15377 * debian.upstream/Makefile.am:
15378 * debian.upstream/control.in:
15379 * debian.upstream/libgstvaapi-dev.install.in:
15380 * debian.upstream/libgstvaapi-drm.install.in:
15381 * debian.upstream/libgstvaapi-glx.install.in:
15382 * debian.upstream/libgstvaapi-wayland.install.in:
15383 * debian.upstream/libgstvaapi-x11.install.in:
15384 * debian.upstream/libgstvaapi.install.in:
15385 * gst-libs/gst/vaapi/Makefile.am:
15386 * tests/Makefile.am:
15387 libs: make libraries no installables
15388 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15390 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15392 * debian.upstream/libgstvaapi-dev.install.in:
15393 * gst-libs/gst/vaapi/Makefile.am:
15394 Do not install libgstvaapi headers
15395 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15397 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15401 * patches/Makefile.am:
15402 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15403 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15404 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15405 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15406 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15407 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15408 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15409 * patches/videoparsers/Makefile.am:
15410 * patches/videoparsers/series.frag:
15411 Remove videoparser patches
15413 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15417 * debian.upstream/libgstvaapi-dev.install.in:
15418 * pkgconfig/Makefile.am:
15419 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15420 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15421 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15422 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15423 * pkgconfig/gstreamer-vaapi.pc.in:
15424 Remove pkg-config files
15425 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15427 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15433 * ext/codecparsers:
15434 * gst-libs/gst/Makefile.am:
15435 * gst-libs/gst/codecparsers/Makefile.am:
15436 * gst-libs/gst/vaapi/Makefile.am:
15437 * gst/vaapi/Makefile.am:
15438 Remove codecparsers submodule
15439 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15441 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15446 * debian.upstream/libgstvaapi.install.in:
15448 * ext/libvpx/Makefile.am:
15449 * ext/libvpx/gstlibvpx.c:
15450 * ext/libvpx/gstlibvpx.h:
15451 * ext/libvpx/libgstcodecparsers_vpx.vers:
15452 * ext/libvpx/sources.frag:
15453 * ext/libvpx/upstream:
15454 * gst-libs/gst/codecparsers/Makefile.am:
15455 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15456 Remove libvpx submodule
15457 We will be using upstream codecparsers always.
15458 No more internal libvpx !
15460 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15463 build: fix check for GstJpegParser
15464 Right now the local JPEG parser is always compiled because the check for the
15465 upstreamed version is broken: it looks for an non existent symbol:
15467 This patch changes that check for< GstJpegFrameHdr.
15468 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15470 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15472 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15473 wayland: free the frame in frame_release_callback()
15474 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15475 decouple wl_buffer from frame).
15476 Otherwise the frame may be overwritten while it is still used by the
15478 The frame done callback (frame_done_callback()) is called, when the
15479 compositor is done processing the frame and hands it to the hardware.
15480 The buffer release callback (frame_release_callback()) is called when the
15481 buffer memory is no longer used.
15482 This can be quite some time later: E.g. if weston (with the DRM backend)
15483 puts the buffer on a hardware plane, then then buffer release callback is
15484 called when the kernel is done with the buffer. This is usually when the
15485 next frame is shown, so most likely after the frame done callback for the
15487 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15488 destroy()" the mentioned possible leak should no longer be a problem, so
15489 reverting this change should cause no leaking buffers.
15490 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15491 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15492 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15494 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15496 * gst/vaapi/gstvaapipostproc.c:
15497 vaapipostproc: check ANY caps at transform_caps()
15498 When transforming downstream caps we should check for ANY caps from peer pad,
15499 otherwise we get a segmentation fault.
15500 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15501 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15503 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15505 * gst/vaapi/gstvaapisink.c:
15506 vaapisink: ignore frame if its upload failed
15507 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15508 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15509 ignored by the vaapisink, leading to a segmentation fault.
15510 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15511 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15512 segmentation fault, but doing and effort to continue rendering. This is
15513 the same behavior of ximagesink.
15514 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15515 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15517 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15520 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15521 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15523 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15525 * gst-libs/gst/vaapi/gstvaapicontext.c:
15526 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15527 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15528 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15529 Add 10 HEVC 10 bit decoding support
15530 Only supporting vaapidecode ! vaapisink combination for now.
15531 Missing dependencies:
15532 1: No support for P010 video format in GStreamer
15533 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15534 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15535 through GstVideoMeta.
15536 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15537 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15538 of the surfaces is implementation (driver) defined, which is P010.
15540 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15542 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15543 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15544 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15545 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15546 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15547 chroam type and dimensions. The underlying format of the surfaces is
15548 implementation (driver) defined.
15550 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15552 * gst-libs/gst/vaapi/gstvaapisurface.h:
15553 * gst-libs/gst/vaapi/gstvaapiutils.c:
15554 Add definitions for YUV420 with more than 8 bits per channel
15556 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15558 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15559 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15561 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15564 Bump version for development
15566 === release 0.7.0 ===
15568 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15573 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15578 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15583 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15588 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15590 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15591 texture: detect GL version and use the proper API
15592 When receiving the texture from the application or the video sink, we must
15593 know it size and border. To query the texture the API has changed according to
15594 the OpenGL version used in the GL context of the application/vsink.
15595 This patch checks the current context API type and queries the texture
15596 according to this detected API.
15597 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15598 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15600 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15602 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15603 texture: check for expected target and format
15604 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15605 formats GL_RGBA or GL_BGRA.
15606 This patch adds a debugging verification of those values.
15607 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15608 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15610 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15612 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15613 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15614 libs: add gl3_bind_texture_2d()
15615 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15616 needed. In particular, the Intel's Mesa implementation complains if it is
15618 This patch add a new binding function for 2D textures, without enabling
15619 gl3_bind_texture_2d()[2].
15620 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15621 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
15622 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15623 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15625 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15627 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15628 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15629 libs: add gl_get_current_api()
15630 In order to know which OpenGL API use, we must detect the API type of current
15631 context. This patch adds the function gl_get_current_api() which returns the
15633 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15635 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15636 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15638 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15641 * gst-libs/gst/vaapi/Makefile.am:
15642 build: Add gmodule dependency for libgstvaapi_egl
15643 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15645 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15647 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15648 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15649 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15650 * patches/videoparsers/series.frag:
15651 patches/videoparsers: h264: Disable passthorugh mode enabling
15652 This is a quick fix for regression introduced by the upstream
15653 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15654 The patch is disabling the passthrough mode, otherwise it will
15655 break multi-layer mvc stream parsing.
15656 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15658 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15660 * gst/vaapi/Makefile.am:
15661 * patches/videoparsers/Makefile.am:
15662 * patches/videoparsers/series.frag:
15663 build: add gsth265parse patches conditionally
15664 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15665 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15667 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15668 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15670 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15672 * gst/vaapi/Makefile.am:
15673 build: declare correctly parse lib built files
15674 This is a continuation of commit fc8a0d12
15675 When declaring BUILT_SOURCES, those files should not be distributed. This
15676 patch avoids the distribution of the generated source code.
15677 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15678 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15680 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15682 * ext/libvpx/sources.frag:
15683 build: libvpx: Add missing source file
15685 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15687 * gst/vaapi/gstvaapipostproc.c:
15688 vaapipostproc: Correctly detect the caps change
15689 This is a quick fix for regression introuduced by the
15690 commit 757833230bc73b8e3b4e31649e4618ba802bea51
15691 With out this, the gst_vaapipostproc_create() will
15693 https://bugzilla.gnome.org/show_bug.cgi?id=758543
15695 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15697 * ext/libvpx/Makefile.am:
15698 * ext/libvpx/sources.frag:
15699 build: libvpx: update the sources lists
15700 `make dist` broke since commit f06798 (libvpx: Update the submodule to
15701 libvpx-1.4.0) because the sources.frag does not contain all the module
15703 This patch updates thoroughly the sources.
15704 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15705 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15707 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15709 * gst/vaapi/gstvaapipostproc.c:
15710 vaapipostproc: don't set caps change at first set
15711 When the source caps change, the filter is destroyed and recreated.
15712 Nonetheless, this happens every time the vaapipostproc starts, since the caps
15713 change detection algorithm does not take in consideration when the caps are
15715 This patch intents to be an optimization, to avoid a useless filter
15716 destroy-creation cycle when the sources caps are set for first time.
15717 The new helper function video_info_update() is a refactorization to avoid
15719 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15720 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15722 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15724 * gst/vaapi/gstvaapipostproc.c:
15725 vaapipostproc: params video_info_changed() callers
15726 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15727 swapped the the order. This didn't raise problems since the comparison of both
15728 structures were not affected by its semantics.
15729 But still it would be better to fix this to keep the coherence of the code.
15730 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15731 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15733 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15735 * gst/vaapi/Makefile.am:
15736 build: declare real built files
15737 When runnig the `make dist` target from a clean tree, it fails because
15738 if could not find the copied files from codecparsers submodule.
15739 They weren't copied because they weren't declared as built sources.
15740 This patch removes the stamp mechanism and use the actual file list to copy
15741 as the built sources. Also it fixes the duplication of the parser files.
15742 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15743 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15745 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15747 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15748 decoder: vp9: Fix last/golden/altref frame index setting
15749 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15750 based on what ever reference frame indices encoded in frame header.
15752 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15754 * debian.upstream/rules:
15755 debian: remove custom parallel compilation
15756 In order to build a debian package with upstream source, the user should
15759 cp -a debian.upstream debian
15760 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15761 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15762 way to make a parallel build (-j8 in this case).
15763 This commit removes the script in debian/rules that detects the number of
15764 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15765 official in debian.
15766 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15767 https://bugzilla.gnome.org/show_bug.cgi?id=754087
15769 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15771 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15772 decoder: vp9: Fix PTS calculation of cloned frames
15774 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15776 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15777 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15778 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15779 gstvaapidecoder base calss is reponsible for handling those frames later on.
15780 No need for explicit verification of frame header's show_frame in order to
15781 do picture outputing.
15783 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15785 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15786 decoder: vp9: Fix ref picture update while doing repeat frame
15787 Don't try to do frame decoding and reference picture update
15788 while receiving a vp9 frame having show_existing_frame flag
15791 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15793 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15794 decoder: vp9: Add repeat-frame display handling
15795 If vp9 frame header come up with show_existing_frame flag set,
15796 we should duplicate the existing decoded frame as current frame to
15799 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15801 * gst/vaapi/gstvaapidecodebin.c:
15802 vaapidecodebin: add me as element co-author
15803 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15804 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15806 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15808 * gst/vaapi/gstvaapidecodebin.c:
15809 vaapidecodebin: try to get display from decoder
15810 Rather than create a dummy display, if none has propagated as a context, we
15811 should try to get the one from vaapidecode.
15812 As the bin is already in READY state, the vaapidecode should be also in that
15813 state. That means that the contexts have been negotiated, and it should have
15815 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15816 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15818 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15820 * gst/vaapi/gstvaapidecodebin.c:
15821 * gst/vaapi/gstvaapidecodebin.h:
15822 vaapidecodebin: add postprocessor dynamically
15823 The former approach to left the bin unfinished has some problems: the context
15824 cannot be shared because the vaapidecode is unlinked in many cases, leading to
15825 creating a VADisplay twice.
15826 Initially the bin is fully functional, constructed as
15827 (-----------------------------------)
15829 | (-------------) (-------) |
15830 |<--| vaapidecode |--->| queue |--->|
15831 | (-------------) (-------) |
15832 (-----------------------------------)
15833 When the context is shared and the VADisplay has VPP capabilities, before
15834 changing to READY state, the bin is reconfigured dynamically, adding the
15835 vaapipostproc element afeter the queue:
15836 (--------------------------------------------------------)
15838 | (-------------) (-------) (---------------) |
15839 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15840 | (-------------) (-------) (---------------) |
15841 (--------------------------------------------------------)
15842 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15843 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15845 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15847 * gst/vaapi/gstvaapidecodebin.c:
15848 vaapidecodebin: delay the bin configuration
15849 Delay the bin configuration until changing to READY state. This is because we
15850 should add the vaapipostproc element until the vaapidecode has emitted the
15851 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15853 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15854 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15856 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15858 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15859 decoder: vp9: Add crop rectangle support.
15860 Set crop rectange if:
15861 There is display_width and display_height which is different from actual width/height
15863 The changed resolution is less than the actual configured dimension of surfaces
15865 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15867 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15868 decoder: vp9: Fix the context and surface pool reset for multi resolution video
15869 Unlike other decoders, vp9 decoder doesn't need to reset the
15870 whole context and surfaces for each resolution change. Context
15871 reset only needed if resolution of any frame is greater than
15872 what actullay configured. There are streams where a bigger
15873 resolution set in ivf header or webm header but actual resolution
15874 of all frames are less. Also it is possible to have inter-prediction
15875 between these multi resolution frames.
15877 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15879 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15880 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15881 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15882 Preliminary fix for supproting multi resolution video decode.
15884 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15886 * gst/vaapi/gstvaapidecode.c:
15887 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15889 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15891 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15892 decoder: vp9: Set lossless flag from frame header
15894 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15896 * ext/codecparsers:
15897 codecparsers: Update to gst-vaapi-branch d9f25
15898 d9f2527: codecparsers: vp9: Set lossless flag in frame header
15900 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15902 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15903 libs: vp9: remove unused symbols
15904 clang complains about a couple variables and one label which were not
15905 used. This patch removes them.
15906 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15907 https://bugzilla.gnome.org/show_bug.cgi?id=757958
15909 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15911 * ext/codecparsers:
15912 codecparsers: Update to gst-vaapi-branch da251bb
15913 da251bb: codecparsers: vp9: Optimize the memory allocation
15914 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15916 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15918 * gst/vaapi/gstvaapipluginbase.c:
15919 * gst/vaapi/gstvaapipluginbase.h:
15920 plugin: guard pointers to pad query functions
15921 Since gstreamer 1.4 is not required to have pad query functions if the query
15923 This patch guards out the pad query functions for gstreamer < 1.4
15924 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15925 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15927 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15929 * gst/vaapi/gstvaapiencode.c:
15930 vaapiencode: use pad query vmethods
15931 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15932 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15933 while keeps support for previous versions of gstreamer.
15934 This patch is relevant since GstVideoEncoder takes care of other queries that
15935 we are currently ignoring.
15936 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15937 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15939 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15941 * gst/vaapi/gstvaapidecode.c:
15942 vaapidecode: return pad's template caps if no display
15943 A caps query can occur before the element has a display. In that case, the
15944 element can return its pad's template. But when the element already has a
15945 display, and the caps probe fails, the element shall return an empty caps, so
15946 the auto-plug could try with another decoder.
15947 If the element has a display and the caps probe works, then the computed caps
15948 should be returned.
15949 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15950 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15952 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15954 * gst/vaapi/gstvaapidecode.c:
15955 * gst/vaapi/gstvaapisink.c:
15956 plugins: don't create display at caps query
15957 Caps query can happen before the element has a bus. The display creation should
15958 be should occur on the context negotiation, when the bus is already configured.
15959 Then at caps query no display should be created.
15960 Instead of force the display creation, we graciously fail the allowed_caps()
15962 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
15963 basetransform descendant, seems to be not affected by this, nor the encoders.
15964 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15965 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15967 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15969 * gst/vaapi/gstvaapidecode.c:
15970 * gst/vaapi/gstvaapiencode.c:
15971 * gst/vaapi/gstvaapipluginutil.c:
15972 * gst/vaapi/gstvaapipluginutil.h:
15973 * gst/vaapi/gstvaapipostproc.c:
15974 * gst/vaapi/gstvaapisink.c:
15975 plugins: fix context query handling
15976 The current context query handling design is flawed: the function
15977 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
15978 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
15979 pad query function should handle differently each case.
15980 This patch changes the gst_vaapi_reply_to_query() for
15981 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
15982 to match the correct context query handling.
15983 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15984 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15986 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15988 * gst/vaapi/gstvaapipluginutil.c:
15989 plugin: don't lose previous context at query
15990 When processing the GST_CONTEXT_QUERY we should not lose the previous
15991 context in the query, we should only add our display structure.
15992 This patch copies the old context, if it is there, and stamp our display on
15993 it. Otherwise, a new context is created.
15994 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15995 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15997 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15999 * gst/vaapi/gstvaapivideocontext.c:
16000 * gst/vaapi/gstvaapivideocontext.h:
16001 vaapivideocontext: add gst_vaapi_video_context_set_display()
16002 This function set the display to an already created context. This function is
16003 going to be used later.
16004 Also, gst_vaapi_video_context_new_with_display() now uses this function.
16005 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16006 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16008 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16010 * gst/vaapi/gstvaapipluginutil.c:
16011 * gst/vaapi/gstvaapivideocontext.c:
16012 * gst/vaapi/gstvaapivideocontext.h:
16013 plugins: check if display is set in sync
16014 Since the context messages are sync'ed, the display assignation happens in the
16015 same thread, hence we can know if the display was found or not as soon we call
16017 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
16018 as a new parameter, the address of the plugin's display, and reports back if
16019 the display was found and set.
16020 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16021 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16023 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16025 * gst/vaapi/gstvaapipluginutil.c:
16026 * gst/vaapi/gstvaapivideocontext.c:
16027 plugins: set display through context
16028 Instead of setting the display to the plugin directly after its creation, do
16029 it through the gstreamer's context mechanism, avoiding double assignations.
16030 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16031 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16033 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16035 * gst/vaapi/gstvaapivideocontext.c:
16036 vaapivideocontext: rename context structure
16037 The context structure is named "display" which is too generic. The contrary
16038 happens, for example, with GstGL, what uses the same name as the context, and
16039 its logs make more sense.
16040 This patch renames the context structure with the same name as the
16041 context, thus GST_PTR_FORMAT can pretty print it.
16042 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16044 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16046 * gst/vaapi/gstvaapivideocontext.c:
16047 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
16048 First, refactorized run_context_query() into _gst_context_run_query(), adding
16049 a new parameter: the pad direction, in order to simplify the code.
16050 Second, added a new helper function: _gst_context_query(), which is a generic
16051 context query function. It isolates the operation of running the query and
16052 sets the context if found, also it enhances the logs.
16053 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
16054 future this helper function will be merged into the core libraries of
16056 Finally, gst_vaapi_video_context_prepare() was rewritten to use
16057 _gst_context_query().
16058 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16059 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16061 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16063 * gst/vaapi/gstvaapivideocontext.c:
16064 vaapivideocontext: refactor context category debug
16065 Refactor the extraction GST_CAT_CONTEXT logging using a only once
16066 initializator, so we could get the debug category from different code
16068 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16069 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16071 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16073 * gst/vaapi/gstvaapivideocontext.c:
16074 gstvaapivideocontext: fix indentation
16075 gst-indent does not handle correctly some expression like function
16076 declaration with attributes, breaking the following expressions.
16077 This patch makes gst-indent to ignore the attributed function
16078 declartion so the followed function definition is not mangled, such
16079 as happened in commit b4154a
16080 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16081 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16083 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16085 * gst/vaapi/gstvaapipluginbase.c:
16086 plugin: chain up set_context() vmethod
16087 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16088 the parent class in order to broadcast all its contexts when the element
16089 is added into a bin:
16090 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16091 There is no need to guard the call, because before GStreamer 1.7, the
16092 set_context() vmethod was NULL in the element class, hence the conditional
16094 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16095 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16097 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16099 * tests/simple-encoder.c:
16100 tests: simple-encoder: remove dead code
16101 The caps creation for codec state configuration is not used. Let's remove it.
16102 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16104 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16106 * gst/vaapi/gstvaapidecodebin.c:
16107 vaapidecodebin: fix a leaked display instance
16108 The display returned by gst_vaapi_video_context_get_display() increments the
16109 references. Thus, we have to unref the returned display.
16110 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16111 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16113 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16115 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16116 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16117 libs: remove unneeded headers
16118 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16119 required to include them in the header. It is not also required to include
16120 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16121 exposes their structures (e.g. GLXPixmap).
16122 Nonetheless, glext.h neither glxext.h are required to include, they are
16123 already included conditionally by gl.h and glx.h, respectively.
16124 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16125 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16127 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16129 * ext/codecparsers:
16130 codecparsers: Update to gst-vaapi-branch 0ea6792
16131 0ea6792: codecparsers: vp9: Add header comments
16132 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16134 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16136 * gst/vaapi/gstvaapidecode.c:
16137 VP9: plugins: Add VP9 decoder
16139 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16141 * gst-libs/gst/vaapi/Makefile.am:
16142 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16143 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16144 VP9: libgstvaapi: Add VP9 decoder
16146 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16148 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16149 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16150 VP9: gstvaapiprofile: Add profile definitions
16152 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16155 VP9: build: Check availability of vp9 decoder APIs
16157 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16161 * gst-libs/gst/codecparsers/Makefile.am:
16162 VP9: Allow building vp9 codecparser internally
16164 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16166 * ext/codecparsers:
16167 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16168 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16169 e7d9217: codecparser: h264: initialize parsing structures
16170 403d400: codecparser: h265: initialize parsing structures
16172 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16175 configure.ac: don't use an undefined variable
16176 If the environment lacks of gstreamer development packages, this error will
16177 be reported to the user: "gstreamer- was not found"
16178 This is because we are using an undefined variable in the printed message. The
16179 fix simple changes the variable for the hard-coded string "1.0".
16180 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16181 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16183 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16185 * gst/vaapi/gstvaapidecode.c:
16186 vaapidecode: relax guards for memory:VASurface capsfeature
16187 Though caps features are supported since GStreamer 1.2, there are some
16188 issues with the features caps negotiation in that version. Nonetheless,
16189 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16190 feature negotiation is relaxed for GStreamer 1.4.
16191 The guard is the same as in vaapisink's caps template.
16192 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16193 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16195 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16197 * gst/vaapi/gstvaapidecode.c:
16198 vaapidecode: decide allocation doesn't update srccaps
16199 The received caps query will bring the already negotiated caps, so they are
16200 not expected to change.
16201 This patch removes this verification which is dead code path.
16202 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16203 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16205 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16207 * gst/vaapi/gstvaapidecode.c:
16208 * gst/vaapi/gstvaapipluginutil.c:
16209 * gst/vaapi/gstvaapipluginutil.h:
16210 vaapidecode: use caps to check the features
16211 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16212 expensive, we check the caps from the allocation query, to check the
16213 negotiated feature.
16214 In order to do this verification a new utility function has been implemented:
16215 gst_vaapi_caps_feature_contains().
16216 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16217 have been refactorized.
16218 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16219 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16221 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16223 * gst/vaapi/gstvaapidecode.c:
16224 vaapidecode: set format before decide allocation
16225 There is a regression from commit 3d8e5e. It was expected the buffer pool
16226 allocation occur before the caps negotiation, but it is not.
16227 This patch fixes this regression: the caps negotiation is done regardless the
16228 allocation query from downstream.
16229 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16230 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16232 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16235 build: check for patch and fix yasm check
16236 Add configure checking for GNU patch tools and fixed configure
16237 checking YASM to correct sequence.
16238 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16239 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16241 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16243 * ext/libvpx/Makefile.am:
16244 build: Remove disable-md5 option for libvpx build
16245 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16246 has been removed in 1.4.0.
16248 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16250 * ext/libvpx/upstream:
16251 libvpx: Update the submodule to libvpx-1.4.0
16252 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16254 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16257 configure: mark support for GStreamer 1.2 as obsolete.
16258 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16259 Our goal is to support the last two stable versions of GStreamer which
16260 are 1.4 and 1.6 at the moment.
16261 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16262 release and will get rid of those in 0.8.
16264 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16266 * gst/vaapi/gstvaapidecode.c:
16267 vaapidecode: Fix buffer copy assertion
16268 Don't try to copy the NULL buffer-codec_data.
16270 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16273 build: allow builds against GStreamer 1.7.x
16274 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16276 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16278 * gst/vaapi/gstcompat.h:
16279 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16280 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16281 add an implementation if gstreamer-vaapi is linked to previous versions.
16282 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16284 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16286 * gst/vaapi/gstvaapidecode.c:
16287 vaapidecode: simplify copy of GstVideoCodecState
16288 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16290 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16292 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16293 * patches/videoparsers/series.frag:
16294 patches/videoparsers: h265parser: more API fences
16295 Add more API fences according with its version and refresh the patch.
16296 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16297 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16299 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16301 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16302 * patches/videoparsers/series.frag:
16303 patches/videoparsers: h265parser: rename patch keeping number
16304 Refresh the patch and rename it in order to keep the patch number.
16305 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16306 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16308 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16310 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16311 patches/videoparsers: h264parser: more API fences and refresh
16312 Add more API fences according with its version and refresh the patch.
16313 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16314 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16316 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16318 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16319 * patches/videoparsers/series.frag:
16320 patches/videoparsers: h264parser: fix description and refresh
16321 Fix a typo in the patch description and refresh it in order to avoid the
16322 creation of .orig files and break the distcheck target.
16323 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16324 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16326 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16328 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16329 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16330 patches/videoparsers: h264parser: refresh patches
16331 In order to avoid the creation of .orig files and break the distcheck target.
16332 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16333 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16335 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16337 * gst/vaapi/Makefile.am:
16338 build: link libgstvaapi_parse against codec parser
16339 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16340 when running configure.
16341 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16342 need it if builtin codec parsers are disabled.
16343 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16344 compilation. If builtin codec parsers are enable, this variable is null, so it
16345 should work using libgstvaapi, as normal.
16346 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16347 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16349 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16352 build: verify for H264 MVC and H265 SPS
16353 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16354 the required symbols for those were added in GStreamer 1.5
16355 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16356 parsers, the compilation fails, because the lack of those symbols.
16357 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16358 they do not, the specific built in codec parsers are enabled and used.
16359 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16360 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16362 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16364 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16365 decoder: h264: initialize PPS's slice_group_id
16366 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16367 so it contains random data.
16368 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16369 pointer uninitialized, leading to a segmentation fault when the memory is
16371 This patch prevents this by initializing the slice_group_id before the PPS
16373 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16374 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16376 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16378 * gst/vaapi/gstvaapidecode.c:
16379 vaapidecode: proper numerator and denominator for forced latency framerate
16380 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16382 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16384 * ext/codecparsers:
16385 codecparsers: Update to gst-vaapi-branch commit f9e284b
16386 dae1a84: h264parse/h265parse: Fix negotiation crash
16387 45a9f8a: codecparsers: h265 : Fix default scaling list values
16388 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16389 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16391 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16393 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16394 decoder: hevc: Don't flush dpb for EOS/EOB nal
16395 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16396 the dpb_add() itself will handle the flusing(if needed) of dpb
16397 for end of sequence and end of bitstream.
16398 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16400 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16402 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16403 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16404 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16405 just after the PicLatencyCnt setting of existing dpb frames.
16406 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16408 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16410 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16411 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16412 This fix is based on the V3 vesion of spec which was missing in older versions.
16413 When the current picture has PicOutputFlag equal to 1, for each picture in the
16414 DPB that is marked as "needed for output" and follows the current picture in output order,
16415 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16416 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16418 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16420 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16421 decoder: h265: Fix indentation
16423 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16425 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16426 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16427 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16428 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16429 * gst/vaapi/gstvaapidecode.c:
16430 * gst/vaapi/gstvaapipluginutil.c:
16431 multiview: initial attempt at stereo/multiview support
16432 Add support for marking caps and buffers for multiview or
16433 stereoscopic output.
16434 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16436 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16438 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16439 decoder: hevc: remove unused functions
16440 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16441 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16443 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16445 * gst/vaapi/gstvaapidecode.c:
16446 vaapidecode: remove (another) unused variable
16447 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16449 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16451 * gst/vaapi/gstvaapidecode.c:
16452 vaapidecode: remove unused variable
16453 Thus silence the compilation warnings.
16455 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16457 * gst/vaapi/gstvaapidecode.c:
16458 vaapidecode: compilation fix
16459 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16460 compilation where the toolchain uses restrictive flags as clang.
16461 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16463 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16465 * gst/vaapi/gstvaapidecode.c:
16466 vaapidecode: renegotiate if caps are not equal
16467 The use of gst_caps_is_always_compatible() for this optimization may lead to
16468 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16469 if it is required a re-negotiation.
16470 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16471 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16473 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16475 * gst/vaapi/gstvaapidecode.c:
16476 * gst/vaapi/gstvaapidecode.h:
16477 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16478 Delaying the pool re-negotiation untill we push all decoded (and queued)
16479 frames downstream. Otherwise for the multi-resolution videos, the
16480 GstVideoVideoMemory will be having wrong resolution and which leads
16481 to nasty behaviours, especially when using software renderers.
16482 sample media file: RAP_B_Bossen_1.bin
16484 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16485 get the final resoultion 416x240.
16486 Starting from 25 th frame, the resolution will change to 416x240. But parser
16487 elements won't report this since the effective croped resolution is same in
16488 both cases. Here the core libgstvaapi will detect this through it's internal
16489 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16490 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16491 immediately, this will not sync with the resolution of already decoded and queued
16492 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16493 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16494 untill we push all decoded frames downstream.
16495 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16497 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16499 * gst/vaapi/gstvaapidecode.c:
16500 vaapidecode: Always keep a copy of input codec state
16501 Currently we are sharing the input GstVideoCodecState with
16502 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16503 each caps change. This is troublesome in many cases, for eg: if
16504 resoultion changes with in a singe stream. Because, when ever there
16505 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16506 fields with new resolution, but since we are using the same codecstate (ref)
16507 in gstvaapidecode.c, the caps check for input caps change will always fail.
16508 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16510 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16512 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16513 decoder: hevc: Fix the scaling list scan order
16514 The default scan order of scaling lists are up-right-diagonal
16515 as per hevc specification. Use the newly implemented
16516 uprightdiagonal_to_raster conversion codecparser APIs to
16517 get the the scaling_list values in raster order, which is
16518 what the VA intel driver requires.
16520 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16522 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16523 decoder: hevc: sync with the codecparser changes
16524 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16525 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16527 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16529 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16530 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16532 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16534 * ext/codecparsers:
16535 codecparsers: Update to gst-vaapi-branch commit 69550f1
16536 c207c6d: codecparsers: h265: Fix tile row and column parsing
16537 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16538 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16539 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16540 2f0932b: h264parse: Clear SPS info after processing
16541 f57d6b0: videoparsers: enable accept-template flag
16543 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16545 * debian.upstream/control.in:
16546 debian: add yasm as build dependency
16547 As the compilation of libvpx (for vp8 parser) is enabled by default,
16548 yasm is required by default too.
16549 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16551 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16553 * debian.upstream/rules:
16554 debian: remove --with-gstreamer-api option
16555 It is no longer valid in gstreamer-vaapi.
16556 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16557 [removed unused GST_API_VERSION variable]
16558 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16559 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16561 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16563 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16564 wayland: rename is_cancelled to sync_failed
16565 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16566 sense. This commit renames this variable to sync_failed.
16568 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16570 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16571 wayland: Don't return GST_FLOW_ERROR on flushing
16572 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16573 return FALSE which makes gst_vaapi_window_wayland_render() return
16574 FALSE which ends up posting an ERROR message in
16575 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16577 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16579 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16581 * gst/vaapi/gstvaapi.c:
16582 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16583 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16585 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16587 * gst/vaapi/gstvaapidecodebin.c:
16588 vaapidecodebin: check for postproc instance
16589 If the VPP's deinterlace-method is set, first we should check if the postproc
16590 is already instanced to set it. Otherwise we just store it until the VPP is
16591 added into the bin.
16592 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16593 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16595 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16597 * gst/vaapi/gstvaapidecodebin.c:
16598 * gst/vaapi/gstvaapipluginutil.c:
16599 * gst/vaapi/gstvaapipluginutil.h:
16600 vaapidecodebin: ensure VPP before going to READY
16601 There are sometimes that the VA-API display context is not shared among the
16602 pipeline, but it is important to know it before going to READY state (when the
16603 pipeline is already linked).
16604 One instance of this case is this:
16605 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16606 This patch adds a new function in gstvaapipluginutil called
16607 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16608 display, which only will be used for verify if the VAEntrypointVideoProc is
16609 available by the hardware. Afterwards, it should be unrefed.
16610 If the vaapidecodebin is going to READY state, and the element still doesn't
16611 know if VPP is available, the last resort is to create a new instance of the
16612 VA-API display and test for it.
16613 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16615 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16617 * gst/vaapi/gstvaapidecodebin.c:
16618 vaapidecodebin: post an error message if fails
16619 If the construction of the bin fails, post an error message in the bus.
16620 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16621 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16623 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16625 * gst/vaapi/gstvaapidecodebin.c:
16626 * gst/vaapi/gstvaapidecodebin.h:
16627 vaapidecodebin: has_vpp as a tri-state variable
16628 has_vpp can be UNKNOWN while the context message hasn't being received.
16629 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16630 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16632 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16634 * gst/vaapi/gstvaapivideomemory.c:
16635 gstvaapivideomemory: native format with no derived image
16636 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16637 info based on the derived image configuration.
16638 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16639 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16641 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16643 * gst-libs/gst/vaapi/video-format.c:
16644 * gst-libs/gst/vaapi/video-format.h:
16645 * gst/vaapi/gstvaapivideomemory.c:
16646 surface pool config based on video info
16647 First added the function gst_vaapi_video_format_get_best_native(), which
16648 returns the best native format that matches a particular chroma type:
16649 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16650 RGB32 chroma and encoded format map to NV12 too.
16651 That format is used to configure, initially, the surface's pool for the
16653 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16654 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16656 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16658 * gst/vaapi/gstvaapivideomemory.c:
16659 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16660 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16661 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16663 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16665 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16666 gstvaapiencoder: validate chroma according to the VA's RT format
16667 Before, only YUV420 color space where supported. With this patch, the
16668 encoder is queried to know the supported formats and admits YUV422
16669 color space if its available.
16670 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16671 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16673 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16675 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16676 decoder: hevc: Add calculation of WpOffsetHalfRangeC
16677 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16678 prediction weight table values with out using any hard coding.
16679 Fixme: We don't have parser API for sps_range_extension, so
16680 assumed zero value for high_precision_offsets_enabled_flag.
16681 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16683 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16685 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16686 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16687 Based on ITU-T rec H265(4/2015): 7-56
16688 This was a wrong equation in rec H265 (4/2013): 7-44...
16689 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16691 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16693 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16694 decoder: hevc: Fix default value assignment of pred_weight_table
16696 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16698 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16699 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16700 Assign only if ChromaArrayType != 0..
16701 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16703 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16705 * ext/codecparsers:
16706 codecparsers: Update to gst-vaapi-branch commit 1c70432
16707 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16708 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16709 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16711 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16713 * ext/codecparsers:
16714 codecparsers: Update to gst-vaapi-branch commit c18b8ad
16715 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16716 a033083: videoparsers: h265: Fix the frame start detection code
16717 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16719 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16721 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16722 decoder: hevc: Add SEI parsing
16723 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16725 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16727 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16728 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16729 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16730 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16731 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16732 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16733 is TRUE. Assuming them as MAIN profile for now.
16734 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16735 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16737 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16739 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16740 patches/videoparsers: Fix the wrong source file path
16741 This is something wrongly typed in commit 6d7b631
16743 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16745 * ext/codecparsers:
16746 codecparsers: Update to gst-vaapi-branch commit b8d8be4
16747 ee7e81b: h264parse: Don't discard first AU delimiter
16748 3690fb9: h264parse: Add more NAL types for debugging output
16749 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16750 ace61048: h265parse: expose compatible profiles to downstream
16751 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16753 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16755 * gst/vaapi/gstvaapipluginutil.c:
16756 * gst/vaapi/gstvaapivideocontext.c:
16757 * gst/vaapi/gstvaapivideocontext.h:
16758 gstvaapivideocontext: remove unused parameter
16759 gst_vaapi_video_context_prepare() received an unused parameter. This patch
16760 removes it and the structure passed by the caller.
16761 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16762 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16764 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16766 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16767 decoder: hevc: Fix decoding of stream when it has temporal sublayers
16768 We are calculating the dpb size based on max_dec_pic_buffering.
16769 But if there are more than one temporal sublayers, we are supposed
16770 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16771 size calculation (Assuming HighestTid as max_sub_layers_minus).
16772 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16773 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16774 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16776 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16778 * gst/vaapi/gstvaapidecode.c:
16779 * gst/vaapi/gstvaapidecodebin.c:
16780 * gst/vaapi/gstvaapiencode_h264.c:
16781 * gst/vaapi/gstvaapiencode_h265.c:
16782 * gst/vaapi/gstvaapiencode_jpeg.c:
16783 * gst/vaapi/gstvaapiencode_mpeg2.c:
16784 * gst/vaapi/gstvaapiencode_vp8.c:
16785 * gst/vaapi/gstvaapipluginutil.h:
16786 * gst/vaapi/gstvaapipostproc.c:
16787 * gst/vaapi/gstvaapisink.c:
16788 refactor vaapi caps strings for pad templates
16789 Refactor the main vaapi caps strings into three macros:
16790 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16791 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16792 Those are in gstvaapipluginutil.h so all the elements could use them, instead
16793 of re-declaring them every time.
16794 No functional changes.
16795 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16797 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16799 * gst/vaapi/gstvaapipostproc.c:
16800 gstvaapipostproc: fix code style
16801 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16803 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16805 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16806 decoder: hevc: Fix the decoding of dependent slice segment
16807 Decoding process for reference picture list construction needs to be
16808 invoked only for P and B slice and the value for slice_type of dependent slice
16809 segment should be taken from the previous independent slice segment header
16811 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16812 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16814 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
16816 * gst/vaapi/gstvaapipluginbase.c:
16817 plugins: reduce the noise of warnings
16818 Those messagse should be attached to the object, also the lack of
16819 caps is not an error, in particular in the case of JPEG encoding.
16820 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16821 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16823 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16825 * gst-libs/gst/vaapi/gstvaapicontext.c:
16826 gstvaapicontext: fix the JPEG encoder attribs value
16827 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16828 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16829 assigns the returned value to the attribute.
16830 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16831 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16833 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
16835 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16836 gstvaapiencoder: framerate 0/1 is valid too
16837 Framerate 0/1 is valid, and it is particularly useful for picture
16838 encoding, such as jpeg. This patch makes the encoder to admit that
16840 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16841 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16843 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16845 * gst/vaapi/gstvaapipostproc.c:
16846 vaapipostroc: GLTextureUploadMeta in sink template
16847 Advertise GLTextureUploadMeta in sink caps template.
16848 https://bugzilla.gnome.org/show_bug.cgi?id=752130
16850 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16852 * gst/vaapi/Makefile.am:
16853 * gst/vaapi/gstvaapiencode.c:
16854 * gst/vaapi/gstvaapipluginbase.c:
16855 * gst/vaapi/gstvaapipluginbase.h:
16856 * gst/vaapi/gstvaapipostproc.c:
16857 * gst/vaapi/gstvaapisink.c:
16858 * gst/vaapi/gstvaapiuploader.c:
16859 * gst/vaapi/gstvaapiuploader.h:
16860 remove gstvaapiuploader
16861 Working on bug #744042 I realized that the gstvaapiuploader is practically not
16863 This patch removes the gstvaapiuploader and add the method
16864 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16865 the system can handle, which is used by vaapisink and vaapipostproc.
16866 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16867 https://bugzilla.gnome.org/show_bug.cgi?id=752777
16869 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16871 * gst/vaapi/gstvaapidecode.c:
16872 vaapidecode: don't lost GLTextureUpload on seek
16873 When seeking, the decoder is reset, but the buffer pool is not
16874 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16875 pool has the GLTextureUpload meta.
16876 The decoder knows that GLTextureUpload meta was negotiated in
16877 decide_allocation(), but this method is not called when seeking.
16878 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16879 https://bugzilla.gnome.org/show_bug.cgi?id=752929
16881 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16883 * gst/vaapi/gstvaapipluginutil.c:
16884 plugins: don't use gst_pad_get_allowed_caps()
16885 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16886 decoders, that is OK, but in the case of the postproc might lead loops,
16887 since the gst_base_transform_query_caps() forwards the query upstream
16889 Instead of gst_pad_get_allowed_caps() we only query the peer with
16890 gst_pad_peer_query_caps() using the pad's template as filter.
16891 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16892 https://bugzilla.gnome.org/show_bug.cgi?id=752558
16894 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16899 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16901 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16902 * patches/videoparsers/series.frag:
16903 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16904 All API/ABI changes for S3D/MVC are added in 1.5, backporting
16905 them to older verison is not recommended.
16906 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16908 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16910 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16911 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16913 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16915 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16916 decoder: jpeg: Align with new API/ABI changes in codecparser
16917 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16919 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16921 * ext/codecparsers:
16922 codecparsers: Update to gst-vaapi-branch commit 800bdb2
16923 ed13220: mpegvideometa: add meta transform function
16924 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16925 7a51722: codecparsers: jpeg: fix docs for table parsing functions
16926 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16927 387a39d: codecparsers: jpeg: fix up API
16928 db9d6a9: codecparsers: jpeg: tweak API a little
16929 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16930 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16931 4658c30: codecparsers: jpeg: fix calculation of segment size
16932 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16933 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16934 9422464: h264parse: fix typo in log message
16935 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16936 77704ce: nalutils: trivial patch to check if
16937 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16938 7862f95: Revert "codecparsers: remove ignored increment of return"
16939 54017b1: h264parse: Add support for passing stereoscopic/multiview info
16940 8667ee4: h264parse: Don't switch to passthrough on set_caps()
16941 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16943 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16945 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16946 decoder: h264: track previous reference frames.
16947 Improve closure of gaps in frame_num by strictly following and trying
16948 to fill them with previous reference frames. So, they are now tracked
16949 thus avoiding insertion of dummy ("greenish") frames.
16951 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16953 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16954 decoder: h264: fix integration of second field into the DPB.
16955 If the new picture to be added to the DPB is not a first field, then
16956 it shall be the second field of the previous picture that was added
16958 This removes the need for dpb_find_picture() now that we track the
16959 immediately preceding decoded picture, in decode order.
16961 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16963 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16964 decoder: h264: fix closure of "other-field" gap.
16965 When a dummy "other-field" is inserted, it is assumed to inherit the
16966 reference flags from the first field, and the sliding window decoded
16967 reference picture marking process is also executed so that corrupted
16968 frames are moved out as early as possible.
16969 While doing so, we also try to output frames that now contain a single
16970 valid field picture, prior to inserting any other picture into the DPB.
16971 Note: this may be superfluous currently based on the fact that dpb_add()
16972 combines the two most recent pairable fields, but this process would be
16973 further simplified later on.
16975 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16977 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16978 decoder: h264: track corrupted frames.
16979 Mark the picture as "corrupted" if it is reconstructed from corrupted
16980 references or if those references are fake, e.g. resulting from lost
16982 This is useful for notifying the upper layer, or downstream elements,
16983 that the decoded frame may contain artefacts.
16984 https://bugzilla.gnome.org/show_bug.cgi?id=703921
16986 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16988 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16989 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16990 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16991 * gst/vaapi/gstvaapidecode.c:
16992 decoder: add initial infrastructure for marking corrupted output.
16993 Add initial infrastructure in core codec library and vaapidecode to mark
16994 corrupted frames as such. A corrupted frame is such a frame that was
16995 reconstructed from invalid references for instance.
16996 https://bugzilla.gnome.org/show_bug.cgi?id=751434
16997 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16999 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17002 Bump version for development
17004 === release 0.6.0 ===
17006 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17011 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17016 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17018 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17019 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
17020 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
17021 Right now there is not a primary ranked parser for vc1 and the demuxers
17022 delivers caps without specifying the profile. This situation is not an issue
17023 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
17024 explicit profile defined in the negotiated caps.
17025 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
17026 negotiation admits caps subsets try outs.
17027 This patch solves the issue ignoring the profile negotiation in the caps. For
17028 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
17029 done without the vc1 parser, such as happens in gstreamer 1.5.
17030 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17032 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17034 * gst/vaapi/gstvaapi.c:
17035 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
17036 Unfortunately vaapidecodebin element is not seems to be stable
17037 enough for autoplugging ahead of vaapidecode.
17038 Lowering the rank for now (cosidering the immediate 0.6 release).
17039 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
17040 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17042 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17044 * gst-libs/gst/vaapi/Makefile.am:
17045 build: Add missing CFLAGS to Makefile.am
17047 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17049 * gst-libs/gst/vaapi/gstvaapifilter.c:
17050 gstvaapifilter: Only register STE property if it supported by corresponding VA library
17051 Fix the regression introduced in commit eb465fb.
17052 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17053 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17055 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17057 * gst/vaapi/gstvaapipostproc.c:
17058 vaapipostproc: no format convert on GL tex upload meta
17059 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
17060 color format of the buffer.
17061 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17063 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17065 * gst-libs/gst/vaapi/gstvaapifilter.c:
17066 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
17067 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17068 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17070 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17072 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17073 encoder:h265: Fix the check for packed-header support
17074 Use VA_ENC_PACKED_HEADER_* definition for checking.
17075 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17077 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17079 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17080 encoder:h264: Fix the check for packed-header support
17081 Use VA_ENC_PACKED_HEADER_* definition for checking.
17082 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17084 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17086 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17087 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17088 One buffering_period() SEI message shall be present in every IDR access unit
17089 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17090 use a non-CQP mode, e.g. CBR. In other words, when
17091 nal_hrd_parameters_present_flag is set to 1.
17092 One picture_timing() SEI messages shall be present in every access unit
17093 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17094 https://bugzilla.gnome.org/show_bug.cgi?id=722734
17095 https://bugzilla.gnome.org/show_bug.cgi?id=751831
17096 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17098 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17100 * gst/vaapi/gstvaapidecodebin.c:
17101 vaapidecodebin: notify if vpp is disabled
17102 When the system is aware that VPP is not available by the VA driver,
17103 it would be useful to notify to the user that the disable-vpp property
17105 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17107 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17109 * gst/vaapi/gstvaapidecodebin.c:
17110 * gst/vaapi/gstvaapidecodebin.h:
17111 vaapidecodebin: enable vpp if it is available
17112 Instead of creating and adding VPP into the bin at setup, we wait until
17113 we are sure the VA driver supports it. We know that when the VA video
17114 context is received by the bin. Afterwards, it is decided to instanciate
17115 and link the VPP or not.
17116 This is more efficient and safer than waiting the VPP to fail and then
17118 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17120 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17122 * tests/test-display.c:
17123 * tests/test-windows.c:
17124 tests: Fix compilation while enabling egl as the only renderer in build
17125 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17127 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17130 configure: fix the build while enabling egl as the only renderer
17132 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17135 libs: Bump library major version
17137 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17139 * gst/vaapi/gstvaapi.c:
17140 * gst/vaapi/gstvaapidecodebin.c:
17141 * gst/vaapi/gstvaapiencode.c:
17142 * gst/vaapi/gstvaapiencode_jpeg.c:
17143 * gst/vaapi/gstvaapipluginbase.c:
17144 * gst/vaapi/gstvaapipluginutil.c:
17145 * gst/vaapi/gstvaapipostproc.c:
17146 * gst/vaapi/gstvaapivideobufferpool.c:
17147 * gst/vaapi/gstvaapivideocontext.c:
17148 * gst/vaapi/gstvaapivideomemory.c:
17149 * gst/vaapi/gstvaapivideometa.c:
17150 gst/vaapi: Switch to upstreram like indentation.
17151 gst-indent for all gst/vaapi/*.c source files
17153 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17155 * gst/vaapi/gstvaapidecodebin.c:
17156 * gst/vaapi/gstvaapidecodebin.h:
17157 vaapidecodebin: Add property to disable VPP
17158 Adding a new propery "disable-vpp", enabling it will prevent
17159 the insertion of vaapipostproc child element.
17160 This is helpful in debugging, specifically to narrow-down the
17161 vaapidecodebin/vaapipostproc related negotiation issues.
17162 No support for run-time disabling for now.
17163 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17165 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17167 * gst/vaapi/gstvaapipostproc.c:
17168 vaapipostproc: Fix wrong selection of passthrough mode.
17169 The Current code path is falling back to passthorugh mode if there is no
17170 vpp property set by the user explictily. But we should not use the
17171 passthrough mode if the negotiated src pad caps have a differnt color space
17172 format than sink pad caps (Even though the user didn't set the format property
17174 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17175 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17177 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17179 * gst/vaapi/gstvaapipostproc.c:
17180 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17181 This is a workaround to deal with the va-intel-driver for non-native
17182 formats while doing advanced deinterlacing. The format of reference surfaces must
17183 be same as the format used by the driver internally for motion adaptive
17184 deinterlacing and motion compensated deinterlacing.
17185 A permanent solution could be to do the color space conversion internally
17186 for reference surfaces.
17187 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17188 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17190 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17192 * gst/vaapi/gstvaapisink.c:
17193 Work around ABBA deadlock between vaapisink and vaapipostproc
17194 vaapisink takes the display lock, then does a gst_buffer_replace which can
17195 take the lock on the gst_vaapi_video_pool.
17196 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17197 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17198 surfaces, which means that gst_vaapi_surface_create is
17199 called. gst_vaapi_surface_create takes the display lock.
17200 If vaapisink and vaapipostproc are in different threads, and this happens,
17201 you get a deadlock. vaapisink holds the display lock, and wants the
17202 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17203 and wants the display lock.
17204 Work around this by releasing the display lock in vaapisink around the
17205 gst_buffer_replace.
17206 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17207 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17208 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17210 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17212 * gst/vaapi/gstvaapidecodebin.c:
17213 * gst/vaapi/gstvaapidecodebin.h:
17214 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17215 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17217 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17219 * gst/vaapi/gstvaapipostproc.c:
17220 vaapipostproc: log negotiated caps
17222 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17224 * gst/vaapi/gstvaapipostproc.c:
17225 vaapipostproc: remove useless debug message
17227 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17229 * gst/vaapi/gstvaapidecode.c:
17230 vaapidecode: log negotiated src/sink caps
17232 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17234 * gst/vaapi/gstvaapisink.c:
17235 vaapisink: error handling if rendering fails
17236 This patch enhance the code path when an error is found when rendering a
17238 If the video meta doesn't contain a surface proxy or a surface, a warning
17239 message is printed.
17240 If the rendering backend fails, a error message is posted in the bus.
17241 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17243 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17245 * gst/vaapi/gstvaapisink.c:
17246 vaapisink: Fix the conditional pad template creation.
17248 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17250 * tests/Makefile.am:
17251 build: Don't build simple-encoder test program if there is no VA Encoding support
17252 This will fix the build error against older VA-APIs <= 0.32
17254 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17256 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17257 * gst-libs/gst/vaapi/gstvaapicompat.h:
17258 Fix build error for older VA-API versions
17259 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17260 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17263 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17265 * gst/vaapi/gstvaapisink.c:
17266 vaapisink: Fix the capsfeature advertisement in padtemplate
17267 This fixes the regression introduced in 64acc74.
17268 If a pad supports multiple set of capsfeatures, it needs to add
17269 multiple equal structures with different feature sets to the caps.
17270 Because caps structures with the same name but with a non-equal
17271 set of caps features are not compatible.
17272 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17273 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17275 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17277 * gst/vaapi/gstvaapisink.c:
17278 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17279 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17280 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17281 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17283 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17285 * gst/vaapi/gstvaapipluginbase.c:
17286 vaapipluginbase: Override downstream allocation reply if no pool
17287 If the downstream replied without a pool, then override it.
17288 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17290 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17292 * gst/vaapi/gstvaapipostproc.c:
17293 * gst/vaapi/gstvaapipostproc.h:
17294 vaapipostproc: add color balance interface
17295 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17297 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17299 * gst-libs/gst/vaapi/gstvaapifilter.c:
17300 * gst-libs/gst/vaapi/gstvaapifilter.h:
17301 * gst/vaapi/gstvaapipostproc.c:
17302 * gst/vaapi/gstvaapipostproc.h:
17303 vaapipostproc: add skin tone enhancement
17304 Added the 'skin-tone-enhancement' property to vaapostproc.
17305 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17307 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17309 * docs/reference/libs/libs-docs.xml.in:
17310 doc: add VA-API reference in freedesktop
17312 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17314 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17315 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17316 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17317 patches/videoparsers: rebase all the h264parse patches
17318 In order to avoid the creation of .orig files and break the distcheck target
17320 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17322 * ext/libvpx/Makefile.am:
17323 build: don't build in parallel libvpx
17324 This fixes the distcheck -j XX target.
17326 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17328 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17329 encoder: jpeg: Fix the packed header generation
17330 This is a work-around to satisfy the va-intel-driver.
17331 Normalize the quality factor and scale QM values (only for packed header
17332 generation) similar to what VA-Intel driver is doing . Otherwise the
17333 generated packed headers will be wrong, since the driver itself is
17334 scaling the QM values using the normalized quality factor.
17335 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17336 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17338 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17340 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17341 decoder: h264: fix uninitialized variables in avcC mode.
17342 Fix uninitialized variables when decoding SPS and PPS NAL units from
17343 "codec-data" buffers. This is particularly important when seeking ops
17344 are involved, and the new persistent states are used more often.
17345 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17347 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17349 * gst/vaapi/gstvaapidecode.c:
17350 vaapidecode: remove unneeded casting
17351 And a code-style fix
17353 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17355 * gst/vaapi/gstvaapidecode.c:
17356 vaapidecode: calculate decoding latency
17357 This is a naïve approach to the calculation of the VA-API decoding latency. It
17358 takes into consideration when the frame-rate has some insane value.
17359 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17361 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17364 configure: Compiling against libgstgl requires libgstvideo
17365 Fix detection of the GstGL helper headers in uninstalled
17368 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17370 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17371 encoder: hevc: Fix the size over-flow for encoded buffer.
17372 The approximation of 6 times compression ratio migh not
17373 work in all cases. Especially when enabling I frames.
17374 Provide large enough size for coded-buffer creation.
17376 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17378 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17379 encoder: vp8: Fix the size over-flow for encoded buffer.
17380 The approximation of 4 times compression ratio will not
17381 work in all cases. Especially when enabling I frames.
17382 Provide large enough size for coded-buffer creation.
17384 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17386 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17387 encoder: hevc: fix bug in multi slice encoding.
17388 This is a work-around for satisfying the VA-Intel driver.
17389 The driver only support slices begin from CTU row start address.
17390 Multi-Slice encoding also requires a fix in va-intel-driver:
17391 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17392 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17393 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17395 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17397 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17398 decoder: h264: add initial support for loss of pictures.
17399 Implement decoding process for gaps in frame_num (8.5.2). This
17400 also somewhat supports unintentional loss of pictures.
17401 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17402 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17403 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17404 [fixed derivation of POC, ensured clone is valid for reference,
17405 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17406 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17408 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17410 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17411 decoder: h264: add support for missing first field.
17412 Try to identify missing first fields too, thus disregarding any
17413 intermediate gaps in frames. We also assume that we keep the same
17414 field sequence, i.e. if previous frames were in top-field-first
17415 (TFF) order, then so are subsequent frames.
17416 Note that insertion of dummy first fields need to operate in two
17417 steps: (i) create the original first field that the current field
17418 will inherit from, and (ii) submit that field into the DPB prior
17419 to initializing the current (other) field POC values but after any
17420 reference flag was set. i.e. copy reference flags from the child
17421 (other field) to the parent (first field).
17422 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17424 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17426 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17427 decoder: h264: add support for missing second field.
17428 Interlaced H.264 video frames always have two fields to decode and
17429 display. However, in some cases, e.g. packet loss, one of the field
17430 can be missing. This perturbs the reference picture marking process,
17431 whereby the number of references available in DPB no longer matches
17432 the expected value.
17433 This patch adds initial support for missing field within a decoded
17434 frame. The current strategy taken is to find out the nearest field,
17435 by POC value, and with the same parity.
17436 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17438 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17440 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17441 decoder: h264: improve tracking of "top-field-first" flag.
17442 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17443 does not mandate it. This will be useful for tracking missing fields, and
17444 also for more correct _split_fields() implementation for frames in the DPB.
17446 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17448 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17449 decoder: h264: skip all pictures prior the first I-frame.
17450 Don't try to decode pictures until the first I-frame is received within
17451 the currently active sequence. There is no point is decoding and then
17452 displaying frames with artifacts.
17454 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17456 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17457 decoder: h264: fix processing of EOSEQ NAL.
17458 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17459 picture for decoding again. This is pretty vintage code that dates back
17460 before the existing of the whole decoder units machinery.
17461 One issue that could be arising if that code was kept is that we could
17462 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17463 Once without the decode_only flag set, and once with that flag set. The
17464 end result is that the GstVideoDecoder would release the codec frame
17465 twice, thus releasing stale data.
17466 In short, the piece of code that is removed by this patch is for once
17467 completely obsolete for a while, and secondly error-prone in corner
17470 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17472 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17473 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17474 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17475 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17476 decoder: add utility function to clone picture objects.
17477 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17478 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17479 [added cosmetic changes, fixed propagation of "one-field" flag to
17480 children, fixed per-codec clone modes (h264)]
17481 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17483 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17485 * gst/vaapi/Makefile.am:
17486 build: don't compile HEVC encoder if not supported
17488 (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
17489 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17490 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17491 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17493 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17495 * gst-libs/gst/vaapi/gstvaapicompat.h:
17496 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17497 HEVC: decode: add missing va_dec_hevc header
17498 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17499 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17500 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17502 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17504 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17505 mpeg2: fix PTS cache for GOP start.
17506 If the GOP temporal sequence number (TSN) is interpolated from a valid
17507 PTS, then we need to compensate that PTS corresponding to the start of
17508 GOP with the next picture to be decoded, which shall be an I-frame,
17509 based on its sequence number.
17510 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17512 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17514 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17515 mpeg2: avoid crash when seeking with debug logs
17516 Move down the debug message when the state of the decoder is verified
17517 so the slice header is not NULL.
17519 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17521 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17522 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17523 Reset state and add some checks for safe state to avoid a crash and
17524 a warning after the decoder is destroyed/recreated during a seek.
17526 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17528 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17529 * patches/videoparsers/series.frag:
17530 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17531 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17533 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17535 * ext/codecparsers:
17536 codecparsers: Update to gst-vaapi-branch commit 20ee952
17537 b7dded3: h264parse: don't consider unknown stream-format as avc
17538 5110ad9: h264parse: fix up handling of input caps corner cases
17539 e51db3e: h264parse: Remove dead code
17540 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17541 8482957: h265parse: Fix profile, tier and level setting in caps
17542 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17543 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17544 6886a31: h264parse: Fix profile and level setting in caps
17545 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17546 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17547 53074fc: build: Upgrade GStreamer dependency to 1.0
17548 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17550 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17552 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17553 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17554 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17556 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17558 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17559 HEVC: decode: Update Cropping Rectangle
17560 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17562 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17564 * gst/vaapi/Makefile.am:
17565 * gst/vaapi/gstvaapi.c:
17566 * gst/vaapi/gstvaapiencode_h265.c:
17567 * gst/vaapi/gstvaapiencode_h265.h:
17568 HEVC_Encode: Add HEVC(h265) Encoder plugin
17569 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17570 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17572 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17574 * gst-libs/gst/vaapi/Makefile.am:
17575 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17576 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17577 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17578 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17579 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17581 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17584 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17585 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17586 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17588 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17590 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17591 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17592 gstvaapiutils_h265: Add H265 Tier specific utility functions
17593 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17594 -- New API: gst_vaapi_utils_h265_get_tier_string()
17595 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17596 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17598 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17600 * docs/reference/plugins/Makefile.am:
17601 doc: conditional linking for scanner
17602 Add x11 library only if it is enabled.
17603 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17605 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17607 * docs/reference/plugins/plugins.types:
17608 doc: fix scanner compilation warning
17609 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17611 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17613 * docs/reference/libs/libs-docs.xml.in:
17614 * docs/reference/libs/libs-sections.txt:
17615 doc: update sections and symbols
17616 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17618 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17622 * debian.upstream/Makefile.am:
17623 * docs/Makefile.am:
17624 * docs/reference/Makefile.am:
17625 * docs/reference/libs/Makefile.am:
17626 * docs/reference/plugins/Makefile.am:
17628 * ext/libvpx/Makefile.am:
17630 * gst-libs/Makefile.am:
17631 * gst-libs/gst/Makefile.am:
17632 * gst-libs/gst/base/Makefile.am:
17633 * gst-libs/gst/codecparsers/Makefile.am:
17634 * gst-libs/gst/vaapi/Makefile.am:
17636 * gst/vaapi/Makefile.am:
17637 * patches/Makefile.am:
17638 * patches/videoparsers/Makefile.am:
17639 * pkgconfig/Makefile.am:
17640 * tests/Makefile.am:
17642 This patch handles dinamically the gitignore files with git.mk[1].
17643 Removed the automake variable MAINTAINERCLANFILES in most of the
17644 Makefile.am files since now it is handled by the top one.
17645 1. https://github.com/behdad/git.mk/blob/master/git.mk
17646 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17648 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17650 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17651 wayland: sync() when destroy()
17652 Before pushing a the new frame, the render() method calls sync() to flush the
17653 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17654 to a memory leak too.
17655 This patch calls sync() in the destroy() to flush the pending frames before
17656 destroying the window.
17657 Also a is_cancelled flag is added. This flag tells to not flush the event
17658 queue again since the method failed previously or were cancelled by the user.
17659 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17661 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17663 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17664 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17665 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17666 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17667 * gst/vaapi/gstvaapisink.c:
17668 vaapisink: implement unlock/unlock_stop for wayland
17669 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17670 shutting down. This can happen e.g. if the wayland compositor exits while
17671 the pipeline is running.
17673 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17674 * splitted the patch removing wl_display_dispatch_queue()
17675 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17676 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17677 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17679 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17682 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17683 wayland: wl_display_dispatch_queue() can block forever.
17684 wl_display_dispatch_queue() might prevent the pipeline from shutting
17685 down. This can happen e.g. if the wayland compositor exits while the
17686 pipeline is running.
17687 This patch replaces it with these steps:
17688 - With wl_display_prepare_read() all threads announce their intention
17690 - wl_display_read_events() is thread save. On threads reads, the other
17691 wait for it to finish.
17692 - With wl_display_dispatch_queue_pending() each thread dispatches its
17694 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17695 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17696 * stripped out the unlock() unlock_stop() logic
17697 * stripped out the poll handling
17698 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17699 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17700 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17702 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17704 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17705 wayland: rename frame for last_frame
17706 Since frame in the private data means the last frame sent, it would
17707 semantically better use last_frame.
17708 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17710 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17712 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17714 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17715 wayland: use a counter as sync flag
17716 Wayland window has a pointer to the last pushed frame and use it to set the
17717 flag for stopping the queue dispatch loop. This may lead to memory leaks,
17718 since we are not keeping track of all the queued frames structures.
17719 This patch removes the last pushed frame pointer and change the binary flag
17720 for an atomic counter, keeping track of number of queued frames and use it for
17721 the queue dispatch loop.
17722 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17724 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17726 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17727 wayland: decouple wl_buffer from frame
17728 This patch takes out the wayland's buffer from the the frame structure. The
17729 buffer is queued to wayland and destroyed in the "release" callback. The
17730 frame is freed in the surface's "done" callback.
17731 In this way a buffer may be leaked but not the whole frame structure.
17732 - surface 'done' callback is used to throttle the rendering operation and to
17733 unallocate the frame, but not the buffer.
17734 - buffer 'release' callback is used to destroy wl_buffer.
17735 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17737 * kept the the event_queue for buffer's proxy
17738 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17739 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17741 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17743 * gst/vaapi/gstvaapisink.c:
17744 vaapisink: fix indentation
17746 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17748 * debian.upstream/Makefile.am:
17749 * ext/libvpx/Makefile.am:
17750 * gst-libs/gst/vaapi/Makefile.am:
17751 * gst/vaapi/Makefile.am:
17752 * tests/Makefile.am:
17753 build: fix make distcheck
17754 This patch fixes several issues found when running the `make distcheck`
17756 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17758 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17760 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17761 - The make target distcleancheck failed because some autogenerated files
17762 were not handled with the DISTCLEANFILES variable.
17763 Note: `make distcheck -jXX` is not currently supported.
17765 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17767 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17768 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17769 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17770 h264parse: update patches with upstream
17771 These patches didn't applied cleanly, breaking the `make distcleancheck`
17772 target. Re-sync'ed the patches against the current git's submodule.
17774 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17776 * tests/simple-encoder.c:
17777 tests: simple-encoder: fix build warnings on 64-bit platforms.
17778 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17779 importantly fix warnings spitted out during build on 64-bit platforms.
17780 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17781 g_warning ("Invalid VAAPI buffer size (%d)", size);
17783 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17784 g_warning ("Failed to create output buffer of size %d", size);
17787 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17789 * gst/vaapi/gstvaapipluginbase.c:
17790 * gst/vaapi/gstvaapipluginutil.c:
17791 * gst/vaapi/gstvaapipluginutil.h:
17792 * gst/vaapi/gstvaapivideocontext.h:
17793 plugins: remove gstreamer-0.10 crumbs
17794 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17795 Still, its definition was still in the code. This patch removes it.
17796 https://bugzilla.gnome.org/show_bug.cgi?id=749113
17798 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17800 * tests/Makefile.am:
17801 * tests/simple-encoder.c:
17802 * tests/y4mreader.c:
17803 * tests/y4mreader.h:
17804 tests: add simple-encoder program
17805 This patch adds a simple-encoder test program that uses libgstvaapi for video
17806 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17807 format. That can be from a regular file or standard input when the input
17809 Usage: simple-encoder [options]* <source>
17811 --output|-o output file name
17812 --codec|-c codec to use for video encoding
17813 --bitrate|-b desired bitrate (kbps)
17814 By default, and as an initial patch, the encoded stream shall conform to the
17815 minimally supported profile. That is "Constrained Baseline Profile" for H.264
17816 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17817 generated by libgstvaapi.
17818 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17819 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17820 * general code clean-up
17821 * removed the yuv reader thread
17822 * re-wrote the y4m file parser
17823 * updated used API fixed some wrong usage
17824 * fixed a lot of memory leaks
17825 * added the bitrate setting
17826 * keep fps' numerator and denominator
17827 * simplified the thread control
17828 * removed custom logging and use glib
17829 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17830 https://bugzilla.gnome.org/show_bug.cgi?id=719528
17832 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17834 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17835 libs: trivial documentation fix
17836 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17837 are not errors, so they do not have the ERROR namespace.
17838 This patch fixes this typo in documentation.
17840 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
17842 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17843 window: Correct prototype to match implementation
17844 On s390x, guintptr and GstVaapiID are not compatible types. The
17845 implementation of gst_vaapi_window_new_internal() and all its callers
17846 seem to assume that its third argument is a GstVaapiID, while the
17847 header gives it guintptr type.
17848 https://bugzilla.gnome.org/show_bug.cgi?id=744559
17850 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17852 * gst/vaapi/gstvaapidecode.c:
17853 * gst/vaapi/gstvaapidecodebin.c:
17854 vaapidecode: add guards for disabled codecs.
17855 Fix link when building plugin elements without HEVC support. e.g. don't
17856 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17857 support HEVC enabled in libgstvaapi.
17858 Also, drop disabled codecs from static template caps. Add the missing
17859 HEVC static template caps into vaapidecodebin too.
17861 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17864 * gst-libs/gst/vaapi/glibcompat.h:
17865 build: upgrade glib dependency to 2.32
17866 Since bug #745728 was fixed the oldest supported version of GStreamer is
17867 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17869 This patch changes the required version of glib in configure.ac and removes
17870 the hacks in glibcompat.h
17871 https://bugzilla.gnome.org/show_bug.cgi?id=748698
17873 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17875 * gst/vaapi/gstvaapipluginbase.c:
17876 plugins: check if the pool config is already set
17877 In commit 97b768, a regression for GStreamer 1.2 was introduced:
17878 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17879 config option is already set. This patch adds an inline function to
17880 first verify if the option is not in the pool config berfore add it.
17882 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17884 * gst/vaapi/gstvaapipostproc.c:
17885 vaapipostproc: tune up a couple of log messages
17886 In order to reduce the noise, the query type log was downgrade from INFO to
17887 DEBUG, and the shared display address log message is assigned to the object.
17889 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17891 * gst/vaapi/gstvaapipluginbase.c:
17892 plugins: check gst_buffer_pool_set_config()
17893 Check the return value of gst_buffer_pool_set_config(). If it fails an error
17894 message is posted in the bus.
17896 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17898 * gst/vaapi/gstvaapipluginbase.c:
17899 plugins: more specific log message
17900 Be more specific in the log message about the reason of creating a new pool.
17902 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17904 * gst/vaapi/gstvaapipluginbase.c:
17905 plugins: delete unused variable
17906 need_pool is a boolean variable extracted from the allocation query, but it is
17907 not used afterwards.
17909 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17911 * gst/vaapi/gstvaapipluginbase.c:
17912 vaapipluginbase: Update the pool if there was no pool in the downstream reply
17913 Fix regression introduced by bd866479, the query after decide_allocation()
17914 always needs a pool in the first slot.
17915 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17916 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17918 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
17920 * gst/vaapi/gstvaapivideobufferpool.c:
17921 videopool: Free members before chaining up finalize
17922 The finalize function in GObject frees the object memory, so
17923 everything else needs to have been freed before.
17924 https://bugzilla.gnome.org/show_bug.cgi?id=748563
17926 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
17928 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17929 wayland: don't leak the registry proxy
17930 Release the registry proxy when closing the display.
17931 https://bugzilla.gnome.org/show_bug.cgi?id=748564
17933 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17935 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17936 wayland: refactor _sync() method and rename callback
17937 This patch only intends to improve readability: in the method
17938 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17940 Also renames the frame_redraw_callback() callback into frame_done_callback(),
17941 which is a bit more aligned to Wayland API.
17943 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
17945 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17946 wayland: free frame in buffer release callback
17947 The Wayland compositor may still use the buffer when the frame done
17948 callback is called.
17949 This patch destroys the frame (which contains the buffer) until the
17950 release callback is called. The draw termination callback only controls
17951 the display queue dispatching.
17952 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17953 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17955 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17957 * gst/vaapi/gstvaapidecode.c:
17958 vaapidecode: refactor gst_vaapidecode_internal_flush()
17959 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
17960 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
17961 shares the same error message of gst_vaapidecode_internal_flush() when flush
17964 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17966 * gst/vaapi/gstvaapidecode.c:
17967 vaapidecode: refactor gst_vaapidecode_destroy()
17968 Add the method gst_vaapidecode_purge(). This method releases the
17969 flushed frames from the decoder.
17970 This new method add more readablity to gst_vaapidecode_destroy()
17972 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
17974 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17975 * gst/vaapi/gstvaapidecode.c:
17976 vaapidecode: Tell the base class about released frames on close
17977 The base class needs to be informed about frames that were still queued
17978 in the decoder on release, otherwise they are leaked.
17979 https://bugzilla.gnome.org/show_bug.cgi?id=747999
17981 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17983 * gst/vaapi/gstvaapidecode.c:
17984 vaapidecode: reduce logging noise
17985 When a frame is rejected by downstream, the message is logged twice. This
17986 patch removes one of those logging messages.
17987 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
17988 the log message from error to info.
17990 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
17992 * gst/vaapi/gstvaapidecode.c:
17993 vaapidecode: Use the GstVideoDecoder error reporting function
17994 This way, the decoder won't stop on the first decoding error,
17995 in most cases it can recover after some glitchiness.
17996 https://bugzilla.gnome.org/show_bug.cgi?id=744620
17998 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
18000 * gst/vaapi/gstvaapipluginbase.c:
18001 vaapipluginbase: The allocation query can return without a pool
18002 It is possible to return the min/max/size without actually providing
18003 a pool. This way the source knows how many buffers downstream needs.
18004 https://bugzilla.gnome.org/show_bug.cgi?id=748076
18006 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18009 * gst/vaapi/Makefile.am:
18010 * gst/vaapi/gstvaapiparse.c:
18011 * gst/vaapi/gstvaapiparse.h:
18012 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
18013 * patches/videoparsers/series.frag:
18014 plugins: Add h265 videoparser element "vaapiparse_h265"
18015 This is a mirror of h265parse element in upstream gst-plugins-bad.
18016 There could be additional patches but all should go to upstream.
18017 This is for making development faster.
18018 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
18020 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18022 * ext/codecparsers:
18023 codecparsers: Update to gst-vaapi-branch commit 43a0368
18024 45f1c28: codecparser: h265: Fix nal unit size checking
18025 f25987b: codecparser: h265: Calculate crop rectangle dimensions
18026 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
18027 4c8ec41: Add h265 videoparser plugin source files
18029 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18032 autogen: drop videoutils submodule.
18034 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18036 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18037 decoder: hevc: cosmetics.
18038 Mostly coding style updates. Avoid integer signess inconsistencies.
18039 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
18041 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18043 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18044 decoder: hevc: Add Support for tiled video decoding
18045 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
18046 the tile column width and tile row height should be calculated.
18047 Equations: 6-1, 6-2
18048 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
18050 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18052 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18053 decoder: hevc: Fix decoding when there are RASL pictures present.
18054 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
18055 -- Fix PicOutputFlag setting for RASL picture
18056 -- Fix prev_poc_lsb/prev_poc_msb calculation
18057 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
18058 -- Fixed couple of crashes and added cosmetics
18060 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
18062 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18063 display: drm: fix race condition setting device type
18064 There is a race condition where g_drm_device_type can be left set to
18065 DRM_DEVICE_RENDERNODES when it shouldn't.
18066 If thread 1 comes in and falls into the last else statement setting up both
18067 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
18068 it sets g_drm_device_type = RENDERNODES.
18069 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
18070 up that type to be tried but then encounters the lock and has to wait until the
18071 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
18072 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
18073 attempts will only try RENDERNODES.
18074 So to avoid this situation I have simply moved the acquisition of the lock higher
18075 up in the attached patch.
18076 https://bugzilla.gnome.org/show_bug.cgi?id=747914
18078 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18080 * gst/vaapi/gstvaapipostproc.c:
18081 vaapipostproc: Don't create filter on caps query
18082 The problem with this is that creating the filter causes the display to
18083 be selected, and the caps query happens while linking the element. So,
18084 if the downstream or upstream element is using a specific display
18085 object, it won't be propagated correctly to the postproc as it already
18086 has a display at this point.
18087 https://bugzilla.gnome.org/show_bug.cgi?id=747945
18089 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
18091 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18092 videopool: Release lock while allocating new object
18093 The video pool can be accessed with the display lock held, for example,
18094 when releasing a buffer from inside vaapisink_render, but allocating
18095 a new object can may also take the display lock. Which means a possible
18097 https://bugzilla.gnome.org/show_bug.cgi?id=747944
18099 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18101 * gst/vaapi/gstvaapisink.c:
18102 vaapisink: use GstVideoSink vmethod show_frame()
18103 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18104 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18105 rather than call ourselves render() and preroll().
18107 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18109 * gst/vaapi/gstvaapisink.c:
18110 * gst/vaapi/gstvaapisink.h:
18111 vaapisink: add 'handoff' signal
18112 This patch adds the signal ::handoff and the property signal-handoffs. If the
18113 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18115 Based on Zhao Halley <halley.zhao@intel.com>
18116 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18118 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18120 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18121 HEVC: silence the compiler
18122 Fixed a couple of clang complains.
18124 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18126 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18127 wayland: destroy vpp buffer pool on resize
18128 Otherwise the old buffers with the old size are used.
18129 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18131 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18134 * gst-libs/gst/vaapi/Makefile.am:
18135 build: don't compile HEVC if not supported
18136 HEVC decoding was added recently libva-1.5.
18137 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18138 in the installed libva.
18139 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18141 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18143 * gst/vaapi/gstvaapidecode.c:
18144 vaapidecode: Update Author name in plugin metadata
18146 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18148 * gst/vaapi/gstvaapidecode.c:
18149 plugins: Add HEVC decoder
18150 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18152 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18154 * gst-libs/gst/vaapi/Makefile.am:
18155 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18156 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18157 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18158 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18160 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18162 * gst-libs/gst/vaapi/Makefile.am:
18163 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18164 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18165 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18166 HEVC: Add codec utility methods to core libgstvaapi
18167 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18169 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18171 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18172 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18173 HEVC: gstvaapiprofile: Add profile definitions
18174 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18176 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18179 HEVC: build: Check availability of h265 decoder APIs
18180 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18182 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18186 * gst-libs/gst/codecparsers/Makefile.am:
18187 HEVC: Allow to build h265 codecparser internally
18188 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18190 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18192 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18193 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18194 * gst-libs/gst/vaapi/gstvaapisurface.c:
18195 guard buffer export API if not available
18196 The support for buffer exports in VA-API was added in version 0.36. These
18197 interfaces are for interop with EGL, OpenCL, etc.
18198 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18199 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18200 This patch guards all the buffer exports handling (and dmabuf allocator) if
18201 the detected VA-API version is below 0.36.
18202 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18204 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18206 * ext/codecparsers:
18207 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18208 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18209 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18210 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18211 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18212 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18214 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18216 * gst/vaapi/gstvaapidecode.c:
18217 vaapidecode: unref video codec frame twice
18218 We get one reference when the frame is passed to decode_handle_frame()
18219 and create another one in gst_vaapi_decoder_push_frame().
18220 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18221 Here the frame is always released twice:
18222 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18223 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18224 In gst_vaapidecode_reset_full() both references to the frame must be
18226 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18227 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18229 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18231 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18232 libs: remove unused variables
18233 clang reports these unused variables. Let's get rid of them.
18234 This patch is a missing part of commit c82e5173
18235 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18237 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18239 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18240 decoder: mpeg4: remove an spurious comparison
18241 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18242 less than zero. Hence this pre-condition test is a no-op. This patch removes
18244 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18246 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18248 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18249 encoder: h264: casts slice_param->slice_type
18250 slice_type in slice_param is defined as (char *), but it is compared against a
18251 signed integer. clang complains about this comparison.
18252 This patch casts the variable.
18253 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18255 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18257 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18258 encoder: avoid GstVaapiCodedBuffer redefinition
18259 The symbol GstVaapiCodedBuffer is already defined in
18260 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18261 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18262 This patch removes that redefinition.
18263 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18265 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18267 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18268 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18269 libs: remove unused variables
18270 clang reports these unused variables. Let's get rid of them.
18271 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18273 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18275 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18276 encoder: mpeg2: use fabsf() instead of abs()
18277 The member value in frame_rate_tab is float, the result of the abs() function
18278 should be float too. But abs() only manages integers.
18279 This patch replaces abs() with fabsf() to handle correctly the possible floats
18281 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18283 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18285 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18286 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18287 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18288 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18289 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18290 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18291 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18292 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18293 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18295 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18300 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18304 Changing source code download links from https://gitorious to https://github
18305 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18306 -- README: Change the gstreamer-vaapi webpage link
18308 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18310 * ext/codecparsers:
18311 codecparsers: update to gst-vaapi-branch commit 1f792e4
18312 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18313 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18314 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18315 2b92a67: h264parse: reset the parser information when caps changes
18316 05eee86: codecparsers: Indent file
18317 e27a38b: codecparsers: Add READ_UE_MAX macro
18318 2036471: Constify some static arrays everywhere
18320 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18322 * gst/vaapi/gstvaapivideoconverter_glx.c:
18323 * gst/vaapi/gstvaapivideoconverter_x11.c:
18324 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18326 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18328 * gst/vaapi/gstvaapidecode.c:
18329 * gst/vaapi/gstvaapidecodebin.c:
18330 * gst/vaapi/gstvaapiencode_h264.c:
18331 * gst/vaapi/gstvaapiencode_jpeg.c:
18332 * gst/vaapi/gstvaapiencode_mpeg2.c:
18333 * gst/vaapi/gstvaapiencode_vp8.c:
18334 * gst/vaapi/gstvaapipluginbase.c:
18335 * gst/vaapi/gstvaapipluginutil.c:
18336 * gst/vaapi/gstvaapipluginutil.h:
18337 * gst/vaapi/gstvaapipostproc.c:
18338 * gst/vaapi/gstvaapisink.c:
18339 * gst/vaapi/gstvaapivideobuffer.c:
18340 * gst/vaapi/gstvaapivideobufferpool.c:
18341 * gst/vaapi/gstvaapivideocontext.c:
18342 * gst/vaapi/gstvaapivideocontext.h:
18343 * gst/vaapi/gstvaapivideoconverter_glx.h:
18344 * gst/vaapi/gstvaapivideoconverter_x11.h:
18345 * gst/vaapi/gstvaapivideomemory.h:
18346 * gst/vaapi/gstvaapivideometa_texture.c:
18347 Removal of gstreamer-1.0 support
18348 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18349 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18350 This patch removes all the pre-processor conditional code compilation guarded
18352 Thus, all the video converters were removed too.
18353 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18355 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18357 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18359 * gst-libs/gst/vaapi/gstcompat.h:
18360 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18361 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18362 * gst-libs/gst/vaapi/sysdeps.h:
18363 * gst/vaapi/gstcompat.h:
18364 * gst/vaapi/gstvaapi.c:
18365 * gst/vaapi/gstvaapidecode.c:
18366 * gst/vaapi/gstvaapidecodebin.c:
18367 * gst/vaapi/gstvaapiencode.c:
18368 * gst/vaapi/gstvaapiencode_h264.c:
18369 * gst/vaapi/gstvaapiencode_jpeg.c:
18370 * gst/vaapi/gstvaapiencode_mpeg2.c:
18371 * gst/vaapi/gstvaapiencode_vp8.c:
18372 * gst/vaapi/gstvaapiparse.c:
18373 * gst/vaapi/gstvaapipluginbase.c:
18374 * gst/vaapi/gstvaapipluginutil.c:
18375 * gst/vaapi/gstvaapipostproc.c:
18376 * gst/vaapi/gstvaapisink.c:
18377 * gst/vaapi/gstvaapiuploader.c:
18378 * gst/vaapi/gstvaapivideobuffer.c:
18379 * gst/vaapi/gstvaapivideobufferpool.c:
18380 * gst/vaapi/gstvaapivideocontext.c:
18381 * gst/vaapi/gstvaapivideoconverter_glx.c:
18382 * gst/vaapi/gstvaapivideoconverter_x11.c:
18383 * gst/vaapi/gstvaapivideomemory.c:
18384 * gst/vaapi/gstvaapivideometa.c:
18385 * gst/vaapi/gstvaapivideometa_texture.c:
18387 update and move gstcompat.h
18388 The purpose of gstcompat.h is to couple the API differences among
18389 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18390 in this compatibility layer shall be removed.
18391 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18392 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18393 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18394 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18395 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18396 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18397 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18398 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18400 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18403 * gst/vaapi/Makefile.am:
18404 autotools: remove gstreamer-1.0 support
18405 This patch only removes the support of gstreamer-1.0 in the autotools
18406 scripts. No other files are touched.
18407 In the automake file all the converters were deprecated.
18408 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18409 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18410 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18412 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18417 Remove the gstreamer-videoutils submodule
18419 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18422 * gst-libs/gst/Makefile.am:
18423 * gst-libs/gst/vaapi/Makefile.am:
18424 * gst-libs/gst/video/Makefile.am:
18425 * gst/vaapi/Makefile.am:
18426 * tests/Makefile.am:
18427 Remove libgstvaapi-videoutils.so
18428 This library was intended to add the base classes for video decoders which
18429 where not included in gstreamer-0.10.
18430 Since the support of gstreamer-0.10 is deprecated those classes are not
18431 required, thus the whole library is removed.
18432 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18433 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18434 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18436 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18439 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18440 * gst-libs/gst/vaapi/gstvaapiutils.c:
18441 * tests/test-subpicture.c:
18442 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18443 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18444 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18445 deprecated these guards are not required.
18446 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18447 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18448 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18450 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18452 * gst-libs/gst/vaapi/gstcompat.h:
18453 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18454 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18455 * gst-libs/gst/vaapi/gstvaapiimage.c:
18456 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18457 * gst-libs/gst/vaapi/video-format.c:
18458 * gst-libs/gst/vaapi/video-format.h:
18459 * gst/vaapi/gstvaapi.c:
18460 * gst/vaapi/gstvaapidecode.c:
18461 * gst/vaapi/gstvaapidecodebin.c:
18462 * gst/vaapi/gstvaapidownload.c:
18463 * gst/vaapi/gstvaapidownload.h:
18464 * gst/vaapi/gstvaapiencode.c:
18465 * gst/vaapi/gstvaapiencode_h264.c:
18466 * gst/vaapi/gstvaapiencode_jpeg.c:
18467 * gst/vaapi/gstvaapiencode_mpeg2.c:
18468 * gst/vaapi/gstvaapiencode_vp8.c:
18469 * gst/vaapi/gstvaapiparse.c:
18470 * gst/vaapi/gstvaapipluginbase.c:
18471 * gst/vaapi/gstvaapipluginbase.h:
18472 * gst/vaapi/gstvaapipluginutil.c:
18473 * gst/vaapi/gstvaapipluginutil.h:
18474 * gst/vaapi/gstvaapipostproc.c:
18475 * gst/vaapi/gstvaapisink.c:
18476 * gst/vaapi/gstvaapiupload.c:
18477 * gst/vaapi/gstvaapiupload.h:
18478 * gst/vaapi/gstvaapiuploader.c:
18479 * gst/vaapi/gstvaapivideobuffer.c:
18480 * gst/vaapi/gstvaapivideoconverter_glx.c:
18481 * gst/vaapi/gstvaapivideoconverter_x11.c:
18482 * gst/vaapi/gstvaapivideometa.c:
18483 * gst/vaapi/gstvaapivideometa.h:
18484 * tests/test-filter.c:
18485 * tests/test-subpicture.c:
18486 Removal of gstreamer-0.10 support
18487 This patch removes all the pre-processor conditional code compilation guarded
18488 for gstreamer-0.10.
18489 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18490 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18491 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18493 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18496 * debian.upstream/control.in:
18497 * gst-libs/gst/video/Makefile.am:
18498 * gst/vaapi/Makefile.am:
18499 autotools: remove gstreamer-0.10 support
18500 This patch only removes the support of gstreamer-0.10 in the autotools
18501 scripts. No other files are touched.
18502 The configuration parameter --gstreamer-api was deleted since now it is always
18504 The verification of vmethod query in GstBaseSinkClass was removed since it was
18505 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18507 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18509 The automake files were changed accordingly.
18510 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18511 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18512 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18513 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18515 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18517 * gst/vaapi/gstvaapidecode.c:
18518 vaapidecode: add drain() vmethod
18519 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18520 class. This patch implements this new method.
18521 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18522 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18523 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18525 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18527 * gst/vaapi/gstvaapidecode.c:
18528 vaapidecode: remove vmethod reset()
18529 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18530 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18531 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18532 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18533 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18535 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18537 * gst/vaapi/gstvaapidecode.c:
18538 vaapidecode: handle flush() vmethod
18539 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18540 and flush() was added.
18541 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18542 superior. Otherwise, reset() is set.
18543 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18544 was renamed to gst_vaapidecode_internal_flush().
18545 2) The new vmethod flush() always do a hard full reset.
18546 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18547 gather all collected data with gst_video_decoder_have_frame()
18548 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18549 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18550 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18552 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18554 * gst/vaapi/gstvaapidecode.c:
18555 vaapidecode: call the correct query function
18556 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18557 a bug was introduced: when calling the parent's query function of the
18558 src pad, the one of the sink pad is called instead. This patch fixes
18560 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18562 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18565 gitmodules: Use https:// url instead of git:// for submodules.
18566 Gitorious is failing to clone repositories over git:// url.
18568 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18570 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18571 vaapidisplay: mark X11 display as compatible with EGL
18572 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18573 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18574 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18575 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18577 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18579 * gst/vaapi/gstvaapidecode.c:
18580 vaapidecode: Don't crash if a buffer outlives the decoder
18581 Sometimes, for example, when switching video streams but keeping
18582 the same sink, the surface will be released after the decoder is
18583 stopped and replaced. This caused a crash because the release
18584 callback was called on an invalid pointer.
18585 The patch adding an additional reference to the decoder object in the buffer.
18586 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18587 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18588 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18590 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18592 * gst/vaapi/gstvaapidecode.c:
18593 vaapidecode: clean-ups (indentation, drop unused variables)
18595 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18597 * gst/vaapi/gstvaapidecode.c:
18598 vaapidecode: use the query virtual methods in 1.4
18599 GstVideoDecoder, the base class of vaapidecode, added support for
18600 pad queries as virtual methods. This patch enables the use of that
18601 support, while keeping support for lower versions of gstreamer.
18602 This patch is important because GstVideoDecoder takes care of other
18603 queries that might be important in the pipeline managing.
18604 v2: 1) rebase to current master
18605 2) fix indentation with gst-indent
18606 3) simplify the patch layout
18607 4) fix the context query
18608 5) initialise the filter to NULL
18609 6) improve the query log message for gst-1.2
18610 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18612 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18614 * gst/vaapi/gstvaapipostproc.c:
18615 * gst/vaapi/gstvaapipostproc.h:
18616 vaapipostproc: always activate buffer pool
18617 The vaapipostproc has a proxy flag to know if the the buffer pool is
18618 already active. But this fails in some situations where it is needed
18619 to renegotiate the buffer pool.
18620 This patch removes that flag so the renegotiation is done whenever is
18622 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18624 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18626 * gst/vaapi/gstvaapisink.c:
18627 vaapisink: fix minor memory leak in debug mode.
18628 The gst_video_colorimetry_to_string() function returns a newly created
18629 string that represents the GstVideoColorimetry value. So, that needs
18630 to be released after usage, in e.g. GST_DEBUG().
18632 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18634 * gst/vaapi/gstvaapidecodebin.h:
18635 vaapidecodebin: Avoid usage of "__" prefix in macro names
18636 Avoiding "__" prefix usage in Header File Guards as per
18637 C standard recommendation.
18639 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18641 * gst/vaapi/gstvaapi.c:
18642 plugins: Disable vaapidecodebin for GStreamer < 1.4
18643 There are autoplugging issues in GStreamer-1.2.
18644 Lets disable vaapidecodebin untill we get some workarounds for this.
18646 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18648 * gst/vaapi/Makefile.am:
18649 * gst/vaapi/gstvaapi.c:
18650 * gst/vaapi/gstvaapidecodebin.c:
18651 * gst/vaapi/gstvaapidecodebin.h:
18652 plugins: Add a vaapidecodebin element
18653 Add a "vaapidecodebin" element to vaapi plugins.
18654 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18655 The Reasons for implementing a new bin element:
18656 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18657 with out any dependency to upstream gstreamer.
18658 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18659 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18660 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18661 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18662 -- Help to maintain a single thread implementation in vaapidecode.
18663 This will result a dead-lock free vaapidecode in most of the cases.
18664 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18665 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18667 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18669 * gst/vaapi/gstvaapidecode.c:
18670 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18672 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18674 * gst/vaapi/gstvaapidecode.c:
18675 * gst/vaapi/gstvaapidecode.h:
18676 vaapidecode: Switch back to Single thread implementation
18677 Because the decoder uses the thread from handle_frame() to decode a frame,
18678 the src pad task creates an unsolveable AB-BA deadlock between
18679 handle_frame() waiting for a free surface and decode_loop() pushing
18680 decoded frames out.
18681 Instead, have handle_frame() take responsibility for pushing surfaces,
18682 and remove the deadlock completely. If you need a separate thread
18683 downstream, you can insert a queue between vaapidecode and its downstream
18685 Another justification for the single thread implementation is,
18686 there are two many point of locking in gstreamer-vaapi's current
18687 implementation which can lead to deadlocks.
18688 https://bugzilla.gnome.org/show_bug.cgi?id=742605
18689 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18690 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18691 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18693 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18695 * gst/vaapi/gstvaapipluginbase.c:
18696 plugins: fix detection of upstream v4l2src element.
18697 Improve check for upstream element that requires DMABUF buffer pool,
18698 e.g. v4l2src element. In particular, make sure to traverse through
18699 any additional capsfilter for instance.
18700 Note: the traversal to the top-most upstream element could be made
18701 more generic, but we are insofar only interested in supporting pipes
18702 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18703 specification for a desired video camera format, or resolution.
18705 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18707 * gst/vaapi/gstvaapivideomemory.c:
18708 plugins: fix allocation of DMABUF memory.
18709 The dmabuf allocator would close the DMABUF handle passed in the init
18710 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18711 to avoid a double close, ultimately in the underlying driver that owns
18714 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18716 * gst/vaapi/gstvaapidecode.c:
18717 vaapidecode: keep src caps and output state in sync
18718 vaapidecode keeps an output state that use the format
18719 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18720 for a correct negotiation.
18721 I don't see the rational behind this decoupling, it looks like
18722 unnecessary complexity. This patch simplify this logic keeping
18723 in sync the output state and the src caps.
18724 This patch improves the readability of the function
18725 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18726 the patch validates if the buffer pool has the configuration for
18727 the GL texture upload meta, in order to set the caps feature
18728 meta:GLTextureUpload. Otherwise, the I420 format is set back.
18729 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18730 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18731 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18733 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18735 * gst/vaapi/gstvaapidecode.c:
18736 vaapidecode: upload meta only if feature and allocation
18737 When vaapidecode finishes the decoding of a frame and pushes it,
18738 if, in the decide_allocation() method, it is determined if the
18739 next element supports the GL texture upload meta feature, the
18740 decoder adds the buffer's meta.
18741 Nonetheless, in the same spirit of the commit 71d3ce4d, the
18742 determination if the next element supports the GL texture upload
18743 meta needs to check both the preferred caps feature *and* if the
18744 allocation query request the API type.
18745 This patch, first removes the unused variable need_pool, and
18746 determines the attribute has_texture_upload_meta using the
18747 preferred caps feature *and* the allocation query.
18748 Also, the feature passed to GstVaapPluginBase is not longer
18749 determined by has_texture_upload_meta, but by the computed
18751 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18752 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18753 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18755 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18757 * gst/vaapi/gstvaapidecode.c:
18758 * gst/vaapi/gstvaapidecode.h:
18759 * gst/vaapi/gstvaapipluginutil.c:
18760 * gst/vaapi/gstvaapipluginutil.h:
18761 vaapidecode: delayed src caps negotiation
18762 Currently the src caps are set immediately after the sink caps are set, but in
18763 that moment the pipeline might not fully constructed and the video sink has
18764 not negotiated its supported caps and features. As a consequence, in many cases
18765 of playback, the least optimized caps feature is forced. This is partially the
18766 responsible of bug #744039.
18767 Also, vaapidecode doesn't attend the reconfigure events from downstream,
18768 which is a problem too, since the video sink can be changed with different
18770 This patch delays the src caps, setting them until the first frame arrives to
18771 the decoder, assuming until that very moment the whole pipeline is already
18772 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18773 as a consequence of a reconfiguration event from downstream.
18774 A key part of this patch is the new GstVaapiCapsFeature
18775 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18776 doesn't have a peer yet. Also, for a better report of the caps allowed
18777 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18778 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18779 v3: move the input_state unref to close(), since videodecoder resets at
18780 some events such as navigation.
18781 v4: a) the state_changed() callback replaces the input_state if the media
18782 changed, so this case is also handled.
18783 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18784 always the input_state, the parameter were removed.
18785 c) there were a lot of repeated code handling the input_state, so I
18786 refactored it with the function gst_vaapi_decode_input_state_replace().
18787 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18788 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18789 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18791 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18793 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18794 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18795 encoder: h264: add support for more than 2 views
18796 Add support for H.264 MVC Multiview High profile encoding with
18797 more than 2 views. All views within the same accesss unit are
18798 provided in increasing order of view order index (VOIdx).
18799 Upto 10 view are supported for now.
18800 A new property "view-ids" has been provided for the plugins to
18801 set the view ids (which is an array of guint values) to be used
18803 https://bugzilla.gnome.org/show_bug.cgi?id=732453
18805 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18807 * gst/vaapi/gstvaapipluginbase.c:
18808 plugins: upload meta only if feature and allocation
18809 Working on bug #743687, I realized that vaapidecode always adds to its buffer
18810 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18811 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18812 Nevertheless, there are occasions where the query has the API type, but the
18813 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18814 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18815 buffer pool configuration, and adds its buffer's meta to each output buffer,
18816 even if the negotiated caps feature is memory:SystemMemory with I420 color
18818 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18819 that relates caps <-> GL upload method. If it receives a buffer with color
18820 format I420, it assumes that it doesn't have a texture upload meta, because
18821 only those with RGB color format has it. Our buffers, with I420 format, say
18822 that they have the upload meta too. In that case the mapped method is a dummy
18823 one which does nothing. I reported this issue in bug #744039 (the patch,
18824 obviously, was rejected).
18825 This patch workarounds the problem: the buffer pool's configuration option
18826 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18827 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18828 caps feature is meta:GstVideoGLTextureUploadMeta.
18829 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18830 in all they seem to work correctly.
18831 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18832 [adapted to fit current EGL changes]
18833 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18835 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18837 * gst-libs/gst/vaapi/gstvaapitexture.c:
18838 * gst-libs/gst/vaapi/gstvaapitexture.h:
18839 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18840 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18841 * gst/vaapi/gstvaapivideometa_texture.c:
18842 plugins: add support for GstVideoGLTextureOrientation.
18843 Add support for GstVideoGLTextureOrientation modes. In particular,
18844 add orientation flags to the GstVaapiTexture wrapper and the GLX
18845 implementations. Default mode is that texture memory is laid out
18846 with top lines first, left row first. Flags indicate whether the
18847 X or Y axis need to be inverted.
18849 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18851 * gst/vaapi/gstvaapidecode.c:
18852 * gst/vaapi/gstvaapipluginbase.c:
18853 * gst/vaapi/gstvaapipluginutil.c:
18854 * gst/vaapi/gstvaapipluginutil.h:
18855 * gst/vaapi/gstvaapipostproc.c:
18856 * gst/vaapi/gstvaapivideometa_texture.c:
18857 plugins: add support for BGRA textures.
18858 Some frameworks (EFL) expect BGRA textures for storage. However,
18859 adding support for that broadly into GStreamer framework implies
18860 two kinds of hacks: (i) libgstgl helpers currently do not support
18861 BGRA textures correctly, (ii) we need to better parse downstream
18862 suggested caps and intersect them with what the VA plugin elements
18863 can offer to them for GL texturing.
18865 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18867 * gst/vaapi/gstvaapipluginutil.c:
18868 plugins: fix support for Wayland/EGL running alongside X11.
18869 When multiple display servers are available, the glimagesink element
18870 (from GStreamer 1.4) may not be able to derive a global display in
18871 Wayland. Rather, a "window"-specific display is created. In this case,
18872 the GstGLDisplay handle available through GstGLContext is invalid.
18873 So, try to improve heuristics for display server characterisation in
18874 those particular situations.
18876 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18879 * gst/vaapi/Makefile.am:
18880 * gst/vaapi/gstvaapidecode.c:
18881 * gst/vaapi/gstvaapipluginbase.c:
18882 * gst/vaapi/gstvaapipluginutil.c:
18883 * gst/vaapi/gstvaapivideobufferpool.c:
18884 * gst/vaapi/gstvaapivideometa_texture.c:
18885 plugins: add initial support for EGL.
18886 Add initial support for EGL through GstVideoGLTextureUploadMeta.
18887 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18888 downstream supplied GstGLContext configuration, i.e. use its native
18889 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18890 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18892 https://bugzilla.gnome.org/show_bug.cgi?id=741079
18894 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18896 * gst/vaapi/gstvaapivideometa_texture.c:
18897 plugins: track video texture size changes.
18898 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18899 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18900 now update the texture size from the GstVideoMeta, if any, or reset
18901 to some defaults otherwise.
18903 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18905 * gst/vaapi/gstvaapipluginbase.c:
18906 * gst/vaapi/gstvaapipluginbase.h:
18907 * gst/vaapi/gstvaapipluginutil.c:
18908 plugins: ensure VA display matches GL context expectations.
18909 If a GstGLContext is supplied by the downstream element, then make
18910 sure that the VA plugin element gets a compatible display to what
18911 is requested by the GL context. e.g. re-allocate a VA/GLX display
18912 when a GLX context is provided by the downstream element.
18914 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18917 * gst/vaapi/Makefile.am:
18918 * gst/vaapi/gstvaapipluginbase.c:
18919 * gst/vaapi/gstvaapipluginbase.h:
18920 plugins: record downstream GstGLContext.
18921 Record GL context supplied by downstream elements. This can be useful,
18922 and further needed, to enforce run-time check that the GL context is
18923 compatible for use by libgstvaapi. e.g. check that we don't create a
18924 VA/GLX display for EGL/X11 contexts.
18925 https://bugzilla.gnome.org/show_bug.cgi?id=725643
18926 Original-path-by: Matthew Waters <ystreet00@gmail.com>
18928 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18930 * tests/Makefile.am:
18933 Add initial support for EGL to tests. The new EGL backend can be selected
18934 through the --egl command line option. The OpenGL|ES version can further
18935 be selected with the --gles-version command line option, where the default
18936 of 0 means "desktop" OpenGL.
18938 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18940 * gst-libs/gst/vaapi/Makefile.am:
18941 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18942 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18943 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18944 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18945 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18946 egl: add windowing support.
18947 This provides for some basic EGL window abstraction.
18949 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18951 * gst-libs/gst/vaapi/Makefile.am:
18952 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18953 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
18954 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
18955 egl: add texture abstraction.
18956 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
18957 or import a foreign allocated one, while still allowing updates from a
18960 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18962 * gst-libs/gst/vaapi/Makefile.am:
18963 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
18964 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
18965 egl: allow for EGLImage imports into VA Surfaces.
18966 Add helpers to import EGLImage objects into VA surfaces. There are
18967 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
18968 which allows for implicit conversion from EGLImage to a VA surface
18969 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
18970 which exactly wraps the source EGLImage, typically in RGBA format
18971 with linear storage.
18972 Note: in case of (i), the EGLImage can be disposed right after the
18973 VA surface creation call, unlike in (ii) where the user shall ensure
18974 that the EGLImage is live until the associated VA surface is no longer
18976 https://bugzilla.gnome.org/show_bug.cgi?id=743847
18978 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18981 * gst-libs/gst/vaapi/Makefile.am:
18982 * gst-libs/gst/vaapi/egl_compat.h:
18983 * gst-libs/gst/vaapi/egl_vtable.h:
18984 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18985 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18986 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18987 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
18988 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
18989 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18990 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18991 * gst-libs/gst/vaapi/ogl_compat.h:
18992 Add initial support for EGL.
18993 Add initial support for EGL to libgstvaapi core library. The target
18994 display server and the desired OpenGL API can be programmatically
18995 selected at run-time.
18996 A comprehensive set of EGL utilities are provided to support those
18997 dynamic selection needs, but also most importantly to ensure that
18998 the GL command stream is executed from within a single thread.
18999 https://bugzilla.gnome.org/show_bug.cgi?id=743846
19001 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19003 * gst-libs/gst/vaapi/gstvaapivalue.c:
19004 libs: initialize GValues in a thread-safe manner.
19006 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19008 * gst-libs/gst/vaapi/gstvaapivalue.c:
19009 libs: re-indent all GValue related source code.
19011 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19013 * gst/vaapi/gstvaapidecode.c:
19014 vaapidecode: partially revert 0777f35.
19015 Reset the VA decoder after updating the base plugin caps, and most
19016 importantly, after GstVideoDecoder negotiation. The reason behind
19017 this is that the negotiation could trigger a last decide_allocation()
19018 where we could actually derive a new GstVaapiDisplay to use from the
19019 downstream element. e.g. GLX backend.
19021 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19023 * gst/vaapi/gstvaapidecode.c:
19024 vaapidecode: Caps query should return the list of all supported caps.
19025 Query caps filtering should be always done on top of allowed caps instead
19026 of existing fixed caps on a particular pad.
19027 This fixes the mvc stream decoding when there is a base view(high profile)
19028 and non-base view(stereo-high profile).
19030 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19032 * gst/vaapi/gstvaapidecode.c:
19033 vaapidecode: intersect filter from query caps
19034 According to documentation[1] when receiving a GST_QUERY_CAPS
19035 the return value should be all formats that this elements supports,
19036 taking into account limitations of peer elements further downstream
19037 or upstream, sorted by order of preference, highest preference first.
19038 This patch add those limitations intersecting with the received
19039 filter in the query. Also takes into account the already negotiated
19040 caps. Also adds the processing of the query on the SRC pad.
19041 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
19042 https://bugzilla.gnome.org/show_bug.cgi?id=744406
19044 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19046 * gst-libs/gst/vaapi/Makefile.am:
19047 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19048 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19049 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19050 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19051 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19052 * gst/vaapi/gstvaapivideomemory.c:
19053 Fix compiler warnings
19054 This patch fixes some warnings that gcc 4.9 reports.
19055 https://bugzilla.gnome.org/show_bug.cgi?id=744411
19057 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19059 * gst/vaapi/gstvaapidecode.c:
19060 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
19061 Hence the function name is shown in the gst-inspect-1.0 information
19062 rather than the memory address.
19063 https://bugzilla.gnome.org/show_bug.cgi?id=744330
19065 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19067 * gst/vaapi/gstvaapidecode.c:
19068 vaapidecode: log flow error name
19069 https://bugzilla.gnome.org/show_bug.cgi?id=744387
19071 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19073 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19074 VC1: decoder: Ignore VC1 user BDU's
19075 Don't return error if the processed BDU is a user one, just ignore them.
19076 https://bugzilla.gnome.org/show_bug.cgi?id=741237
19077 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19079 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
19081 * gst/vaapi/gstvaapidecode.c:
19082 * gst/vaapi/gstvaapipluginbase.c:
19083 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
19084 This is required in GStreamer, elements should never return
19085 GST_FLOW_ERROR without posting an ERROR message on the bus.
19086 https://bugzilla.gnome.org/show_bug.cgi?id=744620
19088 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19090 * gst/vaapi/Makefile.am:
19091 * gst/vaapi/gstvaapi.c:
19092 * gst/vaapi/gstvaapiencode_vp8.c:
19093 * gst/vaapi/gstvaapiencode_vp8.h:
19094 plugins: Add VP8 Encoder
19096 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19098 * gst-libs/gst/vaapi/Makefile.am:
19099 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19100 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19101 Add VP8 Encoder to core libgstvaapi.
19103 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19106 configure: Add Check for VP8 Encoding API
19108 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19110 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19111 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19112 Added rounding control handling for VC1 simple and Main profile
19113 based on VC1 standard spec: section 8.3.7
19114 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19115 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19116 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19118 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19120 * gst/vaapi/Makefile.am:
19121 build: fix make dist when certain conditionals not met.
19122 Fix typo which was preventing the inclusion of jpeg encoder
19123 source files from make dist (when there is no jpeg encoder
19124 API support in libva).
19126 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19128 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19129 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19130 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19131 use native YUV420 format (which is i420) as default.
19133 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19135 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19136 encoder: Only support YUV420 native format as input for now
19137 Practically we should be able to support more formats, for eg:
19138 JPEG Encoder can support YUV422, RGBA and all.
19139 But this is causing more issues which need proper fix here and there.
19141 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19143 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19144 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19145 * gst/vaapi/gstvaapidecode.c:
19146 vaapidecode: Check the condition after taking the lock
19147 Otherwise the condition could become true before the lock
19148 is taken and the g_cond_signal() could be called
19149 before the g_cond_wait(), so the g_cond_wait() is never
19151 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19153 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19155 * gst/vaapi/Makefile.am:
19156 * gst/vaapi/gstvaapi.c:
19157 * gst/vaapi/gstvaapiencode_jpeg.c:
19158 * gst/vaapi/gstvaapiencode_jpeg.h:
19159 plugins: Add JPEG encoder element
19161 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19163 * gst-libs/gst/vaapi/gstvaapicontext.c:
19164 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19166 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19168 * gst-libs/gst/vaapi/gstvaapicontext.c:
19169 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19170 Don't add the VAConfigAttribRateControl to the attribute list using
19171 for the vaCreateConfig if it is not supported by the driver.
19173 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19175 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19176 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19178 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19180 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19181 gstvaapiencoder: Fix crash when handling rate control mask
19182 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19183 might not be supporting any kind of rate control mechanisms.
19186 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19188 * gst-libs/gst/vaapi/Makefile.am:
19189 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19190 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19191 encoder: Add JPEG Encoder
19193 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19195 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19196 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19197 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19199 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19201 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19202 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19203 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19204 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19205 Encode: Add support for Picture level Entrypoint
19206 This is useful for JPEG encoding which is utilizing picture level
19207 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19209 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19212 configure: Add Check for JPEG encoding API
19214 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19219 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19222 Bump version for development.
19224 === release 0.5.10 ===
19226 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19231 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19236 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19238 * gst/vaapi/gstvaapivideometa_texture.c:
19239 Fix compilation error if there is no GL/gl.h header file installed
19241 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19243 * gst/vaapi/gstvaapivideomemory.h:
19244 plugins: drop leftover declaration.
19245 GstVaapiVideoMemory quark is not needed any more, and the actual
19246 implementation was already removed bfore the merge. i.e. this is
19247 an oversight for a hunk that was not meant to be pushed.
19249 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19251 * gst/vaapi/gstvaapipluginbase.c:
19252 * gst/vaapi/gstvaapivideobufferpool.c:
19253 * gst/vaapi/gstvaapivideobufferpool.h:
19254 * gst/vaapi/gstvaapivideomemory.c:
19255 * gst/vaapi/gstvaapivideomemory.h:
19256 plugins: add support for dma_buf exports (v4l2src).
19257 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19258 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19259 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19260 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19261 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19262 with --without-libv4l2.
19263 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19265 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19268 * gst/vaapi/Makefile.am:
19269 * gst/vaapi/gstvaapipluginbase.c:
19270 plugins: add support for dma_buf imports.
19271 Allow imports of v4l2 buffers into VA surfaces for further operation
19272 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19273 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19274 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19275 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19277 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19279 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19280 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19281 surface: add support for GEM buffer imports.
19282 Add support for GEM buffer imports. This is useful for VA/EGL interop
19283 with legacy Mesa implementations, or when it is desired or required to
19284 support outbound textures for instance.
19285 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19287 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19289 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19290 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19291 surface: add support for dma_buf imports.
19292 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19293 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19294 resulting VA surface owns the supplied buffer handle.
19295 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19297 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19299 * gst-libs/gst/vaapi/gstvaapisurface.c:
19300 * gst-libs/gst/vaapi/gstvaapisurface.h:
19301 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19302 surface: add initial support for foreign buffer imports.
19303 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19304 create a VA surface from an external buffer provided throug the
19305 new GstVaapiBufferProxy object.
19307 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19309 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19310 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19311 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19312 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19313 surface: add support for GEM buffer exports.
19314 Add support for GEM buffer exports. This will only work with VA drivers
19315 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19316 to support interop with EGL and the "Desktop" GL specification. Indeed,
19317 the EXT_image_dma_buf_import extension is not going to be supported in
19318 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19320 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19321 in Desktop OpenGL context.
19322 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19324 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19326 * gst-libs/gst/vaapi/Makefile.am:
19327 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19328 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19329 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19330 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19331 surface: add support for dma_buf exports.
19332 Use the new VA buffer export APIs to allow for a VA surface to be
19333 exposed as a plain PRIME fd. This is in view to simplifying interop
19334 with EGL or OpenCL for instance.
19335 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19337 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19339 * gst-libs/gst/vaapi/Makefile.am:
19340 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19341 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19342 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19343 Add abstraction for exported VA buffers.
19344 The VA buffer export APIs work for a particular lifetime starting from
19345 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19346 it could be much more convenient to support implicit releases by simply
19347 having a refcount reaching zero.
19348 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19350 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19352 * gst-libs/gst/vaapi/Makefile.am:
19353 Add missing header file to Makefile
19354 Add gstvaapitexture_glx.h to Makefile.am
19356 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19358 * gst-libs/gst/vaapi/gstvaapicontext.c:
19359 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19360 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19361 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19362 * gst/vaapi/gstvaapipostproc.c:
19363 * gst/vaapi/gstvaapiuploader.c:
19364 * gst/vaapi/gstvaapivideobufferpool.c:
19365 * gst/vaapi/gstvaapivideomemory.c:
19366 * gst/vaapi/gstvaapivideomemory.h:
19367 * tests/test-surfaces.c:
19368 videopool: add optional flags for surface pool allocation.
19369 Reword surface pool allocation helpers so that to allow for a simple
19370 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19371 somewhat more elaborated/flexible form with optional allocation flags
19372 and precise GstVideoInfo specification.
19373 This is an API/ABI change, and SONAME version needs to be bumped.
19375 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19377 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19378 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19379 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19380 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19381 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19382 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19383 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19384 videopool: re-indent all GstVaapiVideoPool related source code.
19386 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19388 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19389 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19390 window: add toplevel display indirection for visualid and colormap.
19391 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19392 the best suitable window visual id and colormap. This is an indirection in
19393 view to supporting EGL and custom/generic replacements.
19395 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19397 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19398 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19399 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19400 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19401 window: add toplevel API to determine the colormap.
19402 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19403 currently active colormap bound to the supplied window, or actually
19404 create it if it does not already exist yet.
19406 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19408 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19409 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19410 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19411 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19412 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19413 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19414 window: add toplevel API to determine a visual id.
19415 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19416 the best suitable visual id for the supplied window. While doing so,
19417 also simplify the process by which an X11 window is created with a
19418 desired Visual, i.e. now use a visual id instead of a Visual object.
19420 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19422 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19423 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19424 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19425 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19426 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19427 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19428 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19429 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19430 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19431 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19432 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19433 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19434 window: add generic helper to create windows.
19435 Add a new generic helper function gst_vaapi_window_new() to create
19436 a window without having the caller to check for the display type
19437 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19438 to create windows, and the actual backend implementation fills it in.
19439 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19440 This is a simplification in view to supporting EGL.
19442 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19444 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19445 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19446 * gst-libs/gst/vaapi/gstvaapitexture.c:
19447 * gst/vaapi/gstvaapivideometa_texture.c:
19448 display: add utility function to check for OpenGL rendering.
19449 Add gst_vaapi_display_has_opengl() helper function to help determining
19450 whether the display can support OpenGL context to be bound to it, i.e.
19451 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19453 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19455 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19456 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19457 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19458 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19459 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19460 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19461 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19462 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19463 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19464 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19465 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19466 * gst/vaapi/gstvaapipluginutil.c:
19467 * gst/vaapi/gstvaapivideobuffer.c:
19468 * gst/vaapi/gstvaapivideometa_texture.c:
19469 display: refine the meaning of display type.
19470 Make gst_vaapi_display_get_display_type() return the actual VA display
19471 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19472 return the type of the GstVaapiDisplay instance. The former is used to
19473 identify the display server onto which the application is running, and
19474 the latter to identify the original object class.
19476 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19478 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19479 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19480 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19481 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19482 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19483 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19484 display: cosmetics (helper macros, new internal API names).
19485 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19486 Rename a few others used internally for improved consistency.
19488 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19490 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19491 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19492 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19493 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19494 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19495 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19496 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19497 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19498 display: record native display object.
19499 Record the underlying native display instance into the toplevel
19500 GstVaapiDisplay object. This is useful for fast lookups to the
19501 underlying native display, e.g. for creating an EGL display.
19503 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19505 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19506 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19507 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19508 display: use a recursive mutex for the display cache.
19509 Use a recursive mutex for the display cache so that a 3rdparty display
19510 object could be initialized during the initialization of the parent
19513 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19515 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19516 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19517 * gst-libs/gst/vaapi/gstvaapitexture.c:
19518 * gst-libs/gst/vaapi/gstvaapitexture.h:
19519 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19520 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19521 texture: add generic helper to create textures.
19522 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19523 and gst_vaapi_texture_new() to create a texture without having
19524 the caller to uselessly check for the display type himself. i.e.
19525 internally, there is now a GstVaapiDisplayClass hook to create
19526 textures, and the actual backend implementation fills it in.
19527 This is a simplification in view to supporting EGL.
19529 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19531 * gst-libs/gst/vaapi/Makefile.am:
19532 * gst-libs/gst/vaapi/gstvaapitexture.c:
19533 * gst-libs/gst/vaapi/gstvaapitexture.h:
19534 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19535 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
19536 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19537 * gst/vaapi/gstvaapivideoconverter_glx.c:
19538 * gst/vaapi/gstvaapivideometa_texture.c:
19539 * tests/test-textures.c:
19540 texture: move to core libgstvaapi base library.
19541 GstVaapiTexture is a generic abstraction that could be moved to the
19542 core libgstvaapi library. While doing this, no extra dependency needs
19543 to be added. This means that a GstVaapitextureClass is now available
19544 for any specific code that needs to be added, e.g. creation of the
19545 underlying GL texture objects, or backend dependent ways to upload
19546 a surface to the texture object.
19547 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19549 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19551 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19554 * gst-libs/gst/vaapi/Makefile.am:
19555 * gst-libs/gst/vaapi/gstvaapicompat.h:
19556 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19557 * gst-libs/gst/vaapi/gstvaapitexture.c:
19558 texture: drop support for VA/GLX interfaces.
19559 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19560 ease of use, but they had other caveats to deal with. It's now better
19561 to move on to legacy mode, whereby VA/GLX interop is two be provided
19562 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19563 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19565 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19567 * gst-libs/gst/vaapi/gstvaapitexture.c:
19568 * gst-libs/gst/vaapi/gstvaapitexture.h:
19569 * gst/vaapi/gstvaapivideoconverter_glx.c:
19570 * gst/vaapi/gstvaapivideometa_texture.c:
19571 * tests/test-textures.c:
19572 texture: add support for cropping rectangle during transfer.
19573 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19574 argument that would be used during transfer for cropping the source
19575 surface to the desired dimensions.
19576 Note: from a user point-of-view, he should create the GstVaapiTexture
19577 object with the cropped size. That's the default behaviour in software
19578 decoding pipelines that we need to cope with.
19579 This is an API/ABI change, and SONAME version needs to be bumped.
19580 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19582 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19584 * gst-libs/gst/vaapi/gstvaapitexture.c:
19585 * gst-libs/gst/vaapi/gstvaapitexture.h:
19586 texture: re-indent all GstVaapiTexture related source code.
19588 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19590 * gst-libs/gst/vaapi/gstvaapisurface.c:
19591 * gst-libs/gst/vaapi/gstvaapisurface.h:
19592 surface: add more fine-grained allocation helper.
19593 Add new gst_vaapi_surface_new_full() helper function that allocates
19594 VA surface from a GstVideoInfo template in argument. Additional flags
19595 may include ways to
19596 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19597 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19598 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19600 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19602 * gst-libs/gst/vaapi/gstvaapisurface.c:
19603 * gst-libs/gst/vaapi/gstvaapisurface.h:
19604 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19605 surface: re-indent all GstVaapiSurface related source code.
19607 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19609 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19610 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19611 surfaceproxy: add helper to create a wrapped surface object.
19612 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19613 a proxy. The main use case for that is to convey additional information
19614 at the proxy level that would not be suitable to the plain surface.
19616 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19618 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19619 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19620 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19621 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19623 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19626 libs: bump library major version.
19628 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19630 * gst-libs/gst/vaapi/gstvaapitypes.h:
19631 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19632 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19633 a non-zero and invalid id. This is useful to have a value
19634 that is still invalid for cases where zero could actually
19637 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19639 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19640 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19641 libs: expose GstVaapiMiniObject APIs to all backends.
19642 Make it possible to have all libgstvaapi backends (libs) access to a
19643 common GstVaapiMiniObject API and implementation. This is a minor step
19644 towards full exposure when needed, but restrict it to libgstvaapi at
19647 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19649 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19650 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19651 * gst-libs/gst/vaapi/gstvaapiobject.c:
19652 * gst-libs/gst/vaapi/gstvaapiobject.h:
19653 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19654 libs: re-indent all GstVaapiObject related source code.
19655 Re-indent and provide additional minor cosmetical changes to the
19656 GstVaapiMiniObject and GstVaapiObject source files.
19658 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19660 * gst/vaapi/gstvaapipluginutil.c:
19661 pluginutil: Fix clearing of subtitle overlay
19662 dvbsuboverlay signals no subtitles present by not setting
19663 GstVideoOverlayCompositionMeta on a buffer.
19664 Detect this, and remove subtitles whenever we have no overlay composition to
19666 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19668 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19670 * gst/vaapi/gstvaapipostproc.c:
19671 vaapipostproc: clear state on stop
19672 Otherwise restarting may fail because the state of vaapipluginbase and
19673 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19674 initailization and not call gst_vaapi_plugin_base_set_caps()
19676 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19678 * gst/vaapi/gstvaapidecode.c:
19679 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19681 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19683 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19684 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19685 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19686 since the vaaapi context creation (gstvaapicontext.c) can still use the
19687 default chroma type which is YUV420.
19688 https://bugzilla.gnome.org/show_bug.cgi?id=743567
19689 https://bugzilla.gnome.org/show_bug.cgi?id=743035
19691 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19693 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19694 * patches/videoparsers/series.frag:
19695 h264parse: drop patches merged upstream.
19696 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19698 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19700 * ext/codecparsers:
19701 codecparsers: update to gst-vaapi-branch commit d3b5c1b
19702 8194cac: h264parse: parse SPS subset
19703 64b7f52: h264parse: expose stereo-high profile
19704 774360a: h264parse: add initial support for MVC NAL units
19705 258478f: h264parser: fix stack smashing
19707 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19709 * gst/vaapi/gstvaapivideometa_texture.c:
19710 Fix compilation error if there is no GL/gl.h header file installed
19712 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19714 * gst/vaapi/gstvaapidecode.c:
19715 vaapidecode: commit updated srcpad caps to base plugin.
19716 Make sure that the GstVaapiPluginBase instance receives the new src
19717 pad caps whenever they get updated from within the GstVaapiDecoder
19719 This also ensures that downstream elements receive correctly sized
19720 SW decoded buffers if needed.
19721 https://bugs.tizen.org/jira/browse/TC-114
19723 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19725 * gst/vaapi/gstvaapidecode.c:
19726 vaapidecode: always reset decoder on ::set_format().
19727 Split GstVideoDecoder::set_format() handler to first update the sink
19728 pad caps and reset the active VA decoder instance based on those, and
19729 then update the src pad caps whenever possible, e.g. when the caps
19730 specify a valid video resolution.
19732 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19734 * gst/vaapi/gstvaapivideomemory.c:
19735 vaapivideomemory: don't crash when trying to allocate 0x0 images.
19736 In some occasions, a buffer pool is created for pre-initialization
19737 purposes regardless of whether a valid image size is available or
19738 not. However, during actual decode stage, the vaapidecode element
19739 is expected to update the srcpad caps with the new dimensions, thus
19740 also triggering a reset of the underlying bufferpool.
19742 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19744 * ext/codecparsers:
19745 codecparsers: update to gst-vaapi-branch commit 191cb2f
19746 347605a: h264parse: expose compatible profiles to downstream
19747 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19748 24a3126: Revert "h264parse: expose compatible profiles to downstream"
19749 8661740: h264parse: expose compatible profiles to downstream
19750 8b7ef3f: codecparsers: fix some compiler warnings
19752 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19754 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19755 encoder: h264: Fix the period between I/P frames
19756 If the key-frame period is set as one, then ip_period shuld be zero
19757 https://bugzilla.gnome.org/show_bug.cgi?id=734992
19759 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19761 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19762 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19763 https://bugzilla.gnome.org/show_bug.cgi?id=734993
19765 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19767 * gst/vaapi/gstvaapisink.c:
19768 vaapisink: Protect the X11 API invokations with proper locking
19769 https://bugzilla.gnome.org/show_bug.cgi?id=739808
19771 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19773 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19774 encoder: h264: fix pixel-aspect-ratio in encoded stream.
19775 Really report sample aspect ratio (SAR) as present, and make it match
19776 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19777 really make sure VUI parameter aspect_ratio_info_present_flag is set
19778 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19779 This is a leftover from git commit a12662f.
19780 https://bugzilla.gnome.org/show_bug.cgi?id=740360
19782 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19784 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19785 decoder: mpeg4: fix uninitialized variables.
19786 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19787 GST_MPEG4_USER_DATA so that a parse error would result in skipping
19788 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19789 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19791 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19793 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19794 encoder: h264: fix profile limits.
19795 Fix ensure_profile_limits() to lower profile to the desired limits,
19796 only if the latter are actually known and the profile needed to be
19799 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19801 * gst/vaapi/gstvaapipostproc.c:
19802 vaapipostproc: fix out caps for GLMemory.
19803 If the best downstream capsfeature turns out to be GLMemory, then make
19804 sure to propagate RGBA video format in caps to that element. This fixes
19805 the following pipeline: ... ! vaapipostproc ! glimagesink.
19807 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19809 * gst/vaapi/gstvaapipostproc.c:
19810 vaapipostproc: fix check for compatible src pad capsfilters.
19811 When an explicit output video format is selected, from an src pad
19812 capsfilter, make sure that the downstream element actually supports
19813 that format. In particular, fix crash with the following pipelines:
19814 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19815 XXX is a format not supported by xvimagesink.
19816 While doing so, also reduce the set of src pad filter caps to the
19817 actual set of allowed src pad caps.
19819 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19821 * gst/vaapi/gstvaapipostproc.c:
19822 * gst/vaapi/gstvaapipostproc.h:
19823 * gst/vaapi/gstvaapiuploader.c:
19824 * gst/vaapi/gstvaapiuploader.h:
19825 plugins: re-indent all video processing related source code.
19827 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19829 * gst/vaapi/gstvaapivideomemory.c:
19830 plugins: further fixes to the new "current" storage tracker.
19831 The ensure_surface() and ensure_image() functions shall only relate
19832 to the underlying backing store. The actual current flags are to be
19833 updated only through ensure_{surface,image}_is_current() or very other
19834 particular cases in GstMemory hooks.
19836 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19838 * gst/vaapi/gstvaapivideomemory.c:
19839 plugins: fix "current" video memory flags.
19840 If the surface proxy is updated into the GstVaapiVideoMemory, then
19841 it is assumed it is the most current representation of the current
19842 video frame. Likewise, make a few more arrangements to have the
19843 "current " flags set more consistently.
19845 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19847 * gst/vaapi/gstvaapivideomemory.c:
19848 * gst/vaapi/gstvaapivideomemory.h:
19849 * gst/vaapi/gstvaapivideometa.c:
19850 plugins: ensure VA surface is current prior to using it.
19851 When interacting with SW elements, the buffers and underlying video
19852 memory could be mapped as read/write. However, we need to use those
19853 buffers again as plain VA surfaces, we have to make sure the VA image
19854 is thus committed back to VA surface memory.
19855 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19857 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19859 * gst/vaapi/gstvaapivideomemory.c:
19860 plugins: enable memory maps for read & write.
19861 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19862 buffers can be further processed in-place, e.g. with a textoverlay.
19863 https://bugzilla.gnome.org/show_bug.cgi?id=704078
19864 [ported to current git master branch, amended commit message]
19865 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19867 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19869 * gst/vaapi/gstvaapidecode.c:
19870 * gst/vaapi/gstvaapipluginutil.c:
19871 * gst/vaapi/gstvaapipluginutil.h:
19872 * gst/vaapi/gstvaapipostproc.c:
19873 plugins: preserve framerate when updating src caps video format.
19874 In the current implementation, gst_video_info_set_format() would reset
19875 the whole GstVideoInfo structure first, prior to setting video format
19876 and size. So, coleteral information like framerate or pixel-aspect-
19878 Provide and use a unique gst_video_info_change_format() for overcome
19879 this issue, i.e. only have it change the format and video size, and
19880 copy over the rest of the fields.
19881 https://bugzilla.gnome.org/show_bug.cgi?id=734665
19883 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19885 * gst/vaapi/gstvaapi.c:
19886 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19887 This is for helping decodebin to autoplug the vaapidecode element.
19888 Decodebin is selecting decoder elements only based on rank and caps.
19889 Without overriding the autoplug-* signals there is no way to autoplug
19890 HW decoders inside decodebin. An easier soulution is to raise the
19891 rank of vaapidecode, so that it gets selected first.
19892 https://bugzilla.gnome.org/show_bug.cgi?id=739332
19894 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19896 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19897 * gst/vaapi/gstvaapidecode.c:
19898 vaapidecode: only expose supported profiles when needed.
19899 JPEG and VP8 codecs do not really support the concept of "profile". So,
19900 don't try to expose any set that wouldn't be supported by jpegparse, or
19901 ivfparse for instance.
19902 https://bugzilla.gnome.org/show_bug.cgi?id=739713
19903 https://bugzilla.gnome.org/show_bug.cgi?id=739714
19905 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19907 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19908 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19909 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19910 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19911 decoder: h264: add initial support for repeat-first-field (RFF) flag.
19912 Use the SEI pic_timing() message to track and propagate down the repeat
19913 first field (RFF) flag. This is only initial support as there is one
19914 other condition that could induce the RFF flag, which is not handled
19917 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19919 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19920 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19921 Fix the decoding process for picture order count type 0 when the previous
19922 picture had a memory_management_control_operation = 5. In particular, fix
19923 the actual variable type for prev_pic_structure to hold the full bits of
19924 the picture structure.
19925 In practice, this used to work though, due to the underlying type used to
19926 express a gboolean.
19928 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19930 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19931 decoder: h264: fix detection of top-field-first (TFF) flag.
19932 Use the SEI pic_timing() message to track the pic_struct variable when
19933 present, or infer it from the regular slice header flags field_pic_flag
19934 and bottom_field_flag. This fixes temporal sequence ordering when the
19935 output pictures are to be displayed.
19936 https://bugzilla.gnome.org/show_bug.cgi?id=739291
19938 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19940 * ext/codecparsers:
19941 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19942 1241840 h264: fix derivation of MaxPicNum variable
19943 3bd718e h264: fix GstH264ParserResult documentation typo
19944 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19945 b08e4be h264parse: don't unnecesarily set src_caps
19947 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19949 * gst/vaapi/gstvaapipostproc.c:
19950 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
19951 Added the same Klass specifications used in other upstream
19952 video postprocessing elements like videoconvert, videoscale,
19953 videobalance and deinterlace.
19954 An example use case is for this is to help the playsink
19955 to autoplug the hardware accelerated deinterlacer.
19957 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19959 * gst/vaapi/gstvaapipostproc.c:
19960 vaapipostproc: Tweak the output video format setting to enable the autoplugging
19961 This is a workaround until auto-plugging is fixed when
19962 format=ENCODED + memory:VASurface caps feature are provided.
19963 Use the downstream negotiated video format as the output video format
19964 if the user didn't ask for the colorspace conversion explicitly.
19965 Usecase: This will help to connect elements like videoscale, videorate etc
19967 https://bugzilla.gnome.org/show_bug.cgi?id=739443
19969 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19971 * gst/vaapi/gstvaapipostproc.c:
19972 * gst/vaapi/gstvaapipostproc.h:
19973 vaapipostproc: allow user defined scaling mode.
19974 Add new "scale-method" property to expose the scaling mode to use during
19975 video processing. Note that this is only a hint, and the actual behaviour
19976 may differ from implementation (VA driver) to implementation.
19978 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19980 * gst-libs/gst/vaapi/gstvaapifilter.c:
19981 * gst-libs/gst/vaapi/gstvaapifilter.h:
19982 * gst-libs/gst/vaapi/gstvaapiutils.c:
19983 * gst-libs/gst/vaapi/gstvaapiutils.h:
19984 filter: add initial support for high quality scaling.
19985 Add support for video scaling options in VPP pipelines. Only the
19986 DEFAULT mode is bound to exist. Others might be folded into that
19989 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19991 * gst-libs/gst/vaapi/gstvaapifilter.c:
19992 * gst-libs/gst/vaapi/gstvaapifilter.h:
19993 filter: re-indent all GstVaapiFilter related source code.
19995 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19997 * ext/codecparsers:
19998 codecparsers: update to gst-vaapi-branch commit f9d3bde.
19999 2218b02 h264parse: expose parsed profile and level to downstream
20000 3dbfab4 h264parse: return flushing if we get chained while being set to READY
20001 d40fa8b h264: fix frame packing SEI parsing
20002 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
20003 b3e022e h264: initialize some fields of pic_timing structure
20004 a70661d vc1: fix expected level in sequence-layer parsing unit test
20005 6cee88d vc1: fix level values for simple/main profile
20006 356c189 vc1: add unit test for sequence-layer parsing
20007 ab9f641 vc1: take care of endianness when parsing sequence-layer
20008 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
20010 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20012 * gst/vaapi/gstvaapidecode.c:
20013 vaapidecode: Expose the supported profiles as caps to upstream
20014 This will allows the playbin to fallback to Software Decoder
20015 if the Hardware Decoder does not support a particular profile.
20016 https://bugzilla.gnome.org/show_bug.cgi?id=730997
20018 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20020 * gst/vaapi/gstvaapiencode.c:
20021 * gst/vaapi/gstvaapiencode.h:
20022 * gst/vaapi/gstvaapiencode_h264.c:
20023 encode: Attach the codec-data to out caps only based on negotiated caps
20024 Attach the codec_data to out_caps only if downstream needed.
20025 For eg: h264 encoder doesn't need to stuff codec_data to the
20026 src caps if the negotiated caps has a stream format of byte-stream.
20027 https://bugzilla.gnome.org/show_bug.cgi?id=734902
20029 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20032 configure: echoing installation prefix path
20034 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20036 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20037 display: add support for DRM Render-Nodes.
20038 Add support for DRM Render-Nodes. This is a new feature that appeared
20039 in kernel 3.12 for experimentation purposes, but was later declared
20040 stable enough in kernel 3.15 for getting enabled by default.
20041 This allows headless usages without authentication at all, i.e. usages
20042 through plain ssh connections is possible.
20044 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20046 * gst/vaapi/gstvaapisink.c:
20047 vaapisink: clean-ups (indentation, drop unused variables).
20049 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20052 * gst/vaapi/gstvaapisink.c:
20053 vaapisink: fix GstNavigation "key-press" / "key-release" events.
20054 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
20055 to a KeySym. In particular, there is no such Window argument. Also
20056 make sure to check for, and use, the correct <X11/XKBlib.h> header
20057 where that new function is defined. Otherwise, default to the older
20058 XKeycodeToKeysym() function.
20060 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20062 * gst/vaapi/gstvaapisink.c:
20063 vaapisink: fix GstNavigation "mouse-move" event.
20064 Really use the motion event coordinates to propagate the "mouse-move"
20065 event to upper layer, instead of those from a button event. Those are
20066 technically the same though.
20068 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20070 * gst/vaapi/gstvaapisink.c:
20071 vaapisink: implement the GstNavigation interface
20072 This is useful for things like DVD menus, where key/mouse events
20073 would need to be forwarded from the upstream sink element.
20074 https://bugzilla.gnome.org/show_bug.cgi?id=711479
20076 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20078 * gst/vaapi/gstvaapipluginbase.c:
20079 vaapipostproc: fix deinterlacing from non VA memory buffers.
20080 When we copy a buffer because we're moving it into VA-API memory, we
20081 need to copy flags. Otherwise, interlaced YUV buffers from a capture
20082 source (e.g. V4L2) don't get flagged as interlaced.
20083 https://bugzilla.gnome.org/show_bug.cgi?id=726270
20084 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20085 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
20086 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20088 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20090 * gst/vaapi/gstvaapipostproc.c:
20091 vaapipostproc: add support for GLTextureUploadMeta output.
20092 This allows for vaapipostproc to be chained to the glimagesink element
20094 https://bugzilla.gnome.org/show_bug.cgi?id=735231
20096 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20098 * gst/vaapi/gstvaapipluginutil.c:
20099 * gst/vaapi/gstvaapipluginutil.h:
20100 * gst/vaapi/gstvaapipostproc.c:
20101 vaapipostproc: add support for "download" capability.
20102 Allow implicit conversions to raw video formats, while still keeping
20103 VA surfaces underneath. This allows for chaining the vaapipostproc
20104 element to a software-only element that takes care of maps/unmaps.
20106 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20108 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20110 * gst/vaapi/gstvaapipostproc.c:
20111 * gst/vaapi/gstvaapipostproc.h:
20112 vaapipostproc: use pooled vaapi video meta.
20113 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20114 video buffer allocation. Also optimize copy of additional metadata info
20115 into the resulting video buffer: only copy the video cropping info and
20116 the source surface proxy.
20117 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20118 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20119 [fixed proxy leak, fixed double free on error, optimized meta copy]
20120 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20122 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20124 * gst/vaapi/gstvaapipostproc.c:
20125 vaapipostproc: fix passthrough mode.
20126 If no explicit output surface format is supplied try to keep the one
20127 supplied through the sink pad caps. This avoids a useless copy, even
20128 if things are kept in GPU memory.
20129 This is a performance regression from git commit dfa70b9.
20131 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20133 * gst/vaapi/gstvaapipostproc.c:
20134 * gst/vaapi/gstvaapipostproc.h:
20135 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20136 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20137 [used new infrastructure through base decide_allocation() impl]
20138 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20140 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20142 * gst/vaapi/gstvaapipostproc.c:
20143 vaapipostproc: enable advanced deinterlacing with same format.
20144 If only advanced deinterlacing is requested, i.e. deinterlacing is
20145 the only active algorithm to apply with source and output surface
20146 formats being the same, then make sure to enable VPP processing.
20147 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20150 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20152 * gst/vaapi/gstvaapivideomemory.c:
20153 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20154 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20156 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20158 * gst/vaapi/gstvaapipluginbase.c:
20159 * gst/vaapi/gstvaapipluginutil.c:
20160 plugins: fix memory leaks.
20162 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20164 * gst/vaapi/gstvaapidecode.c:
20165 * gst/vaapi/gstvaapipluginbase.c:
20166 * gst/vaapi/gstvaapipluginbase.h:
20167 plugins: factor out decide_allocation() hook.
20168 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20169 feature argument can be used to force a bufferpool with a specific kind
20172 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20174 * gst/vaapi/gstvaapivideobufferpool.c:
20175 * gst/vaapi/gstvaapivideobufferpool.h:
20176 * gst/vaapi/gstvaapivideomemory.c:
20177 plugins: allow bufferpool to not allocate vaapi video meta.
20178 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20179 can be used to disable early allocations of vaapi video metas on buffers,
20180 thus delagating that to the bufferpool user.
20182 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20184 * gst/vaapi/gstvaapivideobuffer.c:
20185 * gst/vaapi/gstvaapivideobuffer.h:
20186 * gst/vaapi/gstvaapivideobufferpool.c:
20187 * gst/vaapi/gstvaapivideobufferpool.h:
20188 * gst/vaapi/gstvaapivideocontext.c:
20189 * gst/vaapi/gstvaapivideocontext.h:
20190 * gst/vaapi/gstvaapivideoconverter_glx.c:
20191 * gst/vaapi/gstvaapivideoconverter_glx.h:
20192 * gst/vaapi/gstvaapivideoconverter_x11.c:
20193 * gst/vaapi/gstvaapivideoconverter_x11.h:
20194 * gst/vaapi/gstvaapivideomemory.c:
20195 * gst/vaapi/gstvaapivideomemory.h:
20196 * gst/vaapi/gstvaapivideometa.c:
20197 * gst/vaapi/gstvaapivideometa.h:
20198 * gst/vaapi/gstvaapivideometa_texture.c:
20199 * gst/vaapi/gstvaapivideometa_texture.h:
20200 plugins: re-indent all GstVaapiVideo* related source code.
20202 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20204 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20205 surfaceproxy: fix copy to propagate view_id.
20206 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20207 fixing random frames skipped when vaapipostproc element is used in
20208 passthrough mode. In that mode, GstMemory is copied, thus including
20209 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20211 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20213 * gst/vaapi/gstvaapipostproc.c:
20214 vaapipostproc: fix detection of output surface format changes.
20215 Default to I420 format for output surfaces so that to match the usual
20216 GStreamer pipelines. Though, internally, we could still opt for NV12
20217 surface formats, i.e. default format=ENCODED is a hint for that, thus
20218 delegating the decision to the VA driver.
20220 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20222 * gst/vaapi/gstvaapipostproc.c:
20223 vaapipostproc: fix construction of allowed sink pad caps.
20224 Fix construction of the set of caps allowed on the sink pad to filter
20225 out unsupported raw video caps with GStreamer >= 1.2.
20227 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20229 * gst/vaapi/gstvaapipostproc.c:
20230 * gst/vaapi/gstvaapipostproc.h:
20231 vaapipostproc: improve heuristics for detecting native VA surfaces.
20232 Use the new gst_caps_has_vaapi_surface() helper function to detect
20233 whether the sink pad caps contain native VA surfaces, or not, i.e.
20235 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20236 explicit as we just want a way to differentiate raw video caps from
20237 VA surfaces actually.
20239 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20241 * gst/vaapi/gstvaapipostproc.c:
20242 vaapipostproc: disable discontinuity detection code.
20243 The "discontinuity" tracking code, whereby lost frames are tentatively
20244 detected, is inoperant if the sink pad buffer timestamps are not right
20246 This is a temporary workaround until the following bug is fixed:
20247 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20249 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20251 * gst/vaapi/gstvaapipostproc.c:
20252 vaapipostproc: fix heuristic for detecting discontinuity.
20253 In order to make the discontinuity detection code useful, we need to
20254 detect the lost frames in the history as early as the previous frame.
20255 This is because some VA implementations only support one reference
20256 frame for advanced deinterlacing.
20257 In practice, turn the condition for detecting new frame that is beyond
20258 the previous frame from field_duration*2 to field_duration*3, i.e.
20259 nothing received for the past frame and a half because of possible
20260 rounding errors when calculating the field-duration either in this
20261 element (vaapipostproc), or from the upstream element (parser element).
20262 This is a regression introduced with commit faefd62.
20263 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20265 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20267 * gst/vaapi/gstvaapipluginbase.c:
20268 * gst/vaapi/gstvaapipluginbase.h:
20269 plugins: fix detection of raw video caps.
20270 Use the new gst_caps_has_vaapi_surface() helper function to better
20271 detect raw video caps, and in particular those from RGB colorspace.
20272 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20274 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20276 * gst/vaapi/gstvaapipluginutil.c:
20277 * gst/vaapi/gstvaapipluginutil.h:
20278 plugins: add helper for detecting VA surfaces in caps.
20279 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20280 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20281 implies a check for memory:VASurface caps features, and format=ENCODED
20282 for earlier versions of GStreamer.
20284 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20286 * gst/vaapi/gstvaapidecode.c:
20287 vaapidecode: start the decoder task again after finishing
20288 This allows the element to accept data again after draining without
20289 a hard reset or caps change happening in between.
20290 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20292 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20294 * gst/vaapi/gstvaapidecode.c:
20295 vaapidecode: unlock condition variables before shutting down the element
20296 Otherwise threads might wait for them, causing the shutdown of the element
20297 to deadlock on the streaming thread.
20298 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20300 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20302 * gst/vaapi/gstvaapidecode.c:
20303 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20304 Otherwise the element is not usable again after draining/EOS.
20305 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20307 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20309 * gst/vaapi/gstvaapidecode.c:
20310 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20311 This otherwise results in unnecessary error messages.
20312 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20314 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20316 * gst-libs/gst/vaapi/Makefile.am:
20317 * gst/vaapi/Makefile.am:
20318 build: fix with --no-undefined linker flags.
20319 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20321 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20323 * gst/vaapi/gstvaapisink.c:
20324 * gst/vaapi/gstvaapisink.h:
20325 vaapisink: add support for GstColorBalance interface.
20326 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20327 [fixed channel names, simplified range factor, fixed memory leak]
20328 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20330 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20332 * gst/vaapi/gstvaapisink.c:
20333 * gst/vaapi/gstvaapisink.h:
20334 vaapisink: add support for colorbalance adjustment.
20335 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20336 [fixed and simplified tracking of colorbalance value changes]
20337 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20339 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20341 * gst/vaapi/gstvaapisink.c:
20342 vaapisink: improve installation of properties.
20343 Simplify the creation and installation process of properties, by first
20344 accumulating them into a g_properties[] array, and next calling into
20345 g_object_class_install_properties().
20346 Also add missing docs and flags to some properties.
20348 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20350 * gst/vaapi/gstvaapisink.c:
20351 * gst/vaapi/gstvaapisink.h:
20352 vaapisink: code clean-ups.
20353 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20354 helper macro and use it wherever we know the object is a GstBaseSink or
20355 any base class. Drop explicit initializers for values that have defaults
20358 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20360 * gst/vaapi/gstvaapisink.c:
20361 * gst/vaapi/gstvaapisink.h:
20362 vaapisink: re-indent all GstVaapiSink related source code.
20364 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20366 * gst/vaapi/gstvaapisink.c:
20367 * gst/vaapi/gstvaapisink.h:
20368 vaapisink: introduce separate backends.
20369 Introduce new backends vtable so that to have clean separation between
20370 display dependent code and common base code. That's a "soft" separation,
20371 we don't really need dedicated objects.
20372 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20374 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20376 * gst/vaapi/gstvaapisink.c:
20377 * gst/vaapi/gstvaapisink.h:
20378 vaapisink: drop unused "synchronous" mode.
20379 Support for X11 "synchronous" mode was never implemented, and was only
20380 to be useful for debugging. Drop that altogether, that's not going to
20381 be useful in practice.
20382 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20384 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20386 * gst/vaapi/gstvaapisink.c:
20387 * gst/vaapi/gstvaapisink.h:
20388 vaapisink: drop unused variables.
20389 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20390 variables. They got merged into the GstVaapiPluginBase object.
20392 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20394 * gst/vaapi/gstvaapisink.c:
20395 * gst/vaapi/gstvaapisink.h:
20396 vaapisink: drop GLX rendering and fancy effects.
20397 Rendering with GLX in vaapisink is kind of useless nowadays, including
20398 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20399 deprecated in favor of EGL, or more direct buffer sharing with actual
20401 Should testing of interop with GLX be needed, one could still be using
20402 the modern cluttersink or glimagesink elements.
20403 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20405 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20407 * gst/vaapi/gstvaapisink.c:
20408 * gst/vaapi/gstvaapisink.h:
20409 vaapisink: listen to window size changes on X11.
20410 Allow dynamic changes to the window, e.g. performed by the user, and
20411 make sure to refresh its contents, while preserving aspect ratio.
20412 In practice, Expose and ConfigureNotify events are tracked in X11
20413 display mode by default. This occurs in a separte event thread, and
20414 this is similar to what xvimagesink does. Any of those events will
20415 trigger a reconfiguration of the window "soft" size, subsequently
20416 the render-rect when necessary, and finally _expose() the result.
20417 The default of handle_events=true can be changed programatically via
20418 gst_x_overlay_handle_events().
20419 Thanks to Fabrice Bellet for rebasing the patch.
20420 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20421 [dropped XInitThreads(), cleaned up the code a little]
20422 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20424 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20426 * gst/vaapi/gstvaapidecode.c:
20427 vaapidecode: decode and output all pending frames on normal EOS.
20428 The gst_vaapidecode_decode_loop() function is called within a separate
20429 task to fetch and output all frames that were decoded so far. So, if
20430 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20431 then we are bound to exist the task without submitting the pending
20433 If the downstream element error'ed out, then the gst_pad_push() would
20434 propagate up an error and so we will get it right for cutting off
20435 _finish() early in that case.
20436 This is a regression from 6003596.
20437 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20439 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20442 Bump version for development.
20444 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20449 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20454 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20456 * gst/vaapi/gstvaapidecode.c:
20457 vaapidecode: properly return from decode loop on downstream errors.
20458 Fixes a hang/race on shutdown where _decode_loop() had already completed
20459 its execution and _finish() was waiting on a GCond for decode_loop()
20460 to complete. Also fixes the possible race where _finish() is called
20461 but _decode_loop() endlessly returns before signalling completion
20462 iff the decoder instance returns GST_FLOW_OK.
20463 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20464 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20465 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20466 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20468 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20474 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20476 * gst/vaapi/gstvaapisink.c:
20477 vaapisink: fix GstVideoOverlay::expose() implementation.
20478 Now that we always track the currently active video buffer, it is
20479 not necessary to automatically increase its reference since this is
20480 implicitly performed in ::show_frame() through the get_input_buffer()
20481 helper from GstVaapiPluginBase class.
20482 This is a regression from a26df80.
20484 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20486 * gst/vaapi/gstvaapidecode.c:
20487 * gst/vaapi/gstvaapipluginutil.c:
20488 vaapidecode: simplify bufferpool configuration.
20489 Rework the logics behind the configuration of an adequate bufferpool,
20490 especially when OpenGL meta or additional capsfeatures are needed.
20491 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20492 and that is not system memory, is now selected by default.
20494 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20496 * gst/vaapi/gstvaapidecode.c:
20497 vaapidecode: fix auto-plugging of vaapisink element.
20498 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20499 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20500 core currently miss additional patches available in 1.5-git (1.6).
20501 This is a temporary workaround.
20503 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20506 configure: allow builds against GStreamer git (1.5.x).
20507 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20509 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20512 configure: fix build with GStreamer 1.4.0 release.
20514 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20517 * debian.upstream/Makefile.am:
20518 * debian.upstream/control.in:
20519 debian: fix packaging for new naming scheme.
20521 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20526 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20529 configure: mark support for GStreamer < 1.2 as deprecated.
20530 Supporting anything thing below GStreamer 1.2 is asking for trouble
20531 for keeping up with the required facilities to make efficient pipelines.
20532 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20535 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20538 configure: mark support for GStreamer 0.10 as obsolete.
20539 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20540 and may actually be removed altogether for a future release. There is
20541 no real point to maintain a build for such an ancient GStreamer version
20542 that is not even supported upstream.
20544 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20546 * gst/vaapi/gstvaapisink.c:
20547 * gst/vaapi/gstvaapisink.h:
20548 vaapisink: allow a specific view component to be displayed.
20549 If a multiview stream is decoded, multiple view components are submitted
20550 as is downstream. It is the responsibility of the sink element to display
20551 the required view components. By default, always select the frame buffer
20552 that matches the view-id of the very first frame to be displayed.
20553 However, introduce a "view-id" property to allow the selection of a
20554 specific view component of interest to display.
20556 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20558 * gst/vaapi/gstvaapisink.c:
20559 vaapisink: always keep the last displayed buffer around.
20560 Always record the VA surface that is currently being rendered, no matter
20561 the fact we are using texturedblit or overlay. That's because in some
20562 occasions, we need to refresh or resize the displayed contents based on
20563 new events. e.g. user-resized window.
20564 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20565 through the base sink "last-sample".
20567 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20569 * gst/vaapi/gstvaapipluginbase.c:
20570 * gst/vaapi/gstvaapipluginbase.h:
20571 * gst/vaapi/gstvaapipluginutil.c:
20572 * gst/vaapi/gstvaapisink.c:
20573 vaapisink: add support for "display-name" property.
20574 Add a "display-name" property to vaapisink so that the end user could
20575 select the desired output. Keep "display-name" in-line with the existing
20576 "display" (GstVaapiDisplayXXX type).
20577 So, for X11 or GLX, the "display-name" is the usual display name as we
20578 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20579 for wl_display_connect(); and for DRM, the "display-name" is actually the
20581 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20583 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20585 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20586 window: make gst_vaapi_window_reconfigure() thread-safe.
20587 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20588 thread-safe by default, so that upper layer users don't need to handle
20591 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20593 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20594 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20595 window: allow for updating size from current geometry.
20596 Add gst_vaapi_window_reconfigure() interface to force an update of
20597 the GstVaapiWindow "soft" size, based on the current geometry of the
20598 underlying native window.
20599 This can be useful for instance to synchronize the window size when
20600 the user changed it.
20601 Thanks to Fabrice Bellet for rebasing the patch.
20602 [changed interface to gst_vaapi_window_reconfigure()]
20603 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20605 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20607 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20608 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20609 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20610 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20611 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20612 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20613 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20614 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20615 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20616 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20617 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20618 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20619 window: re-indent all GstVaapiWindow related source code.
20621 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20623 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20624 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20625 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20626 display: add interface to retrieve the display name.
20627 Add gst_vaapi_display_get_display_name() helper function to determine
20628 the name associated with the underlying native display. Note that for
20629 raw DRM backends, the display name is actually the device path.
20631 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20633 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20634 display: fix comparison of X11 display names.
20635 Make sure to not only compare display host names, but also the actual
20636 display number. The screen number does not need to be checked at this
20639 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20641 * gst/vaapi/gstvaapidecode.c:
20642 * gst/vaapi/gstvaapivideobufferpool.c:
20643 vaapidecode: add support for VideoAlignment bufferpool option.
20644 Always add VideoAlignment bufferpool option if the downstream element
20645 expects its own pool to be used but does not offer it through a proper
20646 propose_allocation() implementation for instance, and that the ALLOCATION
20647 query does not expose the availability of the Video Meta API.
20648 This fixes propagation of video buffer stride information to Firefox.
20650 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20652 * gst/vaapi/gstvaapivideomemory.c:
20653 vaapivideomemory: always prefer native VA surface formats.
20654 Make sure to always prefer native internal formats for the VA surfaces
20655 that get allocated. Also disable "direct-rendering" mode in this case.
20656 This is needed so that to make sure that anything that gets out of the
20657 decoder, or anything that gets into the encoder, is in native format
20658 for the hardware, and thus the driver doesn't need to perform implicit
20659 conversions in there. Interop with SW elements is still available with
20660 fast implementations of VA imaging APIs.
20662 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20664 * gst/vaapi/gstvaapivideomemory.c:
20665 vaapivideomemory: disallow memory shares across buffers, use a copy.
20666 Forbid shares of GstMemory instances, and rather make copy of it. This
20667 effectively copies the GstMemory structure and enclosed metadata, but
20668 this does not copy the VA surface contents itself. It should though.
20669 This fixes preroll and makes sure to not download garbage for the first
20670 frame when a SW rendering sink is used.
20672 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20674 * gst/vaapi/gstvaapivideomemory.c:
20675 * gst/vaapi/gstvaapivideomemory.h:
20676 vaapivideomemory: use an image pool to cache objects.
20677 Use an image pool to hold VA images to be used for downloads/uploads
20678 of contents for the associated surface.
20679 This is an optmization for size. So, instead of creating as many VA
20680 images as there are buffers (then VA surfaces) allocated, we only
20681 maintain a minimal set of live VA images, thus preserving memory
20684 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20686 * gst/vaapi/gstvaapivideomemory.c:
20687 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20688 Disable read-write mappings if "direct-rendering" is not supported.
20689 Since the ordering of read and write operations is not specified,
20690 this would require to always download the VA surface on _map(), then
20691 commit the temporary VA image back to the VA surface on _unmap().
20692 Some SW decoding plug-in elements still use R/W mappings though.
20693 https://bugzilla.gnome.org/show_bug.cgi?id=733242
20695 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20697 * gst/vaapi/gstvaapivideomemory.c:
20698 vaapivideomemory: minor code clean-ups.
20699 Fix error messages introduced in the previous commit for the _map()
20700 imaplementation. Also use the new get_image_data() helper function
20701 to determine the base pixels data buffer from a GstVaapiImage when
20702 updating the video info structure from it.
20704 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20706 * gst/vaapi/gstvaapivideomemory.c:
20707 * gst/vaapi/gstvaapivideomemory.h:
20708 vaapivideomemory: add support for raw pixels mappings.
20709 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20710 cases where the buffer pool is allocated without VideoMeta API, thus
20711 individual planes cannot be mapped.
20712 This is initial support for Firefox >= 30.
20713 https://bugzilla.gnome.org/show_bug.cgi?id=731886
20715 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20717 * gst/vaapi/gstvaapivideomemory.c:
20718 vaapivideomemory: fix determination of the surface pool format.
20719 While creating the vaapi video allocator, make sure the associated
20720 surface pool has correct format instead of defaulting to NV12 video
20721 format even though there is no direct rendering support.
20722 https://bugzilla.gnome.org/show_bug.cgi?id=732691
20724 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20726 * gst/vaapi/gstvaapivideomemory.c:
20727 vaapivideomemory: fix association of surface to proxy.
20728 Make sure to always update the VA surface pointer whenever the proxy
20729 changes. This used to only work when the VA surface is written to, in
20730 interop with SW element ("upload" feature), and this now fixes cases
20731 when the VA surface is needed for reading, in interop with SW element
20732 ("download" feature).
20734 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20736 * gst/vaapi/gstvaapidecode.c:
20737 * gst/vaapi/gstvaapipluginutil.c:
20738 * gst/vaapi/gstvaapivideomemory.c:
20739 plugins: expose I420 format for interop with SW elements.
20740 Always expose I420 format by default when the VA surface could be
20741 mapped for interoperability with non harware accelerated elements.
20742 However, the default behaviour remains the auto-plugging of vaapi
20743 elements, down to the sink.
20744 Side effect: "direct-rendering" mode is also disabled most of the
20745 times as plain memcpy() from uncached speculative write combining
20746 memory is not going to be efficient enough.
20748 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20750 * gst/vaapi/gstvaapidecode.c:
20751 * gst/vaapi/gstvaapivideomemory.c:
20752 plugins: allow download capability to vaapidecode element.
20753 Fix support for VA surface download capability in vaapidecode element
20754 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20755 but also the libva-intel-driver while performing hardware accelerated
20756 conversions from the native VA surface format (NV12) to the desired
20757 output VA image format.
20758 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20759 https://bugzilla.gnome.org/show_bug.cgi?id=733243
20761 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
20763 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20764 decoder: mpeg4: fix picture decoder return value for skipped frames.
20765 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20766 when a frame should be skipped, so the stream processing is not stalled.
20767 https://bugzilla.gnome.org/show_bug.cgi?id=733324
20769 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
20771 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20772 decoder: mpeg2: respect any input PTS provided for a frame.
20773 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20774 frame timestamps within a GOP, even when it's been fed input PTS for
20776 That leads to incorrect output timestamps in some situations - for example
20777 live playback where input timestamps have been scaled based on arrival time
20778 from the network and don't exactly match the framerate.
20779 https://bugzilla.gnome.org/show_bug.cgi?id=732719
20781 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20783 * gst-libs/gst/vaapi/gstvaapiobject.c:
20784 GstVaapiObject: make gst_vaapi_object_new() more robust.
20785 Forbid GstVaapiObject to be created without an associated klass spec.
20786 It is mandatory that the subclass implements an adequate .finalize()
20787 hook, so it shall provide a valid GstVaapiObjectClass.
20788 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20789 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20790 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20792 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20794 * gst-libs/gst/vaapi/gstvaapiobject.c:
20795 GstVaapiObject: initialize the derived object data with init() hook.
20796 Call the subclass .init() function in gst_vaapi_object_new(), if
20797 needed. The default behaviour is to zero initialize the subclass
20798 object data, then the .init() function can be used to initialize
20799 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20800 Also fix the gst_vaapi_object_new() description, which was merely
20801 copied from GstVaapiMiniObject.
20802 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20803 [changed to always zero initialize the subclass]
20804 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20806 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
20808 * gst/vaapi/gstvaapidecode.c:
20809 vaapidecode: make decoder work with playbin
20810 When playbin/decodebin builds the pipeline, it puts decoders and sinks
20811 into different bins and forwards the queries from bins to bins. So in
20812 the initials steps the pipeline is built iteratively by playbin and
20815 [filesrc] -> [typefind]
20816 [filesrc] -> [typefind] -> [demuxer]
20817 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20818 At this point the decoder is asked for its SRC caps and it will make a
20819 choice based on what gst_pad_peer_query_caps() returns. The problem is
20820 that the caps returns at that point includes caps features like ANY,
20821 essentially because playbin can plug in additional elements like
20822 videoscale, videoconv or deinterlace.
20823 This patch adds a another call to
20824 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20825 allocation, to make sure we asks the downstream elements when the
20826 entire pipeline has been built.
20827 https://bugzilla.gnome.org/show_bug.cgi?id=731645
20829 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20831 * gst/vaapi/gstvaapipostproc.c:
20832 vaapipostproc: don't let tmp_rect go out of scope.
20833 A compiler change showed me that tmp_rect went out of scope before
20834 it was used. Move it to the beginning of the function instead.
20835 https://bugzilla.gnome.org/show_bug.cgi?id=726363
20836 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20837 [added guards for GStreamer 0.10 builds]
20838 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20840 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20845 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20849 Drop references to deprecated plugins (vaapiupload, vaapidownload),
20850 mention that support for GStreamer 0.10 is deprecated, make overview
20851 more descriptive in certain aspects.
20853 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20858 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20862 build: mention that support for GStreamer 0.10 is deprecated.
20864 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20867 * gst/vaapi/gstvaapidecode.c:
20868 build: fix for GStreamer 0.10.
20870 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20872 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20873 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20874 * patches/videoparsers/series.frag:
20875 build: fix for GStreamer 1.0.x.
20877 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20879 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20880 decoder: h264: detect incorrectly paired fields in frames.
20881 When a DPB flush is required, e.g. at a natural and of stream or issued
20882 explicitly through an IDR, try to detect any frame left in the DPB that
20883 is interlaced but does not contain two decoded fields. In that case, mark
20884 the picture as having a single field only.
20885 This avoids a hang while decoding tv_cut.mkv.
20887 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20889 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20890 decoder: h264: simplify the DPB output process.
20891 Simplify the dpb_output() function to exclusively rely on the frame store
20892 buffer to output, since this is now always provided. Besides, also fix
20893 cases where split fields would not be displayed.
20894 This is a regression from f48b1e0.
20896 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20898 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20899 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20900 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20901 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20902 * patches/videoparsers/series.frag:
20903 h264parse: drop patches merged upstream.
20904 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20905 0005-h264parse-introduce-new-state-tracking-variables.patch
20906 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20907 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20909 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20911 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20912 decoder: h264: fix memory leak in PPS.
20913 Cope with latest changes from codecparsers/h264. It is now required
20914 to explicitly clear the GstH264PPS structure as it could contain
20915 additional allocations (slice_group_ids).
20917 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20919 * ext/codecparsers:
20920 codecparsers: update to gst-vaapi-branch commit 2d53b69.
20921 c4ace00 h264parse: fix collection of access units to preserve config headers
20922 0f9f7c9 h264parse: improve conditions for skipping NAL units
20923 9ffb25c h264parse: introduce new state tracking variables
20924 64955d3 h264parse: fix and optimize NAL collection function
20925 13cd2a3 h264: clarifications and documentation fixes
20926 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20927 18f0de0 h264: fix memory leak in GstH264PPS
20928 fdcb54c h264: fix typo in GstH264VUIParams description
20929 fd4dae9 vp8: move up built-in range decoder private data
20931 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20933 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20934 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20935 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20936 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20937 decoder: propagate MVC metadata ("view-id", head of multiview set).
20938 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20939 bundle", and really expresses the first view component of a multi
20940 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20942 Likewise, new API is exposed to retrieve the associated "view-id".
20944 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20946 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20947 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20948 decoder: propagate "one-field" flags.
20949 Allow decoders to set the "one-field" attribute when the decoded frame
20950 genuinely has a single field, or if the second field was mis-decoded but
20951 we still want to display the first field.
20953 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20955 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20956 decoder: output decoded frames only once.
20957 Make sure to output the decoded picture, and push the associated
20958 GstVideoCodecFrame, only once. The frame fully represents what needs
20959 to be output, included for interlaced streams. Otherwise, the base
20960 GstVideoDecoder class would release the frame twice.
20961 Anyway, the general process is to output decoded frames only when
20962 they are complete. By complete, we mean a full frame was decoded or
20963 both fields of a frame were decoded.
20965 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20967 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20968 decoder: h264: decode current picture earlier.
20969 Slightly optimize decoding process by submitting the current VA surface
20970 for decoding earlier to the hardware, and perform the reference picture
20971 marking process and DPB update process afterwards.
20972 This is a minor optimization to let the video decode engine kick in work
20973 earlier, thus improving parallel resources utilization.
20975 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20977 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20978 decoder: h264: fix output of second field when first field is not in DPB.
20979 Fix decoding of interlaced streams where a first field (e.g. B-slice)
20980 was immediately output and the current decoded field is to be paired
20981 with that former frame, which is no longer in DPB.
20982 https://bugzilla.gnome.org/show_bug.cgi?id=701340
20984 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20986 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20987 decoder: h264: slightly optimize the process to detect new pictures.
20988 Optimize the process to detect new pictures or start of new access
20989 units by checking if the previous NAL unit was the end of a picture,
20990 or the end of the previous access unit.
20992 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20994 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20995 decoder: h264: handle access unit ("au") optimization.
20996 Optimize parsing when buffers are supplied with access unit alignment.
20997 This helps determining faster when the end of an access unit is reached.
20999 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21001 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21002 decoder: h264: fix tracking of DPB size changes.
21003 Add support for MVC streams with multiple SPS and subset SPS headers
21004 emitted regularly, e.g. at around every I-frame. Track the maximum
21005 number of views in ensure_context() and really reset the DPB size to
21006 the expected value, always. i.e. even if it decreased. dpb_reset()
21007 only cares of ensuring the DPB allocation.
21009 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21011 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21012 decoder: h264: fix the DPB compaction process.
21013 Fix the compaction process when the DPB is cleared for a specific
21014 view, i.e. fix the process of filling in the holes resulting from
21015 removing frame buffers matching the current picture.
21017 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21019 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21020 encoder: h264: generate new SPS only when codec config changed.
21021 It is not necessary to periodically send SPS or subset SPS headers.
21022 This is up to the upper layer (e.g. transport layer) to decide on
21023 if/how to periodically submit those. For now, only generate new SPS
21024 or subset SPS headers when the codec config changed.
21025 Note: the upper layer could readily determine the config headers
21026 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
21027 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21028 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21030 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21032 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21033 encoder: h264: track encoder config changes.
21034 Track and report when encoder configuration changed. For now, this covers
21035 resolution, profile/level and bitrate changes.
21037 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21039 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21040 encoder: h264: add pixel-aspect-ratio to VUI parameters.
21041 Report sample aspect ratio (SAR) as present, and make it match what
21042 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
21043 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
21045 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21047 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21048 encoder: h264: fix number of anchor and non-anchor reference pictures.
21049 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
21050 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
21053 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21055 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21056 encoder: h264: fix timing_info_present_flag value in subset SPS.
21057 When the seq_parameter_set_data() syntax structure is present in a subset
21058 sequence parameter set and vui_parameters_present_flag is equal to 1, then
21059 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
21061 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21063 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21064 encoder: h264: add cpbBrNalFactor values for MVC profiles.
21066 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21068 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21069 h264parse: fix detection of access unit boundaries for MVC.
21070 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
21071 this function is used to determine access unit boundaries, i.e. that
21072 is the key function for alignment=au output format generation.
21074 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21076 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21077 * patches/videoparsers/series.frag:
21078 h264parse: fix collection of access units to preserve config headers.
21079 Always use a GstAdapter when collecting access units (alignment="au")
21080 in either byte-stream or avcC format. This is required to properly
21081 preserve config headers like SPS and PPS when invalid or broken NAL
21082 units are subsequently parsed.
21083 More precisely, this fixes scenario like:
21084 <SPS> <PPS> <invalid-NAL> <slice>
21085 where we used to reset the output frame buffer when an invalid or
21086 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21087 preventing the next slice unit to be decoded, should this also
21088 represent any valid data.
21089 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21091 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21093 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21094 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21095 * patches/videoparsers/series.frag:
21096 h264parse: improve conditions for skipping NAL units.
21097 Carefully track cases when skipping broken or invalid NAL units is
21098 necessary. In particular, always allow NAL units to be processed
21099 and let that gst_h264_parse_process_nal() function decide on whether
21100 the current NAL needs to be dropped or not.
21101 This fixes parsing of streams with SEI NAL buffering_period() message
21102 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21103 SPS NAL unit, among other cases too.
21104 Practical examples from the H.264 AVC conformance suite include
21105 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21106 when parsing in stream-format=byte-stream,alignment=au mode.
21107 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21109 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21111 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21112 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21113 * patches/videoparsers/series.frag:
21114 h264parse: introduce new state tracking variables.
21115 Improve parser state tracking by introducing new flags reflecting
21116 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21117 robustness purposes.
21118 Older have_sps and have_pps variables are kept because they have
21119 a different meaning. i.e. they are used for deciding on when to
21120 submit updated caps or not, and rather mean "have new SPS/PPS to
21123 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21125 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21126 * patches/videoparsers/series.frag:
21127 h264parse: default to byte-stream/nalu format (Annex B).
21128 Always default to stream-format=byte-stream,alignment=nalu if avcC
21129 format was not detected. This is the natural stream format specified
21130 in the standard (Annex.B): a series of NAL units prefixed with the
21132 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21134 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21136 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21137 * patches/videoparsers/series.frag:
21138 h264parse: fix and optimize NAL collection function.
21139 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21140 NAL unit. We don't want to parse the full NAL unit, but only the
21141 header bytes and possibly the first RBSP byte for identifying the
21142 first_mb_in_slice syntax element.
21143 Also fix check for failure when returning from that function. The
21144 only success condition for that is GST_H264_PARSER_OK, so use it.
21145 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21147 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21149 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21150 encoder: h264: fix NAL unit types in packed headers.
21151 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21152 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21153 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21154 is required, with an appropriate nal_unit_header_mvc_extension() in
21155 the NAL header bytes.
21156 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21158 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21160 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21161 encoder: h264: add missing field in packed Subset SPS header.
21162 Write the missing num_level_values_signalled_minus1 syntax element
21163 into the packed header for subset sequence parameter set.
21164 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21166 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21168 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21169 decoder: h264: fix marking of non-reference picture into DPB.
21170 Fix search for a picture in the DPB that has a lower POC value than
21171 the current picture. The dpb_find_lowest_poc() function will return
21172 a picture with the lowest POC in DPB and that is marked as "needed
21173 for output", but an additional check against the actual POC value
21174 of the current picture is needed.
21175 This is a regression from 1c46990.
21176 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21178 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21180 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21181 decoder: h264: fix DPB clear when no decoding actually started.
21182 Fix dpb_clear() to clear previous frame buffers only if they actually
21183 exist to begin with. If the decoder bailed out early, e.g. when it
21184 does not support a specific profile, that array of previous frames
21185 might not be allocated beforehand.
21187 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21189 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21190 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21191 * gst/vaapi/gstvaapidecode.c:
21192 decoder: h264: add support for NALU "alignment" optimization.
21193 We can avoid scanning for start codes again if the bitstream is fed
21194 in NALU chunks. Currently, we always scan for start codes, and keep
21195 track of remaining bits in a GstAdapter, even if, in practice, we
21196 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21198 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21199 [use gst_adapter_available_fast() to determine the top buffer size]
21200 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21202 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21204 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21205 decoder: h264: fix caps to report interlace-mode accordingly.
21206 The `vaapipostproc' element could never determine if the H.264 stream
21207 was interlaced, and thus always assumed it to be progressive. Fix the
21208 H.264 decoder to report interlace-mode accordingly, thus allowing the
21209 vaapipostproc element to automatically enable deinterlacing.
21211 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21213 * gst/vaapi/gstvaapipostproc.c:
21214 vaapipostproc: don't crash with dynamic framerate (0/1).
21215 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21216 way to solve this problem is to just stick field_duration to zero.
21217 However, this means that, in presence of interlaced streams, the
21218 very first field will never be displayed if precise presentation
21219 timestamps are honoured.
21220 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21222 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21224 * gst/vaapi/gstvaapipostproc.c:
21225 vaapipostproc: create filter surface pool if it does not exist yet.
21226 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21227 recreating filter_pool. Unfortunately, this also meant it didn't create
21228 it if it did not exist.
21229 Fix it to always create the buffer pool if it does not exist.
21230 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21231 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21233 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21235 * gst/vaapi/gstvaapipostproc.c:
21236 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21237 Reset deinterlacer state, i.e. past reference frames used for advanced
21238 deinterlacing, when there is some discontinuity detected in the course
21239 of processing source buffers.
21240 This fixes support for advanced deinterlacing when a seek occurred.
21241 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21242 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21243 history buffer, reduce heuristic for detecting discontinuity]
21244 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21246 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21248 * gst/vaapi/gstvaapipostproc.c:
21249 vaapipostproc: add support for crop regions in VPP mode.
21250 Apply video cropping regions stored in GstVideoCropMeta, or in older
21251 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21252 the crop meta are already propagated to the output buffers.
21253 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21255 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21257 * gst/vaapi/gstvaapipostproc.c:
21258 vaapipostproc: make deinterlace-mode behave as expected.
21259 deinterlace-mode didn't behave in the way you'd expect if you have
21260 past experience of the deinterlace element. There were two bugs:
21261 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21262 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21263 Fix these up, and add assertions and error messages to detect cases that
21265 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21266 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21267 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21269 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21271 * gst/vaapi/gstvaapidecode.c:
21272 vaapidecode: do not discard video info props when the format changed.
21273 gst_video_info_set_format() does not preserve video info properties. In
21274 order to keep important information in the caps such as interlace mode,
21275 framerate, pixel aspect ratio, ... we need to manually copy back those
21276 properties after setting the new video format.
21277 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21279 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21281 * gst/vaapi/gstvaapidecode.c:
21282 vaapidecode: plug a memory leak.
21283 It can happen that there is a pool provided that does not advertise
21284 the vappivideometa. We should unref that pool before using our own.
21285 Discovered with vaapidecode ! {glimagesink,cluttersink}
21286 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21287 [fixed compilation by adding the missing semi-colon]
21288 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21290 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21292 * gst/vaapi/gstvaapidecode.c:
21293 vaapidecode: parse source data until a frame is obtained.
21294 Parse any pending data until a complete frame is obtained. This is a
21295 memory optimization to avoid expansion of video packets stuffed into
21296 the GstAdapter, and a fix to EOS condition to detect there is actually
21297 pending data that needs to be decoded, and subsequently output.
21298 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21300 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21302 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21303 encoder: h264: fix multiple slices support in packed headers mode.
21304 Handle packedi slice headers and packed raw data on a per-slice basis,
21305 which is necessary for multi slice encoding.
21307 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21309 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21310 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21311 encoder: add infrastructure for per-slice handling of packed headers.
21312 The packed slice header and packed raw data need to be paired with
21313 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21314 on a per-slice basis insted of a per-picture basis.
21315 [removed useless initializer]
21316 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21318 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21320 * gst/vaapi/gstvaapisink.c:
21321 vaapisink: fix initialization with "drm" display type.
21322 Force early initializatin of the GstVaapiDisplay so that to make sure
21323 that the sink element display object is presented first to upstream
21324 elements, as it will be correctly featuring the requested display type
21326 Otherwise, we might end up in situations where a VA/X11 display is
21327 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21328 (as requested by the "display" property), but this would cause a failure
21329 because we cannot acquire a DRM display that was previously acquired
21330 through another backend (e.g. VA/X11).
21332 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21334 * gst/vaapi/gstvaapipluginbase.c:
21335 plugins: fix initialization with foreign context.
21336 When a new display is settled through GstElement::set_context() (>= 1.2),
21337 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21338 associated display type.
21340 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21345 * gst/vaapi/Makefile.am:
21346 * gst/vaapi/gstvaapiparse.c:
21347 * gst/vaapi/gstvaapiparse.h:
21348 * patches/Makefile.am:
21349 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21350 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21351 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21352 * patches/videoparsers/Makefile.am:
21353 * patches/videoparsers/series.frag:
21354 plugins: add built-in video parsers as "vaapiparse" element.
21355 The built-in video parsers elements are built into a single DSO named
21356 libgstvaapi_parse.so. The various video parsers could be accessed as
21358 For now, this only includes a modified version of h264parse so that to
21359 support H.264 MVC encoded streams.
21361 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21363 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21364 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21365 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21366 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21368 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21370 * ext/codecparsers:
21371 codecparsers: update to gst-vaapi-branch commit d6325ac.
21372 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21373 d2f965a h264parse: set field_pic_flag when parsing a slice header
21374 24c15b8 Import h264parse
21375 a9283e5 bytereader: Use concistant derefence method
21376 a8252c6 bytereader: Use pointer instead of index access
21377 b1bebfc Import GstBitReader and GstByteReader
21378 2f58788 h264: recognize SVC NAL units
21379 4335da5 h264: fix SPS copy code for MVC
21380 cf9b6dc h264: fix quantization matrix conversion routine names
21381 b11ce2a h264: add gst_h264_video_calculate_framerate()
21382 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21384 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21386 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21387 decoder: h264: factor out DPB pruning for MVC.
21388 Factor out the removal process of unused inter-view only reference
21389 pictures from the DPB, prior to the possible insertion of the current
21391 Ideally, the compiler could still opt for generating two loops. But
21392 at least, the code is now clearer for maintenance.
21394 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21396 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21397 decoder: h264: clean-ups.
21398 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21399 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21401 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21403 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21404 decoder: h264: improve pruning of unused MVC inter-view frames.
21405 Improve process for the removal of pictures from DPB before possible
21406 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21407 reference components. In particular, handle cases where picture to be
21408 inserted is not the last one of the access unit and if it was already
21409 output and is no longer marked as used for reference, including for
21410 decoding next view components within the same access unit.
21412 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21414 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21415 decoder: h264: improve DPB bumping process for MVC.
21416 While invoking the DPB bumping process in presence of many views,
21417 it could be necessary to output previous pictures that are ready,
21418 in a whole. i.e. emitting all view components from the very first
21419 view order index zero to the very last one in its original access
21420 unit; and not starting from the view order index of the picture
21421 that caused the DPB bumping process to be invoked.
21422 As a reminder, the maximum number of frames in DPB for MultiView
21423 High profile with more than 2 views is not necessarily a multiple
21424 of the number of views.
21425 This fixes decoding of MVCNV-4.264.
21427 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21429 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21430 decoder: h264: fix inter-view references array growth.
21431 Let the utility layer handle dynamic growth of the inter-view pictures
21432 array. By definition, setting a new size to the array will effectively
21433 grow the array, but would also fill in the newly created elements with
21434 empty entries (NULL), thus also increasing the reported length, which
21437 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21439 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21440 decoder: h264: reduce ReferenceFrames entries to the essential set.
21441 When decoding Multiview High profile streams with a large number of
21442 views, it is not possible to make the VAPictureParameterBufferH264.
21443 ReferenceFrames[] array hold the complete DPB, with all possibly
21444 active pictures to be used for inter-view prediction in the current
21446 So reduce the scope of the ReferenceFrames[] array to only include
21447 the set of reference pictures that are going to be used for decoding
21448 the current picture. Basically, this is a union of all RefPicListX[]
21449 array, for all slices constituting the decoded picture.
21451 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21453 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21454 decoder: h264: fix MVC inter-view prediction process.
21455 The inter-view reference components and inter-view only reference
21456 components that are included in the reference picture lists shall
21457 be considered as not being marked as "used for short-term reference"
21458 or "used for long-term reference". This means that reference flags
21459 should all be removed from VAPictureH264.flags.
21460 This fixes decoding of MVCNV-2.264.
21462 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21464 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21465 decoder: h264: fix detection of profile changes for MVC.
21466 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21467 be careful to detect profiles changes and not reset the underlying
21468 VA context erroneously. In MVC situations, we could indeed get a
21469 profile_idc change for every SPS that gets activated, alternatively
21470 (base-view -> non-base view -> base-view, etc.).
21471 An improved fix would be to characterize the exact profile to use
21472 once and for all when SPS NAL units are parsed. This would also
21473 allow for fallbacks to a base-view decoding only mode.
21475 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21477 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21478 encoder: h264: drop extraneous definitions.
21479 Re-use definitions from the codecparser headers instead of duplicating
21480 them here again. That covers NALU definitions and slice types.
21482 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21484 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21485 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21486 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21488 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21490 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21491 encoder: h264: don't allow CABAC with Extended profile.
21492 The H.264 specification does not support CABAC entropy coding for the
21494 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21496 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21498 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21499 encoder: h264: use packed headers mode for MVC encoding.
21500 Exclusively use VA drivers that support raw packed headers for encoding.
21501 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21502 provides for better compatibility accross the various VA drivers and HW
21503 generations since no particular API is needed beyond what readily exists.
21505 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21507 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21508 encoder: h264: add support for packed slice headers.
21509 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21511 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21513 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21514 encoder: h264: store subset sps to generate the codec-data
21515 Store the SubsetSPS nal unit which we need for MVC specific
21516 codec_data generation.
21518 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21520 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21521 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21522 Since we are encoding each view independently from each other, we
21523 need a higher number of pre-allocated surfaces to be used as the
21524 reconstructed frames. For Stereo High profile encoding, this means
21525 to effectively double the number of frames to be stored in the DPB.
21527 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21529 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21530 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21531 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21532 * gst/vaapi/gstvaapiencode_h264.c:
21533 encoder: h264: add initial support for H.264 Stereo High profile.
21534 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21535 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21536 NALs for base-view encoding.
21537 The H.264 Stereo High profile encoding mode will be turned on when the
21538 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21539 considered as Left/Right view, alternatively.
21540 Each of the two views has its own frames reordering pool and reference
21541 frames list management system. Inter-view references are not supported
21542 yet, so the views are encoded independently from each other.
21543 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21544 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21545 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21547 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21549 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21550 encoder: h264: wrap pools for refs and frames reordering.
21551 Create structures to maintain the reference frames list (RefPool) and
21552 frames reordering (ReorderPool) logic.
21553 This is a prerequisite for H.264 MVC support.
21554 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21556 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21558 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21559 encoder: h264: add provisional support for subset SPS headers.
21560 Add provisions to write subset SPS headers to the bitstream in view
21561 to supporting the H.264 MVC specification.
21562 This assumes the libva "staging" branch is in use.
21563 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21565 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21567 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21568 * gst-libs/gst/vaapi/gstvaapiutils.c:
21569 utils: add H.264 MVC profiles.
21570 Add "MultiView High" and "Stereo High" definitions.
21571 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21572 [require VA-API >= 0.35.2 for MVC profiles]
21573 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21575 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21577 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21578 * gst-libs/gst/vaapi/gstvaapiutils.c:
21579 utils: only enable VP8 profiles for newer VA-API versions.
21580 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21581 involving VP8 codec on earlier versions of the API.
21583 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21585 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21586 decoder: h264: compute view ids only once per slice.
21587 Optimize lookups of view ids / view order indices by caching the result
21588 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21589 terribly simplifies is_new_access_unit() and find_first_field() functions.
21591 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21593 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21594 decoder: h264: add support for MVC interlaced streams.
21595 Fix support for MVC Stereo High profile streams with interlaced frames.
21596 Also improve the detection logic of the first field.
21598 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21600 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21601 decoder: h264: add MVC profiles compatibility logic.
21602 Add safe fallbacks for MVC profiles:
21603 - all MultiView High profile streams with 2 views at most can be decoded
21604 with a Stereo High profile compliant decoder ;
21605 - all Stereo High profile streams with only progressive views can be
21606 decoded with a MultiView High profile compliant decoder ;
21607 - all drivers that support slice-level decoding could normally support
21608 MVC profiles when the DPB holds at most 16 frames.
21610 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21612 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21613 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21614 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21615 decoder: h264: add initial support for MVC.
21616 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21618 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21620 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21621 decoder: h264: dynamically allocate the DPB.
21622 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21623 for supporting the MVC allocation requirements.
21625 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21627 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21628 decoder: h264: fix detection of access unit boundaries.
21629 In order to have a stricter conforming implementation, we need to carefully
21630 detect access unit boundaries. Additional operations could be necessary to
21631 perform at those boundaries.
21633 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21635 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21636 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21637 Detect the first VCL NAL unit of a picture for MVC, based on the
21638 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21642 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21644 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21645 decoder: h264: properly handle Prefix NAL units.
21646 Always cache the previous NAL unit so that we could check whether
21647 there is a Prefix NAL unit immediately preceding the current slice
21648 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21649 the current NAL unit. Otherwise, some default values are inferred,
21650 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21651 [infer default values for slice if previous NAL was not a Prefix]
21652 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21654 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21656 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21657 decoder: h264: add support for MVC base views.
21658 Allow decoding for base views of MVC encoded streams. For now, just skip
21659 the slice extension and prefix NAL units, and skip non-base view frames.
21660 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21661 [fixed memory leak, improved check for MVC NAL units]
21662 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21664 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21666 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21667 decoder: h264: simplify storage of decoded picture into DPB.
21668 Factor out process by which the decoded picture with the lowest POC
21669 is found, and possibly output. Likewise, the storage and marking of
21670 a reference decoded, or non-reference decoded picture, into the DPB
21671 could also be simplified as they mostly share the same operations.
21673 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21675 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21676 decoder: h264: minor clean-ups.
21677 Make init_picture_ref_lists() more consistent with other functions
21678 related to the reference marking process by supplying the current
21679 picture as argument.
21681 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21683 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21684 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21685 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21686 display: add utility function to query VA driver name.
21687 Add gst_vaapi_display_get_vendor_string() helper function to query
21688 the underlying VA driver name. The display object owns the resulting
21689 string, so it shall not be deallocated.
21690 That function is thread-safe. It could be used for debugging purposes,
21693 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21695 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21696 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21697 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21698 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21699 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21700 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21701 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21702 display: make cache maintenance really MT-safe.
21703 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21704 environments. This makes sure the display cache is also consistent
21705 during the whole display creation process. In the former implementation,
21706 there were risks that display cache got updated in another thread.
21708 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21710 * gst-libs/gst/vaapi/gstvaapicontext.c:
21711 context: allow dynamic growth of VA surfaces pool.
21712 Add support for dynamic growth of the VA surfaces pool. For decoding,
21713 this implies the recreation of the underlying VA context, as per the
21714 requirement from VA-API. Besides, only increases are supported, not
21717 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21719 * gst-libs/gst/vaapi/gstvaapicontext.c:
21720 context: reset VA context if VA surfaces set changed.
21721 It is a requirement from VA-API specification that the VA context got
21722 from vaCreateContext(), for decoding purposes, binds the supplied set
21723 of VA surfaces. This means that if the set of VA surfaces is to be
21724 changed for the current decode session, then the VA context needs to
21725 be recreated with the new set of VA surfaces.
21727 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21729 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21730 decoder: h264: fix assignment of LongTermFrameIdx.
21731 Complement fix committed as e95a42e.
21732 The H.264 AVC standard has to say: if the field is part of a reference
21733 frame or a complementary reference field pair, and the other field of
21734 the same reference frame or complementary reference field pair is also
21735 marked as "used for long-term reference", the reference frame or
21736 complementary reference field pair is also marked as "used for long-term
21737 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21738 This fixes decoding of MR9_BT_B in strict mode.
21739 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21740 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21742 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21744 * gst-libs/gst/vaapi/gstvaapicontext.c:
21745 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21746 * gst-libs/gst/vaapi/gstvaapiutils.c:
21747 * gst-libs/gst/vaapi/gstvaapiutils.h:
21748 decoder: h264: properly support grayscale formats.
21749 Request the correct chroma format for decoding grayscale streams.
21750 i.e. make lookups of the VA chroma format more generic, thus possibly
21751 supporting more formats in the future.
21752 This means that, if a VA driver doesn't support grayscale formats,
21753 it is now going to fail. We cannot safely assume that maybe grayscale
21754 was implemented on top of some YUV 4:2:0 with the chroma components
21757 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21759 * gst-libs/gst/vaapi/gstvaapifilter.c:
21760 * gst-libs/gst/vaapi/gstvaapifilter.h:
21761 * tests/test-filter.c:
21762 build: fix source file modes.
21763 A few source files are marked executable in error - fix them
21764 https://bugzilla.gnome.org/show_bug.cgi?id=723748
21765 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21767 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21770 * gst-libs/gst/vaapi/Makefile.am:
21771 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21772 * gst/vaapi/gstvaapidecode.c:
21773 build: fix conditional compilation of VP8 decoder.
21774 https://bugzilla.gnome.org/show_bug.cgi?id=729170
21775 [added check for VASliceParameterBufferBase fields]
21776 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21778 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21780 * gst-libs/gst/codecparsers/Makefile.am:
21781 build: fix make dist for codecparsers.
21783 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21785 * ext/codecparsers:
21786 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21787 h264: fix parsing of slice groups for map type = 2
21789 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21791 * ext/codecparsers:
21792 codecparsers: update to gst-vaapi branch commit f44edfc.
21793 h264: fix derivation of default scaling lists
21795 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
21797 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21798 decoder: h264: fix long-term reference picture marking process.
21799 Fix reference picture marking process with memory_management_control_op
21800 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21801 picture, or the current picture.
21802 This fixes decoding of FRExt_MMCO4_Sony_B.
21803 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21804 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21805 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21806 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21808 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21810 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21811 decoder: h264: fix initialization of RefPicLists for multiple slices.
21812 The initialization of reference picture lists (8.2.4.2) applies to all
21813 slices. So, the RefPicList0/1 lists need to be constructed prior to
21814 each slice submission to the HW decoder.
21815 This fixes decoding of video sequences where frames are encoded with
21816 multiple slices of different types, e.g. 4 slices in this order I, P,
21817 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21818 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21820 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
21822 * ext/codecparsers:
21823 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21824 decoder: h264: skip SPS extension and auxiliary slice NALs.
21825 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21826 are present in a video, decoders shall perform the (optional) decoding
21827 process specified for these NAL units or shall ignore them (7.4.1).
21828 Implement option 2 (skip) for now, as alpha composition is not
21829 supported yet during the decoding process.
21830 This fixes decoding of the primary coded video in alphaconformanceG.
21831 https://bugzilla.gnome.org/show_bug.cgi?id=703928
21832 https://bugzilla.gnome.org/show_bug.cgi?id=728869
21833 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21834 [skip NAL units earlier, i.e. at parsing time]
21835 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21837 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21839 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21840 decoder: h264: fix slice data bit offset with MVC NAL units.
21841 When MVC slice NAL units (coded slice extension and prefix NAL) are
21842 present, the number of NAL header bytes is 3, not 1 as usual.
21843 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21844 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21846 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21848 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21849 decoder: h264: fix activation of picture and sequence parameters.
21850 At the time the first VCL NAL unit of a primary coded picture is found,
21851 and if that NAL unit was parsed to be an SPS or PPS, then the entries
21852 in the parser may have been overriden. This means that, when the picture
21853 is to be decoded, slice_hdr->pps could point to an invalid (the next)
21855 So, one way to solve this problem is to not use the parser PPS and
21856 SPS info but rather maintain our own activation chain in the decoder.
21857 https://bugzilla.gnome.org/show_bug.cgi?id=724519
21858 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21860 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21862 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21863 decoder: h264: retain SEI messages until the end of frame.
21864 Retain the SEI messages that were parsed from the access unit until we
21865 have completely decoded the current frame. This is done so that we can
21866 peek at that data whenever necessary during decoding. e.g. for exposing
21867 3D stereoscopic information at a later stage.
21869 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21871 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21872 decoder: h264: add support for grayscale encoded clips.
21873 Fix support for grayscale encoded video clips, and possibly others if
21874 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21875 the decision that a surface with the desired chroma format is not
21876 supported to the actual VA driver implementation.
21877 https://bugzilla.gnome.org/show_bug.cgi?id=728144
21879 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21881 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21882 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21883 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21884 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21885 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21886 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21887 decoder: default to YUV 4:2:0 VA surfaces.
21888 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21889 make sure all codecs use YUV 4:2:0 output format for now, by default.
21891 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21893 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21894 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21895 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21896 decoder: re-indent GstVaapiDecoder base object.
21898 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21900 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21901 encoder: derive chroma type from video format.
21902 Cope with previous VA context change to derive the correct surface chroma
21903 type from the input video format.
21905 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21907 * gst-libs/gst/vaapi/gstvaapicontext.c:
21908 * gst-libs/gst/vaapi/gstvaapicontext.h:
21909 context: add support for non-YUV 4:2:0 formats.
21910 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21911 for the upper layer to specify the desired chroma type. If the chroma
21912 type field is not set (or yields zero), then YUV 4:2:0 format is used
21915 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21917 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21918 vp8: fix per-segment deblocking filter level in relative mode.
21919 Fix possible bug when a per-segment deblocking filter level value
21920 needs to be set in non-absolute mode, i.e. when the loop filter update
21921 value is negative in delta mode.
21922 Also clamp the resulting filter level value to 0..63 range.
21924 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21926 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21927 vp8: fix check for disabling the loop filter (again).
21928 Improve condition to disable the loop filter. The previous heuristic
21929 used to check all filter levels, for all segments. It turns out that
21930 only the base filter_level value defined in the frame header needs
21932 This fixes 00-comprehensive-013.
21934 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21936 * gst-libs/gst/codecparsers/Makefile.am:
21937 * gst/vaapi/Makefile.am:
21938 build: fix make dist with certain conditionals not met.
21939 Fix generation of source tarballs when certain conditionals are not
21940 met. e.g. always include all buildable codecparsers sources in the
21941 distribution tarball, fix plug-in element sources set to include X11
21944 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21947 build: add missing files for GStreamer 0.10.
21948 Add missing GstVideoEncoder implementation files to fix build with ancient
21949 GStreamer 0.10 stack.
21950 https://bugzilla.gnome.org/show_bug.cgi?id=723964
21952 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21955 build: add missing files for VP8 bitstream parser.
21956 Fix make dist for building the VP8 bitstream parser.
21958 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21961 * ext/libvpx/Makefile.am:
21962 * gst-libs/gst/codecparsers/Makefile.am:
21963 vp8: allow compilation without the built-in libvpx.
21964 The built-in libvpx serves multiple purposes, among which the most
21965 important ones could be: track the most up-to-date, and optimized,
21966 range decoder; allow for future hybrid implementations (non-VLD);
21967 and have a completely independent range decoder implementation.
21969 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21971 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21972 vp8: propagate PTS from demux frame.
21973 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
21974 or parser would already have determined the PTS from a previous stage.
21976 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21979 * debian.upstream/libgstvaapi.install.in:
21980 * ext/libvpx/Makefile.am:
21981 * ext/libvpx/sources.frag:
21982 * gst-libs/gst/codecparsers/Makefile.am:
21983 vp8: fix compilation with built-in libvpx.
21984 Apply correct patch from fd.o #722760 to fix several issues: update the
21985 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
21988 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21994 * ext/libvpx/Makefile.am:
21995 * ext/libvpx/gstlibvpx.c:
21996 * ext/libvpx/gstlibvpx.h:
21997 * ext/libvpx/libgstcodecparsers_vpx.vers:
21998 * ext/libvpx/sources.frag:
21999 * ext/libvpx/upstream:
22000 * gst-libs/gst/codecparsers/Makefile.am:
22001 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
22002 vp8: use range decoder from libvpx.
22003 Add libvpx submodule that tracks the upstream version 1.3.0. This is
22004 needed to build a libgstcodecparsers_vpx.so library with all symbols
22005 placed into the GSTREAMER namespace.
22007 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22009 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22010 vp8: fix check for disabling the loop filter.
22012 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
22016 * gst-libs/gst/codecparsers/Makefile.am:
22017 * gst-libs/gst/vaapi/Makefile.am:
22018 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22019 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22020 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22021 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22022 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22023 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
22024 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22025 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22026 * gst/vaapi/gstvaapidecode.c:
22027 Add initial VP8 decoder.
22028 https://bugzilla.gnome.org/show_bug.cgi?id=722761
22029 [complete overhaul, fixed support for resolution changes]
22030 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22032 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22034 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22035 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
22036 The gst_h264_parse_parse_sei() function now returns an array of SEI
22037 messages, instead of a single SEI message. Reason: it is allowed to
22038 have several SEI messages packed into a single SEI NAL unit, instead
22039 of multiple NAL units.
22041 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22043 * ext/codecparsers:
22044 codecparsers: update to gst-vaapi-branch commit a454f86.
22045 b2eb5f6 vp8: rename dboolhuff symbols
22046 b74a881 vp8: add GStreamer native utilities
22047 2940ac6 add VP8 bitstream parser
22049 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22051 * ext/codecparsers:
22052 codecparsers: update to gst-vaapi-branch commit d459bc5.
22053 d459bc5 h264: set framerate even for interlaced videos
22054 c78b82c h264: add support for Recovery Point SEI message
22055 7693bac h264: add support for Frame Packing Arrangement SEI message
22056 31fafa7 h264: add support for Stereo Video Information SEI message
22057 8b113a6 h264: parse seq_parameter_set_mvc_extension()
22058 040f9b8 h264: parse MVC syntax elements
22059 cc18ef3 h264: add nal_reader_skip_long() helper
22060 7e76a48 h264: fix slice_header() parsing for MVC
22061 caf46d8 h264: add gst_h264_parse_nalu_header() helper
22062 f75074e h264: add gst_h264_parse_sps_data() helper
22063 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
22064 4e36737 h264: fix skipping of unsupported SEI messages
22065 5300766 h264: fix SEI buffering_period() parsing
22067 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22069 * ext/codecparsers:
22070 * gst-libs/gst/codecparsers/Makefile.am:
22071 codecparsers: update to gst-vaapi-branch commit 8fadf40.
22072 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
22073 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
22074 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
22075 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
22076 8ec5816 h265: Fix segfault when parsing HRD parameter
22077 5b1730f h265: Fix segfault when parsing VPS
22078 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
22079 7ba641d h265: Fix debug output
22080 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
22082 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22084 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22085 decoder: h264: fix robustness patch for bytestream format.
22086 Fix parser and decoder state to sync at the right locations. This is
22087 because we could reset the parser state, while the decoder state was
22088 not copied yet, e.g. when parsing several NAL units from multiple frames
22089 whereas the current frame was not decoded yet.
22090 This is a regression brought in by commit 6fe5496.
22092 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22095 * pkgconfig/Makefile.am:
22096 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22097 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22098 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22099 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22100 build: fix pkgconfig file names (again).
22101 It turns out it is more convenient to have only pkgconfig files named
22102 after the installed GStreamer API version (1.0) instead of using all
22103 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22104 altogether anyway, so align pkgconfig file names to that.
22106 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22108 * debian.upstream/libgstvaapi-dev.install.in:
22109 * gst-libs/gst/vaapi/Makefile.am:
22110 * pkgconfig/gstreamer-vaapi.pc.in:
22111 build: fix packaging for GStreamer 1.2.
22112 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22113 the pkgconfig version (1.0) instead of the intended API version (1.2).
22114 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22115 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22117 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22120 Bump version for development.
22122 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22124 * debian.upstream/control.in:
22125 debian: fix trailing whitespace in description.
22127 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22129 * debian.upstream/control.in:
22130 * debian.upstream/copyright:
22131 debian: fix package description.
22132 Try to improve package description for the compiled plug-in elements
22133 available in there. e.g. only display vaapidownload and vaapiupload
22134 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22135 encoding is enabled, etc.
22136 Also increase the copyright notice date.
22138 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22140 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22141 build: fix warnings on 64-bit platforms.
22143 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22145 * gst-libs/gst/vaapi/gstvaapicontext.c:
22146 * gst-libs/gst/vaapi/gstvaapiutils.c:
22147 build: fix for older versions of VA-API (< 0.34.0).
22148 Fix build with older versions of VA-API (< 0.34.0), or versions without
22149 good enough headers for encoding support for instance.
22151 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22157 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22161 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22162 support. Update copyright years, list of supported Intel HD Graphics
22165 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22170 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22172 * tests/test-filter.c:
22173 tests: test-filter: fix "deinterlace" option parse.
22174 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22175 string was provided, i.e. if it remained set to NULL.
22177 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22179 * gst-libs/gst/vaapi/Makefile.am:
22180 * gst-libs/gst/vaapi/gstvaapicontext.c:
22181 * gst-libs/gst/vaapi/gstvaapicontext.h:
22182 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22183 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22184 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22185 libs: factor out usages of vaGetConfigAttributes().
22186 Add gst_vaapi_get_config_attribute() helper function that takes a
22187 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22188 is to have thread-safe VA helpers by default.
22190 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22192 * gst-libs/gst/vaapi/gstvaapiutils.c:
22193 * gst-libs/gst/vaapi/gstvaapiutils.h:
22194 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22195 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22196 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22197 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22198 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22199 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22200 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22201 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22202 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22203 libs: re-indent all source code related to VA utilities.
22205 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22207 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22208 libs: add missing file (libgstvaapi_priv_check.h).
22210 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22212 * gst-libs/gst/vaapi/gstvaapicontext.c:
22213 * gst-libs/gst/vaapi/gstvaapicontext.h:
22214 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22215 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22216 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22217 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22218 encoder: notify the encoder of the submitted packed headers.
22219 Make sure to configure the encoder with the set of packed headers we
22220 intend to generate and submit. i.e. make selection of packed headers
22221 to submit more robust.
22223 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22225 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22226 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22227 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22228 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22229 encoder: fix and factor out check for supported rate-control modes.
22230 Cache the first compatible GstVaapiProfile found if the encoder is not
22231 configured yet. Next, factor out the code to check for the supported
22232 rate-control modes by moving out vaGetConfigAttributes() to a separate
22233 function, while also making sure that the attribute type is actually
22234 supported by the encoder.
22235 Also fix the default set of supported rate control modes to not the
22236 "none" variant. It's totally useless to expose it at this point.
22238 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22240 * gst-libs/gst/vaapi/gstvaapicontext.c:
22241 * gst-libs/gst/vaapi/gstvaapicontext.h:
22242 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22243 context: move rate-control mode to encoder specific config.
22244 Move usage-specific config out of the common GstVaapiContextInfo.
22245 Create a specialized config for encoding and move rate-control mode
22248 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22250 * gst-libs/gst/vaapi/gstvaapicontext.c:
22251 * gst-libs/gst/vaapi/gstvaapicontext.h:
22252 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22253 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22254 context: introduce concept of usage.
22255 Introduce GstVaapiContextUsage so that to explicitly determine the
22256 usage of a VA context. This is useful in view to simplifying the
22257 creation of VA context for VPP too.
22259 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22261 * gst-libs/gst/vaapi/gstvaapicontext.c:
22262 context: fix get_attribute() value result.
22263 Unknown attributes, or attributes that are not supported for the given
22264 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22265 So, return failure in this case.
22267 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22269 * gst-libs/gst/vaapi/Makefile.am:
22270 * gst-libs/gst/vaapi/gstvaapicontext.c:
22271 * gst-libs/gst/vaapi/gstvaapicontext.h:
22272 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22273 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22274 * gst-libs/gst/vaapi/gstvaapisurface.c:
22275 context: move overlay composition to separate files.
22276 Move GstVideoOverlayComposition handling to separate source files.
22277 This helps keeing GstVaapiContext core implementation to the bare
22278 minimal, i.e. simpy helpers to create a VA context and handle pool
22279 of associated VA surfaces.
22281 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22283 * gst-libs/gst/vaapi/gstvaapicontext.c:
22284 * gst-libs/gst/vaapi/gstvaapicontext.h:
22285 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22286 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22287 context: clean-ups. Strip down APIs.
22288 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22289 them down to the minimal set of interfaces. They are private, so no
22290 need expose getters for instance.
22292 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22294 * gst-libs/gst/vaapi/gstvaapicontext.c:
22295 * gst-libs/gst/vaapi/gstvaapicontext.h:
22296 context: re-indent all GstVaapiContext related source code.
22298 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22300 * gst-libs/gst/vaapi/Makefile.am:
22301 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22302 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22303 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22304 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22305 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22306 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22307 * gst-libs/gst/vaapi/gstvaapiutils.h:
22308 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22309 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22310 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22311 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22312 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22313 libs: check that private headers remain private.
22314 Make sure that libgstvaapi private headers remain internally used to
22315 build libgstvaapi libraries only. All header dependencies were reviewed
22316 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22317 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22320 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22323 Bump library major version.
22324 Bump the library major version due to API/ABI changes that occurred in
22325 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22326 expose any GstCaps but provide GArray based ones e.g. to determine the
22327 set of supported decode/encode profiles.
22329 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22331 * gst-libs/gst/vaapi/glibcompat.h:
22332 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22333 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22334 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22335 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22336 * gst-libs/gst/vaapi/gstvaapicontext.c:
22337 * gst-libs/gst/vaapi/gstvaapicontext.h:
22338 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22339 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22340 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22341 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22342 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22343 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22344 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22345 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22346 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22347 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22348 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22349 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22350 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22351 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22352 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22353 * gst-libs/gst/vaapi/gstvaapifilter.c:
22354 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22355 * gst-libs/gst/vaapi/gstvaapisurface.c:
22356 * gst-libs/gst/vaapi/gstvaapisurface.h:
22357 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22358 * gst-libs/gst/vaapi/gstvaapitypes.h:
22359 * gst-libs/gst/vaapi/gstvaapiutils.c:
22360 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22361 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22362 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22363 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22364 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22365 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22366 * gst-libs/gst/vaapi/gstvaapivalue.c:
22367 * gst-libs/gst/vaapi/gstvaapivalue.h:
22368 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22369 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22370 * gst/vaapi/gstvaapidecode.c:
22371 * gst/vaapi/gstvaapiencode.c:
22372 * gst/vaapi/gstvaapiencode.h:
22373 * gst/vaapi/gstvaapiencode_h264.c:
22374 * gst/vaapi/gstvaapiencode_h264.h:
22375 * gst/vaapi/gstvaapiencode_mpeg2.c:
22376 * gst/vaapi/gstvaapiencode_mpeg2.h:
22377 * gst/vaapi/gstvaapipluginbase.c:
22378 * gst/vaapi/gstvaapipluginutil.c:
22379 * gst/vaapi/gstvaapipluginutil.h:
22380 * gst/vaapi/gstvaapipostproc.c:
22381 * gst/vaapi/gstvaapipostproc.h:
22382 * gst/vaapi/gstvaapisink.c:
22383 * gst/vaapi/gstvaapisink.h:
22384 * gst/vaapi/gstvaapivideometa_texture.c:
22385 * tests/simple-decoder.c:
22386 legal: update copyright notice dates.
22388 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22390 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22391 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22392 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22393 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22394 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22395 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22396 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22397 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22398 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22399 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22400 * gst/vaapi/gstvaapiencode.c:
22401 * gst/vaapi/gstvaapiencode.h:
22402 * gst/vaapi/gstvaapiencode_h264.c:
22403 * gst/vaapi/gstvaapiencode_h264.h:
22404 * gst/vaapi/gstvaapiencode_mpeg2.c:
22405 * gst/vaapi/gstvaapiencode_mpeg2.h:
22406 legal: add per-file authorship information.
22408 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22410 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22411 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22412 decoder: fix video codec frame number in standalone mode.
22413 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22414 stream in standalone mode. While we are at it, improve the debugging
22415 messages to also include that frame number.
22417 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22419 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22420 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22421 decoder: fix crash on invalid pointer for GST_DEBUG().
22422 When decoding failed, or that the frame was dropped, the associated
22423 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22424 message needs to check whether the proxy is actually present or not.
22425 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22426 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22427 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22429 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22431 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22432 encoder: h264: disable NAL HRD parameters for now.
22433 Don't emit NAL HRD parameters for now in the SPS headers because the
22434 SEI buffering_period() and picture_timing() messages are not handled
22435 yet. Some additional changes are necessary to get it right.
22436 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22438 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22440 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22441 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22442 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22443 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22444 encoder: h264: fix default CPB buffer size.
22445 Fix default CPB buffer size to something more reasonable (1500 ms)
22446 and that still fits the level limits. This is a non configurable
22447 property for now. The initial CPB removal delay is also fixed to
22449 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22451 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22453 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22454 encoder: h264: fix bitrate encoding for HRD conformance.
22455 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22456 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22457 that to have less losses in precision. Likewise, don't round up because
22458 that could be a strict constraint imposed by the user.
22460 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22462 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22463 encoder: h264: fix level lookup constraints wrt. bitrate.
22464 Fix the level calculation involving bitrate limits. Since we are
22465 targetting NAL HRD conformance, the check against MaxBR from the
22466 Table A-1 limits shall involve cpbBrNalFactor depending on the
22469 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22471 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22472 encoder: h264: submit sequence parameter only once.
22473 Submit sequence parameter buffers only once, or when the bitstream
22474 was reconfigured in a way that requires such. Always submit packed
22475 sequence parameter buffers at I-frame period, if the VA driver needs
22477 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22479 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22481 * gst-libs/gst/vaapi/gstvaapicontext.c:
22482 * gst-libs/gst/vaapi/gstvaapicontext.h:
22483 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22484 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22485 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22486 encoder: h264: only submit packed headers when required.
22487 Make sure to submit the packed headers only if the underlying VA driver
22488 requires those. Currently, only handle packed sequence and picture
22490 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22492 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22494 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22495 encoder: h264: fix ip_period value in sequence parameter.
22496 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22497 between the I-frame and the next P-frame. So, this also accounts for
22498 any additional B-frame in the middle of it.
22499 This fixes rate control heuristics for certain VA drivers.
22500 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22502 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22504 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22505 encoder: h264: fix level when bitrate is automatically computed.
22506 Fix level characterisation when the bitrate is automatically computed
22507 from the active coding tools. i.e. ensure the bitrate once the profile
22508 is completely characterized but before the level calculation process.
22510 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22512 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22513 encoder: h264: clean-ups.
22514 Document and rename a few functions here and there. Drop code that
22515 caps num_bframes variable in reset_properties() since they shall
22516 have been checked beforehand, during properties initialization.
22518 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22520 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22521 encoder: h264: clean-up bitwriter related utilities.
22522 Clean-up GstBitWriter related utility functions and simplify notations.
22523 While we are at it, also make bitstream writing more robust should an
22524 overflow occur. We could later optimize for writing headers capped to
22525 their maximum possible size by using the _unchecked() helper variants.
22527 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22529 * gst-libs/gst/vaapi/Makefile.am:
22530 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22531 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22532 encoder: h264: completely remove private headers.
22533 Drop private header since it was originally used to expose internals
22534 to the plugin element. The proper interface is now the properties API,
22535 thus rendering private headers totally obsolete.
22537 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22539 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22540 encoder: h264: fix PPS header packing with profile < high.
22541 Fix PPS header packing when profile is below High since 8x8 transform
22542 mode and scaling lists are High Profile features.
22544 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22546 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22547 encoder: h264: always emit VUI parameters for framerate.
22548 Always emit VUI parameters for timing_info, which includes framerate
22551 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22553 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22554 encoder: h264: really fix frame cropping rectangle calculation.
22555 Make frame cropping rectangle calculation future proof, i.e. exactly
22556 follow the specification (7-18) to (7-21), and subsampling definitions
22558 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22559 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22561 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22563 * gst/vaapi/gstvaapisink.c:
22564 * gst/vaapi/gstvaapisink.h:
22565 vaapisink: set csc render flags from sinkpad caps.
22566 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22567 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22569 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22570 [factored out code, added SMPTE240M, handle per-buffer flags]
22571 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22573 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22575 * gst-libs/gst/vaapi/gstvaapisurface.h:
22576 * gst-libs/gst/vaapi/gstvaapiutils.c:
22577 * gst/vaapi/gstvaapipostproc.c:
22578 surface: rework render flags.
22579 Pack render flags per category and provide more flags into the color
22580 standard category. In particular, cover for SMPTE-240M.
22582 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22584 * gst-libs/gst/vaapi/gstvaapifilter.c:
22585 * gst/vaapi/gstvaapipostproc.c:
22586 * gst/vaapi/gstvaapipostproc.h:
22587 vaapipostproc: add support for colorbalance filters.
22588 Add support for hue, saturation, brightness and constrat adjustments.
22589 Also fix cap info local copy to match the really expected cap subtype
22591 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22592 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22594 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22596 * gst/vaapi/gstvaapipostproc.c:
22597 vaapipostproc: fix support for "sharpen" filter.
22598 Fix copy/paste error when submitting the "sharpen" value to the
22599 GstVaapiFilter instance.
22600 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22601 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22603 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22606 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22607 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22608 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22609 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22610 * pkgconfig/gstreamer-vaapi.pc.in:
22611 pkgconfig: plugin dir should use PKG version not API version.
22612 Fix the pluginsdir and includedir variables in the generated pkgconfig
22613 (.pc) files. The location needs to be built with the PKG version in
22614 mind instead of the API version.
22615 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22616 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22617 [additional fixes for includedir and pkg requirements]
22618 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22620 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22622 * gst/vaapi/gstvaapisink.c:
22623 vaapisink: fix display initialization in GstVideoOverlay implementation.
22624 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22625 before the pipeline has been set to PLAYING, the display has not yet
22626 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22627 up-to-date. For this reason the foreign XID is not attached.
22628 Now _ensure_display() is called earlier.
22629 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22630 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22632 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22634 * gst/vaapi/gstvaapisink.c:
22635 vaapisink: expose the raw video formats in static caps template.
22636 Expose all raw video formats in the static caps template since the
22637 vaapisink is supporting raw data. We will get the exact set of formats
22638 supported by the driver dynamically through the _get_caps() routine.
22639 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22640 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22641 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22643 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22645 * gst/vaapi/gstvaapidecode.c:
22646 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22647 Fix vaapidecode to correctly report caps features downstream, when
22648 a custom pipeline is built manually.
22649 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22650 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22652 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22654 * gst/vaapi/gstvaapidecode.c:
22655 vaapidecode: add system memory caps to template caps.
22656 Since vaapidecode provides buffer that can be mapped as regular memory,
22657 those caps should be added to the template caps. That only applies to
22659 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22660 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22662 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22664 * gst/vaapi/gstvaapidecode.c:
22665 vaapidecode: fix hang on SIGINT.
22666 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22667 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22668 locked. This fixes a deadlock on state change from PAUSED to READY.
22669 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22670 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22672 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
22674 * gst/vaapi/gstvaapiencode.c:
22675 vaapiencode: fix possible hang on SIGINT.
22676 vaapiencode might hang when the pipeline is stopped without any EOS,
22677 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22678 running and locked. This fixes a possible deadlock on state change
22679 from PAUSED to READY.
22680 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22681 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22683 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22685 * gst/vaapi/gstvaapiencode.c:
22686 vaapiencode: fix typo in error message.
22687 Fix incomplete error message in gst_vaapiencode_push_frame().
22689 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22691 * gst/vaapi/gstvaapipluginutil.c:
22692 * gst/vaapi/gstvaapipluginutil.h:
22693 plugins: add helpers to create video caps with features.
22694 Add gst_vaapi_video_format_new_template_caps_with_features() helper
22695 function to add the supplied caps feature string on GStreamer >= 1.2.
22696 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22697 the "best" caps feature to use for the supplied pad. In practice, we
22698 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22699 and finally the system memory caps.
22700 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22702 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22704 * gst/vaapi/gstvaapivideometa_texture.c:
22705 plugins: don't apply overlay composition in GLTextureUpload function.
22706 The GLTextureUpload function is not in charge of doing the overlay
22707 composition if any.
22708 https://bugzilla.gnome.org/show_bug.cgi?id=721859
22709 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22711 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22713 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22714 encoder: re-order submission of VA objects.
22715 Change the submission order of VA objects so that to make that process
22716 more logical. i.e. submit sequence parameter first, if any; next the
22717 packed headers associated to sequece, picture or slices; and finally
22718 the actual picture and associated slices.
22720 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22722 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22723 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22724 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22725 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22726 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22727 encoder: clean-up objects.
22728 Various clean-ups to improve consistency and readability: rename some
22729 variables, drop unused macro definitions, drop initialization of vars
22730 that are zero-initialized from the base class, drop un-necessary casts,
22731 allocate GPtrArrays with a destroy function.
22733 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22735 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22736 encoder: h264: fix frame cropping rectangle calculation.
22737 Fix frame cropping rectangle calculation to handle horizontal resolutions
22738 that don't match a multiple of 16 pixels, but also the vertical resolution
22739 that was incorrectly computed for progressive sequences too.
22740 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22742 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22744 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22745 encoder: h264: improve automatic bitrate calculation.
22746 For non "Constant-QP" modes, we could provide more reasonable heuristics
22747 for the target bitrate. In general, 48 bits per macroblock with all the
22748 useful coding tools enable looks safe enough. Then, this rate is raised
22749 by +10% to +15% for each coding tool that is disabled.
22750 https://bugzilla.gnome.org/show_bug.cgi?id=719699
22752 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22754 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22755 encoder: h264: support "high-compression" tuning option.
22756 Add support for "high-compression" tuning option. First, determine the
22757 largest supported profile by the hardware. Next, check any target limit
22758 set by the user. Then, enable each individual coding tool based on the
22759 resulting profile_idc value to use.
22760 https://bugzilla.gnome.org/show_bug.cgi?id=719696
22762 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22764 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22765 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22766 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22767 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22768 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22769 * gst/vaapi/gstvaapiencode_h264.c:
22770 encoder: h264: allow target decoder constraints.
22771 Allow user to precise the largest profile to use for encoding due
22772 to target decoder constraints. For instance, if CABAC entropy coding
22773 mode is requested by "constrained-baseline" profile only is desired,
22774 then an error is returned during codec configuration.
22775 Also make sure that the suitable profile we derived actually matches
22776 what the HW can cope with.
22777 https://bugzilla.gnome.org/show_bug.cgi?id=719694
22779 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22781 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22782 encoder: h264: refine size of coded buffer.
22783 Refine the heuristic to determine the maximum size of a coded buffer
22784 to account for the exact number of slices. set_context_info() is the
22785 last step during codec reconfiguration, no additional change is done
22786 afterwards, so re-using the num_slices field here is fine.
22787 https://bugzilla.gnome.org/show_bug.cgi?id=719953
22789 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
22791 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22792 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22793 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22794 encoder: h264: expose more coding tools.
22795 Add new H.264 coding tools to improve compression:
22796 - "cabac": enable CABAC entropy coding (default: FALSE);
22797 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22798 https://bugzilla.gnome.org/show_bug.cgi?id=719693
22799 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22801 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22803 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22804 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22805 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22806 encoder: h264: derive profile and level from active coding tools.
22807 Automatically derive the minimum profile and level to be used for
22808 encoding, based on the activated coding tools. The encoder will
22809 be trying to generate a bitstream that has the best chances to be
22810 decoded on most platforms by default.
22811 Also change the default profile to "constrained-baseline" so that
22812 to ensure maximum compatibility when the stream is decoded.
22813 https://bugzilla.gnome.org/show_bug.cgi?id=719691
22815 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22817 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22818 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22819 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22820 encoder: h264: fix hardware profile lookup.
22821 Fix lookup for a suitable HW profile, as to be used by the underlying
22822 hardware, based on heuristics that lead to characterize the SW profile,
22823 i.e. the one used by the SW level encoding logic.
22824 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22825 as they should respectively match the baseline and main profile.
22826 https://bugzilla.gnome.org/show_bug.cgi?id=719827
22828 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22830 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22831 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22832 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22833 encoder: h264: support only the byte-stream format.
22834 The libgstvaapi core encoders are meant to support raw bitstreams only.
22835 Henceforth, we are always producing a stream in "byte-stream" format.
22836 However, the "codec-data" buffer which holds SPS and PPS headers is
22837 always available. The "lengthSizeMinusOne" field is always set to 3
22838 so that in-place "byte-stream" format to "avc" format conversion could
22841 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22843 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22844 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22845 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22846 * gst/vaapi/gstvaapiencode_h264.c:
22847 encoder: h264: clean-ups.
22848 Various clean-ups to improve consistency and readability: rename some
22849 variables, drop unused macro definitions, drop initialization of vars
22850 that are zero-initialized from the base class, drop un-necessary casts.
22852 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22854 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22855 encoder: mpeg2: fix hardware profile lookup.
22856 Fix lookup for a suitable HW profile, as to be used by the underlying
22857 hardware, based on heuristics that lead to characterize the SW profile,
22858 i.e. the one used by the SW level encoding logic.
22860 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22862 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22863 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22864 encoder: mpeg2: derive profile and level from active coding tools.
22865 Automatically derive the minimum profile and level to be used for
22866 encoding, based on the activated coding tools. Improve lookup for
22867 the best suitable level with the new MPEG-2 helper functions.
22868 Also change the default profile to "simple" so that to ensure maximum
22869 compatibility when the stream is decoded.
22870 https://bugzilla.gnome.org/show_bug.cgi?id=719703
22872 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22874 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22875 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22876 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22877 encoder: mpeg2: clean-ups.
22878 Various clean-ups to improve consistency and readability: drop unused
22879 macro definitions, drop initialization of vars that are zero-initialized
22880 from the base class, drop un-necessary casts.
22882 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22884 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22885 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22886 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22887 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22888 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22889 encoder: add tuning options API.
22890 Add encoder "tune" option to override the default behaviour that is to
22891 favor maximum decoder compatibility at the expense of lower compression
22893 Expected tuning options to be developed are:
22894 - "high-compression": improve compression, target best-in-class decoders;
22895 - "low-latency": tune for low-latency decoding;
22896 - "low-power": tune for encoding in low power / resources conditions.
22898 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22900 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22901 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22902 encoder: fix bitrate units to match kbps.
22903 Bitrate is expressed in kilobits per second (kbps). So, this exactly
22904 means in multiple of 1000 bits, not 1024 bits.
22905 https://bugzilla.gnome.org/show_bug.cgi?id=722086
22907 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22909 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22910 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22911 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22912 encoder: clean-ups.
22913 Drop obsolete and unused macros. Add a few doc comments. Slightly
22914 improve indentation of a few leftovers.
22916 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22918 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22919 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22920 * gst-libs/gst/vaapi/gstvaapivalue.c:
22921 * gst-libs/gst/vaapi/gstvaapivalue.h:
22922 encoder: filter out the supported set of rate-control properties.
22923 Only expose the exact static set of supported rate-control properties
22924 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22925 only support CQP rate control, then only add it the the exposed enum
22927 Add helper macros and functions to build a GType for an enum subset.
22929 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22931 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22932 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22933 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22934 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22935 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22936 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22937 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22938 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22939 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22940 encoder: add keyframe period API.
22941 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22942 user control the maximum distance between two keyframes. This new
22943 property can only be set prior to gst_vaapi_encoder_set_codec_state().
22944 A value of zero for "keyframe-period" gets it re-evaluated to the
22945 actual framerate during encoder reconfiguration.
22947 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22949 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22950 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22951 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22952 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22953 encoder: improve codec reconfiguration.
22954 Improve codec reconfiguration to be performed only through a single
22955 function. That is, remove the _set_context_info() hook as subclass
22956 should not alter the parent GstVaapiContextInfo itself. Besides, the
22957 VA context is constructed only at the final stages of reconfigure().
22959 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22961 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22962 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22963 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22964 encoder: fix possible memory leak of coded buffer pools.
22965 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
22966 buffer pool only if the coded buffer size actually changed.
22968 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22970 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22971 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22972 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22973 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22974 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22975 * gst/vaapi/gstvaapiencode.c:
22976 * gst/vaapi/gstvaapiencode.h:
22977 encoder: add video codec-state API.
22978 Add interface to communicate the encoder resolution and related info
22979 like framerate, interlaced vs. progressive, etc. This new interface
22980 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
22981 but rather use GstVideoCodecState.
22982 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
22983 point for codec config. This means that the encoder is reconfigured
22984 there to match the latest properties.
22986 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22988 * gst/vaapi/gstvaapiencode.c:
22989 vaapiencode: don't crash on NULL encoder on _finish().
22990 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
22991 if it was not created in the first place. Return "not-negotiated" error
22992 since this means we did not even reach GstVideoEncoder::set_format(),
22993 where the encoder could have been created.
22994 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
22995 and that we failed to negotiate either pad.
22996 https://bugzilla.gnome.org/show_bug.cgi?id=719704
22998 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23000 * gst/vaapi/gstvaapiencode.c:
23001 * gst/vaapi/gstvaapiencode.h:
23002 * gst/vaapi/gstvaapiencode_h264.c:
23003 vaapiencode: use more GstVaapiPluginBase facilities.
23004 Avoid duplication of pad references or query functions since they are
23005 provided through the GstVaapiPluginBase object.
23007 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23009 * gst/vaapi/gstvaapiencode.c:
23010 * gst/vaapi/gstvaapiencode.h:
23011 * gst/vaapi/gstvaapiencode_h264.c:
23012 * gst/vaapi/gstvaapiencode_h264.h:
23013 * gst/vaapi/gstvaapiencode_mpeg2.c:
23014 vaapiencode: fix negotiation process of output caps.
23015 The specified caps in gst_video_encoder_set_output_state() function
23016 arguments should not contain any resolution, pixel-aspect-ratio,
23017 framerate, codec-data et al. Those rather should be set through the
23018 returned GstVideoCodecState. This means that output caps creation
23019 could be delayed until before gst_video_encoder_finish_frame() is
23021 This greatly simplifies the GstVideoEncoder::set_format() callback
23024 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23026 * gst/vaapi/gstvaapiencode.c:
23027 vaapiencode: make GstVaapiEncode an abstract type.
23028 Make base GstVaapiEncode class an abstract type so that we cannot
23029 create an instance from it without going through any of the codec
23030 specific derived class.
23032 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23034 * gst/vaapi/gstvaapiencode.c:
23035 * gst/vaapi/gstvaapiencode.h:
23036 * gst/vaapi/gstvaapiencode_h264.c:
23037 * gst/vaapi/gstvaapiencode_mpeg2.c:
23038 vaapiencode: rename a few member functions.
23039 Rename a few member functions to make them more consistent:
23040 - alloc_encoder(): now reduced to allocate the encoder object only;
23041 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
23043 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23045 * gst/vaapi/gstvaapiencode.c:
23046 * gst/vaapi/gstvaapiencode.h:
23047 * gst/vaapi/gstvaapiencode_h264.c:
23048 * gst/vaapi/gstvaapiencode_h264.h:
23049 * gst/vaapi/gstvaapiencode_mpeg2.c:
23050 vaapiencode: update for new properties API.
23051 Update MPEG-2 and H.264 encode elements to cope with the new core
23052 libgstvaapi properties API. i.e. all configurable properties are now
23053 directly handled at the GstVaapiEncoder level.
23054 Besides, this also makes sure to not use or modify the GstVaapiEncoder
23055 private definitions directly. Private data need to remain private.
23056 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23058 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23060 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23061 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23062 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23063 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23064 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23065 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23066 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23067 encoder: add properties API.
23068 Add interface to communicate configurable properties to the encoder.
23069 This covers both the common ones (rate-control, bitrate), and the
23070 codec specific properties.
23071 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23073 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23075 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23076 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23077 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23078 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23079 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23080 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23081 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23082 * gst/vaapi/gstvaapiencode.c:
23083 * gst/vaapi/gstvaapiencode_h264.c:
23084 * gst/vaapi/gstvaapiencode_mpeg2.c:
23085 encoder: add bitrate API.
23086 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23087 the bitrate for encoding. Currently, changing this parameter is only
23088 valid before the first frame is encoded. Should the value be modified
23089 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23091 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23093 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23095 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23096 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23097 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23098 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23099 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23100 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23101 * gst-libs/gst/vaapi/gstvaapitypes.h:
23102 * gst/vaapi/gstvaapiencode.c:
23103 * gst/vaapi/gstvaapiencode.h:
23104 * gst/vaapi/gstvaapiencode_h264.c:
23105 * gst/vaapi/gstvaapiencode_mpeg2.c:
23106 encoder: add rate control API.
23107 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23108 rate control mode for encoding. Changing the rate control mode is
23109 only valid prior to encoding the very first frame. Afterwards, an
23110 error ("operation-failed") is issued.
23111 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23113 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23115 * gst/vaapi/gstvaapiencode.c:
23116 * gst/vaapi/gstvaapiencode_h264.c:
23117 * gst/vaapi/gstvaapiencode_mpeg2.c:
23118 vaapiencode: fix indentation.
23120 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23122 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23123 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23124 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23125 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23126 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23127 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23128 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23129 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23130 * gst/vaapi/gstvaapiencode.h:
23131 encoder: fix indentation.
23133 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23135 * gst-libs/gst/vaapi/Makefile.am:
23136 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23137 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23138 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23139 utils: add new MPEG-2 helper functions.
23140 Add various helper functions to convert profile, level, chroma formats
23141 from gstreamer-vaapi world and the MPEG-2 specification world.
23143 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23145 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23146 utils: h264: don't use fatal asserts.
23147 Replace g_assert() with a g_debug() so that to not make the program
23148 abort when an unsupported value is supplied.
23150 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23152 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23153 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23154 utils: h264: add helpers for profile and level string mappings.
23155 Add profile and level helper functions to convert to/from strings.
23157 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23159 * gst-libs/gst/vaapi/Makefile.am:
23160 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23161 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23162 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23163 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23164 utils: h264: expose levels in public header.
23165 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23166 H.264 levels in there. The additional helper functions are meant
23167 to be private for now.
23169 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23171 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23172 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23173 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23174 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23175 codec: add helper macros to maintain object refcount.
23176 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23177 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23179 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23181 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23182 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23183 codec: re-indent decoder objects.
23185 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23187 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23188 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23189 codec: re-indent base codec objects.
23191 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23193 * gst/vaapi/gstvaapipluginbase.c:
23194 plugins: do not free debug category in finalize method.
23195 Fixes a crash when multiple vaapidecode elements are finalized since
23196 the debug category is created once in the class init method.
23197 This is a regression from git commit 7e58d60.
23198 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23199 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23201 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23203 * gst-libs/gst/vaapi/glibcompat.h:
23204 * tests/simple-decoder.c:
23205 tests: simple-decoder: don't use deprecated g_thread_create().
23206 Use g_thread_try_new() instead of the deprecated g_thread_create()
23207 function. Provide compatibility glue for any GLib version < 2.31.2.
23209 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23211 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23212 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23213 * gst-libs/gst/vaapi/gstvaapisurface.c:
23214 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23215 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23216 * gst/vaapi/gstvaapiencode.c:
23217 Fix printf()-like formats.
23218 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23219 make size_t arguments use the %zu format specifier accordingly; force
23220 XID formats to be a 32-bit unsigned integer; and fix the format used
23221 for gst_vaapi_create_surface_with_format() error cases since we have
23222 been using strings nowadays.
23224 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23226 * gst-libs/gst/vaapi/video-format.c:
23227 * gst-libs/gst/vaapi/video-format.h:
23228 utils: format: drop unused helper functions.
23229 The following helper functions are no longer used, thus are removed:
23230 - gst_vaapi_video_format_from_structure()
23231 - gst_vaapi_video_format_from_caps()
23232 - gst_vaapi_video_format_to_caps()
23234 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23236 * gst-libs/gst/vaapi/video-format.c:
23237 * gst-libs/gst/vaapi/video-format.h:
23238 utils: re-indent GstVideoFormat related helpers.
23240 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23242 * gst/vaapi/gstvaapidownload.c:
23243 download: use GstVideoInfo facilities to build output caps.
23244 Use standard GstVideoInfo related functions to build the output caps,
23245 thus directly preserving additional fields as needed, instead of
23246 manually copying them over through gst_vaapi_append_surface_caps().
23247 Also ensure that the input caps are fixated first.
23249 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23251 * gst/vaapi/gstvaapidownload.c:
23252 * gst/vaapi/gstvaapipluginutil.c:
23253 * gst/vaapi/gstvaapipluginutil.h:
23254 * gst/vaapi/gstvaapiuploader.c:
23255 plugins: factor out construction of template caps.
23256 Add new helper functions to build video template caps.
23257 - gst_vaapi_video_format_new_template_caps():
23258 create GstCaps with size, frame rate and PAR to full range
23259 - gst_vaapi_video_format_new_template_caps_from_list():
23260 try to create a "simplified" list from the supplied formats
23262 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23264 * gst/vaapi/gstvaapipluginutil.c:
23265 * gst/vaapi/gstvaapipluginutil.h:
23266 * gst/vaapi/gstvaapipostproc.c:
23267 plugins: factor out construction of GValue from GstVideoFormat.
23268 Add new helper functions to build GValues from GstVideoFormat:
23269 - gst_vaapi_value_set_format():
23270 build a GValue from the supplied video format
23271 - gst_vaapi_value_set_format_list():
23272 build a GValue list from the supplied array of video formats
23274 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23276 * gst/vaapi/gstvaapipluginutil.c:
23277 * gst/vaapi/gstvaapipluginutil.h:
23278 * gst/vaapi/gstvaapivideocontext.c:
23279 * gst/vaapi/gstvaapivideocontext.h:
23280 plugins: re-indent common and video context creation utils.
23282 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23284 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23285 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23286 * gst/vaapi/gstvaapidecode.c:
23287 * tests/test-display.c:
23288 display: don't use GstCaps for decode or encode profiles list.
23289 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23290 more convenient APIs that return an array of GstVaapiProfile instead
23291 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23293 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23295 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23296 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23297 * gst/vaapi/gstvaapidownload.c:
23298 * gst/vaapi/gstvaapiuploader.c:
23299 * tests/test-display.c:
23300 display: don't use GstCaps for image or subpicture formats list.
23301 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23302 returned GstCaps, with more convenient APIs that return an array of
23303 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23305 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23307 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23308 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23309 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23310 display: allocate queried resources on-demand.
23311 Allocate the set of decoders or encoders on-demand, when they are
23312 queried. Likewise for VA display attributes, image and subpicture
23315 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23317 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23318 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23319 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23320 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23321 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23322 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23323 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23324 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23325 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23326 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23327 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23328 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23329 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23330 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23331 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23332 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23333 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23334 display: re-indent all GstVaapiDisplay related source code.
23336 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23338 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23339 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23340 utils: add helper functions to get codec or profile name.
23342 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23344 * gst/vaapi/gstvaapipostproc.c:
23345 * gst/vaapi/gstvaapipostproc.h:
23346 * gst/vaapi/gstvaapiuploader.c:
23347 plugins: fix permissions for certain files.
23348 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23351 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23353 * gst/vaapi/gstvaapivideometa_texture.c:
23354 plugins: implement GLTextureUploadMeta user data copy.
23355 Makes the copies of a buffer reference their own GLTextureUploadMeta
23356 user data and prevent the original buffer accessing already freed
23357 memory if its copies has been released and freed.
23358 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23359 [Propagate the original meta texture to the copy too]
23360 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23362 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23364 * gst/vaapi/gstvaapiencode.c:
23365 * gst/vaapi/gstvaapiencode.h:
23366 * gst/vaapi/gstvaapipluginbase.c:
23367 * gst/vaapi/gstvaapipluginbase.h:
23368 * gst/vaapi/gstvaapipostproc.c:
23369 * gst/vaapi/gstvaapipostproc.h:
23370 * gst/vaapi/gstvaapisink.c:
23371 * gst/vaapi/gstvaapisink.h:
23372 plugins: factor out support for raw YUV buffers on sink pads.
23373 Factor out propose_allocation() hooks, creation of video buffer pool
23374 for the sink pad, conversion from raw YUV buffers to VA surface backed
23375 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23376 with the new GstVaapiPluginBase abilities.
23378 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23380 * gst-libs/gst/vaapi/gstcompat.h:
23381 * gst/vaapi/gstvaapidecode.c:
23382 * gst/vaapi/gstvaapidecode.h:
23383 * gst/vaapi/gstvaapidownload.c:
23384 * gst/vaapi/gstvaapipluginbase.c:
23385 * gst/vaapi/gstvaapipluginbase.h:
23386 * gst/vaapi/gstvaapipostproc.c:
23387 * gst/vaapi/gstvaapipostproc.h:
23388 * gst/vaapi/gstvaapisink.c:
23389 * gst/vaapi/gstvaapiupload.c:
23390 plugins: factor out pad caps.
23392 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23394 * gst/vaapi/gstvaapidecode.c:
23395 * gst/vaapi/gstvaapidownload.c:
23396 * gst/vaapi/gstvaapiencode.c:
23397 * gst/vaapi/gstvaapipluginbase.c:
23398 * gst/vaapi/gstvaapipostproc.c:
23399 * gst/vaapi/gstvaapisink.c:
23400 * gst/vaapi/gstvaapiupload.c:
23401 plugins: factor out video context sharing code.
23403 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23405 * gst/vaapi/gstvaapidecode.c:
23406 * gst/vaapi/gstvaapidownload.c:
23407 * gst/vaapi/gstvaapiencode.c:
23408 * gst/vaapi/gstvaapipluginbase.c:
23409 * gst/vaapi/gstvaapipluginbase.h:
23410 * gst/vaapi/gstvaapipostproc.c:
23411 * gst/vaapi/gstvaapisink.c:
23412 * gst/vaapi/gstvaapiupload.c:
23413 plugins: factor out GstImplementsInterface.
23415 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23417 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23418 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23419 * gst/vaapi/gstvaapipluginbase.c:
23420 * gst/vaapi/gstvaapipluginutil.c:
23421 plugins: check type of display obtained from neighbours.
23422 Fix display creation code to check that any display obtained from a
23423 neighbour actually has the type we expect. Note: if display type is
23424 set to "any", we can then accept any VA display type.
23426 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23428 * gst/vaapi/gstvaapidecode.c:
23429 * gst/vaapi/gstvaapidownload.c:
23430 * gst/vaapi/gstvaapiencode.c:
23431 * gst/vaapi/gstvaapipluginbase.c:
23432 * gst/vaapi/gstvaapipluginbase.h:
23433 * gst/vaapi/gstvaapipluginutil.c:
23434 * gst/vaapi/gstvaapipluginutil.h:
23435 * gst/vaapi/gstvaapipostproc.c:
23436 * gst/vaapi/gstvaapisink.c:
23437 * gst/vaapi/gstvaapisink.h:
23438 * gst/vaapi/gstvaapiupload.c:
23439 plugins: factor out display creation process.
23440 Move common VA display creation code to GstVaapiPluginBase, with the
23441 default display type remaining "any". Also add a "display-changed"
23442 hook so that subclasses could perform additional tasks when/if the
23443 VA display changed, due to a new display type request for instance.
23444 All plug-ins are updated to cope with the new internal APIs.
23446 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23448 * gst/vaapi/Makefile.am:
23449 * gst/vaapi/gstvaapidecode.c:
23450 * gst/vaapi/gstvaapidecode.h:
23451 * gst/vaapi/gstvaapidownload.c:
23452 * gst/vaapi/gstvaapidownload.h:
23453 * gst/vaapi/gstvaapiencode.c:
23454 * gst/vaapi/gstvaapiencode.h:
23455 * gst/vaapi/gstvaapipluginbase.c:
23456 * gst/vaapi/gstvaapipluginbase.h:
23457 * gst/vaapi/gstvaapipostproc.c:
23458 * gst/vaapi/gstvaapipostproc.h:
23459 * gst/vaapi/gstvaapisink.c:
23460 * gst/vaapi/gstvaapisink.h:
23461 * gst/vaapi/gstvaapiupload.c:
23462 * gst/vaapi/gstvaapiupload.h:
23463 plugins: add new base object, store display in there.
23464 Introduce a new GstVaapiPluginBase object that will contain all common
23465 data structures and perform all common tasks. First step is to have a
23466 single place to hold VA displays.
23467 While we are at it, also make sure to store and subsequently release
23468 the appropriate debug category for the subclasses.
23470 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23472 * gst-libs/gst/vaapi/gstvaapiobject.h:
23473 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23474 * gst/vaapi/gstvaapivideometa_texture.c:
23475 * gst/vaapi/gstvaapivideometa_texture.h:
23476 plugins: fix GLTextureUploadMeta to work with different texture ids.
23477 The GLTextureUploadMeta implementation assumed that for each upload()
23478 sequence, the supplied texture id is always the same as the one that
23479 was previously cached into the underlying GstVaapiTexture. Cope with
23480 any texture id change the expense to recreate the underlying VA/GLX
23482 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23484 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23486 * gst/vaapi/gstvaapidecode.c:
23487 * gst/vaapi/gstvaapivideobufferpool.c:
23488 * gst/vaapi/gstvaapivideometa_texture.c:
23489 plugins: allow builds without GLX enabled for GStreamer 1.2.
23490 Don't try to build GLTextureUploadMeta related code if GLX is not
23491 enabled during GStreamer >= 1.2 builds.
23493 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23495 * gst/vaapi/gstvaapidecode.c:
23496 * gst/vaapi/gstvaapivideobufferpool.c:
23497 * gst/vaapi/gstvaapivideobufferpool.h:
23498 * gst/vaapi/gstvaapivideometa_texture.c:
23499 * gst/vaapi/gstvaapivideometa_texture.h:
23500 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23501 Requesting the GLTextureUpload meta on buffers in the bufferpool
23502 prevents such metas from being de-allocated when buffers are released
23504 This is particulary useful in terms of performance when using the
23505 GLTextureUploadMeta API since the GstVaapiTexture associated with
23506 the target texture is stored in the meta.
23507 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23508 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23510 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23512 * gst/vaapi/gstvaapivideometa_texture.c:
23513 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23514 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23515 when the GstVaapiTexture associated with the supplied texture id could
23518 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23520 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23521 h264: improve robustness when packets are missing.
23522 Improve robustness when some expected packets where not received yet
23523 or that were not correctly decoded. For example, don't try to decode
23524 a picture if there was no valid frame headers parsed so far.
23525 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23527 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23529 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23530 decoder: h264: fix decoding of BA3_SVA_C.264.
23531 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23532 extended profile specifications. However, the SPS header has the
23533 constraint_set1_flag syntax element set to 1. This means that, if
23534 a Main profile compliant decoder is available, then it should be
23535 able to decode this stream.
23536 This changes makes it possible to fall-back from Extended profile
23537 to Main profile if constraint_set1_flag is set to 1.
23538 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23540 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23542 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23543 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23544 utils: h264: add more profiles.
23545 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23546 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23547 multiview profiles (H.10.1.1, H.10.1.2).
23548 Document "Constrained Baseline" and "High 10" profiles.
23550 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23552 * ext/codecparsers:
23553 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23554 e7d0e18 h264: complete set of NAL unit types
23556 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23558 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23559 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23560 decoder: h264: add support for constrained baseline profile.
23561 Recognize streams marked as conforming to the "Constrained Baseline
23562 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23563 to baseline, main or high profile.
23564 Constrained Baseline Profile conveys coding tools that are common
23565 to baseline profile and main profile.
23566 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23567 [Added fallbacks to main and high profiles]
23568 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23570 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23572 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23573 decoder: h264: fix decoding of scaling lists.
23574 The GStreamer codecparser layer now parses the scaling lists in zigzag
23575 scan order, as expected, so that to match the original bitstream layout
23576 and specification. However, further convert the scaling lists into
23577 raster scan order to fit the existing practice in most VA drivers.
23578 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23580 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23582 * ext/codecparsers:
23583 codecparsers: update to gst-vaapi-branch commit 177c73b.
23584 a7e3255 add H.265 (HEVC) bitstream parser
23585 177c73b h264: fix picture level scaling lists derivation (rule B)
23586 14733f1 h264: fix parsing of VCL HRD parameters
23587 59a0b47 h264: store quantization matrices in zig-zag order
23588 ffb6e26 h264: add helpers to convert quantization matrices
23589 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23590 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23591 5241d8e all: remove some unused functions
23592 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23593 963c04a all: make warnings more meaningful
23595 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23597 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23598 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23599 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23600 utils: add helpers for H.264 levels.
23601 - gst_vaapi_utils_h264_get_level():
23602 Returns GstVaapiLevelH264 from H.264 level_idc value
23603 - gst_vaapi_utils_h264_get_level_idc():
23604 Returns H.264 level_idc value from GstVaapiLevelH264
23605 - gst_vaapi_utils_h264_get_level_limits():
23606 Returns level limits as specified in Table A-1 of the H.264 standard
23607 - gst_vaapi_utils_h264_get_level_limits_table():
23608 Returns the Table A-1 specification
23610 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23612 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23613 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23614 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23615 utils: add new H.264 profiles.
23616 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23617 and helper functiions.
23619 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23621 utils: add new H.264 helper functions.
23623 - gst_vaapi_utils_h264_get_profile():
23624 Returns GstVaapiProfile from H.264 profile_idc value
23625 - gst_vaapi_utils_h264_get_profile_idc():
23626 Returns H.264 profile_idc value from GstVaapiProfile
23628 - gst_vaapi_utils_h264_get_chroma_type():
23629 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23630 - gst_vaapi_utils_h264_get_chroma_format_idc():
23631 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23633 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23635 * gst-libs/gst/base/Makefile.am:
23636 * gst-libs/gst/vaapi/Makefile.am:
23637 Fix missing files in distribution tarball.
23638 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23639 [Additional fixes and clean-ups]
23640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23642 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23644 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23645 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23646 encoder: fix computation of max coded buffer size (again).
23647 The previous fix was only valid to express the maximum size of the
23648 macroblock layer, i.e. without any headers. Now, also account for
23649 the slice headers and top picture header, but also any other header
23650 we might stuff into the VA coded buffer, e.g. sequence headers.
23652 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23654 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23655 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23656 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23657 encoder: fix computation of max coded buffer size.
23658 Fix coded buffer size for each codec. A generic issue was that the
23659 number of macroblocks was incorrectly computed. The second issue was
23660 specific to MPEG-2 were the max number of bits per macroblock, and
23661 as defined by the standard, was incorrectly mapped to the (lower)
23662 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23664 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23666 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23667 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23668 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23669 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23670 encoder: simplify VA context initialization process.
23671 Change get_context_info() into a set_context_info() function that
23672 initializes common defaults into the base class, thus allowing the
23673 subclasses to specialize the context info further on.
23674 The set_context_info() hook is also the location where additional
23675 context specific data could be initialized. At this point, we are
23676 guaranteed to have valid video resolution size and framerate. i.e.
23677 gst_vaapi_encoder_set_format() was called beforehand.
23679 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
23681 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23682 encoder: fix mpeg2 compilation error.
23683 https://bugzilla.gnome.org/show_bug.cgi?id=719746
23684 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23686 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23688 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23689 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23690 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23691 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23692 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23693 * gst/vaapi/gstvaapiencode.c:
23694 encoder: clean-ups and document public APIs.
23695 Clean public APIs up so that to better align with the decoder APIs.
23696 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23697 return the VA coded buffer proxy. Also provide useful documentation
23698 for the public APIs.
23700 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23702 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23703 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23704 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23705 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23706 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23707 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23708 through GstVaapiCodedBufferProxy user-data facility.
23709 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23711 Partial fix for the following report:
23712 https://bugzilla.gnome.org/show_bug.cgi?id=719530
23714 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23716 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23717 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23718 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23719 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23720 * gst/vaapi/gstvaapiencode.c:
23721 encoder: refactor status codes.
23722 Drop obsolete or unused status codes. Align some status codes with the
23723 decoder counterparts.
23725 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23727 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23728 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23729 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23730 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23731 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23732 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23733 encoder: fix subclassing process.
23734 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23735 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23736 thus avoiding useless run-time checks. Also simplify the subclass
23737 initialization process to be less error prone.
23739 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23741 encoder: rework GstVaapiCodedBuffer and related proxy.
23742 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23743 public and private interfaces. Besides, the map/unmap APIs should not
23744 be exposed as is but appropriate accessors should be provided instead.
23745 * GstVaapiCodedBuffer: VA coded buffer abstraction
23746 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23747 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23748 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23749 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23750 the specified max size, and bound to the supplied encoder
23751 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23752 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23753 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23754 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23755 Rationale: more optimized transfer functions might be provided in the
23756 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23757 https://bugzilla.gnome.org/show_bug.cgi?id=719775
23759 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23761 * gst/vaapi/gstvaapidecode.c:
23762 * gst/vaapi/gstvaapiencode.c:
23763 * gst/vaapi/gstvaapipostproc.c:
23764 * gst/vaapi/gstvaapisink.c:
23765 plugins: fix reference leaks of VA display objects.
23766 Fix GstElement::set_context() implementation for all plug-in elements
23767 to avoid leaking an extra reference to the VA display, thus preventing
23768 correct cleanup of VA resources in GStreamer 1.2 builds.
23770 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23772 * gst/vaapi/gstvaapipluginutil.c:
23773 * gst/vaapi/gstvaapivideocontext.c:
23774 plugins: simplify gst_vaapi_ensure_display().
23775 Return earlier if the creation of a VA display failed. Likewise, simplify
23776 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23779 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23781 * gst/vaapi/gstvaapivideomemory.c:
23782 plugins: fix memory leaks through GstVideoMeta maps.
23783 When GstVideoMeta maps were used, the supporting functions incorrectly
23784 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23785 always increasing the associated GstMemory reference count and giving
23786 zero chance to actually release that, and subsequently the VA display.
23788 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23790 * gst-libs/gst/vaapi/gstvaapifilter.c:
23791 * gst/vaapi/gstvaapiencode_h264.c:
23792 * gst/vaapi/gstvaapiencode_mpeg2.c:
23793 * gst/vaapi/gstvaapipostproc.c:
23794 * gst/vaapi/gstvaapisink.c:
23795 * gst/vaapi/gstvaapiuploader.c:
23796 plugins: use G_PARAM_STATIC_STRINGS.
23797 This avoids a few string copies during initialization.
23799 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23801 * gst/vaapi/gstvaapivideometa.c:
23802 plugins: simplify VA video meta to only reference surface proxies.
23803 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23804 now allocated from a surface pool. This also means that the local
23805 reference to the VA surface is also gone, as it could be extracted
23806 from the associated surface proxy.
23808 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23810 * gst/vaapi/gstvaapivideobuffer.c:
23811 * gst/vaapi/gstvaapivideobuffer.h:
23812 * gst/vaapi/gstvaapivideometa.c:
23813 * gst/vaapi/gstvaapivideometa.h:
23814 plugins: drop obsolete functions.
23815 Drop the following functions that are not longer used:
23816 - gst_vaapi_video_buffer_new_with_surface()
23817 - gst_vaapi_video_meta_new_with_surface()
23818 - gst_vaapi_video_meta_set_surface()
23819 - gst_vaapi_video_meta_set_surface_from_pool()
23821 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23823 * gst/vaapi/gstvaapivideometa.c:
23824 plugins: allow VA video meta to be allocated from surface proxy pools.
23825 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23826 from surface pools instead of plain VA surfaces. This is to simplify
23827 allocations now that surface proxies are created from a surface pool.
23829 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23831 * docs/reference/libs/libs-sections.txt:
23832 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23833 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23834 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23835 surfaceproxy: add copy function.
23836 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23837 proxy with the same information from the parent proxy, except that the
23838 user-defined destroy notify function is not copied over.
23839 The underlying VA surface is pushed back to the video pool only when
23840 the last reference to the parent surface proxy is released.
23842 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23844 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23845 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23846 * gst/vaapi/gstvaapiencode.c:
23847 vaapiencode: optimize _handle_frame() to avoid extra allocation.
23848 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23849 and in particular the GstVaapiEncObjUserData object. i.e. directly use
23850 the VA surface proxy from the source buffer. This also makes the user
23851 data attached to the GstVideoCodecFrame more consistent between both
23852 the decoder and encoder plug-in elements.
23854 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23856 * gst/vaapi/gstvaapiencode.c:
23857 vaapiencode: fix memory leaks in _push_frame() on error.
23858 Simplify gst_vaapiencode_push_frame(), while also removing the call
23859 to gst_video_encoder_negotiate() since this is implicit in _finish()
23860 if caps changed. Also fixed memory leaks that occured on error.
23862 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23864 * gst/vaapi/gstvaapiencode.c:
23865 * gst/vaapi/gstvaapiencode.h:
23866 * gst/vaapi/gstvaapiencode_h264.c:
23867 * gst/vaapi/gstvaapiencode_h264.h:
23868 * gst/vaapi/gstvaapiencode_mpeg2.c:
23869 vaapiencode: additional clean-ups.
23870 Constify pointers wherever possible. Drop unused variables, and use
23871 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23872 to correctly report errors, especially when in-place conversion from
23873 bytestream to avcC format failed.
23875 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23877 * gst/vaapi/gstvaapiencode.c:
23878 * gst/vaapi/gstvaapiencode.h:
23879 * gst/vaapi/gstvaapiencode_h264.c:
23880 * gst/vaapi/gstvaapiencode_h264.h:
23881 * gst/vaapi/gstvaapiencode_mpeg2.c:
23882 * gst/vaapi/gstvaapiencode_mpeg2.h:
23883 vaapiencode: move common properties to base class.
23884 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23885 base class. The actual range of supported rate control modes is currently
23886 implemented as a plug-in element hook. This ought to be determined from
23887 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23889 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23891 * gst/vaapi/gstvaapiencode_h264.c:
23892 * gst/vaapi/gstvaapiencode_mpeg2.c:
23893 vaapiencode: fix plugin description and debug name.
23894 Align the plug-in debug category to its actual name. i.e. enable debug
23895 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23896 the plug-in element description to make it more consistent with other
23899 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23902 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23903 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23904 * gst-libs/gst/video/Makefile.am:
23905 * gst/vaapi/gstvaapiencode.c:
23906 * gst/vaapi/gstvaapiencode.h:
23907 * gst/vaapi/gstvaapiencode_h264.c:
23908 * gst/vaapi/gstvaapiencode_mpeg2.c:
23909 vaapiencode: add initial support for GStreamer 0.10.
23911 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23913 * gst-libs/gst/vaapi/gstcompat.h:
23914 libs: add more GstBuffer compat glue for GStreamer 0.10.
23915 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23916 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23919 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23922 * gst-libs/gst/video/Makefile.am:
23923 libs: always use built-in videoutils for GStreamer 0.10.
23924 GStreamer 0.10.36 is the latest and ultimate version to be released
23925 from the GStreamer 0.10 branch. i.e. no further releases are to be
23926 made. So, we can safely enable the built-in videoutils replacement
23927 now that they are in sync with the 0.10 branch.
23929 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23932 videoutils: update to master commit d4a15a5.
23933 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23934 86096cc videodecoder: minor cosmetic changes to align a bit more with master
23935 b4b8b52 videodecoder: allow parse function to not use all data on adapter
23936 2145495 videodecoder: warn if frame list gets long
23937 36c3753 videodecoder: Also use the object lock to protect the output_state
23938 518c93d videodecoder: fix seeking again
23939 185fb63 video: Correct usage of the base class stream lock
23940 170e944 videodecoder: Expose _negotiate function
23942 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23945 * gst-libs/gst/vaapi/Makefile.am:
23946 * tests/Makefile.am:
23947 Fix build with GStreamer >= 1.3.
23948 http://bugzilla.gnome.org/show_bug.cgi?id=715183
23949 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23951 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23954 configure: disable encoders with GStreamer 0.10.
23955 Don't try to build video encoders for GStreamer 0.10. Support code is
23956 not there yet, and probably will never for such an ancient version.
23958 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23960 * gst/vaapi/gstvaapiencode.c:
23961 vaapiencode: fix error handling while allocating output buffers.
23962 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
23963 unmap the coded buffer prior to returning an error.
23965 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23967 * gst/vaapi/gstvaapiencode.c:
23968 vaapiencode: fix error handling in _finish() hook.
23969 Fix GstVideoEncoder::finish() implementation to really return possible
23970 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
23972 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23974 * gst/vaapi/gstvaapiencode.c:
23975 * gst/vaapi/gstvaapiencode.h:
23976 * gst/vaapi/gstvaapiencode_h264.c:
23977 * gst/vaapi/gstvaapiencode_h264.h:
23978 * gst/vaapi/gstvaapiencode_mpeg2.c:
23979 * gst/vaapi/gstvaapiencode_mpeg2.h:
23980 vaapiencode: minor clean-ups.
23981 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
23982 the GObject type system. We are guaranteed to only deal with the same
23983 plug-in element object.
23985 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23987 * gst/vaapi/gstvaapiencode.c:
23988 * gst/vaapi/gstvaapiencode_h264.c:
23989 * gst/vaapi/gstvaapiencode_mpeg2.c:
23990 vaapiencode: fix support for raw YUV sink buffers.
23991 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
23992 The most efficient way to do so is to let the vaapiencode elements
23993 allocate a buffer pool, and subsequently buffers from it. This means
23994 that upstream elements are expected to honour downstream pools.
23995 If upstream elements insist on providing their own allocated buffers
23996 to the vaapiencode elements, then it possibly would be more efficient
23997 to insert a vaapipostproc element before the vaapiencode element.
23998 This is because vaapipostproc currently has better support than other
23999 elements for "foreign" raw YUV buffers.
24001 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24003 * gst/vaapi/gstvaapiencode.c:
24004 vaapiencode: fix support for GStreamer 1.2.
24006 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
24008 * gst/vaapi/gstvaapiencode.c:
24009 * gst/vaapi/gstvaapiencode_h264.c:
24010 * gst/vaapi/gstvaapiencode_mpeg2.c:
24011 vaapiencode: initial port to GStreamer 1.2.
24012 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24014 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
24016 * gst/vaapi/Makefile.am:
24017 * gst/vaapi/gstvaapi.c:
24018 * gst/vaapi/gstvaapiencode_mpeg2.c:
24019 * gst/vaapi/gstvaapiencode_mpeg2.h:
24020 plugins: add mpeg2 encoder element.
24021 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
24022 is called "vaapiencode_mpeg2".
24024 - rate-control: rate control mode (default: cqp - constant QP)
24025 - bitrate: desired bitrate in kbps (default: auto-calculated)
24026 - key-period: maximal distance between two key frames (default: 30)
24027 - max-bframes: number of B-frames between I and P (default: 2)
24028 - quantizer: constant quantizer (default: 8)
24029 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24031 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
24033 * gst/vaapi/Makefile.am:
24034 * gst/vaapi/gstvaapi.c:
24035 * gst/vaapi/gstvaapiencode_h264.c:
24036 * gst/vaapi/gstvaapiencode_h264.h:
24037 plugins: add h264 encoder element.
24038 Add GstVaapiEncodeH264 element object. The actual plug-in element
24039 is called "vaapiencode_h264".
24041 - rate-control: rate control mode (default: none)
24042 - bitrate: desired bitrate in kbps (default: auto-calculated)
24043 - key-period: maximal distance between two key frames (default: 30)
24044 - num-slices: number of slices per frame (default: 1)
24045 - max-bframes: number of B-frames between I and P (default: 0)
24046 - min-qp: minimal quantizer (default: 1)
24047 - init-qp: initial quantizer (default: 26)
24048 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24050 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
24052 * gst/vaapi/Makefile.am:
24053 * gst/vaapi/gstvaapiencode.c:
24054 * gst/vaapi/gstvaapiencode.h:
24055 plugins: add base encoder element.
24056 vaapiencode element is based on GstVideoEncoder APIs.
24057 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24059 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
24061 * gst-libs/gst/vaapi/Makefile.am:
24062 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24063 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
24064 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24065 encoder: add mpeg2 encoder.
24066 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
24067 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24069 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
24071 * gst-libs/gst/vaapi/Makefile.am:
24072 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24073 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
24074 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24075 encoder: add h264 encoder.
24076 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24078 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
24081 * gst-libs/gst/vaapi/Makefile.am:
24082 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24083 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24084 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24085 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24086 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24087 Add initial infrastructure for video encoding.
24088 Add initial API for video encoding: only basic interfaces and small
24089 encoder objects are implemented so far.
24090 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24092 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
24095 * gst-libs/gst/Makefile.am:
24096 * gst-libs/gst/base/Makefile.am:
24097 * gst-libs/gst/base/gstbitwriter.c:
24098 * gst-libs/gst/base/gstbitwriter.h:
24099 * gst-libs/gst/vaapi/Makefile.am:
24100 libs: add generic bitstream writer.
24101 GstBitWriter provides a bit writer that can write any number of bits
24102 to a pre-allocated memory buffer. Helper functions are also provided
24103 to write any number of bits from 8, 16, 32 and 64 bit variables.
24104 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24106 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24108 * gst-libs/gst/vaapi/gstvaapicontext.c:
24109 * gst-libs/gst/vaapi/gstvaapicontext.h:
24110 libs: add support for rate-control to GstVaapiContext.
24111 Extend GstVaapiContextInfo structure to hold the desired rate control
24112 mode for encoding purposes. For decoding purposes, this field is not
24113 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24114 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24116 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24118 * gst-libs/gst/vaapi/gstvaapitypes.h:
24119 * gst-libs/gst/vaapi/gstvaapiutils.c:
24120 * gst-libs/gst/vaapi/gstvaapiutils.h:
24121 * gst-libs/gst/vaapi/gstvaapivalue.c:
24122 * gst-libs/gst/vaapi/gstvaapivalue.h:
24123 libs: add rate-control attributes.
24124 Add GstVaapiRateControl types and GType values in view to supporting
24125 rate controls for encoding. This is meant to be used for instance in
24127 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24129 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24132 Bump version for development.
24134 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24136 * gst/vaapi/Makefile.am:
24137 build: fix for Wayland headers not in standard include dirs.
24138 Fix build when Wayland headers don't live in plain system include dirs
24139 like /usr/include but rather in /usr/include/wayland for instance.
24140 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24141 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24143 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24145 * gst-libs/gst/vaapi/Makefile.am:
24146 build: link libgstvaapi-wayland against videoutils.
24147 This library is using symbols that don't exist in GStreamer 0.10 so
24148 it needs to link to built-in implementation (libgstvaapi-videoutils).
24149 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24150 Signed-off-by: Ross Burton <ross.burton@intel.com>
24151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24153 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24155 * gst-libs/gst/vaapi/gstvaapifilter.c:
24156 * gst/vaapi/gstvaapipostproc.c:
24157 vaapostproc: fix memory leaks.
24158 Destroy VPP output surface pool on exit. Also avoid a possible crash
24159 in double-free situation caused by insufficiently reference counted
24160 array of formats returned during initialization.
24162 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24164 * gst/vaapi/gstvaapipostproc.c:
24165 * gst/vaapi/gstvaapipostproc.h:
24166 vaapipostproc: fix and optimize advanced deinterlacing mode.
24167 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24168 reference buffers. This used to be 3 past reference buffers but this
24169 doesn't fit with the existing decode pipeline that only has 4 extra
24171 Also optimize references tracking to be only enabled when needed, i.e.
24172 when advanced deinterlacing mode is used. This means that we don't
24173 need to track past references for basic bob or weave deinterlacing.
24175 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24177 * gst/vaapi/gstvaapipostproc.c:
24178 vaapipostproc: fix "mixed" mode deinterlacing.
24179 In "mixed" interlaced streams, the buffer contains additional flags that
24180 specify whether the frame contained herein is interlaced or not. This means
24181 that we can alternatively get progressive or interlaced frames. Make sure
24182 to disable deinterlacing at the VPP level when the source buffer is no longer
24185 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24187 * gst/vaapi/gstvaapipostproc.c:
24188 vaapipostproc: fix memory leaks with advanced deinterlacing.
24189 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24190 of past buffers. Completely reset the deinterlace state, thus destroying
24191 any buffer currently held, on _start(), _stop() and _destroy().
24193 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24197 - GStreamer 1.2 APIs are supported ;
24198 - Video Processing (VA/VPP) features.
24200 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24203 README: update for GStreamer >= 1.0.x and VPP features.
24205 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24207 * gst-libs/gst/vaapi/glibcompat.h:
24208 * gst-libs/gst/vaapi/gstvaapicontext.h:
24209 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24210 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24211 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24212 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24213 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24214 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24215 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24216 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24217 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24218 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24219 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24220 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24221 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24222 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24223 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24224 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24225 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24226 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24227 * gst-libs/gst/vaapi/gstvaapiimage.c:
24228 * gst-libs/gst/vaapi/gstvaapiimage.h:
24229 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24230 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24231 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24232 * gst-libs/gst/vaapi/gstvaapiobject.c:
24233 * gst-libs/gst/vaapi/gstvaapiobject.h:
24234 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24235 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24236 * gst-libs/gst/vaapi/gstvaapisurface.h:
24237 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24238 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24239 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24240 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24241 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24242 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24243 * gst-libs/gst/vaapi/gstvaapitexture.c:
24244 * gst-libs/gst/vaapi/gstvaapitexture.h:
24245 * gst-libs/gst/vaapi/gstvaapitypes.h:
24246 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24247 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24248 * gst-libs/gst/vaapi/gstvaapivalue.c:
24249 * gst-libs/gst/vaapi/gstvaapivalue.h:
24250 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24251 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24252 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24253 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24254 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24255 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24256 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24257 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24258 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24259 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24260 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24261 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24262 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24263 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24264 * gst/vaapi/gstvaapi.c:
24265 * gst/vaapi/gstvaapidecode.h:
24266 * gst/vaapi/gstvaapidownload.h:
24267 * gst/vaapi/gstvaapipluginutil.c:
24268 * gst/vaapi/gstvaapipluginutil.h:
24269 * gst/vaapi/gstvaapipostproc.h:
24270 * gst/vaapi/gstvaapisink.h:
24271 * gst/vaapi/gstvaapivideoconverter_glx.h:
24275 * tests/test-display.c:
24276 * tests/test-jpeg.c:
24277 * tests/test-jpeg.h:
24278 * tests/test-mpeg4.c:
24279 * tests/test-mpeg4.h:
24280 * tests/test-surfaces.c:
24281 * tests/test-windows.c:
24282 legal: update copyright notice dates.
24284 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24286 * gst-libs/gst/vaapi/glibcompat.h:
24287 * gst-libs/gst/vaapi/gstcompat.h:
24288 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24289 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24290 * gst-libs/gst/vaapi/gstvaapicompat.h:
24291 * gst-libs/gst/vaapi/gstvaapicontext.c:
24292 * gst-libs/gst/vaapi/gstvaapicontext.h:
24293 * gst-libs/gst/vaapi/gstvaapidebug.h:
24294 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24295 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24296 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24297 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24299 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24300 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24301 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24302 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24303 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24304 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24305 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24306 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24307 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24308 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24309 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24310 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24311 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24312 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24313 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24314 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24315 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24316 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24317 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24318 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24319 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24320 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24321 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24322 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24323 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24324 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24325 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24326 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24327 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24328 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24329 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24330 * gst-libs/gst/vaapi/gstvaapifilter.c:
24331 * gst-libs/gst/vaapi/gstvaapifilter.h:
24332 * gst-libs/gst/vaapi/gstvaapiimage.c:
24333 * gst-libs/gst/vaapi/gstvaapiimage.h:
24334 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24335 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24336 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24337 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24338 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24339 * gst-libs/gst/vaapi/gstvaapiobject.c:
24340 * gst-libs/gst/vaapi/gstvaapiobject.h:
24341 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24342 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24343 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24344 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24345 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24346 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24347 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24348 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24349 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24350 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24351 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24352 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24353 * gst-libs/gst/vaapi/gstvaapisurface.c:
24354 * gst-libs/gst/vaapi/gstvaapisurface.h:
24355 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24356 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24357 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24358 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24359 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24360 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24361 * gst-libs/gst/vaapi/gstvaapitexture.c:
24362 * gst-libs/gst/vaapi/gstvaapitexture.h:
24363 * gst-libs/gst/vaapi/gstvaapitypes.h:
24364 * gst-libs/gst/vaapi/gstvaapiutils.c:
24365 * gst-libs/gst/vaapi/gstvaapiutils.h:
24366 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24367 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24368 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24369 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24370 * gst-libs/gst/vaapi/gstvaapivalue.c:
24371 * gst-libs/gst/vaapi/gstvaapivalue.h:
24372 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24373 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24374 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24375 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24376 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24377 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24378 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24379 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24380 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24381 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24382 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24383 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24384 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24385 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24386 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24387 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24388 * gst-libs/gst/vaapi/sysdeps.h:
24389 * gst-libs/gst/vaapi/video-format.c:
24390 * gst-libs/gst/vaapi/video-format.h:
24391 * gst/vaapi/gstvaapi.c:
24392 * gst/vaapi/gstvaapidecode.c:
24393 * gst/vaapi/gstvaapidecode.h:
24394 * gst/vaapi/gstvaapidownload.c:
24395 * gst/vaapi/gstvaapidownload.h:
24396 * gst/vaapi/gstvaapipluginutil.c:
24397 * gst/vaapi/gstvaapipluginutil.h:
24398 * gst/vaapi/gstvaapipostproc.c:
24399 * gst/vaapi/gstvaapipostproc.h:
24400 * gst/vaapi/gstvaapisink.c:
24401 * gst/vaapi/gstvaapisink.h:
24402 * gst/vaapi/gstvaapiupload.c:
24403 * gst/vaapi/gstvaapiupload.h:
24404 * gst/vaapi/gstvaapiuploader.c:
24405 * gst/vaapi/gstvaapiuploader.h:
24406 * gst/vaapi/gstvaapivideobuffer.c:
24407 * gst/vaapi/gstvaapivideobuffer.h:
24408 * gst/vaapi/gstvaapivideobufferpool.c:
24409 * gst/vaapi/gstvaapivideobufferpool.h:
24410 * gst/vaapi/gstvaapivideocontext.c:
24411 * gst/vaapi/gstvaapivideocontext.h:
24412 * gst/vaapi/gstvaapivideoconverter_glx.c:
24413 * gst/vaapi/gstvaapivideoconverter_glx.h:
24414 * gst/vaapi/gstvaapivideoconverter_x11.c:
24415 * gst/vaapi/gstvaapivideoconverter_x11.h:
24416 * gst/vaapi/gstvaapivideomemory.c:
24417 * gst/vaapi/gstvaapivideomemory.h:
24418 * gst/vaapi/gstvaapivideometa.c:
24419 * gst/vaapi/gstvaapivideometa.h:
24420 * gst/vaapi/gstvaapivideometa_texture.c:
24421 * gst/vaapi/gstvaapivideometa_texture.h:
24430 * tests/simple-decoder.c:
24431 * tests/test-decode.c:
24432 * tests/test-decode.h:
24433 * tests/test-display.c:
24434 * tests/test-filter.c:
24435 * tests/test-h264.c:
24436 * tests/test-h264.h:
24437 * tests/test-jpeg.c:
24438 * tests/test-jpeg.h:
24439 * tests/test-mpeg2.c:
24440 * tests/test-mpeg2.h:
24441 * tests/test-mpeg4.c:
24442 * tests/test-mpeg4.h:
24443 * tests/test-surfaces.c:
24444 * tests/test-textures.c:
24445 * tests/test-vc1.c:
24446 * tests/test-vc1.h:
24447 * tests/test-windows.c:
24448 legal: add per-file authorship information.
24449 Credit original authors on a per-file basis as we cannot expect people
24450 to know all country-specific rules, or bother browsing through the git
24453 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24459 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24464 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24466 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24467 decoder: don't include obsolete headers.
24468 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24469 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24472 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24474 * gst/vaapi/Makefile.am:
24475 * gst/vaapi/gstvaapi.c:
24476 * gst/vaapi/gstvaapipostproc.c:
24477 vaapipostproc: add initial support for GStreamer 1.2.
24478 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24479 right now so that to cope with auto-plugging issues/regressions. e.g.
24480 this happens when the correct set of expected caps are being exposed.
24481 This means that, currently, the proposed caps are not fully accurate.
24483 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24485 * gst/vaapi/gstvaapipostproc.c:
24486 * gst/vaapi/gstvaapipostproc.h:
24487 vaapipostproc: add support for denoise and sharpen filters.
24488 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24490 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24492 * gst/vaapi/gstvaapipostproc.c:
24493 * gst/vaapi/gstvaapipostproc.h:
24494 vaapipostproc: add support for advanced deinterlacing.
24495 Add initial support for advanced deinterlacing. The history buffer
24496 size is arbitrarily set to 3 references for now.
24498 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24500 * gst/vaapi/gstvaapipostproc.c:
24501 vaapipostproc: fix deinterlacing with VPP.
24502 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24503 for the first field. Render flags were supplied instead of the actual
24504 deinterlacing flags (deint_flags).
24506 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24508 * gst/vaapi/gstvaapipostproc.c:
24509 vaapipostproc: fix transform caps.
24510 Fix GstBaseTransform::transform_caps() implementation to always return
24511 the complete set of allowed sink pad caps (unfixated) even if the src
24512 pad caps we are getting are fixated. Rationale: there are just so many
24513 possible combinations, and it was wrong to provide a unique set anyway.
24514 As a side effect, this greatly simplifies the ability to derive src pad
24515 caps from fixated sink pad caps.
24517 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24519 * docs/reference/libs/libs-sections.txt:
24520 * gst-libs/gst/vaapi/gstvaapifilter.c:
24521 * gst-libs/gst/vaapi/gstvaapifilter.h:
24522 filter: add helper to specify references for deinterlacing.
24523 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24524 list of surfaces used for forward or backward reference in advanced
24525 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24526 The list of surfaces used as deinterlacing references shall be live
24527 until the next call to gst_vaapi_filter_process().
24528 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24530 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24532 * gst-libs/gst/vaapi/gstvaapifilter.c:
24533 * gst-libs/gst/vaapi/gstvaapifilter.h:
24534 * gst-libs/gst/vaapi/gstvaapiutils.c:
24535 * gst/vaapi/gstvaapipostproc.c:
24536 * tests/test-filter.c:
24537 filter: fix semantics of deinterlacing flags.
24538 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24539 flag is meant to specify the organization of reference frames used in
24540 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24541 to specify that the top-field of the supplied input surface is to be
24542 used for deinterlacing. Conversely, if not set, this means that the
24543 bottom field of the supplied input surface will be used instead.
24545 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24547 * docs/reference/libs/libs-sections.txt:
24548 * gst-libs/gst/vaapi/gstvaapifilter.c:
24549 * gst-libs/gst/vaapi/gstvaapifilter.h:
24550 filter: add helpers to check for supported/active operation.
24551 Add a couple of helper functions:
24552 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24553 advertises support for the supplied operation ;
24554 - gst_vaapi_filter_use_operation(): checks whether the supplied
24555 operation was already enabled to its non-default value.
24557 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24559 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24560 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24561 The user-defined destroy notify function is meant to be called only when
24562 the surface proxy was fully released, i.e. once it actually released the
24563 VA surface back to the underlying pool.
24565 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24567 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24568 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24569 libs: make GstVaapiVideoPool thread-safe.
24570 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24571 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24573 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24575 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24576 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24577 libs: robustify decoder objects and surface proxy initialization.
24578 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24579 sequences to have the expected default values set beforehand in case of an
24580 error raising up further during creation. i.e. make it possible to cleanly
24581 destroy those partially initialized objects.
24582 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24583 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24585 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24587 * gst/vaapi/gstvaapidecode.c:
24588 vaapidecode: fix decoder flush.
24589 There are situations where gst_video_decoder_flush() is called, and
24590 this subsequently produces a gst_video_decoder_reset() that kills the
24591 currently active GstVideoCodecFrame. This means that it no longer
24592 exists by the time we reach GstVideoDecoder::finish() callback, thus
24593 possibly resulting in a crash if we assumed spare data was still
24594 available for decode (current_frame_size > 0).
24595 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24596 that means a flush, thus performing the actual operations there like
24597 calling gst_video_decoder_have_frame() if pending data is available.
24599 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24601 * gst/vaapi/gstvaapidecode.c:
24602 * gst/vaapi/gstvaapidecode.h:
24603 vaapidecode: fix dead-locks with decoder task.
24604 Review all interactions between the main video decoder stream thread
24605 and the decode task to derive a correct sequence of operations for
24606 decoding. Also avoid extra atomic operations that become implicit under
24607 the GstVideoDecoder stream lock.
24609 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24611 * gst/vaapi/gstvaapidecode.c:
24612 vaapidecode: fix hard reset for seek cases.
24613 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24614 and completely purge any decoded output frame that may come out from
24615 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24616 state to start decoding over new buffers.
24617 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24619 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24621 * gst/vaapi/gstvaapidecode.c:
24622 * gst/vaapi/gstvaapidecode.h:
24623 vaapidecode: drop decode timeout, always wait for a free surface.
24624 vaapidecode used to wait up to one second past the expected time of
24625 presentation for the last decoded frame. This is not realistic in
24626 practice when it comes to video pause/resume. Changed behaviour to
24627 unconditionnally wait for a free VA surface prior to continuing the
24628 decoding. The decode task will continue pushing the output frames to
24629 the downstream element while also reporting errors at the same time
24630 to the main thread.
24631 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24632 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24634 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24636 * gst/vaapi/gstvaapidecode.c:
24637 vaapidecode: fix srcpad caps for GStreamer 1.2.
24638 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24639 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24640 that it relied on possibly un-initialized data. Fix srcpad caps to be
24641 initialized from a sanitized copy of GstVideoDecoder output state caps.
24642 Note: the correct way to expose the srcpad caps triggers an additional
24643 issue in core GStreamer auto-plugging capabilities as the correct caps
24644 to be exposed should be format=ENCODED with memory:VASurface caps feature
24645 at the minimum. In some situations, we could determine the underlying
24646 VA surface format, but this is not always possible. e.g. cases where it
24647 is not allowed to expose the underlying VA surface data, or when the
24648 VA driver implementation cannot actually provide such information.
24650 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24652 * gst/vaapi/gstvaapidecode.c:
24653 * gst/vaapi/gstvaapisink.c:
24654 plugins: streamline VA formats exposed in caps to a realistic set.
24655 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24656 output formats for GStreamer 1.2 in caps to a realistic subset. This
24657 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24658 underlying VA surface format, or if it is actually not allowed to get
24659 access to the surface contents.
24661 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24663 * gst/vaapi/gstvaapidecode.c:
24664 * gst/vaapi/gstvaapisink.c:
24665 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24666 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24667 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24668 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24669 we really don't support that for rendering.
24670 https://bugzilla.gnome.org/show_bug.cgi?id=711828
24672 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24675 configure: automatically detect GStreamer API version.
24676 Automatically detect GStreamer API version. The --with-gstreamer-api
24677 configure option now defaults to "autodetect" and configure then tries
24678 to derive the GStreamer API version from the highest version based on
24679 what pkg-config --modversion would report.
24680 https://bugzilla.gnome.org/show_bug.cgi?id=711657
24682 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
24684 * gst/vaapi/gstvaapipostproc.c:
24685 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24686 Fix raw YUV data uploaded as in the following pipeline:
24687 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24688 The main reason why it failed was that the videoparse element simply
24689 allocates GstBuffer with raw data chunk'ed off the sink pad without
24690 any prior knowledge of the actual frame info. i.e. it basically just
24691 calls gst_adapter_take_buffer().
24692 We could avoid the extra copy performed in vaapipostproc if the videoparse
24693 element was aware of the downstream pool and bothers copying line by
24694 line, for each plane. This means that, for a single frame per buffer,
24695 the optimizatin will be to allocate the video buffer downstream, map
24696 it, and copy each line that is coming through until we need to fills
24697 in the successive planes.
24698 Still, optimized raw YUV uploads already worked with the following:
24699 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24700 https://bugzilla.gnome.org/show_bug.cgi?id=711250
24701 [clean-ups, fixed error cases to unmap and unref outbuf]
24702 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24704 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24706 * gst/vaapi/gstvaapipostproc.c:
24707 vaapipostproc: try to downgrade deinterlace-method when needed.
24708 If the currently selected deinterlacing method is not supported by the
24709 underlying hardware, then try to downgrade the method to a supported one.
24710 At the minimum, basic bob-deinterlacing shall always be supported.
24712 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24714 * gst/vaapi/gstvaapipostproc.c:
24715 vaapipostproc: add initial support for deinterlacing with VPP.
24716 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24717 this only covers bob-deinterlacing when the output pixel format is
24720 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24722 * gst/vaapi/gstvaapipostproc.c:
24723 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24724 The size argument for GstBaseTransform::transform_size() hook is a
24725 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24727 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24729 * gst/vaapi/gstvaapipostproc.c:
24730 * gst/vaapi/gstvaapipostproc.h:
24731 vaapipostproc: add initial support for scaling.
24732 Add initial support for basic scaling with size specified through the
24733 "width" and "height" properties. If either user-provided dimension is
24734 zero and "force-aspect-ratio" is set to true (the default), then the
24735 other dimension is scaled to preserve the aspect ratio.
24737 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24739 * gst/vaapi/gstvaapipostproc.c:
24740 * gst/vaapi/gstvaapipostproc.h:
24741 vaapipostproc: add initial support for color conversion.
24742 If VPP is available, we always try to implicitly convert the source
24743 buffer to the "native" surface format for the underlying accelerator.
24744 This means that no optimization is performed yet to propagate raw YUV
24745 buffers to the downstream element as is, if VPP is available. i.e. it
24746 will always cause a color conversion.
24748 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24750 * gst/vaapi/gstvaapipostproc.c:
24751 vaapipostproc: fix bug when user disabled deinterlacing.
24752 Fix pipeline error / hang when the user disabled deinterlacing through
24753 the deinterlace-mode=disabled property setting.
24755 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24757 * gst/vaapi/gstvaapipostproc.c:
24758 * gst/vaapi/gstvaapipostproc.h:
24759 vaapipostproc: factor out operations to be applied into flags.
24760 Even if we only support deinterlacing for now, use flags to specify
24761 which filters are to be applied to each frame we receive in transform().
24762 This is preparatory work for integrating new filters.
24764 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24766 * gst/vaapi/gstvaapipostproc.c:
24767 * gst/vaapi/gstvaapipostproc.h:
24768 vaapipostproc: add support for raw YUV video source buffers.
24769 Allow video processing from raw YUV buffers coming from the sink pad,
24770 while still producing a VA surface for the downstream elements.
24772 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24774 * gst/vaapi/gstvaapipluginutil.c:
24775 * gst/vaapi/gstvaapipluginutil.h:
24776 * gst/vaapi/gstvaapipostproc.c:
24777 vaapipostproc: add support for "mixed" interlace mode.
24778 Add support for "mixed" interlace-mode, whereby the video frame buffer
24779 shall be deinterlaced only if its flags mention that's actually an
24780 interlaced frame buffer.
24782 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24784 * gst-libs/gst/vaapi/gstcompat.h:
24785 * gst/vaapi/gstvaapipostproc.c:
24786 * gst/vaapi/gstvaapipostproc.h:
24787 * gst/vaapi/gstvaapivideobuffer.c:
24788 * gst/vaapi/gstvaapivideobuffer.h:
24789 vaapipostproc: rework plug-in element.
24790 Rewrite the vaapipostproc plug-in element so that it derives from
24791 GstBaseTransform, thus simplifying the caps negotiation process.
24793 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24795 * gst/vaapi/gstvaapivideobufferpool.c:
24796 * gst/vaapi/gstvaapivideomemory.c:
24797 * gst/vaapi/gstvaapivideomemory.h:
24798 plugins: fix and optimize check for buffer pool allocator params.
24799 Reset the buffer pool allocator only if the config caps changed in a
24800 sensible way: format or resolution change. i.e. don't bother with
24801 other caps like colorimetry et al. as this doesn't affect the way to
24802 allocate VA surfaces or images.
24804 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24806 * gst/vaapi/gstvaapivideomemory.c:
24807 plugins: enable memory maps for read & write with direct-rendering.
24808 Enable read and write mappings only if direct-rendering is supported.
24809 Otherwise, this means that we may need to download data from the VA
24810 surface first for correctness, even if the VA surface doesn't need to
24811 be read at all. i.e. sometimes, READWRITE mappings are meant for
24812 surfaces that are written to first, and read afterwards for further
24814 https://bugzilla.gnome.org/show_bug.cgi?id=704078
24816 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24818 * gst/vaapi/gstvaapivideomemory.c:
24819 plugins: fix check for direct-rendering support.
24820 Fix check for direct-rendering if the creation of VA surfaces with
24821 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24822 that we tried to allocate a VA surface based on the corresponding
24823 chroma type. i.e. in that particular case, we have to make sure that
24824 the derived image has actually the expected format.
24826 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24828 * gst/vaapi/gstvaapivideobufferpool.c:
24829 * gst/vaapi/gstvaapivideomemory.c:
24830 * gst/vaapi/gstvaapivideomemory.h:
24831 plugins: fix buffer pool reset_buffer() to reset memory resources.
24832 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24833 memory resources, and more particularly the VA surface proxy. Most
24834 importantly, the GstVaapiVideoMeta is retained. Cached surface in
24835 memory are released, thus triggering a new allocation the next time
24836 we need to map the buffer.
24838 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24840 * gst/vaapi/gstvaapivideomemory.c:
24841 * gst/vaapi/gstvaapivideomemory.h:
24842 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24843 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24844 pool stored in the parent VA memory allocator.
24845 This fixes the following scenario:
24846 - VA video buffer 1 is allocated from a buffer pool
24847 - Another video buffer is created, and inherits info from buffer 1
24848 - Buffer 1 is released, thus pushing it back to the buffer pool
24849 - New buffer alloc request comes it, this yields buffer 1 back
24850 - At this stage, buffers 1 and 2 still share the same underlying VA
24851 surface, but buffer 2 was already submitted downstream for further
24852 processing, thus conflicting with additional processing we were
24853 about to perform on buffer 1.
24854 Maybe the core GstBufferPool implementation should have been fixed
24855 instead to actually make sure that the returned GstBuffer memory we
24856 found from the pool is writable?
24858 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24860 * gst/vaapi/gstvaapiuploader.c:
24861 plugins: create a proxy for GstVaapiUploader allocated buffers.
24862 Always make sure to allocate a VA surface proxy for GstVaapiUploader
24863 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24865 This fixes cases where we want to retain the underlying surface longer,
24866 instead of releasing it back to the surface pool right away.
24868 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24870 * gst/vaapi/gstvaapidecode.c:
24871 * gst/vaapi/gstvaapipluginutil.c:
24872 * gst/vaapi/gstvaapipluginutil.h:
24873 * gst/vaapi/gstvaapipostproc.c:
24874 plugins: add helper function to disable deinterlacing in caps.
24875 Add gst_caps_set_interlaced() helper function that would reset the
24876 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24877 interlaced field to "false" for GStreamer 0.10.
24879 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24881 * gst-libs/gst/vaapi/gstvaapifilter.c:
24882 filter: fix memory leak of VPP operations.
24883 Fix ensure_operations() to release the VPP operations array if non
24884 NULL, prior to returning to the caller. The former function was also
24885 renamed to a more meaningful get_operations() since the caller owns
24886 the returned array that needs to be released.
24888 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24890 * gst-libs/gst/vaapi/gstvaapifilter.c:
24891 filter: fix first-time operation lookup.
24892 Fix first-time operation lookup through find_operation() if the set
24893 of supported operations was not initially determined through the
24894 gst_vaapi_filter_get_operations() helper function.
24895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24897 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24899 * gst-libs/gst/vaapi/gstvaapifilter.c:
24900 filter: fix colorbalance related subtypes.
24901 Fix intiialization of GstVaapiFilterOpData for colorbalance related
24902 operations. In particular, fill in the va_subtype field accordingly.
24903 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24905 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24907 * gst-libs/gst/vaapi/gstvaapifilter.c:
24908 filter: fix VA-API 0.34.0 symbol guards.
24909 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24910 that need to be guarded for libva 0.34 and 0.33, respectively.
24911 https://bugzilla.gnome.org/show_bug.cgi?id=709102
24912 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24914 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24916 * gst/vaapi/gstvaapidecode.c:
24917 * gst/vaapi/gstvaapipluginutil.c:
24918 * gst/vaapi/gstvaapisink.c:
24919 plugins: hanle the context query in any pad.
24920 Also this patch simplifies the code, since now the query is common for the
24921 decoder and the sink.
24922 https://bugzilla.gnome.org/show_bug.cgi?id=709200
24924 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24926 * gst/vaapi/gstvaapivideocontext.c:
24927 plugins: query upstream element for a GstContext.
24928 Fix gst_vaapi_video_context_prepare() to also query upstream elements
24929 for a valid GstContext. Improve comments regarding the steps used to
24930 lookup or build that context, thus conforming to the GstContext API
24932 https://bugzilla.gnome.org/show_bug.cgi?id=709112
24933 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24935 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24938 * debian.upstream/control.in:
24939 Fix detection and packaging of GStreamer 1.2.x builds.
24940 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24941 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24942 purposes, update the versioning to -1.2 suffix instead.
24944 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24946 * gst/vaapi/Makefile.am:
24947 * gst/vaapi/gstvaapidecode.c:
24948 * gst/vaapi/gstvaapidecode.h:
24949 * gst/vaapi/gstvaapisink.c:
24950 * gst/vaapi/gstvaapivideometa_texture.c:
24951 * gst/vaapi/gstvaapivideometa_texture.h:
24952 plugins: add support for GstVideoGLTextureUploadMeta.
24953 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
24954 requested, and more specifically under a GLX configuration, then add
24955 the GstVideoGLTextureUploadMeta to the output buffer.
24956 https://bugzilla.gnome.org/show_bug.cgi?id=703236
24957 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24959 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24961 * gst/vaapi/gstvaapidecode.c:
24962 * gst/vaapi/gstvaapisink.c:
24963 * gst/vaapi/gstvaapivideomemory.h:
24964 plugins: add support for GstCaps features.
24965 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
24966 as expressed in caps, to the more standard use of caps features. i.e.
24967 add "memory:VASurface" feature attribute to the associated caps.
24968 https://bugzilla.gnome.org/show_bug.cgi?id=703271
24969 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24971 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24973 * gst/vaapi/gstvaapidecode.c:
24974 * gst/vaapi/gstvaapisink.c:
24975 plugins: improve ::query() debugging messages.
24976 Fix gst_vaapidecode_query() to correctly display the query type name,
24977 instead of randomly displaying that we shared the underlying display.
24978 Also add debug info for the GstVaapiSink::query() handler, i.e. the
24979 supplied query type name actually.
24980 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24982 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24984 * gst/vaapi/gstvaapidecode.c:
24985 * gst/vaapi/gstvaapisink.c:
24986 plugins: add support for GstContext API.
24987 Add support for the new GstContext API from GStreamer 1.2.x.
24988 - implement the GstElement::set_context() hook ;
24989 - reply to the `context' query from downstream elements.
24990 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24991 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24993 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24995 * gst/vaapi/Makefile.am:
24996 * gst/vaapi/gstvaapipluginutil.c:
24997 * gst/vaapi/gstvaapivideocontext.c:
24998 * gst/vaapi/gstvaapivideocontext.h:
24999 plugins: add compat layer for GstVideoContext.
25000 Add thin compatibility layer for the deprecated GstVideoContext API.
25001 For GStreamer API >= 1.2, this involves the following two functions:
25002 - gst_vaapi_video_context_prepare(): queries if a context is already
25003 set in the pipeline ;
25004 - gst_vaapi_video_context_propagate(): propagates the newly-created
25005 context to the rest of the pipeline.
25006 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25007 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25009 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25012 * gst/vaapi/Makefile.am:
25013 * gst/vaapi/gstvaapi.c:
25014 * gst/vaapi/gstvaapidecode.c:
25015 * gst/vaapi/gstvaapipluginutil.c:
25016 * gst/vaapi/gstvaapisink.c:
25017 * gst/vaapi/gstvaapivideobuffer.c:
25018 plugins: initial port to GStreamer 1.2.
25019 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
25020 is rather minimalistic so that to test the basic functionality.
25021 Disable vaapipostproc plugin for now as further polishing is needed.
25022 Also disable GstVideoContext interface support since this API is now
25023 gone in 1.2.x. This is preparatory work for GstContext support.
25024 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25025 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25027 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25029 * tests/simple-decoder.c:
25030 tests: simple-decoder: fix for non-X11 backends.
25031 Don't try to create pixmaps if we have not requested that feature. This
25032 fixes execution for non-X11 backends, and most specifically DRM video
25035 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25037 * ext/codecparsers:
25038 codecparsers: update to gst-vaapi-branch commit b33bd32.
25039 b33bd32 jpeg: fix and optimize scan for next marker code
25041 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25043 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25044 jpeg: fix calculation of MCU count.
25045 Fix calculation of MCU count for image sizes that are not a multiple
25046 of 8 pixels in either dimension, but also for non-common sampling
25047 factors like 4:2:2 in non-interleaved mode.
25049 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25051 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25052 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25053 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25054 jpeg: add support for multiscan images.
25055 Add support for images with multiple scans per frame. The Huffman table
25056 can be updated before SOS, and thus possibly requiring multiple uploads
25057 of Huffman tables to the VA driver. So, the latter must be able to cope
25058 with multiple VA buffers of type 'huffman-table' and with the correct
25061 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25063 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25064 jpeg: improve robustness when packets are missing.
25065 Improve robustness when some expected packets where not received yet
25066 or that were not correctly decoded. For example, don't try to decode
25067 a picture if there was no valid frame headers.
25069 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25071 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25072 jpeg: minor clean-ups.
25073 Improve debugging and error messages. Rename a few variables to fit the
25074 existing naming conventions. Change some fatal asserts to non-fatal
25077 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25079 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25080 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25081 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25082 jpeg: rework and optimize parser.
25083 Split the input buffer data into decoder units that represent a JPEG
25084 segment. Handle scan decoder unit specifically so that it can include
25085 both the scan header (SOS) but also any other ECS or RSTi segment.
25086 That way, we parse the input buffer stream only once at the gst-vaapi
25087 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25088 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25089 determine segment boundaries and decode them.
25090 In practice, this is a +15 to +25% performance improvement.
25092 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25094 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25095 jpeg: handle comment segments.
25096 Fix decode_buffer() function to gracefully skip comment (COM) segments.
25097 This fixes decoding of streams generated by certain cameras, e.g. like
25098 the Logitech Pro C920.
25099 https://bugzilla.gnome.org/show_bug.cgi?id=708208
25100 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25102 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25104 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25105 jpeg: fix determination of image bounds.
25106 Look for the exact image bounds characterised by the <SOI> and <EOI>
25107 markers. Use the gst_jpeg_parse() codec parser utility function to
25108 optimize the lookup for the next marker segment.
25109 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25111 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25113 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25114 jpeg: fix calculation of offset to next marker segment.
25115 Fix calculation of the offset to the next marker segment since the
25116 correction of the codecparser part to match the API specification.
25117 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25118 of the segment minus any marker prefix.
25119 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25120 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25122 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25124 * ext/codecparsers:
25125 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25126 23c7dde jpeg: fix calculation of segment size
25128 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25131 Bump version for development.
25133 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25139 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25144 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25147 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25148 configure: fix detection of VA/JPEG decoding API.
25149 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25150 More precisely, some packages were shipping with a <va/va.h> header that
25151 did not include <va/va_dec_jpeg.h>.
25152 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25153 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25155 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25157 * gst/vaapi/gstvaapisink.c:
25158 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25159 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25160 is setup in case upstream elements allocate buffers themselves without
25161 honouring our GstVaapiSink::bufer_alloc() hook.
25162 In particular, this fixes support for OGG video streams with WebKit.
25163 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25164 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25166 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25168 * gst/vaapi/gstvaapisink.c:
25169 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25170 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25173 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25175 * gst/vaapi/gstvaapisink.c:
25176 * gst/vaapi/gstvaapisink.h:
25177 vaapisink: handle raw buffers not created from VA video buffer pool.
25178 Handle raw video buffers that were not created from a VA video buffer
25179 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25180 builds instead of the GstVaapiUploader.
25181 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25183 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25185 * gst/vaapi/gstvaapidecode.c:
25186 vaapidecode: remove extraneous size information from allowed caps.
25187 Fix _getcaps() implementation to not report codecs with size information
25188 filled in the returned caps. That's totally useless nowadays. Ideally,
25189 this is a hint to insert a video parser element, thus allowing future
25190 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25191 which is able to parse the elementary bitstreams itself.
25192 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25194 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25196 * gst/vaapi/gstvaapidecode.c:
25197 * gst/vaapi/gstvaapidecode.h:
25198 vaapidecode: submit the last frame from output adapter to decoder.
25199 If there is no frame delimiter at the end of the stream, e.g. no
25200 end-of-stream or end-of-sequence marker, and that the current frame
25201 was fully parsed correctly, then assume that last frame is complete
25202 and submit it to the decoder.
25203 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25204 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25205 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25207 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25209 * gst/vaapi/gstvaapidecode.c:
25210 * gst/vaapi/gstvaapidecode.h:
25211 vaapidecode: push all decoded frames from within the task.
25212 Make sure to push all decoded frames from the task so that the unlying
25213 VA surfaces could all be rendered from the same thread.
25215 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25217 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25218 wayland: render the raw surface if VPP failed.
25219 As a last resort, if video processing capabilities (VPP) are not available,
25220 or they did not produce anything conclusive enough, then try to fallback to
25221 the original rendering code path whereby the whole VA surface is rendered
25222 as is, no matter of video cropping or deinterlacing requests.
25223 Note: under those conditions, the visual outcome won't be correct but at
25224 least, something gets displayed instead of bailing out.
25226 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25228 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25229 wayland: add supporting for video processing.
25230 Try to use VA/VPP processing capabilities to handle video cropping and
25231 additional rendering flags that may not be directly supported by the
25232 underlying hardware when exposing a suitable Wayland buffer for the
25233 supplied VA surface. e.g. deinterlacing, different color primaries than
25236 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25238 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25239 wayland: add new frame redraw infrastructure.
25240 Update the frame redraw infrastructure with a new FrameState stucture
25241 holds all the necessary information used to display the next pending
25243 While we are at it, delay the sync operation down to when it is actually
25244 needed. That way, we keep performing additional tasks meanwhile.
25246 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25248 * docs/reference/libs/libs-sections.txt:
25249 * gst-libs/gst/vaapi/gstvaapifilter.c:
25250 * gst-libs/gst/vaapi/gstvaapifilter.h:
25251 filter: allow specification of render target regions.
25252 Add support for rendering the source surface to a particular region within
25253 the supplied target surface. The default background color is black.
25255 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25257 * gst/vaapi/gstvaapivideobuffer.c:
25258 decode: fix creation of GLX video buffers for GStreamer 0.10.
25259 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25260 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25262 This fixes support for cluttersink with GStreamer 0.10 builds.
25264 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25266 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25267 mpeg2: disable video cropping as picture_display_extension() is missing.
25268 Disable video cropping in MPEG-2 codec because it is partially implemented
25269 and actually because nobody implements it that way, and the standard spec
25270 does not specify the display process either anyway.
25271 Most notably, there are two possible use cases for sequence_display_extension()
25272 horizontal_display_size & vertical_display_size: (i) guesstimating the
25273 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25274 in conjunction with picture_display_extension() information.
25275 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25277 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25279 * gst/vaapi/gstvaapisink.c:
25280 * gst/vaapi/gstvaapisink.h:
25281 vaapisink: allow scaling to ignore aspect ratio.
25282 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25283 which allows you to say that you don't want the sink to respect aspect
25284 ratio. Add the same property to vaapisink.
25285 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25286 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25288 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25290 * gst/vaapi/gstvaapisink.c:
25291 vaapisink: fix memory leak of GstVaapiUploader instance.
25292 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25293 of a former GstVaapiUploader instance prior to forcibly creating a
25295 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25297 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25299 * gst/vaapi/gstvaapisink.c:
25300 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25301 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25302 by honouring the filter caps argument. More precisely, this fixes the
25303 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25304 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25305 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25306 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25308 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25310 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25311 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25312 This fixes the following issue:
25313 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25314 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25315 'GstVaapiDecoderMpeg4Class'
25316 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25317 'GstVaapiDecoderMpeg4Class' was here
25318 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25319 make[5]: Leaving directory
25320 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25321 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25323 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25325 * tests/test-filter.c:
25326 tests: filter: add support for deinterlacing.
25327 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25328 deinterlacing filter. However, if --deinterlace option is not set but the
25329 --deinterlace-flags option is set with "top-field-first", then the very
25330 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25332 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25334 * tests/test-filter.c:
25335 tests: filter: add support for denoising and sharpening.
25336 Add --denoise option to enable noise reduction with the level specified
25337 as the option value (float). Likewise, add --sharpen option to enable
25339 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25341 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25343 * tests/test-filter.c:
25344 tests: filter: add support for frame cropping.
25345 Add support for frame cropping through the --crop-rect|-c argument.
25346 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25347 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25349 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25351 * tests/test-filter.c:
25352 tests: filter: dump supported operations and formats.
25354 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25356 * tests/Makefile.am:
25357 * tests/test-filter.c:
25358 tests: add initial test for video processing.
25359 Add minimal test case for video processing: scaling and color format
25361 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25363 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25365 * docs/reference/libs/libs-sections.txt:
25366 * gst-libs/gst/vaapi/gstvaapifilter.c:
25367 * gst-libs/gst/vaapi/gstvaapifilter.h:
25368 * gst-libs/gst/vaapi/gstvaapiutils.c:
25369 * gst-libs/gst/vaapi/gstvaapiutils.h:
25370 * gst/vaapi/gstvaapipostproc.c:
25371 * gst/vaapi/gstvaapipostproc.h:
25372 filter: add initial support for deinterlacing.
25373 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25374 the selected field from the input surface is kept for the target surface.
25375 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25376 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25377 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25378 to libgstvaapi core library.
25379 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25381 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25383 * docs/reference/libs/libs-sections.txt:
25384 * gst-libs/gst/vaapi/gstvaapifilter.c:
25385 * gst-libs/gst/vaapi/gstvaapifilter.h:
25386 filter: add support for color balance adjustment.
25387 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25388 and contrast. The respective range for each filter shall be the same as
25389 for the VA display attributes.
25390 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25392 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25394 * docs/reference/libs/libs-sections.txt:
25395 * gst-libs/gst/vaapi/gstvaapifilter.c:
25396 * gst-libs/gst/vaapi/gstvaapifilter.h:
25397 filter: add support for sharpening.
25398 Sharpening is configured with a float value. The supported range is
25399 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25403 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25405 * docs/reference/libs/libs-sections.txt:
25406 * gst-libs/gst/vaapi/gstvaapifilter.c:
25407 * gst-libs/gst/vaapi/gstvaapifilter.h:
25408 filter: add support for denoising.
25409 Noise reduction is configured with a float value. The supported range
25410 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25412 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25414 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25416 * docs/reference/libs/libs-sections.txt:
25417 * gst-libs/gst/vaapi/gstvaapifilter.c:
25418 * gst-libs/gst/vaapi/gstvaapifilter.h:
25419 filter: add support for frame cropping.
25420 Frame cropping is defined with a GstVaapiRectangle value. The default
25421 behaviour is to treat the source surface as a whole
25423 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25425 * gst-libs/gst/vaapi/gstvaapifilter.c:
25426 filter: add helper functions.
25427 Add helper functions to ensure an operation VA buffer is allocated to
25428 the right size; that filter caps get parsed and assigned to the right
25429 operation too; and that float parameters are correctly scaled to fit
25430 the reported range from the VA driver.
25432 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25435 * docs/reference/libs/libs-docs.xml.in:
25436 * docs/reference/libs/libs-sections.txt:
25437 * gst-libs/gst/vaapi/Makefile.am:
25438 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25439 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25440 * gst-libs/gst/vaapi/gstvaapifilter.c:
25441 * gst-libs/gst/vaapi/gstvaapifilter.h:
25442 Add initial infrastructure for video processing.
25443 Add initial API for video processing: only scaling and color format
25444 conversion operations are supported.
25446 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25448 * gst-libs/gst/vaapi/video-format.c:
25449 * gst-libs/gst/vaapi/video-format.h:
25450 libs: add gst_vaapi_video_format_from_string() helper.
25451 Add gst_vaapi_video_format_from_string() helper function to convert from
25452 a video format string representation to a suitable GstVideoFormat. This
25453 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25454 builds, and a proper iteration over all GstVideoFormat string representations
25455 otherwise for earlier GStreamer 0.10.x builds.
25457 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25459 * gst-libs/gst/vaapi/video-format.c:
25460 * gst-libs/gst/vaapi/video-format.h:
25461 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25462 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25463 VA fourcc value to a suitable GstVideoFormat.
25465 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25467 * gst-libs/gst/vaapi/gstvaapivalue.c:
25468 * gst-libs/gst/vaapi/gstvaapivalue.h:
25469 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25470 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25471 structures as a standard GType. This could be useful to have them
25472 described as a GValue later on.
25474 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25476 * docs/reference/libs/libs-docs.xml.in:
25477 * docs/reference/libs/libs-sections.txt:
25478 * gst-libs/gst/vaapi/Makefile.am:
25479 * gst-libs/gst/vaapi/gstvaapicontext.h:
25480 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25481 libs: drop some public APIs.
25482 Don't expose GstVaapiContext APIs and make them totally private to
25483 libgstvaapi core library. That API would also tend to disappear in
25484 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25485 but keep symbols visible so that the various render backends could
25486 share a common display cache implementation in libgstvaapi.
25487 Try to clean-up the documentation from any stale entry too.
25489 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25493 tests: image: allow creation of images with interleaved patterns.
25494 Add image_generate_full() function to create interleaved color rectangles.
25495 If flags is zero, the whole frame is generated with a unique pattern. If
25496 flags is non-zero, then each field is handled individually.
25498 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25501 tests: image: fix conversion from RGB to YUV.
25502 Fix RGB to YUV conversion to preserve full data range.
25504 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25507 tests: image: try to upload images through vaDeriveImage() too.
25508 On some platforms, vaPutImage() would fail even if it does not involve
25509 color format conversion or scaling, whereas copying raw pixels through
25510 vaDeriveImage() could work instead.
25512 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25515 tests: image: add support for packed YUV formats.
25516 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25518 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25521 tests: image: fix generation of I420/YV12 images.
25522 U/V planes were reversed, thus producing invalid images.
25524 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25527 tests: image: fix string representation for GstVideoFormat.
25529 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25531 * docs/reference/libs/libs-sections.txt:
25532 * gst-libs/gst/vaapi/Makefile.am:
25533 * gst-libs/gst/vaapi/gstvaapiimage.c:
25534 * gst-libs/gst/vaapi/gstvaapiimage.h:
25535 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25536 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25537 * gst-libs/gst/vaapi/gstvaapisurface.c:
25538 image: clean image API up.
25539 Don't expose functions that reference a GstVaapiImageRaw, those are
25540 meant to be internal only for implementing subpictures sync. Also add
25541 a few private definitions to avoid functions calls for retrieving
25542 image size and format information.
25544 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25546 * docs/reference/libs/libs-sections.txt:
25547 * gst-libs/gst/vaapi/gstvaapiimage.c:
25548 * gst-libs/gst/vaapi/gstvaapiimage.h:
25549 image: add gst_vaapi_image_copy() helper.
25550 Add gst_vaapi_image_copy() helper function to copy images of same format
25553 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25555 * gst/vaapi/gstvaapivideoconverter_x11.c:
25556 plugins: handle video cropping in X11 pixmap converter.
25557 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25558 we could decode from the stream.
25560 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25562 * gst/vaapi/Makefile.am:
25563 * gst/vaapi/gstvaapivideobuffer.c:
25564 * gst/vaapi/gstvaapivideoconverter_glx.c:
25565 * gst/vaapi/gstvaapivideoconverter_x11.c:
25566 * gst/vaapi/gstvaapivideoconverter_x11.h:
25567 plugins: add support for "x11-pixmap" video converter type.
25568 Install a new video converter that supports X11 pixmap targets for X11
25569 backends only, or make the GLX converter creation function chain up to
25570 the X11 converter whenever requested.
25572 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25574 * tests/simple-decoder.c:
25575 tests: simple-decoder: add support for pixmap API.
25576 Add support for the new render-to-pixmap API. Avoid flickering on
25577 platforms supporting video overlay by keeping up to 2 intermediate
25580 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25582 * tests/simple-decoder.c:
25583 tests: simple-decoder: add support for video cropping.
25584 Handle video cropping information attached to a VA surface proxy.
25586 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25590 * tests/test-decode.c:
25591 tests: add support for render-to-pixmap.
25592 Add --pixmap option to test-decode so that to allow copies of VA
25593 surface to an intermediate pixmap and rendering from that pixmap.
25594 Only X11 backends are supported for now.
25596 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25599 * gst-libs/gst/vaapi/Makefile.am:
25600 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25601 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25602 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25603 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25604 x11: implement pixmap rendering with RENDER extension.
25605 Use hardware accelerated XRenderComposite() function, from the RENDER
25606 extension, to blit a pixmap to screen. Besides, this can also support
25607 cropping and scaling.
25609 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25611 * docs/reference/libs/libs-docs.xml.in:
25612 * docs/reference/libs/libs-sections.txt:
25613 * gst-libs/gst/vaapi/Makefile.am:
25614 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25615 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25616 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25617 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25618 x11: implement pixmap API.
25619 Implement the new render-to-pixmap API. The only supported pixmap format
25620 that will work is xRGB, with native byte ordering. Others might work but
25621 they were not tested.
25623 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25625 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25626 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25627 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25628 x11: update x11_get_geometry() helper function with depth output.
25629 Allow x11_get_geometry() utility function to also return the depth
25630 assigned to the X drawable.
25632 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25634 * docs/reference/libs/libs-docs.xml.in:
25635 * docs/reference/libs/libs-sections.txt:
25636 * gst-libs/gst/vaapi/Makefile.am:
25637 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25638 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25639 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25640 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25641 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25642 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25643 Add initial Pixmap API.
25644 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25645 render a native pixmap, for completeness. In general, rendering to
25646 pixmap would only be useful to certain VA drivers and use cases on
25647 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25650 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25652 * docs/reference/libs/libs-sections.txt:
25653 * gst-libs/gst/vaapi/gstvaapiimage.c:
25654 * gst-libs/gst/vaapi/gstvaapisurface.c:
25655 * gst-libs/gst/vaapi/video-format.c:
25656 * gst-libs/gst/vaapi/video-format.h:
25657 libs: add and expose gst_vaapi_video_format_to_string() helper.
25658 This is just a wrapper over gst_video_format_to_string() for older
25659 GStreamer 0.10 builds.
25661 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25663 * gst/vaapi/gstvaapipluginutil.c:
25664 plugins: fix display type comparison in gst_vaapi_create_display().
25665 After the code got moved to create the gst_vaapi_create_display() helper,
25666 this comparison was not updated to dereference the newly-created
25667 pointer, so the code was comparing the pointer itself to the type, and
25668 therefore failing to retrieve the VA display.
25669 This fixes the following error (and gets gst-vaapi decoding again):
25670 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25671 https://bugzilla.gnome.org/show_bug.cgi?id=704410
25672 Signed-off-by: Emilio López <emilio@elopez.com.ar>
25674 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25677 Bump version for development.
25679 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25681 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25682 mpeg2: don't output dummy pictures.
25683 Mark dummy pictures as output already so that we don't try to submit
25684 them to the upper layer since this is purely internal / temporary
25685 picture for helping the decoder.
25687 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25689 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25690 decoder: dispose GstVideoCodecFrame earlier.
25691 Once the picture was output, it is no longer necessary to keep an extra
25692 reference to the underlying GstVideoCodecFrame. So, we can release it
25693 earlier, and maybe subsequently release the associate surface proxy
25696 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25702 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25704 * docs/reference/libs/libs-sections.txt:
25705 * gst-libs/gst/vaapi/Makefile.am:
25706 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25707 * gst-libs/gst/vaapi/gstvaapiimage.c:
25708 * gst-libs/gst/vaapi/gstvaapisurface.c:
25709 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25710 * gst-libs/gst/vaapi/video-format.c:
25711 * gst-libs/gst/vaapi/video-format.h:
25712 * gst/vaapi/gstvaapidownload.c:
25713 * gst/vaapi/gstvaapiuploader.c:
25715 * tests/test-display.c:
25716 Fix new video format API.
25717 Fix new internal video format API, based on GstVideoFormat, to not
25718 clobber with system symbols. So replace the gst_video_format_* prefix
25719 with gst_vaapi_video_format_ prefix, even if the format type remains
25722 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25725 Bump library major version.
25726 Bump the library major version due to API/ABI changes that occurred in
25727 the imaging API. In particular, GstVaapiImageFormat type was replaced
25728 with the standard GstVideoFormat type. All dependent APIs were updated
25729 to match this change.
25731 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25736 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25738 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25739 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25740 decoder: fix memory leak when processing interlaced pictures.
25741 Fix memory leak when processing interlaced pictures and that occurs
25742 because the first field, represented as a GstVideoCodecFrame, never
25743 gets released. i.e. when the picture is completed, this is generally
25744 the case when the second field is successfully decoded, we need to
25745 propagate the GstVideoCodecFrame of the first field to the original
25746 GstVideoDecoder so that it could reclaim memory.
25747 Otherwise, we keep accumulating the first fields into GstVideoDecoder
25748 private frames list until the end-of-stream is reached. The frames
25749 are eventually released there, but too late, i.e. too much memory
25750 may have been consumed.
25751 https://bugzilla.gnome.org/show_bug.cgi?id=701257
25753 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25755 * gst/vaapi/gstvaapipluginutil.c:
25756 plugins: simlpify gst_vaapi_create_display() helper.
25757 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25758 performs the necessary validation checks for the underlying VA display
25759 prior to returning to the caller. So, if an error occurred, then NULL is
25760 really returned in that case.
25762 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25764 * gst/vaapi/gstvaapipluginutil.c:
25765 plugins: add gst_vaapi_create_display() helper.
25766 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25767 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25769 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25771 * gst/vaapi/gstvaapivideobufferpool.c:
25772 plugins: don't reallocate pool allocator for the same caps.
25773 If the video buffer pool config doesn't have new caps, then it's not
25774 necessary to reinstantiate the allocator. That could be a costly
25775 operation as we could do some extra heavy checking in there.
25777 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25779 * gst/vaapi/gstvaapivideomemory.c:
25780 plugins: fix ref counting of GstVaapiVideoMemory allocator.
25781 Fix reference counting issue whereby gst_memory_init() does not hold
25782 an extra reference to the GstAllocator. So, there could be situations
25783 where the last instance of GstVaapiVideoAllocator gets released before
25784 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25786 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25788 * gst/vaapi/gstvaapiuploader.c:
25789 vaapiupload: use implicit color conversion to NV12.
25790 Always perform conversion of sources buffers to NV12 since this is
25791 the way we tested for this capability in ensure_allowed_caps(). This
25792 also saves memory bandwidth for further rendering. However, this may
25793 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25795 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25797 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25798 pool: fix deallocation of video pools.
25799 The queue of free objects to used was deallocated with g_queue_free_full().
25800 However, this convenience function shall only be used if the original queue
25801 was allocated with g_queue_new(). This caused memory corruption, eventually
25802 leading to a crash.
25803 The correct solution is to pair the g_queue_init() with the corresponding
25804 g_queue_clear(), while iterating over all free objects to deallocate them.
25806 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
25808 * gst/vaapi/gstvaapidownload.c:
25809 vaapidownload: fix src caps format error.
25810 This fixes direct linking of vaapidownload element to xvimagesink with
25811 VA drivers supporting vaGetImage() from the native VA surface format to
25812 a different VA image format. i.e. color conversion during download.
25813 http://bugzilla.gnome.org/show_bug.cgi?id=703937
25814 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25816 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25818 * gst/vaapi/gstvaapidownload.c:
25819 vaapidownload: fix debug string for image formats.
25820 The image is now expressed as a standard GstVideoFormat, which is not
25821 a FOURCC but rather a regular enum value.
25822 This is a regression introduced in commit 09397fa.
25824 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
25826 * gst-libs/gst/vaapi/gstvaapiimage.c:
25827 image: add support for raw YUY2/UYVY image copies.
25828 Implement raw image copies for YUY2 format. Add support for UYVY format
25829 too, with the same copy function as for YUY2. Even though components
25830 ordering differs, copying line strides is essentially the same.
25831 https://bugzilla.gnome.org/show_bug.cgi?id=703939
25832 https://bugzilla.gnome.org/show_bug.cgi?id=703940
25833 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25835 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25837 * gst/vaapi/gstvaapiuploader.c:
25838 plugins: clean-up video uploader helper.
25839 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25840 were already negotiated beforehand, and they are not used from the
25841 buffer in upstream elements.
25842 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25843 represented as a GstVideoInfo.
25845 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25847 * gst/vaapi/gstvaapiuploader.c:
25848 plugins: use GstVideoInfo in video uploader helper.
25850 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25852 * gst/vaapi/gstvaapivideomemory.c:
25853 plugins: allow creation of VA surfaces with explicit pixel format.
25854 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25855 with an explicit pixel format. This allows for direct rendering to
25856 VA surface memory from a software decoder.
25858 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25860 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25861 surface: fix surface pool creation with an explicit pixel format.
25862 Fix creation of surface pool objects to honour explicit pixel format
25863 specification. If this operation is not supported, then fallback to
25864 the older interface with chroma format.
25866 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25868 * gst-libs/gst/vaapi/gstvaapisurface.c:
25869 surface: try to determine the underlying VA surface format.
25870 If a VA surface was allocated with the chroma-format interface, try to
25871 determine the underlying pixel format on gst_vaapi_surface_get_format(),
25872 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25874 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25876 * docs/reference/libs/libs-sections.txt:
25877 * gst-libs/gst/vaapi/gstvaapisurface.c:
25878 * gst-libs/gst/vaapi/gstvaapisurface.h:
25879 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25880 surface: allow creation with explicit pixel format.
25881 Make it possible to create VA surfaces with a specific pixel format.
25882 This is a new capability brought in by VA-API >= 0.34.0. If that
25883 capability is not built-in (e.g. using VA-API < 0.34.0), then
25884 gst_vaapi_surface_new_with_format() will return NULL.
25886 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25888 * docs/reference/libs/libs-sections.txt:
25889 * gst-libs/gst/vaapi/video-format.c:
25890 * gst-libs/gst/vaapi/video-format.h:
25891 surface: add helper function to get chroma type from GstVideoFormat.
25892 Add gst_video_format_get_chroma_type() helper function to determine
25893 the GstVaapiChromaType from a standard GStreamer video format. It is
25894 possible to reconstruct that from GstVideoFormatInfo but it is much
25895 simpler (and faster?) to use the local GstVideoFormatMap table.
25897 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25899 * gst-libs/gst/vaapi/gstvaapisurface.c:
25900 * gst-libs/gst/vaapi/gstvaapisurface.h:
25901 * gst-libs/gst/vaapi/gstvaapiutils.c:
25902 * gst-libs/gst/vaapi/gstvaapiutils.h:
25903 surface: add new chroma formats.
25904 Add new chroma formats available with VA-API >= 0.34.0. In particular,
25905 this includes "RGB" chroma formats, and more YUV subsampled formats.
25906 Also add a new from_GstVaapiChromaType() helper function to convert
25907 libgstvaapi chroma type to VA chroma format.
25909 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25911 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25912 pool: fix image pool to check for the video format to use.
25913 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25914 image pool object, only if the underlying VA display does support the
25915 requested VA image format.
25917 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25919 * gst-libs/gst/vaapi/gstvaapicontext.c:
25920 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25921 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25922 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25923 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25924 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25925 * gst/vaapi/gstvaapidownload.c:
25926 * gst/vaapi/gstvaapiuploader.c:
25927 * tests/Makefile.am:
25928 * tests/test-surfaces.c:
25929 Use GstVideoInfo for video pools.
25930 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25931 structures instead. Those are smaller, and allows for streamlining
25934 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25936 * gst-libs/gst/vaapi/gstvaapiimage.c:
25937 * gst-libs/gst/vaapi/video-format.c:
25938 Add more video formats.
25939 Add new video format mappings to VA image formats:
25940 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25941 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25943 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25945 * gst-libs/gst/vaapi/gstvaapiimage.c:
25946 image: fix debug message with video format.
25947 Fix debug message string with image format expressed with GstVideoFormat
25948 instead of the obsolete format that turned out to be a fourcc.
25949 This is a regression from git commit e61c5fc.
25951 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25955 * tests/test-display.c:
25956 * tests/test-textures.c:
25957 * tests/test-windows.c:
25958 tests: port to new video format API.
25960 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25962 * gst/vaapi/gstvaapidownload.c:
25963 * gst/vaapi/gstvaapiuploader.c:
25964 * gst/vaapi/gstvaapivideomemory.c:
25965 plugins: port to new video format API.
25967 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25969 * gst-libs/gst/vaapi/gstvaapiimage.c:
25970 libs: use GstVideoInfo wherever possible.
25971 In particular, use gst_video_info_from_caps() helper function in VA image
25972 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
25973 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
25975 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25977 * docs/reference/libs/libs-docs.xml.in:
25978 * docs/reference/libs/libs-sections.txt:
25979 * gst-libs/gst/vaapi/Makefile.am:
25980 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25981 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25982 libs: drop GstVaapiImageFormat helpers.
25983 Drop GstVaapiImageFormat helpers since everything was moved to the new
25984 GstVideoFormat based API. Don't bother with backwards compatibility and
25985 just bump the library major version afterwards.
25987 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25989 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25990 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25991 * gst-libs/gst/vaapi/gstvaapiimage.c:
25992 * gst-libs/gst/vaapi/gstvaapiimage.h:
25993 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25994 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25995 libs: port to new video format API.
25997 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25999 * docs/reference/libs/libs-docs.xml.in:
26000 * docs/reference/libs/libs-sections.txt:
26001 * gst-libs/gst/vaapi/Makefile.am:
26002 * gst-libs/gst/vaapi/video-format.c:
26003 * gst-libs/gst/vaapi/video-format.h:
26004 Add new video format API.
26005 Leverage GstVideoFormat utilities from core GStreamer to provide an
26006 adaptation layer to VA image formats.
26008 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26013 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26015 * gst/vaapi/gstvaapisink.c:
26016 vaapisink: fix creation of GLX texture.
26017 Fix creation of GLX texture, to not depend on the GstCaps video size that
26018 could be wrong, especially in presence of frame cropping. So, use the size
26019 from the source VA surfaces.
26020 An optimization could be to reduce the texture size to the actual visible
26021 size on screen. i.e. scale down the texture size to match the screen dimensions,
26022 while preserving the VA surface aspect ratio. However, some VA drivers don't
26025 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26027 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26028 mpeg2: add support for video cropping.
26029 If the stream has a sequence_display_extenion, then attach the
26030 display_horizontal/display_vertical dimension as the cropping
26031 rectangle width/height to the GstVaapiPicture.
26032 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26034 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26036 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26037 vc1: add support for video cropping.
26038 If the Advanced profile has display_extension fields, then set the display
26039 width/height dimension as cropping rectangle to the GstVaapiPicture.
26040 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26042 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26044 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26045 h264: add support for video cropping.
26046 If the encoded stream has the frame_cropping_flag set, then associate
26047 the cropping rectangle to GstVaapiPicture.
26048 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26050 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26054 * tests/test-decode.c:
26055 * tests/test-subpicture.c:
26056 tests: add basic support for video cropping.
26057 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
26058 instead of a plain GstVaapiSurface. This means that we can now retrieve
26059 the frame cropping rectangle from the surface proxy, along with additional
26060 information if ever needed.
26062 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26064 * gst/vaapi/gstvaapidecode.c:
26065 * gst/vaapi/gstvaapisink.c:
26066 * gst/vaapi/gstvaapivideometa.c:
26067 plugins: add support for video cropping.
26068 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
26069 specific meta information to hold video cropping details. Make the sink
26070 support video cropping in X11 and GLX modes.
26072 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26074 * gst/vaapi/gstvaapivideometa.c:
26075 * gst/vaapi/gstvaapivideometa.h:
26076 plugins: add helper functions to set the render rectangle.
26077 Some video clips may have a clipping region that needs to propogate to
26078 the renderer. These helper functions make it possible to attach that
26079 clipping region, as a GstVaapiRectangle, the the video meta associated
26081 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26082 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26084 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26086 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26087 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26088 surfaceproxy: allow for NULL cropping rectangle.
26089 Make it possible associate an empty cropping rectangle to the surface
26090 proxy, thus resetting any cropping rectangle that was previously set.
26091 This allows for returning plain NULL when no cropping rectangle was
26092 initially set up to the surface proxy, or if it was reset to defaults.
26094 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26096 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26097 surfaceproxy: clean-up helper macros.
26098 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26099 proxy macro argument to a GstVaapiSurfaceProxy pointer.
26101 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26103 * gst-libs/gst/vaapi/gstvaapisurface.c:
26104 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26105 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26106 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26107 surface: add simple surface info accessors as helper macros.
26108 Add helper macros to retrieve the VA surface information like size
26109 (width, height) or chroma type. This is a micro-optimization to avoid
26110 useless function calls and NULL pointer re-checks in internal routines.
26112 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26114 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26115 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26116 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26117 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26118 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26119 decoder: add support for video cropping.
26120 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26121 cropping information from raw bitstreams to each picture being decoded.
26122 Also add helper function to surface proxy to propagate that information
26123 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26124 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26125 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26127 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26129 * ext/codecparsers:
26130 codecparsers: update to gst-vaapi-branch commit f90de0a.
26131 f90de0a h264: fix calculation of the frame cropping rectangle
26132 535515c h264: parse the cropping rectangle separately
26134 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26136 * ext/codecparsers:
26137 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26138 0f68a71 mpeg2: fix video packet header size checks
26140 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26142 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26143 mpeg2: reset quantization matrices on new sequence headers.
26144 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26145 shall be reset to their default values when a Sequence_Header() is
26147 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26149 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26152 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26153 mpeg2: cope with latest codecparser changes.
26154 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26155 used in individual header parsers. Also use the new slice parsing API.
26157 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26159 * ext/codecparsers:
26160 codecparsers: update to gst-vaapi-branch commit dddd182.
26161 dddd182 mpeg2: add slice header parsing API
26162 94e6228 mpeg2: add sequence scalable extension parsing API
26163 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26164 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26166 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26168 * gst/vaapi/gstvaapisink.c:
26169 vaapisink: expose the raw video formats in static caps template.
26170 Expose all raw video formats in the static caps template since the
26171 vaapisink is supporting raw data. We will get the exact set of formats
26172 supported by the driver dynamically through the _get_caps() routine.
26173 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26174 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26175 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26177 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26179 * gst/vaapi/gstvaapisink.c:
26180 * gst/vaapi/gstvaapisink.h:
26181 vaapisink: add "use-glx" property for OpenGL rendering.
26182 Now that VA/GLX capable buffers are generated by default on X11, thus
26183 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26184 rendering since it is faster.
26185 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26186 enabling "fancy" effects to play with. This has no real value. So,
26187 disable OpenGL rendering by default.
26189 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26191 * gst/vaapi/gstvaapipluginutil.c:
26192 plugins: try to allocate a GLX display first over an X11 one.
26193 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26194 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26196 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26198 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26201 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26202 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26203 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26204 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26206 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26208 * gst-libs/gst/vaapi/gstvaapiimage.c:
26209 image: fix wrong check for rect bounds in copy_image().
26211 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26214 Bump version for development.
26216 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26222 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26227 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26230 * gst-libs/gst/codecparsers/Makefile.am:
26231 configure: always build the MPEG-4 parser.
26232 Always build the MPEG-4 parser for now as there are also core fixes
26233 included in the parser that cannot be tested for with API checks.
26235 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26238 configure: add --enable-builtin-codecparsers [default="yes"] option.
26239 Add flag to have all codecparsers built-in, thus ensuring that the
26240 resulting binaries have all the necessary bug fixes and this is what
26241 the QA has been testing anyway.
26242 Of course, for a completely up-to-date Linux distribution, you could
26243 also opt for --disable-builtin-codecparsers and use the system ones.
26244 Though, some core fixes could be missing, and those cannot be tested
26245 for with API checks.
26247 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26249 * ext/codecparsers:
26250 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26251 843ce3e jpeg: fix default Huffman tables generation.
26252 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26253 21099dc mpeg2: actually store video bitrate values
26254 dd02087 mpeg2: fix picture packet extension size check
26255 25948e9 mpeg2: increase min size for picture coding ext
26256 f1f5a40 ensure the debug category is properly initialized
26258 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26260 * debian.upstream/Makefile.am:
26261 debian: fix list of generated files for .deb packaging.
26263 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26266 * debian.upstream/Makefile.am:
26267 * debian.upstream/control.in:
26268 debian: fix libgstvaapi -dev package name.
26269 Fix libgstvaapi -dev package name so that to allow installation of both
26270 GStreamer 0.10 and 1.0.x based packages.
26272 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26277 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26279 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26280 wayland: fix memory leak of display resources.
26282 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26284 * gst/vaapi/gstvaapisink.c:
26285 vaapisink: fix build without VA/GLX support.
26287 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26289 * gst/vaapi/gstvaapivideomemory.c:
26290 * gst/vaapi/gstvaapivideomemory.h:
26291 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26292 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26293 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26294 caller. This is the only sensible enough thing to do in this mode as
26295 the underlying surface pixels need to be extracted through an explicit
26296 call to the gst_video_frame_map() function instead.
26297 A possible use-case of this is to implement a "handoff" signal handler
26298 to fakesink or identity element for further processing.
26300 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26302 * gst/vaapi/gstvaapivideomemory.c:
26303 plugins: silence check for direct-rendering mode in video memory.
26304 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26305 mode support, and not trigger fatal-criticals if either test surface or
26306 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26307 supported by most hardware vs. I420 supported by most software decoders.
26309 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26311 * gst/vaapi/gstvaapivideomemory.c:
26312 plugins: improve video memory flags safety checks.
26313 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26314 support for now. Likewise, on unmap, make sure that the VA image is
26315 unmapped for either read or write, while still committing it to the
26316 VA surface if write was requested.
26318 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26320 * gst-libs/gst/vaapi/gstvaapisurface.c:
26321 surface: fix memory leak through unreleased parent context.
26322 Break the circular references between GstVaapiContext and its children
26323 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26324 context, which holds a reference to its VA surfaces, then none of those
26326 How does this impact support for subpictures?
26327 The only situation when the parent context needs to disappear is when
26328 it is replaced with another one because of a resolution change in the
26329 video stream for instance, or a normal destroy. In this case, it does
26330 not really matter to apply subpictures to the peer surfaces since they
26331 are either gone, or those that are left in the pipe can probably bear
26332 a reinstantiation of the subpictures for it.
26333 So, parent_context is set to NULL when the parent context is destroyed,
26334 other VA surfaces can still get subpictures attached to them, individually
26335 not as a whole. i.e. subpictures for surface S1 will be created from
26336 active composition buffers and associated to S1, subpictures for S2 will
26337 be created from the next active composition buffers, etc. We don't try
26338 to cache the subpictures in those cases (pending surfaces until EOS
26339 is reached, or pending surfaces until new surfaces matching new VA context
26340 get to be used instead).
26342 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26344 * gst/vaapi/gstvaapisink.c:
26345 vaapisink: fix one-time initialization when display property is set.
26346 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26347 tasks even if the `display' property was explicitly set.
26349 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26351 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26352 window: fix GLX window initialization.
26353 Make sure to create the GLX context once the window object has completed
26354 its creation. Since gl_resize() relies on the newly created window size,
26355 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26356 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26357 window object is created in the gst_vaapi_window_glx_new*() functions.
26359 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26361 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26362 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26363 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26364 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26365 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26366 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26367 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26368 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26369 * gst-libs/gst/vaapi/gstvaapitexture.c:
26370 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26371 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26372 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26373 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26374 display: validate display types.
26376 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26378 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26379 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26380 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26381 display: drop internal NAME_PREFIX, store the real display name.
26382 Always store a valid display name/device path, instead of adding a
26383 particular prefix. i.e. make it simply a strdup(), or "" if it was
26386 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26388 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26389 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26390 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26391 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26392 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26393 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26394 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26395 display: make it possible to lookup the display cache by type.
26396 Make it possible to add extra an extra filter to most of display cache
26397 lookup functions so that the GstVaapiDisplay instance can really match
26398 a compatible and existing display by type, instead of relying on extra
26399 string tags (e.g. "X11:" prefix, etc.).
26401 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26403 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26404 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26405 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26406 display: cope with new display cache API.
26408 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26410 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26411 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26412 display: rework display cache API.
26413 Simplify display cache API, while making it more flexible. We can now create
26414 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26416 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26418 * tests/test-display.c:
26419 tests: improve check for display cache.
26420 Improve check for display cache infrastructure. In particular, for X11 and
26421 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26422 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26423 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26424 already exists will have to generate different VA displays.
26426 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26428 * gst/vaapi/gstvaapiuploader.c:
26429 uploader: fix memory leak in GStreamer 0.10 builds.
26430 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26431 but it exhibited a memory leak because the surface generated for the
26432 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26433 possible to release that surface back to the parent pool when the meta
26434 gets released, and the memory consumption kept growing.
26435 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26437 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26439 * gst/vaapi/gstvaapivideometa.c:
26440 plugins: fix gst_vaapi_video_meta_new_from_pool().
26441 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26442 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26443 was hereby totally broken. Fixed this regression by using the newly
26444 provided gst_vaapi_video_pool_get_object_type() function.
26446 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26448 * gst/vaapi/gstvaapiuploader.c:
26449 * gst/vaapi/gstvaapivideomemory.c:
26450 * gst/vaapi/gstvaapivideometa.c:
26451 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26453 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26456 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26458 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26460 * docs/reference/libs/libs-sections.txt:
26461 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26462 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26463 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26464 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26465 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26466 libs: add query for GstVaapiVideoPool object types.
26467 Add API to identify the underlying GstVaapiVideoPool object type.
26469 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26471 * docs/reference/libs/libs-sections.txt:
26472 * gst-libs/gst/vaapi/gstvaapicontext.c:
26473 * gst-libs/gst/vaapi/gstvaapicontext.h:
26474 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26475 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26476 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26477 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26478 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26479 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26480 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26481 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26482 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26483 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26484 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26485 * gst-libs/gst/vaapi/gstvaapiimage.c:
26486 * gst-libs/gst/vaapi/gstvaapiimage.h:
26487 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26488 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26489 * gst-libs/gst/vaapi/gstvaapiobject.c:
26490 * gst-libs/gst/vaapi/gstvaapiobject.h:
26491 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26492 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26493 * gst-libs/gst/vaapi/gstvaapisurface.c:
26494 * gst-libs/gst/vaapi/gstvaapisurface.h:
26495 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26496 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26497 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26498 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26499 * gst-libs/gst/vaapi/gstvaapitexture.c:
26500 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26501 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26502 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26503 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26504 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26505 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26506 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26507 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26508 libs: drop GST_VAAPI_IS_xxx() helper macros.
26509 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26510 deriving from GObject and so those were only checking for whether the
26511 argument was NULL or not. This is now irrelevant, and even confusing
26512 to some extent, because we no longer have type checking.
26513 Note: this incurs more type checking (review) but the libgstvaapi is
26514 rather small, so this is manageable.
26516 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26519 Bump library major version.
26520 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26521 This is a fundamental change that requires a new SONAME. More changes are
26522 underway to streamline the core libraries.
26523 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26524 On one particular test (sintel HD trailer), the total number of executed
26525 instruction was reduced by 8%.
26527 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26529 * docs/reference/libs/Makefile.am:
26530 * docs/reference/libs/libs-docs.xml.in:
26531 * docs/reference/libs/libs-sections.txt:
26532 * docs/reference/libs/libs.core.types:
26533 * docs/reference/libs/libs.glx.types:
26534 * docs/reference/libs/libs.x11.types:
26535 docs: cope with removed APIs.
26536 Some APIs are dead because they are no longer based on GObject.
26538 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26540 * gst/vaapi/gstvaapidecode.c:
26541 * gst/vaapi/gstvaapidownload.c:
26542 * gst/vaapi/gstvaapipluginutil.c:
26543 * gst/vaapi/gstvaapipostproc.c:
26544 * gst/vaapi/gstvaapisink.c:
26545 * gst/vaapi/gstvaapiupload.c:
26546 * gst/vaapi/gstvaapiuploader.c:
26547 * gst/vaapi/gstvaapivideobufferpool.c:
26548 * gst/vaapi/gstvaapivideoconverter_glx.c:
26549 * gst/vaapi/gstvaapivideomemory.c:
26550 * gst/vaapi/gstvaapivideometa.c:
26551 plugins: cope with new GstVaapiMiniObject objects.
26553 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26558 * tests/simple-decoder.c:
26559 * tests/test-decode.c:
26560 * tests/test-display.c:
26561 * tests/test-subpicture.c:
26562 * tests/test-surfaces.c:
26563 * tests/test-textures.c:
26564 * tests/test-windows.c:
26565 tests: cope with new GstVaapiMiniObject objects.
26567 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26569 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26570 display: fix set_synchronous() to lock display.
26572 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26574 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26575 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26576 videopool: simplify creation of video objects pool.
26578 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26580 * gst-libs/gst/vaapi/gstvaapiobject.c:
26581 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26582 * gst-libs/gst/vaapi/gstvaapitypes.h:
26583 libs: simplify GstVaapiID definitions.
26584 Make GstVaapiID a gsize instead of guessing an underlying integer large
26585 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26586 this is plain zero and that it is no longer passed as varargs.
26588 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26590 * gst-libs/gst/vaapi/Makefile.am:
26591 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26592 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26593 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26594 * gst-libs/gst/vaapi/gstvaapivalue.c:
26595 * gst-libs/gst/vaapi/gstvaapivalue.h:
26596 libs: drop obsolete function helpers and objects.
26597 Drop obsolete GstVaapiID related function helpers for passing them as
26600 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26602 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26603 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26604 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26605 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26606 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26607 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26608 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26609 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26610 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26611 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26612 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26613 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26614 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26615 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26616 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26617 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26618 * gst-libs/gst/vaapi/gstvaapiobject.c:
26619 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26620 libs: use GstVaapiMiniObject for display objects.
26622 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26624 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26625 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26626 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26627 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26628 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26629 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26630 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26631 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26632 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26633 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26634 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26635 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26636 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26637 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26638 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26639 libs: use GstVaapiMiniObject for video decoders.
26640 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26641 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26642 helper function to let the user add a callback to a function triggered
26643 whenever the codec state (e.g. caps) changes.
26645 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26647 * docs/reference/libs/libs-sections.txt:
26648 * gst-libs/gst/vaapi/Makefile.am:
26649 * gst-libs/gst/vaapi/gstvaapicontext.c:
26650 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26651 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26652 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26653 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26654 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26655 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26656 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26657 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26658 libs: use GstVaapiMiniObject for video object pools.
26659 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26660 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26661 no longer used for a long time. Make object allocators static, i.e.
26662 local to the shared library.
26664 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26666 * gst-libs/gst/vaapi/gstvaapitexture.c:
26667 * gst-libs/gst/vaapi/gstvaapitexture.h:
26668 libs: use GstVaapiObject for texture objects.
26670 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26672 * gst-libs/gst/vaapi/Makefile.am:
26673 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26674 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26675 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26676 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26677 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26678 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26679 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26680 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26681 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26682 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26683 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26684 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26685 libs: use GstVaapiObject for window objects.
26687 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26689 * gst-libs/gst/vaapi/gstvaapicontext.c:
26690 * gst-libs/gst/vaapi/gstvaapicontext.h:
26691 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26692 * gst-libs/gst/vaapi/gstvaapiimage.c:
26693 * gst-libs/gst/vaapi/gstvaapiimage.h:
26694 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26695 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26696 * gst-libs/gst/vaapi/gstvaapisurface.c:
26697 * gst-libs/gst/vaapi/gstvaapisurface.h:
26698 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26699 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26700 libs: use GstVaapiObject for VA objects.
26702 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26704 * gst-libs/gst/vaapi/Makefile.am:
26705 * gst-libs/gst/vaapi/gstvaapiobject.c:
26706 * gst-libs/gst/vaapi/gstvaapiobject.h:
26707 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26708 Port GstVaapiObject to GstVaapiMiniObject.
26710 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26712 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26713 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26714 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26715 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26716 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26717 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26718 libs: refine GstVaapiMiniObject.
26719 Drop support for user-defined data since this capability was not used
26720 so far and GstVaapiMiniObject represents the smallest reference counted
26721 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26722 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26723 is also possible to further simplify the layout of the object. i.e. merge
26724 GstVaapiMiniObjectBase into GstVaapiMiniObject.
26726 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26728 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26729 decoder: update picture size from the bitstream.
26730 Propagate the picture size from the bitstream to the GstVaapiDecoder,
26731 and subsequent user who installed a signal on notify::caps. This fixes
26732 decoding of TS streams when the demuxer failed to extract the required
26735 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26737 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26738 decoder: fix raw decoding mode.
26739 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26740 surface proxy to the caller.
26742 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26744 * docs/reference/libs/libs-sections.txt:
26745 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26746 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26747 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26748 * gst/vaapi/gstvaapidecode.c:
26749 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26750 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26751 wait for a frame to be decoded, until the specified timeout in microseconds,
26752 prior to returning to the caller.
26753 This is a fix to performance regression from 851cc0, whereby the vaapidecode
26754 loop executed on the srcpad task was called to often, thus starving all CPU
26757 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26760 Bump version for development.
26762 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26768 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26773 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26775 * gst/vaapi/gstvaapidecode.c:
26776 vaapidecode: rework heuristics to detect decode timeout.
26777 Rework heuristics to detect when downstream element ran into errors,
26778 and thus failing to release any VA surface in due time for the current
26779 frame to get decoded. In particular, recalibrate the render time base
26780 when the first frame gets submitted downstream, or when there is no
26781 timestamp that could be inferred.
26783 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26785 * gst-libs/gst/vaapi/gstcompat.h:
26786 * gst/vaapi/gstvaapidecode.c:
26787 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26788 Rework GstVideoDecoder::handle_frame() to decode the current frame,
26789 while possibly waiting for a free surface, and separately submit all
26790 decoded frames from a task. This makes it possible to pop and render
26791 decoded frames as soon as possible.
26793 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26795 * gst/vaapi/gstvaapidecode.c:
26796 * gst/vaapi/gstvaapidownload.c:
26797 * gst/vaapi/gstvaapisink.c:
26798 * gst/vaapi/gstvaapiupload.c:
26799 plugins: use gst_object_unref() wherever applicable.
26800 Use gst_object_unref() wherever applicable, e.g. objects derived from
26801 GstElement, GstVideoPool, etc.
26803 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26805 * docs/reference/plugins/plugins-docs.xml.in:
26806 * docs/reference/plugins/plugins-sections.txt:
26807 * docs/reference/plugins/plugins.types:
26808 docs: drop obsolete plug-ins.
26809 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26810 i.e. vaapiupload and vaapidownload are no longer the recommended
26813 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26815 * debian.upstream/rules:
26816 debian: fix build of GStreamer 0.10 packages.
26817 Fix build of Debian packages to scan the actual GStreamer API version
26818 from the generated changelog file.
26820 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26822 * gst/vaapi/gstvaapipostproc.c:
26823 vaapipostproc: minor clean-ups.
26824 Use g_clear_object() wherever appropriate and remove dead-code.
26826 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26828 * gst/vaapi/gstvaapipostproc.c:
26829 vaapipostproc: fix reference counting buf for passthrough mode.
26830 Fix reference counting bug for passthrough mode, whereby the input buffer
26831 was propagated as is downstream through gst_pad_push() without increasing
26832 its reference count before. The was a problem when gst_pad_push() returns
26833 an error and we further decrease the reference count of the input buffer.
26835 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26837 * gst-libs/gst/vaapi/gstcompat.h:
26838 * gst/vaapi/Makefile.am:
26839 * gst/vaapi/gstvaapi.c:
26840 * gst/vaapi/gstvaapidecode.c:
26841 * gst/vaapi/gstvaapipluginutil.h:
26842 * gst/vaapi/gstvaapipostproc.c:
26843 vaapipostproc: port to GStreamer 1.0.
26844 Add support for interlaced streams with GStreamer 1.0 too. Basically,
26845 this enables vaapipostproc, though it is not auto-plugged yet. We also
26846 make sure to reply to CAPS queries, and happily handle CAPS events.
26848 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26850 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26851 decoder: fix GstVideoCodecFrame flags for interlaced contents.
26852 Fix support for interlaced contents with GStreamer 0.10. In particular,
26853 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26855 This is a regression from commit 87e5717.
26857 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26859 * gst-libs/gst/vaapi/Makefile.am:
26860 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26861 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26862 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26863 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26864 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26865 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26866 structure was only useful to parsing and a proper GstvaapiDecoderFrame
26867 instance will be created instead.
26869 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26871 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26872 decoder: export presentation timestamp for raw decoding mode.
26873 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26874 held any information about the expected presentation timestamp, frame
26875 duration or additional flags like interlaced or top-field-first.
26877 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26879 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26880 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26881 decoder: use new GstVaapiSurfaceProxy utility functions.
26882 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26883 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26884 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26885 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26886 than gst_vaapi_picture_output().
26888 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26890 * docs/reference/libs/libs-sections.txt:
26891 * gst-libs/gst/vaapi/Makefile.am:
26892 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26893 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26894 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26895 surfaceproxy: add more attributes for raw decoding modes.
26896 Add more attributes for raw decoding modes, i.e. directly through the
26897 libgstvaapi helper library. In particular, add presentation timestamp,
26898 duration and a couple of flags (interlaced, TFF, RFF, one-field).
26900 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26902 * docs/reference/libs/libs-sections.txt:
26903 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26904 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26905 * gst/vaapi/gstvaapidecode.c:
26906 * tests/simple-decoder.c:
26907 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26908 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26909 to call some user-provided function when the surface proxy is released.
26911 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26914 * gst-libs/gst/vaapi/Makefile.am:
26915 build: link libgstvaapi-glx-1.0.so against libdl.
26916 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26917 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26919 https://bugzilla.gnome.org/show_bug.cgi?id=698046
26920 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26922 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26924 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26925 decoder: fix gst_vaapi_decoder_get_codec_state().
26926 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26927 supposed to make GstVaapiDecoder own the return GstVideoCodecState
26928 object. Only comment was updated, not the actual code.
26930 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26932 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26933 * gst/vaapi/gstvaapidecode.c:
26934 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26935 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26936 i.e. make the GstVaapiDecoder object own the return state so that callers
26937 that want an extra reference to it would just gst_video_codec_state_ref()
26938 it before usage. This aligns the behaviour with what we had before with
26939 gst_vaapi_decoder_get_caps().
26940 This is an ABI incompatible change, library major version was bumped from
26941 previous release (0.5.2).
26943 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26945 * gst/vaapi/gstvaapivideobufferpool.h:
26946 * gst/vaapi/gstvaapivideoconverter_glx.h:
26947 plugins: mark a few more functions as internal.
26948 Mark the following functions are internal, i.e. private to the vaapi plug-in:
26949 - gst_vaapi_video_buffer_pool_get_type()
26950 - gst_vaapi_video_converter_glx_get_type()
26951 - gst_vaapi_video_converter_glx_new()
26953 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26955 * gst/vaapi/gstvaapivideobuffer.c:
26956 plugins: implement GstSurfaceMeta API.
26957 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
26958 an unstable/deprecated API, this makes it possible to support Clutter
26959 sink with minimal changes. Tested against clutter-gst 1.9.92.
26961 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26963 * gst/vaapi/gstvaapisink.c:
26964 vaapisink: optimize GstVideoOverlayInterface::expose().
26965 When render-mode is "overlay", then it is not really useful to peek into
26966 the GstBaseSink::last_buffer, since we have our own video_buffer already
26967 recorded and maintained into GstVaapiSink.
26969 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26971 * gst/vaapi/gstvaapisink.c:
26972 vaapisink: fix memory leak of GstSample objects.
26973 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
26974 This also fixes extra unreferencing of the underlying GstBuffer in the common
26975 path afterwards (for both 0.10 or 1.0).
26977 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26979 * gst-libs/gst/vaapi/gstcompat.h:
26980 * gst/vaapi/gstvaapi.c:
26981 plugins: fix description for gst-inspect.
26982 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
26983 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
26984 incorrectly uses #name for creating the plug-in name, instead of using macro
26985 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
26987 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26991 Update build requirements for GStreamer 1.0.x support. Add section for
26992 ways to report bugs.
26994 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26999 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27001 * gst-libs/gst/vaapi/Makefile.am:
27002 * gst/vaapi/Makefile.am:
27003 Fix make dist to include all source files, in any case.
27004 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
27005 sure to include all source files in either case while generating source
27008 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27011 Bump library major version.
27012 Bump library major version, while preserving a major version of 0 for
27013 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
27014 0.10 based librarieS.
27016 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27018 * gst/vaapi/gstvaapivideomemory.c:
27019 * gst/vaapi/gstvaapivideomemory.h:
27020 plugins: implement direct-rendering mode for raw YUV buffer uploads.
27021 Allow direct-rendering (writes) into target VA surfaces.
27023 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27025 * gst/vaapi/gstvaapivideobufferpool.c:
27026 * gst/vaapi/gstvaapivideomemory.c:
27027 * gst/vaapi/gstvaapivideomemory.h:
27028 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
27029 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
27030 the last component is unmapped. Downloads are not supported yet. The aim
27031 was to first support SW decoding + HW accelerated rendering (vaapisink).
27034 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27036 * gst/vaapi/gstvaapidecode.c:
27037 vaapidecode: submit all decoded frames before decoding a new one.
27038 Make sure to purge all pending frames that were already decoded prior
27039 to decoding a new one. This helps release VA surfaces as early as
27042 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27044 * gst/vaapi/gstvaapidecode.c:
27045 vaapidecode: reply to CAPS queries.
27046 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
27047 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
27048 This fixes fallback to SW decoding if no HW decoder is available.
27050 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27052 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27053 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27054 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27055 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27056 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27057 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27058 decoder: fix unpaired GstBuffer map/unmaps.
27059 This possibly fixes a few memory leaks along the way.
27061 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27064 * gst-libs/gst/vaapi/gstcompat.h:
27065 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27066 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27067 * gst/vaapi/Makefile.am:
27068 * gst/vaapi/gstvaapi.c:
27069 * gst/vaapi/gstvaapidecode.c:
27070 * gst/vaapi/gstvaapisink.c:
27071 * gst/vaapi/gstvaapisink.h:
27072 * gst/vaapi/gstvaapiuploader.c:
27074 Allow build against either GStreamer API (0.10 or 1.0).
27075 Introduce a new configure option --with-gstreamer-api that determines
27076 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
27077 Also integrate more compatibility glue into gstcompat.h and plugins.
27079 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27081 * gst/vaapi/gstvaapidecode.c:
27082 * gst/vaapi/gstvaapisink.c:
27083 * gst/vaapi/gstvaapisink.h:
27084 plugins: use new video buffer pools.
27085 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
27086 GstBaseSink::propose_allocation() to expose that pool to upstream
27087 elements; and also implement GstVideoDecoder::decide_allocation() to
27088 actually use that pool (from downstream), if any, or create one.
27089 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27091 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27093 * gst/vaapi/Makefile.am:
27094 * gst/vaapi/gstvaapivideobufferpool.c:
27095 * gst/vaapi/gstvaapivideobufferpool.h:
27096 * gst/vaapi/gstvaapivideomemory.c:
27097 * gst/vaapi/gstvaapivideomemory.h:
27098 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27099 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27100 object currently holds a reference to GstVaapiVideoMeta.
27101 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27103 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27105 * gst/vaapi/gstvaapivideometa.c:
27106 * gst/vaapi/gstvaapivideometa.h:
27107 plugins: allow copies of GstVaapiVideoMeta objects.
27108 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27109 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27110 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27113 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27115 * gst/vaapi/gstvaapivideometa.c:
27116 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27117 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27118 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27119 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27122 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27124 * gst/vaapi/Makefile.am:
27125 * gst/vaapi/gstvaapi.c:
27126 * gst/vaapi/gstvaapidecode.c:
27127 * gst/vaapi/gstvaapidownload.c:
27128 * gst/vaapi/gstvaapipluginutil.c:
27129 * gst/vaapi/gstvaapipostproc.c:
27130 * gst/vaapi/gstvaapisink.c:
27131 * gst/vaapi/gstvaapiupload.c:
27132 * gst/vaapi/gstvaapiuploader.c:
27133 * gst/vaapi/gstvaapivideobuffer.c:
27134 * gst/vaapi/gstvaapivideoconverter_glx.c:
27135 * gst/vaapi/gstvaapivideometa.c:
27136 * gst/vaapi/gstvaapivideometa.h:
27137 plugins: initial port to GStreamer 1.0.
27138 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27139 is rather minimalistic so that to test the basic functionality.
27140 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27141 needs polishing wrt. to GStreamer 1.x functionality and the former are
27142 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27143 which are yet to be implemented.
27144 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27146 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27148 * gst-libs/gst/vaapi/gstcompat.h:
27151 * tests/simple-decoder.c:
27152 * tests/test-subpicture.c:
27153 tests: add support for GStreamer 1.0.
27155 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27158 * gst-libs/gst/vaapi/gstcompat.h:
27159 * gst-libs/gst/vaapi/gstvaapicontext.c:
27160 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27161 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27162 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27163 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27164 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27165 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27166 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27167 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27168 * gst-libs/gst/vaapi/gstvaapiimage.c:
27169 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27170 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27171 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27172 * gst-libs/gst/vaapi/gstvaapisurface.h:
27173 Add initial support for GStreamer 1.0.
27174 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27175 core decoding library. The changes are kept rather minimal here so that
27176 the library retains as little dependency as possible on core GStreamer
27178 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27180 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27182 * gst/vaapi/gstvaapisink.c:
27183 vaapisink: improve check for raw YUV format mode.
27184 Improve check for raw YUV format modes by avoiding checks against strings
27185 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27186 GstBaseSink::set_caps() is called first and if VA surface format mode is
27187 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27188 called before set_caps(), then we just make a full check. This one is
27189 pretty rare though, e.g. it usually happens once for custom pipelines.
27191 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27193 * gst/vaapi/gstvaapipluginutil.c:
27194 plugins: don't fail if there is no overlay composition to apply.
27195 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27196 was found. i.e. return success (TRUE). This was harmless though extra
27197 debug messages are not nice.
27198 This is a regression introduced by commit 95b8659.
27200 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27202 * gst/vaapi/gstvaapidecode.c:
27203 * gst/vaapi/gstvaapidecode.h:
27204 vaapidecode: expose the exact set of supported HW decoders.
27205 Don't return static caps that don't mean anything for the underlying codecs
27206 that are actually supported for decoding. i.e. always allocate a VA display
27207 and retrieve the exact set of HW decoders available. That VA display may be
27208 re-used later on during negotiation through GstVideoContext "prepare-context".
27209 This fixes fallback to SW decoding if no HW decoder is available.
27211 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27213 * docs/reference/libs/libs-sections.txt:
27214 * gst-libs/gst/vaapi/gstvaapicontext.c:
27215 * gst-libs/gst/vaapi/gstvaapicontext.h:
27216 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27217 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27218 decoder: drop obsolete functions.
27219 Drop the following functions that are now obsolete:
27220 - gst_vaapi_context_get_surface()
27221 - gst_vaapi_context_put_surface()
27222 - gst_vaapi_context_find_surface_by_id()
27223 - gst_vaapi_surface_proxy_new()
27224 - gst_vaapi_surface_proxy_get_context()
27225 - gst_vaapi_surface_proxy_set_context()
27226 - gst_vaapi_surface_proxy_set_surface()
27227 This is an API change.
27229 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27231 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27232 decoder: delegate surface size check to VA context reset.
27233 Now that the surface pool is reference counted in the surface proxy wrapper,
27234 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27235 Besides, this check is already performed in gst_vaapi_context_reset_full().
27237 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27239 * docs/reference/libs/libs-sections.txt:
27240 * gst-libs/gst/vaapi/gstvaapicontext.c:
27241 * gst-libs/gst/vaapi/gstvaapicontext.h:
27242 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27243 * gst-libs/gst/vaapi/gstvaapisurface.h:
27244 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27245 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27246 decoder: simplify acquisition/release of spare surface.
27247 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27248 proxy from the context surface pool. This change also makes sure to retain
27249 the parent surface pool in the proxy.
27250 Besides, it was also totally useless to attach/detach parent context to
27251 VA surface each time we acquire/release it. Since the whole context owns
27252 all associated VA surfaces, we can mark this as such only once and for all.
27254 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27257 Bump version for development.
27259 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27265 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27270 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27272 * gst/vaapi/gstvaapipluginutil.c:
27273 * gst/vaapi/gstvaapisink.c:
27274 plugins: fix usage of gst_vaapi_reply_to_query().
27275 Make gst_vaapi_reply_to_query() first check whether the query argument
27276 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27277 Then, make sure vaapisink propagates the query to the parent class if
27278 it is not a video-context query.
27280 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27282 * gst/vaapi/gstvaapivideobuffer.c:
27283 * gst/vaapi/gstvaapivideobuffer.h:
27284 plugins: streamline video buffers.
27285 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27286 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27287 gst_vaapi_video_buffer_get_meta().
27289 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27291 * docs/reference/libs/libs-sections.txt:
27292 * gst-libs/gst/vaapi/Makefile.am:
27293 * gst/vaapi/Makefile.am:
27294 * gst/vaapi/gstvaapidecode.c:
27295 * gst/vaapi/gstvaapidownload.c:
27296 * gst/vaapi/gstvaapipostproc.c:
27297 * gst/vaapi/gstvaapisink.c:
27298 * gst/vaapi/gstvaapiupload.c:
27299 * gst/vaapi/gstvaapiuploader.c:
27300 * gst/vaapi/gstvaapivideobuffer.h:
27301 * gst/vaapi/gstvaapivideoconverter_glx.c:
27302 * gst/vaapi/gstvaapivideometa.c:
27303 * gst/vaapi/gstvaapivideometa.h:
27304 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27305 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27306 actual plugin elements. That's only useful there. Also inline reference
27307 counting code from GstVaapiMiniObject.
27309 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27311 * gst/vaapi/Makefile.am:
27312 * gst/vaapi/gstvaapidecode.c:
27313 * gst/vaapi/gstvaapidownload.c:
27314 * gst/vaapi/gstvaapipluginbuffer.c:
27315 * gst/vaapi/gstvaapipluginbuffer.h:
27316 * gst/vaapi/gstvaapipostproc.c:
27317 * gst/vaapi/gstvaapiupload.c:
27318 * gst/vaapi/gstvaapiuploader.c:
27319 * gst/vaapi/gstvaapivideobuffer.c:
27320 * gst/vaapi/gstvaapivideobuffer.h:
27321 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27322 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27323 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27325 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27327 * docs/reference/libs/libs-sections.txt:
27328 * docs/reference/libs/libs.core.types:
27329 * gst-libs/gst/vaapi/Makefile.am:
27330 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27331 * gst/vaapi/Makefile.am:
27332 * gst/vaapi/gstvaapidownload.h:
27333 * gst/vaapi/gstvaapipluginbuffer.c:
27334 * gst/vaapi/gstvaapipostproc.h:
27335 * gst/vaapi/gstvaapivideobuffer.c:
27336 * gst/vaapi/gstvaapivideobuffer.h:
27337 * gst/vaapi/gstvaapivideoconverter_glx.h:
27338 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27339 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27340 actual plugin elements. That's only useful there.
27342 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27344 * gst/vaapi/gstvaapipluginutil.c:
27345 * gst/vaapi/gstvaapipluginutil.h:
27346 * gst/vaapi/gstvaapisink.c:
27347 * gst/vaapi/gstvaapivideoconverter_glx.c:
27348 plugins: use common helper function to apply compositions.
27349 Use common gst_vaapi_apply_composition() helper function to apply compositions
27350 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27352 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27354 * gst-libs/gst/vaapi/Makefile.am:
27355 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27356 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27357 * gst/vaapi/Makefile.am:
27358 * gst/vaapi/gstvaapipluginbuffer.c:
27359 * gst/vaapi/gstvaapivideoconverter_glx.c:
27360 * gst/vaapi/gstvaapivideoconverter_glx.h:
27361 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27362 Make sure libgstvaapi core decoding library doesn't include un-needed
27363 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27364 Besides, even if the vaapisink element is not used, we are bound to have
27365 a correctly populated GstSurfaceBuffer from vaapidecode.
27366 Also clean-up the file along the way.
27368 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27370 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27371 vc1: fix use of possibly uninitialized variable.
27372 In decode_codec_data(), force initialization of format to zero so that
27373 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27374 fields, thus making it possible to gracefully fail in this case.
27376 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27378 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27379 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27381 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27383 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27384 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27385 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27386 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27387 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27388 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27389 decoder: sanitize codec-data decoding.
27390 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27391 codec-data in the decoder sub-class. Provide a common shared helper
27392 function to do the actual work and delegating further to the sub-class.
27394 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27396 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27397 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27398 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27399 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27400 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27401 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27402 useless nowadays as creating sub-buffers doesn't bring any value. It
27403 actually means more memory allocations. We can't do without that in
27404 JPEG and MPEG-4:2 decoders.
27406 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27408 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27409 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27410 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27411 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27412 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27413 decoder: sanitize uses of codec frame input buffer (cosmetics).
27414 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27417 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27419 * gst/vaapi/gstvaapisink.c:
27420 vaapisink: add helper function to apply a composition buffer.
27421 Simplify application of a composition buffer to a GstVaapiSurface, and
27422 all its peers, until that function is eventually promoted to libgstvaapi.
27424 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27426 * gst/vaapi/gstvaapisink.c:
27427 vaapisink: fix support for raw YUV buffers.
27428 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27429 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27430 However, we previously assumed in that case that it was a "native" VA buffer,
27431 thus not calling into GstVaapiUploader::process().
27433 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27435 * gst-libs/gst/vaapi/gstcompat.h:
27436 * gst/vaapi/gstvaapidecode.c:
27437 * gst/vaapi/gstvaapidownload.c:
27438 * gst/vaapi/gstvaapipostproc.c:
27439 * gst/vaapi/gstvaapisink.c:
27440 * gst/vaapi/gstvaapiupload.c:
27441 plugins: use modern GstElement metadata information.
27442 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27443 basically is the same as gst_element_class_set_details_simple() in
27444 GStreamer 0.10 context.
27446 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27448 * gst/vaapi/gstvaapidecode.c:
27449 * gst/vaapi/gstvaapidownload.c:
27450 * gst/vaapi/gstvaapipostproc.c:
27451 * gst/vaapi/gstvaapisink.c:
27452 * gst/vaapi/gstvaapiupload.c:
27453 plugins: move up interfaces (cosmetics).
27454 Move GstImplementsInterface and GstVideoContext support functions up
27455 so that to keep a clear separation between the plugin element and its
27458 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27460 * gst/vaapi/gstvaapisink.c:
27461 * gst/vaapi/gstvaapiuploader.c:
27462 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27463 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27464 Also use the newly added gst_vaapi_image_format_from_structure() helper
27465 in GstVaapiUploader::ensure_allowed_caps().
27467 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27469 * gst/vaapi/gstvaapipluginbuffer.c:
27470 plugins: fix creation of video buffer from another source buffer.
27471 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27472 buffer video meta since it would be unreference'd from the get_buffer()
27473 helper function. For other cases, we still use (steal) the newly created
27476 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27478 * gst/vaapi/gstvaapipluginbuffer.c:
27479 * gst/vaapi/gstvaapipluginutil.c:
27480 plugins: include "sysdeps.h" header instead of "config.h".
27482 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27484 * gst-libs/gst/vaapi/gstcompat.h:
27486 tests: modernize GstTypeFind functions.
27487 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27488 exactly correspond to the expected behaviour.
27490 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27494 * tests/test-decode.c:
27495 * tests/test-display.c:
27496 * tests/test-h264.c:
27497 * tests/test-h264.h:
27498 * tests/test-jpeg.c:
27499 * tests/test-jpeg.h:
27500 * tests/test-mpeg2.c:
27501 * tests/test-mpeg2.h:
27502 * tests/test-mpeg4.c:
27503 * tests/test-mpeg4.h:
27504 * tests/test-textures.c:
27505 * tests/test-vc1.c:
27506 * tests/test-vc1.h:
27507 * tests/test-windows.c:
27508 tests: fix license templates.
27510 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27512 * tests/test-display.c:
27513 tests: use gst_vaapi_image_format_from_structure() in test-display.
27514 Use gst_vaapi_image_format_from_structure() helper in test-display and
27515 then extract a VAImageFormat from it instead of relying on GstCaps for
27516 YUV and RGB formats.
27518 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27523 * tests/test-decode.c:
27524 * tests/test-display.c:
27525 * tests/test-subpicture.c:
27526 * tests/test-textures.c:
27527 * tests/test-windows.c:
27528 tests: include "sysdeps.h" header instead of "config.h".
27530 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27532 * gst-libs/gst/vaapi/gstcompat.h:
27533 * gst-libs/gst/vaapi/gstvaapicontext.c:
27534 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27535 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27536 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27537 function with GStreamer 0.10 compatible semantics, or that tries to
27538 approach the current meaning. Basically, this is also just about moving
27539 the helper to gstcompat.h.
27541 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27543 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27544 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27545 image: add gst_vaapi_image_format_from_structure() helper.
27546 Add helper function to convert video formats from a GstStructure to a
27547 plain GstVaapiImageFormat.
27549 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27551 * gst-libs/gst/vaapi/Makefile.am:
27552 * gst-libs/gst/vaapi/gstcompat.h:
27553 * gst-libs/gst/vaapi/sysdeps.h:
27554 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27556 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27558 * gst-libs/gst/vaapi/sysdeps.h:
27559 sysdeps: add more standard includes by default.
27561 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27564 configure: improve GStreamer API version checks.
27566 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27569 * debian.upstream/Makefile.am:
27570 * debian.upstream/changelog.in:
27571 * debian.upstream/control.in:
27572 * debian.upstream/gstreamer-vaapi-doc.install.in:
27573 * debian.upstream/libgstvaapi-dev.install.in:
27574 * debian.upstream/libgstvaapi-drm.install.in:
27575 * debian.upstream/libgstvaapi-glx.install.in:
27576 * debian.upstream/libgstvaapi-wayland.install.in:
27577 * debian.upstream/libgstvaapi-x11.install.in:
27578 * debian.upstream/libgstvaapi.install.in:
27579 * docs/reference/libs/Makefile.am:
27580 * docs/reference/libs/libs-docs.xml.in:
27581 * docs/reference/plugins/Makefile.am:
27582 * docs/reference/plugins/plugins-docs.xml.in:
27583 * gst-libs/gst/vaapi/Makefile.am:
27584 * gst/vaapi/Makefile.am:
27585 * pkgconfig/Makefile.am:
27586 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27587 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27588 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27589 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27590 * pkgconfig/gstreamer-vaapi.pc.in:
27591 * tests/Makefile.am:
27592 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27594 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27597 configure: improve check for H.264 codecparser.
27599 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27601 * gst/vaapi/gstvaapiuploader.c:
27602 vaapiupload: fix illegal write in ensure_image().
27603 Fix ensure_image() to only zero-initialize the first line of each plane.
27604 Properly initializing each plane to their full vertical resolution would
27605 require to actually compute it based on the image format.
27606 In particular, for NV12 images, the UV plane has half vertical resolution
27607 vs. the Y plane. So using the full image height to initialize the UV plane
27608 will obviously lead to a buffer overflow. Likewise for other YUV format.
27609 Since ensure_image() is only a helper function to initialize something,
27610 and not necessarily the whole thing, it is fine to initializ the first
27611 line only. Besides, the target surface is not rendered either.
27612 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27614 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27616 * gst-libs/gst/codecparsers/Makefile.am:
27617 * gst-libs/gst/video/Makefile.am:
27618 build: fix compiling of local GstVideoDecoder and codecparsers.
27619 Generated source files were missing a dependency on the complete set of
27620 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27621 to build and almost every codec parser source depends on parserutils.h.
27622 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27623 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27624 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27626 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27628 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27629 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27630 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27631 there is no pred_weight_table() that was parsed.
27632 This is a workaround for the VA intel-driver on Ivy Bridge.
27634 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27636 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27637 h264: use new profile definitions from codecparsers.
27639 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27641 * ext/codecparsers:
27642 codecparsers: update to gst-vaapi-branch commit 500bc02.
27643 500bc02 h264: add profile enums
27645 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27650 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27652 * ext/codecparsers:
27653 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27654 8957fb7 mpeg2: add helpers to convert quantization matrices
27655 07c4034 mpeg2: store quantization matrices in zigzag scan order
27657 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27659 * tests/simple-decoder.c:
27660 tests: simple-decoder: fix build on older platforms.
27661 Make simple-decoder build and execute correctly on older platforms,
27662 and more precisely older versions of glib.
27664 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27666 * gst-libs/gst/vaapi/glibcompat.h:
27667 glibcompat: add replacement for g_async_queue_timeout_pop().
27668 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27669 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27670 new data to arrive in the queue.
27672 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27674 * gst-libs/gst/vaapi/glibcompat.h:
27675 glibcompat: add replacement for g_cond_wait().
27677 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27679 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27680 mpeg2: fix decoding of 4K videos.
27681 Account for slice_vertical_position_extension when vertical_size > 2800.
27683 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27685 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27686 mpeg2: fix decoding of sequence_end().
27687 There shall be only one place to call decode_current_picture(), and this
27688 is in the end_frame() hook. The EOS unit is processed after end_frame()
27689 so this means we cannot have a valid picture to decode/output at this
27692 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27694 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27695 mpeg2: improve robustness when packets are missing.
27696 Improve robustness when some expected packets where not received yet
27697 or that were not correctly decoded. For example, don't try to decode
27698 a picture if there was no valid sequence or picture headers.
27700 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27702 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27703 decoder: handle decode-only frames in raw API mode.
27704 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27705 surface proxy, i.e. with a valid VA surface. This means that any frame
27706 marked as decode-only is simply skipped.
27708 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27710 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27711 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27712 decoder: allow frames to be dropped.
27713 If the decoder was not able to decode a frame because insufficient
27714 information was available, e.g. missing sequence or picture header,
27715 then allow the frame to be gracefully dropped without generating
27717 It is also possible that a frame is not meant to be displayed but
27718 only used as a reference, so dropping that frame is also a valid
27719 operation since GstVideoDecoder base class has extra references to
27720 that GstVideoCodecFrame that needs to be released.
27722 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27724 * gst/vaapi/gstvaapidecode.c:
27725 vaapidecode: handle decode-only frames.
27726 Decode-only frames may not have a valid surface proxy. So, simply discard
27727 them gracefully, i.e. don't create meta data information. GstVideoDecoder
27728 base class will properly handle this case and won't try to push any buffer
27729 to downstream elements.
27731 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27733 * gst/vaapi/gstvaapidecode.c:
27734 vaapidecode: add support for post-seek semantics reset.
27735 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27736 and the creation of a new VA decoder.
27737 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27739 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27742 Bump version for development.
27744 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27750 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27752 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27753 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27755 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27757 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27758 decoder: fix documentation for GstVaapiDecoderFrame.
27759 Drop superfluous reference to prev_slice member.
27761 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27763 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27764 decoder: assume current frame is complete at end-of-stream.
27765 Assume we got a complete frame when the end-of-stream is reached and that
27766 the current codec frame contains at least one slice data unit.
27768 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27772 * debian.upstream/copyright:
27773 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27774 * gst-libs/gst/vaapi/gstvaapicontext.c:
27775 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27776 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27777 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27778 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27779 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27780 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27781 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27782 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27783 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27784 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27785 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27786 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27787 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27788 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27789 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27790 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27791 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27792 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27793 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27794 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27795 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27796 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27797 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27798 * gst-libs/gst/vaapi/gstvaapisurface.c:
27799 * gst-libs/gst/vaapi/gstvaapiutils.c:
27800 * gst-libs/gst/vaapi/gstvaapiutils.h:
27801 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27802 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27803 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27804 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27805 * gst-libs/gst/vaapi/sysdeps.h:
27806 * gst/vaapi/gstvaapidecode.c:
27807 * gst/vaapi/gstvaapidownload.c:
27808 * gst/vaapi/gstvaapipluginbuffer.c:
27809 * gst/vaapi/gstvaapipluginbuffer.h:
27810 * gst/vaapi/gstvaapipostproc.c:
27811 * gst/vaapi/gstvaapisink.c:
27812 * gst/vaapi/gstvaapiupload.c:
27813 * gst/vaapi/gstvaapiuploader.c:
27815 * tests/test-decode.c:
27816 * tests/test-subpicture.c:
27817 legal: fix year for some copyright notices (2013).
27819 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27821 * gst-libs/gst/vaapi/gstvaapicontext.h:
27822 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27823 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27824 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27825 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27826 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27827 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27828 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27829 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27830 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27831 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27832 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27833 * gst-libs/gst/vaapi/gstvaapisurface.c:
27834 * gst-libs/gst/vaapi/gstvaapisurface.h:
27835 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27836 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27837 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27838 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27839 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27840 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27841 * gst/vaapi/gstvaapidecode.h:
27842 * gst/vaapi/gstvaapisink.h:
27843 * tests/test-subpicture.c:
27844 legal: fix year for some copyright notices (2012).
27846 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27848 * gst-libs/gst/vaapi/gstvaapicompat.h:
27849 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27850 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27851 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27852 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27853 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27854 * gst-libs/gst/vaapi/gstvaapiobject.c:
27855 * gst-libs/gst/vaapi/gstvaapiobject.h:
27856 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27857 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27858 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27859 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27860 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27861 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27862 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27863 * gst-libs/gst/vaapi/gstvaapitexture.c:
27864 * gst-libs/gst/vaapi/gstvaapitexture.h:
27865 * gst-libs/gst/vaapi/gstvaapitypes.h:
27866 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27867 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27868 * gst-libs/gst/vaapi/gstvaapivalue.c:
27869 * gst-libs/gst/vaapi/gstvaapivalue.h:
27870 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27871 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27872 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27873 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27874 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27875 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27876 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27877 * tests/test-display.c:
27878 * tests/test-surfaces.c:
27879 * tests/test-windows.c:
27880 legal: add Intel copyright on modified files.
27882 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27887 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27889 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27890 wayland: use a local event queue to avoid lock contention.
27891 This improves performance when rendering several surfaces from within
27892 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27894 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27896 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27897 wayland: fix thread-safe issues.
27898 The Wayland API is not fully thread-safe and client applications shall
27899 perform locking themselves on key functions. Besides, make sure to
27900 release the lock if the _render() function fails.
27902 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27904 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27905 wayland: really wait until the pending redraw completed.
27906 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27907 the completion of the redraw request. Use it in _render() function to
27908 actually block until the previous draw request is completed.
27910 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27912 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27913 wayland: fix frame_redraw callback.
27914 The redraw callback needs to be attached to the surface prior to the
27915 commit. Otherwise, the callback notifies the next surface repaint,
27916 which is not the desired behaviour. i.e. we want to be notified for
27917 the surface we have just filled.
27918 Another isse was the redraw_pending was reset before the actual completion
27919 of the frame redraw callback function, thus causing concurrency issues.
27920 e.g. the callback could have been called again, but with a NULL buffer.
27922 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27924 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27925 wayland: fix display sharing.
27926 When the Wayland display is shared, we still have to create our own local
27927 shell and compositor objects, since they are not propagated from the cache.
27928 Likewise, we also need to determine the display size or vaapisink would
27929 fail to account for the display aspect ratio, and will try to create a 0x0
27932 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27934 * ext/codecparsers:
27935 codecparsers: update to gst-vaapi-branch commit 21a098e.
27936 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27937 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27939 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27941 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27942 vc1: handle frames with multiple slices.
27944 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27946 * ext/codecparsers:
27947 codecparsers: update to gst-vaapi-branch commit 3fba492.
27948 3fba492 vc1: add API to parse slice headers
27950 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27952 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27953 vc1: handle CLOSED_ENTRY.
27954 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
27955 lack a reference anchor picture, these B pictures shall be discarded.
27956 https://bugs.freedesktop.org/show_bug.cgi?id=59505
27958 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27960 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27961 vc1: cope with latest codecparser changes.
27962 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
27963 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
27964 the actual value of DQPROFILE.
27966 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27968 * ext/codecparsers:
27969 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
27970 3d2c67c vc1: simplify GstVC1VopDquant structure
27972 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27974 * ext/codecparsers:
27975 codecparsers: update to gst-vaapi-branch commit 5d33da8.
27976 5d33da8 vc1: fix bitplanes decoding
27977 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
27978 0b13d2b vc1: fix calculation of ALTPQUANT
27979 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
27981 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27983 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27984 vc1: fix size of encapsulated BDU.
27985 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
27986 the size of the BDU data, starting from offset, i.e. after any start
27988 This fixes a buffer overflow during the unescaping process.
27990 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
27992 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27993 vc1: fix decoding of WMV3 videos in AVI format.
27994 The AVI demuxer (avidemux) does not set a proper "format" attribute
27995 to the generated caps. So, try to recover the video codec format from
27996 the "wmvversion" property instead.
27997 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27999 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28001 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28002 vc1: review and report errors accordingly.
28003 Use GST_ERROR() to report real errors instead of hiding them into
28006 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28008 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28009 vc1: don't create GstBuffers for all decoder units.
28010 Don't create temporary GstBuffers for all decoder units, even if they
28011 are lightweight "sub-buffers", since it is not really necessary to keep
28012 the buffer data around.
28014 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28016 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28017 vc1: implement flush() hook.
28018 Make it a simple DPB flush.
28020 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28022 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28023 vc1: implement {start,end}_frame() hooks.
28024 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28025 that to create new VA context earlier and submit VA pictures to the
28026 HW for decoding as soon as possible. i.e. don't wait for the next
28027 frame to start decoding the previous one.
28029 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28031 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28032 vc1: fix next POC for new sequence layers.
28033 Fix next POC when a new sequence layer is reached. At this point, we
28034 need to reset any previous reference picture, i.e. non B-frame.
28036 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28038 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28039 vc1: port to common GstVaapiDpb interface.
28040 Use GstVaapiDpb interface instead of maintaining our own prev and next
28041 picture pointers. While doing so, try to derive a sensible POC value.
28042 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28044 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28046 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28047 vc1: fix decode_sequence_end() to return success, not EOS.
28049 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28051 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28052 decoder: simplify gst_vaapi_decoder_get_surface().
28053 Avoid extraenous branches, i.e. immediately return with success once we
28054 have a decoded frame available.
28056 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28058 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28059 decoder: optimize and clean decode_step() up.
28060 Avoid usage of goto. Simplify decode_step() process to first accumulate all
28061 pending buffers into the GstAdapter, and then parse and decode units from
28062 that input adapter. Stop the process once a frame is fully decoded or an
28065 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28067 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28068 display: move "vaapi" debug init to libgstvaapi_init_once().
28070 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28073 * gst-libs/gst/vaapi/Makefile.am:
28074 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28075 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
28076 display: dump gstreamer-vaapi version for debugging purposes.
28078 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28080 * tests/Makefile.am:
28081 tests: simple-decoder: fix build with built-in videoutils.
28082 Fix build with built-in videoutils, i.e. when system GStreamer installation
28083 does not know about GstVideoDecoder API.
28085 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28087 * tests/simple-decoder.c:
28088 tests: simple-decoder: flush decoded frames at EOS.
28089 Flush the remaining decoded frames when an end-of-stream is reached.
28091 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28093 * tests/simple-decoder.c:
28094 tests: simple-decoder: drop use of GstVaapiVideoMeta.
28095 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28096 in libgstvaapi forever. Rather, that'd move to plugin elements at some
28099 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28101 * tests/simple-decoder.c:
28102 tests: simple-decoder: add benchmark mode.
28103 Add --benchmark option to enable benchmark mode where rendering is not
28104 synchronized with presentation timestamps of the decoded surfaces.
28106 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28108 * tests/Makefile.am:
28109 * tests/simple-decoder.c:
28110 tests: simple-decoder: honour framerate from the bitstream.
28111 Try to honour the framerate from the bitstream, or cap the playback to
28114 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28116 * tests/simple-decoder.c:
28117 tests: simple-decoder: set window size to the surface dimensions.
28118 Set the window size to the decoded surface dimensions, if the user has
28119 not requested the application to run in full-screen mode. Besides, no
28120 effort is made to preserve aspect ratio or to center the video within
28123 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28125 * tests/Makefile.am:
28126 * tests/simple-decoder.c:
28127 tests: add simple decoder application.
28128 Add simple decoder application to show off decoding capabilities from
28129 raw bitstreams, for debugging or performance evaluation purposes.
28131 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28133 * tests/Makefile.am:
28136 tests: add codec helper utils.
28137 Add helper functions to determine the codec type from a specific file
28138 or utility functions to convert from codec type to GstCaps or from
28139 codec name to codec type.
28141 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28144 tests: allow fullscreen mode.
28145 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28147 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28149 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28150 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28152 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28155 h264: handle end-of-stream NALU.
28156 Handle <end-of-stream> NAL unit to actually flush any pending picture
28159 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28161 * gst/vaapi/gstvaapidecode.c:
28162 vaapidecode: handle EOS events.
28163 Flush all decoded frames to downstream when EOS is received. This is
28164 performed by implementing GstVideoDecoder::finish() hook.
28166 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28168 * gst/vaapi/gstvaapidecode.c:
28169 vaapidecode: split gvd_handle_frame() into decode/push frames.
28170 Split GstVideoDecoder::handle_frame() implementation into two functions:
28171 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28172 for purging all decoded frames and submit them downstream.
28174 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28176 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28177 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28178 decoder: add GstVaapiDecoder::flush() hook.
28180 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28182 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28183 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28184 decoder: fix check for end-of-stream in raw API mode.
28185 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28186 if the end-of-stream was already reached at the previous iteration.
28188 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28190 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28191 decoder: make decode_step() return once the frame is decoded.
28192 Make sure we always have a free surface left to use for decoding the
28193 current frame. This means that decode_step() has to return once a frame
28194 gets decoded. If the current adapter contains more buffers with valid
28195 frames, they will get parsed and decoded on subsequent iterations.
28197 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28199 * ext/codecparsers:
28200 codecparsers: update to gst-vaapi-branch commit b47983a.
28201 8840c2d h264: zero-initialize SPS VUI parameters
28203 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28206 Bump version for development.
28208 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28214 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28216 * docs/reference/libs/libs-docs.xml.in:
28217 * docs/reference/libs/libs-sections.txt:
28218 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28219 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28220 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28221 docs: expose new interfaces.
28223 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28228 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28230 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28231 dpb: cosmetics (clean-ups).
28233 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28235 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28236 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28237 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28238 dpb: port to GstVaapiMiniObject.
28240 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28242 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28243 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28244 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28245 dpb: drop GstVaapiDpb2 interface, keep only one class.
28246 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28247 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28248 around the specified picture POC.
28250 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28252 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28253 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28254 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28255 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28256 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28257 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28258 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28260 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28263 Bump version for pre-release.
28265 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28270 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28273 * gst-libs/gst/vaapi/gstvaapicontext.c:
28274 * gst-libs/gst/vaapi/gstvaapiutils.c:
28275 * gst-libs/gst/vaapi/sysdeps.h:
28276 * tests/test-subpicture.c:
28277 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28278 Check for global-alpha support in GstVideoOverlayComposition API.
28279 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28281 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28283 * tests/test-subpicture.c:
28284 tests: add support for global-alpha subpictures.
28285 Add --global-alpha option to test-subpicture.
28287 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28289 * tests/Makefile.am:
28290 * tests/test-subpicture.c:
28291 tests: use GstVideoOverlayComposition API for subpicture test.
28293 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28295 * tests/Makefile.am:
28296 * tests/test-subpicture.c:
28297 tests: use common decoder helpers for subpicture test.
28298 Use common decoder helpers for subpicture test, thus allowing to decode
28299 sample images in an alternate format.
28301 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28303 * tests/Makefile.am:
28306 * tests/test-decode.c:
28307 tests: add decoder helpers.
28309 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28311 * gst-libs/gst/vaapi/gstvaapicontext.c:
28312 overlay: fix ordering of composition layers.
28313 Make sure to maintain the association order of composition layers when
28314 GstVideoOverlayRectangle objects are kept around (cached).
28316 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28318 * gst-libs/gst/vaapi/gstvaapicontext.c:
28319 overlay: fix support for global-alpha.
28320 Fix support for global-alpha subpictures. The previous changes brought
28321 the ability to check for GstVideoOverlayRectangle changes by comparing
28322 the underlying pixel buffer pointers. If sequence number and pixel data
28323 did not change, then this is an indication that only the global-alpha
28324 value changed. Now, try to update the underlying VA subpicture global-alpha
28326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28328 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28330 * gst-libs/gst/vaapi/gstvaapicontext.c:
28331 overlay: detect render-rect changes.
28332 Don't re-upload VA subpicture if only the render rectangle changed.
28333 Rather deassociate the subpicture and re-associate it with the new
28336 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28338 * gst-libs/gst/vaapi/gstvaapicontext.c:
28339 overlay: fix check for pixels buffer change.
28340 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28341 change. However, when global-alpha is supported, it is possible to re-use
28342 the same GstVideoOverlayRectangle but with a change to the global-alpha
28343 value. This process causes a change of sequence number, so we can no longer
28345 Still, if sequence numbers did not change, then there was no change in
28346 global-alpha either. So, we need a way to compare the underlying GstBuffer
28347 pointers. There is no API to retrieve the original pixels buffer from
28348 a GstVideoOverlayRectangle. So, we use the following heuristics:
28349 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28350 format flags from which the GstVideoOverlayRectangle was created. This
28351 will work if there was no prior consumer of the GstVideoOverlayRectangle
28352 with alternate (non-"native") format flags.
28353 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28354 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28355 with flags that match the subpicture. This is needed to cope with
28356 platforms that don't support global-alpha in HW, so the gst-video
28357 layer takes care of that and fixes this up with a possibly new
28358 GstBuffer, and hence pixels data (or) in-place by caching the current
28359 global-alpha value applied. So we have to determine the rectangle
28360 was previously used, based on what previous flags were used to
28361 retrieve the ARGB pixels buffer.
28363 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28365 * gst-libs/gst/vaapi/gstvaapicontext.c:
28366 overlay: optimize cache at the GstVideoOverlayRectangle level.
28367 We previously assumed that an overlay composition changed if the number
28368 of overlay rectangles in there actually changed, or that the rectangle
28369 was updated, and thus its seqnum was also updated.
28370 Now, we can cope with cases where the GstVideoOverlayComposition grew
28371 by one or a few more overlay rectangles, and the initial overlay rectangles
28374 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28376 * gst-libs/gst/vaapi/gstvaapicontext.c:
28377 overlay: simplify caching of GstVideoOverlayComposition objects.
28378 Create the GPtrArray once in the _init() function and destroy it only
28379 in the _finalize() function. Then use overlay_clear() to remove all
28380 subpicture associations for intermediate updates, don't recreate the
28382 Make GstVaapiOverlayRectangle a reference counted object. Also make
28383 sure that overlay_rectangle_new() actually creates and associates the
28386 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28388 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28389 * gst-libs/gst/vaapi/gstvaapiutils.c:
28390 * gst-libs/gst/vaapi/gstvaapiutils.h:
28391 overlay: add support for global-alpha.
28392 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28393 the same code path could also work for premultiplied-alpha but this
28395 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28397 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28399 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28400 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28401 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28402 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28403 * gst-libs/gst/vaapi/gstvaapisurface.c:
28405 * tests/test-subpicture.c:
28406 subpicture: add support for global-alpha.
28407 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28408 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28409 to address this feature.
28410 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28412 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28414 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28415 * gst-libs/gst/vaapi/gstvaapiutils.c:
28416 * gst-libs/gst/vaapi/gstvaapiutils.h:
28417 subpicture: add premultiplied-alpha and global-alpha feature flags.
28418 Add premultiplied-alpha and global-alpha feature flags, along with converters
28419 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28420 also necessary for GstVideoOverlayComposition API.
28422 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28424 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28425 display: allow image/subpicture formats with additional flags.
28426 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28427 and any additional flags needed. Currently, all flags are set to zero.
28429 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28431 * gst-libs/gst/codecparsers/Makefile.am:
28432 * gst-libs/gst/video/Makefile.am:
28433 * tests/Makefile.am:
28434 libs: fix build of submodule wrappers.
28435 Make sure to build codecparsers/ and videoutils/ sources against the
28436 newly generated headers when out-of-source builds are used.
28438 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28441 configure: fix checks for packages installed in non-standard roots.
28443 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28445 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28446 decoder: fix mini object implementation on 64-bit systems.
28447 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28448 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28449 Only a gsize can hold all bits of a pointer.
28450 Thanks to Ouping Zhang for spotting this error.
28452 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28454 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28455 mpeg2: optimize scan for the end of the frame.
28456 Heuristic: if the second start-code is available, check whether that
28457 one marks the start of a new frame because e.g. this is a sequence
28458 or picture header. This doesn't save much, since we already cache the
28461 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28463 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28464 mpeg2: optimize scan for start codes.
28465 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28466 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28467 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28468 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28469 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28470 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28471 4. xx == 00, yy == 00, zz == 1, we have match!
28472 This algorithm requires to peek bytes from the adapter. This increases the
28473 amount of bytes copied to a temporary buffer, but this process is much faster
28474 than scanning for all the bytes and using shift/masks. So, overall, this is
28477 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28479 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28480 mpeg2: drop useless gst_adapter_peek().
28481 Drop useless gst_adapter_peek() since the returned buffer was not used
28482 and this could incur superfluous memcpy().
28484 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28486 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28487 mpeg2: cosmetics: move parse_slice() down.
28489 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28491 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28492 mpeg2: avoid too many allocations of parser info objects.
28493 Move parsing back to decoding step, but keep functions separate for now.
28494 This is needed for future optimizations that may introduce some meta data
28495 for parsed info attached to codec frames.
28497 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28499 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28500 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28501 decoder: decoder units are no longer dynamically allocated objects.
28503 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28505 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28506 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28507 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28508 decoder: optimize pre-allocation of decoder units.
28509 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28510 memory reallocations. The heuristic used is that we could have around
28511 one slice unit per macroblock line.
28513 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28515 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28516 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28517 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28518 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28519 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28520 decoder: use an array of units instead of a single-linked list.
28521 Use a GArray to hold decoder units in a frame, instead of a single-linked
28522 list. This makes 'append' calls faster, but not that much. At least, this
28523 makes things clearer.
28525 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28527 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28528 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28529 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28530 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28531 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28532 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28533 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28534 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28535 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28536 decoder: refactor decoder unit API.
28537 Allocate decoder unit earlier in the main parse() function and don't
28538 delegate this task to derived classes. The ultimate purpose is to get
28539 rid of dynamic allocation of decoder units.
28541 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28543 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28544 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28545 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28546 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28548 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28550 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28551 h264: introduce parser info instead of H.264 specific decoder unit.
28552 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28553 from GstVaapiDecoderUnit for H.264 specific parser information.
28555 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28557 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28558 h264: set default values for some header fields.
28559 The SPS, PPS and slice headers are not fully zero-initialized in the
28560 codecparsers/ library. Rather, the standard upstream behaviour is to
28561 initialize only certain syntax elements with some inferred values if
28562 they are not present in the bitstream.
28563 At the gstreamer-vaapi decoder level, we need to further initialize
28564 certain syntax elements with some sensible default values so that to
28565 not complicate VA drivers that just pass those verbatim to the HW,
28566 and also avoid an memset() of the whole decoder unit.
28567 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28568 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28570 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28572 * ext/codecparsers:
28573 codecparsers: update to gst-vaapi-rebased commit b47983a.
28574 b47983a h264: add inferred value for slice_beta_offset_div2
28576 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28578 * gst/vaapi/gstvaapidecode.c:
28579 * gst/vaapi/gstvaapidownload.c:
28580 * gst/vaapi/gstvaapipluginbuffer.c:
28581 * gst/vaapi/gstvaapipluginbuffer.h:
28582 * gst/vaapi/gstvaapipostproc.c:
28583 * gst/vaapi/gstvaapisink.c:
28584 * gst/vaapi/gstvaapiupload.c:
28585 * gst/vaapi/gstvaapiuploader.c:
28586 plugins: cope with new GstVaapiVideoMeta API.
28587 Update plugin elements with the new GstVaapiVideoMeta API.
28588 This also fixes support for subpictures/overlay because GstVideoDecoder
28589 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28590 is marked as read-only. However, when comes in the textoverlay element
28591 for example, it checks whether the input buffer is writable. Since that
28592 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28593 does not preserve the parent field, the generated buffer in textoverlay
28594 is not exploitable because we lost all VA specific information.
28595 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28596 all information are preserved through gst_buffer_copy() since the latter
28597 does copy metadata (qdata in this case).
28599 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28601 * gst-libs/gst/vaapi/Makefile.am:
28602 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28603 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28604 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28605 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28606 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28607 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28608 videobuffer: wrap video meta into a surface buffer.
28609 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28610 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28611 expecting a GstSurfaceBuffer like Clutter.
28613 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28615 * gst-libs/gst/vaapi/Makefile.am:
28616 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28617 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28618 videobuffer: add video meta information.
28619 Add new GstVaapiVideoMeta object that holds all information needed to
28620 convey gst-vaapi specific data as a GstBuffer.
28622 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28624 * gst/vaapi/gstvaapidecode.c:
28625 vaapidecode: fix calculation of the time-out value.
28626 Fix calculation of the time-out value for cases where no VA surface is
28627 available for decoding. In this case, we need to wait until downstream
28628 sink consumed at least one surface. The time-out was miscalculated as
28629 it was always set to <current-time> + one second, which is not suitable
28630 for streams with larger gaps.
28632 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28634 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28635 decoder: always use the calculated presentation timestamp.
28636 Use PTS value computed by the decoder, which could also be derived from
28637 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28638 the original one was miscomputed or only represented a DTS instead.
28640 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28642 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28643 h264: don't create sub-buffer for slice data.
28645 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28647 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28648 decoder: create new context when encoded resolution changes.
28649 Create a new VA context if the encoded surface size changes because we
28650 need to keep the underlying surface pool until the last one was released.
28651 Otherwise, either of the following cases could have happened: (i) release
28652 a VA surface to an inexistent pool, or (ii) release VA surface to an
28653 existing surface pool, but with different size.
28655 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28657 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28658 mpeg2: don't create sub-buffer for slice data.
28659 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28660 frame input buffer data. This is possible because the codec frame is valid
28661 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28662 slice data buffer is copied into the VA buffer when it is created.
28664 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28666 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28667 mpeg2: minor clean-ups.
28668 Drop explicit initialization of most fields that are implicitly set to
28669 zero. Remove some useless checks for NULL pointers.
28671 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28673 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28674 mpeg2: optimize scan for the second start code.
28675 Optimize scan for the second start code, on the next parse() call so that
28676 to avoid scanning again earlier bytes where we didn't find any start code.
28678 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28680 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28681 mpeg2: use sequence_display_extension() to compute PAR.
28682 Also compute pixel-aspect-ratio from sequence_display_extension(),
28683 should it exist in the bitstream.
28685 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28687 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28688 mpeg2: handle sequence_display_extension().
28690 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28692 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28693 mpeg2: implement {start,end}_frame() hooks.
28694 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28695 that to create new VA context earlier and submit VA pictures to the
28696 HW for decoding as soon as possible. i.e. don't wait for the next
28697 frame to start decoding the previous one.
28699 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28701 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28702 mpeg2: parse slice() header earlier.
28703 Parse slice() header and first macroblock position earlier in _parse()
28704 function instead of waiting for the _decode() stage. This doesn't change
28705 anything but readability.
28707 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28709 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28710 mpeg2: add codec specific decoder unit.
28711 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28712 GstMpegVideoPacket and additional parsed header info. Besides, we now
28713 parse as early as in the _parse() function so that to avoid un-necessary
28714 creation of sub-buffers in _decode() for video packets that are not slices.
28716 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28718 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28719 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28720 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28721 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28722 decoder: introduce lists of units to decode before/after frame.
28723 Theory of operations: all units marked as "slice" are moved to the "units"
28724 list. Since this list only contains slice data units, the prev_slice pointer
28725 was removed. Besides, we now maintain two extra lists of units to be decoded
28726 before or after slice data units.
28727 In particular, all units in the "pre_units" list will be decoded before
28728 GstVaapiDecoder::start_frame() is called and units in the "post_units"
28729 list will be decoded after GstVaapiDecoder::end_frame() is called.
28731 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28733 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28734 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28735 decoder: drop useless checks for codec objects.
28736 Codec objects are used internally only and they are bound to be created
28737 with a valid GstVaapiDecoder object.
28739 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28741 * gst/vaapi/gstvaapidecode.c:
28742 vaapidecode: use GST_ERROR to print error messages.
28744 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28746 * gst/vaapi/gstvaapidecode.c:
28747 vaapidecode: avoid double release of frame on error.
28748 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28749 was already called before and it returned an error. In that case, we were
28750 releasing the frame again, thus leading to a "double-free" condition.
28752 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28759 * gst-libs/gst/Makefile.am:
28760 * gst-libs/gst/vaapi/Makefile.am:
28761 * gst-libs/gst/video/Makefile.am:
28762 * gst/vaapi/Makefile.am:
28763 Add videoutils submodule for GstVideoDecoder APIs.
28765 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28768 configure: check for GstVideoDecoder API.
28769 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28770 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28771 parties may either use upstream git 0.10 branch or backport the necessary support
28772 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28774 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28776 * docs/reference/libs/libs.core.types:
28777 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28778 GstVaapiSurfaceProxy is no longer based on the GType system.
28780 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28782 * docs/reference/libs/libs-sections.txt:
28783 docs: fix entries for GstVaapiSurfaceProxy.
28785 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28790 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28793 * gst-libs/gst/vaapi/Makefile.am:
28794 Bump library major version.
28795 Increase library major so that to cope with API/ABI incompatible changes
28796 since 0.4.x series and avoid user issues.
28798 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28800 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28801 surfaceproxy: minor clean-ups.
28803 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28805 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28806 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28807 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28808 surfaceproxy: drop accessors to obsolete attributes.
28809 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28810 VA surface. i.e. drop any other attribute like timestamp, duration,
28811 interlaced or top-field-first.
28813 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28815 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28816 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28817 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28818 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28819 * gst/vaapi/gstvaapidecode.c:
28820 decoder: maintain decoded frames as GstVideoCodecFrame objects.
28821 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28822 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28823 the strict minimum: a context and a surface.
28825 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28827 * gst/vaapi/gstvaapidecode.c:
28828 vaapidecode: output all decoded frames as soon as possible.
28829 Make sure to push all decoded frames downstream as soon as possible.
28830 This makes sure we don't need to wait for a new frame to be ready to
28831 be decoded before receiving new decoded frames.
28832 This also separates the decode process and the output process. The latter
28833 could be moved to a specific GstTask later on.
28835 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28837 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28838 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28839 decoder: add gst_vaapi_decoder_get_frame() API.
28840 Add new gst_vaapi_decoder_get_frame() function meant to be used with
28841 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28842 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28843 as the user-data object.
28845 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28847 * gst/vaapi/gstvaapipostproc.c:
28848 vaapipostproc: use GstBuffer flags for TFF.
28849 Determine whether the buffer represents the top-field only by checking for
28850 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28851 flag. Also trust "interlaced" caps to determine whether the input frame
28852 is interleaved or not.
28854 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28856 * gst/vaapi/gstvaapipostproc.c:
28857 vaapipostproc: handle video sub-buffers.
28858 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28859 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28861 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28863 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28864 h264: optimize initialization process of decoder units.
28865 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28866 The latter don't require zero-initialization since the codecparsers/ lib
28867 will do so for key variables already. This is not a great value per se but
28868 at least it makes it possible to check whether the default initialization
28869 decisions made in the codecparsers/ lib were right or not.
28870 This can be reverted if this exposes too many issues.
28872 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28874 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28875 h264: minor clean-ups.
28876 Drop explicit initialization of most fields that are implicitly set to
28877 zero. Drop helper macros for casting to GstVaapiPictureH264 or
28878 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28880 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28882 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28883 h264: drop GstVaapiSliceH264 object.
28884 Use standard GstVaapiSlice object from now on since we already have
28885 parsed and recorded the slice headers (GstH264SliceHdr decode units).
28887 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28889 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28890 h264: detect new pictures from decode-units.
28891 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28892 of assuming frame boundaries when first_mb_in_slice is zero.
28894 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28896 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28897 h264: implement {start,end}_frame() hooks.
28898 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28899 that to create new VA context earlier and submit VA pictures to the
28900 HW for decoding as soon as possible. i.e. don't wait for the next
28901 frame to start decoding the previous one.
28903 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28905 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28906 h264: optimize scan for the second start code.
28907 Optimize scan for the second start code, on the next parse() call so that
28908 to avoid scanning again earlier bytes where we didn't find any start code.
28910 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28912 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28913 h264: add codec specific decoder unit.
28914 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28915 NAL unit header (GstH264NalUnit) and additional parsed header info.
28916 Besides, we now parse headers as early as in the _parse() function so
28917 that to avoid un-necessary creation of sub-buffers in _decode() for
28918 NAL units that are not slices.
28919 This is a performance win by ~+1.1% only.
28921 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28923 * gst/vaapi/gstvaapisink.c:
28924 vaapisink: handle sub video-buffers.
28925 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28926 for non raw YUV cases. Make sure vaapisink now understands those buffers.
28928 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28930 * gst/vaapi/gstvaapidecode.c:
28931 vaapidecode: use gst_vaapi_decoder_get_codec_state().
28932 Directly use the GstVideoCodecState associated with the VA decoder
28933 instead of parsing caps again.
28934 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28935 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28937 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28939 * gst/vaapi/gstvaapidecode.c:
28940 vaapidecode: use more standard helpers.
28941 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28944 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28946 * gst/vaapi/gstvaapidecode.c:
28947 * gst/vaapi/gstvaapidecode.h:
28948 vaapidecode: move to GstVideoDecoder base class.
28949 Make vaapidecode derive from the standard GstVideoDecoder base element
28950 class. This simplifies the code to the strict minimum for the decoder
28951 element and makes it easier to port to GStreamer 1.x API.
28952 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28953 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28955 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28957 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28958 jpeg: initial port to new GstVaapiDecoder API
28960 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28962 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28963 vc1: initial port to new GstVaapiDecoder API
28965 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28967 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28968 h264: initial port to new GstVaapiDecoder API
28970 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28972 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28973 mpeg4: initial port to new GstVaapiDecoder API
28975 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28977 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28978 mpeg2: initial port to new GstVaapiDecoder API.
28980 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28982 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28983 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28984 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28985 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28986 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28987 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28988 decoder: use GstVideoCodecState.
28989 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
28990 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
28991 it possible to drop picture size (width, height) information, framerate
28992 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
28993 and interlace mode (is_interlaced field).
28994 This is a new API with backwards compatibility maintained. In particular,
28995 gst_vaapi_decoder_get_caps() is still available.
28996 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28997 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28999 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29001 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29002 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29003 * tests/test-decode.c:
29004 * tests/test-subpicture.c:
29005 decoder: update gst_vaapi_decoder_get_surface() semantics.
29006 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
29007 API. That is, return a GstVaapiDecoderStatus and the decoded surface
29008 as a handle to GstVaapiSurfaceProxy in parameter.
29009 This is an API/ABI change.
29011 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29013 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29014 decoder: use standard helper functions.
29015 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
29016 whenever necessary.
29018 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29020 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29021 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29022 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29023 decoder: expose new parse/decode API.
29024 Introduce new decoding process whereby a GstVideoCodecFrame is created
29025 first. Next, input stream buffers are accumulated into a GstAdapter,
29026 that is then passed to the _parse() function. The GstVaapiDecoder object
29027 accumulates all parsed units and when a complete frame or field is
29028 detected, that GstVideoCodecFrame is passed to the _decode() function.
29029 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
29030 process was successful.
29032 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29034 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29035 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29036 decoder: add {start,end}_frame() hooks.
29037 The start_frame() hook is called prior to traversing all decode-units
29038 for decoding. The unit argument represents the first slice in the frame.
29039 Some codecs (e.g. H.264) need to wait for the first slice in order to
29040 determine the actual VA context parameters.
29042 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29044 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29045 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29046 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29047 decoder: add new GstVaapiDecoder API.
29048 Split decoding process into two steps: (i) parse incoming bitstreams
29049 into simple decoder-units until the frame or field is complete; and
29050 (ii) decode the whole frame or field at once.
29051 This is an ABI change.
29053 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29055 * gst-libs/gst/vaapi/Makefile.am:
29056 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29057 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29058 decoder: add new "decoder-frame" object.
29059 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
29060 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
29061 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
29062 as the user-data member element.
29063 This is a libgstvaapi internal object.
29065 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29067 * gst-libs/gst/vaapi/Makefile.am:
29068 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
29069 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29070 decoder: add new "decoder-unit" object.
29071 Introduce GstVaapiDecoderUnit which represents a fragment of the source
29072 stream to be decoded. For instance, a decode-unit will be a NAL unit for
29073 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
29075 This is a libgstvaapi internal object.
29077 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29079 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29080 Port GstVaapiFrameStore to GstVaapiMiniObject.
29082 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29084 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29085 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29086 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29087 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29088 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29089 Port codec objects to GstVaapiMiniObject.
29091 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29093 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29094 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29095 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29096 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29097 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29098 * gst/vaapi/gstvaapidecode.c:
29099 * gst/vaapi/gstvaapipluginbuffer.c:
29100 * tests/test-decode.c:
29101 * tests/test-subpicture.c:
29102 surfaceproxy: port to GstVaapiMiniObject.
29103 GstVaapiSurfaceProxy does not use any particular functionality from
29104 GObject. Actually, it only needs a basic object type with reference
29106 This is an API and ABI change.
29108 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29110 * gst-libs/gst/vaapi/Makefile.am:
29111 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29112 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29113 Add GstVaapiMiniObject.
29114 Introduce a new reference counted object that is very lightweight and
29115 also provides flags and user-data functionalities. Initialization and
29116 finalization times are reduced by up to a factor 5x vs GstMiniObject
29117 from GStreamer 0.10 stack.
29118 This is a libgstvaapi internal object.
29120 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29122 * tests/Makefile.am:
29123 * tests/test-decode.c:
29124 * tests/test-mpeg4.c:
29125 * tests/test-mpeg4.h:
29126 tests: add test for MPEG-4:2 decoding.
29128 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29130 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29131 h264: initialize VA context before allocating the first slice.
29132 Fix decode_slice() to ensure a VA context exists prior to creating a
29133 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29134 context ID. i.e. the latter was not initialized, thus causing failures
29135 on Cedar Trail for example.
29137 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29140 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29141 If GST_PLUGIN_PATH environment variable exists and points to a valid
29142 directory, then use it as the system installation path for gst-vaapi
29144 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29146 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29149 configure: downgrade glib required version to 2.28.
29151 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29153 * gst-libs/gst/vaapi/glibcompat.h:
29154 * gst/vaapi/gstvaapi.c:
29155 libs: fix compatibility with glib 2.28.
29156 Always prefer non deprecated APIs by default and provide compatibility
29157 glue for older glib versions when necessary.
29159 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29161 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29162 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29163 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29164 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29165 libs: use glib >= 2.32 semantics for mutexes.
29166 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29167 and termination. Basically, the new mutex objects can be used as static
29168 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29170 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29172 * gst-libs/gst/vaapi/Makefile.am:
29173 libs: only export gst_vaapi_*() symbols.
29174 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29175 library and the system-provided one, mainly used by videoparses/. Now,
29176 only symbols with the gst_vaapi_* prefix will be exported, if they are
29177 not marked as "hidden" to libgstvaapi.
29179 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29181 * gst/vaapi/gstvaapiuploader.c:
29182 vaapiupload: reset direct-rendering to zero when changing caps.
29183 Make sure to reset direct-rendering flag to zero when caps are changed,
29184 and only derive it to one when the next checks succeed.
29186 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29188 * gst/vaapi/gstvaapiupload.c:
29189 vaapiupload: fix sink caps to report the supported set of YUV caps.
29190 Try to allocate the GstVaapiUploader helper object prior to listing the
29191 supported image formats. Otherwise, only a single generic caps is output
29192 with no particular pixel format referenced in there.
29194 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29196 * gst/vaapi/gstvaapiupload.c:
29197 * gst/vaapi/gstvaapiupload.h:
29198 vaapiupload: use new GstVaapiUploader helper.
29199 Use GstVaapiUploader helper that automatically handles direct rendering
29200 mode, thus making the "direct-rendering" property obsolete and hence it
29202 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29203 really well supported and it could actually trigger degraded performance.
29204 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29206 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29208 * gst/vaapi/gstvaapisink.c:
29209 * gst/vaapi/gstvaapiuploader.c:
29210 * gst/vaapi/gstvaapiuploader.h:
29211 vaapisink: compute and expose the supported set of YUV caps.
29212 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29213 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29214 of supported YUV caps as source (for images). This function actually
29215 tries to zero and upload each image to a 64x64 test surface. Of course,
29216 this relies on VA drivers to not claim success if vaPutImage() is not
29217 correctly supported.
29219 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29222 * gst/vaapi/Makefile.am:
29223 * gst/vaapi/gstvaapisink.c:
29224 * gst/vaapi/gstvaapisink.h:
29225 * gst/vaapi/gstvaapiuploader.c:
29226 * gst/vaapi/gstvaapiuploader.h:
29227 vaapisink: add support for raw YUV buffers.
29228 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29229 It is up to the caller to negotiate source caps (for images) and output
29230 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29231 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29232 GstBuffer on sink pads.
29233 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29234 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29236 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29238 * gst-libs/gst/vaapi/gstvaapiimage.c:
29239 image: fix GstVaapiImage map and unmap.
29240 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29241 structure correctly filled in if the image was already mapped.
29242 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29243 was already unmapped.
29245 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29248 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29249 videobuffer: fix memory leak for surface and image.
29250 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29251 thus resulting on actual memory leak of GstVaapiImage when using them
29252 for downloads/uploads from VA surfaces and more specifically surfaces
29253 when the pipeline is shutdown. i.e. vaTerminate() was never called
29254 because the resources were not unreferenced, and thus not deallocated
29256 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29258 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29263 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29265 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29266 h264: fix picture size in macroblocks.
29267 The picture size signalled by sps->{width,height} is the actual size with
29268 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29269 and pic_height_in_map_units_minus1. VA driver expects that original size,
29271 There is another issue pending: frame cropping information needs to be
29274 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29276 * gst-libs/gst/codecparsers/Makefile.am:
29277 codecparsers: always build parserutils first.
29278 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29279 This is needed since that's the common dependency for actual codec
29280 parsers (gstvc1parser.c for instance).
29282 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29284 * gst-libs/gst/codecparsers/Makefile.am:
29285 codecparsers: always build the VC-1 parser library.
29286 ... this is useful to make sure pixel-aspect-ratio and framerate
29287 information are correctly parsed since we have no means to detect
29288 that at configure time.
29290 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29293 * gst-libs/gst/codecparsers/Makefile.am:
29294 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29295 mpeg2: fix PAR calculation from commit bd11bae.
29296 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29297 correct PAR values. While doing so, require a newer version of the
29298 bitstream parser library.
29299 Note: it may be necessary to also parse the Sequence_Display_Extension()
29301 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29302 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29304 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29306 * gst-libs/gst/vaapi/Makefile.am:
29307 Fix build with the GNU gold linker.
29308 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29309 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29311 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29314 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29315 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29316 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29317 wayland: port to 1.0 version of the protocol.
29318 This patch updates to relect the 1.0 version of the protocol. The main
29319 changes are the switch to wl_registry for global object notifications
29320 and the way that the event queue and file descriptor is processed.
29321 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29323 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29325 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29326 h264: fix incorrect integration of previous commit (4d31e1e).
29327 git am got confused somehow, though the end result doesn't change at
29328 all since we require both SPS and PPS to be parsed prior to decoding
29331 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29333 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29334 h264: start decoding slices after first SPS/PPS activation.
29335 Only start decoding slices when at least one SPS and PPS got activated.
29336 This fixes cases when a source represents a substream of another stream
29337 and no SPS and PPS was inserted before the first slice of the generated
29340 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29342 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29343 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29344 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29345 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29346 16 reference frames, thus including both fields.
29348 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29350 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29351 h264: fix interlaced stream decoding with MMCO.
29352 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29353 is equal to 1, i.e. when memory management control operations are used. In
29354 particular, when field_pic_flag is set to 0, the new reference flags shall
29355 be applied to both fields.
29357 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29359 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29360 h264: add initial support for interlaced streams.
29361 Decoded frames are only output when they are complete, i.e. when both
29362 fields are decoded. This also means that the "interlaced" caps is not
29363 propagated to vaapipostproc or vaapisink elements. Another limitation
29364 is that interlaced bitstreams with MMCO are unlikely to work.
29366 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29368 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29369 h264: split remove_reference_at() into finer units.
29370 Split remove_reference_at() into a function that actually removes the
29371 specified entry from the short-term or long-term reference picture array,
29372 and a function that sets reference flags to the desired value, possibly
29373 zero. The latters marks the picture as "unused for reference".
29375 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29377 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29378 decoder: fix gst_vaapi_picture_new_field() object type.
29379 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29380 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29381 shall generate a GstVaapiPictureH264 object.
29383 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29385 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29386 h264: add picture structure for reference picture marking process.
29387 Introduce new `structure' field to the H.264 specific picture structure
29388 so that to simplify the reference picture marking process. That local
29389 picture structure is derived from the original picture structure, as
29390 defined by the syntax elements field_pic_flag and bottom_field_flag.
29392 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29394 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29395 h264: introduce new frame store structure.
29396 The frame store represents a Decoded Picture Buffer entry, which can
29397 hold up to two fields. So far, the frame store is only used to hold
29400 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29402 * ext/codecparsers:
29403 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29404 73d6aab h264: fix rbsp_more_data() implementation
29405 25d04cf h264: fix error code for invalid size parsed in SPS
29406 84798e5 fix FSF address
29408 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29410 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29411 h264: minor clean-ups.
29412 Move DPB flush up if the current picture to decode is an IDR. Besides,
29413 don't bother to check for IDR pictures in dpb_add() function since an
29414 explicit DPB flush was already performed in this case.
29416 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29418 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29419 h264: simplify reference picture marking process.
29420 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29421 of maintaining them separately. This avoids refs/unrefs while making it
29422 possible to generate the list based on the actual picture structure.
29423 This also ensures that the list of generated ReferenceFrames[] actually
29424 matches what reference frames are available in the DPB. i.e. short_ref[]
29425 and long_ref[] entries are implied from the DPB, so there is no risk of
29426 having "dangling" references.
29428 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29430 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29431 h264: introduce per-field POC in GstVaapiPictureH264.
29432 Use the POC member available in the GstVaapiPicture base class and
29433 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29434 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29435 initialized to INT_MAX, so that to simplify picture POC calculation
29436 for non frame pictures.
29438 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29440 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29441 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29442 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29443 reference bits, thus simplifying the reference picture marking process
29444 to only track a single set of reference flags. Also introduce a new
29445 long_term_frame_idx member.
29447 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29449 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29450 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29452 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29454 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29455 h264: fill in GstVaapiPicture structure.
29456 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29458 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29460 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29461 h264: add vaapi_fill_picture() helper.
29462 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29463 to VAPictureH264 structure. This is preparatory work to get rid of the
29464 local VAPictureH264 member in GstVaapiPictureH264.
29466 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29468 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29469 h264: fix activation order of picture and sequence parameters.
29470 Delay ensure_context() until we actually need a VA context for allocating
29471 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29472 of a new picture parameter set occurs, thus also implying an activation
29473 of the related sequence parameter set.
29474 The most important thing was to drop the global pps and sps pointers since
29475 they may not have matched the currently activated picture parameter or
29476 sequence parameter sets at the specified decode point.
29477 Anoter positive side-effect is that this cleans up all occurrences of
29478 decode_current_picture() to only keep those useful in decode_picture(),
29479 before a new picture is allocated, or in decode_sequence_end() when
29480 an end-of-stream or end-of-sequence condition occurred.
29482 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29484 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29485 h264: fix scaling list generation.
29486 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29487 array was partially copied to the VAIQMatrixBufferH264. While we are
29488 at it, also improve bounds checking and avoid copying 8x8 scaling
29489 lists if transform_8x8_mode_flag is set to 0.
29491 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29493 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29494 h264: fix detection of picture boundaries.
29495 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29496 unit of a primary coded picture.
29498 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29500 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29501 h264: optimize handling of scaling lists.
29502 Don't copy scaling lists twice to an intermediate state. Rather, directly
29503 use the scaling lists from GstH264PPS since they would match those provided
29504 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29505 available in the bitstream.
29507 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29509 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29510 h264: simplify code when MMCO is 5.
29511 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29512 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29513 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29515 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29517 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29518 h264: fix MMCO-based reference picture marking process.
29519 Fix adaptive memory control decoded reference picture marking process
29520 implementation for operations 2 to 6, thus also fixing support for
29521 long-term reference pictures.
29523 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29525 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29526 h264: move MMCO handlers out of the loop (cosmetics).
29527 This change only splits each individual MMCO handler into several functions
29528 dedicated for each operation. This is needed to perform further work later
29531 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29534 debian: fix make dist for packaging.
29535 bzip2 tarballs are now used, so update the deb.upstream dependencies
29536 to include dist-bzip2 instead of plain old dist, and use the correct
29537 tar extract options to handle that format.
29539 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29542 configure: generate bzip2 tarballs in ustar format by default.
29544 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29547 configure: bump glib required version to 2.31.2.
29548 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29549 rather than g_mutex_new() and g_cond_new() respectively.
29551 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29553 * gst/vaapi/gstvaapidecode.c:
29554 * gst/vaapi/gstvaapidecode.h:
29555 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29556 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29557 inside the structure they are locking.
29558 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29559 allocation functions.
29560 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29561 initialise inside the GObject _init function and clear inside the _finalize
29562 which is guaranteed to only be called once and after the object is no longer
29565 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29567 * gst/vaapi/gstvaapidecode.c:
29568 vaapidecode: fix compiler warnings.
29569 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29570 during destruction of the element. Don't print out (uninitialised)
29571 error code when allocation of video buffer failed.
29573 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29575 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29576 h264: add flag to compile with strict DPB ordering mode.
29577 Allow build with strict DPB ordering mode whereby evicted entries
29578 are replaced by the next entries, in order instead of optimizing
29579 it away with the last entry in the DPB.
29580 This is only useful for debugging purpose, against a reference SW
29581 decoder for example.
29583 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29585 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29586 h264: drop extra code covered by built-in codecparsers.
29587 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29588 a newer version of codecparsers/ are used if the system provided one is
29589 now recent enough to have those required extensions.
29591 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29593 * gst-libs/gst/codecparsers/Makefile.am:
29594 codecparsers: fix generation of symlinks.
29595 Try to improve dependencies while generating symlinks to externally
29596 maintained copy of codecparsers (derived from upstream git master
29599 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29601 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29602 vc1: use framerate information from bitstream parser.
29604 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29606 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29607 vc1: use pixel-aspect-ratio from bitstream parser.
29608 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29609 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29611 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29613 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29614 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29615 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29616 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29618 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29621 * gst-libs/gst/codecparsers/Makefile.am:
29622 codecparsers: h264: use submodule sources.
29623 Use newer sources from the codecparsers/ submodule for
29624 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29625 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29627 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29631 * gst-libs/gst/codecparsers/Makefile.am:
29632 * gst-libs/gst/codecparsers/gstjpegparser.c:
29633 * gst-libs/gst/codecparsers/gstjpegparser.h:
29634 * gst-libs/gst/vaapi/Makefile.am:
29635 codecparsers: jpeg: use submodule sources.
29637 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29644 * ext/codecparsers:
29645 Add codecparsers submodule.
29647 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29650 .gitignore: updates.
29652 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29655 autogen: fix check for gtkdocize and autoreconf.
29656 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29657 script would fail to report that correctly because test -z was not passed
29658 any argument (empty string "" in this case).
29660 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29662 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29663 h264: use pixel-aspect-ratio from SPS header.
29664 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29665 from the sequence headers.
29666 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29667 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29669 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29671 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29672 h264: add decode_nalu() helper function.
29673 Split decode_buffer() into the core infrastructure that determines
29674 the NAL units contained in the adapter and the actual function that
29675 decodes the NAL unit.
29677 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29679 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29680 h264: fix end-of-stream conditions (flush).
29681 Decode pending data in the adapter prior to processing the actual
29682 code for end-of-stream.
29684 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29686 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29687 mpeg2: add decode_packet() helper function.
29688 Split decode_buffer() into the core infrastructure that determines
29689 the packets contained in the adapter and the actual function that
29690 decodes the packet data.
29692 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29694 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29695 mpeg2: fix end-of-stream conditions (flush).
29696 Decode pending data in the adapter prior to processing the actual
29697 code for end-of-stream. Initial code from Feng Yuan.
29699 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29701 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29702 mpeg2: fix memory leak of empty packets.
29703 Fix memory leakage of empty packets, i.e. packets that only contain
29704 the start code prefix. In particular, free empty user-data packets.
29705 Besides, the codec parser will already fail gracefully if the packet
29706 to parse does not have the minimum required size. So, we can also
29707 completely drop the block of code that used to handle packets of size 4
29708 (including the start code).
29710 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29712 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29713 mpeg2: fix return value for "no-data" conditions.
29714 Fix return value when the second scan for start code fails. This means
29715 there is not enough data to determine the full extents of the current
29716 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29717 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29719 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29721 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29722 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29723 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29724 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29725 or with a size equals to zero. In this case, that buffer is simply
29726 skipped and the function returns TRUE. A NULL buffer argument still
29727 marks the end-of-stream.
29729 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29731 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29732 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29733 decoder: drop unused functions.
29735 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
29737 * gst/vaapi/gstvaapidecode.c:
29738 vaapidecode: flush buffers when receiving EOS.
29739 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29741 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29743 * debian.upstream/Makefile.am:
29744 debian: fix make dist for packaging.
29746 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29748 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29749 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29750 wayland: cosmetics (remove tabs).
29752 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
29754 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29755 wayland: add support for windowed mode.
29756 Rather than always making the surface fullscreen instead implement the
29757 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29758 fullscreen on not depending on that.
29759 Reviewed-by: Joe Konno <joe.konno@intel.com>
29760 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29762 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29765 Bump version for development.
29767 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29771 Fix and document build dependencies better.
29773 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29775 * debian.upstream/control.in:
29776 debian: fix GStreamer build dependencies.
29778 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29781 * debian.upstream/control.in:
29782 debian: fix Wayland build dependencies.
29784 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29786 * debian.upstream/control.in:
29787 debian: fix conditional build of packages.
29788 Make it still possible to build package even if one of the build dependencies
29789 for a specific video backend is not available.
29791 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29793 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29794 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29795 utils: drop unused GLX helpers.
29796 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29797 extensions since they are not used throughout gstreamer-vaapi.
29799 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29801 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29802 utils: fix build with <GL/glext.h> version >= 85.
29803 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29804 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29805 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29806 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29807 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29808 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29809 newer versions of the <GL/glext.h> header.
29811 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29814 configure: update VA-API version requirements.
29815 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29817 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29819 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29820 h264: review and report errors accordingly.
29821 Use GST_ERROR() to report real errors instead of hiding them into
29824 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29826 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29827 h264: exclusively use GstAdapter, drop sub-buffer hack.
29828 Maintaining the sub-buffer is rather suboptimal especially since we
29829 were also maintaining a GstAdapter. Now, we only use the GstAdapter
29830 thus requiring minor extra parsing when receiving avcC buffers.
29832 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29837 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29842 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29844 * debian.upstream/gstreamer-vaapi.install.in:
29845 debian: fix packaging on recent Ubuntu platforms.
29846 Use explicit GStreamer plugins path.
29848 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29850 * docs/reference/libs/libs-docs.xml.in:
29851 * docs/reference/libs/libs.core.types:
29852 docs: fix build for make dist.
29854 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
29856 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29857 wayland: set opaque region for YUV surface.
29858 This allows the compositor to optimize redraws and cull away changes
29859 obscured by the video surface.
29860 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29862 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29865 configure: fix check for libva-glx and libva-drm.
29867 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29869 * gst-libs/gst/vaapi/glibcompat.h:
29870 glibcompat: add replacement for g_cond_wait_until().
29872 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29874 * gst/vaapi/gstvaapidecode.c:
29875 * gst/vaapi/gstvaapidownload.c:
29876 * gst/vaapi/gstvaapipostproc.c:
29877 * gst/vaapi/gstvaapisink.c:
29878 * gst/vaapi/gstvaapiupload.c:
29879 plugins: include "sysdeps.h" instead of "config.h".
29881 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29883 * gst-libs/gst/codecparsers/gstjpegparser.c:
29884 codecparsers: jpeg: add missing includes.
29886 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29888 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29889 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29890 * gst/vaapi/gstvaapidecode.c:
29891 vaapidecode: don't reset decoder if codec type is the same.
29892 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29893 if the underlying codec type actually changed. This makes it possible
29894 to be more tolerant with certain MPEG-2 streams that get parsed to
29895 form caps that are compatible with the previous state but minor changes
29898 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29900 * gst/vaapi/gstvaapidecode.c:
29901 vaapidecode: simplify codec lookup from caps.
29902 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29903 the specified caps. Don't globally expose this function since this is
29904 really trivial and only used in the vaapidecode element.
29906 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29908 * gst/vaapi/gstvaapidecode.c:
29909 * gst/vaapi/gstvaapidecode.h:
29910 vaapidecode: improve "no free surface" conditions.
29911 Previously, vaapidecode would wait up to one second until a free surface
29912 is available, or it aborts decoding. Now, vaapidecode waits until the
29913 last decoded surface was to be presented, plus one second. Besides, end
29914 times are now expressed relative to the monotonic clock.
29916 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29918 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29919 * gst/vaapi/gstvaapidecode.c:
29920 decoder: propagate buffer duration downstream.
29922 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29924 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29925 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29926 surfaceproxy: add "duration" property.
29928 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29930 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29931 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29932 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29933 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29934 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29935 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29936 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29937 decoder: cope with new GstVaapiContextInfo based API.
29938 Update decoders to report the maximum number of reference frames to use.
29940 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29942 * gst-libs/gst/vaapi/gstvaapicontext.c:
29943 context: JPEG codec does not need any reference frame.
29945 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29947 * gst-libs/gst/vaapi/gstvaapicontext.c:
29948 * gst-libs/gst/vaapi/gstvaapicontext.h:
29949 context: allow number of reference frames to be set.
29950 Make it possible to specify the maximum number of references to use within
29951 a single VA context. This helps reducing GPU memory allocations to the useful
29952 number of references to be used.
29954 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29956 * gst/vaapi/gstvaapipostproc.c:
29957 vaapipostproc: fix deinterlace-{mode,method} types definition.
29959 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29961 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29962 mpeg4: fix debug info for unsupported profile.
29964 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29966 * gst-libs/gst/vaapi/gstvaapicontext.c:
29967 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29968 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29969 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29970 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29971 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29972 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29973 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29974 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
29975 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
29976 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29977 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29978 * gst-libs/gst/vaapi/gstvaapiimage.c:
29979 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
29980 * gst-libs/gst/vaapi/gstvaapiobject.c:
29981 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29982 * gst-libs/gst/vaapi/gstvaapisurface.c:
29983 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
29984 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29985 * gst-libs/gst/vaapi/gstvaapitexture.c:
29986 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29987 * gst-libs/gst/vaapi/gstvaapivalue.c:
29988 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29989 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
29990 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29991 * gst-libs/gst/vaapi/gstvaapivideopool.c:
29992 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29993 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
29994 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29995 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29996 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29997 libs: fix build in strict ISO C mode.
29999 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30001 * gst/vaapi/gstvaapi.c:
30002 * gst/vaapi/gstvaapidecode.c:
30003 * gst/vaapi/gstvaapidownload.c:
30004 * gst/vaapi/gstvaapipostproc.c:
30005 * gst/vaapi/gstvaapisink.c:
30006 * gst/vaapi/gstvaapiupload.c:
30007 plugins: fix build in strict ISO C mode.
30009 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30011 * pkgconfig/gstreamer-vaapi-glx.pc.in:
30012 * pkgconfig/gstreamer-vaapi-x11.pc.in:
30013 * pkgconfig/gstreamer-vaapi.pc.in:
30014 pkgconfig: fix dependencies and slightly improve description.
30015 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
30016 descriptions with clearer renderer names.
30018 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
30020 * gst/vaapi/gstvaapidecode.c:
30021 vaapidecode: acquire lock only if the mutex exists.
30022 When playback stops the GstVaapiDecode object is reset into a clean
30023 state. However, surfaces may still be referenced by library users and
30024 unreferencing them after the reset triggers an access to an unset mutex.
30025 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30027 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30029 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30030 decoder: drop extraneous return for void function.
30032 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30034 * gst-libs/gst/vaapi/gstvaapiimage.c:
30035 image: don't use (void *) pointer arithmetic.
30037 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
30039 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30040 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30041 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30042 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30043 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30044 * gst-libs/gst/vaapi/gstvaapiprofile.h:
30045 * gst-libs/gst/vaapi/gstvaapisurface.h:
30046 * gst-libs/gst/vaapi/gstvaapitypes.h:
30047 * gst/vaapi/gstvaapipostproc.h:
30048 Do not forward declare enums.
30049 Forward declaring enums is not allowed by the C standard and aborts
30050 compilation if the header file is included in a C++ project.
30051 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30053 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30056 configure: fix check for VA/DRM API.
30058 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30060 * gst/vaapi/gstvaapisink.c:
30061 vaapisink: fix calculation of window size.
30062 If either dimension is out-of-bounds, then scale window to fit the
30063 display size, even if the output is to be rotated. Use the standard
30064 gst_video_sink_center_rect() function to center and scale the window
30065 wrt. the outer (display) bounds.
30067 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
30069 * gst/vaapi/gstvaapisink.c:
30070 * gst/vaapi/gstvaapisink.h:
30071 vaapisink: add video rotation support.
30072 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30074 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30076 * gst/vaapi/gstvaapipluginutil.h:
30077 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
30078 This macro helps swapping variables while maintaining the correct underlying
30079 and primitive type.
30081 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30083 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30084 display: fix display aspect ratio when display is rotated.
30086 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30089 * gst-libs/gst/vaapi/Makefile.am:
30090 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30091 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30092 display: fix physical display size when display is rotated.
30094 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30096 * gst-libs/gst/vaapi/gstvaapivalue.c:
30097 display: fix GstVaapiRotation enumeration of values.
30099 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30101 * docs/reference/libs/libs-docs.xml.in:
30102 * docs/reference/libs/libs-sections.txt:
30103 * gst-libs/gst/vaapi/Makefile.am:
30104 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30105 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30106 * gst/vaapi/gstvaapidecode.c:
30107 * gst/vaapi/gstvaapidownload.c:
30108 * gst/vaapi/gstvaapipostproc.c:
30109 * gst/vaapi/gstvaapisink.c:
30110 * gst/vaapi/gstvaapiupload.c:
30111 vaapisink: drop obsolete GstVaapiVideoSink interface.
30112 This interface was deprecated since 0.3.x series when the GstVideoContext
30113 interface was added to the main GStreamer APIs.
30115 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30117 * gst/vaapi/gstvaapisink.c:
30118 * gst/vaapi/gstvaapisink.h:
30119 vaapisink: automatically detect overlay rendering mode.
30120 Retain the VA surface until another surface is to be displayed only
30121 if VA display rendering mode is determined to be "overlay" mode.
30123 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30125 * gst/vaapi/gstvaapisink.c:
30126 * gst/vaapi/gstvaapisink.h:
30127 vaapisink: retain VA surface until another one is displayed.
30128 Keep VA surface proxy associated with the surface that is currently
30129 being displayed. This makes sure that surface is not released back
30130 to the pool of surfaces free to use for decoding. This is necessary
30131 with VA driver implementations that support rendering to an overlay
30132 pipe. Otherwise, there could be cases where we are decoding into a
30133 surface that is being displayed, hence some flickering.
30135 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30137 * gst/vaapi/gstvaapisink.h:
30138 vaapisink: fix build with older toolchains.
30139 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30141 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30143 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30144 display: partially revert 8ebe4d6.
30145 Don't try to fix up the initial values, this could make things worse.
30146 Simply assume the driver does not support the capability in this case.
30148 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30150 * tests/test-display.c:
30151 tests: dump VA display properties.
30153 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30155 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30156 display: fix validation process of properties during discovery.
30157 Some VA drivers (e.g. EMGD) can have completely random values for initial
30158 display attributes. So, try to improve the discovery process to check the
30159 initial display attribute values actually fall within valid bounds. If not,
30160 try to reset those to some sensible values like the default value reported
30161 through vaQueryDisplayAttributes().
30163 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30165 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30166 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30167 display: add color balance properties.
30168 Add support for hue, saturation, brightness and contrast attributes.
30170 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30172 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30173 display: initialize default attribute values.
30174 Ensure the display attribute is actually supported by trying to retrieve
30175 its current value during GstVaapiDisplay creation.
30177 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30179 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30180 display: raise "notify" for property changes.
30182 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30184 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30185 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30186 display: expose display attributes as GObject properties.
30187 Expose VA display "render-mode" and "rotation" attributes as standard
30188 GObject properties.
30190 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30192 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30193 display: install properties in batch.
30194 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30195 It is useful to maintain properties as GParamSpec so that to be able to raise
30196 "notify" signals by id instead of by name in the future.
30198 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30200 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30201 display: fix gst_vaapi_display_has_property().
30202 Append the "render-mode" and "rotation" properties, should they be supported
30203 by the underlying VA driver.
30205 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30207 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30208 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30209 * gst-libs/gst/vaapi/gstvaapitypes.h:
30210 * gst-libs/gst/vaapi/gstvaapiutils.c:
30211 * gst-libs/gst/vaapi/gstvaapiutils.h:
30212 * gst-libs/gst/vaapi/gstvaapivalue.c:
30213 * gst-libs/gst/vaapi/gstvaapivalue.h:
30214 display: add support for rotation modes.
30215 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30217 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30219 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30220 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30221 * gst-libs/gst/vaapi/gstvaapitypes.h:
30222 * gst-libs/gst/vaapi/gstvaapivalue.c:
30223 * gst-libs/gst/vaapi/gstvaapivalue.h:
30224 display: add support for rendering modes.
30225 A rendering mode can be "overlay" or "texture"'ed blit.
30226 The former mode implies that a VA surface used for rendering can't be
30227 re-used right away for decoding, so the sink shall make provisions to
30228 retain the associated surface proxy until the next surface is to be
30230 The latter mode implies that the VA surface is implicitly copied to an
30231 intermediate backing store, or back buffer of a frame buffer, so the
30232 associated surface proxy can be disposed right away.
30234 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30236 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30237 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30238 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30239 display: add initial support for display attributes.
30240 The VA display attributes are mapped to properties so that to maintain the
30241 GStreamer terminology. Properties are to be identified by name, but internal
30242 functions are available to lookup the property by the actual VA display
30245 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30247 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30248 jpeg: fix end-of-image (EOI) handler.
30249 decode_current_picture() was converted to return a gboolean instead
30250 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30251 loop as expected, or could cause an error instead.
30252 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30254 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30256 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30257 mpeg2: include start code into VA slice data buffer.
30258 Integrate the start code prefix in the slice data buffer that is submitted
30259 to the hardware. VA-API specifies that slice_data_offset is the offset to
30260 the first byte of slice data. And, for MPEG-2, slice() data begins with
30261 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30263 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30266 autogen: fix configure script generation when srcdir != builddir.
30267 This patch allows for regenerating the configure script from a build
30268 directory that is not the actual source directory.
30269 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30271 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30274 configure: use new libtool syntax.
30275 This now requires libtool >= 2.2 to regenerate the configure script.
30276 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30278 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30280 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30281 decoder: use g_object_notify_by_pspec().
30282 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30283 avoid a property name lookup. i.e. this makes notifications faster to
30284 the `vaapidecode' element.
30285 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30287 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30289 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30290 wayland: handle de-interlacing flags.
30291 VA/Wayland API was updated to allow flags for bob deinterlacing.
30292 More elaborated filters will require a complete VA/VPP pipeline.
30294 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30296 * gst-libs/gst/codecparsers/gstjpegparser.c:
30297 jpeg: fix default quantization tables.
30298 Two elements in the luminance quantization table were wrong. So,
30299 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30300 in zig-zag order from the standard ones (Tables K.1 and K.2).
30302 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30304 * gst-libs/gst/codecparsers/gstjpegparser.c:
30305 jpeg: compute default Huffman tables.
30306 ... instead of having them pre-calculated. This saves around 1.5 KB
30307 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30308 to do more work. Though, the client application may have to call that
30309 function at most once, only.
30311 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30313 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30314 display: drop VAProfileNone entries from debug messages.
30316 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30318 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30319 display: query for supported display attributes.
30320 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30322 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30324 * gst-libs/gst/vaapi/gstvaapiutils.c:
30325 * gst-libs/gst/vaapi/gstvaapiutils.h:
30326 utils: add string_of_VADisplayAttributeType() helper.
30327 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30329 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30331 * gst/vaapi/gstvaapisink.c:
30332 vaapisink: handle VA/DRM API.
30333 This is not useful in practice but for raw performance evaluation when
30334 the sink is invoked with display=drm sync=false. fakesink could also be
30337 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30339 * gst/vaapi/Makefile.am:
30340 * gst/vaapi/gstvaapipluginutil.c:
30341 plugins: add support for headless pipelines.
30343 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30345 * tests/Makefile.am:
30347 * tests/test-display.c:
30348 * tests/test-windows.c:
30349 tests: add support for headless decoding.
30351 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30355 * debian.upstream/Makefile.am:
30356 * debian.upstream/control.in:
30357 * debian.upstream/libgstvaapi-drm.install.in:
30358 * gst-libs/gst/vaapi/Makefile.am:
30359 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30360 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30361 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30362 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30363 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30364 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30365 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30366 * pkgconfig/Makefile.am:
30367 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30368 Add initial support for VA/DRM.
30370 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30373 * gst-libs/gst/vaapi/Makefile.am:
30374 Fix build without X11 (again).
30375 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30376 files list wrt. x11, glx and wayland backends.
30378 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30381 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30382 * gst-libs/gst/vaapi/gstvaapicompat.h:
30383 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30384 jpeg: update to the latest VA-API changes (0.32.1+).
30386 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30388 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30389 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30390 * gst/vaapi/gstvaapisink.c:
30391 wayland: implement display ::get_size*() hooks.
30393 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30395 * gst/vaapi/gstvaapipluginutil.c:
30396 plugins: prefer X11 rendering over GLX.
30397 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30398 for rendering instead of texturing.
30400 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30402 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30403 wayland: use scale fullscreen method.
30404 This makes the compositor scale the surface to fit and preserves aspect
30406 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30408 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30410 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30411 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30412 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30414 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30416 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30417 wayland: fix double disconnect of display.
30419 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30421 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30422 wayland: mangle display name for cache lookups.
30424 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30427 * debian.upstream/Makefile.am:
30428 * debian.upstream/control.in:
30429 * debian.upstream/libgstvaapi-wayland.install.in:
30430 * pkgconfig/Makefile.am:
30431 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30432 wayland: add packaging files.
30434 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30436 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30437 * gst/vaapi/gstvaapipluginutil.c:
30438 * gst/vaapi/gstvaapisink.c:
30439 * pkgconfig/Makefile.am:
30440 Fix build without X11.
30442 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30444 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30445 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30446 * gst/vaapi/Makefile.am:
30447 * gst/vaapi/gstvaapipluginutil.c:
30448 * gst/vaapi/gstvaapisink.c:
30449 plugins: add support for Wayland.
30451 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30453 * tests/Makefile.am:
30455 * tests/test-display.c:
30456 * tests/test-windows.c:
30457 tests: add support for Wayland.
30459 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30463 * gst-libs/gst/vaapi/Makefile.am:
30464 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30465 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30466 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30467 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30468 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30469 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30470 Add initial support for VA/Wayland.
30471 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30473 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30475 * gst/vaapi/gstvaapipluginbuffer.c:
30476 plugins: fix creation of video buffer from surface proxy.
30477 Fix a regression introduced with commit 8ef490a.
30479 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30481 * gst/vaapi/gstvaapipluginbuffer.c:
30482 * gst/vaapi/gstvaapipluginutil.c:
30483 plugins: use new display types more.
30484 In particular, simplify gst_vaapi_reply_to_query() with display types.
30485 Likewise for creating new video buffers.
30487 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30489 * gst/vaapi/gstvaapidecode.c:
30490 * gst/vaapi/gstvaapidownload.c:
30491 * gst/vaapi/gstvaapipluginutil.c:
30492 * gst/vaapi/gstvaapipluginutil.h:
30493 * gst/vaapi/gstvaapipostproc.c:
30494 * gst/vaapi/gstvaapisink.c:
30495 * gst/vaapi/gstvaapiupload.c:
30496 plugins: fix display type selection and propagation.
30497 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30498 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30499 queries from vaapidecode shall get a valid answer from vaapisink.
30501 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30503 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30504 display: fix destruction of mutex.
30506 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30508 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30509 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30510 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30511 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30512 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30513 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30514 * gst/vaapi/gstvaapipluginutil.c:
30515 * gst/vaapi/gstvaapipluginutil.h:
30516 * gst/vaapi/gstvaapisink.c:
30517 display: add display types.
30518 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30519 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30520 type to "any", and add a "display-type" attribute.
30522 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30524 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30525 display: use prefixed display names for cache lookups.
30526 This improves display name comparisons by always allocating a valid display
30527 name. This also helps to disambiguate lookups by name in the global display
30528 cache, should a new backend be implemented.
30530 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30532 * gst/vaapi/gstvaapipluginutil.h:
30533 plugins: declare helper functions as internal.
30535 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30537 * docs/reference/libs/libs-sections.txt:
30538 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30539 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30540 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30541 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30542 * gst/vaapi/Makefile.am:
30543 * gst/vaapi/gstvaapidecode.c:
30544 * gst/vaapi/gstvaapidownload.c:
30545 * gst/vaapi/gstvaapipluginbuffer.c:
30546 * gst/vaapi/gstvaapipluginbuffer.h:
30547 * gst/vaapi/gstvaapipostproc.c:
30548 * gst/vaapi/gstvaapiupload.c:
30549 videobuffer: drop deprecated functions.
30550 Move video buffer creation routines to plugin elements. That exclusively
30551 uses *_typed_new*() variants.
30553 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30555 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30556 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30557 videobuffer: mark video buffer creation routines as deprecated.
30558 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30559 plugin elements. So deprecate any explicit creation routines that are not the
30560 new *_typed_new*() variants.
30562 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30564 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30565 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30566 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30567 videobuffer: factor out base and GLX implementations.
30568 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30569 This avoids duplication of code, and makes it possible to further implement
30570 generic video buffer creation routines that automatically map to base or GLX
30573 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30575 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30576 utils: fix gl_create_context() with parent context set.
30577 If GLX window was created from a foreign Display, then that same Display shall
30578 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30579 will now use the same Display that the parent, if available.
30580 This fixes cluttersink with the Intel GenX VA driver.
30582 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30584 * gst/vaapi/gstvaapidecode.c:
30585 * gst/vaapi/gstvaapidownload.c:
30586 * gst/vaapi/gstvaapipluginutil.c:
30587 * gst/vaapi/gstvaapipluginutil.h:
30588 * gst/vaapi/gstvaapipostproc.c:
30589 * gst/vaapi/gstvaapisink.c:
30590 * gst/vaapi/gstvaapiupload.c:
30591 pluginutils: improve automatic display type selection.
30593 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30595 * gst/vaapi/gstvaapipluginutil.c:
30596 * gst/vaapi/gstvaapipluginutil.h:
30597 pluginutils: cosmetics (indentation fixes).
30599 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30602 configure: simplify video outputs summary.
30604 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30607 * gst/vaapi/gstvaapipluginutil.c:
30608 * gst/vaapi/gstvaapipluginutil.h:
30609 * gst/vaapi/gstvaapisink.c:
30610 * gst/vaapi/gstvaapisink.h:
30611 configure: drop check for --enable-vaapisink-glx.
30612 vaapisink is now built with support for multiple display types, whenever
30613 they are enabled. The new "display" attribute is used to select a particular
30616 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30619 * gst-libs/gst/vaapi/gstvaapicompat.h:
30620 * gst/vaapi/Makefile.am:
30621 * gst/vaapi/gstvaapidecode.c:
30622 * gst/vaapi/gstvaapidownload.c:
30623 * gst/vaapi/gstvaapipluginutil.c:
30624 * gst/vaapi/gstvaapipostproc.c:
30625 * gst/vaapi/gstvaapiupload.c:
30626 * tests/test-display.c:
30627 configure: drop check for --enable-vaapi-glx.
30628 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30629 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30630 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30631 we now default to use TFP+FBO.
30632 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30633 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30634 API shall be used as it covers most usages. e.g. AMD driver can't render to
30637 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30640 tests: allow GLX output, if available and selected.
30642 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30644 * tests/Makefile.am:
30647 * tests/test-decode.c:
30648 * tests/test-subpicture.c:
30649 * tests/test-surfaces.c:
30650 tests: use common display and window creation routines.
30651 Add new --output option to select the renderer. Use --list-outputs to
30652 print a list of supported renderers.
30654 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30656 * tests/Makefile.am:
30657 tests: move encoded bitstreams to libutils.la.
30659 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30661 * tests/Makefile.am:
30662 tests: build convenience library for common utilities.
30664 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30666 * tests/Makefile.am:
30667 * tests/test-display.c:
30668 tests: simplify build with various display options.
30670 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30673 configure: improve checks for X11.
30675 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30677 * tests/Makefile.am:
30678 configure: fix previous commit for GLX deps.
30680 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30683 * gst-libs/gst/vaapi/Makefile.am:
30684 configure: improve checks for GLX.
30686 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30689 * gst-libs/gst/vaapi/gstvaapicompat.h:
30690 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30691 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30692 * gst-libs/gst/vaapi/gstvaapiutils.h:
30693 Drop support for obsolete VA-API versions < 0.30.4.
30695 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30698 * gst-libs/gst/Makefile.am:
30699 * gst-libs/gst/gstutils_version.h.in:
30700 * gst/vaapi/gstvaapisink.c:
30701 vaapisink: drop checks for new APIs used by default.
30702 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30703 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30704 are no longer necessary.
30706 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30709 configure: cosmetics and some minor changes.
30710 - Better grouping of feature checks
30711 - Sort list of config files to generate
30713 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30716 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30717 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30718 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30719 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30720 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30721 * gst-libs/gst/vaapi/gstvaapiutils.h:
30722 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30723 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30724 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30726 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30728 * gst-libs/gst/vaapi/Makefile.am:
30729 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30730 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30731 Drop obsolete GstVaapiTSB.
30732 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30734 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30736 * docs/reference/libs/libs-sections.txt:
30737 docs: add missing entries for the JPEG decoder.
30739 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30742 * gst-libs/gst/vaapi/Makefile.am:
30743 * gst/vaapi/gstvaapidecode.c:
30744 * tests/test-decode.c:
30745 * tests/test-subpicture.c:
30746 Drop all references to USE_CODEC_PARSERS.
30748 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30752 * docs/reference/libs/libs-sections.txt:
30753 * docs/reference/libs/libs.core.types:
30754 * gst-libs/gst/vaapi/Makefile.am:
30755 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30756 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30757 * gst/vaapi/gstvaapidecode.c:
30758 * gst/vaapi/gstvaapidecode.h:
30759 * tests/test-decode.c:
30760 * tests/test-subpicture.c:
30761 Drop FFmpeg-based decoders.
30762 GStreamer codecparsers-based decoders are the only supported decoders now.
30763 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30765 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
30768 * debian.upstream/control.in:
30769 configure: bump glib required version to 2.28.
30770 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30772 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
30774 * gst/vaapi/gstvaapidecode.h:
30775 * gst/vaapi/gstvaapidownload.h:
30776 * gst/vaapi/gstvaapipostproc.h:
30777 * gst/vaapi/gstvaapisink.h:
30778 * gst/vaapi/gstvaapiupload.h:
30779 plugins: declare _get_type() functions as const.
30780 Declaring a function as const enables better optimization of calls to
30782 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30784 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
30786 * gst/vaapi/gstvaapidecode.c:
30787 * gst/vaapi/gstvaapidownload.c:
30788 * gst/vaapi/gstvaapipostproc.c:
30789 * gst/vaapi/gstvaapisink.c:
30790 * gst/vaapi/gstvaapiupload.c:
30791 plugins: use g_clear_object() wherever applicable.
30792 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30794 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
30796 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30797 * gst-libs/gst/vaapi/gstvaapicontext.h:
30798 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30799 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30800 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30801 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30802 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30803 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30804 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30805 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30806 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30807 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30808 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30809 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30810 * gst-libs/gst/vaapi/gstvaapiimage.h:
30811 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30812 * gst-libs/gst/vaapi/gstvaapiobject.h:
30813 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30814 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30815 * gst-libs/gst/vaapi/gstvaapisurface.h:
30816 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30817 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30818 * gst-libs/gst/vaapi/gstvaapitexture.h:
30819 * gst-libs/gst/vaapi/gstvaapivalue.h:
30820 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30821 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30822 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30823 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30824 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30825 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30826 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30827 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30828 libs: declare _get_type() functions as const.
30829 Declaring a function as const enables better optimization of calls
30831 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30833 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
30835 * gst-libs/gst/vaapi/glibcompat.h:
30836 * gst-libs/gst/vaapi/gstvaapicontext.c:
30837 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30838 * gst-libs/gst/vaapi/gstvaapiobject.c:
30839 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30840 * gst-libs/gst/vaapi/gstvaapisurface.c:
30841 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30842 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30843 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30844 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30845 libs: use g_clear_object() wherever applicable.
30846 This is a preferred thread-safe version. Also add an inline version of
30847 g_clear_object() if compiling with glib < 2.28.
30848 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30850 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
30854 * docs/reference/libs/Makefile.am:
30855 * gst-libs/gst/vaapi/Makefile.am:
30856 * gst-libs/gst/vaapi/gstvaapimarshal.list:
30857 * gst-libs/gst/vaapi/gstvaapiobject.c:
30858 libs: use generic g_cclosure_marshal_VOID__VOID().
30859 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30861 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30864 * gst-libs/gst/vaapi/glibcompat.h:
30865 glibcompat: drop explicit check for g_list_free_full().
30867 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30870 Bump version for development.
30872 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30874 * gst-libs/gst/codecparsers/Makefile.am:
30875 jpeg: fix make dist.
30877 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
30881 * docs/Makefile.am:
30882 configure: fix build without gtk-doc support.
30883 Also do not generate tamplate files as all the documentation is inline.
30884 Drop un-needed code in autogen.sh as well.
30885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30887 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
30892 configure: put m4 macros and autogenerated files into m4/ directory.
30893 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30895 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
30898 configure: drop deprecated autoconf macros.
30899 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30900 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30902 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
30905 configure: don't use AC_SUBST for some variables.
30906 PKG_CHECK_MODULES already does this for us.
30907 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30909 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30911 * gst/vaapi/gstvaapidecode.c:
30912 * gst/vaapi/gstvaapidownload.c:
30913 * gst/vaapi/gstvaapipostproc.c:
30914 * gst/vaapi/gstvaapiupload.c:
30915 plugins: add support for GstImplementsInterface.
30917 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
30920 * gst/vaapi/gstvaapidecode.c:
30921 * gst/vaapi/gstvaapidownload.c:
30922 * gst/vaapi/gstvaapipostproc.c:
30923 * gst/vaapi/gstvaapisink.c:
30924 * gst/vaapi/gstvaapiupload.c:
30925 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30926 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30928 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30931 * gst/vaapi/gstvaapisink.c:
30932 plugins: do not use deprecated GStreamer -base symbols.
30933 Bump GStreamer plugins -base required version to 0.10.31, needed for
30934 gst_x_overlay_got_window_handle().
30935 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30937 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30940 * gst/vaapi/gstvaapidecode.c:
30941 * gst/vaapi/gstvaapidownload.c:
30942 * gst/vaapi/gstvaapipostproc.c:
30943 * gst/vaapi/gstvaapisink.c:
30944 * gst/vaapi/gstvaapiupload.c:
30945 plugins: do not use deprecated core GStreamer symbols.
30946 Bump GStreamer required version to 0.10.14, needed for
30947 gst_element_class_set_details_simple().
30948 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30950 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30952 * tests/test-decode.c:
30953 tests: fix build without JPEG decoder support.
30955 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30957 * tests/Makefile.am:
30958 * tests/test-decode.c:
30959 * tests/test-jpeg.c:
30960 * tests/test-jpeg.h:
30961 tests: add test for JPEG decoding.
30963 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30965 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30966 jpeg: update to match latest parser API.
30968 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30970 * gst-libs/gst/codecparsers/gstjpegparser.c:
30971 * gst-libs/gst/codecparsers/gstjpegparser.h:
30972 codecparsers: jpeg: tweak parser API.
30973 ... to allow for more consistent parsing API among various codec parsers.
30974 In particular, drop use of GList.
30976 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30979 jpeg: fix configure check for VA/JPEG decoding API.
30981 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30983 * gst-libs/gst/vaapi/gstvaapiprofile.c:
30984 jpeg: fix build with VA-API < 0.32.0.
30986 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30991 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30994 Bump version for development.
30996 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31002 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31007 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
31009 * gst/vaapi/gstvaapipluginutil.c:
31010 vaapiplugin: fix build when compiling without GLX.
31011 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31013 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31016 configure: disable FFmpeg-based decoders.
31017 FFmpeg decoders are still available through the --enable-ffmpeg option
31018 but are no longer maintained.
31020 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31022 * gst-libs/gst/vaapi/Makefile.am:
31023 Fix build with recent GStreamer stack.
31025 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31028 * gst-libs/gst/vaapi/gstvaapicompat.h:
31029 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31030 jpeg: update to current VA/JPEG decoding API.
31032 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31034 * gst-libs/gst/codecparsers/gstjpegparser.c:
31035 * gst-libs/gst/codecparsers/gstjpegparser.h:
31036 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31037 codecparsers: jpeg: track valid quantization and Huffman tables.
31038 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
31039 to determine whether a table actually changed since the last user
31040 synchronization point. That way, this makes it possible for some
31041 hardware accelerated decoding solution to upload only those tables
31044 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
31046 * gst-libs/gst/codecparsers/gstjpegparser.c:
31047 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
31048 Use GstByteReader *_unchecked() variants as much as possible.
31049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31051 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
31053 * gst-libs/gst/codecparsers/gstjpegparser.c:
31054 * gst-libs/gst/codecparsers/gstjpegparser.h:
31055 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31056 jpeg: add new GstJpegHuffmanTables structure.
31057 Add new GstJpegHuffmanTables helper structure to hold all possible
31058 AC/DC Huffman tables available to all components.
31059 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31061 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
31063 * gst-libs/gst/codecparsers/gstjpegparser.c:
31064 * gst-libs/gst/codecparsers/gstjpegparser.h:
31065 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31066 jpeg: make gst_jpeg_parse() support multiple scans.
31067 gst_jpeg_parse() now gathers all scans available in the supplied
31068 buffer. A scan comprises of the scan header and any entropy-coded
31069 segments or restart marker following it. The size and offset to
31070 the associated data (ECS + RST segments) are append to a new
31071 GstJpegScanOffsetSize structure.
31072 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31074 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
31076 * gst-libs/gst/codecparsers/gstjpegparser.c:
31077 * gst-libs/gst/codecparsers/gstjpegparser.h:
31078 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31079 jpeg: update to match latest parser API.
31080 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31082 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31084 * gst-libs/gst/codecparsers/gstjpegparser.h:
31085 jpeg: simplify and optimize parser API.
31087 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
31089 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31090 mpeg: fix picture used to determine backward_reference_vop_coding_type.
31091 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31092 but Gwenole did not apply all the bits.
31093 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31095 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
31097 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31098 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31099 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31101 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31103 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31104 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31105 Gracefully skip non VOP coded frames.
31106 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31108 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31110 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31111 mpeg4: fix timestamp issues on too fast playback.
31112 Improve generation of presentation timestamps to be less sensitive
31113 to input stream errors. In practise, GOP is also a synchronization
31114 point for PTS calculation.
31115 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31117 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31119 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31120 Fix build without JPEG decoder.
31122 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31124 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31125 mpeg4: fix VOP coding type of backward reference pictures.
31126 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31128 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31130 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31131 mpeg4: fix handling of temporal reference distances.
31132 TRD and TRB fields are not large enough to hold the difference of PTS
31133 expressed with nanosecond resolution. So, compute them from the original
31135 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31137 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31139 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31140 dpb: mpeg2: cosmetics.
31141 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31143 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31146 * gst-libs/gst/vaapi/Makefile.am:
31147 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31148 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31149 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31150 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31151 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31152 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31153 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31154 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31155 * gst/vaapi/gstvaapidecode.c:
31156 Add initial JPEG decoder.
31157 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31159 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31162 * gst-libs/gst/Makefile.am:
31163 * gst-libs/gst/codecparsers/Makefile.am:
31164 * gst-libs/gst/codecparsers/gstjpegparser.c:
31165 * gst-libs/gst/codecparsers/gstjpegparser.h:
31166 * gst-libs/gst/vaapi/Makefile.am:
31167 codecparsers: add JPEG parser.
31168 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31170 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31172 * gst/vaapi/gstvaapidecode.c:
31173 vaapidecode: fix VA display type.
31174 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31176 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31178 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31180 * gst/vaapi/gstvaapidecode.c:
31181 vaapidecode: fix includes when compiling for a single API.
31183 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31186 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31187 mpeg2: fix calculation of macroblock_offset.
31188 Fix decoding of streams with extra slice() information before the first
31189 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31191 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31193 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31194 mpeg2: fix interpolation of GOP TSN from new PTS.
31195 New GOP TSN base could be mis-calculated. In particular, this fixes
31196 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31198 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31201 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31202 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31203 mpeg2: fix decoding of high profile streams.
31204 Allow MPEG-2 High profile streams only if the HW supports that profile
31205 or no High profile specific bits are used, and thus Main profile could
31206 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31207 set to 11 and no sequence_scalable_extension() was parsed.
31209 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31212 * gst/vaapi/gstvaapidecode.c:
31213 vaapidecode: report unsupported codec profiles.
31214 Try to gracefully abort when the HW does not support the requested
31215 profile. There is no fallback unless profiles are correctly parsed
31216 and matched through caps beforehand.
31218 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31221 * gst/vaapi/gstvaapisink.c:
31222 vaapisink: don't resize a 'foreign' X-window.
31223 Don't forcibly resize foreign X windows. The user is responsible for
31224 their size and vaapisink shall not change this.
31225 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31227 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31230 * gst/vaapi/gstvaapisink.c:
31231 * gst/vaapi/gstvaapisink.h:
31232 vaapisink: recalculate render rect only if caps are negotiated.
31233 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31234 caps got negotiated. Besides, when a foreign window is provided by the
31235 user, so should the render rect.
31236 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31238 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31241 Bump version for development.
31243 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31248 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31250 * docs/reference/libs/libs-docs.xml.in:
31251 * docs/reference/libs/libs-sections.txt:
31252 * docs/reference/plugins/plugins-docs.xml.in:
31253 * docs/reference/plugins/plugins-sections.txt:
31254 * docs/reference/plugins/plugins.types:
31255 * gst-libs/gst/vaapi/gstvaapiimage.c:
31256 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31257 * gst/vaapi/gstvaapipostproc.c:
31258 Fix a few documentation issues.
31260 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31264 Update introduction and changelog.
31266 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31268 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31269 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31270 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31271 mpeg2: allocate dummy picture for first field based I-frame.
31272 In P-pictures, prediction shall be made from the two most recently
31273 decoded reference fields. However, when the first I-frame is a field,
31274 the next field of the current picture could be a P-picture but only a
31275 single field was decoded so far. In this case, create a dummy picture
31276 with POC = -1 that will be used as reference.
31277 Some VA drivers would error out if P-pictures don't have a forward
31278 reference picture. This is true in general but not in this very specific
31281 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31283 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31284 mpeg2: fix simple to main profile fallback.
31285 Allow fallback from simple to main profile when the HW decoder does
31286 not support the former profile and that no sequence_header_extension()
31287 is available to point out this.
31289 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31291 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31292 mpeg4: improve error checking while decoding packets.
31293 decode_picture() could return an error when an MPEG-4 profile is not
31294 supported for example. In this case, the underlying VA context is not
31295 allocated and no other proper action can be taken. Likewise on exit
31296 from decode_slice().
31297 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31299 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31301 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31302 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31303 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31304 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31305 decoder: use POC to maintain the DPB.
31306 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31307 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31308 video streaming at 60 Hz.
31309 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31310 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31312 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31314 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31315 mpeg2: rework generation of presentation timestamps.
31316 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31317 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31318 max PTS from past pictures, then try to fix it up based on the duration of
31320 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31321 reconstruct a current time. Also now handle wrapped TSN correctly.
31323 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31325 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31326 mpeg2: ignore empty user-data packets.
31327 Fix tcela-8.bits conformance test.
31329 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31331 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31332 mpeg2: review and report errors accordingly.
31333 Use GST_ERROR() to report real errors instead of hiding them into
31336 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31338 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31339 mpeg2: fix invalid interlaced frame in progressive sequence.
31340 Some streams, badly constructed, could have signaled an interlaced
31341 frame while the sequence was meant to be progressive. Warn and force
31342 frame to be progressive in this case.
31344 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31346 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31347 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31348 mpeg2: add support for interlaced streams.
31349 Pictures are submitted to the HW for rendering only when both fields
31350 are decoded or current picture is a full frame.
31352 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31354 * gst-libs/gst/vaapi/Makefile.am:
31355 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31356 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31357 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31358 mpeg2: add new decoded picture buffer infrastructure.
31359 Decoded pictures are now maintained into DPB, similarly to H.264.
31360 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31362 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31364 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31365 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31366 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31367 decoder: add first-field flag to picture.
31368 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31369 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31370 as the first field. Any subsequent allocated field will become the second field.
31372 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31374 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31375 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31376 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31377 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31378 decoder: allow pictures to be cloned for field decoding.
31379 Add gst_vaapi_picture_new_field() function that clones a picture, while
31380 preserving the parent picture surface. i.e. the surface proxy reference
31381 count is increased and other fields copied as is. Besides, the picture
31382 is reset into a "non-output" mode.
31384 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31386 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31387 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31388 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31389 decoder: rework picture field flags.
31390 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31391 could be propagated to the surface proxy when it is pushed for rendering.
31392 Besides, top and bottom fields are now expressed with picture structure flags
31393 from GstVaapiSurfaceRenderFlags.
31395 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31397 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31398 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31399 decoder: add OUTPUT flag to pictures.
31400 Allow pictures to be marked as output gst_vaapi_picture_output().
31402 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31404 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31405 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31406 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31407 decoder: fix semantics of SKIPPED pictures.
31408 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31409 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31410 has nothing to do with rendering. This only means that the currently decoded
31411 picture is just a copy of its reference picture.
31413 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31415 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31416 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31417 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31418 * gst/vaapi/gstvaapipostproc.c:
31419 vaapipostproc: get "interlaced" attribute from surface proxy.
31420 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31421 vaapipostproc so that to handles cases where bitstream is interlaced
31422 but almost only frame pictures are generated. In this case, we should
31423 not be alternating between top/bottom fields.
31425 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31428 * debian.upstream/control.in:
31429 * gst/vaapi/Makefile.am:
31430 * gst/vaapi/gstvaapi.c:
31431 * gst/vaapi/gstvaapipostproc.c:
31432 * gst/vaapi/gstvaapipostproc.h:
31433 vaapipostproc: add new element for video postprocessing.
31434 Add vaapipostproc element for video postprocessing. So far, only basic
31435 bob deinterlacing is implemented. Interlaced mode is automatically
31436 detected based on sink caps ("interlaced" field).
31438 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31440 * docs/reference/libs/libs-sections.txt:
31441 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31442 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31443 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31444 * gst/vaapi/gstvaapisink.c:
31445 videobuffer: add surface render flags.
31446 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31447 to be set to the video buffer. In particular, this is mostly useful for
31448 basic deinterlacing.
31450 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31452 * gst-libs/gst/vaapi/gstvaapicompat.h:
31453 compat: add compatibility glue with VA-API 0.34+ (WIP).
31455 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31457 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31458 h264: skip all Filler Data NALs.
31460 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31462 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31463 mpeg4: check for decoder status prior to decoding packet.
31464 Make sure there is a VA surface free prior to decoding the current frame.
31465 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31467 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31469 * gst/vaapi/gstvaapidecode.c:
31470 * gst/vaapi/gstvaapidecode.h:
31471 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31472 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31473 is created and a NEWSEGMENT event arrives, downstream element may not
31474 be ready yet. So, delay this event until next element is chained in,
31475 otherwise basesink could output "Received buffer without a new-segment.
31476 Assuming timestamps start from 0".
31477 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31479 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31481 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31482 mpeg2: fix GOP timestamps when incorrect data is received.
31483 Some streams have incorrect GOP timestamps, or nothing set at all.
31484 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31485 from demuxer timestamps, which are monotonic.
31486 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31488 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31490 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31491 mpeg2: don't decode anything before the first sequence_header().
31492 Skip all pictures prior to the first sequence_header(). Besides,
31493 skip all picture_data() if there was no prior picture_header().
31494 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31496 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31498 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31499 ffmpeg: add support for interlaced streams.
31500 Evaluate interlaced stream properties.
31501 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31503 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31505 * gst/vaapi/gstvaapidecode.c:
31506 vaapidecode: propagate interlaced and TFF properties downstream.
31507 Propagate "interlaced" caps downstream and set "tff" buffer flag
31508 appropriately to output buffers for interlaced pictures.
31509 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31511 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31513 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31514 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31515 decoder: maintain caps for interlaced streams.
31516 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31518 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31520 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31522 * docs/reference/libs/libs-sections.txt:
31523 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31524 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31525 surfaceproxy: add TFF property.
31526 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31527 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31529 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31532 AUTHORS: update to match current authors.
31534 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31536 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31537 mpeg2: fix is_first_field calculation.
31538 Reset is_first_field for frame pictures. Factor out locations where
31539 the flag is updated.
31541 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31543 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31544 mpeg2: catch incorrect picture_structure from bitstreams.
31545 Assume "frame" picture structure if the syntax element was zero or if
31546 progressive_frame is set.
31548 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31550 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31551 mpeg2: fix slice_vertical_position calculation (again).
31552 VA-API expects slice_vertical_position as the initial position from the
31553 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31556 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31558 * gst/vaapi/gstvaapidecode.c:
31559 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31560 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31561 For gst_element_class_get_pad_template(), no unreferencing is necessary
31562 according to the GStreamer documentation.
31564 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31567 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31568 h264: fix slice_data_bit_offset calculation.
31569 Unlike what VA-API documentation defines, the slice_data_bit_offset
31570 represents the offset to the first macroblock in the slice data, minus
31571 any emulation prevention bytes in the slice_header().
31572 This fix copes with binary-only VA drivers that won't be fixed any
31573 time soon. Besides, this aligns with the current FFmpeg behaviour
31574 that was based on those proprietary drivers implementing the API
31577 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31579 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31580 h264: skip all Access Unit (AU) NALs.
31581 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31583 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31585 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31586 h264: fix modification process of reference picture lists.
31587 Construction of RefPicList0/1 could be off by one element.
31588 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31590 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31592 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31593 mpeg2: fix size calculation from sequence_extension().
31594 Original values from sequence_header() are 12-bit and the remaining
31595 2 most significant bits are coming from sequence_extension().
31596 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31598 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31600 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31601 mpeg2: fix slice_vertical_position calculation.
31602 Make sure to adjust slice_vertical_position if picture structure
31603 is a top or bottom field.
31605 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31607 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31608 decoder: add picture structure flags.
31610 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31612 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31613 mpeg2: fix decoding at end-of-sequence.
31615 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31617 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31618 mpeg2: fix slice_horizontal_position calculation.
31620 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31622 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31623 mpeg2: drop useless mb_y and mb_height members.
31625 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31627 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31628 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31629 6.3.15 says that "some slices may have the same slice_vertical_position,
31630 since slices may start and finish anywhere". So, we can't submit the current
31631 picture to the HW right away since subsequent slices would be missing.
31633 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31635 * gst-libs/gst/vaapi/gstvaapiimage.c:
31636 image: fix source stride in picture copy.
31638 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31640 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31641 decoder: fix double buffer free with some VA drivers.
31642 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31643 push the VA buffer object into a list of free buffers to be re-used. However,
31644 reference pictures (and data) that was kept would explicitly release the VA
31645 buffer object later on, thus possibly destroying a valid (re-used) object.
31646 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31647 semantics for VA buffers disposal and would leak memory if there is no explicit
31648 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31649 right after vaRenderPicture(). All VA drivers need to be aligned.
31651 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31653 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31654 h264: complete any current picture decoder before SPS / PPS change.
31655 This ensures the VA context is clear when the encoded resolution
31656 changes. i.e. make sure older picture is decoded with the older
31657 VA context before it changes.
31659 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31661 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31662 h264: create VA context earlier when SPS is parsed.
31664 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31666 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31667 h264: don't allocate too big data structures on stack.
31669 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31671 * gst-libs/gst/vaapi/glibcompat.h:
31672 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31673 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31674 glib: map deprecated API to glib >= 2.32 equivalents.
31675 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31676 GRecMutex, which no longer require any prior call to g_thread_init().
31678 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31680 * gst-libs/gst/vaapi/gstvaapiutils.h:
31681 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31682 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31683 glib: fix includes.
31685 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31687 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31688 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31689 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31690 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31691 cosmetics: fix warnings (drop unused variables).
31693 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31695 * gst/vaapi/gstvaapidecode.c:
31696 vaapidecode: fix another pad template ref leak.
31698 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31700 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31701 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31702 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31703 mpeg2: fix crash when there is no free surface to decode into.
31705 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
31707 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31708 display: skip profiles which have no entrypoints.
31709 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31711 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31713 * gst/vaapi/gstvaapiupload.c:
31714 vaapiupload: use g_object_unref() for GstVaapiImage.
31716 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31718 * gst/vaapi/gstvaapidecode.c:
31719 * gst/vaapi/gstvaapidownload.c:
31720 * gst/vaapi/gstvaapisink.c:
31721 * gst/vaapi/gstvaapiupload.c:
31722 plugins: fix pad template ref leaks.
31724 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31727 Bump version for development.
31729 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31735 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31739 Mention codecparsers-based decoders, FFmpeg is now optional. Update
31740 list of support HW.
31742 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31747 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31749 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31750 decoder: allocate proxy surface earlier.
31751 This simplifies gst_vaapi_picture_output() to only update the presentation
31752 timestamp and submit the proxy to the decoder for output.
31754 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31756 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31757 decoder: fix memory leak of VA objects on exit.
31758 On sequence end, if the last decoded picture is not output for rendering,
31759 then the proxy surface is not created. In this case, the original surface
31760 must be released explicitly to the context.
31762 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31764 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31765 mpeg2: use GstAdapter to track input sequence.
31766 This fixes possible memory leaks and improves performance by removing
31769 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31772 * gst-libs/gst/vaapi/Makefile.am:
31773 * gst-libs/gst/vaapi/glibcompat.h:
31774 * gst-libs/gst/vaapi/sysdeps.h:
31775 Add glib compatibility glue for older versions.
31777 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31779 * gst-libs/gst/vaapi/Makefile.am:
31780 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31781 * gst-libs/gst/vaapi/gstvaapicontext.c:
31782 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31783 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31784 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31785 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31786 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31787 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31788 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31789 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31790 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31791 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31792 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31793 * gst-libs/gst/vaapi/gstvaapiimage.c:
31794 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31795 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31796 * gst-libs/gst/vaapi/gstvaapiobject.c:
31797 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31798 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31799 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31800 * gst-libs/gst/vaapi/gstvaapisurface.c:
31801 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31802 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31803 * gst-libs/gst/vaapi/gstvaapitexture.c:
31804 * gst-libs/gst/vaapi/gstvaapiutils.c:
31805 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31806 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31807 * gst-libs/gst/vaapi/gstvaapivalue.c:
31808 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31809 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31810 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31811 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31812 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31813 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31814 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31815 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31816 * gst-libs/gst/vaapi/sysdeps.h:
31817 Add header for system-dependent definitions.
31819 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31821 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31822 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31823 * gst-libs/gst/vaapi/gstvaapiutils.c:
31824 * gst-libs/gst/vaapi/gstvaapiutils.h:
31825 decoder: optimize slice data buffers initialization.
31826 VA drivers may have a faster means to transfer user buffers to GPU
31827 buffers than using memcpy(). In particular, on Intel Gen graphics, we
31828 can use pwrite(). This provides for faster upload of bitstream and can
31829 help higher bitrates.
31830 vaapi_create_buffer() helper function was also updated to allow for
31831 un-mapped buffers and pre-initialized data for buffers.
31833 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31835 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31836 h264: simplify RefPicList reconstruction.
31838 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31840 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31841 h264: flush DPB when the end of the sequence is reached.
31843 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31845 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31846 h264: handle Decoded Picture Buffer (DPB).
31848 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31850 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31851 h264: fix pred_weight_table() reconstruction.
31852 Only the explicit pred_weight_table(), possibly with the inferred default
31853 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31854 is not set for P/SP slices.
31856 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31858 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31859 h264: execute reference picture marking process (MMCO).
31861 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31863 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31864 h264: fix presentation timestamps.
31866 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31868 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31869 h264: execute reference picture marking process (sliding window).
31871 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31873 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31874 h264: handle avcC format for decoding buffers.
31876 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31878 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31879 h264: handle codec-data.
31880 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31882 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31884 * gst-libs/gst/vaapi/Makefile.am:
31885 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31886 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31887 * gst/vaapi/gstvaapidecode.c:
31888 * tests/test-decode.c:
31889 Add initial H.264 decoder.
31891 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31893 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31894 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31895 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31896 Keep a valid reference to the proxy in GstVaapiPicture so that frames
31897 marked as "used for reference" could be kept during the lifetime of the
31898 picture. i.e. don't release them too soon as they could be re-used right
31901 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31903 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31904 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31905 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31906 decoder: properly reference count pictures.
31907 This fixes cases where a GstVaapiPicture would be destroyed whereas
31908 there is still a valid instance of it in either prev, current or
31911 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31913 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31914 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31915 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31916 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31917 decoder: simplify output of decoded frames.
31918 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31919 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31920 is already set correctly and reference count increased, if necessary.
31922 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31924 * gst-libs/gst/vaapi/Makefile.am:
31925 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31926 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31927 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31928 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31929 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31930 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31931 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31932 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31933 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31934 decoder: rework the internal VA objects API.
31935 The new API simplifies a lot reference counting and makes it more
31936 flexible for future additions/changes. The GstVaapiCodecInfo is
31937 also gone. Rather, new helper macros are provided to allocate
31938 picture, slice and quantization matrix parameter buffers.
31940 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31942 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31943 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31944 decoder: allow slices to be attached to pictures later.
31946 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31948 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31949 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31950 decoder: add ref_count to GstVaapiPicture.
31952 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31954 * gst/vaapi/gstvaapisink.c:
31955 vaapisink: cap window size to the maximum display size.
31957 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
31959 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31960 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31961 profile: match video/x-h263 as H.263 Baseline profile.
31962 HACK: qtdemux does not report profiles for H.263. So, assume plain
31963 "video/x-h263" is H.263 Baseline profile.
31964 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31966 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31968 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31969 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31970 display: report H.263 Baseline profile.
31971 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
31972 profile (VAProfileMPEG4Simple) is supported.
31974 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31976 * gst-libs/gst/vaapi/Makefile.am:
31977 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31978 Add template for workarounds.
31980 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31982 * tests/test-decode.c:
31983 tests: error out if FFmpeg|codecparsers are not supported.
31985 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31987 * docs/reference/libs/libs-sections.txt:
31988 * gst-libs/gst/vaapi/gstvaapisurface.h:
31989 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31990 surface: don't expose gst_vaapi_surface_get_parent_context().
31991 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
31992 It's just an internal helper function. However, it's still possible to get
31993 the parent context through the "parent-context" property.
31995 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31997 * tests/Makefile.am:
31998 * tests/test-subpicture.c:
31999 tests: fix build without FFmpeg.
32001 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32004 Bump version for development.
32006 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32012 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32015 * debian.upstream/copyright:
32016 * gst-libs/gst/vaapi/gstvaapicontext.c:
32017 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32018 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32019 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32020 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32021 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32022 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32023 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32024 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32025 * gst-libs/gst/vaapi/gstvaapiimage.c:
32026 * gst-libs/gst/vaapi/gstvaapiimage.h:
32027 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32028 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32029 * gst-libs/gst/vaapi/gstvaapiutils.c:
32030 * gst-libs/gst/vaapi/gstvaapiutils.h:
32031 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32032 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32033 * gst/vaapi/gstvaapi.c:
32034 * gst/vaapi/gstvaapidecode.c:
32035 * gst/vaapi/gstvaapidownload.c:
32036 * gst/vaapi/gstvaapidownload.h:
32037 * gst/vaapi/gstvaapipluginutil.c:
32038 * gst/vaapi/gstvaapipluginutil.h:
32039 * gst/vaapi/gstvaapisink.c:
32040 * gst/vaapi/gstvaapiupload.c:
32041 * gst/vaapi/gstvaapiupload.h:
32042 * tests/test-decode.c:
32043 legal: fix year for some copyright notices.
32045 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32047 * gst-libs/gst/vaapi/gstvaapicontext.c:
32048 * gst-libs/gst/vaapi/gstvaapicontext.h:
32049 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32050 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32051 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32052 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32053 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32054 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32055 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32056 * gst-libs/gst/vaapi/gstvaapiimage.c:
32057 * gst-libs/gst/vaapi/gstvaapiimage.h:
32058 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32059 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32060 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32061 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32062 * gst-libs/gst/vaapi/gstvaapisurface.c:
32063 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32064 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32065 * gst-libs/gst/vaapi/gstvaapiutils.c:
32066 * gst-libs/gst/vaapi/gstvaapiutils.h:
32067 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32068 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32069 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32070 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32071 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32072 * gst/vaapi/gstvaapidownload.h:
32073 * gst/vaapi/gstvaapisink.h:
32074 * gst/vaapi/gstvaapiupload.h:
32075 * tests/test-decode.c:
32076 legal: add Intel copyright on modified files.
32078 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32080 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32081 * gst-libs/gst/vaapi/gstvaapicompat.h:
32082 * gst-libs/gst/vaapi/gstvaapicontext.c:
32083 * gst-libs/gst/vaapi/gstvaapicontext.h:
32084 * gst-libs/gst/vaapi/gstvaapidebug.h:
32085 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32086 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32087 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32088 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32089 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32090 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32091 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32092 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32093 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32094 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32095 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32096 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32097 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32098 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32099 * gst-libs/gst/vaapi/gstvaapiimage.c:
32100 * gst-libs/gst/vaapi/gstvaapiimage.h:
32101 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32102 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32103 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32104 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32105 * gst-libs/gst/vaapi/gstvaapiobject.c:
32106 * gst-libs/gst/vaapi/gstvaapiobject.h:
32107 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32108 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32109 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32110 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32111 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32112 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32113 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32114 * gst-libs/gst/vaapi/gstvaapisurface.c:
32115 * gst-libs/gst/vaapi/gstvaapisurface.h:
32116 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32117 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32118 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32119 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32120 * gst-libs/gst/vaapi/gstvaapitexture.c:
32121 * gst-libs/gst/vaapi/gstvaapitexture.h:
32122 * gst-libs/gst/vaapi/gstvaapitypes.h:
32123 * gst-libs/gst/vaapi/gstvaapiutils.c:
32124 * gst-libs/gst/vaapi/gstvaapiutils.h:
32125 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32126 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32127 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32128 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32129 * gst-libs/gst/vaapi/gstvaapivalue.c:
32130 * gst-libs/gst/vaapi/gstvaapivalue.h:
32131 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32132 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32133 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32134 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32135 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32136 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32137 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32138 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32139 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32140 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32141 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32142 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32143 * gst/vaapi/gstvaapidecode.c:
32144 * gst/vaapi/gstvaapidecode.h:
32145 * gst/vaapi/gstvaapidownload.c:
32146 * gst/vaapi/gstvaapidownload.h:
32147 * gst/vaapi/gstvaapisink.c:
32148 * gst/vaapi/gstvaapisink.h:
32149 * gst/vaapi/gstvaapiupload.c:
32150 * gst/vaapi/gstvaapiupload.h:
32153 * tests/test-decode.c:
32154 * tests/test-decode.h:
32155 * tests/test-display.c:
32156 * tests/test-h264.c:
32157 * tests/test-h264.h:
32158 * tests/test-mpeg2.c:
32159 * tests/test-mpeg2.h:
32160 * tests/test-surfaces.c:
32161 * tests/test-textures.c:
32162 * tests/test-vc1.c:
32163 * tests/test-vc1.h:
32164 * tests/test-windows.c:
32165 legal: fix copyright notices to include "Copyright" term.
32167 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32169 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32170 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32171 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32172 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32174 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32176 * gst-libs/gst/vaapi/Makefile.am:
32177 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32178 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32179 * gst/vaapi/gstvaapidecode.c:
32180 Add initial MPEG-4 decoder.
32181 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32183 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32185 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32186 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32187 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32190 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32192 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32193 vc1: fix codec-data decoding for WMV3 format.
32195 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32197 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32198 vc1: fix presentation timestamps.
32200 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32202 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32203 vc1: fix MV mode packing.
32205 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32207 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32208 vc1: handle codec-data.
32210 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32212 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32213 vc1: handle encapsulated bitstreams.
32215 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32217 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32218 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32219 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32220 vc1: fix bitplanes decoding.
32222 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32224 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32225 vc1: fix BFRACTION reconstruction.
32227 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32229 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32230 vc1: fix framerate calculation.
32232 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32234 * gst-libs/gst/vaapi/Makefile.am:
32235 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32236 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32237 * gst/vaapi/gstvaapidecode.c:
32238 * tests/test-decode.c:
32239 Add initial VC-1 decoder.
32241 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32243 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32244 mpeg2: fix first field detection.
32245 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32247 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32249 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32250 mpeg2: fix quantisation matrix construction.
32252 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32254 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32255 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32256 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32257 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32259 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32261 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32262 mpeg2: fix packets spanning over two buffers.
32264 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32266 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32267 mpeg2: ignore system start codes (PES headers).
32269 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32271 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32272 mpeg2: handle closed_gop.
32274 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32276 * gst-libs/gst/vaapi/Makefile.am:
32277 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32278 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32279 * gst/vaapi/gstvaapidecode.c:
32280 * tests/test-decode.c:
32281 Add initial MPEG-2 decoder.
32283 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32286 * gst-libs/gst/vaapi/Makefile.am:
32287 * gst/vaapi/gstvaapidecode.c:
32288 * tests/test-decode.c:
32289 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32291 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32293 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32294 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32295 Add VA decoder helpers.
32297 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32299 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32300 decoder: add new error codes.
32301 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32302 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32304 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32306 * gst-libs/gst/vaapi/Makefile.am:
32307 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32308 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32309 Add timestamp buffer store helper utils.
32311 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32313 * gst-libs/gst/vaapi/gstvaapiutils.c:
32314 * gst-libs/gst/vaapi/gstvaapiutils.h:
32315 Add VA buffer helpers.
32317 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32319 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32320 utils: slight improvements to gl_bind_texture().
32322 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32324 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32325 utils: pretty-print output of gl_get_error_string().
32327 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32329 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32330 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32332 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32334 * gst-libs/gst/vaapi/gstvaapiutils.c:
32335 utils: simplify string of VAProfile/VAEntrypoint.
32337 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32339 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32340 * gst-libs/gst/vaapi/gstvaapiutils.c:
32341 * gst-libs/gst/vaapi/gstvaapiutils.h:
32342 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32344 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32349 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32351 * tests/test-decode.c:
32352 tests: check for shared VA displays (display cache).
32354 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32356 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32357 display: always free VA display cache if it is empty.
32359 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32361 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32362 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32363 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32364 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32365 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32366 display: use VA display cache for X11 and GLX winsys.
32368 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32370 * gst-libs/gst/vaapi/Makefile.am:
32371 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32372 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32373 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32374 display: implement a VA display cache.
32376 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32378 * gst/vaapi/gstvaapipluginutil.c:
32379 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32380 This ensures the display name provided to gst_vaapi_display_*_new()
32381 maps to the system defaults, instead of forcing "" that could be different
32382 from the current DISPLAY name.
32384 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32386 * gst/vaapi/gstvaapiupload.c:
32387 vaapiupload: only set caps on newly created buffers.
32388 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32390 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32392 * gst/vaapi/gstvaapisink.c:
32393 vaapisink: ensure VA display in GstBaseSink::start() hook.
32394 This ensures a VA display is ready by the time upstream elements request
32397 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32399 * gst/vaapi/gstvaapisink.c:
32400 vaapisink: don't leak GL texture.
32401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32403 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32405 * gst/vaapi/gstvaapisink.c:
32406 vaapisink: fix calculation of render region.
32408 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32410 * gst/vaapi/gstvaapisink.c:
32411 vaapisink: automatically fit video to window.
32413 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32415 * gst/vaapi/gstvaapisink.c:
32416 vaapisink: implement GstXOverlay::set_render_rectangle().
32418 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32420 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32421 window: always check geometry when the window is mapped.
32423 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32425 * gst-libs/gst/vaapi/gstvaapiutils.c:
32426 Add missing profiles from VA-API 0.32.0.
32427 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32429 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32432 .gitignore: add test-subpicture.
32434 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32437 Bump version for development.
32439 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32445 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32447 * tests/Makefile.am:
32448 tests: fix make dist (ship with test-subpicture-data.h).
32450 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32455 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32457 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32458 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32459 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32460 decoder: fix possible leak of VA surfaces.
32461 Under some circumstances, we could have leaked a surface, thus not
32462 releasing it to the pool of available surfaces in the VA context.
32463 The strategy is now to use a proxy earlier and automatically ref/unref
32464 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32466 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32468 * docs/reference/libs/libs-sections.txt:
32469 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32470 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32471 surfaceproxy: add helper to retrieve the VA surface ID.
32473 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32475 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32476 surfaceproxy: simplify destruction.
32477 Also make sure to always make sure to release the surface back to the
32478 pool of surfaces in the associated VA context, if any.
32480 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32482 * gst/vaapi/gstvaapidecode.c:
32483 vaapidecode: fix deinitialization order.
32485 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32487 * gst-libs/gst/vaapi/gstvaapicontext.c:
32488 context: avoid self reference loops with surfaces.
32490 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32492 * debian.upstream/control.in:
32493 debian: update control.in description for new plugins.
32495 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32497 * gst/vaapi/gstvaapiupload.c:
32498 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32499 This also fixes extra structures, beyond the one at index 0, to hold
32500 the right additional values.
32502 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32504 * gst/vaapi/gstvaapiupload.c:
32505 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32507 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32510 * docs/reference/plugins/plugins-docs.xml.in:
32511 * docs/reference/plugins/plugins-sections.txt:
32512 * docs/reference/plugins/plugins.types:
32513 * gst/vaapi/Makefile.am:
32514 * gst/vaapi/gstvaapi.c:
32515 * gst/vaapi/gstvaapidownload.c:
32516 * gst/vaapi/gstvaapidownload.h:
32517 vaapidownload: add new plugin to download pixels from VA surfaces.
32519 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32521 * gst/vaapi/gstvaapipluginutil.c:
32522 * gst/vaapi/gstvaapipluginutil.h:
32523 vaapipluingutils: add helper to append surface caps to YUV caps.
32525 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32527 * docs/reference/libs/libs-sections.txt:
32528 * gst-libs/gst/vaapi/gstvaapiimage.c:
32529 * gst-libs/gst/vaapi/gstvaapiimage.h:
32530 image: add helpers to extract pixels to user buffers.
32532 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32534 * gst-libs/gst/vaapi/gstvaapiimage.c:
32535 image: simplify initialization of raw images from video buffers.
32537 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32539 * gst-libs/gst/vaapi/gstvaapiimage.c:
32540 image: fix update from NV12 buffers.
32542 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32544 * gst/vaapi/gstvaapiupload.c:
32545 vaapiupload: fix memory leak in _init() function.
32547 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32551 * debian.upstream/control.in:
32552 * docs/reference/plugins/plugins-docs.xml.in:
32553 * docs/reference/plugins/plugins-sections.txt:
32554 * docs/reference/plugins/plugins.types:
32555 * gst/vaapi/Makefile.am:
32556 * gst/vaapi/gstvaapi.c:
32557 * gst/vaapi/gstvaapiupload.c:
32558 * gst/vaapi/gstvaapiupload.h:
32559 Rename vaapiconvert element to vaapiupload.
32561 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32564 Bump version for development.
32566 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32572 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32577 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32579 * gst-libs/gst/vaapi/gstvaapisurface.c:
32580 * gst-libs/gst/vaapi/gstvaapisurface.h:
32581 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32582 * gst/vaapi/gstvaapisink.c:
32583 surface: apply composition to the parent context, if requested.
32585 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32587 * docs/reference/libs/libs-sections.txt:
32588 * gst-libs/gst/vaapi/gstvaapicontext.c:
32589 * gst-libs/gst/vaapi/gstvaapicontext.h:
32590 context: make it possible to apply composition globally.
32592 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32594 * gst-libs/gst/vaapi/gstvaapisurface.c:
32595 surface: fix associate subpicture to not report deassociation errors.
32597 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32599 * gst-libs/gst/vaapi/gstvaapisurface.c:
32600 surface: fix typo in debug message.
32602 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32604 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32605 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32606 * gst-libs/gst/vaapi/gstvaapisurface.c:
32607 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32609 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32611 * docs/reference/libs/libs-sections.txt:
32612 * gst-libs/gst/vaapi/Makefile.am:
32613 * gst-libs/gst/vaapi/gstvaapicontext.c:
32614 * gst-libs/gst/vaapi/gstvaapisurface.c:
32615 * gst-libs/gst/vaapi/gstvaapisurface.h:
32616 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32617 surface: record parent context.
32619 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32621 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32622 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32623 * gst/vaapi/gstvaapidecode.c:
32624 * gst/vaapi/gstvaapisink.c:
32627 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32629 * gst-libs/gst/vaapi/gstvaapisurface.c:
32630 * gst-libs/gst/vaapi/gstvaapisurface.h:
32631 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32632 * gst/vaapi/gstvaapisink.c:
32633 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32635 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32638 configure: check for GstVideoOverlayComposition.
32640 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32645 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32647 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32648 converter: add support for GstVideoOverlayComposition planes.
32649 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32651 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32653 * gst/vaapi/gstvaapisink.c:
32654 vaapisink: handle GstVideoOverlayComposition planes.
32655 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32657 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32659 * gst-libs/gst/vaapi/gstvaapisurface.c:
32660 surface: use unscaled overlay rectangle for blending.
32662 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32664 * gst-libs/gst/vaapi/gstvaapisurface.c:
32665 surface: fix VA image leak when an error occurred.
32667 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32669 * gst-libs/gst/vaapi/gstvaapisurface.c:
32670 * gst-libs/gst/vaapi/gstvaapisurface.h:
32671 surface: add helper to handle GstVideoOverlayComposition.
32672 This helper resets the subpictures to reflect the current composition
32673 layers provided with the buffers.
32674 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32676 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32678 * docs/reference/libs/libs-sections.txt:
32679 * gst-libs/gst/vaapi/Makefile.am:
32680 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32681 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32682 * gst/vaapi/gstvaapiconvert.c:
32683 image: add gst_vaapi_image_format_from_video() helper.
32685 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32687 * gst-libs/gst/vaapi/gstvaapiimage.c:
32688 * gst-libs/gst/vaapi/gstvaapiimage.h:
32689 image: allow updates from GstVaapiImageRaw.
32691 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32693 * gst-libs/gst/vaapi/gstvaapiimage.c:
32694 * gst-libs/gst/vaapi/gstvaapiimage.h:
32695 * gst/vaapi/gstvaapiconvert.c:
32696 * tests/test-subpicture.c:
32697 image: allow partial updates.
32699 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32701 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32702 subpicture: fix doc for gst_vaapi_subpicture_set_image().
32704 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32706 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32707 display: fix has_image_format() to check against subpicture formats.
32709 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32711 * tests/test-subpicture.c:
32712 tests: fix subpicture test.
32714 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32716 * tests/Makefile.am:
32717 * tests/test-subpicture-data.c:
32718 * tests/test-subpicture-data.h:
32719 * tests/test-subpicture.c:
32720 tests: add test for subpictures.
32721 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32723 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32725 * gst/vaapi/gstvaapiconvert.c:
32726 * gst/vaapi/gstvaapidecode.c:
32727 Add missing video context queries.
32728 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32730 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32733 Bump version for development.
32735 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32737 * gst-libs/gst/video/Makefile.am:
32738 * gst-libs/gst/video/gstbasevideocodec.c:
32739 * gst-libs/gst/video/gstbasevideocodec.h:
32740 * gst-libs/gst/video/gstbasevideodecoder.c:
32741 * gst-libs/gst/video/gstbasevideodecoder.h:
32742 * gst-libs/gst/video/gstbasevideoutils.c:
32743 * gst-libs/gst/video/gstbasevideoutils.h:
32744 Drop unused copy of GstBaseVideoDecoder.
32746 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32752 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32755 README: update dependencies.
32757 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32762 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32765 configure: check for GstBaseSink 'query' vfunc.
32767 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32769 * gst/vaapi/Makefile.am:
32770 vaapiplugin: include local build dir to CFLAGS for generated files.
32772 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32775 autogen: don't configure if NO_CONFIGURE variable is set.
32777 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32779 * gst/vaapi/gstvaapidecode.c:
32780 * gst/vaapi/gstvaapidecode.h:
32781 vaapidecode: return sink caps template if decoder is in NULL state.
32782 Otherwise, the decoder would always create its own X display instead
32783 of probing it from the downstream element, which is not reliable.
32784 e.g. DISPLAY is not :0 or when running on Wayland.
32785 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32787 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32789 * gst/vaapi/gstvaapiconvert.c:
32790 * gst/vaapi/gstvaapidecode.c:
32791 vaapiplugin: properly set surface type to "vaapi" in caps.
32793 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32795 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32796 decoder: drop unused headers.
32798 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32800 * gst/vaapi/gstvaapiconvert.c:
32801 * gst/vaapi/gstvaapidecode.c:
32802 vaapiplugin: properly set opengl support in caps.
32803 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32805 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32807 * gst/vaapi/gstvaapiconvert.c:
32808 * gst/vaapi/gstvaapidecode.c:
32809 vaapiplugin: allocate GLX buffers when supported.
32810 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32812 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32814 * gst-libs/gst/vaapi/Makefile.am:
32815 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32816 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32817 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32818 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32819 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32820 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32821 videobuffer: add GLX buffer support.
32822 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32824 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32826 * gst-libs/gst/vaapi/Makefile.am:
32827 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32828 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32829 Port to GstSurfaceBuffer interface.
32830 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32832 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32834 * gst/vaapi/gstvaapidecode.c:
32835 * gst/vaapi/gstvaapisink.c:
32836 Don't use downstream buffer allocation.
32837 With the new video/x-surface abstraction, we can't rely on having a VA
32838 specific sink downstream. Also, there was no particular reason to do that.
32839 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32841 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32843 * gst-libs/gst/vaapi/Makefile.am:
32844 * gst-libs/gst/vaapi/gstvaapicontext.c:
32845 * gst-libs/gst/vaapi/gstvaapisurface.h:
32846 * gst/vaapi/gstvaapiconvert.c:
32847 * gst/vaapi/gstvaapisink.c:
32848 * tests/Makefile.am:
32849 * tests/test-surfaces.c:
32850 Change caps to use new video/x-surface generic type.
32851 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32853 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32856 * gst-libs/gst/vaapi/Makefile.am:
32857 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32858 * gst/vaapi/Makefile.am:
32859 * gst/vaapi/gstvaapiconvert.c:
32860 * gst/vaapi/gstvaapidecode.c:
32861 * gst/vaapi/gstvaapipluginutil.c:
32862 * gst/vaapi/gstvaapipluginutil.h:
32863 * gst/vaapi/gstvaapisink.c:
32864 * gst/vaapi/gstvaapisink.h:
32865 Port to GstVideoContext interface.
32866 This new interface allows for upstream and downstream display sharing
32867 that works in both static and dynamic pipelines.
32868 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32870 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32872 * gst/vaapi/gstvaapisink.c:
32873 vaapisink: use GST_ERROR to print error messages.
32875 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32877 * gst/vaapi/Makefile.am:
32878 vaapiplugin: link against VA/GLX when enabled.
32880 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32882 * gst/vaapi/gstvaapiconvert.c:
32883 * gst/vaapi/gstvaapisink.c:
32884 Add Intel copyright information.
32886 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32888 * gst/vaapi/gstvaapisink.c:
32889 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32891 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32895 * gst-libs/gst/Makefile.am:
32896 * gst-libs/gst/gstutils_version.h.in:
32897 Add new GStreamer version check utilities.
32899 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32901 * gst/vaapi/gstvaapisink.c:
32902 vaapisink: replace the deprecated xoverlay API with the new one.
32903 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32905 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32908 configure: allow for pre-releases.
32910 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32912 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32913 display: destroy display on creation failure.
32914 This allows element to detect that the display creation has actually
32916 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32918 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32920 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32921 display: don't crash when config is empty.
32922 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32924 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32927 * debian.upstream/copyright:
32928 doc: mention Collabora copyrights.
32930 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32933 .gitignore: refine for generated docs.
32935 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32938 * docs/reference/plugins/Makefile.am:
32940 * gst/vaapi/Makefile.am:
32941 * gst/vaapi/gstvaapi.c:
32942 * gst/vaapi/gstvaapiconvert.c:
32943 * gst/vaapi/gstvaapiconvert.h:
32944 * gst/vaapi/gstvaapidecode.c:
32945 * gst/vaapi/gstvaapidecode.h:
32946 * gst/vaapi/gstvaapisink.c:
32947 * gst/vaapi/gstvaapisink.h:
32948 * gst/vaapiconvert/Makefile.am:
32949 * gst/vaapidecode/Makefile.am:
32950 Group all plugins into the same bundle
32951 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32953 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32956 Bump version for development.
32958 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32961 * debian.upstream/control.in:
32962 debian: build against upstream libva packages.
32964 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32966 * docs/reference/libs/Makefile.am:
32967 * docs/reference/plugins/Makefile.am:
32968 * tests/Makefile.am:
32969 Fix build on Ubuntu 11.10 (Oneric).
32971 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32976 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32980 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32982 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32984 * gst/vaapiconvert/gstvaapiconvert.c:
32985 * gst/vaapidecode/gstvaapidecode.c:
32986 * gst/vaapisink/gstvaapisink.c:
32987 Update license in plugin definition
32988 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32990 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32993 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32994 decoder: fix use of invalid data at the end-of-stream.
32996 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32998 * gst/vaapiconvert/gstvaapiconvert.c:
32999 vaapiconvert: fix some warnings.
33001 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33004 * debian.upstream/changelog.in:
33005 * debian.upstream/control.in:
33006 * debian.upstream/copyright:
33007 * gst/vaapiconvert/gstvaapiconvert.c:
33008 * gst/vaapidecode/gstvaapidecode.c:
33009 * gst/vaapisink/gstvaapisink.c:
33010 Update with my current e-mail address.
33012 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33016 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
33018 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
33022 * tests/test-decode.c:
33023 * tests/test-decode.h:
33024 * tests/test-display.c:
33025 * tests/test-h264.c:
33026 * tests/test-h264.h:
33027 * tests/test-mpeg2.c:
33028 * tests/test-mpeg2.h:
33029 * tests/test-surfaces.c:
33030 * tests/test-textures.c:
33031 * tests/test-vc1.c:
33032 * tests/test-vc1.h:
33033 * tests/test-windows.c:
33034 switch tests licence to LGPL v2.1+
33036 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
33040 * debian.upstream/copyright:
33041 * gst/vaapiconvert/gstvaapiconvert.c:
33042 * gst/vaapiconvert/gstvaapiconvert.h:
33043 * gst/vaapidecode/gstvaapidecode.c:
33044 * gst/vaapidecode/gstvaapidecode.h:
33045 * gst/vaapisink/gstvaapisink.c:
33046 * gst/vaapisink/gstvaapisink.h:
33047 move plugins to LGPL v2.1+
33049 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33051 * gst/vaapidecode/gstvaapidecode.c:
33052 vaapidecode: fix sink caps to not expose size information.
33053 This fixes this particular issue:
33054 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
33055 a real subset of its template caps
33057 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33060 * gst/vaapidecode/gstvaapidecode.c:
33061 vaapidecode: fix decoding of MPEG-2 PS files.
33063 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33065 * gst-libs/gst/vaapi/Makefile.am:
33066 Cosmetics (sort source files).
33068 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33070 * gst/vaapiconvert/gstvaapiconvert.c:
33071 * gst/vaapiconvert/gstvaapiconvert.h:
33072 vaapiconvert: fix direct-rendering caps detection.
33074 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33076 * gst-libs/gst/vaapi/gstvaapiimage.c:
33077 Fix gst_vaapi_image_new_with_image().
33079 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33081 * gst/vaapiconvert/gstvaapiconvert.c:
33082 vaapiconvert: warn when surface failed to be updated with image.
33084 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33086 * gst/vaapiconvert/gstvaapiconvert.c:
33087 vaapiconvert: fix autodetection for vaDeriveImage() support.
33089 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33091 * gst/vaapiconvert/gstvaapiconvert.c:
33092 vaapiconvert: fix memory leak (VA surface image).
33094 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33097 * gst/vaapiconvert/gstvaapiconvert.c:
33098 vaapiconvert: fix direct-rendering mode.
33100 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33102 * docs/reference/libs/libs-sections.txt:
33103 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33104 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33105 Add gst_vaapi_video_buffer_new_from_buffer().
33106 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33107 Any image, surface or surface proxy will be inherited from the source buffer
33108 if it is a GstVaapiVideoBuffer.
33110 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33112 * gst/vaapiconvert/gstvaapiconvert.c:
33113 vaapiconvert: protect access to direct_rendering.
33115 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33117 * gst/vaapiconvert/gstvaapiconvert.c:
33118 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33120 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33124 * debian.upstream/copyright:
33125 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33126 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33127 * gst-libs/gst/vaapi/gstvaapisurface.h:
33128 * gst/vaapidecode/gstvaapidecode.c:
33129 * gst/vaapidecode/gstvaapidecode.h:
33130 Add Intel copyright information.
33132 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33137 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33139 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33140 Fix build with newer FFmpeg versions.
33142 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33144 * gst/vaapidecode/gstvaapidecode.c:
33145 * gst/vaapidecode/gstvaapidecode.h:
33146 Fix decoding of MPEG-2 TS files.
33148 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33150 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33151 Report caps update only once per video resolution change.
33153 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33155 * gst-libs/gst/vaapi/gstvaapisurface.h:
33156 Add canonical form (type name) of VA surface caps.
33158 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33161 Bump version for development.
33163 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33166 Use pretty build output with automake >= 1.11.
33168 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33170 * gst/vaapiconvert/Makefile.am:
33171 * gst/vaapidecode/Makefile.am:
33172 * gst/vaapisink/Makefile.am:
33173 * tests/Makefile.am:
33174 Fix build with libva headers not in a standard include dir.
33176 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33181 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33183 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33184 * gst-libs/gst/vaapi/gstvaapicompat.h:
33185 * gst-libs/gst/vaapi/gstvaapicontext.c:
33186 * gst-libs/gst/vaapi/gstvaapicontext.h:
33187 * gst-libs/gst/vaapi/gstvaapidebug.h:
33188 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33189 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33190 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33191 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33192 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33193 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33194 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33195 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33196 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33197 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33198 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33199 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33200 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33201 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33202 * gst-libs/gst/vaapi/gstvaapiimage.c:
33203 * gst-libs/gst/vaapi/gstvaapiimage.h:
33204 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33205 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33206 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33207 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33208 * gst-libs/gst/vaapi/gstvaapiobject.c:
33209 * gst-libs/gst/vaapi/gstvaapiobject.h:
33210 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33211 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33212 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33213 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33214 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33215 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33216 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33217 * gst-libs/gst/vaapi/gstvaapisurface.c:
33218 * gst-libs/gst/vaapi/gstvaapisurface.h:
33219 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33220 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33221 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33222 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33223 * gst-libs/gst/vaapi/gstvaapitexture.c:
33224 * gst-libs/gst/vaapi/gstvaapitexture.h:
33225 * gst-libs/gst/vaapi/gstvaapitypes.h:
33226 * gst-libs/gst/vaapi/gstvaapiutils.c:
33227 * gst-libs/gst/vaapi/gstvaapiutils.h:
33228 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33229 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33230 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33231 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33232 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33233 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33234 * gst-libs/gst/vaapi/gstvaapivalue.c:
33235 * gst-libs/gst/vaapi/gstvaapivalue.h:
33236 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33237 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33238 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33239 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33240 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33241 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33242 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33243 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33244 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33245 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33246 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33247 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33248 * gst/vaapiconvert/gstvaapiconvert.c:
33249 * gst/vaapiconvert/gstvaapiconvert.h:
33250 * gst/vaapidecode/gstvaapidecode.c:
33251 * gst/vaapidecode/gstvaapidecode.h:
33252 * gst/vaapisink/gstvaapisink.c:
33253 * gst/vaapisink/gstvaapisink.h:
33256 * tests/test-decode.c:
33257 * tests/test-decode.h:
33258 * tests/test-display.c:
33259 * tests/test-h264.c:
33260 * tests/test-h264.h:
33261 * tests/test-mpeg2.c:
33262 * tests/test-mpeg2.h:
33263 * tests/test-surfaces.c:
33264 * tests/test-textures.c:
33265 * tests/test-vc1.c:
33266 * tests/test-vc1.h:
33267 * tests/test-windows.c:
33268 Update copyright notice.
33270 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33273 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33274 * gst-libs/gst/vaapi/gstvaapisurface.c:
33275 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33276 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33277 * gst-libs/gst/vaapi/gstvaapitexture.c:
33278 * gst-libs/gst/vaapi/gstvaapiutils.c:
33279 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33280 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33281 * gst-libs/gst/vaapi/gstvaapivalue.c:
33282 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33283 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33284 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33285 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33286 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33287 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33288 Fix licensing terms.
33290 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33295 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33297 * debian.upstream/copyright:
33298 Fix license terms...
33300 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33302 * gst/vaapisink/gstvaapisink.c:
33303 Render pretty background only in use-reflection=true mode.
33305 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33310 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33312 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33313 Drop the GLX 1.3 requirement.
33315 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33317 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33318 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33319 Call the GLX/Pixmap related functions through the vtable.
33321 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33325 * gst-libs/gst/vaapi/Makefile.am:
33326 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33327 Drop dependency on libavformat.
33329 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33331 * gst-libs/gst/video/gstbasevideodecoder.c:
33332 * gst-libs/gst/video/gstbasevideodecoder.h:
33333 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33335 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33337 * gst-libs/gst/video/gstbasevideodecoder.c:
33338 * gst-libs/gst/video/gstbasevideoutils.c:
33339 * gst-libs/gst/video/gstbasevideoutils.h:
33340 Drop superfluous functions.
33342 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33344 * gst-libs/gst/video/gstbasevideodecoder.c:
33345 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33347 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33349 * gst-libs/gst/video/gstbasevideodecoder.c:
33350 Further drop dependency on libgstvideo.
33352 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33354 * gst-libs/gst/video/Makefile.am:
33355 * gst-libs/gst/video/gstbasevideocodec.c:
33356 * gst-libs/gst/video/gstbasevideocodec.h:
33357 * gst-libs/gst/video/gstbasevideodecoder.c:
33358 * gst-libs/gst/video/gstbasevideodecoder.h:
33359 * gst-libs/gst/video/gstbasevideoutils.c:
33360 * gst-libs/gst/video/gstbasevideoutils.h:
33361 Add GstBaseVideoDecoder from gst-plugins-bad git.
33363 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33365 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33366 Fix GLX version check.
33368 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33372 Bump version for development.
33374 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33377 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33378 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33380 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33385 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33387 * gst-libs/gst/vaapi/gstvaapicompat.h:
33388 Fix build with older VA-API 0.29-sds.
33390 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33392 * gst/vaapisink/gstvaapisink.c:
33393 * gst/vaapisink/gstvaapisink.h:
33394 Fix upscaling in foreign window (Totem).
33396 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33398 * gst/vaapisink/gstvaapisink.c:
33399 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33401 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33404 * gst/vaapisink/gstvaapisink.c:
33405 Fix video rendering rect within an embedder window (Totem).
33407 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33410 * gst/vaapisink/gstvaapisink.c:
33411 Disable GLX rendering when vaapisink uses a foreign X window.
33413 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33415 * gst/vaapisink/gstvaapisink.c:
33416 Simplify GLX rendering code.
33418 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33421 Bump version for development.
33423 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33428 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33430 * gst/vaapidecode/gstvaapidecode.c:
33431 Wait for at most one second for a VA surface to become available.
33433 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33437 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33439 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33443 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33444 Fix decoder caps to report codec aliases.
33446 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33449 * gst/vaapidecode/gstvaapidecode.c:
33450 * gst/vaapidecode/gstvaapidecode.h:
33451 Fix VC-1 decoding through the playbin2 pipeline.
33453 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33455 * docs/reference/libs/libs-sections.txt:
33456 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33457 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33458 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33459 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33460 Regularly update and expose decoder caps.
33462 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33464 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33465 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33466 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33467 Add mechanism to reinsert buffer leftovers into the queue.
33469 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33472 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33473 Fix memory leak of encoded buffers.
33475 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33477 * docs/reference/libs/libs-sections.txt:
33478 * gst-libs/gst/vaapi/gstvaapicontext.c:
33479 * gst-libs/gst/vaapi/gstvaapicontext.h:
33480 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33481 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33482 Check for out-of-free-surfaces condition.
33484 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33486 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33487 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33489 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33491 * gst/vaapisink/gstvaapisink.c:
33492 Improve debug info for gst_vaapisink_ensure_render_rect().
33494 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33497 Bump version for development.
33499 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33504 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33506 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33507 Improve previous fix.
33509 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33512 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33513 Fix a crash in the FFmpeg decoder on close.
33515 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33518 Sort platforms by name.
33520 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33524 Bump version for development.
33526 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33528 * gst/vaapisink/gstvaapisink.c:
33529 Add debug info for _show_frame().
33531 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33534 Nuke older build dir.
33536 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33538 * debian.upstream/control.in:
33539 Fix packaging deps.
33541 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33546 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33549 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33550 Fix OpenGL texture internal format (Clutter).
33552 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33557 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33559 * gst/vaapisink/gstvaapisink.c:
33560 Debug video & display PARs.
33562 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33564 * gst/vaapisink/gstvaapisink.c:
33565 Use XGetGeometry() to retrieve the window size.
33567 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33569 * gst/vaapisink/gstvaapisink.c:
33572 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33574 * gst/vaapisink/gstvaapisink.c:
33575 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33577 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33580 Drop obsolete comment.
33582 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33587 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33589 * gst/vaapidecode/gstvaapidecode.c:
33590 Fix GstVaapiDisplay refcounting in vaapidecode.
33592 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33594 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33597 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33599 * gst/vaapisink/gstvaapisink.c:
33600 * gst/vaapisink/gstvaapisink.h:
33601 Fix render rect when the foreign window size changes.
33603 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33607 * gst/vaapisink/Makefile.am:
33608 * gst/vaapisink/gstvaapisink.c:
33609 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33611 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33614 Update deps to match configure.ac versions.
33616 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33618 * gst/vaapiconvert/gstvaapiconvert.c:
33619 * gst/vaapidecode/gstvaapidecode.c:
33620 * gst/vaapisink/gstvaapisink.c:
33623 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33626 * gst/vaapidecode/Makefile.am:
33627 * gst/vaapidecode/gstvaapidecode.c:
33628 * gst/vaapidecode/gstvaapidecode.h:
33629 Fix vaapidecode to expose the HW supported caps only.
33631 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33633 * gst/vaapidecode/gstvaapidecode.c:
33634 Initialize decoder earlier.
33636 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33640 * gst/vaapidecode/gstvaapidecode.c:
33641 Fix integration within the playbin2 pipeline.
33643 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33645 * docs/reference/libs/Makefile.am:
33646 Exclude gstvaapiutils_gst.h from docs for now.
33648 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33650 * gst/vaapiconvert/gstvaapiconvert.c:
33651 * gst/vaapidecode/gstvaapidecode.c:
33652 * gst/vaapisink/gstvaapisink.c:
33653 Raise VA-API plugins ranks.
33655 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33657 * gst-libs/gst/vaapi/Makefile.am:
33658 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33659 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33660 Add gst_vaapi_display_lookup_downstream() helper.
33662 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33664 * gst/vaapidecode/gstvaapidecode.c:
33665 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33667 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33669 * docs/reference/libs/libs-sections.txt:
33670 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33671 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33672 * gst/vaapisink/gstvaapisink.c:
33673 Expose VA display through GstVaapiVideoBuffer.
33675 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33677 * gst/vaapidecode/gstvaapidecode.c:
33678 Simplify gst_vaapidecode_set_caps() and fix memory leak.
33680 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33682 * docs/reference/libs/libs-sections.txt:
33683 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33684 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33685 Expose video pool display.
33687 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33689 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33690 Stop iteration if there is no more element to examine.
33692 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33694 * gst/vaapiconvert/gstvaapiconvert.c:
33695 * gst/vaapidecode/gstvaapidecode.c:
33696 * gst/vaapisink/gstvaapisink.c:
33697 Improve plugin details.
33699 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33701 * gst-libs/gst/vaapi/gstvaapisurface.h:
33702 * gst/vaapiconvert/gstvaapiconvert.c:
33703 * gst/vaapidecode/gstvaapidecode.c:
33704 * gst/vaapisink/gstvaapisink.c:
33705 Factor out VA surface caps.
33707 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33709 * gst/vaapidecode/gstvaapidecode.c:
33710 Add gst_vaapidecode_ensure_display() helper for set-caps.
33712 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33715 Bump version for development.
33717 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33720 Really make it 0.2.0.
33722 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33727 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33729 * docs/reference/libs/Makefile.am:
33730 Don't exclude GstVaapiParamSpecs.
33732 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33734 * docs/reference/libs/Makefile.am:
33735 * docs/reference/libs/libs-sections.txt:
33736 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33737 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33740 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33742 * gst/vaapiconvert/gstvaapiconvert.c:
33743 * gst/vaapidecode/gstvaapidecode.c:
33744 * gst/vaapisink/gstvaapisink.c:
33745 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.
33747 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33749 * gst-libs/gst/vaapi/Makefile.am:
33750 Really link all helper libraries with libtool -no-undefined.
33752 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33754 * gst-libs/gst/vaapi/Makefile.am:
33755 Link helper libraries with libtool -no-undefined.
33757 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33760 * debian.upstream/gstreamer-vaapi.install.in:
33761 * gst/vaapiconvert/Makefile.am:
33762 * gst/vaapidecode/Makefile.am:
33763 * gst/vaapisink/Makefile.am:
33764 Don't build plugins with SONAME. Make them plain *.so.
33766 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33769 Improve documentation for release.
33771 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33773 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33774 Fix build with older VA-API 0.29.
33776 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33781 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33783 * tests/Makefile.am:
33786 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33788 * docs/reference/libs/Makefile.am:
33789 * docs/reference/libs/libs-docs.xml.in:
33790 * docs/reference/libs/libs-sections.txt:
33791 * docs/reference/libs/libs.core.types:
33792 * docs/reference/plugins/Makefile.am:
33793 * docs/reference/plugins/plugins-docs.xml.in:
33794 * docs/reference/plugins/plugins-sections.txt:
33795 * docs/reference/plugins/plugins.types:
33798 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33800 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33803 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33805 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33806 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33807 * gst/vaapidecode/gstvaapidecode.c:
33808 * tests/test-decode.c:
33809 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33811 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33813 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33814 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33815 Extract framerate information from caps.
33817 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33819 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33820 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33821 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33822 Move caps initialization to parent class.
33824 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33826 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33829 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33831 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33834 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33836 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33837 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33838 More simplifications.
33840 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33842 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33843 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33844 * tests/test-decode.c:
33845 Simplify GstVaapiDecoder API.
33847 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33849 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33850 Drop obsolete defs.
33852 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33854 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33855 Drop obsolete decls.
33857 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33859 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33860 * gst/vaapidecode/gstvaapidecode.c:
33861 Add more aliases for MPEG-4 decoding.
33863 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33865 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33866 Use avctx->coded_{width,height} info to create the VA context.
33868 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33870 * tests/test-decode.c:
33871 * tests/test-decode.h:
33872 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33874 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33876 * tests/test-decode.c:
33877 * tests/test-decode.h:
33878 * tests/test-h264.c:
33879 * tests/test-h264.h:
33880 * tests/test-mpeg2.c:
33881 * tests/test-mpeg2.h:
33882 * tests/test-vc1.c:
33883 * tests/test-vc1.h:
33884 Simplify tests info.
33886 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33888 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33889 Try to improve heuristics to use an AVCodecContextParser.
33891 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33893 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33894 Fix VC-1 decoding, it does not require any specific parser.
33896 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33898 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33899 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33901 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33903 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33904 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33905 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33907 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33909 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33910 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33911 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33912 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33913 * gst/vaapidecode/gstvaapidecode.c:
33914 * gst/vaapidecode/gstvaapidecode.h:
33915 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33917 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33919 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33920 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33921 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33922 Improve WMV3 detection yet further.
33924 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33926 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33927 Fix detection of plain old WMV3 contents.
33929 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33931 * tests/test-vc1.c:
33932 Add End-of-Sequence start code.
33934 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33936 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33937 * gst/vaapidecode/gstvaapidecode.c:
33938 Fix VC-1 detection.
33940 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33942 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33943 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33945 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33947 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33948 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33949 Drop obsolete (and wrong) code.
33951 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33953 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33954 Cosmetics (spelling).
33956 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33958 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33959 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33960 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33961 Try to fix timestamps (step 1). Looks OK on H55.
33963 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33965 * debian.upstream/Makefile.am:
33966 Ship with COPYING.LIB.
33968 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33973 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33974 * gst-libs/gst/vaapi/gstvaapicompat.h:
33975 * gst-libs/gst/vaapi/gstvaapicontext.c:
33976 * gst-libs/gst/vaapi/gstvaapicontext.h:
33977 * gst-libs/gst/vaapi/gstvaapidebug.h:
33978 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33979 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33980 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33981 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33982 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33983 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33984 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33985 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33986 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33987 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33988 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33989 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33990 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33991 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33992 * gst-libs/gst/vaapi/gstvaapiimage.c:
33993 * gst-libs/gst/vaapi/gstvaapiimage.h:
33994 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33995 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33996 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33997 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33998 * gst-libs/gst/vaapi/gstvaapiobject.c:
33999 * gst-libs/gst/vaapi/gstvaapiobject.h:
34000 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34001 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34002 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34003 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34004 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34005 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34006 * gst-libs/gst/vaapi/gstvaapisurface.h:
34007 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34008 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34009 * gst-libs/gst/vaapi/gstvaapitexture.h:
34010 * gst-libs/gst/vaapi/gstvaapitypes.h:
34011 * gst-libs/gst/vaapi/gstvaapiutils.h:
34012 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34013 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34014 * gst-libs/gst/vaapi/gstvaapivalue.h:
34015 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34016 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34017 * gst-libs/gst/vaapi/gstvaapivideosink.h:
34018 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34019 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34020 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34021 Relicense gst-libs/ code to LGPL v2.1+.
34023 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34025 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34026 Drop extraneous comma.
34028 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34030 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34031 Drop variant=itu field to help codec detection.
34033 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34035 * gst/vaapidecode/gstvaapidecode.c:
34036 Decode as many surfaces as possible in gst_vaapidecode_step().
34038 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34040 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34041 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34042 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34043 * gst/vaapidecode/gstvaapidecode.c:
34044 * gst/vaapidecode/gstvaapidecode.h:
34045 * tests/test-decode.c:
34046 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
34048 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34053 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34055 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34056 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
34058 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34060 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34061 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34062 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
34064 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34066 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34067 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34068 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
34070 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34072 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34073 Document H.264 / AVC1 format case better.
34075 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34077 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34078 Fix H.264 decoding with AVC1 format bitstreams.
34080 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34082 * gst/vaapidecode/gstvaapidecode.c:
34083 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
34085 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34087 * gst/vaapisink/gstvaapisink.c:
34088 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34090 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34092 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34093 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34094 Export gst_vaapi_video_buffer_new().
34096 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34098 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34099 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34101 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34106 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34111 * gst/vaapidecode/Makefile.am:
34112 * gst/vaapidecode/gstvaapidecode.c:
34113 * gst/vaapidecode/gstvaapidecode.h:
34114 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34116 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34118 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34119 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34120 Add gst_vaapi_decoder_pause().
34122 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34124 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34125 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34126 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34127 Use a GstTask with start/stop semantics for the decoder thread.
34129 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34131 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34132 Drop extraneous var.
34134 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34136 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34137 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34138 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34140 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34142 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34143 Fix gst_vaapi_decoder_get_surface() status.
34145 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34147 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34148 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34149 Try to set correct timestamps to the decoded surface proxy.
34151 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34153 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34154 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34155 * tests/test-decode.c:
34156 Add timestamps to GstVaapiSurfaceProxy.
34158 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34160 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34161 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34163 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34165 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34166 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34168 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34170 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34171 Prefer profile from codec-data if any was found there.
34173 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34175 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34176 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34178 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34180 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34181 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34183 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34185 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34186 Fix VC-1 codec initialization, it really needs an extradata buffer.
34188 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34190 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34191 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34192 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.
34194 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34196 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34197 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34199 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34201 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34202 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34203 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34204 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34205 * tests/test-decode.c:
34206 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34208 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34210 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34211 Cosmetics (weird indentation).
34213 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34215 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34216 Cosmetics (extraneous variable, debug message).
34218 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34221 Fix check for VA-API enabled FFmpeg.
34223 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34225 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34226 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34227 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34228 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34229 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34231 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34233 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34234 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34235 Add more error codes. Fix documentation.
34237 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34239 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34240 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34242 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34244 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34245 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34246 * tests/test-decode.c:
34247 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34249 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34251 * tests/test-vc1.c:
34252 Drop useless End-of-Sequence marker.
34254 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34256 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34257 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.
34259 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34261 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34262 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34263 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.
34265 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34267 * tests/test-h264.c:
34268 * tests/test-vc1.c:
34269 Regenerate correct clips.
34271 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34273 * tests/Makefile.am:
34274 * tests/test-decode.c:
34275 * tests/test-h264.c:
34276 * tests/test-h264.h:
34277 * tests/test-mpeg2.c:
34278 * tests/test-mpeg2.h:
34279 * tests/test-vc1.c:
34280 * tests/test-vc1.h:
34281 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34282 XXX: only VC-1 decoding works at this time because of awful
34283 bugs left in GstVaapiDecoderFfmpeg et al.
34285 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34288 * gst-libs/gst/vaapi/Makefile.am:
34289 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34290 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34291 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34292 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34293 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34294 Add initial (multithreaded) decoder based on FFmpeg.
34295 There are tons of bugs left:
34296 - Decoder API not nice enough with error conditions
34297 - FFmpeg parser is sometimes broken
34298 - Packets queue can be lost
34300 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34302 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34303 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34304 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34306 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34308 * gst-libs/gst/vaapi/gstvaapicontext.c:
34309 * gst-libs/gst/vaapi/gstvaapicontext.h:
34310 Add VA context abstraction.
34312 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34314 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34315 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34317 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34319 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34320 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34321 Add a means to cap the number of objects allocated in the pool.
34323 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34325 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34326 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34327 Add VA entrypoint abstraction.
34329 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34331 * docs/reference/libs/libs-docs.xml.in:
34332 * docs/reference/libs/libs-sections.txt:
34333 * gst-libs/gst/vaapi/Makefile.am:
34334 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34335 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34336 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34337 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34338 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34339 * tests/test-display.c:
34340 Add VA profile abstraction.
34342 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34344 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34345 Fix OpenGL rendering on G45 systems.
34347 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34349 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34350 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34352 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34354 * gst-libs/gst/vaapi/gstvaapitexture.c:
34355 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34356 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34357 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.
34359 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34361 * gst-libs/gst/vaapi/gstvaapitexture.c:
34362 Fix get-out conditions.
34364 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34366 * gst-libs/gst/vaapi/gstvaapitexture.c:
34367 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34368 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.
34370 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34372 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34375 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34377 * docs/reference/libs/libs-sections.txt:
34378 * gst-libs/gst/vaapi/Makefile.am:
34379 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34380 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34381 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34382 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34383 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34384 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34385 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34386 * gst-libs/gst/vaapi/gstvaapitexture.c:
34387 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34388 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34389 * tests/test-windows.c:
34390 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34392 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34394 * gst-libs/gst/vaapi/Makefile.am:
34395 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34396 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34397 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34398 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34399 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34400 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34401 * gst-libs/gst/vaapi/gstvaapiimage.c:
34402 * gst-libs/gst/vaapi/gstvaapiobject.c:
34403 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34404 * gst-libs/gst/vaapi/gstvaapisurface.c:
34405 * gst-libs/gst/vaapi/gstvaapitexture.c:
34406 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34407 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34408 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34409 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34411 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34413 * gst-libs/gst/vaapi/gstvaapitexture.c:
34414 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34415 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34416 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34417 Improve handling of GL contexts.
34419 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34424 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34427 Bump version for development.
34429 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34432 * debian.upstream/Makefile.am:
34433 * debian.upstream/control.in:
34434 Rename -dev package to libgstvaapi-dev.
34436 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34442 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34444 * gst-libs/gst/vaapi/gstvaapiutils.c:
34445 Fix build with VA-API < 0.30.
34447 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34450 * gst-libs/gst/vaapi/gstvaapicompat.h:
34451 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34452 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34453 * gst-libs/gst/vaapi/gstvaapitexture.c:
34454 * tests/test-display.c:
34455 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34457 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34459 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34460 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34461 Add TFP and FBO helpers.
34463 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34465 * gst-libs/gst/vaapi/gstvaapiutils.c:
34466 * gst-libs/gst/vaapi/gstvaapiutils.h:
34467 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34469 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34471 * gst-libs/gst/vaapi/gstvaapitexture.c:
34472 * gst-libs/gst/vaapi/gstvaapiutils.c:
34473 * gst-libs/gst/vaapi/gstvaapiutils.h:
34474 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34475 Use a shorter function name.
34477 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34479 * docs/reference/libs/libs-sections.txt:
34480 * gst-libs/gst/vaapi/gstvaapisurface.c:
34481 * gst-libs/gst/vaapi/gstvaapisurface.h:
34482 * gst-libs/gst/vaapi/gstvaapiutils.c:
34483 * gst-libs/gst/vaapi/gstvaapiutils.h:
34484 Add gst_vaapi_surface_query_status() wrapper.
34486 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34488 * docs/reference/plugins/Makefile.am:
34489 Fix leftover during migration.
34491 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34495 * docs/reference/plugins/Makefile.am:
34497 * gst/vaapiconvert/Makefile.am:
34498 * gst/vaapiconvert/gstvaapiconvert.c:
34499 * gst/vaapiconvert/gstvaapiconvert.h:
34500 * gst/vaapisink/Makefile.am:
34501 * gst/vaapisink/gstvaapisink.c:
34502 * gst/vaapisink/gstvaapisink.h:
34503 Rename to gst/ as sys/ was too vague.
34505 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34507 * gst-libs/gst/vaapi/gstvaapiimage.c:
34508 * gst-libs/gst/vaapi/gstvaapiimage.h:
34509 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34510 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34511 * gst-libs/gst/vaapi/gstvaapisurface.c:
34512 * gst-libs/gst/vaapi/gstvaapisurface.h:
34513 Try to not reference VA-API types directly.
34515 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34517 * sys/vaapisink/gstvaapisink.c:
34518 Fix reflection code to preserve aspect ratio.
34520 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34522 * sys/vaapisink/gstvaapisink.c:
34523 * sys/vaapisink/gstvaapisink.h:
34524 Fix fullscreen mode.
34526 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34528 * sys/vaapisink/gstvaapisink.c:
34529 * sys/vaapisink/gstvaapisink.h:
34530 Add OpenGL reflection effect ("use-reflection").
34532 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34535 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34536 Use a projection suitable for rotation around the Y axis.
34538 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34541 * sys/vaapisink/Makefile.am:
34542 * sys/vaapisink/gstvaapisink.c:
34543 * sys/vaapisink/gstvaapisink.h:
34544 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34546 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34549 * debian.upstream/Makefile.am:
34550 * debian.upstream/control.in:
34551 * debian.upstream/libgstvaapi-glx.install.in:
34552 Add libgstvaapi-glx-0 package.
34554 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34556 * pkgconfig/Makefile.am:
34557 Really fix make distclean.
34559 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34561 * docs/reference/libs/Makefile.am:
34564 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34566 * pkgconfig/Makefile.am:
34567 Fix make distclean.
34569 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34571 * tests/Makefile.am:
34574 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34576 * docs/reference/libs/Makefile.am:
34577 * docs/reference/libs/libs.core.types:
34578 * docs/reference/libs/libs.glx.types:
34579 * docs/reference/libs/libs.x11.types:
34582 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34584 * sys/vaapisink/gstvaapisink.h:
34585 Fix build without GLX.
34587 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34592 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34594 * sys/vaapisink/Makefile.am:
34595 * sys/vaapisink/gstvaapisink.c:
34596 * sys/vaapisink/gstvaapisink.h:
34597 Add VA/GLX support to vaapisink.
34599 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34601 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34602 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34603 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34604 Add glXSwapBuffers() workaround for NVIDIA.
34606 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34608 * tests/Makefile.am:
34609 * tests/test-textures.c:
34610 Improve VA/GLX textures test.
34612 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34614 * gst-libs/gst/vaapi/gstvaapitexture.c:
34615 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34616 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34617 Fix texture rendering.
34619 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34621 * docs/reference/libs/libs-docs.xml.in:
34622 * docs/reference/libs/libs-sections.txt:
34623 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34624 * gst-libs/gst/vaapi/gstvaapitexture.c:
34627 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34629 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34630 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34631 Add gst_vaapi_window_glx_put_texture() helper.
34633 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34635 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34638 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34642 * tests/test-windows.c:
34645 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34647 * gst-libs/gst/vaapi/Makefile.am:
34648 * gst-libs/gst/vaapi/gstvaapitexture.c:
34649 * gst-libs/gst/vaapi/gstvaapitexture.h:
34650 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34651 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34652 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34654 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34656 * docs/reference/libs/libs-sections.txt:
34657 * gst-libs/gst/vaapi/gstvaapiobject.c:
34658 * gst-libs/gst/vaapi/gstvaapiobject.h:
34659 Add gst_vaapi_object_{,un}lock_display() helpers.
34661 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34663 * tests/Makefile.am:
34666 * tests/test-windows.c:
34667 Factor out image utilities.
34669 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34671 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34672 MT-Safe: lock display.
34674 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34676 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34677 Make sure window resize completed prior to resizing the GL viewport.
34679 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34681 * gst-libs/gst/vaapi/Makefile.am:
34682 gstvaapicompat.h is a private header, don't install it.
34684 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34686 * docs/reference/libs/libs-sections.txt:
34687 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34688 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34689 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34690 Add gst_vaapi_display_{sync,flush}() helpers.
34692 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34694 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34695 * sys/vaapisink/gstvaapisink.c:
34696 * sys/vaapisink/gstvaapisink.h:
34697 Add "synchronous" mode.
34699 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34701 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34702 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34703 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34705 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34707 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34708 Restore GLX context only if there is one.
34710 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34712 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34713 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34714 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34715 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34716 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34718 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34720 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34721 Check GstVaapiWindow::render() is available prior to calling it.
34723 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34725 * tests/Makefile.am:
34726 * tests/test-display.c:
34727 * tests/test-textures.c:
34728 Add VA/GLX display tests.
34730 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34733 * gst-libs/gst/vaapi/Makefile.am:
34736 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34738 * docs/reference/libs/Makefile.am:
34739 * docs/reference/libs/libs-docs.xml.in:
34740 * docs/reference/libs/libs-sections.txt:
34741 * docs/reference/libs/libs.types:
34742 Add missing API documentation.
34744 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34747 * gst-libs/gst/vaapi/Makefile.am:
34748 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34749 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34750 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34751 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34752 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34753 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34754 * pkgconfig/Makefile.am:
34755 * pkgconfig/gstreamer-vaapi-glx.pc.in:
34756 * tests/Makefile.am:
34757 * tests/test-textures.c:
34758 Add initial VA/GLX support.
34760 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34762 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34763 Add missing includes (for vaapi_check_status()).
34765 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34767 * gst-libs/gst/vaapi/gstvaapidebug.h:
34768 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34770 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34772 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34773 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34774 Add gst_vaapi_window_x11_is_foreign_xid() helper.
34776 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34778 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34779 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34780 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34781 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34782 Allow derived classes to specify custom Visual and Colormap.
34784 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34786 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34787 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34788 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34789 Allow window creation with a specific visual (e.g. for GLX support).
34791 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34793 * gst-libs/gst/vaapi/gstvaapiimage.c:
34794 Fix return value on error (though it's the same in the end).
34796 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34798 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34799 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34800 Simplify initialization of VADisplay.
34802 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34805 Move __attribute__((visibility("hidden"))) check down.
34807 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34809 * docs/reference/libs/libs-sections.txt:
34810 * gst-libs/gst/vaapi/gstvaapiimage.c:
34811 * gst-libs/gst/vaapi/gstvaapiimage.h:
34812 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34813 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34814 * gst-libs/gst/vaapi/gstvaapisurface.c:
34815 * gst-libs/gst/vaapi/gstvaapisurface.h:
34816 * tests/test-surfaces.c:
34817 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34819 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34821 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34822 Use the parent display object, no need to maintain another one.
34823 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34825 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34827 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34828 Add more internal helpers.
34830 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34832 * gst-libs/gst/vaapi/gstvaapiimage.c:
34833 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34834 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34835 * gst-libs/gst/vaapi/gstvaapisurface.c:
34836 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34837 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34838 Rename to GST_VAAPI_OBJECT_DISPLAY().
34840 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34842 * docs/reference/libs/libs-sections.txt:
34843 * gst-libs/gst/vaapi/gstvaapiimage.c:
34844 * gst-libs/gst/vaapi/gstvaapiobject.c:
34845 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34846 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34847 * gst-libs/gst/vaapi/gstvaapisurface.c:
34848 * gst-libs/gst/vaapi/gstvaapitypes.h:
34849 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34850 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34852 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34854 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34855 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34856 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34857 Make GstVaapiWindow* derive from GstVaapiObject.
34859 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34862 Factor out use gstreamer-vaapi (PACKAGE name).
34864 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34867 Improve versioning summary.
34869 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34871 * gst-libs/gst/vaapi/Makefile.am:
34872 gstvaapicompat.h is now a private header (not installed).
34874 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34876 * gst-libs/gst/vaapi/gstvaapiimage.c:
34877 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34878 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34879 * gst-libs/gst/vaapi/gstvaapiobject.c:
34880 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34881 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34882 Include gstvaapicompat.h in source files only, not headers.
34884 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34887 * gst-libs/gst/vaapi/Makefile.am:
34888 * sys/vaapiconvert/Makefile.am:
34889 * sys/vaapisink/Makefile.am:
34890 * tests/Makefile.am:
34891 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34893 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34897 * gst-libs/gst/vaapi/Makefile.am:
34898 * gst-libs/gst/vaapi/gstvaapicompat.h:
34899 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34900 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34901 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34902 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34903 * gst-libs/gst/vaapi/gstvaapisurface.c:
34904 * gst-libs/gst/vaapi/gstvaapiutils.c:
34905 * gst-libs/gst/vaapi/gstvaapiutils.h:
34906 * pkgconfig/gstreamer-vaapi-x11.pc.in:
34907 * pkgconfig/gstreamer-vaapi.pc.in:
34908 * sys/vaapiconvert/Makefile.am:
34909 * sys/vaapisink/Makefile.am:
34910 * tests/Makefile.am:
34911 Add compatibility with the original VA-API 0.29.
34913 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34915 * gst-libs/gst/vaapi/gstvaapivalue.h:
34916 Add missing file (gstvaapivalue.h).
34918 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34920 * gst-libs/gst/vaapi/gstvaapiimage.c:
34921 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34922 * gst-libs/gst/vaapi/gstvaapisurface.c:
34923 Fix g_warning() invocation.
34925 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34927 * gst-libs/gst/vaapi/gstvaapisurface.c:
34928 Deassociate subpictures while destroying the surface.
34930 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34932 * gst-libs/gst/vaapi/gstvaapisurface.c:
34933 Fix destruction order of subpictures. They should be destroyed first.
34935 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34938 * gst-libs/gst/vaapi/gstvaapiimage.c:
34939 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34940 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34941 * tests/test-windows.c:
34942 Add support for AYUV format.
34944 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34946 * tests/test-windows.c:
34947 Simplify upload process and fallback to subpictures.
34949 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34951 * docs/reference/libs/libs-docs.xml.in:
34952 * docs/reference/libs/libs-sections.txt:
34953 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34956 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34958 * gst-libs/gst/vaapi/Makefile.am:
34959 * gst-libs/gst/vaapi/gstvaapiobject.c:
34960 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34961 * gst-libs/gst/vaapi/gstvaapitypes.h:
34962 * gst-libs/gst/vaapi/gstvaapivalue.c:
34963 Move GValue specific stuff to a dedicated file.
34965 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34967 * tests/test-surfaces.c:
34968 Cosmetics (lowercase for consistency).
34970 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34972 * gst-libs/gst/vaapi/gstvaapiobject.c:
34973 Cosmetics (vertical alignment).
34975 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34977 * gst-libs/gst/vaapi/gstvaapiobject.c:
34978 Fix return value on error.
34980 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34982 * docs/reference/libs/libs-sections.txt:
34983 * gst-libs/gst/vaapi/gstvaapiimage.c:
34984 * gst-libs/gst/vaapi/gstvaapiimage.h:
34985 * gst-libs/gst/vaapi/gstvaapiobject.c:
34986 * gst-libs/gst/vaapi/gstvaapiobject.h:
34987 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34988 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34989 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34990 * gst-libs/gst/vaapi/gstvaapisurface.c:
34991 * gst-libs/gst/vaapi/gstvaapisurface.h:
34992 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34993 * tests/test-surfaces.c:
34994 Move "id" down to the GstVaapiObject base.
34996 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34998 * gst-libs/gst/vaapi/gstvaapitypes.c:
34999 Cosmetics (drop extraneous empty line).
35001 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35003 * gst-libs/gst/vaapi/Makefile.am:
35004 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35005 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
35006 Add GParamSpecs for GstVaapiID.
35008 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35010 * docs/reference/libs/libs.types:
35011 Drop gst_vaapi_id_get_type().
35013 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35015 * docs/reference/libs/libs-sections.txt:
35016 * gst-libs/gst/vaapi/gstvaapitypes.h:
35017 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
35019 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35021 * docs/reference/libs/libs-sections.txt:
35022 * docs/reference/libs/libs.types:
35023 * gst-libs/gst/vaapi/Makefile.am:
35024 * gst-libs/gst/vaapi/gstvaapitypes.c:
35025 * gst-libs/gst/vaapi/gstvaapitypes.h:
35026 Add GstVaapiID abstraction.
35028 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35030 * docs/reference/libs/libs.types:
35033 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35035 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35036 * gst-libs/gst/vaapi/gstvaapiimage.c:
35037 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35038 * gst-libs/gst/vaapi/gstvaapisurface.c:
35039 Drop useless include (<va/va_backend.h>).
35041 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35043 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35044 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
35046 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35048 * gst-libs/gst/vaapi/Makefile.am:
35049 * gst-libs/gst/vaapi/gstvaapiimage.c:
35050 * gst-libs/gst/vaapi/gstvaapiobject.c:
35051 * gst-libs/gst/vaapi/gstvaapiobject.h:
35052 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35053 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35054 * gst-libs/gst/vaapi/gstvaapisurface.c:
35055 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35056 Move private definitions and accessors to gstvaapiobject_priv.h.
35058 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35060 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35061 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35062 * gst-libs/gst/vaapi/gstvaapiimage.c:
35063 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35064 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35065 * gst-libs/gst/vaapi/gstvaapiobject.c:
35066 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35067 * gst-libs/gst/vaapi/gstvaapisurface.c:
35068 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35069 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35070 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35071 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35072 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35073 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35074 Fix short descriptions.
35076 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35080 * debian.upstream/Makefile.am:
35081 * debian.upstream/changelog.in:
35082 * debian.upstream/compat:
35083 * debian.upstream/control.in:
35084 * debian.upstream/copyright:
35085 * debian.upstream/gstreamer-vaapi-doc.install.in:
35086 * debian.upstream/gstreamer-vaapi.install.in:
35087 * debian.upstream/libgstvaapi-dev.install.in:
35088 * debian.upstream/libgstvaapi-x11.install.in:
35089 * debian.upstream/libgstvaapi.install.in:
35090 * debian.upstream/rules:
35091 Generate upstream packages through make deb.upstream.
35093 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35096 Bump version for development.
35098 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35100 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35101 Use a black background for new windows.
35103 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35108 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35111 * docs/reference/libs/libs.types:
35112 * gst-libs/gst/vaapi/Makefile.am:
35113 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35114 * gst-libs/gst/vaapi/gstvaapiobject.c:
35115 * gst-libs/gst/vaapi/gstvaapiobject.h:
35116 * tests/test-surfaces.c:
35117 Add "destroy" signal.
35119 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35121 * docs/reference/libs/libs-docs.xml.in:
35122 Improve gst-plugins-vaapi Library reference template.
35124 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35126 * docs/reference/libs/libs-docs.xml.in:
35127 * docs/reference/libs/libs-sections.txt:
35128 * gst-libs/gst/vaapi/Makefile.am:
35129 * gst-libs/gst/vaapi/gstvaapiimage.c:
35130 * gst-libs/gst/vaapi/gstvaapiimage.h:
35131 * gst-libs/gst/vaapi/gstvaapiobject.c:
35132 * gst-libs/gst/vaapi/gstvaapiobject.h:
35133 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35134 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35135 * gst-libs/gst/vaapi/gstvaapisurface.c:
35136 * gst-libs/gst/vaapi/gstvaapisurface.h:
35137 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35138 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35140 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35142 * sys/vaapisink/gstvaapisink.c:
35145 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35147 * sys/vaapisink/gstvaapisink.c:
35148 Make sure VA display is valid when created with an explicit "display" name.
35150 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35152 * sys/vaapisink/gstvaapisink.c:
35153 Use plain "display" property for the X11 display name.
35155 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35157 * sys/vaapiconvert/gstvaapiconvert.c:
35158 * sys/vaapisink/gstvaapisink.c:
35159 Document vaapiconvert & vaapisink plugins.
35161 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35164 * docs/reference/Makefile.am:
35165 * docs/reference/plugins/Makefile.am:
35166 * docs/reference/plugins/plugins-docs.xml.in:
35167 * docs/reference/plugins/plugins-overrides.txt:
35168 * docs/reference/plugins/plugins-sections.txt:
35169 * docs/reference/plugins/plugins.types:
35170 Add plugins documentation template.
35172 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35174 * sys/vaapisink/gstvaapisink.c:
35175 * sys/vaapisink/gstvaapisink.h:
35176 Don't export gst_vaapisink_get_display().
35178 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35181 * docs/reference/libs/libs-docs.xml.in:
35182 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35183 * gst-libs/gst/vaapi/gstvaapiimage.c:
35184 * gst-libs/gst/vaapi/gstvaapisurface.c:
35185 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35186 Drop introspection annotations since they require gtk-doc >= 1.12.
35188 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35190 * gst-libs/gst/vaapi/gstvaapisurface.c:
35191 Add note about the fact that the surface holds an extra reference to the subpicture.
35193 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35195 * gst-libs/gst/vaapi/gstvaapiimage.c:
35196 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35197 * gst-libs/gst/vaapi/gstvaapisurface.c:
35198 Improve debugging messages.
35200 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35202 * tests/test-windows.c:
35203 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35205 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35207 * docs/reference/libs/libs-sections.txt:
35208 * gst-libs/gst/vaapi/gstvaapisurface.c:
35209 * gst-libs/gst/vaapi/gstvaapisurface.h:
35210 * tests/test-windows.c:
35211 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35213 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35215 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35216 Wait for MapNotify or UnmapNotify events on foreign windows too.
35218 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35220 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35221 Check whether the foreign XID is mapped at binding time.
35223 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35225 * sys/vaapisink/gstvaapisink.c:
35226 Add missing includes.
35228 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35231 * debian/Makefile.am:
35232 * debian/control.in:
35233 * debian/gstreamer-vaapi-doc.install.in:
35237 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35239 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35240 Fix warnings (drop extraneous var).
35242 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35244 * docs/reference/libs/libs-sections.txt:
35245 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35246 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35248 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35250 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35253 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35255 * gst-libs/gst/vaapi/Makefile.am:
35256 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35257 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35258 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35259 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35260 Try to improve switch to fullscreen mode.
35262 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35264 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35265 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35266 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35267 Improve display locking and rework X event wait functions.
35269 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35271 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35272 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35273 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35275 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35277 * gst-libs/gst/vaapi/Makefile.am:
35278 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35279 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35280 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.
35282 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35284 * docs/reference/libs/libs-sections.txt:
35285 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35286 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35287 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35289 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35291 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35292 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35293 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35294 Add gst_vaapi_window_get_display() to base.
35296 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35298 * docs/reference/libs/libs-docs.xml.in:
35299 * docs/reference/libs/libs-sections.txt:
35300 * gst-libs/gst/vaapi/Makefile.am:
35301 * gst-libs/gst/vaapi/gstvaapitypes.h:
35302 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35303 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35304 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35305 * sys/vaapisink/gstvaapisink.c:
35306 * sys/vaapisink/gstvaapisink.h:
35307 Add GstVaapiPoint & GstVaapiRectangle data structures.
35309 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35314 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35317 * sys/vaapisink/gstvaapisink.c:
35318 * sys/vaapisink/gstvaapisink.h:
35319 Allow `vaapisink` to render videos in fullscreen mode.
35321 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35323 * docs/reference/libs/libs-sections.txt:
35324 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35325 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35326 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35327 Add gst_vaapi_window_set_fullscreen() API.
35329 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35331 * sys/vaapisink/gstvaapisink.c:
35332 Size window so that to respect the video and pixel aspect ratio.
35334 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35336 * docs/reference/libs/libs-sections.txt:
35337 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35338 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35339 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35340 * tests/test-display.c:
35341 Add gst_vaapi_display_get_pixel_aspect_ratio().
35343 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35345 * docs/reference/libs/libs-sections.txt:
35348 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35350 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35351 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35352 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35353 * tests/test-display.c:
35354 Add display size accessors.
35356 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35359 * debian/control.in:
35360 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35362 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35364 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35365 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35366 * gst-libs/gst/vaapi/gstvaapiimage.h:
35367 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35368 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35369 * gst-libs/gst/vaapi/gstvaapisurface.h:
35370 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35371 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35372 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35373 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35374 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35375 Fix documentation of *Class'es.
35377 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35379 * gst-libs/gst/vaapi/gstvaapiutils.c:
35380 * gst-libs/gst/vaapi/gstvaapiutils.h:
35381 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35382 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35384 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35386 * docs/reference/libs/libs-sections.txt:
35387 * gst-libs/gst/vaapi/gstvaapisurface.h:
35388 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35389 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35391 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35393 * docs/reference/libs/libs-sections.txt:
35394 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35395 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35396 * sys/vaapisink/gstvaapisink.c:
35397 * tests/test-windows.c:
35398 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35400 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35402 * docs/reference/libs/Makefile.am:
35403 Fix make dist for --enable-gtk-doc builds.
35405 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35408 Improve autogen.sh.
35410 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35414 Generate gtk-doc.make from gtkdocize.
35416 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35421 * docs/Makefile.am:
35422 * docs/reference/Makefile.am:
35423 * docs/reference/libs/Makefile.am:
35424 * docs/reference/libs/libs-docs.xml.in:
35425 * docs/reference/libs/libs-overrides.txt:
35426 * docs/reference/libs/libs-sections.txt:
35427 * docs/reference/libs/libs.types:
35428 Document public API for libgstvaapi-*.so.*.
35430 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35432 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35433 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35434 Document GstVaapiVideoBuffer.
35436 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35438 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35439 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35440 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35441 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35442 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35443 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35444 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35446 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35448 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35449 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35450 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35451 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35452 * gst-libs/gst/vaapi/gstvaapiimage.c:
35453 * gst-libs/gst/vaapi/gstvaapiimage.h:
35454 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35455 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35456 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35457 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35458 * gst-libs/gst/vaapi/gstvaapisurface.c:
35459 * gst-libs/gst/vaapi/gstvaapisurface.h:
35460 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35461 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35462 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35463 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35464 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35465 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35466 Add tedious documentation.
35468 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35470 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35471 Beautify append_formats().
35473 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35475 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35476 Simplify GstVaapiDisplay (use GArray).
35478 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35481 * sys/vaapiconvert/gstvaapiconvert.c:
35482 * sys/vaapiconvert/gstvaapiconvert.h:
35483 Factor out direct-rendering infrastructure.
35485 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35487 * sys/vaapiconvert/gstvaapiconvert.c:
35488 * sys/vaapiconvert/gstvaapiconvert.h:
35489 Allow user to specify inout-buffers & derive-image optimizations.
35491 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35493 * sys/vaapiconvert/gstvaapiconvert.c:
35494 Reduce number of debug messaged printed out.
35496 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35498 * sys/vaapiconvert/gstvaapiconvert.c:
35499 * sys/vaapiconvert/gstvaapiconvert.h:
35500 Add vaDeriveImage() optimization.
35502 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35504 * gst-libs/gst/vaapi/gstvaapiimage.c:
35505 Fix gst_vaapi_image_create() from a foreign VA image.
35507 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35509 * gst-libs/gst/vaapi/gstvaapiimage.c:
35510 * gst-libs/gst/vaapi/gstvaapiimage.h:
35511 * gst-libs/gst/vaapi/gstvaapisurface.c:
35512 * gst-libs/gst/vaapi/gstvaapisurface.h:
35513 Add gst_vaapi_surface_derive_image() API.
35515 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35517 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35518 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35519 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35520 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().
35522 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35524 * tests/test-windows.c:
35525 Try YV12 & I420 image formats too.
35527 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35529 * gst-libs/gst/vaapi/gstvaapiimage.c:
35530 Split map/unmap functions into internal functions that don't check preconditions.
35532 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35534 * gst-libs/gst/vaapi/gstvaapiimage.c:
35535 Improve gst_vaapi_image_new() sanity checks.
35537 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35539 * tests/test-windows.c:
35542 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35544 * sys/vaapiconvert/gstvaapiconvert.c:
35545 Check if our inout buffer is still alive or default to a separate output buffer.
35547 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35549 * sys/vaapiconvert/gstvaapiconvert.c:
35550 * sys/vaapiconvert/gstvaapiconvert.h:
35551 Factor out buffers negotiation and optimization checks.
35553 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35555 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35556 * gst-libs/gst/vaapi/gstvaapiimage.c:
35557 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35558 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35559 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35560 * sys/vaapiconvert/gstvaapiconvert.h:
35563 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35565 * gst-libs/gst/vaapi/gstvaapiimage.c:
35566 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35568 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35570 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35571 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35572 * gst-libs/gst/vaapi/gstvaapiimage.c:
35573 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35574 * gst-libs/gst/vaapi/gstvaapisurface.c:
35575 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35576 Add VA display locking utilities.
35578 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35580 * sys/vaapisink/gstvaapisink.c:
35581 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35583 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35585 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35586 * tests/test-windows.c:
35587 Don't show window by default during creation.
35589 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35591 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35592 Fix gst_vaapi_window_x11_destroy().
35594 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35596 * sys/vaapiconvert/gstvaapiconvert.c:
35597 * sys/vaapiconvert/gstvaapiconvert.h:
35598 Alias sink & src pad buffers whenever possible.
35600 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35602 * gst-libs/gst/vaapi/gstvaapiimage.c:
35603 * gst-libs/gst/vaapi/gstvaapiimage.h:
35604 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35606 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35608 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35609 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35610 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35612 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35614 * sys/vaapiconvert/gstvaapiconvert.c:
35615 Fix image & surface size cache.
35617 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35620 Move gstreamer-vaapi package versioning to the top.
35622 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35625 Bump version for development.
35627 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35630 Cosmetics (shorten lines).
35632 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35638 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35640 * debian/Makefile.am:
35641 * debian/changelog.in:
35643 * debian/control.in:
35644 * debian/copyright:
35645 * debian/gstreamer-vaapi.install.in:
35646 * debian/libgstvaapi-dev.install.in:
35647 * debian/libgstvaapi-x11.install.in:
35648 * debian/libgstvaapi.install.in:
35650 Add debian packaging.
35652 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35656 Add debian packaging.
35658 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35660 * pkgconfig/Makefile.am:
35661 Silence GNU make extensions warning.
35663 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35666 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'
35668 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35672 * pkgconfig/Makefile.am:
35673 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35674 * pkgconfig/gstreamer-vaapi.pc.in:
35675 Add pkgconfig files.
35677 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35680 * gst-libs/gst/vaapi/Makefile.am:
35681 * sys/vaapisink/Makefile.am:
35682 * tests/Makefile.am:
35683 Split X11 support to libgstvaapi-x11-*.so.*
35685 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35687 * gst-libs/gst/vaapi/Makefile.am:
35688 Don't install private headers.
35690 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35692 * gst-libs/gst/vaapi/gstvaapidebug.h:
35693 * gst-libs/gst/vaapi/gstvaapiutils.c:
35694 * gst-libs/gst/vaapi/gstvaapiutils.h:
35697 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35699 * gst-libs/gst/vaapi/Makefile.am:
35700 * gst-libs/gst/vaapi/gstvaapidebug.h:
35701 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35702 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35703 * gst-libs/gst/vaapi/gstvaapiimage.c:
35704 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35705 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35706 * gst-libs/gst/vaapi/gstvaapisurface.c:
35707 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35708 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35709 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35710 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35711 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35712 Rename vaapi_debug.h to gstvaapidebug.h.
35714 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35716 * gst-libs/gst/vaapi/Makefile.am:
35717 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35718 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35719 * gst-libs/gst/vaapi/gstvaapiimage.c:
35720 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35721 * gst-libs/gst/vaapi/gstvaapisurface.c:
35722 * gst-libs/gst/vaapi/gstvaapiutils.c:
35723 * gst-libs/gst/vaapi/gstvaapiutils.h:
35724 * gst-libs/gst/vaapi/vaapi_debug.h:
35725 Move vaapi_utils.* to gstvaapiutils.*
35727 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35729 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35730 Cosmetics (remove an extra line).
35732 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35734 * gst-libs/gst/vaapi/Makefile.am:
35735 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35736 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35737 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35738 Move X11 utilties to gstvaapiutils_x11.[ch].
35740 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35742 * gst-libs/gst/vaapi/Makefile.am:
35743 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35744 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35745 * sys/vaapiconvert/gstvaapiconvert.c:
35746 * sys/vaapisink/gstvaapisink.c:
35747 Rename GstVaapiSinkBase to GstVaapiVideoSink.
35749 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35752 * tests/Makefile.am:
35753 * tests/examples/Makefile.am:
35754 * tests/examples/generic/Makefile.am:
35755 * tests/test-display.c:
35756 * tests/test-surfaces.c:
35757 * tests/test-windows.c:
35758 Move tests to top-level tests/ directory.
35760 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35762 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35763 * gst-libs/gst/vaapi/gstvaapiimage.c:
35764 * sys/vaapiconvert/gstvaapiconvert.c:
35765 * sys/vaapiconvert/gstvaapiconvert.h:
35766 Handle I420 formats internally in GstVaapiImage.
35768 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35770 * sys/vaapiconvert/gstvaapiconvert.c:
35771 * sys/vaapiconvert/gstvaapiconvert.h:
35772 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35774 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35776 * gst-libs/gst/vaapi/gstvaapiimage.c:
35777 Implement I420 and YV12 if the underlying implementation does not.
35779 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35781 * sys/vaapiconvert/Makefile.am:
35782 * sys/vaapiconvert/gstvaapiconvert.c:
35783 * sys/vaapiconvert/gstvaapiconvert.h:
35784 Add initial vaapiconvert plugin.
35786 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35788 * sys/vaapisink/gstvaapisink.c:
35789 * sys/vaapisink/gstvaapisink.h:
35792 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35794 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35797 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35799 * tests/examples/generic/test-windows.c:
35800 Generate R/G/B rects.
35802 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35804 * gst-libs/gst/vaapi/gstvaapisurface.c:
35805 * gst-libs/gst/vaapi/gstvaapisurface.h:
35806 Add gst_vaapi_surface_sync().
35808 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35810 * gst-libs/gst/vaapi/gstvaapiimage.c:
35811 Cosmetics (reverse args order).
35813 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35815 * gst-libs/gst/vaapi/gstvaapiimage.c:
35816 * gst-libs/gst/vaapi/gstvaapiimage.h:
35817 * gst-libs/gst/vaapi/gstvaapisurface.c:
35820 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35822 * gst-libs/gst/vaapi/Makefile.am:
35823 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35824 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35825 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35826 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35827 * tests/examples/generic/Makefile.am:
35828 * tests/examples/generic/test-windows.c:
35829 Add VA/X11 window abstraction.
35831 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35833 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35834 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35835 Add VA and X11 display accessors.
35837 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35839 * gst-libs/gst/vaapi/gstvaapiimage.c:
35842 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35844 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35847 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35849 * gst-libs/gst/vaapi/gstvaapiimage.c:
35850 * gst-libs/gst/vaapi/gstvaapiimage.h:
35851 * gst-libs/gst/vaapi/gstvaapisurface.c:
35852 * gst-libs/gst/vaapi/gstvaapisurface.h:
35853 Add gst_vaapi_{get,put}_image() API.
35855 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35857 * gst-libs/gst/vaapi/gstvaapiimage.c:
35858 * gst-libs/gst/vaapi/gstvaapiimage.h:
35859 Add gst_vaapi_image_update_from_buffer() helper.
35861 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35863 * sys/vaapisink/Makefile.am:
35864 * sys/vaapisink/gstvaapisink.c:
35865 * sys/vaapisink/gstvaapisink.h:
35866 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35868 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35870 * tests/examples/generic/Makefile.am:
35871 * tests/examples/generic/test-surfaces.c:
35874 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35876 * gst-libs/gst/vaapi/Makefile.am:
35877 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35878 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35879 Add basic GstVaapiVideoBuffer.
35881 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35883 * gst-libs/gst/vaapi/Makefile.am:
35884 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35885 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35886 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35887 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35888 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35889 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35890 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35892 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35894 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35895 Simplify format conversion code.
35897 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35899 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35900 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35901 Add gst_vaapi_image_format_from_caps() helper.
35903 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35905 * gst-libs/gst/vaapi/Makefile.am:
35906 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35907 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35908 Add VA surface pool (lazy allocator).
35910 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35912 * gst-libs/gst/vaapi/gstvaapisurface.c:
35913 * gst-libs/gst/vaapi/gstvaapisurface.h:
35914 Add gst_vaapi_surface_get_size() helper.
35916 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35918 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35919 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35921 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35923 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35924 Reset display-name if the user provided his own X11 display.
35926 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35928 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35929 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35930 * tests/examples/generic/test-display.c:
35931 Add gst_vaapi_display_x11_new_with_display() API.
35933 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35935 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35936 * gst-libs/gst/vaapi/gstvaapiimage.h:
35937 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35938 * gst-libs/gst/vaapi/gstvaapisurface.h:
35939 Fix *_GET_CLASS() definitions...
35941 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35943 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35944 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35945 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35946 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35947 * tests/examples/generic/test-display.c:
35948 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
35950 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35952 * gst-libs/gst/vaapi/gstvaapisurface.c:
35953 * gst-libs/gst/vaapi/gstvaapisurface.h:
35954 Use GstVaapiChromaType abstraction.
35956 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35958 * gst-libs/gst/vaapi/gstvaapiimage.c:
35959 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35960 * gst-libs/gst/vaapi/gstvaapisurface.c:
35961 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
35963 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35965 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35966 Don't warn on failure, just return an appropriate error or value.
35968 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35970 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35971 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35972 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35973 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
35975 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35977 * gst-libs/gst/vaapi/Makefile.am:
35978 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
35979 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
35980 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
35982 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35984 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35985 * gst-libs/gst/vaapi/gstvaapiimage.c:
35986 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35987 * gst-libs/gst/vaapi/gstvaapisurface.c:
35988 * gst-libs/gst/vaapi/vaapi_debug.h:
35991 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35993 * gst-libs/gst/vaapi/gstvaapiimage.c:
35994 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35995 Fix GstVaapiImage and GstVaapiSubpicture initialization.
35997 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35999 * gst-libs/gst/vaapi/gstvaapisurface.c:
36000 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
36002 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36004 * tests/examples/generic/test-display.c:
36007 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36009 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36010 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36011 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36012 Fix GstVaapiDisplay initialization.
36014 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36016 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36017 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36018 Get VA image & subpicture formats as GstCaps.
36020 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36022 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36023 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36024 Add helper to convert from GstVaapiImageFormat to GstCaps.
36026 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36028 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36029 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36030 * gst-libs/gst/vaapi/gstvaapisurface.c:
36031 Cosmetics (drop unused variables).
36033 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36036 * sys/vaapiconvert/Makefile.am:
36037 * sys/vaapiconvert/gstvaapiconvert.c:
36038 * sys/vaapiconvert/gstvaapiconvert.h:
36039 * sys/vaapisink/Makefile.am:
36040 * sys/vaapisink/gstvaapisink.c:
36041 * sys/vaapisink/gstvaapisink.h:
36042 Add boilerplate for vaapiconvert and vaapisink elements.
36044 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36048 * sys/vaapiconvert/Makefile.am:
36049 Add vaapiconvert element hierarchy.
36051 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36053 * sys/vaapisink/Makefile.am:
36054 Rename to vaapisink.
36056 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36058 * gst-libs/gst/vaapi/gstvaapisurface.c:
36059 Shorter code (and more correct).
36061 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36063 * gst-libs/gst/vaapi/gstvaapisurface.c:
36064 * gst-libs/gst/vaapi/gstvaapisurface.h:
36065 Add helper to get GstVaapiDisplay from a surface.
36067 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36069 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36070 Fix subpicture formats list length.
36072 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36074 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36075 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36076 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
36078 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36080 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36081 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36082 Cosmetics (more checks, includes).
36084 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36086 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36087 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36088 Really add VA subpicture abstraction.
36090 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36092 * gst-libs/gst/vaapi/Makefile.am:
36093 * gst-libs/gst/vaapi/gstvaapiimage.c:
36094 * gst-libs/gst/vaapi/gstvaapiimage.h:
36095 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36096 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36097 * gst-libs/gst/vaapi/gstvaapisurface.c:
36098 * gst-libs/gst/vaapi/gstvaapisurface.h:
36099 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36101 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36104 * gst-libs/gst/vaapi/Makefile.am:
36105 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36106 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36107 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36108 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36109 * gst-libs/gst/vaapi/vaapi_debug.h:
36110 * gst-libs/gst/vaapi/vaapi_utils.c:
36111 * gst-libs/gst/vaapi/vaapi_utils.h:
36112 * tests/examples/generic/Makefile.am:
36113 * tests/examples/generic/test-display.c:
36114 Add initial VA display abstraction.
36116 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36120 * tests/Makefile.am:
36121 * tests/examples/Makefile.am:
36122 * tests/examples/generic/Makefile.am:
36123 Add tests infrastructure.
36125 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36128 Clean up VA-API checks.
36130 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36133 Check for __attribute__((visibility("hidden"))).