3 2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
7 * gstreamer-vaapi.doap:
11 2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
14 Update ChangeLogs for 1.20.0
16 2022-01-30 09:38:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18 * gst/vaapi/gstvaapipluginutil.c:
20 vaapi: Disable Wayland if no libdrm
21 Platform wise, is not possible, as far as I known, to have Wayland
22 without kernel's DRM. Though, it's possible to configure
23 gstreamer-vaapi without DRM but Wayland support, with the enhanced
24 handling of dmabuf in vaapisink for Wayland, vaapisink will always
25 fail. Given both issues, configuration with no DRM but Wayland, makes
26 things more complex, and a simpler approach is to refuse that
28 This patch disables Wayland support if there isn't DRM support. Also,
29 it disables the display test for Wayland, relying only on DRM and
31 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
33 2022-01-30 07:10:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
35 * gst-libs/gst/vaapi/video-format.c:
36 vaapi: libs: video-format: Check if formats map is not NULL.
37 Formats map is instantiated at the end of the display
38 instantiation. The problem is the Wayland display which looks for a
39 format in a callback, before the map is populated.
40 If user compiles gstreamer-vaapi with DRM support, the map is
41 populated with a DRM display at GStreamer plugin registration. But if
42 not, or a VA driver is not available, the plugin will try with a
43 Wayland driver, which cause the NULL de-reference.
44 Nevertheless, in the case of no DRM support, and if the Wayland
45 display doesn't get a reply from the format conversion is not a
47 So the solution is the trivial one, check if the format map is already
48 populated before de-reference it.
50 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
52 === release 1.19.90 ===
54 2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
59 * gstreamer-vaapi.doap:
63 2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
66 Update ChangeLogs for 1.19.90
68 2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
72 meson: Add explicit check: kwarg to all run_command() calls
73 This is required since Meson 0.61.0, and causes a warning to be
75 https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
76 https://github.com/mesonbuild/meson/issues/9300
77 This exposed a bunch of places where we had broken run_command()
78 calls, unnecessary run_command() calls, and places where check: true
80 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
82 2022-01-04 16:19:44 +0800 He Junyan <junyan.he@intel.com>
84 * gst-libs/gst/vaapi/gstvaapiprofile.c:
85 vaapi: av1dec: Use named profiles to replace the numeric ones.
86 Use named AV1 profiles (i.e., main, high) to replace the old "0"
88 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
90 2021-12-01 15:36:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
92 * gst/vaapi/gstvaapidecodebin.c:
93 vaapidecodebin: Misc enhancements.
94 - Use GST_WARNING rather than g_critical
95 - Replace gst_ghost_pad_new_from_template() with
96 gst_ghost_pad_new() to avoid using the template.
97 - Declare extern variable
98 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
100 2021-12-01 12:26:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
102 * gst/vaapi/gstvaapidecode.c:
103 vaapidecode: Autogenerate caps template.
104 vaapidecode is used in vaapidecodebin and it exposes all the
105 theoretically supported caps, but that slows down autoplug. With this
106 autplug is negotiated faster, giving more option to decodebin to select
108 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
110 2021-11-16 17:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
112 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
113 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
114 vaapi: libs: Use unsized arrays as parameters.
115 Instead of defining a sized array for function signature, use it
116 unsized (a pointer alias, basically). In this way clang warning is
118 warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]
119 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
121 2021-11-16 17:21:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
124 vaapi: meson: Fail if static build.
125 And initialize the plugin array.
126 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
128 2021-11-15 16:38:34 +0800 Ung, Teng En <teng.en.ung@intel.com>
130 * gst/vaapi/gstvaapipostproc.c:
131 vaapipostproc: fix mising metadata when using system
132 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1325>
134 2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
139 === release 1.19.3 ===
141 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
146 * gstreamer-vaapi.doap:
150 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
153 Update ChangeLogs for 1.19.3
155 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
157 * tests/check/meson.build:
158 meson: update for meson.build_root() and .build_source() deprecation
159 -> use meson.project_build_root() or .global_build_root() instead.
160 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
162 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
165 * gst-libs/gst/vaapi/meson.build:
167 * tests/check/meson.build:
168 meson: update for dep.get_pkgconfig_variable() deprecation
169 ... in favour of dep.get_variable('foo', ..) which in some
170 cases allows for further cleanups in future since we can
171 extract variables from pkg-config dependencies as well as
172 internal dependencies using this mechanism.
173 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
175 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
178 meson: bump meson requirement to >= 0.59
179 For monorepo build and ugly/bad, for advanced feature
180 option API like get_option('xyz').required(..) which
181 we use in combination with the 'gpl' option.
182 For rest of modules for consistency (people will likely
183 use newer features based on the top-level requirement).
184 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
186 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
189 Docs: Fix a typo for Intel's vaapi driver name.
190 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
192 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
195 doc: update IRC links to OFTC
196 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
198 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
202 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
204 === release 1.19.2 ===
206 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
211 * gstreamer-vaapi.doap:
215 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
217 * gst/vaapi/gstvaapidecode.c:
218 vaapi: decoder: modify the condition to judge whether dma buffer is supported
219 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
220 return false even if this platform support the mem_type dma buffer.
221 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
222 on Gen12(such as TGL).
223 Without this patch, The command such as:
224 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
225 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
226 will return not-negotiated.
227 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
228 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
230 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
232 * gst-libs/gst/vaapi/gstvaapidisplay.c:
233 * gst/vaapi/gstvaapivideocontext.c:
234 Display: Add a property to export the VA display handle.
235 Just like what we do in VA plugins. The display can be seen as a
236 generic gst object and we can add a property to get the internal
238 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
240 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
242 * gst/vaapi/gstvaapivideomemory.c:
243 * gst/vaapi/gstvaapivideomemory.h:
244 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
245 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
246 peek the surface of the VA buffers. The old flag 0 just peek the
247 surface proxy, which may not be convenient for the users who do not
248 want to include our headers.
249 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
251 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
253 * gst/vaapi/gstvaapi.c:
254 * gst/vaapi/gstvaapidecode.c:
255 Revert "vaapi: Demote vaapidecodebin to rank NONE."
256 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
257 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
259 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
261 * gst/vaapi/gstvaapiencode.c:
262 plugins: encode: fix a deadlock because of _drain()
263 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
264 whose context does not hold the stream lock of the encoder. The
265 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
266 lock count to the stream lock of encoder and causes hang later.
267 We just remove the gst_vaapiencode_drain() and expand its logic
268 correctly according to the lock/unlock context.
269 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
271 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
273 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
274 libs: decoder: av1: Clean the film_grain_info field.
275 We need to clean all film_grain_info fields when the film grain
276 feature is not enabled. It may have random data because the picture
277 parameter buffer is not cleaned.
278 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
280 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
282 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
283 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
284 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
285 The MPEG2 spec has amendment 3 to introduce a new level highP, which
286 is used for 1080@50p/60p streams. We need to add this level to avoid
287 encoding failure because of the level check.
289 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
291 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
293 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
294 Decoder: H264: Add the support for frame packing arrangement SEI message.
295 Frame packing arrangement SEI message is an alternative simple stereo 3D
296 manner for AVC. We need to recognize that SEI message and report the correct
298 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
300 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
302 * gst-libs/gst/vaapi/gstvaapifilter.c:
304 Use g_memdup2() where available and add fallback for older GLib versions
305 Alloc size is based on existing allocations and struct sizes.
306 g_memdup() is deprecated since GLib 2.68 and we want to avoid
307 deprecation warnings with recent versions of GLib.
308 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
310 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
315 === release 1.19.1 ===
317 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
322 * gstreamer-vaapi.doap:
326 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
328 * gst/vaapi/gstvaapi.c:
329 * gst/vaapi/gstvaapidecode.c:
330 vaapi: Demote vaapidecodebin to rank NONE.
331 One of the main reasons of vaapidecodebin was because it mitigated the
332 possible surface exhaustion. But that problem is currently
333 solved. Nowadays, vaapidecodebin brings more problems than it
334 solves. Thus this patch demotes vaapidecodebin to NONE rank while
335 bumping PRIMARY + 1 the most common decoders.
336 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
338 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
340 * gst/vaapi/gstvaapi.c:
341 * gst/vaapi/gstvaapioverlay.c:
342 plugins: Demote rank of vaapipostproc and vaapioverlay.
343 Since almost all video filters have rank NONE, these both elements
345 This is useful for autovideoconvert and other bins, and users might
346 force to use these by setting the environment variable
347 GST_PLUGIN_FEATURE_RANK.
348 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
350 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
352 * tests/check/elements/vaapioverlay.c:
353 Use gst_element_request_pad_simple...
354 Instead of the deprecated gst_element_get_request_pad.
355 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
357 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
359 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
360 libs: encoder: VP9: fix > 4k encode fail issue
361 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
362 width of a tile in units of superblocks. So the max width of one tile
363 should not be larger than 64x64=4096. When the width exceeds 4k, we
364 need to split it into multiple tiles in columns. The current vp9 encoder
365 does not handle this correctly.
367 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
368 vaapivp9enc ! fakesink
370 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
372 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
374 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
375 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
376 Otherwise user will be misled that the specified device is using
377 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
378 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
380 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
382 * gst-libs/gst/vaapi/gstvaapiencoder.c:
383 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
384 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
385 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
386 If ROI is enabled, the CUs within the ROI region may have different
387 QP from the other part of the picture. This needs us to enable the
388 cu_qp_delta_enabled_flag even in the CQP mode.
389 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
391 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
393 * gst-libs/gst/vaapi/gstvaapicontext.c:
394 * gst-libs/gst/vaapi/gstvaapicontext.h:
395 * gst-libs/gst/vaapi/gstvaapiencoder.c:
396 * gst-libs/gst/vaapi/gstvaapifilter.c:
397 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
398 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
399 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
400 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
401 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
402 * gst-libs/gst/vaapi/gstvaapivalue.c:
403 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
404 * gst/vaapi/gstvaapipluginbase.c:
405 * gst/vaapi/gstvaapisink.c:
406 * gst/vaapi/gstvaapisink.h:
407 * gst/vaapi/gstvaapivideocontext.c:
408 * gst/vaapi/gstvaapivideomemory.c:
409 * tests/internal/simple-decoder.c:
410 gst: don't use volatile to mean atomic
411 volatile is not sufficient to provide atomic guarantees and real atomics
412 should be used instead. GCC 11 has started warning about using volatile
413 with atomic operations.
414 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
415 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
416 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
418 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
420 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
421 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
422 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
423 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
425 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
427 * gst/vaapi/gstvaapipostproc.c:
428 plugins: postproc: Fix a problem of propose_allocation when passthrough.
429 We should query the downstream element to answer a precise allocation
430 query when the passthrough mode is enabled.
431 The current way still decides the allocation by the postproc itself. The
433 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
434 vaapipostproc ! fakevideosink silent=false sync=true
435 will lose some info such as the GST_VIDEO_META_API_TYPE.
436 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
438 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
440 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
441 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
442 * gst/vaapi/gstvaapivideocontext.c:
443 libs: display: drm: support gst.vaapi.app.Display context for drm backend
444 Attributes for drm backend:
445 - va-display : ponter of VADisplay
446 - drm-device-fd : the DRM device file descriptor
447 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
449 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
452 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
453 libs: display: drm: allow user specify a drm device via an env variable
454 Currently the default drm device is always used on a system with
455 multiple drm devices. This patch allows user to specify the required
456 drm device via GST_VAAPI_DRM_DEVICE env variable
458 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
459 vaapih264enc ! fakesink
460 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
462 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
464 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
465 libs: display: drm: fix set_device_path_from_fd
466 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
467 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
468 so we can't get the right device path. Running test-display will get the
470 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
472 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
473 issue because a special permission is required for SET_VERSION ioctl.
474 This patch retrieves the device path from file descriptor via
476 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
477 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
479 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
481 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
482 glx: Iterate over FBConfig and select 8 bit color size
483 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
484 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
485 over it to find the correct config with supported values.
486 This also adds 8 bit alpha size to the framebuffer configuration which is
487 required to get it working properly.
488 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
490 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
492 * gst-libs/gst/vaapi/gstvaapiutils.c:
493 vaapipostproc: fix code style.
494 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
496 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
498 * gst-libs/gst/vaapi/gstvaapidisplay.c:
499 * gst-libs/gst/vaapi/gstvaapidisplay.h:
500 * gst-libs/gst/vaapi/gstvaapifilter.c:
501 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
502 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
504 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
506 * gst-libs/gst/vaapi/gstvaapiutils.c:
507 vaapipostproc: Added gstreamer BT2020 color standard support.
508 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
510 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
512 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
513 decoder: AV1: Fix a static analysis problem of update_state().
514 No need to check the picture pointer after we have already dereferenced it.
516 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
518 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
520 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
521 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
522 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
523 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
524 The AV1 film_graim feature needs two surfaces the same time for
525 decoding. One is for recon surface which will be used as reference
526 later, and the other one is for display. The GstVaapiPicture should
527 contain the surface for display, while the vaBeginPicture() need
528 the recon surface as the target.
529 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
531 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
533 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
535 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
536 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
537 * gst-libs/gst/vaapi/gstvaapiprofile.c:
538 * gst-libs/gst/vaapi/gstvaapiprofile.h:
539 * gst-libs/gst/vaapi/gstvaapiutils.c:
540 * gst-libs/gst/vaapi/meson.build:
541 * gst/vaapi/gstvaapidecode.c:
543 libs: decoder: AV1: Add the av1 decoder support.
544 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
546 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
548 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
549 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
550 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
551 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
552 libs: codecobject: Add number of elements when create codec object.
553 One slice data may need several slice parameter buffers at one time.
554 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
556 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
558 * gst/vaapi/gstvaapidecodebin.c:
559 * gst/vaapi/gstvaapipluginbase.c:
560 * gst/vaapi/gstvaapivideobufferpool.c:
561 vaapi: use gst_clear_object instead of g_clear_object
562 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
564 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
566 * gst/vaapi/gstvaapiencode.c:
567 plugins: encode: unlock the stream lock before _flush()
568 The current encoder will hang when EOS comes. When we call the
569 gst_vaapi_encoder_encode_and_queue(), we should release the stream
570 lock, just like what we do in gst_vaapiencode_handle_frame().
571 The deadlock happens when: The input thread holding the stream lock
572 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
573 buffer, while the output thread which holding the coded buffer resource
574 is acquiring the stream lock in _push_frame() to push the data to
576 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
578 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
580 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
581 libs: encoder: H264: Fix one assert in get_pending_reordered().
582 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
583 case for HIERARCHICAL_B mode. The pipeline:
584 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
585 keyframe-period=32 ! fakesink
587 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
588 assertion failed: (count != 0)
589 The last few B frames are not fetched in correct order when HIERARCHICAL_B
591 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
592 make the last several frames encoded in reverse order. The NAL of last few
593 frames come in reverse order in the bit stream, though it can still output
595 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
597 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
599 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
600 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
601 libs: encoder: H265: Add screen content coding extensions support.
602 In scc mode, the I frame can ref to itself and it needs the L0 reference
603 list enabled. So we should set the I frame to P_SLICE type. We do not need
604 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
605 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
606 the driver consider the current frame as reference. For bits conformance,
607 the NumRpsCurrTempList0 should be incremented by one to include the current
608 picture as the reference frame. We manually do it when packing the slice header.
610 gst-launch-1.0 videotestsrc num-buffers=10 ! \
611 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
612 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
613 filesink location=out.265
614 Can be used to specify that the encoder should use SCC profiles.
615 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
617 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
619 * gst/vaapi/gstvaapiencode_vp9.c:
620 plugin: encode: vp9: Implement the set_config().
621 We store the allowed profiles list to encoder in set_config().
622 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
624 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
626 * gst/vaapi/gstvaapiencode_vp9.c:
627 plugin: encode: vp9: Add the profile into output caps.
628 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
630 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
632 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
633 libs: encoder: vp9: no need to ensure_hw_profile.
634 Once we decide the profile and can get the valid entrypoint for
635 that profile, hw must already support this profile/entrypoint pair.
636 No need to check it again in set_context_info().
637 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
639 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
641 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
642 libs: encoder: vp9: Improve the manner to decide the profile.
643 We should decide the VP9 encoder's profile based on the chroma and
644 depth of the input format, then make sure it is included in the
646 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
648 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
650 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
651 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
652 libs: util: vpx: add get_chroma_format_idc for VP9
653 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
655 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
657 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
658 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
659 libs: encoder: vp9: Add allowed_profiles.
660 We need the allowed_profiles to store the allowed profiles in down
663 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
665 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
667 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
669 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
671 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
672 libs: decoder: H265: Fix a typo in scc reference setting.
673 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
675 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
677 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
678 * gst-libs/gst/vaapi/gstvaapiprofile.c:
679 * gst-libs/gst/vaapi/gstvaapiprofile.h:
680 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
681 * gst-libs/gst/vaapi/video-format.c:
682 * gst/vaapi/gstvaapidecode.c:
683 libs: decoder: H265: Add MAIN_422_12 profile supporting.
684 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
686 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
688 * gst-libs/gst/vaapi/gstvaapiimage.c:
689 * gst-libs/gst/vaapi/video-format.c:
690 * gst-libs/gst/vaapi/video-format.h:
691 video-format: Add Y212_LE format.
692 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
693 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
695 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
697 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
699 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
700 * gst-libs/gst/vaapi/gstvaapiprofile.c:
701 * gst-libs/gst/vaapi/gstvaapiprofile.h:
702 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
703 * gst-libs/gst/vaapi/video-format.c:
704 * gst/vaapi/gstvaapidecode.c:
705 libs: decoder: H265: Add MAIN_444_12 profile supporting.
706 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
708 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
710 * gst-libs/gst/vaapi/gstvaapiimage.c:
711 * gst-libs/gst/vaapi/video-format.c:
712 * gst-libs/gst/vaapi/video-format.h:
713 video-format: Add Y412_LE format.
714 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
715 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
717 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
719 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
721 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
722 libs: decoder: h265: fill missing predictor_palette_size field.
723 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
724 forgotten and need to be filled when streams have palettes.
725 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
727 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
729 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
730 libs: utils: h265: Use get_profile_from_sps to get profile.
731 We now use gst_h265_get_profile_from_sps() to replace the old way
732 of gst_h265_profile_tier_level_get_profile() to get more precise
733 profile. The new function consider the unstandard cases and give
734 a more suitable profile decision.
735 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
737 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
739 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
740 libs: decoder: vp9: 0xff segment pred probs if no temporal update
741 According to the spec (6.2.11 Segmentation params syntax)
742 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
743 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
745 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
747 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
748 libs: decoder: vp9: avoid reference rewriting
749 The removed code set all the reference frames to the current frame it is a key
750 one, but later, all the reference frames were rewritten with the decoded picture
751 buffers or VA_INVALID_SURFACE if they were not available.
752 Basically, all this time the first reference frame assignment has been ignored,
753 and it's not described by the spec, and this patch removes that code.
754 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
756 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
758 * gst/vaapi/gstvaapidecode.c:
759 decoder: don't reply src caps query with allowed if pad is fixed
760 If the pad is already fixed the caps query have to be reply with the
761 current fixed caps. Otherwise the query has to be replied with the
762 autogeneratd src caps.
763 This path fix this by falling back to the normal caps query processing
764 if the pad is already fixed. Otherwise it will fetch the allowed src
766 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
768 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
770 * gst/vaapi/gstvaapidecode.c:
771 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
772 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
774 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
776 * gst/vaapi/gstvaapisink.c:
777 vaapisink: when updating the caps, reset rotation
778 When an element upstream changes settings (e.g. crop), new caps are sent
779 to vaapisink. When vaapisink was rotating the image, it needs to
780 re-evaluate if the sink needs to rotate the image.
781 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
783 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
786 ci: include template from gst-ci master branch again
788 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
793 === release 1.18.0 ===
795 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
801 * gstreamer-vaapi.doap:
805 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
807 * gst-libs/gst/vaapi/gstvaapifilter.c:
808 Update for gst_video_transfer_function_*() function renaming
809 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
811 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
813 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
814 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
815 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
816 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
817 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
819 === release 1.17.90 ===
821 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
826 * gstreamer-vaapi.doap:
830 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
832 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
833 libs: surface: egl: guard memory type
834 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
836 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
838 * gst/vaapi/gstvaapidecode.c:
839 plugin: decode: Fix two mem leaks because of caps.
840 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
842 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
844 * gst/vaapi/gstvaapivideomemory.c:
845 plugin: allocator: No need to ref allocator when create mem.
846 We do not need to ref the allocator when creating GstVaapiVideoMemory
847 kind memory, and then release it in _free(). The framework already
849 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
851 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
853 * gst/vaapi/gstvaapiencode_h264.c:
854 vaapiencode: h264: ignore level without breaking negotiation
855 Since commit 9f627ef2 if the user sets level in the encoder src caps
856 the caps negotiation is rejected.
857 But since the same commit the same encoder set the autoconfigured
858 level in caps. Some change in the base class might fixed the operation
859 order so now the caps are set and later negotiated.
860 This patch removes the level check.
862 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
864 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
866 * gst-libs/gst/vaapi/egl_vtable.h:
867 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
868 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
869 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
870 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
871 This code path is used when frames are rendered as textures through
872 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
873 Originally the EGLImage was exported as GEM, which was handled by
874 Intel drivers, but Gallium ones cannot create VA surfaces from
875 GEM buffers, only DMABuf.
876 This patch checks the memory types supported by VA driver to choose
877 the render the EGLImages from GEM or DMABuf, because GEM is still
878 better where supported.
879 DMABuf is well handled either by intel-vaapi-driver and gallium.
881 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
883 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
885 * gst-libs/gst/vaapi/gstvaapifilter.c:
886 * gst-libs/gst/vaapi/gstvaapifilter.h:
887 libs: filter: gst_vaapi_filter_get_memory_types()
888 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
890 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
892 * gst/vaapi/gstvaapipluginbase.c:
893 * gst/vaapi/gstvaapipluginbase.h:
894 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
895 Since nobody uses it, just remove it.
896 Thus extract_allowed_surface_formats() is refactored to attend only
897 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
898 Now a surface is created when the image chorma is different from the
899 previous one. And if the driver has the quirk, it outputs all the
900 supported image formats without trying them.
901 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
903 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
905 * gst/vaapi/gstvaapidecode.c:
906 vaapidecode: expose raw src caps with same chroma
907 The try-and-error approach for getting the possible image formats from
908 a surface has brought several problems in different drivers, from
909 crashes to drop in performance.
910 Instead of that we change the algorithm to determine the possible
911 image formats based in the surface chroma: only those available image
912 formats with same chroma are exposed as possible raw caps.
913 Do this is important to avoid performance degrading in raw sinks
914 which doesn't handle NV12 but it does YV12 or I420.
915 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
917 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
919 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
920 libs: util: h265: use common parser API to get vaapi profiles.
921 We can reuse H265 parser's API to recognize the correct profile and
922 then just need to convert them to VAAPI profiles.
923 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
925 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
927 * gst-libs/gst/vaapi/meson.build:
928 * gst/vaapi/meson.build:
930 build: update for gl pkg-config file split
931 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
933 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
935 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
936 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
937 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
938 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
940 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
942 * gst-libs/gst/vaapi/gstvaapiencoder.c:
943 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
944 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
945 libs: encoder: H265: Enable Main 12 profile support.
946 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
948 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
950 * gst-libs/gst/vaapi/video-format.c:
951 video format: Fix P012_LE's chrome type typo.
952 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
954 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
956 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
957 gstvaapiminiobject.c: fix clang 10 warnings
958 the typesystem checks in g_atomic_pointer_compare_and_exchange
959 seem to trigger some false positives with clang 10
960 similar to gstreamer!584
961 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
963 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
965 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
966 libs: window: wayland: destroy all wayland buffers during finalize
967 Some buffers and the associated FrameState state may still be pending at
968 that point. If the wayland connection is shared, then messages for the
969 buffer may still arrive. However, the associated event queue is already
970 deleted. So the result is a crash.
971 With a private connection the associated memory is leaked instead.
972 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
974 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
976 * tests/examples/test-vaapicontext.c:
977 test: vaapicontext: fix draw callback with multiple videos
978 The callback is called for both windows. So make sure that
979 gst_video_overlay_set_render_rectangle() is called for the correct one.
980 Otherwise, the left video will be randomly moved behind the right video.
981 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
983 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
985 * tests/examples/meson.build:
986 * tests/examples/test-vaapicontext.c:
987 test: vaapicontext: support wayland display
988 On Wayland, The whole gtk window is one Wayland surface. So
989 gtk_widget_get_window() must be called on the top-level widget.
990 For any other widget the following gdk_window_ensure_native() may create a
991 new top-level Wayland surface that is never visible.
992 As a result, the coordinates passed to
993 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
994 window. Otherwise the video is placed incorrectly.
995 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
996 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
998 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1000 * tests/examples/test-vaapicontext.c:
1001 test: vaapicontext: use playbin to test files
1002 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1004 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1006 * tests/examples/test-vaapicontext.c:
1007 test: vaapicontext: add PLAY and NULL buttons
1008 They only appear when only one sink is instanciated and their purpose
1009 is to test the NULL-PLAY use case in context sharing.
1010 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1012 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1014 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1015 libs: wayland: update the opaque region in set_render_rect
1016 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
1017 thread. That thread may be responsible for making the window visible.
1018 At that point another thread will block in gst_vaapi_window_wayland_sync()
1019 because the frame callback will not be called until the window is visible.
1020 If that happens, then acquiring the display lock in
1021 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
1022 Cache the size of the opaque rectangle separately and create the opaque
1023 region right before applying it to the surface.
1024 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1026 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
1028 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1029 * gst-libs/gst/vaapi/gstvaapiwindow.h:
1030 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1031 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1032 * gst/vaapi/gstvaapisink.c:
1033 libs: window: implements gst_vaapi_window_set_render_rectangle
1034 Implements new vmethod gst_vaapi_window_set_render_rectangle,
1035 which is doing set the information of the rendered rectangle set by
1037 This is necessary on wayland at least to get exact information of
1039 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
1041 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1043 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
1045 * gst/vaapi/gstvaapisink.c:
1046 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
1047 Implements gst_vaapisink_wayland_create_window_from_handle() to support
1048 using external wl_surface.
1049 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1051 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1053 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1054 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1055 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1056 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1057 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
1058 libs: wayland: implement video overlay API
1059 The Wayland sub-surfaces API is used to embed the video into an application
1061 See Appendix A. Wayland Protocol Specification as the following.
1063 The aim of sub-surfaces is to offload some of the compositing work
1064 within a window from clients to the compositor. A prime example is
1065 a video player with decorations and video in separate wl_surface
1067 This should allow the compositor to pass YUV video buffer processing to
1068 dedicated overlay hardware when possible.
1070 Added new method gst_vaapi_window_wayland_new_with_surface()
1071 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1072 Zhao Halley <halley.zhao@intel.com>
1073 changzhix.wei@intel.com
1074 Hyunjun Ko <zzoon@igalia.com>
1075 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1077 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1079 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1080 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
1081 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1083 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1085 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1086 libs: display: always call close_display()
1087 All close_display() have their own checks for use_foreign_display and only
1088 destroy locally created objects in that case.
1089 Without this objects other than the actuall foreign display itself are
1091 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1093 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
1095 * gst-libs/gst/vaapi/video-format.h:
1096 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
1097 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
1099 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1101 * gst/vaapi/gstvaapidecode.c:
1102 * gst/vaapi/gstvaapipluginutil.c:
1103 * gst/vaapi/gstvaapipluginutil.h:
1104 plugins: add gst_vaapi_caps_set_width_and_height_range()
1105 This utility function is called internally by
1106 gst_vaapi_build_caps_from_formats() and can be used outside.
1107 This function sets frame size and framerates ranges.
1108 Also gst_vaapi_build_caps_from_formats() is simplified.
1109 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
1111 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
1113 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1114 libs: decoder: fix a crash issue when get_surface_formats.
1115 Some context does not report any valid format that we can support.
1116 For example, the HEVC 444 12 bits decoder context, all the formats
1117 it reports is not supported now, which make the formats list a NULL
1118 array. We should check that pointer before we use it.
1119 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
1121 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
1123 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1124 libs: encoder: h265: choose the profile based on allowed list.
1125 We can decide the profile in ensure_profile(), based on allowed list
1126 passed by the encode. We also need to check whether the entrypoint is
1127 available. Once it is decided, no need to check the hw entrypoint
1129 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1131 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
1133 * gst/vaapi/gstvaapiencode_h265.c:
1134 plugins: encode: h265: set all allowed profiles to encoder.
1135 We should collect all allowed profiles and pass them to the inside
1136 encoder, rather than just calculate the max profile idc.
1137 The allowed profiles should also be supported by the HW.
1138 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1140 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
1142 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1143 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1144 libs: display: Add a helper function to get profiles by codec.
1145 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1147 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
1149 * gst/vaapi/gstvaapiencode_h265.c:
1150 plugins: encode: h265: collect all allowed profiles to encoder.
1151 We should collect all allowed profiles and pass them to the inside
1152 encoder, rather than just calculate the max profile idc.
1153 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1155 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1157 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1158 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1159 * gst/vaapi/gstvaapiencode_h265.c:
1160 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1161 In h265, bigger profile idc may not be compatible with the small profile
1162 idc. And more important, there are multi profiles with the same profile
1163 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1165 So recording the max profile idc is not enough, the encoder needs to know
1166 all allowed profiles when deciding the real profile.
1167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1169 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1171 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1172 libs: encoder: h265: No need to check hw_max_profile.
1173 In h265, higher profile idc number does not mean better compression
1174 performance and may be not compatible with the lower profile idc.
1175 So, it is not suitable to find the heighest idc for hw to ensure the
1177 On the other side, when the entrypoint of the selected profile is valid,
1178 it means the hw really support this profile, no need to check it again.
1179 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1181 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1183 * gst/vaapi/gstvaapipostproc.c:
1184 vaapipostproc: early return if fixate srcpad caps fails
1185 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1187 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1189 * gst/vaapi/gstvaapipluginutil.c:
1190 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1191 Generalize the way how the preferred color format is chosen. Also
1192 use new GStreamre API as syntatic sugar.
1193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1195 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1197 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1198 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1199 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1200 * gst/vaapi/gstvaapidecode.c:
1201 * gst/vaapi/gstvaapiencode.c:
1202 libs: profile: Use get_codec_from_caps to get codec type.
1203 There is no need to get a profile from the caps and then convert
1204 that profile into codec type. We can get the codec type by caps's
1206 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1208 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1210 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1211 libs: profile: h265: Fix return value of from_codec_data_h265.
1212 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1213 The codec data of caps contain the profile IDC, but the mapping between
1214 profile IDC and GstVaapiProfile is wrong.
1215 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1217 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1219 * gst/vaapi/gstvaapiencode_vp9.c:
1220 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1221 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1223 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1225 * gst/vaapi/gstvaapiencode_h264.c:
1226 * gst/vaapi/gstvaapiencode_h265.c:
1227 * gst/vaapi/gstvaapipluginutil.c:
1228 * gst/vaapi/gstvaapipluginutil.h:
1229 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1230 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1231 as VP9 also needs to use this function.
1232 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1234 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1236 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1237 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1238 * gst-libs/gst/vaapi/meson.build:
1239 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1240 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1242 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1244 * gst-libs/gst/vaapi/gstvaapicontext.c:
1245 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1246 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1247 libs: display, context: handle broken jpeg decoder for i965 driver
1248 JPEG decoding in i965 driver is pretty much broken, and the driver is
1249 deprecated which mean authors only accept trivial fixes.
1250 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1251 format which is not a common format in GStreamer. It can export it to
1252 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1253 This patch artificially adds NV12 to the context format list when it's
1254 JPEG decoder for i965 and force the usage of old VA-API for surface
1255 creation without specifying color format. Also it artificially
1256 disables the DMABuf announcement.
1257 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1258 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1260 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1262 * gst-libs/gst/vaapi/gstvaapicontext.c:
1263 libs: context: change function to internal code style
1264 Instead of a getter the function `get_preferred_format()` to
1265 `ensure_preferred_format()` which aligns to the code style.
1266 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1268 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1270 * gst/vaapi/gstvaapidecode.c:
1271 vaapidecode: always merge profile caps in sink caps
1272 This commit fixes a regression of e962069d, where if the profile's
1273 caps doesn't have a caps profile, it's ignored.
1274 This patch add a conditional jump if the caps doesn't have a profile
1277 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1279 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1282 build: request libdrm >= 2.4.98 and fallback
1284 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1286 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1288 * gst/vaapi/gstvaapidecode.c:
1289 vaapidecode: dma caps only use reported color format
1290 This fix pipelines without vaapipostproc after vaapi decoder, such as
1291 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1292 On EGL platforms, so DMABuf is used.
1293 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1295 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1297 * gst/vaapi/gstvaapidecode.c:
1298 vaapidecode: use allowed srcpad caps for caps query
1299 Instead of using just the template caps use the current allowed
1300 srcpad caps, which is created considering the current decoder
1302 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1304 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1306 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1307 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1308 * gst/vaapi/gstvaapidecode.c:
1309 vaapidecode: build allowed srcpad caps from va context
1310 Instead of generating allowed srcpad caps with generic information,
1311 now it takes the size an formats limits from the decoder's context.
1312 This is possible since srcpad caps are generated after the internal
1314 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1315 gst_vaapi_decoder_get_suface_attributes().
1316 From these attributes, formats are only used for VASurface memory
1317 caps feature. For system memory caps feature, the old
1318 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1319 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1320 And for the other caps features (dmabuf and texture upload) the
1321 same static list are used.
1322 This patch also adds DMABuf caps feature only if the context
1323 supports that memory type. Nonetheless, we keep the pre-defined
1324 formats since they are the subset of common derive formats formats
1325 supported either by amd/gallium and both intel drivers, since,
1326 when exporting the fd through vaAcquireBufferHandle()/
1327 vaReleaseBufferHandle(), the formats of the derivable image cannot
1328 be retriebable from the driver. Later we'll use the attribute
1329 formats for the DMABuf feature too, when the code be ported to
1330 vaExportSurfaceHandle().
1331 Finally, the allowed srcpad caps are removed if the internal decoder
1332 is destroyed, since context attribues will change.
1333 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1335 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1337 * gst/vaapi/gstvaapidecode.c:
1338 vaapidecode: reorder src caps template
1339 Since negotiation depends on caps order, first is VA, then DMABuf,
1340 later GLUploadTexture (deprecated) and finally raw.
1341 Also, for decoders, the possible available color formats for DMABuf
1342 is extended to all the possible VA color formats.
1343 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1345 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1347 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1348 libs: window: wayland: use dmabuf protocol if available
1349 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1350 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1351 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1352 compatible with a Wayland server that uses the iris Mesa driver.
1353 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1354 protocol. Formats and modifiers supported by the Wayland server are taken
1355 into account. If necessary, VPP is enabled to convert the buffer into a
1357 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1359 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1361 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1363 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1364 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1365 libs: window: allow choosing the format for the vpp pool
1366 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1367 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1369 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1371 * gst-libs/gst/vaapi/video-format.c:
1372 * gst-libs/gst/vaapi/video-format.h:
1373 video-format: add DRM formats to the mapping table
1374 This will be needed for the DMABuf protocol support to map DRM formats to
1375 vaapi and gstreamer formats.
1376 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1378 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1380 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1381 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1382 * gst-libs/gst/vaapi/meson.build:
1383 libs: display: wayland: add basic dmabuf protocol support
1384 This is just the basic infrastructure. Hook up the interface and collect
1385 all supported formats.
1386 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1388 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1390 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1391 libs: window: wayland: wait for configure before committing the first buffer
1392 Committing the first buffer for a surface must not be done before
1393 ack_configure() has been sent for the xdg_surface.
1394 With weston, the commit will fail with "error 3: xdg_surface has never been
1396 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1398 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1400 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1402 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1403 libs: encoder: h265: set no P frame automatically.
1404 The double reference lists may be required by drivers and there should
1405 be no P frames in the of stream. The old way of converting P frames to
1406 B frames is by setting `low-delay-b` property, which is unconvenient
1407 and has bad user experience, since most of the users do not know when
1408 to set this property, and if it is not set correctly, the encoding
1409 pipeline fails or even hangs on some platforms. VA driver now provides
1410 a attribute to query whether both reference lists must be un-NULL for
1411 a profile/entrypoint pair.
1412 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1414 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1416 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1417 libs: encoder: h265: Deprecate the low-delay-b property.
1418 In HEVC, P and B definitions are different from AVC: P frames have
1419 just one reference list and so 1 MV, while B frames have two reference
1420 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1421 forward/backward reference. So P and B can both have bi-directions
1422 dependency, the difference is just their reference list
1423 number (i.e. MV number). This is different from the AVC.
1424 The *low delay b mode* refers to a special HEVC mode, in which the
1425 stream just contain I and B frames, without P frames, and all B frames
1426 only have forward direction dependencies (i.e. all inter frames have 2
1427 reference lists but no backward reference in both lists). This is
1428 similar to AVC I/P mode, but changing the P to the forward dependent
1430 The `low-delay-b` property is now just used to simply convert all P
1431 frames to B frames when driver does not support P frames (so both
1432 reference lists have the same references frames). This is a little
1433 different from the meaning of low delay b mode (the two ref lists may
1434 have the different reference frames). And the driver now can report
1435 whether it supports P frames correctly, so there is no need to use
1436 this property and deprecate it.
1437 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1439 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1441 * gst/vaapi/gstvaapipostproc.c:
1442 postproc: reconfigure after changing cropping values
1443 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1445 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1447 * gst/vaapi/gstvaapiencode.h:
1448 * gst/vaapi/gstvaapiencode_h264.c:
1449 * gst/vaapi/gstvaapiencode_h265.c:
1450 * gst/vaapi/gstvaapiencode_jpeg.c:
1451 * gst/vaapi/gstvaapiencode_mpeg2.c:
1452 * gst/vaapi/gstvaapiencode_vp8.c:
1453 * gst/vaapi/gstvaapiencode_vp9.c:
1454 plugin: encode: Add static caps for template documentation.
1455 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1457 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1459 * gst/vaapi/gstvaapiencode_vp9.c:
1460 plugin: encode: vp9: Use the dynamically built src template caps.
1461 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1463 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1465 * gst/vaapi/gstvaapiencode_vp8.c:
1466 plugin: encode: vp8: Use the dynamically built src template caps.
1467 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1469 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1471 * gst/vaapi/gstvaapiencode_jpeg.c:
1472 plugin: encode: jpeg: Use the dynamically built src template caps.
1473 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1475 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1477 * gst/vaapi/gstvaapiencode_mpeg2.c:
1478 plugin: encode: mpeg2: Use the dynamically built src template caps.
1479 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1481 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1483 * gst/vaapi/gstvaapiencode_h265.c:
1484 plugin: encode: h265: Use the dynamically built src template caps.
1485 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1487 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1489 * gst/vaapi/gstvaapiencode_h264.c:
1490 plugin: encode: h264: Use the dynamically built src template caps.
1491 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1493 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1495 * gst/vaapi/gstvaapiencode.h:
1496 * gst/vaapi/gstvaapiencode_h264.c:
1497 * gst/vaapi/gstvaapiencode_h265.c:
1498 * gst/vaapi/gstvaapiencode_jpeg.c:
1499 * gst/vaapi/gstvaapiencode_mpeg2.c:
1500 * gst/vaapi/gstvaapiencode_vp8.c:
1501 * gst/vaapi/gstvaapiencode_vp9.c:
1502 plugin: encode: Store the coded caps in type's init data.
1503 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1505 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1507 * gst/vaapi/gstvaapipluginutil.c:
1508 * gst/vaapi/gstvaapipluginutil.h:
1509 plugin: util: add helper function build_template_coded_caps_by_codec()
1510 Like build_template_raw_caps_by_codec(), this function can detect and
1511 build the caps for specified codec based on the query of the profiles.
1512 The result is coded caps such as video/x-h265, video/x-h264. The result
1513 can be used as the template of encode's src or decode's sink.
1514 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1516 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1518 * gst/vaapi/gstvaapiencode.h:
1519 * gst/vaapi/gstvaapipluginutil.c:
1520 * gst/vaapi/gstvaapipluginutil.h:
1521 plugins: utils: rename build_template_caps_by_codec.
1522 Rename the function build_template_caps_by_codec() to the name of
1523 build_template_raw_caps_by_codec(). It can be used to collect all
1524 raw video formats for encode's sink and decode's src.
1525 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1527 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1529 * gst/vaapi/gstvaapidecode.c:
1530 * gst/vaapi/gstvaapipluginutil.c:
1531 * gst/vaapi/gstvaapipluginutil.h:
1532 vaapidecode: merge common profiles before setting size range
1533 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1534 added at the end of processing all available VA profiles. This
1535 generated an non-optimal caps for negotiation, since the synthetic
1536 profiles don't have frame size ranges.
1537 This patch adds those possible synthetic profiles when the associated
1538 profile is processed, with its frame size ranges.
1539 Now allowed sink caps are simpler.
1540 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1542 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1544 * gst/vaapi/gstvaapipluginutil.c:
1545 plugin: util: Add the missing DMA buffer input in template caps.
1546 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1547 and lose the DMA feature in caps.
1548 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1550 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1552 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1553 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1554 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1555 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1556 * gst-libs/gst/vaapi/video-format.c:
1557 * gst/vaapi/gstvaapidecode.c:
1558 libs: decoder: H265: Add MAIN_12 profile supporting.
1559 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1561 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1563 * gst-libs/gst/vaapi/gstvaapiimage.c:
1564 * gst-libs/gst/vaapi/video-format.c:
1565 video-format: Add P012_LE format.
1566 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1567 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1569 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1571 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1573 * gst/vaapi/gstvaapidecode.c:
1574 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1575 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1576 contains all profiles of the whole VAAPI, like:
1577 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1578 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1579 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1580 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1581 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1582 constrained-high, progressive-high, baseline }; video/x-h265,
1583 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1584 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1585 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1586 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1587 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1588 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1589 height=(int)[ 0, 3840 ]
1590 Which is verbose and may have latent problems. It should only contains
1591 the profiles belong to its codec type. For example, h265 should only
1593 video/x-h265, profile=(string){ main, main-intra },
1594 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1595 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1597 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1599 * gst/vaapi/gstvaapidecodebin.c:
1600 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1601 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1603 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1605 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1606 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1607 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1609 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1611 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1612 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1613 * gst/vaapi/gstvaapidecode.c:
1614 * gst/vaapi/gstvaapidecode.h:
1615 * tests/internal/simple-decoder.c:
1616 vaapidecode: Remove NO_SURFACE error handling
1617 Since surfaces are not bounded to decoding context it makes no sense
1618 to keep the surface semaphore. This patch removes the handling of
1620 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1622 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1624 * gst/vaapi/gstvaapidecode.c:
1625 * gst/vaapi/gstvaapidecode.h:
1626 Revert "vaapidecode: drop non-keyframe in reverse playback"
1627 Since the number of surfaces are not bounded to decoder context,
1628 this hack is no longer needed.
1629 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1630 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1632 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1634 * gst-libs/gst/vaapi/gstvaapicontext.c:
1635 libs: decoder: context: remove surfaces binding from context.
1636 The vaCreateContext do not need to specify the surfaces for the
1637 context creation now. So we do not need to bind any surface to the
1638 context anymore. Surfaces should be the resource belong to display
1639 and just be used in encoder/decoder context.
1640 The previous manner has big limitation for decoder. The context's
1641 surface number is decided by dpb size. All the surfaces in dpb will
1642 be attached to a gstbuffer and be pushed to down stream, and the
1643 decoder need to wait down stream free the surface and go on if not
1644 enough surface available. For more and more use cases, this causes
1645 deadlock. For example,
1646 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1647 ! x264enc ! filesink location=./output.h264
1648 will cause deadlock and make the whole pipeline hang.
1649 the x264enc encoder need to cache more than dpb size surfaces.
1650 The best solution is seperating the surfaces number and the dpb size.
1651 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1652 And let the surfaces_pool in context maintain the re-use of all surfaces.
1653 For encoder, the situation is better, all the surfaces are just used
1654 as reference frame and no need to be pushed to down stream. We can
1655 just reserve and set the capacity of the surfaces_pool to meet the
1659 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1660 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1662 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1665 * scripts/extract-release-date-from-doap-file.py:
1666 meson: set release date from .doap file for releases
1667 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1669 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1671 * gst/vaapi/gstvaapipluginbase.c:
1672 plugins: use VA allocator by default on raw caps
1673 Instead of using dmabuf allocator in source pad, when raw video caps
1674 are negotiated, it uses VA allocator as before, since it is stable
1675 in more use cases, for example transcoding, and more backend drivers.
1676 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1677 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1679 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1681 * gst/vaapi/gstvaapi.c:
1682 vaapisink: rank it as secondary
1683 iHD doesn't provide a full implemention for rendering surfaces and
1684 i965 has problems in wayland. And I suspect this path is followed
1685 by other driver implementations.
1686 This patch demotes the rank of vaapisink to secondary, so it will
1687 not be autoplugged avoiding bad experience of users.
1688 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1690 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1692 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1693 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1694 libs: decoder: h264, h265: in context at least 16 reference surfaces
1695 Registering only stream's DBP size number of surfaces for decoding VA
1696 surfaces brings issues for certain streams. This change register all
1697 possible number of reference surfaces in a stream, which is 16.
1700 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1702 * gst/vaapi/gstvaapiencode_h265.c:
1703 plugins: encode: h265: Add profile,level,tier to output caps.
1704 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1706 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1708 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1709 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1710 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1712 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1714 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1715 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1716 0 is a valid value for h265 tier.
1717 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1719 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1721 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1722 libs: encoder: h265: no need to check the high compression tune.
1723 The h265 encoder just support tune mode:
1725 (3): low-power - Low power mode
1726 So, no need to check and set the high compression parameters.
1727 And by the way, the current ensure_tuning_high_compression manner
1728 of choosing the hightest profile idc as the best compression profile
1729 is not correct. Unlike h264, in h265 the higher profile idc number
1730 does not mean it has more compression tools, and so it has better
1731 compression performance. It may even be un-compatible with the lower
1732 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1733 9 is not compatible with 3D_MAIN profile with idc 8.
1734 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1736 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1741 === release 1.17.2 ===
1743 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
1748 * gstreamer-vaapi.doap:
1752 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
1754 * docs/gst_plugins_cache.json:
1755 * gst/vaapi/gstvaapiencode.c:
1756 docs: Mark parent classes as plugin API
1758 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1761 meson: mark plugins cache target as always stale
1763 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
1765 * docs/gst_plugins_cache.json:
1766 doc: Stop documenting properties from parents
1768 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
1773 === release 1.17.1 ===
1775 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
1780 * gstreamer-vaapi.doap:
1784 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
1786 * docs/gst_plugins_cache.json:
1787 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1788 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1789 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1790 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1791 Update plugin docs and add more plugins
1792 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1794 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1796 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1797 libs: wayland: display: only handle the first output
1798 Right now, all outputs are handled. The means that the registry object for
1799 all but the last are leaked. As a result the sizes are not used correctly.
1800 With two outputs, at first the mode and physical size of the second output
1801 are used. If the first output changes the mode, then the physical size of
1802 the second output is used in combination with the resolution of the first
1803 output. The resulting pixel aspect ratio is incorrect.
1804 There seems to be no way to determine on which output the window is shown,
1805 so just use the first one to get consistent results.
1806 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1808 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
1810 * gst/vaapi/gstvaapipluginbase.c:
1811 plugins: pluginbase: Do not destroy display when _close()
1812 When the element's state changes to NULL, it can still receive
1813 queries, such as the image formats. The display is needed in such
1814 queries but not well protected for MT safe.
1815 For example, ensure_allowed_raw_caps() may still use the display
1816 while it is disposed by gst_vaapi_plugin_base_close() because of
1818 We can keep the display until the element is destroyed. When the
1819 state changes to NULL, and then changes to PAUSED again, the display
1820 can be correctly set(if type changes), or leave untouched.
1822 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1824 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1826 * gst-libs/gst/vaapi/gstvaapicontext.c:
1827 libs: context: use correct printing modifier
1828 GstVaapiID is an alias of gsize, thus its modifier is platform
1830 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1832 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1834 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1835 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1836 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1837 * gst-libs/gst/vaapi/gstvaapifilter.c:
1838 * gst-libs/gst/vaapi/gstvaapivalue.c:
1839 plugins: uddate gst_type_mark_as_plugin_api() calls
1841 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
1843 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1844 libs: encoder: h265: Enable tile in VA command.
1845 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1847 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
1849 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1850 libs: encoder: h265: Add ensure_tile to calculate tiles.
1851 We need consider tiles and slices together, separate tiles uniformly
1852 and then assign slices uniformly to each tiles.
1853 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1855 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
1857 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1858 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1859 libs: display: add a quirk for iHD driver tile encoding.
1860 The iHD driver has a requirement that one slice can not span tiles
1861 when tile is enabled, which is not required by hevc spec.
1862 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1864 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
1866 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1867 libs: encoder: h265: Add tile info to bitstream.
1868 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1870 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
1872 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1873 libs: encoder: h265: promote level if tile is enabled.
1874 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1876 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
1878 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1879 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1880 libs: encoder: h265: Add num-tile-cols/rows properties.
1881 These properties are used for support of tile encoding. We just
1882 support uniform mode of tile encoding, that is, separating picture
1883 equally by (num-tile-cols X num-tile-rows).
1884 According to HEVC spec A1, the max number of tiles in column is 20
1885 and in rows is 22, so add two constant definitions.
1886 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1888 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
1890 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1891 libs: encoder: h265: extract slice creation from add_slice_headers
1892 extract slice creation details from add_slice_headers, and let the
1893 add_slice_headers just focuses on calculating slice start address
1895 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1897 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
1899 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1900 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1901 libs: encoder: Add a helper function to check the tile support.
1902 Encoding by tiles separation now is a very common feature for all
1903 relative new codecs, such as HEVC, AV1, and VP9. Just make this
1904 check as a common helper function of the encoder base class.
1905 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1907 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
1909 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1910 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1911 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1912 * gst-libs/gst/vaapi/gstvaapiutils.c:
1913 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1914 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1915 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1917 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
1919 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1920 libs: decoder: update reference list for SCC.
1921 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1923 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
1925 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1926 libs: decoder: H265: Fill picture and slice SCC parameters.
1927 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1929 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
1931 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1932 libs: util: H265: recognize the SCC profiles.
1933 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1935 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
1937 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1938 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1939 * gst-libs/gst/vaapi/gstvaapiutils.c:
1940 libs: profile: Add screen extended main/main10/main444 define.
1941 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1943 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
1945 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1946 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1947 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1948 * gst/vaapi/gstvaapiencode_h265.c:
1949 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1950 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1951 streams and using Y210 as the input of the encoder can generate main
1952 4:2:2 10 bit streams.
1953 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1955 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
1957 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1958 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1959 We need to use the chroma_format_idc as the index for getting the
1960 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1961 The wrong SubWidthC or SubHeightC make us calculate a wrong right
1962 or bottom offset for crop size and generate garbage in output.
1963 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1965 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
1967 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1968 libs: encoder: h265: Fix chrome idc for 444 10 bits
1969 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1970 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1971 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1973 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
1976 doc: Require hotdoc >= 0.11.0
1978 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
1980 * gst/vaapi/gstvaapipostproc.c:
1981 doc: Fix wrong link to GstVideoDirectionMethod
1983 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
1985 * docs/gst_plugins_cache.json:
1986 * meson_options.txt:
1987 docs: Update plugin cache with the new format
1988 And fix the default URL which should not be inside quotes.
1990 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
1992 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1993 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1994 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1995 * gst-libs/gst/vaapi/gstvaapifilter.c:
1996 * gst-libs/gst/vaapi/gstvaapivalue.c:
1997 * gst/vaapi/gstvaapipostproc.c:
1998 Use gst_type_mark_as_plugin_api() for all non-element plugin types
2000 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
2002 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2003 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2004 * gst-libs/gst/vaapi/gstvaapicontext.h:
2005 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2006 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2007 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
2008 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
2009 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
2010 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2011 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
2012 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
2013 * gst-libs/gst/vaapi/gstvaapiimage.h:
2014 * gst-libs/gst/vaapi/gstvaapiobject.c:
2015 * gst-libs/gst/vaapi/gstvaapiobject.h:
2016 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
2017 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2018 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2019 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2020 * gst-libs/gst/vaapi/gstvaapisurface.h:
2021 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
2022 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2023 * gst-libs/gst/vaapi/meson.build:
2024 libs: delete all gstvaapiobject related files.
2025 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2027 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
2029 * gst-libs/gst/vaapi/gstvaapisurface.c:
2030 libs: surface: return fail immediately if can not create subpicture
2031 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2033 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
2035 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2036 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2037 * gst-libs/gst/vaapi/gstvaapisurface.c:
2038 * tests/internal/image.c:
2039 libs: subpicture: Make subpicture a standard GstMiniObject.
2040 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2042 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
2044 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2045 libs: decoder: h264: Add ref flags for splited field.
2046 When split one frame into fields, the second field should also
2047 copy the reference flags.
2048 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
2050 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2052 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2053 libs: decoder: h264: disallow multiple slice group
2054 As far as we know there are no VAAPI drivers supporting FMO, which
2055 migth be used in baseline streams.
2056 This commit is a continuation of
2057 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
2058 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
2060 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2062 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2063 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2064 * gst/vaapi/gstvaapidecode.c:
2065 * gst/vaapi/gstvaapidecode_props.c:
2066 * gst/vaapi/gstvaapidecode_props.h:
2067 vaapidecoder: h264: remove baseline as constrained property
2068 From now on always the baseline is going to be treated as constrained without
2069 need of setting a property.
2070 Since the property was added along the development cycle (1.17 / commit
2071 866a9f06) and never released, we assume that it is safe to remove it.
2073 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
2075 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2078 README: update VP9 decoder and encoder
2079 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
2081 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
2083 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2084 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
2085 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
2086 so let's align this plugin with other libraries / softwares.
2087 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
2089 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2091 * gst/vaapi/gstvaapivideobufferpool.c:
2092 vaapivideobufferpool: fix meta overwrite
2093 commit 7ac2a207 added a regression by erroneously assumed that
2094 GstVaapiVideoMeta is actually a GstMeta, which is not.
2095 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
2097 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2099 * gst/vaapi/gstvaapivideobufferpool.c:
2100 * gst/vaapi/gstvaapivideometa_texture.c:
2101 * gst/vaapi/gstvaapivideometa_texture.h:
2102 vaapivideopool: Set pooled flag to added metas.
2103 So this could hint filters how to use these metas.
2104 Had to change the return value for texutre upload meta in order
2106 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
2108 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2110 * gst-libs/gst/vaapi/gstvaapicontext.c:
2111 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2112 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2113 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
2114 * gst-libs/gst/vaapi/gstvaapisurface.c:
2115 libs: use array_unref() rather than array_free()
2116 It is more convinience and thread-safe.
2117 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
2119 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
2121 * gst/vaapi/gstvaapi.c:
2122 plugin: use register_type to replace get_type for encode init.
2123 xxx_register_type will detect the template sink caps and is needed
2124 to be called at init time.
2125 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2127 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
2129 * gst/vaapi/gstvaapiencode_vp9.c:
2130 * gst/vaapi/gstvaapiencode_vp9.h:
2131 plugins: encode: Modify sink template of vp9 encode.
2132 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2133 Also implement gst_vaapiencode_vp9_register_type, which should be
2134 called at plugin register time.
2135 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2137 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
2139 * gst/vaapi/gstvaapiencode_vp8.c:
2140 * gst/vaapi/gstvaapiencode_vp8.h:
2141 plugins: encode: Modify sink template of vp8 encode.
2142 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2143 Also implement gst_vaapiencode_vp8_register_type, which should be
2144 called at plugin register time.
2145 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2147 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
2149 * gst/vaapi/gstvaapiencode_mpeg2.c:
2150 * gst/vaapi/gstvaapiencode_mpeg2.h:
2151 plugins: encode: Modify sink template of mpeg2 encode.
2152 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2153 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2154 called at plugin register time.
2155 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2157 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2159 * gst/vaapi/gstvaapiencode_h265.c:
2160 * gst/vaapi/gstvaapiencode_h265.h:
2161 plugins: encode: Modify sink template of h265 encode.
2162 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2163 Also implement gst_vaapiencode_h265_register_type, which should be
2164 called at plugin register time.
2165 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2167 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2169 * gst/vaapi/gstvaapiencode_h264.c:
2170 * gst/vaapi/gstvaapiencode_h264.h:
2171 plugins: encode: Modify sink template of h264 encode.
2172 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2173 Also implement gst_vaapiencode_h264_register_type, which should be
2174 called at plugin register time.
2175 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2177 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2179 * gst/vaapi/gstvaapiencode_jpeg.c:
2180 * gst/vaapi/gstvaapiencode_jpeg.h:
2181 plugins: encode: Modify sink template of jpeg encode.
2182 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2183 Also implement gst_vaapiencode_jpeg_register_type, which should be
2184 called at plugin register time.
2185 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2187 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2189 * gst/vaapi/gstvaapiencode.h:
2190 plugin: encode: add a helper macro to register encode type.
2191 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2193 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2195 * gst/vaapi/gstvaapipluginutil.c:
2196 * gst/vaapi/gstvaapipluginutil.h:
2197 plugins: util: Add a helper function to detect supported caps.
2198 This helper function iterate all profiles and entrypoints belong
2199 to the specified codec, query the VAConfigAttribRTFormat and list
2200 all possible video formats.
2201 This function is used by each codec to get the template sink caps
2202 (for encode) or src caps(for decode) at register time, when just
2203 all possible formats are listed and no need to be very accurate.
2204 So there is no context created for the performance reason. Most
2205 codecs just use YUV kinds of formats as the input/output, so we do
2206 not include RGB kinds of formats. User can specified more formats
2207 in extra_fmts(For example, jpeg may need BGRA) if needed.
2208 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2210 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2212 * gst/vaapi/gstvaapiencode.c:
2213 * gst/vaapi/gstvaapipluginutil.c:
2214 * gst/vaapi/gstvaapipluginutil.h:
2215 plugin: encode: extract the allowed caps maker as a helper function.
2216 Extract all logic about making caps for encode's sink as a standalone
2217 helper function. It can be reused.
2218 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2220 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2222 * gst-libs/gst/vaapi/video-format.c:
2223 * gst-libs/gst/vaapi/video-format.h:
2224 libs: video-format: add a helper function of get_formats_by_chroma.
2225 The function iterates all supported video formats and returns the
2226 formats belong to the specified chroma type.
2227 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2229 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2231 * gst-libs/gst/vaapi/gstvaapitexture.c:
2232 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2233 libs: texture: remove unused headers include
2234 This is continuation of
2235 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2236 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2238 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2240 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2241 * gst-libs/gst/vaapi/gstvaapiimage.h:
2242 * gst-libs/gst/vaapi/gstvaapisurface.h:
2243 libs: removed duplicated function declarations
2244 Some headers had duplicated inlined function declaration. This was
2245 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2246 documentation is not generated. So let's remove these extra lines.
2247 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2249 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2251 * gst-libs/gst/vaapi/gstvaapitexture.c:
2252 * gst-libs/gst/vaapi/gstvaapitexture.h:
2253 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2254 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2255 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2256 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2257 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2258 * gst/vaapi/gstvaapivideometa_texture.c:
2259 * tests/internal/test-textures.c:
2260 libs: texture: Make texture a standard GstMiniObject.
2261 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2262 the qdata of miniobject and avoid extending the base texture class.
2263 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2265 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2269 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2271 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2273 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2274 libs: display: drm: use g_strcmp0 to be null safe
2275 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2277 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2279 * gst/vaapi/gstvaapipluginutil.c:
2280 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2281 We may build this plugin with window system support but run it without
2282 window system. Without this patch, the following pipeline will trigger a
2283 segfault when running it without window system.
2284 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2285 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2287 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2290 build: use join_paths() for driverdir
2292 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2295 README: Update supported hardware
2296 Added the AMD hardware list to the "Hardware Requirements" section.
2298 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2300 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2301 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2302 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2303 libs: bufferproxy: remove GstMemory reference
2304 Since bufferproxy and surface are not referenced circularly, there's
2305 no need to keep, in the buffer proxy, a reference to the GstMemory
2306 where it is held. This patch removes that handling.
2308 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2310 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2311 * gst-libs/gst/vaapi/gstvaapisurface.c:
2312 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2313 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2314 * gst/vaapi/gstvaapivideomemory.c:
2315 libs,plugin: break surface-bufferproxy circular reference
2316 The bufferproxy may reference the surface and the surface may also
2317 reference the bufferproxy, producing a circular reference, which might
2318 lead to serious resource leak problems.
2319 Now make the relationship clearer, the bufferproxy's references is
2320 transfered to surface, while bufferproxy just keeps the surface's
2321 address without increasing its reference count.
2322 The surface can be created through a bufferproxy like in
2323 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2324 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2325 both cases the surface holds a bufferproxy's reference.
2327 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2329 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2330 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2331 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2332 libs: bufferproxy: rename parent memeber as surface
2334 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2336 * gst/vaapi/gstvaapivideobufferpool.c:
2337 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2338 The old way of refer memory by bufferproxy is not a good one, since it
2339 make the logic error prone.
2340 Now it is established a map between surface-bufferproxy and its GstMemory,
2341 caching the memory bound by a surface looked for the specified surface.
2343 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2345 * gst/vaapi/gstvaapivideobufferpool.c:
2346 * gst/vaapi/gstvaapivideobufferpool.h:
2347 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2348 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2349 In fact, no one is using that flag, and all vaapi buffers should
2350 have GstVaapiVideoMeta.
2352 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2354 * gst/vaapi/gstvaapipostproc.c:
2355 * gst/vaapi/gstvaapipostproc.h:
2356 vaapipostproc: enable HDR10 tone mapping
2358 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2360 * gst-libs/gst/vaapi/gstvaapifilter.c:
2361 * gst-libs/gst/vaapi/gstvaapifilter.h:
2362 libs: filter: HDR10 tone mapping support
2363 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2365 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2367 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2368 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2369 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2370 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2371 * gst/vaapi/gstvaapiencode_h265.c:
2372 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2373 Using Y410 as the input of the encoder can generate main_444_10 bit
2376 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2378 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2379 libs: encoder: fix an inexact trace info in chroma type check.
2381 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2383 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2384 libs: encoder: make sure format array is not NULL when returning TRUE
2385 This fixed segfault when running the pipeline below with iHD driver
2386 (commit efe5e9a) on ICL
2387 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2390 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2392 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2393 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2394 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2395 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2396 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2397 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2398 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2399 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2400 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2401 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2402 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2403 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2404 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2405 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2406 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2407 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2408 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2409 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2410 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2411 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2412 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2413 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2414 * gst-libs/gst/vaapi/gstvaapifilter.h:
2415 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2416 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2417 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2418 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2419 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2420 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2421 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2422 libs: extend g_autoptr support
2424 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2426 * gst/vaapi/gstvaapivideometa.c:
2427 vaapivideometa: remove compiler warning
2429 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2432 * meson_options.txt:
2433 build: Add meson's option package-origin.
2434 This options is added to synchronize with other gstreamer packages
2435 build configuration.
2436 Though, to avoid breaking distro configuration it is set, as default,
2437 the issues gitlab's url, instead of the used string
2438 "Unkown package origin".
2439 Also, set_quoted is used for string based cdata.
2441 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2443 * gst/vaapi/gstvaapipostproc.c:
2444 vaapipostproc: deprecate format, width and size parameters
2445 Since they should only be controlled by caps negotiation.
2447 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2449 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2450 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2451 * gst/vaapi/gstvaapidecode.c:
2452 libs,plugins: decoder: Add -intra profile support for hevc.
2453 In hevc, we can consider the -intra profile a subset of the none
2454 -intra profile. The -intra profiles just contain I frames and we
2455 definitely can use the none -intra profiles's context to decode
2457 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2459 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2461 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2462 libs: encoder: h265: support ICQ/QVBR BRC
2463 Enable support for ICQ and QVBR bitrate control.
2464 The code is essentially the same for h264 ICQ/QVBR support
2465 which was added in commit 9e0c133a2403.
2467 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2469 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2470 libs: encoder: set VA HRD param before RC param
2471 This is a workaround for intel-media-driver bug
2472 https://github.com/intel/media-driver/issues/865
2473 The driver will force the RC method to CBR for HEVCe
2474 when it parses the HRD param. Thus, any RC method
2475 param submitted "prior" to the HRD param will be lost.
2476 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2477 effectively enabled if the RC method param "precedes"
2479 To work around this issue, set the HRD param before
2480 the RC method param so the driver will parse the RC
2481 method param "after" the HRD param.
2482 Afaict, other codecs in the driver (and other drivers)
2483 do not appear to be dependent on the order of HRD and
2484 RC param submission.
2486 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2488 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2489 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2490 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2491 vaapijpegenc: Add a quantization quirk for iHD driver
2492 iHD driver shifts the value by 50 when calculating quantization for JPEG
2493 encoding, so we should add 50 in this plugin for iHD driver too.
2495 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2497 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2498 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2499 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2500 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2501 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2502 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2503 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2504 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2505 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2506 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2507 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2508 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2509 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2510 * gst-libs/gst/vaapi/meson.build:
2512 * tests/internal/output.c:
2513 * tests/internal/output.h:
2514 * tests/internal/simple-decoder.c:
2515 * tests/internal/test-decode.c:
2516 libs: remove GstVaapiPixmap
2517 GstVaapiPixmap is an abstract base class which only implementation
2518 were GstVaapiPixmapX11. This class were used for a special type of
2519 rendering in the tests apps, utterly unrelated in GStreamer.
2520 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2521 we should remove this unused API.
2522 This removal drops libxrender dependency.
2524 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2526 * gst-libs/gst/vaapi/gstvaapiutils.c:
2527 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2528 HEVCMain444_10 is already a supported profile and misses the strings.
2530 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2532 * gst/vaapi/gstvaapi.c:
2533 plugin: don't error if cannot create display
2534 This might generated errors on automatic tools such as CI. Let's
2535 rather just raise a warning and let continue.
2537 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2539 * tests/check/meson.build:
2540 test: fix a ninja test failure for vaapioverlay.
2541 That test case only works with drm display, so the build such as
2542 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2544 gets a failure when run ninja test. Just enable this test when drm
2547 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2549 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2550 libs: videopool: fix a condition race for pool allocate.
2552 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2554 * gst/vaapi/gstvaapivideobufferpool.c:
2555 vaapivideobufferpool: force video meta if sizes are different
2556 The strides and offsets could be the same, but the allocation
2557 size might be different (e.g. alignment). Thus, ensure we also
2558 set the flag to copy from VA memory to system memory when alloc
2562 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2564 * gst/vaapi/gstvaapidecode.c:
2565 vaapidecode: don't set base sink caps twice
2566 Base class's sink pad caps are already set when calling set_format().
2567 There's no need to call it again in gst_vaapidecode_negotiate().
2569 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2571 * gst/vaapi/gstvaapidecode.c:
2572 vaapidecode: unlock stream if caps update fails
2573 If caps update fail a dead lock occurs since the stream mutex is not
2576 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2578 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2579 libs: decoder: h265: parser state after update dependent slice
2580 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2581 So we need check the slice type after we call populate_dependent_slice_hdr
2583 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2585 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2586 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2587 libs: display: force RGBA image format for i965 driver
2588 Since commit 32bf6f1e GLTextureUpload is broken because i965
2589 doesn't report properly RGBA support. It could be possible to use RGBx
2590 but GLTextureUpload only regotiates RGBA.
2591 The simplest fix to this regression is adding synthetically the RGBA
2592 format in the internal format map.
2594 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2596 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2597 libs: display: iterate all quirks table
2598 Instead of break at the fist foud quirk in the table, iterate all over
2599 so it would be feasible to add several quirks for one driver per
2602 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2604 * gst-libs/gst/vaapi/gstvaapifilter.c:
2605 libs: filter: handle RGB to/from YUV color primary driver quirk
2606 The intel-media-driver (iHD) can't convert output color
2607 primaries when doing YUV to/from RGB CSC. Thus, we must
2608 keep the output color primaries the same as the input
2609 color primaries for this case.
2612 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2614 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2615 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2616 libs: display: add YUV to/from RGB color primary quirk
2617 The intel-media-driver (iHD) can't convert output color
2618 primaries when doing YUV to/from RGB CSC.
2620 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2622 * gst/vaapi/gstvaapivideomemory.c:
2623 Revert "vaapivideomemory: Store surface allocation flags."
2624 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2625 it rewrites the buffer size whilst surface allocation flags are
2626 stored when allocator_params_init() is called since fab890ce.
2629 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2631 * gst/vaapi/gstvaapivideomemory.c:
2632 vaapivideomemory: Try surface with allocation flags.
2633 When a vaapi allocator is instantiated, it first try to generate a
2634 surface with the specified configuration.
2635 This patch adds, in this tried buffer, the requested allocation flags.
2637 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2639 * gst/vaapi/gstvaapivideomemory.c:
2640 vaapivideomemory: Store surface allocation flags.
2641 Store surface allocation flags passed to the vaapi allocator in
2642 GObject's qdata, because it might be used by the vaapivideobufferpool
2643 when recreating the allocator given any resolution change.
2645 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2647 * gst-libs/gst/vaapi/gstvaapisurface.c:
2648 * gst-libs/gst/vaapi/gstvaapisurface.h:
2649 libs: surface: Add hints to allocation flags.
2650 When creating surfaces it is possible to pass to VA hints of its usage,
2651 so the driver may do some optimizations.
2652 This commit adds the handling of encoding/decoding hints.
2654 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2656 * gst-libs/gst/vaapi/gstvaapicontext.c:
2657 * gst-libs/gst/vaapi/gstvaapisurface.c:
2658 * gst-libs/gst/vaapi/gstvaapisurface.h:
2659 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2660 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2661 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2662 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2663 * tests/internal/test-filter.c:
2664 * tests/internal/test-surfaces.c:
2665 libs: surface: surfacepool: Add allocation flags in constructors.
2667 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2670 build: let the build fail if none if X11, wayland or drm.
2671 In fact, gst_vaapi_create_test_display only test x11, wayland and
2672 drm, no glx and egl entries. So if none of them is enabled, no
2673 vaapi element can be detected.
2675 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2677 * tests/internal/test-display.c:
2678 test: avoid unused warning for test-display
2679 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2680 -Dwith_glx=no buildir
2681 generate unused warnings.
2683 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2686 build: fix meson build error when without x11.
2687 meson -Dwith_x11=no build_dir
2688 can not success build the project because the glx is still enabled.
2689 We need to disable GLX when X11 is disabled.
2691 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2693 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2694 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2695 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2696 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2697 other HWs if other HWs may support other values
2698 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2700 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2702 * gst/vaapi/gstvaapipostproc.c:
2703 * gst/vaapi/gstvaapipostprocutil.c:
2704 vaapipostproc: do not compensate for crop/direction if no VPP
2705 If we do not have functional VPP, then cropping and video
2706 direction is non-functional and we should avoid calling
2707 any of the gst_vaapi_filter* APIs.
2709 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2711 * gst/vaapi/gstvaapipostproc.c:
2712 vaapipostproc: only set VPP colorimetry when VPP is available
2713 If we don't have functional vpp then we should not call
2714 gst_vaapi_filter_set_colorimetry.
2716 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2718 * gst/vaapi/gstvaapivideobufferpool.c:
2719 * gst/vaapi/gstvaapivideomemory.c:
2720 * gst/vaapi/gstvaapivideomemory.h:
2721 videobufferpool: don't reset surface when created internally
2722 The bug fixing, in commit 89f202ea, just considers the case when
2723 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2724 which is typically a decoder's behavior. But vaapipostproc doesn't
2725 provide any surface when calling gst_buffer_pool_acquire_buffer(),
2726 thus a surface is created when GstMemory is allocated.
2727 If the surface proxy in buffer's meta is reset at
2728 buffer_pool_reset_buffer(), that surface will be destroyed and it
2729 won't be available anymore. But GstBuffers are cached in the buffer
2730 pool and they are reused again, hence only those images are rendered
2734 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2736 * gst-libs/gst/vaapi/gstvaapiblend.c:
2737 * gst-libs/gst/vaapi/gstvaapifilter.c:
2738 * gst/vaapi/gstvaapi.c:
2739 libs: blend: filter: handle finalize() if display isn't assigned
2740 I've just discovered iHD driver in Skylake doesn't have VideoProc
2741 entry point, hence, in this platform, when vaapioverlay is tried to be
2742 registered, critical warnings are raised because blend doesn't have a
2744 As it is possible to have drivers without EntryPointVideoProc it is
2745 required to handle it gracefully. This patch does that: only tries to
2746 register vaapioverlay if the testing display has VPP and finalize()
2747 vmethods, in filter and blend, bail out if display is NULL.
2749 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2751 * gst-libs/gst/vaapi/gstvaapifilter.c:
2752 * gst-libs/gst/vaapi/gstvaapiutils.c:
2753 libs: filter: guard all color properties to VA-API 1.2.0
2754 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2755 Thus, guard all colorimetry -> VA-API support to version
2759 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2761 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2762 libs: decoder: h265: set parser info state at decoding codec data
2763 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2764 parser info in sps array. If that parser info comes from decoding
2765 codec data, that parser info will have an undefined state which might
2767 This patch sets the parser info state, at decoding codec data, with
2768 the internal parser state. This is similar with h264 decoder apprach.
2769 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2771 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2773 * gst/vaapi/gstvaapipostproc.c:
2774 vaapipostproc: demote log message to trace level
2776 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2778 * gst-libs/gst/vaapi/video-format.c:
2779 libs: video-format: set general vaapi log category
2780 Instead of logging in an unspecified category, set the default vaapi.
2782 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2784 * gst-libs/gst/vaapi/gstvaapiutils.c:
2785 libs: utils: guard EncSliceLP for VA-API < 0.39.1
2788 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
2790 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2791 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2793 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2795 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2796 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2797 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2798 libs: remove crumbs of libva < 0.39
2799 All these guarded code seem like leftovers of commit 920b1ec7a. This
2800 patch completes that missing clean up.
2802 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2804 * gst-libs/gst/vaapi/gstvaapifilter.c:
2805 * gst-libs/gst/vaapi/gstvaapiutils.c:
2806 libs: VA explicit color standard not supported until 1.2.0
2807 VAProcColorStandardExplicit and associated VAProcColorProperties
2808 (primaries, transfer and matrix) are not supported until
2810 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2814 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2816 * gst-libs/gst/vaapi/gstvaapiutils.c:
2817 libs: utils: WA: use explicit for sRGB colorimetry
2818 Addresses #228 on iHD side. It seems iHD can't handle
2819 VAProcColorStandardSRGB in all situations for vpp. But
2820 it has no problem when we specify the sRGB parameters
2821 via VAProcColorStandardExplicit parameters.
2823 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2825 * gst-libs/gst/vaapi/gstvaapifilter.c:
2826 libs: filter: set vpp input/output color range
2827 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2828 And, the [iHD] driver essentially computes the same color
2829 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2830 cases were gstreamer computes it automatically. But,
2831 if the user wants to make it explicit, we should try
2834 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2836 * gst-libs/gst/vaapi/gstvaapiutils.c:
2837 * gst-libs/gst/vaapi/gstvaapiutils.h:
2838 libs: utils: map GstVideoColorRange to VAAPI VPP
2840 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2842 * gst/vaapi/gstvaapidecode.c:
2843 vaapidecode: don't remove chroma-site nor colorimetry
2844 Since now they can be handled by vaapipostproc.
2846 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2848 * gst/vaapi/gstvaapipostprocutil.c:
2849 vaapipostproc: use sink resolution to calculate src colorimetry
2850 The default output colorimetry is persuaded by the output
2851 resolution, which is too naive when doing VPP cropping
2852 and/or scaling. For example, scaling 4K(sink)->1080P(src)
2853 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2854 colorimetry selection and some drivers don't support that
2856 Thus, if output (i.e. downstream) does not specify a
2857 colorimetry then we use the input resolution instead of the
2858 output resolution to create the default colorimetry. Also,
2859 note that we still use the output format since it may be a
2860 different color space than the input. As in the example
2861 above, this will result in bt2020(sink)->bt2020(src)
2862 colorimetry selection and all drivers (afaik) should support
2865 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2867 * gst/vaapi/gstvaapipostprocutil.c:
2868 vaapipostproc: set srcpad colorimetry unconditionally
2869 We always need a srcpad colorimetry for VAAPI VPP
2871 Also, check the return value of _set_colorimetry.
2873 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2875 * gst/vaapi/gstvaapipostprocutil.c:
2876 vaapipostproc: do not override explicit srcpad colorimetry
2877 If colorimetry has been set by a capsfilter (e.g.
2878 vaapipostproc ! video/x-raw,colorimetry=bt709) then
2879 don't try to override it. Previously, the aforementioned
2880 capsfilter will fail to negotiate if default colorimetry
2881 is not the same as the capsfilter (e.g. 4K resolutions).
2883 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2885 * gst/vaapi/gstvaapipostproc.c:
2886 vaapipostproc: set vpp filter colorimetry
2887 Set the input and output colorimetry for vpp filter.
2889 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2891 * gst-libs/gst/vaapi/gstvaapifilter.c:
2892 * gst-libs/gst/vaapi/gstvaapifilter.h:
2893 libs: filter: support vpp input/output color standard
2894 Add API function to allow setting the input and output vpp
2895 color standard from GstVideoColorimetry.
2897 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2899 * gst-libs/gst/vaapi/gstvaapiutils.c:
2900 * gst-libs/gst/vaapi/gstvaapiutils.h:
2901 libs: utils: map GstVideoColorimetry to VAAPI VPP
2902 Fallback to VAProcColorStandardExplicit if there is no
2905 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2907 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2908 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2909 libs: display: add vpp color standard quirk for i965 driver
2910 The i965 does not properly report supported vpp color
2913 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2915 * gst/vaapi/gstvaapivideobufferpool.c:
2916 vaapivideobufferpool: dmabuf implies allocator
2917 Some code can be optimized since only if the dmabuf allocator is set,
2918 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2919 the allocator address.
2921 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2923 * gst/vaapi/gstvaapivideobufferpool.c:
2924 vaapivideobufferpool: reject configuration if allocator isn't vaapi
2925 If the requested allocator in set_config() is not a VAAPI valid one,
2926 reject the configuration, instead of lying and using a private one.
2927 This patch superseeds !254 and !24
2929 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2931 * gst/vaapi/gstvaapivideobufferpool.c:
2932 vaapivideobufferpool: add explanation for allocator reconfig
2934 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2936 * gst/vaapi/gstvaapivideobufferpool.c:
2937 vaapivideobufferpool: check for vaapi meta first
2938 If the configured meta doesn't request vaapi meta then it is not a
2939 vaapi buffer pool. Bail out as soon as possible.
2941 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2943 * gst/vaapi/gstvaapivideobufferpool.c:
2944 vaapivideobufferpool: turn errors into warnings
2945 set_config() vmethod should fail gracefully, thus upstream could
2946 negotiate another pool if possible.
2947 Instead of sending error messages to the bus, let demote the level
2950 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2952 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2953 libs: display: log out vendor string when available
2954 This is useful while asking for logs to know the used driver.
2956 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2958 * gst-libs/gst/vaapi/gstvaapisurface.c:
2959 libs: surface: initialize VASurfaceAttribExternalBuffers
2960 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2961 rather than using memset().
2963 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2965 * gst-libs/gst/vaapi/gstvaapisurface.c:
2966 libs: surface: merge two loops into one
2967 Merge two loops into one for setting offsets and strides in the
2968 external buffer descriptor.
2970 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2972 * gst-libs/gst/vaapi/gstvaapisurface.c:
2973 * gst-libs/gst/vaapi/gstvaapisurface.h:
2974 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2975 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2976 libs: surface: surfacepool: rename variable for clearity
2977 In order to be readable, the meaningless 'flags' is renamed to
2978 surface_allocation_flags, which is clearer.
2980 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2982 * gst/vaapi/gstvaapivideobufferpool.c:
2983 vaapivideobufferpool: Reuse internal allocator is possible.
2984 Instead of creating a new allocator when upstream requests a different
2985 allocator, this patch tries to reuse the internal allocator if it was
2986 already initializated.
2987 If the stream changes, then either one will be unref and a new
2988 allocator is created.
2990 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2992 * gst/vaapi/gstvaapivideobufferpool.c:
2993 vaapivideobufferpool: Log messages in proper category.
2994 The log messages where logged in the GstBufferPool category because
2995 the instance was not properly casted. This fix that situation.
2997 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2999 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3000 * gst-libs/gst/vaapi/gstvaapidisplay.h:
3001 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3002 * gst/vaapi/gstvaapipluginbase.c:
3003 libs: display: driver quirks mechanism
3004 This mechanism comes from ffmpeg vaapi implementation, where they have
3006 A specific driver is identified by a substring present in the vendor
3007 string. If that substring is found, a set of bitwise flags are store.
3008 These flags can be accessed through the function
3009 gst_vaapi_display_has_driver_quirks().
3010 The purpose for this first quirks is to disable the put image try for
3011 AMD Gallium driver (see [1]).
3012 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
3014 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3016 * gst/vaapi/gstvaapipluginutil.c:
3017 plugins: renable Mesa Gallium driver
3019 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3021 * gst/vaapi/gstvaapivideobufferpool.c:
3022 vaapivideobufferpool: validate returned meta
3023 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
3024 the acquired buffer is not null.
3025 This situation should be very "pathological", but still it is better
3026 be safe since that meta might be used later to create a new dma
3029 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3031 * gst/vaapi/gstvaapivideobufferpool.c:
3032 vaapivideobufferpool: always update/release the underlying surface proxy
3033 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
3034 releases the last reference on an exported DMA buffer. This should
3035 release the underlying surface proxy. To avoid releasing the wrong
3036 surface due to a stale surface proxy reference in the buffer's
3037 GstVaapiVideoMeta, always update the reference to the correct surface
3038 in gst_vaapi_video_buffer_pool_acquire_buffer().
3040 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3042 * gst-libs/gst/vaapi/gstvaapicontext.c:
3043 * gst-libs/gst/vaapi/gstvaapicontext.h:
3044 * gst-libs/gst/vaapi/gstvaapisurface.c:
3045 * gst-libs/gst/vaapi/gstvaapisurface.h:
3046 libs: context: select vaCreateSurfaces version according attributes
3047 This commit tries to centralize the selection of vaCreateSurfaces
3048 version, instead of having fallbacks everywhere.
3049 These fallbacks are hacks, added because new drivers use the latest
3050 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
3051 old drivers (or profiles as JPEG decoder in i965) might rather use the
3053 In order to select which method, there's detected hack: each config
3054 context has a list of valid formats, in the case of JPEG decoder the
3055 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
3056 handled correctly by the current gstreamer-vaapi code [2].
3057 The hack consist in identify if the format list contains an arbitrary
3058 preferred format (which is suposedly well supported by
3059 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
3060 the the old version of vaCreateSurfaces is used, and the surfaces wil
3061 be mapped into a image with their own color format.
3062 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
3063 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
3065 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3067 * gst-libs/gst/vaapi/gstvaapicontext.c:
3068 libs: context: add debug category for context
3070 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3072 * gst-libs/gst/vaapi/gstvaapiblend.c:
3073 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
3075 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3077 * gst/vaapi/gstvaapiencode_h264.c:
3078 vaapiencode: promote info to warning
3079 Let's notify user about using constrained-baseline instead on
3080 requested basline profile.
3082 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3084 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3085 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3086 * gst/vaapi/gstvaapidecode.c:
3087 * gst/vaapi/gstvaapidecode_props.c:
3088 * gst/vaapi/gstvaapidecode_props.h:
3089 vaapih264dec: Add a property to assume constrained-baseline
3090 When baseline-as-constrained is set, the decoder will expose support
3091 for baseline decoding and assume that the baseline content is
3092 constrained-baseline. This can be handy to decode streams in hardware
3093 that would otherwise not be possible to decode. A lot of baseline
3094 content is in fact constrained.
3096 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3098 * gst/vaapi/gstvaapiencode_h264.c:
3099 * gst/vaapi/gstvaapipluginutil.c:
3100 vaapih264enc: accept baseline as constrained baseline compatible
3102 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3104 * gst/vaapi/gstvaapiencode_h264.c:
3105 vaapih264enc: update level in src caps
3106 And, if downstream requests a specific level, the caps are not
3107 negotiated, because there is no mechanism right now to specify a
3108 custom level in the internal encoder.
3110 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3112 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3113 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
3115 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3117 * gst/vaapi/gstvaapiencode_h264.c:
3118 vaapih264enc: force byte-stream if avc isn't supported
3119 Removing the validation in gst_vaapiencode_h264_get_caps() since that
3120 ought be handled in gst_vaapiencode_h264_set_config()
3122 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3124 * gst/vaapi/gstvaapiencode_h264.c:
3125 vaaph264enc: suppress avc if the driver does not support packed headers
3126 Do not negotiate AVC output if the driver does not support it.
3128 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3130 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3131 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3132 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
3133 AVC output requires packed header support in the driver.
3135 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3137 * gst/vaapi/gstvaapiencode_h264.c:
3138 vaapih264enc: intersect the new proposed caps
3139 Instead of just leave to keep the proposed caps, with the best profile
3140 in the allowed caps, is its intersected again.
3142 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3144 * gst/vaapi/gstvaapiencode_h264.c:
3145 vaapih264enc: propose new profile caps and fixate it
3146 When the available caps doesn't intersect with the allowed caps in the
3147 pipeline, a new caps is proposed rather than just expecting to
3149 Later, the intersected caps (profile_caps) is fixated in order to
3150 extract the configuration.
3152 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3154 * gst/vaapi/gstvaapiencode_h264.c:
3155 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3156 Add a common fail code path for gst_vaapiencode_h264_set_config().
3158 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3160 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3161 libs: encoder: unref formats array if none
3162 The formats array is always created, in order to keep the logic and
3163 to avoid broken caps, if this formats array doesn't contain any
3164 elements, it has to be unref and the function should return NULL.
3166 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3168 * gst/vaapi/gstvaapiencode_h264.c:
3169 vaapih264enc: fix log message
3170 Before the log wasn't processed because wrong instance pointer.
3172 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3174 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3175 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3176 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3177 * gst/vaapi/gstvaapiencode_h265.c:
3178 plugin: encode: Add H265 main-444 profile.
3179 Expose the main-444 profile to h265enc caps, when the upstream
3180 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3183 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3185 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3186 libs: encoder: h265: Consider main-444 profile when encoding.
3187 Add support of main-444 profile for parameter setting and packed header
3190 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3192 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3193 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3194 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3195 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3196 * gst/vaapi/gstvaapiencode.c:
3197 vaapiencode: DMABuf only if PRIME is available
3198 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3199 memory type is available in the VA surface attributes of codec
3202 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3204 * hooks/pre-commit.hook:
3205 Add hooks/pre-commit.hook
3206 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3207 Copied and pasted pre-commit.hook from other gstreamer modules to make
3208 sure gstreamer-vaapi follows the same code style
3210 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3212 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3213 libs: encoder: h265: Set encoder paramters base on entrypoint.
3214 When the tune is NONE, we now can choose entrypoint freely. So the
3215 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3217 We also delay CTU size calculation after entrypoint has been decided.
3219 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3221 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3222 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3223 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3224 * gst-libs/gst/vaapi/gstvaapicontext.c:
3225 * gst-libs/gst/vaapi/gstvaapicontext.h:
3226 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3227 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3228 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3229 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3230 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3231 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3232 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3233 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3234 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3235 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3236 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3237 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3238 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3239 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3240 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3241 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3242 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3243 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3244 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3245 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3246 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3247 * gst-libs/gst/vaapi/meson.build:
3248 * gst/vaapi/gstvaapi.c:
3249 * gst/vaapi/gstvaapiencode.c:
3250 * gst/vaapi/gstvaapiencode.h:
3251 * gst/vaapi/gstvaapiencode_h264_fei.c:
3252 * gst/vaapi/gstvaapiencode_h264_fei.h:
3253 * gst/vaapi/gstvaapifeivideometa.c:
3254 * gst/vaapi/gstvaapifeivideometa.h:
3255 * gst/vaapi/meson.build:
3257 * tests/internal/meson.build:
3258 * tests/internal/test-fei-enc-in.c:
3259 * tests/internal/test-fei-enc-out.c:
3260 Remove all FEI related
3261 FEI encoders are not actively mantained neither tested, and it is
3262 using infrastructure that is changing and FEI is stopping this
3264 Also it is required to rethink how FEI can be used in GStreamer.
3266 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3268 * gst/vaapi/gstvaapioverlay.c:
3269 vaapioverlay: ensure sinkpad has current buffer
3270 Use the gst_video_aggregator_pad_has_current_buffer API
3271 to check if the current sinkpad has a queued buffer before
3272 attempting to obtain a input buffer from the base plugin.
3273 If the sinkpad does not have a current buffer, then it is
3274 either not producing them yet (e.g. current time < sinkpad
3275 start time) or it has reached EOS.
3276 Previously, we only handled EOS case.
3278 gst-launch-1.0 videotestsrc num-buffers=100 \
3279 ! vaapipostproc ! vaapioverlay name=overlay \
3280 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3281 num-buffers=100 ! video/x-raw,width=160,height=120 \
3284 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3286 * gst/vaapi/gstvaapioverlay.c:
3287 vaapioverlay: unroll the recursive call
3288 Recursive functions are elegant but dangerous since they might
3289 overflow the stack. It is better to turn them into a list tranversal
3290 if possible, as this case.
3292 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3294 * gst-libs/gst/vaapi/gstvaapiblend.c:
3295 * gst/vaapi/gstvaapioverlay.c:
3296 vaapioverlay: add minimal documentation
3298 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3300 * gst-libs/gst/vaapi/gstvaapiblend.c:
3301 * gst-libs/gst/vaapi/gstvaapiblend.h:
3302 * gst/vaapi/gstvaapioverlay.c:
3303 libs: blend: simplify generator API
3304 Instead of using a parent structure that has to be derived by API
3305 consumers, this change propse a simplification by using the common
3306 pattern of GTK of passing a function pointer and user data which will
3307 be passed as its parameter. That user data contains the state and the
3308 function will be called to update that state.
3310 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3312 * gst-libs/gst/vaapi/gstvaapiblend.c:
3313 * gst-libs/gst/vaapi/gstvaapiblend.h:
3314 libs: blend: remove begin/render/end API
3315 This API was risky and is superseded by the surface
3316 generator (process) API.
3319 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3321 * gst/vaapi/gstvaapioverlay.c:
3322 vaapioverlay: use blend surface generator API
3325 2020-01-10 09:54:30 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3327 * gst-libs/gst/vaapi/gstvaapiblend.c:
3328 * gst-libs/gst/vaapi/gstvaapiblend.h:
3329 libs: blend: add surface generator API
3330 This new API allows the user to call a single method (process)
3331 which handles the [display] lock/unlock logic internally for
3333 This API supersedes the risky begin, render, end API.
3334 It eliminates the need for the user to call a lock method
3335 (process_begin) before processing the input buffers
3336 (process_render) and calling an unlock method (process_end)
3340 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3342 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3343 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3344 * gst/vaapi/gstvaapiencode.c:
3345 * gst/vaapi/gstvaapiencode.h:
3346 * gst/vaapi/gstvaapiencode_h264.c:
3347 * gst/vaapi/gstvaapiencode_h265.c:
3348 plugin: encode: List all possible profiles to detect input formats.
3349 The current get_profile just return one possible profile for the encode,
3350 which is not enough. For example, if we want to support HEVC 4:4:4
3351 profile, the input of encode should be VYUA rather than NV12 in HEVC
3352 main profile. So the command line:
3353 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3354 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3355 tune=low-power init-qp=30 ! fakesink
3356 can not work because vaapih265enc just report NV12 in sink caps, we need
3357 to specify the profile obviously like:
3358 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3359 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3360 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3361 profile=main-444 ! fakesink
3362 The encode should have the ability to choose the profile based on input
3363 format automatically. If the input video format is VUYA, the main-444
3364 profile should be auto choosed.
3365 We modify to let get_allowed_profiles of each encode sub class to return
3366 an array of all supported profiles based on downstream's allowed caps, or
3367 return NULL if no valid profiles specified by downstream.
3368 If no allowed profiles found, all profiles which belong to the current
3369 encoder's codec will be the candidates.
3370 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3371 attributes for that profile list we just get.
3372 So for this case, both NV12 and VUYA should be returned.
3373 TODO: some codec like VP9, need to implement the get_profile() function.
3375 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3377 * gst/vaapi/gstvaapipluginutil.c:
3378 * gst/vaapi/gstvaapipluginutil.h:
3379 plugin: util: add helper function to detect profiles in caps.
3381 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3383 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3384 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3385 libs: encoder: add a helper function to get all supported profiles
3387 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3389 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3390 libs: decoder: Don't unref null object
3391 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3392 gst_vaapi_context_unref: assertion 'context != NULL' failed
3394 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3396 * gst/vaapi/gstvaapioverlay.c:
3397 plugins: overlay: use proper NULL check on double pointer
3398 Check the address of the variable is not NULL,
3399 not the address of the pointer.
3401 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3403 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3404 libs: codedbuf: delete a useless field.
3405 The context field in GstVaapiCodedBuffer is not inited correctly
3406 and is never used, just delete it.
3408 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3410 * gst/vaapi/gstvaapipluginutil.c:
3411 plugins: add iHD driver in whitelist
3413 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3415 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3416 libs: encoder: modify 265 SPS header's profile compatibility flag.
3417 Make the SPS profile compatibility flags more precisely conform to
3420 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3422 * tests/check/elements/vaapioverlay.c:
3423 test: vaapioverlay: bail test if not available
3424 vaapioverlay is only registered if the VA driver support the blend
3426 This patch only executes the test if vaapioverlay is available,
3427 otherwise the test is bail out without raising an error.
3429 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3431 * tests/check/elements/vaapioverlay.c:
3432 tests: vaapioverlay: force drm backend
3434 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3436 * gst-libs/gst/vaapi/gstvaapiblend.c:
3437 libs: blend: update to new mini-object API
3439 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3441 * tests/check/elements/vaapioverlay.c:
3442 * tests/check/meson.build:
3443 tests: check: add basic vaapioverlay test
3444 Add test_overlay_position test to verify sink_1 input
3445 is overlayed onto sink_0 input at the appropriate
3448 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3450 * gst/vaapi/gstvaapi.c:
3451 * gst/vaapi/gstvaapioverlay.c:
3452 * gst/vaapi/gstvaapioverlay.h:
3453 * gst/vaapi/meson.build:
3454 plugins: add vaapioverlay plugin
3455 A plugin similar to the base compositor element but
3456 uses VA-API VPP blend functions to accelerate the
3457 overlay/compositing.
3459 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3460 ! tee name=testsrc ! queue \
3461 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3462 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3464 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3466 * gst-libs/gst/vaapi/gstvaapiblend.c:
3467 * gst-libs/gst/vaapi/gstvaapiblend.h:
3468 * gst-libs/gst/vaapi/meson.build:
3469 libs: add a vaapi blend class
3470 Support for the VA-API VPP blend functions.
3472 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3474 * gst/vaapi/gstvaapipluginbase.c:
3475 * gst/vaapi/gstvaapipluginbase.h:
3476 plugins: base: add GstVideoAggregator subclass support
3478 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3480 * gst-libs/gst/vaapi/gstvaapiimage.c:
3481 libs: image: init all image fields correctly.
3483 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3485 * gst/vaapi/gstvaapipostproc.c:
3486 doc: fix pipeline typo in vaapipostproc
3488 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3490 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3491 libs: encoder: modify 265 VPS header fields.
3492 vps_base_layer_internal_flag and vps_base_layer_available_flag
3493 have been clearly defined now.
3495 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3497 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3498 libs: display: fix a resource leak in X11 pixmap format.
3500 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3502 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3503 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3504 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3506 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3508 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3509 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3510 * gst/vaapi/gstvaapiencode.c:
3511 libs: encoder: get surfaces resolution the same time with formats.
3512 We can get all the information about the video format at one shot
3513 when we create the test context for getting the supported formats.
3514 The current way to get the width and height ranges are inefficient,
3515 since it calls the function gst_vaapi_profile_caps_append_encoder()
3516 and it creates another temporal context to detect the resolution
3518 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3520 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3522 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3523 libs: encoder: vp9: fix code style
3525 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3527 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3528 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3529 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3530 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3531 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3532 libs: encoder: set entrypoint based on tune automatically
3533 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3534 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3536 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3537 every time when we need to use this kind of profile. Or we can not
3538 create the encoder context successfully.
3539 2. More seriously, we set the entrypoint to a fixed value in
3540 init_context_info() and so the create_test_context_config() can not
3541 create the test context for these profile and can not get the
3542 supported video formats, either.
3543 We now change the entrypoint setting based on the tune option of the
3544 encoder. If no tune property provided, we just choose the first
3545 available entrypoint.
3547 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3549 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3550 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3551 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3552 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3553 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3554 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3555 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3556 libs: encoder: set context info profile by encoder
3557 Instead of init_context_info() setting the passed profile, it is
3558 assumed that it has to be set by each encoder.
3559 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3561 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3563 * gst-libs/gst/vaapi/gstvaapicontext.c:
3564 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3565 libs: context: add invalid entrypoint symbol
3566 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3567 zero, which was already used as an invalid value tacitly. This patch
3568 only makes it explicit.
3569 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3571 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3573 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3574 libs: pixmap: Fix a pixmap creation crash.
3575 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3576 pixmap creation, which causes crash if we run the internal test case
3578 test-decode --pixmap
3580 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3582 * gst/vaapi/gstvaapiencode.c:
3583 plugin: encode: set allowed_sinkpad_caps to empty.
3584 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3585 surfaces formats. This causes two problem:
3586 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3587 which changes its behavior. It will use encode's sinkpad template
3588 rather than empty caps to do the clip job. So even if we fail to set
3589 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3591 2. We should just set the allowed_sinkpad_caps once. The NULL point
3592 make the ensure_allowed_sinkpad_caps function works again and again.
3594 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3596 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3597 libs: encoder: Add NULL pointer check for context when finalize.
3598 Context may be NULL if pipeline fail in early stage, and the
3599 ensure_context will not be called. Need to add a pointer protection
3602 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3604 * gst/vaapi/gstvaapipluginbase.c:
3605 plugins: base: do not reset can_dmabuf
3606 Don't reset the can_dmabuf field. This restores the
3607 close/reset logic that existed prior to commit
3608 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3610 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3611 once during startup, but may need to reset the other private
3612 fields multiple times during negotiation. Thus, can_dmabuf
3613 should be exempt from the resets.
3616 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3618 * gst/vaapi/gstvaapiencode.c:
3619 plugin: encode: Refine encode's sink caps.
3620 The old manner to get the encode's sink caps is not correct.
3621 Such as 264 encode, it gets:
3622 video/x-raw(memory:VASurface),
3623 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3624 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3625 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3626 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3627 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3628 framerate=(fraction)[ 0/1, 2147483647/1 ];
3629 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3630 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3631 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3632 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3633 input format for encoder.
3635 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3636 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3637 video/x-raw(memory:VASurface), format=(string){ NV12 },
3638 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3639 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3640 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3641 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3642 as the correct result.
3644 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3646 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3647 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3648 libs: display: code clean up
3650 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3652 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3653 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3654 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3655 libs: display: refine the profile/entrypoint map.
3656 The old way make the one config for each profile/entrypoint pair,
3657 which is not very convenient for description the relationship
3658 between them. One profile may contain more than one entrypoints
3659 to within it, so a set like data structure should be more suitable.
3661 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3663 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3664 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3665 * gst-libs/gst/vaapi/gstvaapicontext.c:
3666 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3667 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3668 * gst-libs/gst/vaapi/gstvaapifilter.c:
3669 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3670 * gst-libs/gst/vaapi/gstvaapisurface.c:
3671 * gst-libs/gst/vaapi/gstvaapisurface.h:
3672 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3673 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3674 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3675 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3676 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3677 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3678 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3679 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3680 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3681 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3682 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3683 * gst/vaapi/gstvaapipluginbase.c:
3684 * gst/vaapi/gstvaapivideomemory.c:
3685 * gst/vaapi/gstvaapivideometa.c:
3686 * gst/vaapi/gstvaapivideometa_texture.c:
3687 * tests/internal/image.c:
3688 * tests/internal/test-filter.c:
3689 * tests/internal/test-surfaces.c:
3690 * tests/internal/test-windows.c:
3691 libs: surface: port to GstMiniObject
3692 GstVaapiMiniObject and GstVaapiObject are deprecated.
3693 This is the first step to remove them by porting GstVaapiSurface as
3694 a GstMiniBuffer descendant.
3695 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3697 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3699 * gst-libs/gst/vaapi/gstvaapisurface.c:
3700 libs: surface: rename create function names to init
3701 There are several internal functions with 'create' name, but they
3702 don't create any new structure, but rather it initializes that
3703 structure. Renaming those function to reflect better their purpose.
3705 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3707 * gst-libs/gst/vaapi/gstvaapisurface.c:
3708 libs: surface: use macro accessors
3710 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3712 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3713 libs: surface: fix internal documentation
3715 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3717 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3718 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3719 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3720 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3721 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3722 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3723 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3724 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3725 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3726 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3727 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3728 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3729 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3730 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3731 libs: codedbuffer: port to GstMiniObject
3732 GstVaapiMiniObject and GstVaapiObject are deprecated.
3733 This is the first step to remove them by porting GstVaapiCodedBuffer
3734 as a GstMiniBuffer descendant.
3735 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3737 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
3739 * gst-libs/gst/vaapi/gstvaapiimage.c:
3740 * gst-libs/gst/vaapi/gstvaapiimage.h:
3741 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3742 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3743 * gst-libs/gst/vaapi/gstvaapisurface.c:
3744 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3745 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3746 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3747 * gst/vaapi/gstvaapipluginbase.c:
3748 * gst/vaapi/gstvaapivideomemory.c:
3749 * gst/vaapi/gstvaapivideometa.c:
3750 * tests/internal/image.c:
3751 * tests/internal/simple-encoder.c:
3752 * tests/internal/test-fei-enc-in.c:
3753 * tests/internal/test-filter.c:
3754 * tests/internal/test-windows.c:
3755 libs: image: port to GstMiniObject base class
3756 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3757 first step to remove them, by porting GstVaapiImage as a
3759 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3761 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
3763 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3764 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3765 * gst-libs/gst/vaapi/gstvaapicontext.c:
3766 * gst-libs/gst/vaapi/gstvaapicontext.h:
3767 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3768 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3769 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3770 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3771 libs: context: port to a plain C structure
3772 The GstVaapiMiniObject is obsolete and we need to replace it. This
3773 patch turns GstVaapiContext into a plain C structure with its own
3774 reference counting mechanism.
3775 Also this patch removes unused overlays attributes.
3776 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3778 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
3780 * gst/vaapi/gstvaapiencode_h264.c:
3781 * gst/vaapi/gstvaapiencode_h264_fei.c:
3782 * gst/vaapi/gstvaapiencode_h265.c:
3783 * gst/vaapi/gstvaapiencode_jpeg.c:
3784 * gst/vaapi/gstvaapiencode_mpeg2.c:
3785 * gst/vaapi/gstvaapiencode_vp8.c:
3786 * gst/vaapi/gstvaapiencode_vp9.c:
3787 plugin: encode: change the dmabuf caps to all supported formats.
3788 The encode's dmabuf caps definition is obsolete, it can support
3789 more formats now. Re-define it to include all supported formats
3790 in video format map.
3792 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3794 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3795 libs: encoder: h264fei: remove unnecessary check
3796 Issue detected by Coverity
3797 `info_to_pack.h264_slice_header` is always allocated by
3798 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3799 in doesn't make much sense. But it requires to be free on the error
3801 There may be a null pointer dereference, or else the comparison
3802 against null is unnecessary.
3803 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3804 pointer comparison already dereference the pointer earlier
3806 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3808 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3809 libs: encoder: h264fei: remove unnecessary assert
3810 Issue detected by Coverity
3811 An unsigned value can never be negative, so this test will always
3812 evaluate the same way.
3813 In add_slice_headers: An unsigned value can never be less than 0
3815 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3817 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3818 libs: encoder: h264fei: remove unnecessary check
3819 Issue detected by Coverity
3820 There may be a null pointer dereference, or else the comparison
3821 against null is unnecessary.
3822 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3823 pointer comparison already dereference the pointer earlier
3825 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3827 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3828 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3829 libs: encoder: h264fei: don't free memory on stack
3830 Issue detected by Coverity
3831 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3832 declared in the stack, but it is free in
3833 gst_vaapi_feienc_h264_encode() as if declared on the heap.
3834 This patch initializes the structure and removes the free.
3835 A non-heap pointer is placed on the free list, likely causing a crash
3837 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3838 expression, which can never be heap allocated.
3840 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3842 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3843 libs: encoder: h264fei: fix surface leak
3844 Issue detected by Coverity
3845 If the FEI mode is not handled the created resources should be
3846 released and return and error code.
3847 The system resource will not be reclaimed and reused, reducing the
3848 future availability of the resource.
3849 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3852 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3854 * tests/check/elements/vaapipostproc.c:
3855 tests: check return calling of gst_navigation_event_parse.*
3856 This issue was detected by Coverity.
3857 If the function returns an error value, the error value may be mistaken
3859 In cb_mouse_event: Value returned from a function is not checked for
3860 errors before being used
3862 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
3864 * gst/vaapi/gstvaapiencode_h264.c:
3865 * gst/vaapi/gstvaapiencode_h264_fei.c:
3866 * gst/vaapi/gstvaapiencode_h265.c:
3867 * gst/vaapi/gstvaapiencode_jpeg.c:
3868 * gst/vaapi/gstvaapiencode_mpeg2.c:
3869 * gst/vaapi/gstvaapiencode_vp8.c:
3870 * gst/vaapi/gstvaapiencode_vp9.c:
3871 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3872 Then encode plugin just supports raw formats declared in vaapi video
3873 format map. This modification makes the template caps more precise.
3875 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3877 * gst/vaapi/gstvaapipluginbase.c:
3878 plugins: base: add GstPad param to internal helper functions
3879 The base plugin public API function implementations determine
3880 which pad should be passed to the internal helper functions.
3881 Currently, only the base plugin static sinkpad and static
3882 srcpad are supported/used. However, this change enables future
3883 API functions to be added that can accept a pad (i.e. request pad)
3884 from an element subclass (e.g. a GstVideoAggregator subclass).
3886 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3888 * gst/vaapi/gstvaapipluginbase.c:
3889 * gst/vaapi/gstvaapipluginbase.h:
3890 plugins: base: manage pad-specific data in a single struct
3891 Define a struct (GstVaapiPadPrivate) to encapsulate the
3892 pad-specific data (i.e. buffer pool, allocator, info,
3894 Add an interface to retrieve the data struct for a given
3896 Finally, update the base plugin to use the data struct
3897 throughout the implementation.
3898 This will enable us to easily extend the base plugin in the
3899 future to allow for N-to-1 pad subclasses (e.g. overlay/
3902 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3904 * gst/vaapi/gstvaapidecode.c:
3905 * gst/vaapi/gstvaapiencode.c:
3906 * gst/vaapi/gstvaapipluginbase.h:
3907 * gst/vaapi/gstvaapipostproc.c:
3908 plugins: use plugin base macros to access pad specific data
3909 Don't access base struct fields directly since the underlying
3910 definition can change. Instead, use the accessor macros.
3912 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
3914 * gst/vaapi/gstvaapidecode.c:
3915 libs: decoder: Modify decode src's template raw formats
3916 We do not need to maintain a standalone list of decoder's output
3917 template for raw formats and that is easy to make mistake(for
3918 example, the AYVU is wrong in that list, should be VUYA).
3919 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3922 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
3924 * gst/vaapi/gstvaapipostproc.c:
3925 libs: postproc: Modify src/sink template raw formats
3926 We need to provide more precise template caps for postproc's src
3927 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3928 available which are really superfluous.
3930 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
3932 * tests/check/elements/vaapipostproc.c:
3933 Do not mix declaration and code
3935 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3937 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3938 libs: decoder: h265: skip all pictures prior the first I-frame
3939 Don't try to decode until the first I-frame is received within the
3940 currently active sequence. i965 H265 decoder don't show any artifact
3944 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3946 * gst-libs/gst/vaapi/video-format.c:
3947 libs: video-format: remove dead code
3949 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
3951 * gst-libs/gst/vaapi/video-format.c:
3952 * gst-libs/gst/vaapi/video-format.h:
3953 * gst/vaapi/gstvaapipluginutil.h:
3954 libs: video-format: add GST_VAAPI_FORMATS_ALL
3955 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3956 as a caps template string, and make them available in caps with
3957 memory:VASurface feature.
3960 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
3962 * gst-libs/gst/vaapi/video-format.c:
3963 * tests/internal/test-windows.c:
3964 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3965 We only support VUYA format in gst vaapi now, need to correct
3968 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3970 * tests/check/elements/vaapipostproc.c:
3971 tests: check: vaapipostproc test_orientation_mouse_events
3972 Test that vaapipostproc properly translates mouse events
3973 when using video-direction (orientation).
3975 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3977 * tests/check/elements/vaapipostproc.c:
3978 * tests/check/meson.build:
3979 tests: check: vaapipostproc test_crop_mouse_events
3980 Test that vaapipostproc properly translates mouse events
3983 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3986 * meson_options.txt:
3987 * tests/check/elements/vaapipostproc.c:
3988 * tests/check/meson.build:
3989 * tests/meson.build:
3990 tests: check: initial unit test support
3991 Add minimal unit test toolchain files and a simple
3992 vaapipostproc unit test.
3994 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3997 * tests/examples/meson.build:
3998 * tests/examples/test-roi.c:
3999 * tests/examples/test-vaapicontext.c:
4000 * tests/examples/test-vaapipostproc.c:
4001 * tests/examples/test-vaapisink.c:
4002 * tests/internal/codec.c:
4003 * tests/internal/codec.h:
4004 * tests/internal/decoder.c:
4005 * tests/internal/decoder.h:
4006 * tests/internal/image.c:
4007 * tests/internal/image.h:
4008 * tests/internal/meson.build:
4009 * tests/internal/output.c:
4010 * tests/internal/output.h:
4011 * tests/internal/simple-decoder.c:
4012 * tests/internal/simple-encoder.c:
4013 * tests/internal/test-decode.c:
4014 * tests/internal/test-decode.h:
4015 * tests/internal/test-display.c:
4016 * tests/internal/test-fei-enc-in.c:
4017 * tests/internal/test-fei-enc-out.c:
4018 * tests/internal/test-filter.c:
4019 * tests/internal/test-h264.c:
4020 * tests/internal/test-h264.h:
4021 * tests/internal/test-jpeg.c:
4022 * tests/internal/test-jpeg.h:
4023 * tests/internal/test-mpeg2.c:
4024 * tests/internal/test-mpeg2.h:
4025 * tests/internal/test-mpeg4.c:
4026 * tests/internal/test-mpeg4.h:
4027 * tests/internal/test-subpicture-data.c:
4028 * tests/internal/test-subpicture-data.h:
4029 * tests/internal/test-subpicture.c:
4030 * tests/internal/test-surfaces.c:
4031 * tests/internal/test-textures.c:
4032 * tests/internal/test-vc1.c:
4033 * tests/internal/test-vc1.h:
4034 * tests/internal/test-windows.c:
4035 * tests/internal/y4mreader.c:
4036 * tests/internal/y4mreader.h:
4037 * tests/meson.build:
4038 tests: move examples and tests to subfolders
4039 This makes way for adding unit (check) tests.
4041 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
4049 * gst-libs/Makefile.am:
4050 * gst-libs/gst/Makefile.am:
4051 * gst-libs/gst/vaapi/Makefile.am:
4053 * gst/vaapi/Makefile.am:
4055 * tests/Makefile.am:
4056 * tests/elements/Makefile.am:
4057 Remove autotools build
4059 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4061 * gst/vaapi/gstvaapipostproc.c:
4062 vaapipostproc: fix off-by-one coord translations
4063 When translating navigation x,y coordinates for
4064 video-direction, it is necessary to subtract 1
4065 when using the video dimensions to compute the
4066 new x,y coordinates. That is, a 100x200 image
4067 should map coordinates in x=[0-99],y=[0-199].
4068 This issue was found with unit tests provided
4071 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4073 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4074 libs: window: x11: Avoid usage of deprecated API
4076 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4079 build: halt meson configuration if no renderer API
4080 We should halt meson configuration if there is no render API
4081 installed (either DRM, Wayland or X11).
4082 That behavior was already in autotools but missed in meson. This patch
4086 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4088 * gst-libs/gst/vaapi/gstvaapifilter.c:
4089 libs: filter: fix default orientation regression
4090 Fix regression introduced in f232f87f7082
4092 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4094 * gst-libs/gst/vaapi/gstvaapifilter.c:
4095 libs: filter: use OP_DATA_DEFAULT_VALUE macro
4097 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4099 * gst-libs/gst/vaapi/gstvaapifilter.c:
4100 libs: filter: use macro for returning op default value
4101 The code is essentially the same for getting all op default
4102 values. Thus, use a macro to help minimize code duplication
4103 and [hopefully] encourage using the same mechanism for all
4106 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4108 * gst-libs/gst/vaapi/gstvaapifilter.c:
4109 libs: filter: query param spec for default scale method
4112 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4114 * gst-libs/gst/vaapi/gstvaapifilter.c:
4115 libs: filter: query param spec for default skin-tone values
4118 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4120 * gst-libs/gst/vaapi/gstvaapifilter.c:
4121 libs: filter: query param spec for default video-direction
4124 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4129 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
4131 * gst-libs/gst/vaapi/gstvaapifilter.c:
4132 * gst-libs/gst/vaapi/gstvaapifilter.h:
4133 * gst/vaapi/gstvaapipostproc.c:
4134 * gst/vaapi/gstvaapipostproc.h:
4135 vaapipostproc: Use level value for skin-tone-enhancement filter.
4136 Currently the parameter of skin-tone-enhancement filter is forced
4137 to zero. In fact it could be set different value by the user.
4138 So create a new property named as "skin-tone-enhancement-level"
4139 for accepting the used defined parameter value.
4140 At the same time, skin-tone-enhancement is marked as deprecated.
4141 When skin-tone-enhancement-level is set, skin-tone-enhancement
4144 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4146 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4147 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4148 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4149 g_return_val_fail() documentations says:
4150 If expr evaluates to FALSE, the current function should be
4151 considered to have undefined behaviour (a programmer error).
4152 The only correct solution to such an error is to change the
4153 module that is calling the current function, so that it avoids
4154 this incorrect call.
4155 So it was missused in a couple parts of the H264 and H265 internal
4156 decoders. This patch changes that to plain conditionals.
4157 Also, it was included a couple code-style fixes.
4159 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4161 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4162 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4163 * tests/simple-encoder.c:
4164 * tests/test-fei-enc-in.c:
4165 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4166 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4167 need to keep a custom ref()/unref() methods. This patch deletes them.
4169 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4171 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4172 libs: encoder: correct encoder's ref/unref function.
4173 GstVaapiEncoder now is a standard gstobject and need to use
4174 gst_object_ref/unref functions.
4176 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4178 * gst/vaapi/gstvaapiencode_h264_fei.c:
4179 gst: encode: h264_fei: remove useless comparison
4180 The expression "len >= 0" is always true since "len"
4181 is an unsigned type. And it is clear that the writers
4182 intention was not to write "len > 0" since we handle
4183 len == 0 in the ensuing "if (len < 3)" conditional
4186 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4188 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4189 libs: encoder: h264_fei: fix potential overflow before widen
4190 Found by static analysis. encoder->mb_width * encoder->mb_height
4191 is evaluated using 32-bit arithmetic before widen. Thus, cast
4192 at least one of these to guint64 to avoid overflow.
4194 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4196 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4197 libs: encoder: h264_fei: remove dead error condition
4198 Found by static analysis. The feipak is always null
4199 when we reach the error target.
4201 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4203 * gst-libs/gst/vaapi/gstvaapiutils.c:
4204 libs: utils: add missing break in switch
4206 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4208 * gst-libs/gst/vaapi/video-format.c:
4209 libs: video-format: Make all YUV format available
4210 The YUV formats have no ambiguity for drivers, so we can add them all.
4211 Some old driver(i965) does not implement full get/put image functions
4212 but can use derive image funtions for the YUV format. It does not
4213 report that kind of formats correctly in image query, but will derive
4214 that YUV format image from surface. The dynamic mapping of YUV format
4215 will block that manner.
4216 Adding more YUV format mapping has no side effect. So considering the
4217 legacy driver conformance, we add all YUV formats mapping statically
4218 and dynamic mapping RBG formats
4222 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4224 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4225 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4226 egl: Fix racyness in display thread creation
4227 Multiple different scenarios could break the display thread creation and
4228 end up blocking waiting for thread o be created. Fix them all by
4229 correctly waiting for a new boolean to become valid.
4231 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4233 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4234 egl: don't advertise a wrapped EGLContext as actually wrapped
4235 It's not actually wrapped as we create a new EGLContext from the passed
4236 in EGLContext. As a result, the created EGLContext was never destroyed.
4238 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4240 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4241 libs: h264decoder: do not return error for unhandled NAL unit.
4242 Some streams have error data introducing unknown NAL type. There are
4243 also kinds of NAL types we do not want to handle. The old manner will
4244 set a decoder error when encounter this, which cause a latent crash bug.
4245 The decoder may successfully decode the picture and insert it into DPB.
4246 But there are error NAL units after the AU which cause the post unit error
4247 and make that frame dropped. The later output of the picture still want
4248 to ref that frame and crash.
4249 No need to set decoder error when can not recognize or handle the NAL
4250 unit, just skip it and continue.
4253 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4255 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4256 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4257 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4258 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4259 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4260 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4261 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4262 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4263 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4264 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4265 * gst/vaapi/gstvaapiencode.c:
4266 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4267 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4268 param in encoders to decide which parameters to expose. Thus
4269 gstreamer-vaapi will not interfere with any change in GStreamer in the
4271 Also, the internal symbol was change to
4272 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4274 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4276 * gst-libs/gst/vaapi/gstvaapiimage.c:
4277 * gst-libs/gst/vaapi/video-format.c:
4278 libs: Add BGR10A2_LE support for color space conversion.
4281 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4283 * gst-libs/gst/vaapi/gstvaapisurface.c:
4284 libs: surface: add pointer check for surface_new_from_formats.
4286 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4287 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4288 will crash on i965 driver because of no pointer check.
4289 We now generate the video format map between GST format and VA format
4290 dynamically based on the image format returned by vaQueryImageFormats.
4291 i965 driver does to report image format of 444P and Y800 forcc, while
4292 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4293 not recognize these format and pass a NULL pointer to
4294 gst_vaapi_surface_new_from_formats.
4295 We need to add a pointer check here and let the fallback logic handle
4296 this case correctly.
4297 Other drivers work well.
4299 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4301 * gst-libs/gst/vaapi/gstvaapiutils.c:
4302 libs: utils: guard the VAEntrypointFEI symbol
4303 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4305 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4307 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4308 * gst-libs/gst/vaapi/video-format.c:
4309 * gst-libs/gst/vaapi/video-format.h:
4310 libs: video-format: Refine the video format mapping.
4311 Improve the mapping between va format and gst format. The new map
4312 will be generated dynamically, based on the query result of image
4313 format in VA driver. Also consider the ambiguity of RGB color
4316 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4318 * gst/vaapi/gstvaapipluginutil.c:
4319 pluginutil: Remove Mesa from drivers white list
4320 The Mesa Gallium driver is poorly tested currently, leading to bad user
4321 experience for AMD users. The driver can be added back to the white list at
4322 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4324 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4326 * gst/vaapi/gstvaapipostproc.c:
4327 * gst/vaapi/gstvaapipostproc.h:
4328 * gst/vaapi/gstvaapipostprocutil.c:
4329 vaapipostproc: allow cropping via properties
4330 Add crop-left, crop-right, crop-top and crop-bottom
4331 properties to vaapipostproc.
4333 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4335 * gst/vaapi/gstvaapipostproc.c:
4336 vaapipostproc: rotate outbuf and crop meta if forwarding
4337 When forwarding crop meta to downstream, the output
4338 buffer and crop meta need to be rotated, too.
4340 for i in 90r 180 90l vert horiz ul-lr ur-ll
4342 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4343 ! videocrop top=100 bottom=30 left=40 right=20 \
4344 ! vaapipostproc video-direction=$i \
4346 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4347 ! videocrop top=100 bottom=30 left=40 right=20 \
4348 ! vaapipostproc video-direction=$i \
4349 ! identity drop-allocation=true \
4353 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4355 * gst/vaapi/gstvaapipostproc.c:
4356 vaapipostproc: fix output buffer WxH for crop meta forwarding
4357 Adding crop meta x,y to w,h only compensates for left,top
4358 cropping. But we also need to compensate for right,bottom
4360 The video meta contains the appropriate w,h (uncropped)
4361 values, so use it instead.
4363 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4364 ! videocrop top=50 bottom=30 left=40 right=20 \
4365 ! vaapipostproc ! vaapisink & \
4366 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4367 ! videocrop top=50 bottom=30 left=40 right=20 \
4368 ! vaapipostproc ! identity drop-allocation=1 \
4371 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4373 * gst/vaapi/gstvaapipostproc.c:
4374 vaapipostproc: handle size and direction together in src events
4375 Mapping a pointer event needs to consider both size and
4376 video-direction operations together, not just one or the other.
4377 This fixes an issue where x,y were not being mapped correctly
4378 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4379 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4380 the first condition in the pointer event handling was entered and
4381 x,y scale factor were incorrectly computed due to srcpad WxH
4383 This also fixes all cases where both video-direction and scaling
4384 are enabled at the same time.
4385 Test that all pointer events map appropriately:
4388 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4389 ! vaapipostproc video-direction=${i} width=300 \
4391 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4392 ! vaapipostproc video-direction=${i} width=300 height=200 \
4394 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4395 ! vaapipostproc video-direction=${i} height=200 \
4397 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4398 ! vaapipostproc video-direction=${i} \
4402 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4404 * gst/vaapi/gstvaapipostproc.c:
4405 * gst/vaapi/gstvaapipostproc.h:
4406 vaapipostproc: advertise crop meta is handled
4407 Advertise to upstream that vaapipostproc can handle
4409 When used in conjunction with videocrop plugin, the
4410 videocrop plugin will only do in-place transform on the
4411 crop meta when vaapipostproc advertises the ability to
4412 handle it. This allows vaapipostproc to apply the crop
4413 meta on the output buffer using vaapi acceleration.
4414 Without this advertisement, the videocrop plugin will
4415 crop the output buffer directly via software methods,
4416 which is not what we desire.
4417 vaapipostproc will not apply the crop meta if downstream
4418 advertises crop meta handling; vaapipostproc will just
4419 forward the crop meta to downstream. If crop meta is
4420 not advertised by downstream, then vaapipostproc will
4421 apply the crop meta.
4423 1. vaapipostproc will forward crop meta to vaapisink
4424 gst-launch-1.0 videotestsrc \
4425 ! videocrop left=10 \
4428 2. vaapipostproc will do the cropping
4429 gst-launch-1.0 videotestsrc \
4430 ! videocrop left=10 \
4432 ! identity drop-allocation=1 \
4435 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4437 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4438 libs: encoder: clean two virtual func in encoder class
4439 set_property and get_default_properties functions are no longer
4440 needed for encoder class.
4442 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4444 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4445 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4446 libs: encoder: delete old set_property and property enum feienc264
4448 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4450 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4451 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4452 libs: encoder: delete old set_property and property enum in h264 fei
4454 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4456 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4457 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4458 libs: encoder: delete old set_property and property enum in vp9
4460 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4462 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4463 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4464 libs: encoder: delete old set_property and property enum in vp8
4466 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4468 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4469 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4470 libs: encoder: delete old set_property and property enum in mpeg2
4472 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4474 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4475 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4476 libs: encoder: delete old set_property and property enum in jpeg
4478 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4480 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4481 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4482 libs: encoder: delete old set_property and property enum in h265
4484 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4486 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4487 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4488 libs: encoder: delete old set_property and property enum in h264
4490 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4492 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4493 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4494 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4495 libs: encoder: delete EncoderPropInfo related functions
4497 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4499 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4500 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4501 libs: encoder: delete encoder_set_property
4502 We no longer need this obsolete set_property function now after
4503 switch to standard gobject's property manner.
4504 Also delete the old encoder's property enum in the header file.
4506 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4508 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4509 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4510 libs: encoder: delete properties_get_default for base class
4512 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4514 * gst/vaapi/gstvaapiencode.c:
4515 * gst/vaapi/gstvaapiencode.h:
4516 plugin: encode: delete useless init_properties.
4517 Also delete the get_properties function in encode class. We now
4518 use g_object_class_list_properties to get all properties for
4519 internal encoder class.
4521 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4523 * gst/vaapi/gstvaapiencode.c:
4524 * gst/vaapi/gstvaapiencode.h:
4525 plugin: encode: delete set/get_property func in encode class
4526 Use standard gobject's property functions to replace the old way.
4528 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4530 * gst/vaapi/gstvaapiencode.c:
4531 * gst/vaapi/gstvaapiencode.h:
4532 plugin: encode: delete gst_vaapiencode_init_properties
4533 No need to init the properties got by get_default_properties func
4534 now. The properties are inited correctly in internal encoder class.
4536 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4538 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4539 libs: encoder: delete 3 useless init macro
4541 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4543 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4544 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4545 libs: encoder: delete get_default_properties of feienc
4547 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4549 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4550 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4551 libs: encoder: delete get_default_properties of H264 Fei
4553 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4555 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4556 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4557 libs: encoder: delete get_default_properties of VP9
4559 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4561 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4562 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4563 libs: encoder: delete get_default_properties of VP8
4565 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4567 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4568 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4569 libs: encoder: delete get_default_properties of MPEG2
4571 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4573 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4574 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4575 libs: encoder: delete get_default_properties of JPEG
4577 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4579 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4580 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4581 libs: encoder: delete get_default_properties of H265
4583 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4585 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4586 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4587 libs: encoder: delete get_default_properties of H264
4589 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4591 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4592 libs: encoder: delete the useless constructed func for encoder.
4594 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4596 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4597 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4598 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4599 libs: encoder: implement get_view_ids for h264 encoder.
4601 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4603 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4604 * gst/vaapi/gstvaapiencode.c:
4605 * gst/vaapi/gstvaapiencode_h264.c:
4606 * gst/vaapi/gstvaapiencode_h264_fei.c:
4607 * gst/vaapi/gstvaapiencode_h265.c:
4608 * gst/vaapi/gstvaapiencode_jpeg.c:
4609 * gst/vaapi/gstvaapiencode_mpeg2.c:
4610 * gst/vaapi/gstvaapiencode_vp8.c:
4611 * gst/vaapi/gstvaapiencode_vp9.c:
4612 gst: encode: enable new type of property mechanism.
4614 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4616 * gst/vaapi/gstvaapiencode.c:
4617 * gst/vaapi/gstvaapiencode.h:
4618 gst: encode: add property help functions for encoder properties.
4619 The encoder is a true gstobject now and all the properties are using
4620 gobject's properties mechanism. Add help functions to handle the properties
4621 between encode and encoder class.
4622 The basic idea is mapping the same property between encoder and encode. All
4623 the encoder's properties will have the same name, the same type in encode.
4624 The set/get property function just forward the property setting/getting to
4625 the encoder using the same property name and value. Because the encoder is
4626 created on needed, we need to cache the property setting in encode.
4628 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4630 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4631 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4632 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4633 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4634 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4635 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4636 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4637 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4638 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4639 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4640 libs: encoder: add flags to all encoder properties.
4641 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4642 need to init the properties manually.
4643 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4644 flag, means need to expose the property to according encode class.
4646 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4648 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4649 libs: encoder: Add properties for h264 encoder fei.
4650 Install properties for h264 encoder fei class. Also set the new get/set
4651 property functions for gobject class. Still use the old properties
4652 way now and this new feature will be enabled later.
4654 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4656 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4657 libs: encoder: Add properties for h264 fei encoder.
4658 Install properties for h264 fei encoder class. Also set the new get/set
4659 property functions for gobject class. Still use the old properties
4660 way now and this new feature will be enabled later.
4662 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4664 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4665 libs: encoder: Add properties for vp9 encoder.
4666 Install properties for vp9 encoder class. Also set the new get/set
4667 property functions for gobject class. Still use the old properties
4668 way now and this new feature will be enabled later.
4670 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4672 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4673 libs: encoder: Add properties for vp8 encoder.
4674 Install properties for vp8 encoder class. Also set the new get/set
4675 property functions for gobject class. Still use the old properties
4676 way now and this new feature will be enabled later.
4678 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4680 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4681 libs: encoder: Add properties for mpeg2 encoder.
4682 Install properties for mpeg2 encoder class. Also set the new get/set
4683 property functions for gobject class. Still use the old properties
4684 way now and this new feature will be enabled later.
4686 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4688 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4689 libs: encoder: Add properties for jpeg encoder.
4690 Install properties for jpeg encoder class. Also set the new get/set
4691 property functions for gobject class. Still use the old properties
4692 way now and this new feature will be enabled later.
4694 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4696 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4697 libs: encoder: Add properties for h265 encoder.
4698 Install properties for h265 encoder class. Also set the new get/set
4699 property functions for gobject class. Still use the old properties
4700 way now and this new feature will be enabled later.
4702 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4704 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4705 libs: encoder: Add properties for h264 encoder.
4706 Install properties for h264 encoder class. Also set the new get/set
4707 property functions for gobject class. Still use the old properties
4708 way now and this new feature will be enabled later.
4710 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4712 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4713 libs: encoder: add properties and prop help functions
4714 Add all common properties to encoder base class. rate-control and
4715 tune are moved to sub class.
4717 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4719 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4720 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4721 libs: encoder: delete useless gst_vaapi_encoder_new func.
4722 GstVaapiEncoder is a abstract gobject and never be created directly.
4724 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
4726 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4727 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4728 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4729 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4730 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4731 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4732 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4733 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4734 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4735 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4736 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4737 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4738 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4739 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4740 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4741 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4742 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4743 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4744 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4745 lib: encoder: gstobjectfy all vaapi encoders.
4746 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4747 Let the gstobject common logic to handle all the init and finalize
4748 works. But the property install/set/get still use the old way, need
4749 to be improved later.
4751 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4753 * gst/vaapi/gstvaapipostproc.c:
4754 vaapipostproc: check for filter before appending caps
4755 While ensuring the allowed sink pad caps, the filter attributes set
4756 the frame size restriction, but it is not ensured, at that moment,
4757 that the filter is already instantiaded.
4758 In order to silence the glib logs, this patch add only calls
4759 gst_vaapi_filter_append_caps() if the filter is instantiated.
4761 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
4763 * gst/vaapi/gstvaapidecodebin.c:
4764 Classify vaapidecodebin as a hardware decoder
4766 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
4768 * gst/vaapi/gstvaapipostproc.c:
4769 libs: postproc: fix a memory leak point.
4770 filter_ops and filter_formats should already have valid value when
4771 the function gst_vaapipostproc_ensure_filter_caps re-enter
4773 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
4775 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4776 libs: util: Fix a memory leak in config_surface_attributes_get
4778 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
4780 * gst/vaapi/gstvaapidecode.c:
4781 vaapidecode: support transform ROI meta
4782 This will benefit the use case like:
4783 src ---> encode ---> decode ---> circle ROI ---> sink
4788 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
4790 * gst/vaapi/gstvaapidecodedoc.c:
4791 docstrings: port ulinks to markdown links
4793 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4795 * gst-libs/gst/vaapi/Makefile.am:
4796 * gst-libs/gst/vaapi/gstvaapicontext.c:
4797 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4798 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4799 * gst-libs/gst/vaapi/meson.build:
4800 libs: remove context's overlay
4801 The context overlay was an optimization to apply a video composition
4802 to all the surfaces bound to a context.
4803 But since commit 18031dc6 this optimization was disabled, so it is
4804 better just get rid of it.
4806 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4808 * gst-libs/gst/vaapi/gstvaapicontext.c:
4809 * gst-libs/gst/vaapi/gstvaapisurface.c:
4810 * gst-libs/gst/vaapi/gstvaapisurface.h:
4811 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4812 * gst/vaapi/gstvaapipluginutil.c:
4813 * tests/test-subpicture.c:
4814 libs: remove surface's parent context
4815 In commit 18031dc6 surface's parent context is not assigned because of
4816 circular references. Since then (2013), there's has no issue with
4817 subpictures attached to a context, the current only users of this API.
4818 This patch cleans up all of related code with the unused surface's
4821 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4823 * gst/vaapi/gstvaapidecode.c:
4824 vaapidecode: guard if no structure is available in caps
4826 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4828 * gst-libs/gst/vaapi/gstvaapifilter.c:
4829 * gst-libs/gst/vaapi/gstvaapifilter.h:
4830 * gst/vaapi/gstvaapipostproc.c:
4831 vaapipostproc: append frame size restrictions in caps
4833 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4835 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4836 libs: profilecaps: refactor common code
4838 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4840 * gst/vaapi/gstvaapiencode.c:
4841 vaapiencode: set frame size restrictions in caps
4844 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4846 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4847 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4848 * gst/vaapi/gstvaapiencode.c:
4849 vaapiencode: enhance how the profile is defined
4850 This code doesn't define the profile used by the internal encoder, but
4851 it used to "predict" which is going to be used and to get the caps
4853 Before the profile was predicted by checking the donwstream caps, but
4854 sometimes they are not defined, setting an unknown profile. In order
4855 to enhances this situation, the encoder asks to internal encoder if it
4856 has one. If so, it is used.
4857 To ask the internal encoder's profile a new accessor function was
4858 added: gst_vaapi_encoder_get_profile()
4860 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4862 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4863 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4864 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4865 Previously it was just a boilerplate. Now it is real implementation.
4867 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4869 * gst-libs/gst/vaapi/gstvaapiutils.c:
4870 libs: utils: treat va_rt_format as bitwise flag
4871 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4872 is a bitwise flag with *all* the supported chroma types.
4873 Previously it was assumed that the return value was a single value,
4874 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4875 simple case. But it is wrong.
4876 This patch changes the case block with a sequence of ifs testing the
4877 bitwise. For now we assume a "priority" list in the testing sequence.
4879 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4881 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4882 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4883 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4884 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4885 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4886 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4887 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4888 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4889 * tests/test-display.c:
4890 libs: profile: add gst_vaapi_profile_get_va_name()
4891 gst_vaapi_profile_get_name() returns a proper name for
4892 GstCaps. Nonetheless, there are many profiles which don't have a name
4893 representation for that realm.
4894 gst_vaapi_profile_get_va_name() returns the name of the profile
4895 according to its VAProfile name.
4896 This new funtion is used in the encoder error message.
4898 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4900 * gst-libs/gst/vaapi/Makefile.am:
4901 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4902 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4903 * gst-libs/gst/vaapi/meson.build:
4904 * gst/vaapi/gstvaapidecode.c:
4905 libs: profilecaps: move caps config into a new file
4906 Implement all the appending of frame size restrictions in caps, for
4907 encoders and decoders, in a new source file.
4909 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4911 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4912 libs: decoder: ref the caps as property
4914 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4916 * gst-libs/gst/vaapi/gstvaapicontext.c:
4917 * gst-libs/gst/vaapi/gstvaapicontext.h:
4918 libs: context: add gst_vaapi_context_get_surface_attributes()
4919 This function copies the surface attributes from the context's object
4922 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4924 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4925 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4926 * gst-libs/gst/vaapi/gstvaapiutils.c:
4927 * gst-libs/gst/vaapi/gstvaapiutils.h:
4928 libs: move memory types conversions to gstvaapiutils
4929 And add more supported memory types by current VA.
4931 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4933 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4934 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4935 libs: utils: remove unused function gst_vaapi_get_surface_formats()
4937 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4939 * gst-libs/gst/vaapi/gstvaapicontext.c:
4940 * gst-libs/gst/vaapi/gstvaapicontext.h:
4941 * gst-libs/gst/vaapi/gstvaapifilter.c:
4942 libs: context, filter: use new surface attributes API
4944 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4946 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4947 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4948 libs: utils: add gst_vaapi_config_surface_attributes_get()
4949 To extract the surface restrictions per config using a new structure:
4950 GstVaapiConfigSurfaceAttributes
4952 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4954 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4955 Split the surface attribute retrieval
4957 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4959 * gst/vaapi/gstvaapipostproc.c:
4960 vaapipostproc: handle navigation downstream event
4961 When navigation events contains coordiantes those have to be mapped
4962 to the new size and/or orientation.
4964 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4966 * tests/elements/test-vaapisink.c:
4967 test-vaapisink: also use vaapipostproc to change orientation
4969 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4971 * gst-libs/gst/vaapi/gstvaapifilter.c:
4972 * gst-libs/gst/vaapi/gstvaapifilter.h:
4973 * gst/vaapi/gstvaapipostproc.c:
4974 * gst/vaapi/gstvaapipostproc.h:
4975 * gst/vaapi/gstvaapipostprocutil.c:
4976 vaapipostproc: handle image-orientation upstream event
4977 Now that vaapipostproc can possible handle video-direction, it
4978 should also handle the image-orientation event from upstream if
4979 video-direction property is set to auto.
4981 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4983 * gst/vaapi/gstvaapipostproc.c:
4984 vaapipostproc: add missing locks when adding flags
4986 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4988 * gst/vaapi/gstvaapipostproc.c:
4989 vaapipostproc: update filter before fixate caps
4990 It is requiered to know if postproc is capable to change the video
4991 direction before fixating the source caps.
4992 In order to do it, it'ss required to know if there's a functional VPP,
4993 but that's checked at create() vmethod, which occurs after caps
4995 This patch checks for a functional VPP at fixate caps and, if so,
4996 checks for the enabled filtes and later do the caps fixations.
4998 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5000 * gst-libs/gst/vaapi/gstvaapifilter.c:
5001 * gst-libs/gst/vaapi/gstvaapivalue.c:
5002 * gst-libs/gst/vaapi/gstvaapivalue.h:
5003 * gst/vaapi/gstvaapipostproc.c:
5004 vaapipostproc: element warning if video direction is unsupported
5005 If the video direction is unsupported by the driver, an element
5006 warning is posted in the bus to notify the application.
5007 gst_vaapi_enum_type_get_nick() was added in the library thus it can
5008 be used elsewhere. It retrives the nick from an enum gtype.
5010 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5012 * gst-libs/gst/vaapi/gstvaapifilter.c:
5013 libs: filter: check mirror and rotation caps only once
5014 This patch locks the display before querying the pipeline caps and
5015 stores the mirror and rotation capabilities, thus they are not queried
5016 every time the video direction is set.
5018 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5020 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5021 libs: encoder: vp9: set VP9_0 profile as default
5022 Commit 0afc8131 introduced a regression and only NV12 format were
5023 admitted, failing in any other valid color format.
5024 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
5026 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5028 * gst-libs/gst/vaapi/gstvaapifilter.c:
5029 libs: filter: fail if first color balance value is invalid
5031 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
5033 * gst-libs/gst/vaapi/gstvaapifilter.c:
5034 * gst-libs/gst/vaapi/gstvaapiutils.c:
5035 * gst-libs/gst/vaapi/gstvaapiutils.h:
5036 libs: filter: set all color balance values
5037 When set multiple settings of color balance like hue, saturation,
5038 brightness and contrast for vaapipostproc, they should be set as
5039 parameters of color balance filter, at the same color balance
5041 Otherwise, multiple color balance filter calling will cause
5042 previous setting get reset by the last calling with default value.
5044 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
5046 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
5048 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5049 libs: h265dec: remove limitation of get iq matrix
5050 According hevc spec, scaling_list_data is not related
5051 to chroma_format_idc.
5053 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
5055 * gst-libs/gst/vaapi/gstvaapivideopool.c:
5056 libs: videopool: fix undocumented behavior and counting
5057 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
5058 because it locks twice the same mutex.
5059 Also, n had different meanings in the current code: as an increase
5060 value and as a new total of allocated surfaces.
5061 This patche removes the undocumented behavoir (usually a deadlock) and
5062 fixes the meaning of n as the new total of allocated surfaces.
5063 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5065 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
5067 * gst-libs/gst/vaapi/gstvaapiutils.c:
5068 libs: utils: Add missing entries for string_of_VAEntrypoint.
5070 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
5072 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5073 libs: encoder: Consider vp9 profiles based on input format.
5074 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
5077 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5079 * gst/vaapi/gstvaapivideomemory.c:
5080 vaapivideomemory: demote error message to info
5081 The main reason to demote the message's level is because it is not an
5082 error, it's a possible output of the trial and there's a code path
5084 Secondly, it's very annoying when using gallium driver for radeon.
5086 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
5088 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5089 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5090 * gst-libs/gst/vaapi/gstvaapitypes.h:
5091 * gst-libs/gst/vaapi/gstvaapiutils.c:
5092 * gst-libs/gst/vaapi/gstvaapivalue.c:
5093 libs: encoder: h264: support ICQ/QVBR bitrate control mode
5094 ICQ is Intelligent Constant Quality. It will use the initial QP
5095 vaule of icq-quality-factor to adjust QP at MB level intelligently
5096 to improve subjective quality.
5097 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
5098 adjust QP for each MB to get enough quality picture without waste
5101 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
5103 * gst-libs/gst/vaapi/gstvaapitypes.h:
5104 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
5105 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
5106 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
5107 deal with unsigned int. Otherwise there may be an error of out of
5108 range of integer if we define few more rate-control mode.
5110 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5112 * gst/vaapi/gstvaapidecodebin.c:
5113 vaapidecodebin: set queue's max size buffers to 1
5114 Otherwise the queue will swallow all the available decoder's surfaces
5115 reaching a dead-lock.
5116 This setting might impact the bin's peformance, but it's a trade-off.
5118 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5120 * gst/vaapi/gstvaapidecodebin.c:
5121 vaapidecodebin: set properties default values
5123 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5125 * gst/vaapi/gstvaapidecode.c:
5126 vaapidecode: don't error if can't push buffers downtream
5127 When the code path goes to push buffers downstream when no surface
5128 available in decoder context, and it fails the code bails out with a
5130 That behavior is wrong, since it shouldn't be fatal. The use case is
5131 when the video stream is disabled.
5132 This patch just ignores the errors in this situation and demotes the
5133 level of a log message.
5135 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
5137 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5138 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5139 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5140 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5141 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5142 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5143 libs: encoder: h264,h265: add new property "max-qp"
5144 Add new property "max-qp" to allow set the maximum quantisation
5147 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
5149 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5150 libs: encoder: vp9: add low power mode encode
5151 By now, this feature only support by media-driver on Ice Lake
5152 platform, more information you can reference:
5153 https://github.com/intel/media-driver
5155 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5157 * gst/vaapi/gstvaapipostprocutil.c:
5158 vaapipostproc: update PAR when rotating
5159 When rotating, swap pixel-aspect-ratio during
5163 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5165 * gst-libs/gst/vaapi/gstvaapifilter.c:
5166 * gst-libs/gst/vaapi/gstvaapiutils.c:
5167 * gst-libs/gst/vaapi/gstvaapiutils.h:
5168 * gst/vaapi/gstvaapipostprocutil.c:
5169 vaapipostproc: add rotation support
5170 Adds vpp rotation support to vaapipostproc. Uses
5171 property video-direction. Default is identity (no
5175 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5177 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5178 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5179 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5180 cu_qp_delta_enabled_flag enabled.
5183 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5185 * gst-libs/gst/vaapi/gstvaapiutils.c:
5186 libs: encoder: Add MB ratecontrol mode to get its string
5188 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5190 * gst-libs/gst/vaapi/gstvaapiutils.c:
5191 libs: encoder: refine guard of bitrate control mode
5192 Remove useless guard of all bitrate control mode's guard except MB
5193 which is define in VA-API version 0.39.1.
5195 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5197 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5198 h264: Update for parse_vui_params parameter removal.
5199 Update calls to the h264 parser lib for removal of the
5200 parse_vui_params parameter.
5202 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5204 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5205 libs: dec: vp9: do not use display size as decoded size
5206 If display size is smaller than current frame size, then the crop size
5207 will be set as display size, which either crashes the pipeline or the
5208 output MD5 does not match. Rather it should use the actual decoded size.
5209 This patch removes the cropping set. For rendering we can use aspect
5210 ratio to set display size.
5212 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5213 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5215 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5220 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5222 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5223 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5224 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5225 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5226 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5227 than 8 bits, which cause using the wrong NV12 surface as the render target
5231 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5233 * gst/vaapi/gstvaapidecode.c:
5234 vaapidecode: set initial decode format according surface chroma type
5235 For surfaces with different chroma type, it is prefer to initialize
5236 a format which chroma type should be same with surface chroma type
5237 instead of using fixed NV12.
5239 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5241 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5242 * gst-libs/gst/vaapi/gstvaapiimage.c:
5243 * gst-libs/gst/vaapi/video-format.c:
5244 * gst/vaapi/gstvaapidecode.c:
5245 * gst/vaapi/gstvaapipluginutil.h:
5246 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5247 When create vaapi surface, it is better to use the chroma type get
5248 from jpeg file instead of using fixed 420 format. And the correct
5249 chroma type can be determined by horizontal_factor/vertical_factor
5250 flags that get from jpegparse.
5252 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5254 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5255 libs: dec: h265: Fix profile_idc mapping.
5256 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5257 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5258 happened to be the correct value.
5259 We only support Annex A profile_idc (1-4).
5261 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5263 * gst/vaapi/gstvaapipluginbase.c:
5264 plugins: remove last negotiated video info if caps are same
5265 If the allocation caps and negotiated caps are the same,
5266 then ensure any previously negotiated video info is also
5267 removed. This can occur when multi-resolution video
5268 decoding returns to it's original resolution.
5271 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5273 * gst/vaapi/gstvaapivideomemory.c:
5274 vaapivideomemory: allow negotiated info to be removed
5275 Allow NULL negotiated_vinfo to be passed into
5276 gst_allocator_set_vaapi_negotiated_video_info to allow
5277 any previously set info to be removed.
5279 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5281 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5282 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5283 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5284 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5285 counter, hence the newly created frame could become a P-frame, leading to some
5286 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5287 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5288 GstVaapiEncoderVP9 implementations.
5290 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5292 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5293 libs: encoder: increase bitrate prop max value
5294 There are many profile levels that can support
5295 more than 102400 kbps. Thus, increase the max
5296 allowed bitrate property value from 102400 kbps
5297 to 2048000 kbps (same as msdk encoder plugins).
5299 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5301 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5302 libs: mpeg2 encoder: No packed header for SPS and PPS
5303 Dislable passing down packed PPS and PPS to driver if driver does
5307 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5312 meson: Bump minimal GLib version to 2.44
5313 This means we can use some newer features and get rid of some
5314 boilerplate code using the G_DECLARE_* macros.
5315 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5317 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5319 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5320 libs: dec: vp9: clear parser pointer after release
5321 Fix an use-after-release of the parser pointer in VP9 decoder.
5323 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5325 * gst/vaapi/gstvaapiencode.c:
5326 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5327 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5328 srcpad's chain function was locked waiting for available buffers. Since the
5329 coded buffers in codedbuf_queue become available after sinkpad consume the
5330 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5331 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5332 available buffers and holds the stream_lock of the srcpad.
5334 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5336 * gst-libs/gst/vaapi/gstvaapitypes.h:
5337 * gst/vaapi/gstvaapidecodebin.c:
5338 * gst/vaapi/gstvaapidecodedoc.c:
5339 * gst/vaapi/gstvaapiencode_h264.c:
5340 * gst/vaapi/gstvaapiencode_h264_fei.c:
5341 * gst/vaapi/gstvaapiencode_h265.c:
5342 * gst/vaapi/gstvaapiencode_jpeg.c:
5343 * gst/vaapi/gstvaapiencode_mpeg2.c:
5344 * gst/vaapi/gstvaapiencode_vp8.c:
5345 * gst/vaapi/gstvaapiencode_vp9.c:
5346 * gst/vaapi/gstvaapipostproc.c:
5347 * gst/vaapi/gstvaapisink.c:
5348 doc: remove xml from comments
5350 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5352 * gst-libs/gst/vaapi/gstvaapifilter.c:
5353 * gst-libs/gst/vaapi/gstvaapifilter.h:
5354 * gst-libs/gst/vaapi/gstvaapiutils.c:
5355 * gst-libs/gst/vaapi/gstvaapiutils.h:
5356 * gst/vaapi/gstvaapipostproc.c:
5357 * gst/vaapi/gstvaapipostproc.h:
5358 vaapipostproc: add mirror support
5359 Adds vpp mirroring support to vaapipostproc. Use
5360 property video-direction. Valid values are identity,
5361 horiz or vert. Default is identity (no mirror).
5363 v2: Use GstVideoOrientationMethod enum
5364 v3: Don't warn for VA_MIRROR_NONE.
5365 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5366 v4: Query VAAPI caps when setting mirror value
5367 instead of during per-frame processing.
5368 v5: Return TRUE in warning cases when setting mirror value.
5370 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5372 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5373 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5374 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5375 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5376 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5377 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5378 * gst/vaapi/gstvaapidecodebin.c:
5379 * gst/vaapi/gstvaapisink.c:
5380 doc: fix some incorrect gtk-doc links
5382 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5384 * docs/gst_plugins_cache.json:
5385 docs: Update plugin cache
5386 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5388 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5390 * gst-libs/gst/vaapi/gstvaapisurface.h:
5391 libs: surface: fix documentation format
5393 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5395 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5396 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5397 When enable low delay B, the reference list 1 will be same with
5398 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5399 to num_ref_idx_l0_active_minus1.
5402 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5405 meson: Fix call to wrong function
5407 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5412 * docs/gst_plugins_cache.json:
5415 * docs/plugins/Makefile.am:
5416 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5417 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5418 * docs/plugins/gstreamer-vaapi-plugins.types:
5419 * docs/plugins/inspect/plugin-vaapi.xml:
5420 * docs/plugins/running.xml:
5422 * docs/version.entities.in:
5423 * gst/vaapi/meson.build:
5425 * meson_options.txt:
5426 docs: Port to hotdoc
5428 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5430 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5431 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5432 libs: encoder: not call ensure_num_slices inside g_assert
5433 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5434 defined. The function inside the g_assert will take no effect and
5435 we will fail to set the correct slice number.
5437 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5439 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5440 libs: h265: dec: Add extension flags setting.
5441 Use VAPictureParameterBufferHEVCExtension&
5442 VASliceParameterBufferHEVCExtension to pass extension setting from
5443 some extension profile clips which may include these information.
5444 The hevc extension setting only supported after libva release 2.2.0
5447 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5449 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5450 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5451 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5452 libs: encoder: add target-percentage property
5453 Allow users to set the target-percentage for
5454 variable rate controls. The default value is
5455 70 (as hard-coded prior).
5456 v2: minimum allowed value changed from 0 to 1
5457 v3: target-percentage unchanged if CBR used
5460 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5462 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5463 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5465 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5467 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5468 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5469 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5470 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5471 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5472 libs: encoder: Enable trellis quantization method.
5473 The advanced trellis algorithm is supported in VA driver. We add
5474 its support as a property named "trellis" of encoder.
5475 It only works for H264 now, should be more in future.
5477 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5479 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5480 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5481 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5482 type, so we need to add subsampling_x&subsampling_y to fix it.
5483 Here is the relationship between chroma type and profile and
5484 subsampling_x&subsampling_y according to vp9 spec:
5485 ------------------------------------------
5486 Profile | Bit depth | Chroma subsampling |
5487 ------------------------------------------
5489 ------------------------------------------
5490 1 | 8 | 422,440,444 |
5491 ------------------------------------------
5493 ------------------------------------------
5494 3 | 10, 12 | 422,440,444 |
5495 ------------------------------------------
5496 -----------------------------------------------
5497 Subsampling_x | Subsampling_y | Chroma format |
5498 -----------------------------------------------
5500 -----------------------------------------------
5502 -----------------------------------------------
5504 -----------------------------------------------
5506 -----------------------------------------------
5508 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5510 * gst-libs/gst/vaapi/gstvaapiimage.c:
5511 * gst-libs/gst/vaapi/video-format.c:
5512 libs: Add packed 24 RGB format support.
5513 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5514 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5515 type. This kind of surface will just be created by new API with fourcc
5516 and no old style chrome based creation is available.
5519 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5521 * gst/vaapi/gstvaapiencode.c:
5522 * gst/vaapi/gstvaapiencode_h264.c:
5523 * gst/vaapi/gstvaapiencode_h264_fei.c:
5524 * gst/vaapi/gstvaapiencode_h265.c:
5525 * gst/vaapi/gstvaapiencode_jpeg.c:
5526 * gst/vaapi/gstvaapiencode_mpeg2.c:
5527 * gst/vaapi/gstvaapiencode_vp8.c:
5528 * gst/vaapi/gstvaapiencode_vp9.c:
5529 vaapiencode: handle DMABuf caps feature in sink pad
5530 Add DMABuff caps features in all encoders' sink pad.
5532 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5534 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5535 libs: encoder: continue if roi meta is NULL
5537 If the function actually returns a null value, a null pointer
5538 dereference will occur.
5539 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5540 function which returns null is dereferenced without checking
5542 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5544 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5545 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5546 The decoder's surface chroma type should depend on the bit depth
5547 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5548 10 bits surface as the decoder result.
5551 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5553 * gst/vaapi/gstvaapipostprocutil.c:
5554 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5555 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5556 with commit 3e992d8a
5557 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5558 from caps negotiation, different from the default one (NV12), the
5559 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5560 feature is negotiated, no color transformation shall be done.
5561 Nonetheless, with commit 3e992d8a the requested format changes
5562 firstly, because there's no video sink yet, so ANY caps are
5563 negotiated; but later, when there's a video sink and a caps
5564 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5565 format conversion still ongoing. It is required to reset that
5567 This patch force default color format when GL_TEXTURE_UPLOAD is
5568 selected as preferred, thus avoiding the color conversion.
5571 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5573 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5574 libs: surface: fix double free when dmabuf export fails
5575 Happens if vaAcquireBufferHandle fails.
5577 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5579 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5580 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5582 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5586 * docs/plugins/inspect/plugin-vaapi.xml:
5590 === release 1.16.0 ===
5592 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5598 * gstreamer-vaapi.doap:
5602 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5604 * docs/plugins/inspect/plugin-vaapi.xml:
5607 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5609 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5610 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5611 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5612 libs: encoder: h264,h265: guard VA version for max_qp property
5613 This patch fixes a regression from commit 5b1fe9c6.
5614 max_qp, in rate control configuration, appeared in libva release
5615 2.1 (API 1.1), thus it is required to guard the VA API version.
5618 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5620 * gst-libs/gst/vaapi/gstvaapiimage.c:
5621 * gst-libs/gst/vaapi/video-format.c:
5622 libs: Add RGB565 image format support.
5624 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5627 build: configure: delay USE_GTK conditional until check libva-x11
5628 libva-x11 is used for X11 applications, so it is required to build
5629 any GTK application.
5630 Later, when Wayland test is added, we should change this.
5632 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5635 build: configure: disable GLX if libva-x11 is not found
5637 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5639 * gst-libs/gst/vaapi/gstvaapiutils.c:
5640 libs: utils: avoid macro evaluation when stringify
5641 string_of_va_chroma_format() gets a wrong string format description.
5642 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5643 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5644 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5646 To avoid the macro evaluation, it is changed to show only the color
5647 format without VA_RT_FORMAT_ prefix.
5649 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5651 * gst-libs/gst/vaapi/gstvaapiutils.c:
5652 libs: utils: use glib's macros
5653 Don't reinvent the wheel.
5655 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5657 * gst/vaapi/gstvaapipluginutil.c:
5658 plugins: find the preferred format from right caps.
5659 When the downstream has any caps, then raw video feature will
5660 be used. At this situation, the preferred format should be chose
5661 from caps which contains "vide/x-raw" feature instead of from
5662 the fist allowed caps.
5665 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5667 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5668 libs: encoder: h265: fill tier in va seq param buf
5669 Now that tier is calculated in commit 58e74f9440fe (!68),
5670 ensure we fill in the general_tier_flag in the
5671 VAEncSequenceParameterBufferHEVC.
5673 === release 1.15.90 ===
5675 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5681 * gstreamer-vaapi.doap:
5685 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5687 * docs/plugins/inspect/plugin-vaapi.xml:
5690 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5692 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5693 libs: encoder: h265: Recognize the correct level and tier.
5694 The current manner can not recognize the correct level and always
5695 set the tier to main. Need to add frame rate check to recognize
5696 levels such as 4.1, 6.2, etc. We also add a logic to check main
5697 and high tier based on bitrate.
5700 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5702 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5703 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5704 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5705 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5706 media-driver currently fails to set a correct value of max_qp when
5707 min_qp is different to zero, in CBR and VBR mode, generating full
5708 quality frames, thus unexpected huge output.
5709 This patch sets max_qp to an arbitrary value to avoid this output
5713 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5715 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5716 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5717 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5718 libs: encoder: h264,h265: initial and minimal QP can be zero
5719 Currently the minimal value for either min_qp and init_qp are 1,
5720 but VA documentation specifiy that zero is also valid and means
5721 to ignore the quantiser.
5722 The default value is not changed though to avoid behaivor changes
5725 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5727 * tests/elements/meson.build:
5728 meson: build test-vaapicontext when using X11
5729 x11_dep and libva_x11_dep are optional and meson ignores these
5730 dependencies even if they are added into the dependency list.
5731 This fixes the error below when libva-x11 is not avaiblabe:
5732 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5733 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5734 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5735 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5736 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5737 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5738 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5739 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5740 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5741 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5742 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5743 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5744 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5745 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5746 -DHAVE_CONFIG_H -MD -MQ
5747 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5749 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5751 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5752 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5753 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5754 error: va/va_x11.h: No such file or directory
5755 #include <va/va_x11.h>
5757 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
5759 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5760 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5761 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5762 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5763 GValueArray is deprecated. Use GstValueArray instead.
5765 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
5767 * gst/vaapi/gstvaapipluginutil.c:
5768 vaapipluginutil: Fix #endif for USE_X11
5770 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5772 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5773 libs: encoder: h264: simplify the view-ids setting
5775 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
5777 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5778 libs: encoder: h264: Use gst_param_spec_array for view-ids
5779 GValueArray is deprecated. Use GstValueArray instead.
5780 gst_param_spec_array can be deserialized from command line using:
5781 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5782 While the g_param_spec_value_array() can not, and always get
5783 error: "gst_value_deserialize_g_value_array: unimplemented"
5784 Also fixed an out-of-range bug.
5786 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
5788 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5789 libs: Change the parameter setting order when encode picture.
5790 The order in gst_vaapi_enc_picture_encode when encoding one
5791 picture is not very correct. The misc parameters are set before
5792 the picture parameters. Some of the misc parameters such as
5793 ROI may change the current picture parameters. But the later
5794 setting of picture parameter will re-init all picture related
5795 parameters and clear the previous setting. The right order
5796 should be picture parameter first and then misc parameters.
5797 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5799 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
5801 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5802 libs: decoder: jpeg: support dynamic resolution change decode.
5803 Add size_changed flag to watch out resolution. if change, reset
5804 jpeg decoder's context.
5806 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
5808 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5809 libs: encoder: h265: add low power mode encode.
5810 By now, this feature only support by media-driver on Ice Lake
5811 platform, more information you can reference:
5812 https://github.com/intel/media-driver
5814 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
5816 * gst/vaapi/gstvaapiencode.c:
5817 vaapiencode: gobject's prop_id differ from vaapi encoder
5818 The vaapi internal encoder's property id are negative, thus they are
5819 different from GObject's property ids.
5820 gst_vaapi_encoder_set_property() should map to the internal encoder
5821 property id, assigned in gst_vaapiencode_default_set_property().
5823 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
5826 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5828 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
5831 meson: use new 'python' module instead of deprecated 'python3' one
5833 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
5836 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5837 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5839 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
5844 * docs/plugins/inspect/plugin-vaapi.xml:
5848 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
5850 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5851 libs: Fix a typo in comments.
5852 Fix a typo in function description of
5853 gst_vaapi_surface_pool_new_with_chroma_type.
5854 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5856 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5858 * gst/vaapi/gstvaapipluginutil.c:
5859 plugin: if any caps in downstream, negotiate raw video
5860 When downstream has any caps, vaapi should not shovel vaapi featured
5861 buffers, but rather plain raw video, assuming always the worst case
5862 scenario (downstream cannot handle featured video memory but raw
5863 system memory buffers).
5864 This patch query the peer caps without any filter, to know if
5865 donwstream just ask for any caps, if so jump to the color space
5866 checking, otherwise do the caps intersection and continue with the
5867 feature selection algorithm.
5870 === release 1.15.2 ===
5872 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5878 * gstreamer-vaapi.doap:
5882 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5884 * docs/plugins/inspect/plugin-vaapi.xml:
5887 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
5889 * gst/vaapi/gstvaapivideomemory.c:
5890 vaapivideomemory: Prefer same format for surface and image
5891 We prefer to use the same format between image and surface for gst
5892 vaapi allocator. The old way may choose different formats between
5893 image and surface. For example, the RGBA image may have a NV12 surface.
5894 So we need to do format conversion when we put/get image to surface.
5895 Some drivers such as iHD can not support such conversion and always
5896 cause a data flow error. There may also have some performance cost
5897 for format conversion when put/get images.
5898 So we prefer to use the same format for image and surface in the
5899 allocator. If the surface can not support that format, we then
5900 fallback to find a best one as the surface format.
5901 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5903 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
5905 * gst-libs/gst/vaapi/video-format.c:
5906 libs: Delete the duplicated ARGB video format.
5907 Two ARGB formats with the same format information.
5908 Should be verbose and delete one.
5909 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5911 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
5914 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5915 glx: Stop specifying GLX_DEPTH_SIZE
5916 This code is just confused. It's asking for at least as many bits of
5917 (z-axis) depth as the root window has bits of (color) depth. For rgb565
5918 or rgb888 this is harmless, but at 10 bits per channel this demands a
5919 30-bit or deeper Z buffer. While some hardware could in principle do a
5920 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5922 We're not actually using the Z buffer, so just stop asking for one.
5924 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
5927 * gst-libs/gst/vaapi/Makefile.am:
5928 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5929 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5930 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5931 * gst-libs/gst/vaapi/meson.build:
5932 * gst/vaapi/gstvaapisink.c:
5934 libs: wayland: add support for XDG-shell protocol
5935 [wl_shell] is officially [deprecated], so provide support for the
5936 XDG-shell protocol should be provided by all desktop-like compositors.
5937 (In case they don't, we can of course fall back to wl_shell).
5938 Note that the XML file is directly provided by the `wayland-protocols`
5939 dependency and generates the protocol marshalling code.
5940 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5941 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5943 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
5945 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5946 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5947 It will help us to distinguish from other Wayland shell surface
5948 (such as XDG-shell) later on.
5950 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
5952 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5953 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5954 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5955 libs: wayland: Prefix wl_shell field with `wl_`
5956 It will help us to distinguish from other Wayland shells (such as
5957 XDG-shell) later on.
5959 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
5961 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5962 libs: display: lock ensure_profile()
5963 Thread safety patch for ensure_profile() function
5966 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5969 meson: bump the minimum wayland version requirement to 1.11.0
5970 This was missed on commit 77bb3424
5972 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5974 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5975 * gst/vaapi/gstvaapisink.c:
5976 vaapisink: x11: trap WM_DELETE_WINDOW message
5977 Register the WM_DELETE_WINDOW message from window manager and
5978 trap it to stop the pipeline cleanly.
5979 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5981 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5983 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5984 libs: window: remove native-id property
5985 native-id property is problematic since the variable that stores it is
5986 gsize, which is platform specific, and in some is bigger than unsigned
5987 long, and there are not way to handle gsize properties.
5988 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5989 like to keep using it for this scope.
5990 This patch removes the native-id property and set it manually in
5991 gst_vaapi_window_new_internal().
5993 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5995 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5996 libs: window: use G_GSIZE_MODIFIER for window id
5997 gsize type is not equal in all platforms, then the 'l' print modifier
5998 shall not be used always.
5999 This issue was found in Debian builds.
6001 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
6003 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6004 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6005 encoder: h264/h265: set SPS cbr_flag with correct value.
6006 The flag only set as 1 when the rate-control mode is CBR.
6008 === release 1.15.1 ===
6010 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6016 * gstreamer-vaapi.doap:
6020 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6022 * docs/plugins/inspect/plugin-vaapi.xml:
6025 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6027 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6028 libs: encoder: refactor to avoid code duplication
6029 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
6030 the same code segment where the coded buffer is created, the picture
6031 encoded on it and pushed to the async queue.
6032 The function gst_vaapi_encoder_encode_and_queue() refactor this.
6034 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6036 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6037 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6038 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6039 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6040 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
6041 libs: encoder: h264/h265: flush pending ordered pictures
6042 In order to flush the pending pictures, a new internal encoder vmethod
6043 is used: get_pending_reordered()
6044 This method follows an iterator pattern which will return the next
6045 picture to encode and push.
6046 The base encoder will call this function in a loop when flush() is called.
6047 For now, only H.264 and H.265 encoders implement this flushing mechanism.
6049 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com>
6051 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6052 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6053 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6054 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6055 libs: encoder: h264/h265: fix encode lose frame issue.
6056 Instead of dropping all remain frames in reorder_frame_list during
6057 flush, keep encoding.
6058 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
6060 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
6062 * gst/vaapi/gstvaapipostproc.c:
6063 vaapipostproc: before set surface proxy, check if it already been created and exist.
6064 Fix the deinterlace black frame when playing with glimagesink:
6065 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
6066 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
6068 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
6070 * gst-libs/gst/vaapi/gstvaapiutils.c:
6071 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
6073 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6075 * gst-libs/gst/vaapi/meson.build:
6076 * gst/vaapi/meson.build:
6078 * tests/meson.build:
6079 meson: build h264 fei encoder if possible
6081 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
6084 configure: bump the minimum wayland version requirement to 1.11.0
6086 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
6089 * gst-libs/gst/vaapi/Makefile.am:
6090 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6091 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6092 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6093 * gst-libs/gst/vaapi/gstvaapicompat.h:
6094 * gst-libs/gst/vaapi/gstvaapicontext.c:
6095 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6096 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6097 * gst-libs/gst/vaapi/gstvaapifilter.c:
6098 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6099 * gst-libs/gst/vaapi/gstvaapisurface.c:
6100 * gst-libs/gst/vaapi/gstvaapiutils.c:
6101 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6102 * gst-libs/gst/vaapi/meson.build:
6103 * gst/vaapi/Makefile.am:
6104 * gst/vaapi/gstvaapi.c:
6105 * gst/vaapi/gstvaapidecode.c:
6106 * gst/vaapi/gstvaapidecodebin.c:
6107 * gst/vaapi/gstvaapipluginbase.c:
6108 * gst/vaapi/meson.build:
6111 * tests/simple-decoder.c:
6112 vaapi: bump the minimum vaapi version requirement to 0.39.0
6113 And reduce unnecessary API version and structures check as well.
6114 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
6116 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6118 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6119 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6120 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6121 * tests/test-decode.c:
6122 * tests/test-filter.c:
6123 * tests/test-subpicture.c:
6124 * tests/test-textures.c:
6125 * tests/test-windows.c:
6126 libs: window: remove custom ref() and unref()
6127 Use gst_object_ref() and gst_object_unref() instead.
6129 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6131 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6132 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6133 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6134 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6135 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6136 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6137 libs: window: use its own debug category
6139 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6141 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6142 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6143 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6144 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6145 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6146 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6147 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6148 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6149 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6150 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6151 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6152 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6153 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6154 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6155 libs: window: refactor as gobject
6156 This is another step in the gobjectification of the internal library
6157 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6159 The idea is to minimize the changeset keeping the same design as
6161 GstVaapiWindow is defined as an abstract class with two properties:
6162 the GstVaapiDisplay and the native ID. Thus, many of the
6163 GstVaapiObject macros were copied as GstVaapiWindow macros.
6164 The function gst_vaapi_window_new_internal() is kept as a decorator
6165 of for calling gst_vaapi_window_create() and the possibility of
6167 The descendant classes, such as glx, still use the private
6168 structures, but through the gobject mechanism.
6170 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6172 * gst-libs/gst/vaapi/gstvaapifilter.c:
6173 libs: filter: use its own debug category
6175 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6177 * gst/vaapi/gstvaapidecode.c:
6178 * gst/vaapi/gstvaapipluginbase.c:
6179 * gst/vaapi/gstvaapipluginbase.h:
6180 * gst/vaapi/gstvaapipostproc.c:
6181 * gst/vaapi/gstvaapisink.c:
6182 plugins: Add more check for allowed raw caps.
6183 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6184 pad and src pad, which cause some bugs. For sink pad, we need to verify
6185 vaPutImage() while for the src pad we need to verify vaGetImage().
6186 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6187 to verify whether the decoded result(in some surface, NV12 format most
6188 of the time) can be vaGetImage to some raw image format. Add more check
6189 to fix all these problems.
6190 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6191 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6193 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6195 * gst/vaapi/gstvaapipostproc.c:
6196 vaapipostproc: fix csc fail when only change width or height.
6198 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6200 * tests/elements/meson.build:
6201 meson: Add gtk guard
6203 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6205 * gst/vaapi/gstvaapiencode_h264.c:
6206 libs: enc: h264: set max profile idc with correct profile.
6207 Use the highest rank of available profile as the max profile to
6209 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6211 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6213 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6214 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6215 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6216 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6217 This gets rid of the strange `do_init` macro and makes the intent a bit
6220 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6223 Automatic update of common submodule
6224 From ed78bee to 59cb678
6226 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6228 * gst-libs/gst/vaapi/gstvaapiimage.c:
6229 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6230 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6231 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6232 * gst-libs/gst/vaapi/video-format.c:
6233 * gst/vaapi/gstvaapidecode.c:
6234 * gst/vaapi/gstvaapipluginutil.h:
6235 libs: dec: h265: support decode for main-444 10bit streams.
6236 Add 444 10bit yuv format Y410, which can be used to decode
6237 main-444 10bit streams. Currently, this feature is only
6238 supported by media-driver in Icelake.
6240 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6242 * gst/vaapi/gstvaapidecode.c:
6243 * gst/vaapi/gstvaapisink.c:
6244 Run gst-indent through the files
6245 This is required before we enabled an indent test in the CI.
6246 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6248 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6250 * gst/vaapi/gstvaapipluginbase.c:
6251 plugins: modify image check of extract_allowed_surface_formats.
6252 The extract_allowed_surface_formats function just check whether
6253 we can support some kind of surface/image format pair. We just
6254 need to create a surface, create an image with the same video-format
6255 and putImage from image to surface. All these operations success,
6256 that kind of video-format is supported.
6257 The old manner do not work for some kind of video-format. For example,
6258 the RGBA kind of format will create a NV12 surface and RGBA image,
6259 and the putImage will fail because the format is not same. And so
6260 the RGBA format is not supported but actually it is supported.
6262 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6264 * gst/vaapi/gstvaapipostproc.c:
6265 vaapipostproc: add some missing locking
6266 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6267 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6269 This is needed when the pipeline is stopped during startup.
6271 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6273 * gst/vaapi/gstvaapivideomemory.c:
6275 Otherwise it will result in resource leak when failed to create
6278 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6280 * gst/vaapi/gstvaapiencode.c:
6281 vaapiencode: don't start src pad task in set_format
6282 Otherwise the task may be restarted during shutdown. Start the task in
6283 gst_vaapiencode_handle_frame() instead.
6285 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6287 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6288 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6289 * gst-libs/gst/vaapi/gstvaapiutils.c:
6290 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6291 * gst/vaapi/gstvaapidecode.c:
6292 * gst/vaapi/gstvaapipluginutil.h:
6293 libs: dec: h265: support decode for main-444 8bit streams.
6294 Add 444 8bit yuv format AYUV, which can be used to decode
6295 main-444 8bit streams. Currently, this feature is only
6296 supported by media-driver in Icelake.
6297 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6299 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6302 Add Gitlab CI configuration
6303 This commit adds a .gitlab-ci.yml file, which uses a feature
6304 to fetch the config from a centralized repository. The intent is
6305 to have all the gstreamer modules use the same configuration.
6306 The configuration is currently hosted at the gst-ci repository
6307 under the gitlab/ci_template.yml path.
6308 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6310 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6312 * gst-libs/gst/vaapi/gstvaapisurface.h:
6313 * gst-libs/gst/vaapi/gstvaapiutils.c:
6314 libs: Sync the GstVaapiChromaType to VA header file.
6315 Add more kinds of chrometype which will be used to describe
6316 new video formats. Sync it with 1.4.0 version header file.
6317 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6318 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6320 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6322 * gst-libs/gst/vaapi/meson.build:
6323 meson: link with -lm
6324 Fixes #117 hopefully.
6326 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6329 meson: bump meson required to 0.47 for feature options
6331 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6333 * gst-libs/gst/vaapi/video-format.c:
6334 libs: Modify the video format of endianness.
6335 We lack some video format because endianness declare.
6336 The video format should not directly relate to endianness. For example,
6337 ARGB on big endian should not be simplely seen as BGRA on little endian
6338 machine. We should provide endianess convert or format convert help
6339 functions if endianness does not match.
6340 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6341 Signed-off-by: Junyan He <junyan.he@intel.com>
6343 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6345 * gst/vaapi/gstvaapipluginutil.c:
6346 plugins: Fix build error when GL is enabled while EGL is disabled.
6347 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6348 unused-variable warning and may block build when Werror enabled.
6349 Several functions like gst_vaapi_display_egl_new_with_native_display
6350 have no prototype warning and link error when GL is enabled but EGL
6351 is disabled. Fix all these warning and link error.
6352 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6353 Signed-off-by: Junyan He <junyan.he@intel.com>
6355 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6357 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6358 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6359 libs: encoder: h264/h264fei: remove unuseless code.
6360 The variable are set twice, remove previous one.
6361 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6363 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6365 * tests/simple-encoder.c:
6366 * tests/test-fei-enc-in.c:
6367 tests: check return value when using gst_buffer_map.
6368 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6370 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6373 * meson_options.txt:
6374 * tests/elements/meson.build:
6375 * tests/meson.build:
6376 build: meson: build examples
6378 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6380 * gst-libs/gst/vaapi/meson.build:
6381 build: meson: declare headers for libgstvaapi
6382 Thus handling its recompilation if needed.
6384 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6387 Update common submodule location
6388 Remove the git directory
6390 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6393 * gstreamer-vaapi.doap:
6394 Clone the code from gitlab
6395 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6397 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6399 * gst-libs/gst/vaapi/gstvaapiimage.c:
6400 * gst-libs/gst/vaapi/gstvaapisurface.h:
6401 * gst-libs/gst/vaapi/gstvaapiutils.c:
6402 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6403 * gst-libs/gst/vaapi/video-format.c:
6404 * gst/vaapi/gstvaapidecode.c:
6405 * gst/vaapi/gstvaapipluginutil.h:
6406 libs: dec: h265: support decode for main-10-422 10bit streams.
6407 Add 422 10bit yuv format Y210, which can be used to decode
6408 main-10-422 10bit streams. Currently, this feature is only
6409 supported by media-driver in Icelake.
6410 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6412 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6414 * gst-libs/gst/vaapi/gstvaapicontext.c:
6415 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6416 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6417 rate control mode is set as CQP. In CQP mode, it shouldn't check
6418 roi_rc_qp_delta_support return value from driver backend.
6419 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6421 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6423 * gst/vaapi/gstvaapipostproc.c:
6424 vaapipostproc: fix classification string
6425 The classification string is splitted by '/' and then looks for the
6427 This patch removes the ';' by unifying all the components.
6429 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6431 * gst/vaapi/gstvaapipostproc.c:
6432 vaapipostproc: Add Hardware classifier to metadata
6434 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6436 * gst-libs/gst/vaapi/gstvaapicontext.c:
6437 libs: context: create context first before using it to create surface.
6438 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6439 sure to create it first before allocating its associated surfaces.
6440 This patch fixes a regression introduced in commit 82872f4 because
6441 the formats available in the current context now are ensured before
6442 creating the context's surfaces.
6443 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6445 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6447 * docs/plugins/inspect/plugin-vaapi.xml:
6448 * gst/vaapi/gstvaapidecode.c:
6449 * gst/vaapi/gstvaapiencode_h264.c:
6450 * gst/vaapi/gstvaapiencode_h264_fei.c:
6451 * gst/vaapi/gstvaapiencode_h265.c:
6452 * gst/vaapi/gstvaapiencode_jpeg.c:
6453 * gst/vaapi/gstvaapiencode_mpeg2.c:
6454 * gst/vaapi/gstvaapiencode_vp8.c:
6455 * gst/vaapi/gstvaapiencode_vp9.c:
6456 gst: Advertise elements interacting with hardware devices
6458 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6460 * gst-libs/gst/vaapi/gstvaapicontext.c:
6461 * gst-libs/gst/vaapi/gstvaapisurface.c:
6462 * gst-libs/gst/vaapi/gstvaapisurface.h:
6463 libs: context: query surface format before context to create surface.
6464 Before using context to create surface, the supported surface format
6465 should be checked first.
6466 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6468 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6470 * gst-libs/gst/vaapi/gstvaapiimage.c:
6471 * gst-libs/gst/vaapi/gstvaapivalue.c:
6472 libs: replace g_error with GST_ERROR
6473 And handle those errors rather than halting.
6475 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6477 * gst-libs/gst/vaapi/gstvaapiimage.c:
6478 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6479 * gst-libs/gst/vaapi/gstvaapisurface.c:
6480 libs: replace g_warning with GST_WARNING
6482 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6484 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6485 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6486 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6487 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6488 libs: Move from g_debug to GST_DEBUG.
6489 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6491 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6493 * gst/vaapi/gstvaapipostproc.c:
6494 vaapipostproc: change the way of handling deinterlace
6495 The current vaapipostproc calls driver's video processing
6496 pipeline for deinterlacing only if it is Advance deinterlacing.
6497 Modify in the way that it always tries with driver's video
6498 processing pipeline for deinterlacing, and falls back to software
6499 method of appending picture structure meta data only if it fails
6500 with driver's method.
6501 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6503 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6505 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6506 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6507 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6508 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6509 from T-REC-H.264-201704.
6510 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6512 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6514 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6515 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6516 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6517 * gst-libs/gst/vaapi/gstvaapisurface.c:
6518 * gst-libs/gst/vaapi/gstvaapiutils.c:
6519 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6520 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6521 * gst-libs/gst/vaapi/video-format.c:
6522 * gst-libs/gst/vaapi/video-format.h:
6523 * gst/vaapi/gstvaapidecode.c:
6524 * gst/vaapi/gstvaapipluginbase.c:
6525 * gst/vaapi/gstvaapipluginutil.h:
6526 libs: dec: h265: add 422 chroma format support.
6527 Add main-422-10 profile which support 422 chroma format stream.
6528 Currently, this feature is only supported by media-driver in Icelake.
6529 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6531 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6533 * tests/y4mreader.c:
6534 tests: include sysdeps.h in compilation unit
6535 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6536 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6538 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6540 * tests/y4mreader.c:
6541 * tests/y4mreader.h:
6542 tests: fix compilation
6543 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6545 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6547 * tests/y4mreader.h:
6548 tests: don's use sysdeps.h in header
6550 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6552 * gst-libs/gst/vaapi/gstvaapiutils.h:
6553 libs: utils: no need of include config.h
6555 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6559 * tests/test-decode.c:
6560 * tests/test-subpicture.c:
6561 tests: remove already include string.h
6562 Since sysdeps.h includes string.h there's no need to include it again.
6564 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6566 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6567 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6568 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6569 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6570 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6571 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6572 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6573 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6574 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6575 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6576 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6577 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6578 * gst-libs/gst/vaapi/gstvaapiimage.c:
6579 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6580 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6581 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6582 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6583 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6584 libs: remove already include string.h
6585 Since sysdeps.h includes string.h there's no need to include it again.
6587 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6589 * gst-libs/gst/vaapi/gstvaapiobject.h:
6590 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6591 * gst/vaapi/gstvaapivideometa_texture.c:
6592 libs: object: separation of internal API and plugins
6593 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6594 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6596 The purpose is readability.
6597 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6599 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6601 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6602 libs: parser_frame: change macros for inlined functions
6603 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6605 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6607 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6608 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6609 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6610 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6611 libs: videopool: remove unneeded code
6612 The removed code comes frome the bad practice of copy&paste. Better
6613 move it as internal function.
6614 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6616 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6618 * gst-libs/gst/vaapi/Makefile.am:
6619 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6620 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6621 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6622 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6623 * gst-libs/gst/vaapi/gstvaapiobject.c:
6624 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6625 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6626 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6627 * gst-libs/gst/vaapi/gstvaapitexture.c:
6628 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6629 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6630 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6631 * gst-libs/gst/vaapi/meson.build:
6632 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6633 This conditional code was when libgstvaapi was intended to be library
6634 used outside GStreamer. This not the case anymore, thus removing it.
6635 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6637 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6639 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6640 libs: dec: h265: fix the macros used for IDC profile
6641 profile_idc flag in SPS only indicate the IDC profile, which may
6642 need some other flags together to get the real profile.
6643 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6645 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6647 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6648 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6649 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6650 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6651 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6652 libs: use g_clear_pointer() when possible
6653 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6655 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6657 * gst-libs/gst/vaapi/gstvaapifilter.h:
6658 libs: filter: add gobject's cleanup function
6660 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6662 * gst-libs/gst/vaapi/gstvaapifilter.c:
6663 * gst-libs/gst/vaapi/gstvaapifilter.h:
6664 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6665 * tests/test-filter.c:
6666 libs: filter: remove custom ref() and unref()
6667 Replacing them by gst_object_ref() and gst_object_unref()
6668 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6670 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6672 * gst-libs/gst/vaapi/gstvaapifilter.c:
6673 * gst-libs/gst/vaapi/gstvaapifilter.h:
6674 libs: filter: refactor filter as gobject
6675 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6677 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6679 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6680 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6681 libs: decoder: remove destoy() and create() callbacks
6682 They were all replaced by reset()
6683 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6685 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6687 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6688 libs: decoder: vp9: implement reset() callback
6689 remove destroy() and create() callback
6690 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6692 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6694 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6695 libs: decoder: vp8: implement reset() callback
6696 remove create() and destroy() callbacks
6697 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6699 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6701 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6702 libs: decoder: vc1: implement reset() callback
6703 remove destroy() and create() callbacks
6704 use g_clear_pointer for rbdu_buffer
6706 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6708 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6710 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6711 libs: decoder: mpeg4: implement reset() callback
6712 remove destroy() and create() callback
6713 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6715 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6717 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6718 libs: decoder: mpeg2: implement reset() callback
6719 remove create() and destroy() callbacks
6720 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6722 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6724 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6725 libs: decoder: jpeg: implement reset() callback
6726 and remove create() and destroy() callbacks.
6727 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6729 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6731 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6732 libs: decoder: h265: implement reset() callback
6733 and remove create() and destroy()
6734 and use g_clear_pointer for dpb structure
6735 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6737 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6739 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6740 libs: decoder: h264: remove create() and destroy() callbacks
6741 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6743 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6745 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6746 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6747 * tests/test-decode.c:
6748 * tests/test-subpicture.c:
6749 libs: decoder: remove gst_vaapi_decoder_unref()
6750 Replaced by gst_object_unref() in tests
6751 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6753 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6755 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6756 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6757 libs: decoder: remove gst_vaapi_decoder_ref()
6758 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6760 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6762 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6763 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6764 libs: decoder: remove gst_vaapi_decoder_new()
6765 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6767 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6769 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6770 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6771 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6772 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6773 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6774 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6775 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6776 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6777 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6778 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6779 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6780 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6781 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6782 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6783 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6784 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6785 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6786 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6787 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6788 libs: decoder: refactor decoders as gobject
6789 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6791 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6793 * gst/vaapi/gstvaapidecode.c:
6794 vaapidecode: Requests upstream a key unit at parse or decode error.
6795 This is done to resume decoding after a parse error or decode error.
6796 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6798 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6800 * gst/vaapi/gstvaapidecode.c:
6801 vaapidecode: sets return value in failure case.
6802 In gst_vaapidecode_handle_frame, when there is a decode error
6803 there is a code path the returns an uninitialized value.
6804 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6806 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6808 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6809 libs: display: lock at extracting available image formates
6810 When running several vaapi elements at the concurrently, at
6811 initialization, there is a race condition when extractin the avaible
6812 formats for images and subpictures.
6813 This patch add a lock when the those arrays are filled.
6814 https://bugzilla.gnome.org/show_bug.cgi?id=797039
6816 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
6819 meson: Sync libversion and osxversion code from other repos
6820 gstreamer-vaapi does not build any libraries, only plugins, so this is
6821 not used, but sync it just in case someone does add it in the future.
6823 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6825 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6826 libs: encoder: h265: trivial documentation fix
6828 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
6830 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6831 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6832 libs: encoder: h265: add low delay B frame support.
6833 Low delay B frame provide the function of transforming
6834 P frame into low delay B frame which frame type is B, but
6835 only reference predictive frames. This can be used when P
6836 frame unsupported. Especially for P and B both unsupported,
6837 in this case, I and low delay B frame can be encoded in a
6839 https://bugzilla.gnome.org/show_bug.cgi?id=796984
6841 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6843 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6844 libs: decoder: h264: Avoid using picture after it has been free
6845 In some cases, the found_picture ended up being evicted and freed, which
6846 would lead to a use after free when accessing picture->base.poc. In this
6847 fix, we take a ref on the picture before calling dpb_evict.
6848 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6850 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6852 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6853 h264decoder: Fail decoding slice with missing inter-view reference
6854 Similarly to previous patch, we have no error concealment. As a side
6855 effect, it's better to skip slices with missing references then passing
6856 NULL pointers to the accelerator. Passing NULL pointer would lead to
6857 major visual artifact, a behaviour that is likely undefined.
6858 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6860 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
6862 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6863 libs: decoder: h264: reset context when the number of view is increased
6864 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6865 That's why it resets context without this patch.
6866 But for some media it doesn't increase dpb size. Even in this case we
6867 should reset context to deal with MVC decoding.
6868 Otherwise, it leads to assert.
6869 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6871 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6873 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6874 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6875 * gst/vaapi/gstvaapidecode.c:
6876 vaapidecode: Skip unparsable units from adapter
6877 If the unit could not be parsed, just skip this nal and keep parsing
6878 what is left in the adapter. We need to flush the broken unit in the
6879 decoder specific parser because the generic code does not know about
6880 units boundary. This increases error resilliance.
6881 Before this, the broken unit would stay in the adapter and EOS would be
6882 returned. Which stopped the streaming. Just removing the EOS would have
6883 lead to the adapter size growing indefinitely.
6884 https://bugzilla.gnome.org/show_bug.cgi?id=796863
6886 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6888 * gst/vaapi/gstvaapidecode.c:
6889 vaapidecoder: Don't error out on decode errors
6890 This is problematic on live pipeline where loosing network can
6891 cause an important amount of errors.
6892 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6894 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6896 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6897 h265decoder: Don't scan empty buffer
6898 Same as what we did for H264 decoder, this is to avoid an assertion
6900 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6902 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6904 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6905 libs: h264: renable the vaapi category for logging
6906 h264 log messages were logged in default category because a regression
6907 in code. This patch renable the usage of vaapi logging category.
6908 This regression was introduced in commit 7c365bdd.
6910 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6912 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6913 h264decoder: Fail decoding slice if modification process failed
6914 This patch chains up failure to executing the modification process. The
6915 end result is that we now fail decoding the slice if this process fails.
6916 This avoid sending a corrupted state to the accelerator. In some special
6917 cases, this could lead to unrecoverable errors.
6918 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6920 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6922 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6923 h264decoder: Don't scan empty buffer
6924 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6925 try and scan in that case. This fixes assertion that would some times
6926 happen when the stream is corrupted.
6927 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6929 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
6931 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6932 libs: encoder: jpeg: set component id and Tqi
6933 This change is due a problem encoding JPEGs with Intel's
6934 media-driver: green/black image when playback jpeg
6935 This patch sets component identifier and quantization table
6936 destination selector in frame header to support packing headers
6937 by Intel's media-driver that does not accept packed header
6939 https://bugzilla.gnome.org/show_bug.cgi?id=796705
6941 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
6943 * gst/vaapi/gstvaapipluginutil.c:
6944 pluginutil: downgrade unsupported driver logging
6945 On systems with an Nvidia card, this error is output each time
6946 the registry is rebuilt, which happens pretty often when
6947 using gst-build as a development environment.
6948 https://bugzilla.gnome.org/show_bug.cgi?id=796663
6950 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
6952 * gst/vaapi/gstvaapivideobufferpool.c:
6953 Update for g_type_class_add_private() deprecation in recent GLib
6955 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6957 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6958 h264dec: Remove false assumption about parity order
6959 The decoder was trying to detect earlier that a field was lost base
6960 on guessing the parity order. This breaks in streams were the parity
6962 This patch reverts the field order prediction code added by commit
6964 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6966 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6968 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6969 h264dec: Properly set sentinel in ref frame list
6970 This ensure that we always have sentinels set in the reference
6971 pictures arrays. The code wasn't unsafe, this simply improve the
6972 tracing, so instead of printing 32 lines of zeros, va tracer
6973 prints proper empty lists.
6974 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6976 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6978 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6979 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6980 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6981 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6982 * gst-libs/gst/vaapi/gstvaapifilter.c:
6983 * gst-libs/gst/vaapi/gstvaapiobject.c:
6984 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6985 * gst/vaapi/gstvaapipluginbase.c:
6986 * gst/vaapi/gstvaapivideometa.c:
6987 * tests/test-decode.c:
6988 libs: display: remove gst_vaapi_display_ref()
6989 Replace it with gst_object_ref()
6990 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6992 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6994 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6995 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6996 * gst/vaapi/gstvaapi.c:
6997 * gst/vaapi/gstvaapidecode.c:
6998 * gst/vaapi/gstvaapiencode.c:
6999 * gst/vaapi/gstvaapipluginbase.c:
7000 * gst/vaapi/gstvaapipluginutil.c:
7002 * tests/simple-encoder.c:
7003 * tests/test-decode.c:
7004 * tests/test-display.c:
7005 * tests/test-fei-enc-in.c:
7006 * tests/test-filter.c:
7007 * tests/test-subpicture.c:
7008 * tests/test-surfaces.c:
7009 * tests/test-textures.c:
7010 * tests/test-windows.c:
7011 libs: display: remove gst_vaapi_display_unref()
7012 Use gst_object_unref() instead.
7013 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7015 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7017 * gst/vaapi/gstvaapivideobufferpool.c:
7018 vaapibufferpool: declare parameter display as object
7019 We have neglected to update this code since GstVaapiDisplay turned
7020 into a GstObject descendant.
7021 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7023 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
7025 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7026 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7027 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7028 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
7029 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7030 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7031 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7032 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
7033 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
7034 But still something breaking GObject code convention remains, which is
7035 calling gst_vaapi_display_new() in each decendants.
7036 This patch replaces it with gst_vaapi_display_config(), defined in private
7038 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7040 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7042 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7043 libs: display: redefine gst_vaapi_display_create()
7044 The function name was gst_vaapi_display_create_unlocked(), nonetheless
7045 it wasn't called unlocked. In order to keep the semantics this patch
7046 renames the gst_vaapi_display_create_unlocked() as
7047 gst_vaapi_display_create(), removing the previous function
7048 gst_vaapi_display_create().
7049 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7051 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7054 Revert "build: meson: libva gst-uninstall friendly"
7055 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
7057 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7059 * gst/vaapi/gstvaapipluginutil.c:
7060 plugins: fix compilation
7061 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
7063 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7066 build: meson: libva gst-uninstall friendly
7067 Make gstreamer-vaapi to use libva uninstalled.
7069 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7071 * gst/vaapi/gstvaapipluginutil.c:
7072 plugins: refactor gst_vaapi_create_display_from_gl_context()
7073 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
7074 This path refactors it, in order to make the code readable and
7076 https://bugzilla.gnome.org/show_bug.cgi?id=796564
7078 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7080 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7081 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7082 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7083 libs: display: resurrect parent private member
7084 This is, practically, a revert of commit dcf135e2.
7085 The parent logic is useful for the EGL display, which is a decorator
7086 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
7087 calling vaInitialize() and vaTerminate() twice.
7088 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7090 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7092 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7093 libs: display: egl: initialize params structure
7094 Statically initialise the internal params structure.
7095 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7097 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7099 * gst/vaapi/gstvaapipluginutil.c:
7100 plugins: handle EGL when creating VAAPI display from gl
7101 If GstGL reports a EGL platform force to create a EGL display using
7102 the native EGL display.
7103 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7105 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
7107 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7108 * gst/vaapi/gstvaapipluginutil.c:
7109 display: egl: create VaapiDisplayEGL with native EGL display
7110 gst_vaapi_display_egl_new_with_native_display() has been broken since
7112 Currently it's needed to call this API to create a display providing
7113 the EGL display, so it could avoid duplicated calls to the native
7114 display (eg. eglTerminate).
7115 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
7116 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7118 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
7120 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7121 libs: decoder: release VA buffers after vaEndPicture
7122 This change is due a problem decoding JPEGs with Intel's media-driver:
7123 no image was generated.
7124 This patch relases the VA buffers after vaEndPicture() is called,
7125 and not before (after vaRenderPicture()).
7126 https://bugzilla.gnome.org/show_bug.cgi?id=796505
7128 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
7130 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7131 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
7132 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
7133 meson: fix build when xrender or xrandr are not available
7134 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
7136 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7138 * gst/vaapi/gstvaapipostproc.c:
7139 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7140 Otherwise a reference to a DMABuf input buffer is kept until the output
7142 https://bugzilla.gnome.org/show_bug.cgi?id=796399
7144 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7146 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7147 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7148 libs: display: remove unnecessary legacy code since gobjectification
7149 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7151 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7153 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7154 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7155 libs: display: remove unused code
7156 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7158 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7160 * gst/vaapi/gstvaapiencode_h264.c:
7161 vaapiencode: h264: log output caps
7163 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7165 * gst/vaapi/gstvaapiencode_h264.c:
7166 vaapiencode: h264: find profile in available and allowed caps
7167 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7168 find best profile in those available") changed the code to pick a profile
7169 that is actually supported by the hardware. Unfortunately it dropped the
7170 downstream constraints. This can cause negotiation failures under certain
7172 The fix is split in two cases:
7173 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7175 * The best allowed profile (pipeline's caps) is set as the encoding
7176 target profile (it will be adjusted later by the available profiles
7178 2\ the available VA-API caps does intersect with pipeline's allowed
7180 * The intersected caps are fixed, and its profile is set as the
7181 encoding target profile. In this case the is not the best profile,
7182 but the minimal one (if VA-API reports the profiles in order).
7183 Setting the minimal profile of the intersected caps is better for
7185 This patch fixes other tests related with caps negotiation, for
7186 example, it handles baseline profile, even when VA only supports
7187 constrained-baseline.
7188 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7189 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7191 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7193 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7194 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7195 The specification says,
7196 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7197 This patch changes the upper limit from 6 to 12.
7198 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7200 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7202 * gst/vaapi/gstvaapipluginutil.c:
7203 plugins: guard GstGL code
7205 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7207 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7208 libs: decoder: h264: use g_clear_pointer()
7210 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7212 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7213 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7214 libs: decoder: mpeg4, vc1: remove unused header
7216 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7218 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7219 libs: decoder: remove unused forward declaration
7221 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7224 fix configure.ac regression
7225 Fixes regression introduced by 77527d67abe
7226 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7228 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7230 * gst-libs/gst/Makefile.am:
7231 * gst-libs/gst/base/Makefile.am:
7232 * gst-libs/gst/base/gstbitwriter.c:
7233 * gst-libs/gst/base/gstbitwriter.h:
7234 * gst-libs/gst/base/meson.build:
7235 * gst-libs/gst/meson.build:
7236 * gst-libs/gst/vaapi/Makefile.am:
7237 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7238 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7239 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7240 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7241 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7242 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7243 * gst-libs/gst/vaapi/meson.build:
7244 libs: remove gstbitwriter
7245 Since it is deployed in gstreamer-core, there is no need to use
7247 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7249 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7251 * gst/vaapi/gstvaapidecode.c:
7252 vaapih264dec: add constrained and progressive profiles
7253 Those profiles have been added in the version 2012-01
7254 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7255 Both are supported by VAProfileH264High
7256 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7258 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7260 * gst/vaapi/gstvaapipluginbase.c:
7261 * gst/vaapi/gstvaapipluginutil.c:
7262 * gst/vaapi/gstvaapivideocontext.c:
7263 * gst/vaapi/gstvaapivideocontext.h:
7264 plugin: remove custom GstGL context handling
7265 Instead of using our own context handling for looking for GstGL
7266 parameters (display, context and other context), this patch changes
7267 the logic to use the utility function offered by GstGL.
7268 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7270 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7272 * gst/vaapi/gstvaapipluginbase.c:
7273 plugins: GstGL API must use the member variables
7274 This commit basically is a revert of commits 8092537 and fc1c415
7275 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7277 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7279 * gst/vaapi/gstvaapipluginbase.c:
7280 plugins: pass members as parameters of gst_gl_ensure_element_data()
7281 The parameters of gst_gl_ensure_element_data() have to be not
7282 local variable since they are going to be used to see if they're
7283 set in gst_element_set_context() inside the API.
7284 This is basically a revert of commit 3d56306c
7285 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7287 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7290 meson: fix USE_GLES_VERSION_MASK
7291 1. The macro in the code is USE_GLES_VERSION_MASK
7292 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7294 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7296 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7298 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7299 libs: egl: utils: mark context as wrapped when it is
7300 The returning egl context may be null, so we should check the
7302 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7304 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7306 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7307 libs: egl: utils: fix usage of GstGL macros
7308 Include gl.h for the required GstGL symbols.
7309 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7311 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7314 meson: use -Wl,-Bsymbolic-functions where supported
7315 Just like the autotools build.
7317 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7320 meson: use get_pkgconfig_variable()
7321 Use get_pkgconfig_variable() method, of dependency class, rather
7322 than using run_command().
7324 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7326 * gst-libs/gst/base/meson.build:
7327 * gst-libs/gst/vaapi/meson.build:
7329 meson: fix miscellaneous meson warnings
7330 WARNING: Passed invalid keyword argument "rqeuired".
7331 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7332 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7333 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7334 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7336 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7338 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7339 display: drm: Allow finding DRM paths out of the PCI subsystem
7340 This removes hard-coded checks on the parent subsystem of potential DRM
7341 devices. These checks were set to exlude devices that do not originate
7342 from the PCI bus, which is only a valid approach on x86 devices.
7343 Other devices may have a DRM device originating from the platform
7344 subsystem, so the checks that were previously restricted to PCI are
7345 extended to cover platform devices as well.
7346 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7347 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7349 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7351 * gst/vaapi/gstvaapivideocontext.c:
7352 videocontext: support wl-display in "gst.vaapi.app.Display"
7353 Through "gst.vaapi.app.Display" context, users can set their own
7354 VADisplay and native display of their backend.
7355 So far we support only X11 display, from now we also support Wayland
7358 - wl-display : pointer of struct wl_display .
7359 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7361 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7363 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7364 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7365 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7366 Implements new API function so that users could create GstVaapiDisplay
7367 with their own VADisplay within a native display as backend.
7368 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7370 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7372 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7373 wayland: don't poll if there are no pending frames
7374 Otherwise the following poll may not return for an arbitrary amount of
7375 time. This can happen if another wayland event queue has flushed and read
7377 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7379 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7381 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7382 libs: encoder: h265: 16 bit rounding of picture width and height
7383 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7385 In addition, codedbuf_size must be calculated according to this change.
7386 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7388 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7391 Automatic update of common submodule
7392 From 3fa2c9e to ed78bee
7394 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7396 * gst/vaapi/gstvaapiencode_h264.c:
7397 vaapiencode: h264: find best profile in those available
7398 Instead to look for the best profile in the allowed profiles by
7399 downstream, the encoder should look for the base profile in the
7400 available profile in VA-API.
7401 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7403 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7408 * docs/plugins/inspect/plugin-vaapi.xml:
7412 === release 1.14.0 ===
7414 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7419 * gstreamer-vaapi.doap:
7423 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7425 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7426 libs: decoder: h264: ensure num_ref_frames is greater than 0
7427 Even if it is the h264parse fault or bad video file, vaapih264dec
7428 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7429 as the driver might use it.
7430 Also see "info.ref_frames = dpb_size;" in
7431 gstvaapidecoder_h264.c::ensure_context
7432 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7434 === release 1.13.91 ===
7436 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7441 * gstreamer-vaapi.doap:
7445 === release 1.13.90 ===
7447 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7452 * gstreamer-vaapi.doap:
7456 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7458 * gst/vaapi/gstvaapipostproc.c:
7459 vaapipostproc: change how the metadata is copied
7460 Instead of copying the metada in prepare_output_buffer() vmethod,
7461 it is done in append_output_buffer_metadata() thus deinterlaced
7462 buffers could also have the proper metas.
7463 GstVideoCropMeta now it is copied internally and it is decided via
7464 transform_meta() vmethod.
7465 A new internal method, copy_metadata() was added to handle VPP
7466 transformation where non-GstVideoVaapiMeta metas were lost.
7468 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7470 * gst/vaapi/gstvaapipostproc.c:
7471 postproc: Copy meta data from input to output
7472 This will ensure that meta data without memory tags will be copied. This
7473 was noticed when testing ROI.
7474 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7476 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7478 * tests/elements/test-roi.c:
7479 tests: element: rewrite ROI test
7480 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7481 than injecting GstEvents. These meta are added as a pad probe in
7484 * Use of navigation messages to control de test
7485 * Use signal watch for processing messages
7486 * Change to H265 rather than H264 since current intel-vaapi-driver
7487 only supports ROI on kabylake.
7488 TODO: add a parameter to change the encoder/decoder to test.
7489 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7491 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7493 * gst-libs/gst/vaapi/gstvaapicontext.c:
7494 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7495 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7496 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7497 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7498 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7499 libs: encoder: reimplement ROI using meta
7500 Check input buffers for ROI metas and pass them to VA. Also added a
7501 new "default-roi-delta-qp" property in order to tell the encoder what
7502 delta QP should be applied to ROI by default.
7503 Enabled it for H264 and H265 encoders.
7504 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7506 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7508 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7509 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7510 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7511 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7512 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7513 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7515 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7517 * tests/simple-encoder.c:
7518 Revert "tests: simple-encoder: add an option to set ROI"
7519 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7520 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7522 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7524 * gst/vaapi/gstvaapiencode.c:
7525 * gst/vaapi/gstvaapiencode_h264.c:
7526 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7527 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7528 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7530 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7532 * gst/vaapi/gstvaapipluginbase.c:
7533 plugins: copy input buffer metas
7534 When importing buffers to a VA-base buffer, it is required to copy
7535 the metas in the original buffer, otherwise information will be
7536 lost, such as GstVideoRegionOfInterestMeta.
7537 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7539 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7541 * gst-libs/gst/vaapi/gstvaapisurface.c:
7542 libs: surface: cast to uintptr_t pointer
7543 According to Debian package auto-building, uintptr_t is not an
7544 unsigned long in i386 arch, raising an "incompatible pointer type"
7546 This patch adds a casting for compiler's satisfaction in i386.
7548 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7550 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7551 libs: encoder: add zero as valid value for periodic keyframe.
7552 Enabled zero as valid value for keyframe-period property.
7553 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7555 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7557 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7558 libs: encoder: code-style fix
7560 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7562 * gst/vaapi/gstvaapidecode.c:
7563 vaapidecode: generate system allocated buffers
7564 Generate system allocated output buffers when downstream doesn't
7565 support GstVideoMeta.
7566 The VA buffer content is copied to the new output buffer, and it
7567 replaces the VA buffer.
7568 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7570 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7572 * gst/vaapi/gstvaapipostproc.c:
7573 vaapipostproc: handle system allocated buffers when required
7574 When downstream can't handle GstVideoMeta it is required to send
7575 system allocated buffers.
7576 The system allocated buffers are produced in prepare_output_buffer()
7577 vmethod if downstream can't handl GstVideoMeta.
7578 At transform() vmethod if the buffer is a system allocated buffer,
7579 a VA buffer is instanciated and replaces the out buffer. Later
7580 the VA buffer is copied to the system allocate buffer and it
7581 replaces the output buffer.
7582 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7584 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7586 * gst/vaapi/gstvaapipluginbase.c:
7587 * gst/vaapi/gstvaapipluginbase.h:
7588 plugins: add gst_vaapi_copy_va_buffer()
7589 This helper function aims to copy buffers with VA memory to dumb
7590 buffers, when GstVideoMeta is not available dowstream.
7591 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7593 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7595 * gst/vaapi/gstvaapipluginbase.c:
7596 * gst/vaapi/gstvaapipluginbase.h:
7597 plugins: add COPY_OUTPUT_FRAME flag
7598 This patch add the member copy_output_frame and set it TRUE when
7599 when downstream didn't request GstVideoMeta API, the caps are raw
7600 and the internal allocator is the VA-API one.
7601 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7603 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7605 * gst/vaapi/gstvaapipluginbase.c:
7606 * gst/vaapi/gstvaapipluginbase.h:
7607 plugins: store the first downstream allocator if available
7608 The allocator will be required if we need to allocate a buffer
7609 to store the frame with the expected strides.
7610 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7612 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7614 * gst/vaapi/gstvaapivideobufferpool.c:
7615 * gst/vaapi/gstvaapivideobufferpool.h:
7616 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7617 This function will inform the element if it shall copy the generated
7618 buffer by the pool to a system allocated buffer before pushing it
7620 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7622 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7624 * gst/vaapi/gstvaapivideobufferpool.c:
7625 vaapibufferpool: don't change config when forcing video meta
7626 VA-API based buffer might need a video meta because of different
7627 strides. But when donwstream doesn't support video meta we need to
7628 force the usage of video meta.
7629 Before we changed the buffer pool configuration, but actually this
7630 is a hack and we cannot rely on that for downstream.
7631 This patch add a check fo raw video caps and allocator is VA-API,
7632 then the option is enabled without changing the pool configuration.
7633 In this case the element is responsible to copy the frame to a
7634 simple buffer with the expected strides.
7635 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7637 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7639 * gst/vaapi/gstvaapipostproc.c:
7640 vaapipostproc: set discont flag at vpp deinterlacing
7641 When deinterlacing with VPP the discont flag was not forwarded to
7642 the new created buffer. This patch sets the discont flag if input
7645 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7647 * gst/vaapi/gstvaapivideobufferpool.h:
7648 vaapibufferpool: remove wrong gcc annotation
7650 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7652 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7653 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7654 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7655 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7656 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7657 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7658 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7659 libs: encoder: h264,h265: extend max periodic keyframe.
7660 Increased max values of periodic key frame for h26x codecs.
7661 This allow more fine tunning of encoder that in certian scenario
7662 want higher periodic key frame.
7663 For example: it doesn't want a key frame each 10 seconds but
7665 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7667 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7673 === release 1.13.1 ===
7675 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7680 * gstreamer-vaapi.doap:
7684 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7686 * gst/vaapi/Makefile.am:
7687 vaapi: dist new header
7689 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7691 * gst/vaapi/gstvaapi.c:
7692 vaapi: register vaapisink as marginal on wayland
7693 vaapsink, when used with the Intel VA-API driver, tries to display
7694 surfaces with format NV12, which are handled correctly by
7695 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7696 pipelines on mutter.
7697 This shall be solved either by COGL or by making the driver to paint
7698 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7699 marginal when the Wayland environment is detected, no matter if it is
7701 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7703 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7705 * gst/vaapi/gstvaapipluginutil.c:
7706 plugins: update mesa's vendor string in whitelist
7707 Mesa has updated its VA-API Gallium driver vendor string:
7708 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7709 This patch tries to cover both, the old and the new one.
7710 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7712 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7715 meson: make version numbers ints and fix int/string comparison
7716 WARNING: Trying to compare values of different types (str, int).
7717 The result of this is undefined and will become a hard error
7718 in a future Meson release.
7720 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7722 * gst/vaapi/gstvaapipluginbase.c:
7723 plugins: handle vaapi allocator in allocation query
7724 In propose_allocation() if the numer of allocation params is zero, the
7725 system's allocator is added first, and lastly the native VA-API
7727 In decide_allocation(), the allocations params in query are travered,
7728 looking for a native VA-API allocator. If it is found, it is reused as
7729 src pad allocator. Otherwise, a new allocator is instantiated and
7730 appended in the query.
7731 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7733 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7735 * gst/vaapi/gstvaapivideomemory.h:
7736 vaapivideomemory: remove unused macro
7737 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7738 was never used, since the native VA-API allocator name has been
7739 GST_VAAPI_VIDEO_MEMORY_NAME.
7740 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7741 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7743 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
7745 * gst/vaapi/gstvaapisink.c:
7746 vaapisink: don't mask button events for foreign windows
7747 Don't subscribe to button press events when using a foreing window,
7748 because the user created window would trap those events, preveting the
7750 https://bugzilla.gnome.org/show_bug.cgi?id=791615
7752 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
7755 autotools: use -fno-strict-aliasing where supported
7756 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7758 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
7761 meson: use -fno-strict-aliasing where supported
7762 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7764 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
7766 * gst/vaapi/gstvaapi.c:
7767 vaapi: add NULL-sentinel to kernel_names
7768 The array needs to be NULL-terminated according to the
7769 gst_plugin_add_dependency() documentation.
7771 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7773 * gst/vaapi/gstvaapipostprocutil.c:
7774 vaapipostproc: remove spurious code
7775 This assignation is dead code, since gst_video_info_from_caps() set
7777 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7779 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7781 * gst/vaapi/gstvaapipostprocutil.c:
7782 vaapipostproc: if no p-a-r in out caps define a range
7783 Instead of copying the pixel-aspect-ratio from the sink caps, define
7784 an open range for the src caps pixel-aspect-ratio. Later it will be
7786 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7788 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7790 * gst/vaapi/gstvaapisink.c:
7791 vaapisink: check for display's color-balance properties
7792 Check for display's color-balance properties, available by the VA-API
7793 driver, before setting them.
7794 Also logs an info message of those unavailable properties.
7795 https://bugzilla.gnome.org/show_bug.cgi?id=792638
7797 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7799 * gst/vaapi/gstvaapipluginbase.c:
7800 plugins: re-using buffer pool breaks renegotiation
7801 at propose_allocation() we should not reuse the proposed buffer,
7802 because it could break renegotiation.
7803 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7805 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7807 * gst/vaapi/gstvaapipluginbase.c:
7808 plugins: use g_clear_object() to unref sinkpad_buffer_pool
7809 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7811 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7813 * gst-libs/gst/vaapi/meson.build:
7814 build: meson: add missing GstGL dependency
7816 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7818 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7819 libs: utils: egl: add missing guards for GstGL
7821 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7823 * gst/vaapi/gstvaapipluginbase.c:
7824 plugins: remove dmabuf-import hack
7825 Remove the hack to check if an upstream element has enabled the
7826 property io-mode enabled as dmabuf-import.
7827 https://bugzilla.gnome.org/show_bug.cgi?id=792034
7829 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7831 * gst-libs/gst/vaapi/Makefile.am:
7832 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7833 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7834 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7835 libs: egl: utils: use eglGetPlatformDisplay()
7836 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
7837 eglGetDisplay() is rather fragile, and it is recommended to use
7838 eglGetPlatformDisplay() when possible.
7839 In order to do that, this patch uses the helper in GstGL. If
7840 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7842 https://bugzilla.gnome.org/show_bug.cgi?id=790493
7844 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
7846 * gst/vaapi/gstvaapipostproc.c:
7847 vaapipostproc: lock ensure_filter with postproc_lock
7848 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7849 and allowed_sinkpad_caps. This can race with copying these caps in
7850 gst_vaapipostproc_transform_caps and lead to segfaults.
7851 The gst_vaapipostproc_transform_caps function already locks
7852 postproc_lock before copying the caps. Make sure that calls to
7853 gst_vaapipostproc_ensure_filter also acquire this lock.
7854 https://bugzilla.gnome.org/show_bug.cgi?id=791404
7856 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7858 * tests/test-filter.c:
7859 tests: test-filter: fix dereference before null check
7860 Null-checking op_info suggests that it may be null, but it has already
7861 been dereferenced on all paths leading to the check.
7862 There may be a null pointer dereference, or else the comparison
7863 against null is unnecessary.
7865 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7867 * tests/y4mreader.c:
7868 tests: y4mreader: fix string state checkup
7869 str cannot be null in that moment, but it may be the end of string.
7871 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7873 * tests/y4mreader.c:
7874 tests: y4mreader: use int for fgetc
7875 Assigning the return value of fgetc to char truncates its value.
7876 It will not be possible to distinguish between EOF and a valid
7879 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7881 * tests/y4mreader.c:
7882 tests: y4mreader: fix incompatible cast
7883 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7884 they are dereferenced as a wider long (64 bits, signed). This may lead
7885 to memory corruption.
7887 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7890 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7892 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
7895 Automatic update of common submodule
7896 From e8c7a71 to 3fa2c9e
7898 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7900 * gst/vaapi/gstvaapivideocontext.c:
7901 videoconvert: gst_element_post_message() is transfer full on msg
7902 For this reson we need not to unref the message, even if it failed.
7904 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7906 * gst/vaapi/gstvaapivideocontext.c:
7907 Revert "vaapivideocontext: possible memleak when no bus attached"
7908 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7910 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7912 * tests/elements/test-vaapicontext.c:
7913 test: vaapicontext: process have-context bus message
7915 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7917 * tests/elements/test-vaapicontext.c:
7918 test: vaapicontext: app context is not persistent
7920 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7922 * gst/vaapi/gstvaapipluginbase.c:
7923 * gst/vaapi/gstvaapivideocontext.c:
7924 * gst/vaapi/gstvaapivideocontext.h:
7925 vaapivideocontext: only vaapisink process app context
7926 gst.vaapi.app.Display context is made for applications that will
7927 provide the VA display and the native display to used by the
7928 pipeline, when are using vaapisink as overlay. There are no use
7929 case for encoders, decoders, neither for the postprocessor.
7930 In the case of the vaapisink, it shall query for gst.vaapi.Display
7931 upstream first, and then, if there is no reply,
7932 gst.vaapi.app.Display context will be posted in the bus for the
7933 application. If the application replies, a GstVaapiDisplay object
7934 is instantiated given the context info, otherwise a
7935 GstVaapiDisplay is created with the normal algorithm to guess the
7936 graphics platform. Either way, the instantiated GstVaapiDisplay
7937 is propagated among the pipeline and the have-message bus message.
7938 Also only vaapisink will process the gst.vaapi.app.Display, if
7939 and only if, it doesn't have a display already set. This is
7940 caused because if vaapisink is in a bin (playsink, for example)
7941 the need-context is posted twice, leading to an error state.
7942 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7944 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7946 * gst/vaapi/gstvaapivideocontext.c:
7947 vaapivideocontext: log the name of GstVaapiDisplay
7948 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7950 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7952 * gst/vaapi/gstvaapivideocontext.c:
7953 vaapivideocontext: possible memleak when no bus attached
7954 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7956 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7958 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7959 libs: window: wayland: remove unused header include
7960 Remove wayland-client.h include since there is no exposed symbols from
7963 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7965 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7966 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7967 libs: encoder: h264,h265: guard rate control's macroblock
7968 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7970 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
7973 Automatic update of common submodule
7974 From 3f4aa96 to e8c7a71
7976 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7978 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7979 libs: encoder: h264: Add Hierarchical-B encode
7980 Frames are encoded as different layers. Frame in a particular
7981 layer will use pictures in lower or same layer as references.
7982 Which means decoder can drop the frames in upper layer but still
7983 decode lower layer frames.
7984 B-frames, except the one in top most layer, are reference frames.
7985 All the base layer frames are I or P.
7986 eg: with 3 temporal layers
7990 T1, T2, T3: Temporal Layers
7993 T1: I0->P4 , P4->P8 etc..
7995 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7996 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7997 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7999 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8001 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8002 libs: encoder: h264: Add Hierarchical-P encode
8003 Frames are encoded as different layers. A frame in a particular
8004 layer will use pictures in lower or same layer as references.
8005 Which means decoder can drop the frames in upper layer but still
8006 decode lower layer frames.
8007 eg: with 3 temporal layers
8011 T1, T2, T3: Temporal Layers
8013 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
8014 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8015 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8017 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8019 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8020 libs: encoder: h264: Fix frame_num generation
8021 The frame_num generation was not correctly implemented.
8022 According to h264 spec, frame_num should get incremented
8023 for each frame if previous frame is a referece frame.
8024 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
8025 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8026 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8028 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8030 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8031 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8032 libs: encoder: h264: Add new property "prediction-type"
8033 Adds new property "prediction-type" to select different reference
8034 picture selection modes like hierarchical-p, hierarchical-b etc.
8035 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8036 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8038 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
8040 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8041 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8042 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
8043 Adds some basic building blocks to ease the implementation
8044 of hierarchical prediction modes.
8045 -- add an utility method to find temporal level of each frame
8046 -- define max_ref_frame count based on temporal level count
8047 -- add temporal_level_div[] for finding temporal level each frame
8049 -- find ip_period based on temporal level count
8050 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8051 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8053 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
8055 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8056 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8057 libs: encoder: h264: Add property "temporal-levels"
8058 Adds new property "temporal-levels" to select the number of
8059 temporal levels to be included in the encoded stream.
8060 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8061 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8063 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
8065 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8066 libs: encoder: objects: Add a reference flag
8067 We can have p-frame as non-ref and also b-frame as ref
8068 which are not supported yet. Reference flag
8069 is the first machinery needed for more advanced
8070 reference picture selection modes.
8071 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8072 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8074 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
8076 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8077 libs: surface: egl: add comment
8078 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
8079 where the creation of surfaces from GEM fd may fail.
8080 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8082 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8084 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8085 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
8086 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8087 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
8088 Adds a new function that changes the internal EGL display to the
8089 current one (eglGetCurrentDisplay()) and sets the current context
8090 too (eglGetCurrentContext()).
8091 This new function is called by gst_vaapi_texture_egl_create() updating
8092 the GstVaapiDisplayEGL with the current EGL display.
8093 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8095 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8097 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8098 libs: texture: egl: update EGL display and context
8099 It is required to use the context of the calling thread when wrapping
8100 a foreign texture. According the documentation of
8101 GstVideoGLTextureUploadMeta:
8102 "The caller of gst_video_gl_texture_upload_meta_upload() must
8103 have OpenGL set up and call this from a thread where it is valid
8104 to upload something to an OpenGL texture."
8105 This patch updates the EGL display and context in GstVaapiDisplay
8106 instance to the one used by te renderer that uploads the texture.
8107 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
8108 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8110 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8112 * gst/vaapi/gstvaapipluginbase.c:
8113 plugins: centralize assignation of GL objects
8114 Add plugin_set_gst_gl() where the GstGL objects are assigned.
8115 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8117 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8119 * gst/vaapi/gstvaapipluginbase.c:
8120 plugins: set GL objects if ensured
8121 Only set the GL display and GL other context if they are ensured.
8122 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8124 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8126 * gst/vaapi/gstvaapipluginbase.c:
8127 plugins: set GL objects if context is handled
8128 Only set the GL display and GL other context if they are extracted
8129 correctly from the gstreamer's context.
8130 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8132 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8134 * gst/vaapi/gstvaapipluginbase.c:
8135 plugins: fix memory leak when GL context is created
8136 When the GL display and context are created inside an VAAPI element
8137 the created GL context is leaked.
8138 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8140 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8142 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8143 libs: display: egl: free leaked memory
8144 The EGL VAAPI display forgot to release the egl display, context and
8145 proxied VAAPI display.
8146 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8148 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8150 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8151 libs: texture: egl: code style
8152 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8154 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8156 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8157 libs: surface: egl: error message if no extension
8158 Instead of silently fail to export the image if there is not available
8159 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8161 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8163 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8165 * gst/vaapi/gstvaapipluginbase.c:
8166 plugins: direct rendering on memory:VASurface
8167 As buffers negotiated with memory:VASurface caps feature can also be
8168 mapped, they can also be configured to use VA derived images, in other
8169 words "direct rendering".
8170 Also, because of the changes in dmabuf allocator as default allocator,
8171 the code for configuring the direct rendering was not clear.
8172 This patch cleans up the code and enables direct rendering when the
8173 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8174 even then the memory:VASurface cap feature is negotiated.
8175 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8177 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8179 * gst/vaapi/gstvaapipluginbase.c:
8180 * gst/vaapi/gstvaapipluginutil.c:
8181 plugins: only dmabuf on srcpad if downstream
8182 Set if source pad can handle dmabuf only if the GstGL context comes
8184 It is possible to know that at two moments:
8185 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8186 downstream pool reports back gst.gl.GstGLContext.
8187 2\ When GstGLContext is found as GstContext from dowstream.
8188 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8190 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8192 * gst/vaapi/gstvaapivideocontext.c:
8193 vaapivideocontext: add inline documentation
8194 Document function gst_vaapi_find_gl_local_context().
8195 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8197 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8199 * gst/vaapi/gstvaapipluginutil.c:
8200 * gst/vaapi/gstvaapivideocontext.c:
8201 * gst/vaapi/gstvaapivideocontext.h:
8202 vaapivideocontext: return the direction of gl context
8203 In function gst_vaapi_find_gl_context() add a direction parameter to
8204 return back the direction where the GstGL context was found.
8205 This is going to be useful when checking if downstream can import
8206 dmabuf-based buffers.
8207 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8209 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8211 * gst/vaapi/gstvaapipluginbase.c:
8212 * gst/vaapi/gstvaapipluginbase.h:
8213 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8214 This patch refactors the code by adding the function
8215 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8216 GstGLContext can handle dmabuf-based buffers.
8217 The function is exposed publicly since it is intended to be used later
8218 at GstVaapiDisplay instantiation.
8219 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8221 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8223 * gst/vaapi/gstvaapiencode.c:
8224 vaapiencode: allow to set property on runtime
8225 Tis patch, allows some properties that we want to be set on
8226 runtime. (eg. bitrate)
8227 Note that all properties are under control by num_codedbuf_queued.
8228 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8230 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8232 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8233 libs: encoder: allow to set bitrate on runtime
8234 In case of streaming, controlling bitrate dynamically for encoder might be
8235 important to manage quality of the streaming.
8236 This patch is to support such a scenario.
8237 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8239 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8241 * gst/vaapi/gstvaapi.c:
8242 * gst/vaapi/gstvaapi.h:
8243 * gst/vaapi/gstvaapidecodebin.c:
8244 vaapidecodebin: Register element if no VPP support is available too
8245 VPP support is only needed for advanced deinterlacing, which is not
8246 enabled by default either. Error out if it is selected but VPP is not
8247 supported, and otherwise just work without VPP support.
8248 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8250 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8252 * gst/vaapi/gstvaapipluginutil.c:
8253 Avoid infinite loop when vaapi_create_display fails
8254 Which might be the case when using, for example, xvfb.
8256 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8258 * gst-libs/gst/vaapi/gstvaapiutils.c:
8259 libs: utils: log warn if display fail
8260 gstreamer-vaapi initializes the display by trial-and-error, thus
8261 logging an error message if the display initialisation fails the user
8262 may be weary of the error message in the screen, if using VA-API 1.0
8263 This commit set the VA error log handler to GStreamer warning level
8264 while calling vaInitialize() and set it to error after that.
8265 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8267 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8269 * gst/vaapi/gstvaapipluginutil.c:
8270 plugins: try to create test display in order
8271 When creating the test display for querying capabilites, it try in
8272 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8273 since they are either composited with X11 or Wayland.
8274 The reason for this is to reduce the posibility of failure that could
8275 blacklist the plugin.
8276 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8278 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8280 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8281 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8282 libs: display: delay getting screen resolution
8283 Instead of extracting the screen resolution at GstVaapiDisplay
8284 creation, this patch delay it until the screen size is requested for
8286 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8288 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8290 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8291 libs: display: egl: avoid two vaDisplay instantiates
8292 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8293 or Wayland. Nonetheless it created another vaDisplay for it, instead
8294 of using the wrapped one.
8295 This patch enables the reuse of the wrapped vaDisplay avoiding
8297 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8299 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8301 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8302 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8303 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8304 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8305 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8306 libs: display: remove display_type from display info
8307 Since it's no required to pass the display type in the display info,
8308 the structure member is removed.
8309 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8311 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8313 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8314 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8315 libs: display: remove display_type member
8316 It is not used any more since GstVaapiDisplay was ported as a
8317 GstObject-based. This information is part of the class information.
8318 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8320 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8322 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8323 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8324 libs: display: remove parent member
8325 Parent was a crumb left from display cache.
8326 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8328 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8330 * gst/vaapi/gstvaapi.c:
8331 vaapi: Also register vaapipostproc without VPP support
8332 It can still do simple deinterlacing then.
8334 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8336 * gst/vaapi/gstvaapipostproc.c:
8337 vaapipostproc: Allow running without VPP support
8338 We returned FALSE from ::start() if VPP support is not available, but it
8339 is only really needed for complex filters and during transform we check
8340 for that. For simple deinterlacing it is not needed.
8342 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8344 * gst/vaapi/gstvaapipostproc.c:
8345 vaapipostproc: use scoped variable for return value
8346 Instead of reusing a parameter variable for the return value of
8347 gst_vaapipostproc_transform_caps(), this patch uses the function
8348 scoped pointer. Thus, the code is cleaner.
8349 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8351 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8353 * gst/vaapi/gstvaapipostproc.c:
8354 vaapipostproc: removed unused parameter
8355 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8356 helper function since the it is not used.
8357 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8359 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8361 * gst/vaapi/gstvaapipostproc.c:
8362 vaapipostproc: use scoped variable for return value
8363 Instead of reusing a parameter variable for the return value of
8364 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8365 pointer. Thus, the code is cleaner.
8366 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8368 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8370 * gst/vaapi/gstvaapipluginutil.h:
8371 plugins: memory:DMABuf only handles planar formats
8372 When glimagesink negotiates the caps feature memory:DMABuf the
8373 exported dmabufs buffers with NV12 format are not well rendered, thus
8374 setting only planar.
8375 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8377 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8379 * gst/vaapi/gstvaapiencode.c:
8380 vaapiencode: flush pending frames before set format
8381 Flush pending frames, if any, in the internal encorder, before setting
8382 the new negotiated format.
8383 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8385 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8387 * gst/vaapi/gstvaapidecode.c:
8388 vaapidecode: drain pending frames before set format
8389 Drain pending frames, if any, in the internal decoder before setting
8390 the new negotiated format.
8391 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8393 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8395 * tests/test-display.c:
8396 tests: display: use GObject getter
8397 Instead of using the gst_vaapi_display_get_property(), this patch
8398 replaces it with g_object_get_property() to dump the available VA
8400 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8402 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8404 * gst/vaapi/gstvaapisink.c:
8405 vaapisink: use GObject setter and getter
8406 Instead of using gst_vaapi_display_set_property() or
8407 gst_vaapi_display_get_property(), this patch set replace it usage
8408 with g_object_set() or g_object_get().
8409 Also the internal helper cb_set_value() is removed since it is not
8411 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8413 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8415 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8416 libs: display: initialize value if they are not yet
8417 This is a difference between the GObject API and the GstVaapi one: the
8418 GValue passed to get a property value, in GObject has to be
8419 initialized with g_value_init(), but in GstVaapi is has not.
8420 In order to overcome this mismatch, this patch call g_value_init()
8421 internally only in the passed one is not already initialized.
8422 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8424 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8426 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8427 libs: display: optimize properties setters and getters
8428 Shuffled some code to avoid to find the properties descriptor in the
8429 array twice, adding the internal functions _set_property() and
8431 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8433 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8435 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8436 libs: display: install properties in class
8437 Install the properties in the class as a normal GObject. Implement
8438 set_property() and get_property() vmethods.
8439 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8441 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8443 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8444 libs: display: remove gst_vaapi_display_properties_init()
8445 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8446 gst_vaapi_display_class_init()
8447 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8449 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8451 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8452 libs: display: remove libgstvaapi_init_once()
8453 It is not required since it can be unrolled in
8454 gst_vaapi_display_class_init()
8455 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8457 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8459 * tests/test-display.c:
8460 tests: test-display: remove display cache tests
8461 Since commit ec3e10f6, display cache was removed. This patch removes
8462 this leftovers in the display test.
8464 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8466 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8467 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8468 libs: decoder: h264/h265: decode codec data only if opened
8469 Fixes regression introduced by commit 2eb2b26a.
8470 There is a use case when the decoder set the src caps and immediatly
8471 tries to process the media codec_data, this happens before decoder is
8472 even opened, thus priv->parser is not instantiated yet.
8473 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8475 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8477 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8478 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8479 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8480 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8481 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8482 libs: encoder: change mbbrc from uint to enum
8483 Instead of handling the macroblock bitrate control as a integer, this
8484 patch changes it as a enum, which is more self documented in the
8486 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8488 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8490 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8491 Fix a typo in the prop string for compliance-mode
8493 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8495 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8496 libs: encoder: don't unref properties
8497 This patch fixes a regression introduced in commit 148f867c, since the
8498 props variable is set to object's member variable
8499 encoder->properties. And it is set in the instance initialization,
8500 thus it will not be leaked.
8501 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8503 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8505 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8506 * gst/vaapi/gstvaapiencode.c:
8507 vaapiencode/libs: encoder: fix leaks of properties
8508 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8510 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8512 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8513 libs: decoder: at update_caps() decode codec_data
8514 When updating the caps in decoder, if the caps has codec_data (avC
8515 format), it has to be parsed to update the state of the decoder.
8516 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8518 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8520 * gst-libs/gst/vaapi/gstvaapicontext.c:
8521 libs: context: fix wrong counter of the array of attributes
8522 The counter value passed to vaCreateConfig is always +1.
8523 This is a regression caused by commit e42ec3ad.
8524 The present patch fixes wrong counting of the array of attributes.
8525 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8527 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8529 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8530 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8531 libs: encoder: h265: support I/P/B QP setting seperatedly
8532 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8534 and set slice_qp_delta for each frame according to the value provided.
8535 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8537 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8539 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8540 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8541 libs: encoder: h264: support I/P/B QP setting seperatedly
8542 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8544 and set slice_qp_delta for each frame according to the value provided.
8545 In addition, remove the limitation of (<= 4) when setting
8547 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8549 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8551 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8552 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8553 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8554 Creates new variable for QP for I frame and keep it at configuration and
8555 use this for pic_init_qp and slice_qp_delta setting.
8556 Since changing min qp doesn't make sense, keep min qp as is.
8557 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8559 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8561 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8562 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8563 libs: encoder: h265: Add mbbrc property
8564 This property supports Macroblock level Bitrate Control as the
8565 following (same as h264 encoder):
8569 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8571 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8573 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8574 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8575 libs: encoder: h264: Add mbbrc property
8576 This property supports Macroblock level Bitrate Control as the
8581 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8583 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8585 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8586 libs: encoder: h265: add multi reference support
8587 This is doing the same as h264 encoder as the following:
8588 Using num_ref_frames provided and the result of the Query
8589 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8590 and perform encoding with multi reference frames as the following:
8591 1\ The num_ref_frames is being considered as the number of
8592 reference picture list0
8593 2\ Encoder adds 1 reference frame more to the reference picture list1
8594 internally if b-frame encoding.
8595 3\ If num_ref_frames is bigger than the number of refrence frames
8596 supported in the driver, it will be lowered.
8597 Also this patch includes:
8598 - Set num_negative_pics and num_positive_pics according to the number of
8600 - Set delta_poc according to the number of refs.
8601 - Increase max_dec_pic_buffering according to the number of refs
8602 - Change max_num_reorder_pics according to num of bframes
8603 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8605 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8607 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8608 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8609 libs: encoder: h265: add refs property
8610 Users can provide the number of reference frame by this property,
8611 which is exaclty same as h264.
8612 The value of the property will be considered as the number of
8613 reference picture list0 and will add 1 reference frame more to the
8614 reference picture list1 internally if b-frame encoding.
8615 If the value provided is bigger than the number of refrence frames
8616 supported in the driver, it will be lowered.
8617 The maximum value is aligned to the value of the driver supported now.
8618 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8620 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8622 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8623 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8624 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8625 Follows the specification as below:
8626 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8627 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8628 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8629 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8631 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8632 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8634 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8636 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8638 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8639 libs: encoder: h265: keep idr_period equal to keyframe period
8640 Remove FIXME code, which makes previous assignation spurious.
8641 This also means to make idr_period equal to keyframe period,
8642 which is same as h264 encoder.
8643 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8645 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8647 * gst/vaapi/gstvaapipluginbase.c:
8648 Request minimum buffer even if need_pool is FALSE
8649 When tee is used, it will not request a pool, but still it wants to
8650 know how many buffers are required.
8651 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8653 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8655 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8656 libs: encoder: h264_fei: VA-API 1.0 compat
8657 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8659 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8660 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8662 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8664 * gst/vaapi/gstvaapisink.c:
8665 vaapisink: Fix rendering in drm display
8666 Make sure vaapisink create a va surface backed buffer pool and all
8667 required attributes get assigned correctly for drm display type.
8668 This is needed to make the below pipeline working:
8669 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8670 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8671 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8673 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8675 * tests/Makefile.am:
8676 * tests/test-fei-enc-in.c:
8677 * tests/test-fei-enc-out.c:
8678 FEI: Add test applications to showcase fei use case
8679 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8681 ./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
8682 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8684 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8685 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8686 from saved files is still not working
8688 Wang, Yi <yi.a.wang@intel.com>
8689 Leilei <leilei.shang@intel.com>
8690 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8691 xiaominc <xiaomin.chen@intel.com>
8692 Li, Jing B <jing.b.li@intel.com>
8693 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8694 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8696 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8698 * gst/vaapi/Makefile.am:
8699 * gst/vaapi/gstvaapi.c:
8700 * gst/vaapi/gstvaapiencode_h264_fei.c:
8701 * gst/vaapi/gstvaapiencode_h264_fei.h:
8702 FEI: plugin: Add vaapih264feienc element
8703 A new FEI based encoder element for h264 is added: vaapih264feienc
8704 FEI is a an extension to VA-API which is providing low level
8705 advanced control over different stages of encoding.
8706 Extending vaapih264enc with fei support is possible, but it will
8707 make the code too much complicated and will be difficult
8708 to debug. So adding the new encoder element, but keeping
8709 the rank as 0 , vaapih264enc will stay as the primary
8710 encoder for normal use cases.
8711 The vaaih264feienc is mainly useful for customers who want to play
8712 with MotionVectors and Macroblock Predictions. Also user can
8713 do one stage of encoding(eg: only the Motion Vector Calculation)
8714 in software and offload trasformation/entroy-coding etc to
8715 Hardware (which is what PAK module is doing) using FEI element.
8716 vaapih264feienc can work in different modes using fei-mode properoty
8717 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8718 Important Note: ENC only mode won't produce any encoded data which is expected.
8719 But ENC alwys requires the output of PAK in order to do the inter-prediction
8720 over reconstructed frames.
8721 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8722 upstream element providing those buffers, PAK only won't work as expected.
8723 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8724 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8725 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8726 separately in vaapih264feienc.
8728 Wang, Yi <yi.a.wang@intel.com>
8729 Leilei <leilei.shang@intel.com>
8730 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8731 xiaominc <xiaomin.chen@intel.com>
8732 Li, Jing B <jing.b.li@intel.com>
8733 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8734 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8735 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8737 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
8739 * gst/vaapi/gstvaapiencode.c:
8740 * gst/vaapi/gstvaapiencode.h:
8741 FEI: plugin: Add virtual methods to base encode
8742 Two new virtual methods are added to gstvaapiencode.
8743 load_control_data(): load the FEI input buffers set by the upstream elements
8744 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8745 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8746 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8747 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8749 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
8751 * gst/vaapi/Makefile.am:
8752 * gst/vaapi/gstvaapifeivideometa.c:
8753 * gst/vaapi/gstvaapifeivideometa.h:
8754 FEI: plugin: Add fei specific video meta
8755 GstVaapiFeiVideoMeta holds the below fei codec objects:
8756 GstVaapiEncFeiMbCode
8758 GstVaapiEncFeiMvPredictor
8759 GstVaapiEncFeiMbControl
8761 GstVaapiEncFeiDistortion
8762 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8763 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8764 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8766 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8768 * gst-libs/gst/vaapi/Makefile.am:
8769 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8770 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8771 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8772 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8773 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8774 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8775 FEI: libs: Add FEI encoder
8776 Adding FEI encoder to core lib.
8777 The code is splitted into three session:
8778 1: gstvaapiencoder_h264_fei.{h,c}
8779 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8780 All the modes ENC, PAK and ENC_PAK are running based
8781 the code in these files.
8782 2: gstvaapifeienc_h264.{h,c}
8783 Abstract implementation intended for ENC (only VME) operation.
8784 3: gstvaapifeipak_h264.{h,c}
8785 Abstrct implementation intended for PAK (only the PAK module)
8786 Right now ENC_PAK, ENC and PAK are running based on code
8787 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8788 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8789 needed if user request for ENC+PAK mode operation.
8790 ENC+PAK: Here we need to invoke two sequence of
8791 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8792 first for the ENC only and the second for PAK only.
8793 Each mode associated with separate context ,but same pool of surfaces are
8794 shared between the modes.
8795 This is more useful once we have custom BRC algorithms.
8797 Wang, Yi <yi.a.wang@intel.com>
8798 Leilei <leilei.shang@intel.com>
8799 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8800 xiaominc <xiaomin.chen@intel.com>
8801 Li, Jing B <jing.b.li@intel.com>
8802 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8803 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8805 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8807 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8808 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8809 FEI: libs: Add fei codec objects to GstVaapiEncPicture
8810 All the codec objects(vaapi buffers) supposed to be
8811 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8812 for each frame, follow the same design for FEI too.
8813 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8814 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8816 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8818 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8819 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8820 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8821 FEI: libs: Add fei codec objects in codedbufferproxy
8822 MbCode, MV and Distortion buffers (fei codec objects)
8823 can be treated as output of different fei modes based user request.
8824 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8825 can be dumped as output in ENC_PAK mode for analysis purpose.
8826 So treating them as a part of CodedBufferProxy too.
8827 Here we avoided Qp, MbControl and MvPredictor codec objects since
8828 there is no practical use case of treating them as "output buffers".
8830 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8831 xiaominc <xiaomin.chen@intel.com>
8832 Leilei <leilei.shang@intel.com>
8833 Li, Jing B <jing.b.li@intel.com>
8834 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8835 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8837 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8839 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8840 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8841 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8842 FEI: libs: Add fei codec objects to surface proxy
8843 Add fei codec objects to surface proxy since handling the
8844 fei buffers(codec objects here) external to gstvaapisurfaceproxy
8845 will make the code complicated. Especially considering the behavior
8846 of encoder where the input frame order from upstream and output
8847 frame order to the downstream are not sequential.
8849 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8850 xiaominc <xiaomin.chen@intel.com>
8851 Leilei <leilei.shang@intel.com>
8852 Li, Jing B <jing.b.li@intel.com>
8853 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8854 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8856 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8858 * gst-libs/gst/vaapi/Makefile.am:
8859 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8860 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8861 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8862 FEI: Add codec objects for fei usecase
8863 There are 6 new va buffer types, each defined as a specific codec object.
8864 Borrowed the code from gstvaapicodecobject , but made a clear separation
8865 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8866 feicodecobjects can be shared between elements and also can be accessed
8867 from different thread.
8868 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8869 object is not shared between elements.So we utilize the already
8870 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8871 in gstvaapfei_objects_priv.h in order to have a better
8874 -- Probably we need _locked_map() and _unlocked_map()
8875 -- Context can be associated with PreEnc(not just Enoder)
8876 once we have the proper support inplace, but for now we don't have
8877 PreEnc support, so should be safe enough to use GstVaapiEncoder.
8878 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8879 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8881 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8883 * gst-libs/gst/vaapi/Makefile.am:
8884 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8885 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8886 FEI: libs: add H264 fei specific utility functions
8887 Added enum/flag type definitions for a number of FEI
8888 input and output parameters.
8889 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8890 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8891 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8892 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8893 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8895 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8897 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8898 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8899 FEI: libs: Add virtual method for secondary context creation.
8900 Add a new vitrual method ensure_secondary_context to the
8901 base encoder which is only required for the FEI entrypoint, that too
8902 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8903 supported directly by libva or driver, but this can be enabled
8904 from the middleware.
8905 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8906 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8907 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8908 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8909 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8910 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8912 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8914 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8915 FEI: libs: make sure the default context creation works as expected.
8916 Current code always guess the entrypoint during init phase in case
8917 if there is no entrypoint already configured in GstVaapiContextInfo.
8918 Make sure FEI Entrypoint is not messing up with this logic.
8919 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8920 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8922 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8924 * gst-libs/gst/vaapi/gstvaapicontext.c:
8925 * gst-libs/gst/vaapi/gstvaapicontext.h:
8926 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8927 FEI: libs: Add FEI functional mode configuration
8928 FEI Entrypoint can work in either one of the 3 different modes:
8929 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8930 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8931 functioal mode configuration.
8932 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8933 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8935 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8937 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8938 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8939 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8940 FEI: libs: Add FEI Entrypoint mapping
8941 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8942 for VAEntrypointFEI.
8943 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8944 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8946 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8949 FEI: Add support for FEI conditional build
8950 FEI(Flexible Encoding Infrastructure) is an extension
8951 to VA API. Define USE_H264_FEI_ENCODER based on
8952 fei header file and required structures availability.
8953 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8954 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8956 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
8958 * gst/vaapi/gstvaapidecode.c:
8959 vaapidecode: force add h264 SVC profiles in caps
8960 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8962 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8963 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8965 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
8967 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8968 libs: decoder: h264: decode SVC base layer only
8969 Drops non-base NALs when the base-only property is set to TRUE.
8970 This modifies the behavior for MVC streams with base-only too: All the
8971 non-base units are dropped before they are decoded instead of dropping
8972 the non-base frames.
8973 The relevant part from the H264 spec is:
8974 > Decoders that conform to one or more of the profiles specified in
8975 Annex A rather than the profiles specified in Annexes G or H shall
8976 ignore (remove from the bitstream and discard) the contents of all NAL
8977 units with nal_unit_type equal to 14, 15, or 20.
8978 To eliminate side effects from the offending units:
8979 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8981 - The NAL parsing is skipped and their flags are set to
8982 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8983 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8984 use them even if they are flagged to be skipped. Subset SPS's and slice
8985 extension units are not stored there either.
8986 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8987 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8989 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
8991 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8992 libs: decoder: h264: check nalu validity in parser info finalize
8993 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8994 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8996 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8998 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8999 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9000 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9001 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9002 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9003 libs: encoder: remove unused cast macro
9004 Remove internal macro to cast structure that are already declared
9007 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9009 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9010 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9011 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9012 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9013 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9014 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9015 Revert "libs: encoders: remove unused cast macros"
9016 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
9018 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9020 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9021 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9022 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9023 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9024 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9025 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9026 libs: encoders: remove unused cast macros
9027 They are only used inside the code, where another macro is defined.
9028 Thus these exported macros have no use.
9030 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9032 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9033 libs: decoder: h264: improve code-style
9034 https://bugzilla.gnome.org/show_bug.cgi?id=786173
9036 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9038 * gst-libs/gst/vaapi/gstvaapicompat.h:
9039 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9040 libs: encoder: h264: handle deprecated enum
9041 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
9042 instead VAEncPackedHeaderRawData should be used.
9043 This patch creates a compatibility symbol,
9044 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
9046 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9048 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9050 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9051 * gst-libs/gst/vaapi/gstvaapiutils.c:
9052 libs: guard deprecated symbols
9053 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
9054 guards the H.264 baseline usage. Consider this commit as a
9055 continuation of commit e0e0a474
9056 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9058 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9062 * meson_options.txt:
9063 Revert "build: check for libva-2.0"
9064 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
9065 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9067 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9069 * gst-libs/gst/vaapi/gstvaapicompat.h:
9070 * gst-libs/gst/vaapi/gstvaapicontext.c:
9071 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9072 libs: macro to get a renamed value in VA-API 1.0
9073 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
9074 renamed one member from roi_value_is_qp_delat to
9075 roi_value_is_qp_delta, which is the correct name.
9076 In order to keep back compatibility a macro has added to access this
9078 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9080 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9082 * gst/vaapi/gstvaapipluginbase.h:
9083 * gst/vaapi/gstvaapipluginutil.c:
9084 plugins: include main gstgl header
9085 Instead including particular gstgl header files in a header file
9086 that doesn't export a gstgl symbol, the main gstgl header file is
9087 included in gstvaapipluginutil.c where the symbols are used.
9088 https://bugzilla.gnome.org/show_bug.cgi?id=786597
9090 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9092 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9093 libs: encoder: h264: fix enum namespace
9095 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
9098 Automatic update of common submodule
9099 From 48a5d85 to 3f4aa96
9101 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9103 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9104 libs: encoder: h264: remove spurious assignation
9106 An assigned value that is never used may represent unnecessary
9107 computation, an incorrect algorithm, or possibly the need for cleanup
9109 ip_period is assigned first to be rewritter inmediatly after. The
9110 first assignation is spurious.
9112 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
9114 * gst/vaapi/gstvaapidecode.c:
9115 vaapidecode: fix mismatch of the return type
9116 https://bugzilla.gnome.org/show_bug.cgi?id=786307
9118 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9120 * gst-libs/gst/vaapi/Makefile.am:
9121 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
9122 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
9123 * gst-libs/gst/vaapi/gstvaapiutils.h:
9124 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
9125 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9126 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9127 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9128 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
9129 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
9130 * gst-libs/gst/vaapi/meson.build:
9131 libs: remove unused header
9132 Since libgstvaapi is not distributed, there is no need to check for
9133 private header inclusion. Thus removing it.
9134 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9136 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9138 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9139 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9140 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9141 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9142 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9143 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9144 libs: utils: move gstvaapisurface.h to private headers
9145 Since the utils don't expose API defined in gstvaapisource.h, it is
9146 moved to their private headers where they are used.
9147 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9149 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9151 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9152 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9153 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9154 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9155 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9156 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9157 libs: utils: remove va.h include in header
9158 And include gstvaapicompat.h in the C files, since the VA-API is not
9159 exposed in the headers.
9160 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9162 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9164 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9165 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9166 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9167 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9168 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9169 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9170 libs: encoder: remove va.h include
9171 Since it is already managed by gstvaapicompat.h
9172 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9174 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9176 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9177 * gst-libs/gst/vaapi/gstvaapicompat.h:
9178 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9179 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9180 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9181 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9182 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9183 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9184 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9185 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9186 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9187 * gst-libs/gst/vaapi/gstvaapifilter.c:
9188 * gst-libs/gst/vaapi/gstvaapiutils.c:
9190 build: consolidate the VA sub API includes
9191 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9192 since they are all already included in va.h after VA-API 0.38.
9193 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9195 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9199 build: check for va_vpp.h
9200 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9201 allow us to handle the inclusion of the header better.
9202 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9204 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9207 meson: don't export symbols by default
9208 Only plugin entry points should be exported.
9210 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9212 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9213 libs: decoder: h265: remove spurious code
9215 Logically dead code: The indicated dead code may have performed some
9216 action; that action will never occur.
9217 By using pointer arithmetic is impossible to get NULL.
9219 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9221 * gst-libs/gst/vaapi/gstvaapicontext.c:
9222 libs: context: use attribs index instead pointers
9224 Out-of-bounds write. This could cause an immediate crash or incorrect
9226 Coverity basically found that it is possible to assign more than 4
9227 attribs in the array.
9228 In my opinion this was produced because code pattern used pointer
9229 arithmetic, which is not readable nor maintainable.
9230 This patch refactors config_create() to use an array index rather than
9231 pointer arithmetic. Also a run-time check for index size was added.
9233 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9235 * gst/vaapi/gstvaapiencode_h264.c:
9236 vaapiencode: h264: remove spurious code
9238 An unsigned value can never be negative, so this test will always
9239 evaluate the same way.
9240 As len is guint32, there is no need to check it if it is equal or
9243 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9245 * gst/vaapi/gstvaapidecode.c:
9246 vaapidecode: initialize variable
9248 The variable will contain an arbitrary value left from earlier
9250 Variable base_only is fetched from base-only property, and it may be
9251 not assigned. It needs to be initialized.
9253 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9255 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9256 libs: windows: wayland: fail if cannot remove last frame
9258 If the function returns an error value, the error value may be
9259 mistaken for a normal value.
9260 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9261 not the last one, the function fails. Thus, logging an info message.
9263 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9265 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9266 libs: utils: glx: check return value
9268 If the function returns an error value, the error value may be
9269 mistaken for a normal value.
9270 Function sscanf returns the number of assignations done. Validate this
9271 return value with the number of expected variables to match.
9273 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9275 * gst-libs/gst/vaapi/gstvaapiobject.c:
9276 libs: vaapi: object: remove unrequired NULL check
9278 Dereference after null check: Either the check against null is
9279 unnecessary, or there may be a null pointer dereference.
9280 Variable klass has been validated as non-NULL several time before in
9281 gst_vaapi_object_new() function, so there is no need to check it
9284 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9286 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9287 libs: encoder: h265: remove spurious assignation
9289 An assigned value that is never used may represent unnecessary
9290 computation, an incorrect algorithm, or possibly the need for cleanup
9292 ip_period is assigned first to be rewritter inmediatly after. The
9293 first assignation is spurious.
9295 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9297 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9298 libs: encoder: h264: fix copy & paste error
9300 The copied code will not have its intended effect.
9301 This is a bug from commit cdaf15b2, where the intention is to
9302 initialize RefPicList1 while setting RefPicList0.
9304 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9306 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9307 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9308 libs: encoder: h265: fix possible integer overflow
9310 Unintentional integer overflow. The expression's value may not be what
9311 the programmer intended, because the expression is evaluated using a
9312 narrow (i.e. few bits) integer type.
9313 Cast operator to guint64 before computation to avoid narrowing.
9316 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9318 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9319 libs: decoder: mpeg4: fail if return value is not OK
9321 An assigned value that is never used may represent unnecessary
9322 computation, an incorrect algorithm, or possibly the need for cleanup
9324 In the return value of decode_slice() or
9325 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9326 decode_packet() function.
9328 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9330 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9331 libs: decoder: h265: check for null
9333 Dereference after null check: Either the check against null is
9334 unnecessary, or there may be a null pointer dereference.
9335 While looking for hte lowest poc, according to rest of the code, the
9336 picture in the dbp (decoded picture buffer) might be NULL, thus we
9337 could check for a NULL picture before assigned as found.
9338 Also, split a comma operator because it is considered as a bad
9339 practice because it possible side effects.
9341 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9343 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9344 libs: decoder: h265: untaint loop control variable
9346 Scalars (for example, integers) are not properly
9347 bounds-checked (sanitized) before being used as array or pointer
9348 indexes, loop boundaries, or function arguments are considered as
9350 In this case, num_nals were not checked before used as loop control.
9352 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9354 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9355 libs: decoder: h264: remove unrequired NULL check
9357 Dereference after null check: Either the check against null is
9358 unnecessary, or there may be a null pointer dereference.
9359 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9360 prev_picture could be NULL, that's why the code did a null check. But,
9361 since commit 52adebe7, the previous reference frames are tracked, thus
9362 there is no need to check null anymore.
9364 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9366 * gst/vaapi/gstvaapidecode.c:
9367 vaapidecode: fix gst_caps_new_simple call
9368 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9370 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9372 * gst/vaapi/gstvaapidecode.c:
9373 vaapidecode: force add h264 MVC profiles in caps
9374 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9376 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9378 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9380 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9381 libs: decoder: h264: decode MVC base view only
9382 If processed SPS has mvc profile and the configuration is set to
9383 base-only, the frame is drop.
9384 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9386 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9388 * gst/vaapi/gstvaapidecode.c:
9389 * gst/vaapi/gstvaapidecode_props.c:
9390 vaapidecode: set h264 base-only to decoder
9391 Set the base-only value when property is set and the internal
9392 decoder is already instantiated or when the internal decoder
9394 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9396 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9398 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9399 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9400 libs: decoder: h264: add setter for base-only mode
9401 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9403 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9405 * gst/vaapi/gstvaapidecode_props.c:
9406 * gst/vaapi/gstvaapidecode_props.h:
9407 vaapidecode_props: h264: add base-only property
9408 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9410 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9412 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9413 libs: encoder: h264: missing property enum documentation
9415 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9417 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9418 libs: encoder: h264: add multi reference support
9419 Using num_ref_frames provided and the result of the Query
9420 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9421 and perform encoding with multi reference frames as the following:
9422 1\ The num_ref_frames is being considered as the number of
9423 reference picture list0
9424 2\ Encoder adds 1 reference frame more to the reference picture list1
9425 internally if b-frame encoding.
9426 3\ If num_ref_frames is bigger than the number of refrence frames
9427 supported in the driver, it will be lowered.
9428 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9430 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9432 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9433 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9434 libs: encoder: h264: add refs property
9435 Users can provide the number of reference frame by this property.
9436 The value of the property will be considered as the number of
9437 reference picture list0 and will add 1 reference frame more to the
9438 reference picture list1 internally if b-frame encoding.
9439 If the value provided is bigger than the number of refrence frames
9440 supported in the driver, it will be lowered.
9441 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9443 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9445 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9446 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9447 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9448 This function will query VAConfigAttribEncMaxRefFrames to get the
9449 maximum number of reference frames supported in the driver.
9450 This will be used for h264/h265 encoding.
9451 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9453 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9455 * gst/vaapi/gstvaapiencode_h265.c:
9456 vaapiencode: h265: compare an unsigned int if not zero
9457 An unsigned value can never be negative, so this test (greater than
9458 zero) will always evaluate the same way. Thus change it to just if
9461 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9463 * gst/vaapi/gstvaapipluginbase.c:
9464 plugins: check gst_gl_ensure_element_data() return value
9465 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9466 the return value of gst_gl_ensure_element_data(). The result is a code
9469 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9471 * gst/vaapi/gstvaapipluginutil.c:
9472 plugins: avoid dead code detection
9473 By using #elif macro, the static code analysis would stop to detect
9474 these lines as dead code. Also it is inforced the mutually exclusive
9477 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9479 * gst/vaapi/gstvaapivideobufferpool.c:
9480 vaapivideobufferpool: don't shift by negative since it's undefined
9481 The function g_bit_nth_lsf() may return -1 if the request bit position
9482 is not avaible. Thus, this patch check if the return value is not -1
9483 in order to continue.
9485 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9487 * gst/vaapi/gstvaapisink.c:
9488 vaapisink: fix memory leak
9490 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9492 * gst/vaapi/gstvaapipostprocutil.c:
9493 vaapipostproc: fix memory leaks
9495 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9497 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9498 libs: display: when appending formats change pointers to indexes
9499 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9501 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9503 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9505 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9506 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9507 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9508 Added a new property "compliance-mode", which default is the normal
9509 strict compliant mode.
9510 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9511 allocation size to improve performance in some specific Intel
9512 platforms (there is asignificant performance improvement in parallel
9513 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9514 pre-calculating the coded-buffer size.
9515 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9517 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9519 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9520 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9521 libs: utils_h264: Extend LevelLimit table with MinCR field
9522 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9524 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9526 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9528 * gst-libs/gst/vaapi/gstvaapiutils.c:
9529 libs: utils: libva 1.0 changed the logging
9530 The logging mechanism in libva has changed it's functions
9531 signatures. This patch updates that for libva versions >= 1.0
9532 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9534 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9536 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9537 libs: decoder: h264: libva 1.0 deprecated baseline
9538 libva 1.0 deprecated H.264 baseline profile and FMO support
9540 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9542 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9546 * meson_options.txt:
9547 build: check for libva-2.0
9548 Check for libva-2.0 since libva's developers decided to increase the
9549 library's version number.
9550 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9552 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9556 build: blacklist only libva 0.99.0
9557 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9558 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9560 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9562 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9564 * gst-libs/gst/vaapi/meson.build:
9565 build: meson: remove gstvaapidisplaycache.c
9566 This is a missing bit of commit ec3e10f6
9568 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9571 configure: do not break configure if gtk+-3.0 devel missing
9572 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9573 set USE_GTK=0 if gtk+-3.0 is not available.
9574 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9575 Author: Hyunjun Ko <zzoon@igalia.com>
9576 Date: Wed Jul 5 15:59:43 2017 +0900
9577 tests: elements: add testsuite of vaapi context
9578 ...configure fails if gtk+-3.0 development files are missing.
9579 The "with_gtk" option defaults to "check" in configure.ac
9580 which implies that if it is not explicitly requested then
9581 configure will only enable it if it's available on the system.
9582 However, the PKG_CHECK_MODULES rule that get's activated on
9583 "check" condition did not provide default when gtk+-3.0 devel
9584 packages are not found on the system. Thus, it resulted in
9586 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9587 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9589 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9592 * tests/elements/Makefile.am:
9593 * tests/elements/test-vaapicontext.c:
9594 tests: elements: add testsuite of vaapi context
9595 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9596 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9598 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9600 * gst/vaapi/gstvaapisink.c:
9601 vaapisink: fail if surface display is different
9602 Replacing GstVaapiDisplay during rendering might be hiding problems
9603 at some cases, even though it's safe currently since we use cache
9605 Play safe by failing if this happens.
9606 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9608 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9610 * gst/vaapi/gstvaapivideocontext.c:
9611 * gst/vaapi/gstvaapivideocontext.h:
9612 videocontext: support "gst.vaapi.app.Display" context
9613 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9614 and native display of their backend.
9616 - display : pointer of VADisplay
9617 - x11-display : pointer of X11 display (Display *), if they're using.
9618 This patch creates GstVaapidisplayX11 if information provided through
9619 "gst.vaapi.app.Display"
9620 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9622 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9624 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9625 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9626 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9627 Implements new API function so that users could create GstVaapiDisplay
9628 with their own VADisplay within a native display as backend.
9629 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9631 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9633 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9634 libs: display: pass display info when foreign display
9635 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9636 with that display, it also requires native display of the backend.
9637 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9639 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9641 * gst-libs/gst/vaapi/Makefile.am:
9642 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9643 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9644 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9645 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9646 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9647 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9648 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9649 libs: display: remove cache
9650 Remove a bunch of code that handles the VADisplay cache, since the
9651 context sharing should be doing this correctly.
9652 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9654 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9656 * tests/elements/Makefile.am:
9657 * tests/elements/test-vaapipostproc.c:
9658 tests: elements: add test for vaapipostproc
9659 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9661 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9663 * gst/vaapi/gstvaapipostproc.c:
9664 postproc: reconfigure when width or height changes
9665 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9667 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9669 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9670 libs: encoder: vp9: array terminated in zeros
9671 There is a crash when setting ref-pic-mode since the #GEnumValue
9672 array is not terminated with a structured with all memvers being
9674 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9676 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9678 * gst/vaapi/gstvaapiencode_h264.c:
9679 vaapiencode: h264: add plugin documentation
9680 Comment how the profile is set and other parameters.
9682 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9684 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9685 libs: decoder: h264: push frames as soon as possible
9686 Push frames downstream as soon as possible instead of waiting until
9687 they are ejected from the DPB.
9688 This patch makes the decoder not comply with the H.264 specification,
9689 but it is required for some video cameras.
9690 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9691 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9693 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9695 * gst/vaapi/gstvaapidecode_props.c:
9696 vaapidecode_props: h264: set low-latency in decoder
9697 Set the low-latency property if the H264 decoder is already
9698 instantiated, thus you could change the behavior in run-time.
9699 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9701 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9703 * gst/vaapi/gstvaapidecode.c:
9704 vaapidecode: set h264 low latency to decoder
9705 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9707 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9709 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9710 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9711 libs: decoder: h264: add getter/setter for low latency mode
9712 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9714 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9716 * gst/vaapi/gstvaapidecode_props.c:
9717 * gst/vaapi/gstvaapidecode_props.h:
9718 vaapidecode_props: h264: add low latency property
9719 Adding support for private data.
9720 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9722 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9724 * gst/vaapi/Makefile.am:
9725 * gst/vaapi/gstvaapidecode.c:
9726 * gst/vaapi/gstvaapidecode_props.c:
9727 * gst/vaapi/gstvaapidecode_props.h:
9728 * gst/vaapi/meson.build:
9729 vaapidecode_props: add skeleton for h264 decoder properties
9730 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9732 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9734 * gst/vaapi/gstvaapidecode.c:
9735 vaapidecode: properties callback in decoders map
9736 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9738 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
9741 meson: find python3 via python3 module
9742 https://bugzilla.gnome.org/show_bug.cgi?id=783198
9744 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
9746 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9747 libs: encoder: h264: submit sps in case of IDR picture
9748 If the picture is IDR, also submit a SPS header.
9749 This means when frame number reaches to keyframe-period or an force
9750 key unit event arrives, we insert SPS/PPS again.
9751 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9753 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
9755 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9756 libs: encoder: h264: set the frame as IDR if forced key unit
9757 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9758 the `frame-lost` event in the case of streaming, such as RTP.
9759 In case of this event, it is needed to start new GOP rather than just
9761 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9763 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9765 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9766 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9767 libs: encoder: h264: insert AU delimiter
9768 Insert an AUD as the first NAL of each encoded frame.
9769 Some applications require Access Unit Delimiter for decoding the
9771 The AU delimeter insertion is done only when the aud parameter is
9772 TRUE (by default is disabled). The reason of this it is because this
9773 header is only available from Intel Gen9 and the VA intel driver
9774 should be 1.8 or superior. Otherwise, the output will be corrupted.
9775 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9776 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9778 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9780 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9781 libs: encoder: h264: initialize all elements of view_ids
9782 Currently when num_views is changed by multiview-mode on sink caps, it produces
9783 wrong MVC encoded stream since the array view_ids is not set properly according
9784 to changed num_views.
9785 So this patch initializes all of the array sequentially to handle this case.
9786 Side effect is not going to happen by this patch since this array is being
9787 handled by num_views.
9788 https://bugzilla.gnome.org/show_bug.cgi?id=784321
9790 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
9792 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9793 Revert "encoder: h264: Use high profile by default"
9794 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9795 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9797 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
9799 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9800 libs: encoder: h264: set profile via capsfilter
9801 Until now, the encoder ignored the profile in src caps and chose one
9802 according with the given parameters. But the encoder must honor the
9803 profile specifed in src caps.
9804 This patch do that, and if the encoder needs to choose the profile,
9805 it will do it by following these rules:
9806 1\ If given parameters are not compatible with given profile, the
9807 encoder will bail out with an error.
9808 2\ The encoder will choose the higher profile indicated in the
9810 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9812 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
9814 * gst/vaapi/gstvaapiencode_h264.c:
9815 vaapiencode: h264: set profile to src caps
9816 So far vaapi encoder does not set profile to src caps. This patch makes it
9817 setting profile to src caps, which is determined by itself.
9818 In addition, if encoder chose different profile, which is not negotiated with
9819 downstream, we should set compatible profile to make negotiation working.
9820 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9822 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9824 * gst/vaapi/gstvaapiencode_h264.c:
9825 * gst/vaapi/gstvaapiencode_h264.h:
9826 vaapiencode: h264: verify if requested profile is supported
9827 Check if the requested profile in source caps, is supported by the
9828 VA driver. If it is not, an info log message is send saying that
9829 another (compatible?) profile will be used.
9830 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9832 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9834 * gst/vaapi/gstvaapiencode_h264.c:
9835 vaapiencode: h264: improve set_config() vmethod
9836 First check if downstream requests ANY caps. If so, byte-stream is
9837 used and the profile will be choose by the encoder. If dowstream
9838 requests EMPTY caps, the negotiation will fail.
9839 Lately, byte-stream and profile are looked in the allowed caps.
9840 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9842 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9844 * gst/vaapi/gstvaapiencode_h264.c:
9845 vaapiencode: h264: check for avc in set_config()
9846 The check for avc stream format was done in the vaapi encoder's
9847 vmethod get_caps(), but that is wrong since it has to be check
9848 when encoder set_format().
9849 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9851 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
9853 * gst/vaapi/gstvaapipostprocutil.c:
9854 vaapipostproc: set multivew-mode flags to src caps
9855 vaapipostproc didn't negotiate the proper multiview caps losing
9856 downstream information.
9857 This patch enables the playing of MVC encoded stream by setting
9858 the proper multiview mode/flags and views to src caps, according
9860 https://bugzilla.gnome.org/show_bug.cgi?id=784320
9862 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
9864 * gst/vaapi/gstvaapipostproc.c:
9865 vaapipostproc: add support for DMABuf caps feature
9866 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9867 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9869 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9871 * gst/vaapi/gstvaapidecode.c:
9872 vaapidecode: add support for DMABuf caps feature
9873 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9874 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9876 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9878 * gst/vaapi/gstvaapipluginbase.c:
9879 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9880 Instantiate all dmabuf allocator for src pad buffer pool if the
9881 src caps ask for memory:DMABuf feature.
9882 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9884 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
9886 * gst/vaapi/gstvaapipluginutil.c:
9887 * gst/vaapi/gstvaapipluginutil.h:
9888 vaapipluginutil: add support for DMABuf caps feature
9889 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9890 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9891 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9892 vaapipluginutil: add support for DMABuf caps feature
9894 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9896 * gst/vaapi/gstvaapipluginbase.c:
9897 vaapipluginbase: dmabuf memory map trial for raw caps
9898 Only push dmabuf-based buffers with raw caps if gst_memory_map()
9899 succeeds. Otherwise, use the the vaapi surfaces allocator.
9900 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9901 https://bugzilla.gnome.org/show_bug.cgi?id=774649
9902 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9904 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9906 * gst/vaapi/gstvaapivideomemory.c:
9907 * gst/vaapi/gstvaapivideomemory.h:
9908 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9909 This new method checks the specified allocator can create GstMemory that can
9911 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9913 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9915 * gst/vaapi/gstvaapivideobufferpool.c:
9916 vaapivideobufferpool: fix regression with video metas
9917 There is another regression with 7a206923 when setting the video
9918 info for the video meta, it should be the one from the image's
9919 allocator rather from the allocation caps.
9921 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9922 ! tee ! videoconvert ! videoscale \
9923 ! video/x-raw, width=1920, height=1080 ! xvimagesink
9925 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9927 * gst/vaapi/gstvaapipluginbase.c:
9928 * gst/vaapi/gstvaapivideobufferpool.c:
9929 plugins: update buffer size with the one reported by allocator
9930 There is a regression in 7a206923, since the buffer pool ditches all
9931 the buffers generated by them because the pool config size is
9932 different of the buffer's size.
9934 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9935 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
9936 --gst-debug=GST_PERFORMANCE:5
9937 The allocator may update the buffer size according to the VA surface
9938 properties. In order to do this, the video info is modified when the
9939 allocator is created, which reports through the allocation info the
9940 updated size, and set it to the pool config.
9942 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
9944 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9945 libs: decoder: h264: initialize active_sps/pps in reset
9946 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9947 they introduced regression in seek.
9948 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9949 But since the commits landed, it doesn't drop P-frame and does try to
9950 decode it continuously because active_sps is still alive. See ensure_sps function.
9951 But there are prev_frames and prev_ref_frames reset already, then it
9953 So it's necessary to reset active_sps/pps also in reset method.
9954 https://bugzilla.gnome.org/show_bug.cgi?id=783726
9956 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9958 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9959 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9960 libs: encoder: fix compilation with old versions of libva
9961 There are some symbols that are not used when compiling with old
9962 version of libva and those generates a compilation error.
9963 Original-patch-by: Matt Staples <staples255@gmail.com>
9965 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9967 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9968 libs: encoder: Fix the quality level clamping
9969 Change the hard-coded range of quality-level from {1-8} to {1-7},
9970 since it is the range Intel Open source driver supports.
9971 Also perform the range clamping only if the user provided
9972 quality-level is greater than the max-range suppored by the driver,
9973 because there could be non-intel drivers giving lower value than
9974 the hard-coded max value 7.
9975 https://bugzilla.gnome.org/show_bug.cgi?id=783567
9977 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9979 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9980 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9981 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9982 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9983 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9984 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9985 libs: encoder: log out the name of the profile
9986 Instead of printing a number, it is more readable to log out, in
9987 case of error, the name of the failing profile.
9989 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
9991 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9992 libs: encoder: h264: changes raw number of profile to macro name of its
9993 Changes raw number of profile to macro name of its to improve readability.
9994 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9996 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9998 * gst/vaapi/gstvaapivideobufferpool.c:
9999 vaapivideobufferpool: remove allocation_vinfo private attribute
10000 There is no need to keep this attribute internally since it is
10001 already managed by the allocator.
10002 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10004 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10006 * gst/vaapi/gstvaapivideobufferpool.c:
10007 vaapivideobufferpool: refactor set_config()
10008 Refactor the set_config() virtual method considering a cleaner
10009 approach to allocator instanciation, if it it not set or if it is
10010 not valid for the pool.
10011 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10013 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10015 * gst/vaapi/gstvaapipluginbase.c:
10016 * gst/vaapi/gstvaapivideobufferpool.c:
10017 * gst/vaapi/gstvaapivideomemory.c:
10018 * gst/vaapi/gstvaapivideomemory.h:
10019 plugins: distinguish allocation and negotiation caps
10020 The vaapi video decoders might have different allocation caps from
10021 the negotiation caps, thus the GstVideoMeta shall use the negotiation
10022 caps, not the allocation caps.
10023 This was done before reusing gst_allocator_get_vaapi_video_info(),
10024 storing there the negotiation caps if they differ from the allocation
10025 ones, but this strategy felt short when the allocator had to be reset
10026 in the vaapi buffer pool, since we need both.
10027 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
10028 gst_allocator_get_vaapi_negotiated_video_info() to store the
10029 negotiated video info in the allocator, and distinguish it from
10030 the allocation video info.
10031 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10033 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10035 * gst/vaapi/gstvaapivideomemory.c:
10036 * gst/vaapi/gstvaapivideomemory.h:
10037 vaapivideomemory: rename qdata quarks and ids
10038 Also the parameter names were renamed to reflect their origin
10040 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10042 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10044 * gst/vaapi/gstvaapivideobufferpool.c:
10045 vaapivideobufferpool: rename local variables
10046 Renamed local video info structure names in set_config() vitual
10047 method. The purpose of their renaming is to clarify the origin
10048 of those structures, whether come from passed caps parameter
10049 (new_allocation_vinfo) or from the configured allocator
10051 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10053 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10055 * gst/vaapi/gstvaapivideobufferpool.c:
10056 vaapivideobufferpool: rename video info structures
10057 Renamed private GstVideoInfo structure video_info to allocation_vinfo
10058 and alloc_info to negotiated_vinfo.
10059 The purpose of these renaming is to clarify the origin and purpose of
10060 these private variables:
10061 video_info (now allocation_vinfo) comes from the bufferpool
10062 configuration. It describes the physical video resolution to be
10063 allocated by the allocator, which may be different from the
10065 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
10066 the pipeline. It represents how the frame is going to be mapped
10067 using the video meta.
10068 In Intel's VA-API backend, the allocation_vinfo resolution is
10069 bigger than the negotiated_info.
10070 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10072 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10074 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10075 libs: encoder: set framerate if bigger than 0/1
10076 Just set the framerate parameter if the framerate numerator and
10077 denominator are bigger than zero.
10078 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
10080 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10081 https://bugzilla.gnome.org/show_bug.cgi?id=783532
10083 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10085 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10086 libs: encoder: bitrate target percentage calculation
10087 If the rate control is set to Constant Bit Rate (CBR) the target
10088 percentage is 100%, otherwise is 70%
10090 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10092 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10093 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10094 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10095 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10096 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10097 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10098 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
10099 Centralize the common configuration for the Rate Control parameter,
10100 thus can be overloaded per each specific encoder.
10102 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10104 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10105 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10106 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10107 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10108 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10109 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10110 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
10111 Since the framerate VA parameter is calculated equally among all the
10112 encoders, it is better to handle it in the base encoder class.
10114 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10116 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10117 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
10118 libs: encoder: vp9: Adds CBR and VBR Encoding support
10119 https://bugzilla.gnome.org/show_bug.cgi?id=766832
10120 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10121 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10123 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10125 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10126 libs: encoder: vp8: Adds VBR Encoding support
10127 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10129 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
10131 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10132 libs: encoder: h265: Adds VBR Encoding support
10133 Enables Variable BitRate mode, which does set FrameRate and RateControl
10135 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10137 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
10139 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10140 libs: encoder: Describes more detail about the bitrate property
10141 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10143 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10145 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10146 libs: encoder: h265: add rate control parameter
10147 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10149 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10151 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10152 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10153 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10154 libs: encoder: h264,h265,mpeg2: add framerate parameter
10155 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10157 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10159 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10160 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10161 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10162 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10163 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10164 Instead of recalculating the miscellaneous buffer parameters for
10165 every buffer, it is only done once, when the encoder is configured.
10166 And for every buffer, the same structures are just copied.
10167 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10169 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10171 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10172 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10173 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10174 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10175 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10176 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10177 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10178 This is patch pretends to decouple the assignation of the values
10179 in the parameter structures and the VA buffer's parameters setting.
10180 It may lead to some issues since HRD, framerate or controlrate may
10181 not be handled by the specific encoder, but they are set in
10182 the VA buffer's parameters.
10183 I leave as it because this patch is just a transitional patch.
10184 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10186 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10188 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10189 libs: encoder: vp8: fix frame rate calculation
10190 According to the VA documentation:
10191 The framerate is specified as a number of frames per second,
10192 as a fraction. The denominator of the fraction is given in
10193 the top half (the high two bytes) of the framerate field, and
10194 the numerator is given in the bottom half (the low two bytes).
10195 For example, if framerate is set to (100 << 16 | 750), this is
10196 750 / 100, hence 7.5fps.
10197 If the denominator is zero (the high two bytes are both zero)
10198 then it takes the value one instead, so the framerate is just
10199 the integer in the low 2 bytes.
10200 This patch fixes the the framerate calculation in vp8 encoder
10202 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10204 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10206 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10207 libs: encoder: vp8: refactor FrameRate parameter
10208 Move frame-rate parameter from ensure_misc_params() to
10209 ensure_contro_rate_param() since it only has meaning when the
10210 control rate is either VBR or CBR.
10211 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10213 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10215 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10216 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10217 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10218 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10219 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10220 Move the Hypothetical Reference Decoder (HRD) parameter, from
10221 ensure_misc_params() to ensure_control_rate_params(), since it
10222 only shall be defined when the control rate is either VBR or CBR.
10223 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10225 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10227 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10228 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10229 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10230 libs: encoder: h264,vp8,mpeg2: refactor control rate
10231 Instead of filling the control rate param in ensure_misc_params(),
10232 this patch refactor it out, as a first step to merge the same code
10233 for all the encoders.
10234 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10236 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10238 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10239 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10240 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10241 libs: encoder: h264, h265, mpeg2: remove assert
10242 Remove spurious asserts for misc parameters. If they cannot be
10243 allocated, FALSE is already returned.
10245 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10247 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10248 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10249 libs: encoder: use VA quality level structure
10250 Instead of using a proxy to story the buffer quality level, the
10251 encoder now uses the native VA structure, which is copied to the
10252 dynamically allocated VAEncMiscParameterBuffer.
10253 This approach is computationally less expensive.
10255 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10257 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10258 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10259 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10260 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10261 libs: standardize the FIXME comment
10262 This is a trivial patch that makes homogeneous the FIXME tag in
10264 For more info about these comment style:
10265 http://wiki.c2.com/?FixmeComment
10267 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10269 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10270 libs: encoder: vp8: set quality level regardless of rate control mode
10271 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10273 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10275 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10276 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10277 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10278 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10279 libs: encoder: check for maximum number of slices
10280 Right now, H264 and HEVC can set as a property the number of slices to
10281 process. But each driver can set a maximum number of slices, depending
10282 on the supported profile & entry point.
10283 This patch verifies the current num_slices to process against the maximum
10284 permitted by the driver and the media size.
10285 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10287 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10289 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10290 libs: utils: mark functions as internals
10291 The functions in this header are internal to the library.
10293 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10295 * gst-libs/gst/vaapi/gstvaapicontext.h:
10296 libs: context: add missing documentation
10297 Document the region-of-interest configuration variables.
10299 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10301 * tests/elements/test-vaapisink.c:
10302 tests: elements: vaapisink: handle nav events
10303 The test app can now handle navigation events to rotate the
10306 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10308 * tests/elements/test-vaapisink.c:
10309 tests: elements: clean up vaapisink test
10310 - Use gst_element_send_event() instead of gst_pad_push_event()
10311 - don't zero App structure
10312 - check for pipeline parsing error
10313 - only get vaapisink for property set
10315 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10317 * gst/vaapi/gstvaapisink.c:
10318 vaapisink: keep handle_events flag except that if user want to set
10319 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10320 flag is set to FALSE, and never recovered, and then event thread is never
10322 So we should allow to set the flag only when users try it.
10323 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10325 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10327 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10328 libs: window: x11: fix src rect info when using vpp
10329 Since we started using VPP in VaapiWindowX11, we need to care about
10330 the case that src rect and window's size are different.
10331 So, once VPP has converted to other format, we should honor the
10332 size of the VPP's surface as source rect. Otherwise, it is cropped
10333 according the previous size of the source rect.
10334 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10336 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10338 * gst/vaapi/gstvaapipluginutil.c:
10339 plugins: remove par from caps negotiation
10340 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10342 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10344 * tests/elements/Makefile.am:
10345 * tests/elements/test-roi.c:
10346 tests: elements: add an example for ROI
10347 This implements a pipleint to recognize difference between ROI and non-ROI.
10348 See comments in this code in detail.
10349 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10350 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10352 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10354 * gst/vaapi/gstvaapiencode.c:
10355 * gst/vaapi/gstvaapiencode_h264.c:
10356 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10357 Handles new custom event GstVaapiEncoderRegionOfInterest
10358 to enable/disable a ROI region.
10359 Writes a way to use new event to document.
10360 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10361 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10363 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10365 * tests/simple-encoder.c:
10366 tests: simple-encoder: add an option to set ROI
10367 $ simple-encoder -r inputfile.y4m
10368 And you'll got an output file in H264 with two regions of interest.
10369 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10370 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10372 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10374 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10375 libs: encoder: h264: set ROI params during encoding
10376 Set ROI params during encoding each frame, which are set via
10377 gst_vaapi_encoder_add_roi ()
10378 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10379 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10381 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10383 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10384 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10385 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10386 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10387 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10388 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10390 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10392 * gst-libs/gst/vaapi/gstvaapicontext.c:
10393 * gst-libs/gst/vaapi/gstvaapicontext.h:
10394 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10395 libs: encoder/context: query region of interest support
10396 Queries if the driver supports "Region of Interest" (ROI) during the config
10398 This attribute conveys whether the driver supports region-of-interest (ROI)
10399 encoding, based on user provided ROI rectangles. The attribute value is
10400 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10401 If ROI encoding is supported, the ROI information is passed to the driver
10402 using VAEncMiscParameterTypeROI.
10403 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10404 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10406 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10408 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10409 libs: encoder: fix a comment
10411 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10413 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10414 libs: encoder: guard quality level configuration
10415 The quality level appeared in VA-API 0.36. So let's guard its
10418 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10420 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10421 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10422 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10423 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10424 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10425 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10426 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10427 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10428 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10429 encoders: add quality level tuning
10430 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10431 in gstreamer-vaapi encoders:
10432 The encoding quality could be set through this structure, if the
10433 implementation supports multiple quality levels. The quality level set
10434 through this structure is persistent over the entire coded sequence, or
10435 until a new structure is being sent. The quality level range can be queried
10436 through the VAConfigAttribEncQualityRange attribute. A lower value means
10437 higher quality, and a value of 1 represents the highest quality. The quality
10438 level setting is used as a trade-off between quality and speed/power
10439 consumption, with higher quality corresponds to lower speed and higher power
10441 The quality level is set by the element's parameter "quality-level" with a
10442 hard-coded range of 1 to 8.
10443 Later, when the encoder is configured in run time, just before start
10444 processing, the quality level is scaled to the codec range. If
10445 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10446 the quality level is set to zero, which means "disabled".
10447 All the available codecs now process this parameter if it is available.
10448 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10449 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10451 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10455 Back to development
10457 === release 1.12.0 ===
10459 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10464 * gstreamer-vaapi.doap:
10468 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10470 * gst/vaapi/gstvaapidecodebin.c:
10471 Revert "vaapidecodebin: fix element's classification"
10472 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10474 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10478 build: Require libva < 0.99.0
10479 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10480 fail to configure instead of failing late in the build.
10481 This libva is bundled in msdk[1] and it is ahead in time with
10482 respect the official and open source libva[2]. GStreamer-VAAPI
10483 only supports the latter for now.
10484 1. https://software.intel.com/en-us/media-sdk/download
10485 2. https://github.com/01org/libva/
10486 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10488 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10490 * gst/vaapi/gstvaapidecodebin.c:
10491 vaapidecodebin: fix element's classification
10492 This bin should have similar classification as decodebin which is
10493 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10495 Signed-off-by: Victor Toso <victortoso@redhat.com>
10496 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10498 === release 1.11.91 ===
10500 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10505 * gstreamer-vaapi.doap:
10509 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10511 * gst/vaapi/gstvaapipluginutil.c:
10512 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10513 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10515 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10517 * gst/vaapi/gstvaapipluginutil.c:
10518 plugins: reject pixel-aspect-ratio with value 0/1
10519 Do not negotiate a pixel-aspect-ratio of 0/1.
10520 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10522 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10524 * gst/vaapi/gstvaapipostprocutil.c:
10525 * gst/vaapi/gstvaapisink.c:
10526 plugins: handle pixel-aspect-ratio with value 0/1
10527 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10528 calculations for resizing and formatting in vaapipostproc and
10529 vaapisink, respectively, failed, and thus the pipeline.
10530 This patch handles this situation by converting p-a-r of 0/1 to
10531 1/1. This is how other sinks, such as glimagesink, work.
10532 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10534 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10536 * gst/vaapi/gstvaapivideobufferpool.c:
10537 vaapivideobufferpool: fix leak of created allocator
10538 Since it's created by itself, it should be unref-counted
10539 after gst_buffer_pool_config_set_allocator call. Afterwards,
10540 this allocator will be ref-counted again when assigning to priv->allocator.
10541 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10543 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10545 * gst/vaapi/gstvaapivideobufferpool.c:
10546 vaapivideobufferpool: create or reconfig allocator
10547 Sometimes a video decoder could set different buffer pool
10548 configurations, because their frame size changes. In this case we
10549 did not reconfigure the allocator.
10550 This patch enables this use case, creating a new allocator inside
10551 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10552 If so, it is just reconfigured, since it doesn't have a surface pool.
10553 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10555 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10557 * tests/elements/Makefile.am:
10558 test: elements: fix compilation flags
10559 This issue was spotten on bug #766704
10560 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10562 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10564 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10565 libs: windows: wayland: fix leak if failure of sync
10566 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10567 during destruction.
10568 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10569 This surface is not attached to anything at this moment, so we should release
10571 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10573 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10576 Automatic update of common submodule
10577 From 60aeef6 to 48a5d85
10579 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10581 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10582 libs: window: wayland: mark frames as done
10583 When the frame listener callbacks 'done', the number of pending
10584 frames are decreased. Nonetheless, there might be occasions where
10585 the buffer listener callbacks 'release', without calling previously
10586 frame's 'done'. This leads to problem with
10587 gst_vaapi_window_wayland_sync() operation.
10588 This patch marks as done those frames which were callbacked, but if
10589 the buffer callbacks 'release' and associated frame is not marked
10590 as 'done' it is so, thus the number of pending frames keeps correct.
10591 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10592 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10594 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10596 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10597 libs: window: wayland: don't sync at destroy()
10598 Don't call gst_vaapi_window_wayland_sync() when destroying the
10599 wayland window instance, since it might lead to a lock at
10600 gst_poll_wait() when more than one instances of vaapisink are
10601 rendering in the same pipeline, this is because they share the
10603 Since now all the frames are freed we don't need to freed the
10604 private last_frame, since its address is invalid now.
10605 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10606 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10608 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10610 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10611 libs: window: wayland: null buffer at destroy()
10612 Fix leakage of the last wl buffer.
10613 VAAPI wayland sink needs to send a null buffer while destruction,
10614 it assures that all the wl buffers are released. Otherwise, the last
10615 buffer's callback might be not called, which leads to leak of
10617 This was inspired by gstwaylandsink.
10618 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10619 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10621 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10623 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10624 libs: window: wayland: rt event queue at destroy()
10625 The proxy object of wl_buffer for the last frame remains in the
10626 wl_map. Even though we call wl_buffer_destroy() in
10627 frame_release_callback(), the proxy object remains without being
10628 removed, since proxy object is deleted when wayland server sees the
10629 delete request and sends 'delete_id' event.
10630 We need to call roundtrip before destroying event_queue so that the
10631 proxy object is removed. Otherwise, it would be mess up as receiving
10632 'delete_id' event from previous play, when playing in the next
10633 va/wayland window with the same wl_display connection.
10634 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10635 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10637 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10639 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10640 libs: window: wayland: cancel read at poll message
10641 Always call wl_display_cancel_read() when an errno is set, but
10642 different to EAGAIN or EINTR.
10643 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10645 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10647 * gst/vaapi/gstvaapidecodebin.c:
10648 * gst/vaapi/gstvaapidecodebin.h:
10649 vaapidecodebin: skips configuration once it's done
10650 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10651 Otherwise, it always fails when it's trying to re-start playback.
10652 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10654 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10656 * gst/vaapi/gstvaapipostprocutil.c:
10657 vaapipostproc: fixes for memory leaks
10658 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10659 requires to clear the used GValue to avoid a memory leak.
10661 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10663 * gst/vaapi/gstvaapipluginbase.c:
10664 * gst/vaapi/gstvaapipluginbase.h:
10665 plugins: enable direct rendering with envvar
10666 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10667 performance in some Intel platforms (Haswell, for example) but in others
10668 (Skylake) is the opposite.
10669 In order to have some control, the patch enables the direct rendering
10670 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10671 Also it seems to generating some problems with gallium/radeon backend.
10673 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10675 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10677 * gst/vaapi/gstvaapidecode.c:
10678 vaapidecode: Don't renegotiate on every flush
10679 If caps don't actually change, don't update the
10680 decoder and don't set the do_renego flag forcing
10681 downstream renegotiation
10682 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10684 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10686 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10687 h264 decoder: Implement reset() for faster flush
10688 Implement a custom reset() function for faster flushes
10689 that just clear the reference pictures but don't reallocate
10690 the DPB or clear out SPS/PPS
10691 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10693 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10695 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10696 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10697 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10698 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10699 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10700 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10701 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10702 * gst/vaapi/gstvaapidecode.c:
10703 Implement decoder reset on flush, rather than recreating
10704 Clear decoders out on a flush but keep the same instance,
10705 rather than completely recreating them. That avoids
10706 unecessarily freeing and recreating surface pools
10707 and contexts, which can be quite expensive
10708 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10710 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10712 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10713 libs: window: don't add an unused function
10714 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10715 a function that is never used, thus when compiling we might see
10716 this warning (clang):
10717 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10718 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10720 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10722 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10724 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10725 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10726 libs: window: remove surface_format member
10727 Since we always convert to NV12, there is no need to keep a
10728 variable for that. Let us hard code it.
10729 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10731 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10733 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10734 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10735 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10736 libs: window: x11/wayland: use new api for conversion
10737 Since gst_vaapi_window_vpp_convert_internal is created,
10738 GstVaapiWindowX11/Wayland can use it for conversion.
10739 Note that once it chooses to use vpp, it's going to use vpp
10740 until the session is finished.
10741 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10743 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
10745 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10746 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10747 libs: window: add gst_vaapi_window_vpp_convert_internal()
10748 If a backend doesn't support specific format, we can use vpp for conversion
10749 and make it playing.
10750 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10751 so that GstVaapiWindowX11 could use it.
10752 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10754 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10756 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10757 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10758 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10759 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10760 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10761 libs: window: x11/wayland: chaining up to GstVaapiWindow
10762 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10763 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10764 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10766 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10768 * gst/vaapi/gstvaapipluginutil.c:
10769 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10770 When these definitions are false, they are undef in the
10771 preprocessor, not a defined value of 0. When they are unset the
10772 compile fails with:
10773 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10774 https://bugzilla.gnome.org/show_bug.cgi?id=780948
10776 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
10779 Automatic update of common submodule
10780 From 39ac2f5 to 60aeef6
10782 === release 1.11.90 ===
10784 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
10789 * gstreamer-vaapi.doap:
10793 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10795 * gst/vaapi/gstvaapiencode_h265.c:
10796 vaapiencode: h265: add main-10 in caps template
10797 This patch adds h265's main-10 profile in encoder src caps template.
10798 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10800 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10802 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10803 libs: encoder: h265: chroma and luma with format
10804 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10805 parameter buffer, shall be the color format bit depth minus 8, 10-8
10806 which is 2. Also for bit_depth_chroma_minus8.
10807 This patch gets the negotiated sink caps format and queries its
10808 luma's depth and uses that value to fill the mentioned parameters.
10809 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10811 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10813 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10814 libs: encoder: admit YUV420_10BPP as valid chroma
10815 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10817 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10819 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10821 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10822 libs: encoder: h265: ensures profile given format
10823 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10824 configured color format is P010_10LE.
10825 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10826 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10828 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10830 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10831 libs: encode: merge all possible surface formats
10832 When the function gst_vaapi_encoder_get_surface_formats() was added
10833 it was under the assumption that any VA profile of the specific codec
10834 supported the same format colors. But it is not, for example the
10835 profiles that support 10bit formats.
10836 In other words, different VA profiles of a same codec may support
10837 different color formats in their upload surfaces.
10838 In order to expose all the possible color formats, if no profile is
10839 specified via source caps, or if the encoder doesn't have yet a
10840 context, all the possible VA profiles for the specific codec are
10841 iterated and their color formats are merged.
10842 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10844 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10846 * gst/vaapi/gstvaapiencode.c:
10847 * gst/vaapi/gstvaapiencode.h:
10848 * gst/vaapi/gstvaapiencode_h264.c:
10849 * gst/vaapi/gstvaapiencode_h265.c:
10850 vaapiencode: add get_profile() vmethod
10851 This new virtual method, get_profile(), if implemented by specific
10852 encoders, will return the VA profile potentially determined by the
10854 Also it is implemented by h264 and h265 encoders, which are the main
10855 users of this vmethod.
10856 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10858 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10860 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10861 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10862 * gst/vaapi/gstvaapiencode.c:
10863 libs: encoder: pass profile to get_surface_formats()
10864 In order to get the supported surface formats within a specific
10865 profile this patch adds the GstVaapiProfile as property to
10866 gst_vaapi_encoder_get_surface_formats().
10867 Currently the extracted formats are only those related with the
10868 default profile of the element's codec.
10869 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10871 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10873 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10874 libs: encoder: dummy context for get_surface_formats()
10875 Instead of creating (if it doesn't exist, yet) the encoder's context
10876 the method gst_vaapi_encoder_get_surface_formats() now it creates
10877 dummy contexts, unless the encoder has it already created.
10878 The purpose of this is to avoid setting a encoder's context with a
10880 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10882 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10884 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10885 libs: encoder: refactor init_context_info()
10886 In order to generate vaapi contexts iterative, the function
10887 init_context_info() is refactored to pass, as parameters the
10888 GstVaapiContextInfo and the GstVaapiProfile.
10889 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10891 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10893 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10894 * gst-libs/gst/vaapi/gstvaapiutils.c:
10895 * gst-libs/gst/vaapi/gstvaapiutils.h:
10896 libs: encoder: initialize chroma_type
10897 Instead of initialize the chroma_type with a undefined value, which
10898 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10899 this patch queries the VA config, given the received
10900 GstVaapiContextInfo's parameters, and gets the first response.
10901 In order to get the GstVaapiChromaType value, also it was needed to
10902 add a new utility function: to_GstVaapiChromaType(), which, given a
10903 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10904 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10906 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10908 * gst/vaapi/gstvaapiencode.c:
10909 vaapiencode: enhance logs of negotiated caps
10910 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10912 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10914 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10915 libs: encoder: vp9: Fix initialization of ref_list
10916 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10917 'memset' used with length equal to number of elements without
10918 multiplication by element size [-Werror=memset-elt-size]
10919 https://bugzilla.gnome.org/show_bug.cgi?id=780947
10921 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10923 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10924 encoder: h264: Fix Backward ReferencePicture flag setting
10925 This is a regression introduced by e829b62 which
10926 override the reference flags and caused issues with
10927 latest intel-vaapi-driver.
10929 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10931 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10932 libs: encoder: h265: fix code style
10933 Trivial patch to remove a double ';' as end of instruction.
10935 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10937 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10938 encoder: h264: Fix B frame encoding artifacts
10939 The current implementation is updating the POC values only
10940 in Slice parameter Buffer.But we are not filling the
10941 picture order count and reference flags in VAPictureH264
10942 while populating VA Picture/Slice structures.The latest
10943 intel-vaapi-driver is directly accessing the above fields
10944 from VAPicutreH264 provided as RefPicLists, which resulted
10945 some wrong maths and prediction errors in driver.
10946 https://bugzilla.gnome.org/show_bug.cgi?id=780620
10948 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10950 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10951 libs: encoder: h265: remove unused macro definition
10952 Since the h265 encoder doesn't use GValueArray, there is no need to
10953 disable the Glib deprecation warnings, thus removing the macro
10956 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10958 * gst/vaapi/gstvaapidecode.c:
10959 * gst/vaapi/gstvaapiencode.c:
10960 * gst/vaapi/gstvaapipostproc.c:
10961 * gst/vaapi/gstvaapisink.c:
10962 plugins: when debug disabled, default category is NULL
10963 As in gstreamer-vaapi a common base class is used, the specific
10964 default category is passed to the base-plugin initializator, thus
10965 the log messages are categorized with the used plugin.
10966 Nonetheless, when the gst-debug is disabled in compilation time,
10967 it is needed to pass NULL to the base-plugin initializator. This
10969 https://bugzilla.gnome.org/show_bug.cgi?id=780302
10971 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
10973 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10974 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10975 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10976 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10977 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10978 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10979 unit length and data to a bitwriter.
10980 Note that this helper function applies EPB (Emulation Prevention
10981 Bytes), since otherwise produced codec_data might be broken when
10982 decoder/parser considering EPB, starts parsing.
10983 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10984 describes the emulation_prevention_three_byte.
10985 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10986 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10988 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
10990 * gst-libs/gst/vaapi/Makefile.am:
10991 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10992 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10993 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10994 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10995 * gst-libs/gst/vaapi/meson.build:
10996 libs: utils: h26x: create vaapiutils_h26x
10997 Since there is duplicated code in h264/265 encoder, we could
10998 refactor it to avoid duplicated code.
10999 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11000 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11002 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
11004 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11005 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11006 libs: encoder: h264/5: fix wrong return value
11007 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11009 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11011 * gst/vaapi/gstvaapiencode_h264.c:
11012 * gst/vaapi/gstvaapiencode_h265.c:
11013 docs: h264/h265: put parser to the example pipeline
11014 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11016 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11018 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11019 libs: encoder: h265: fix reserved length of bits
11020 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
11021 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11023 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11025 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11026 * tests/test-display.c:
11027 O_CLOEXEC needs _GNU_SOURCE defined
11029 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
11030 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
11031 2.12, one can obtain their definitions by defining either
11032 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
11033 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
11034 2.11 and earlier, one obtains the definitions by defining
11036 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
11037 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
11038 gstreamer-vaapi with the uClibc C library.
11039 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11040 https://bugzilla.gnome.org/show_bug.cgi?id=779953
11042 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11045 README: fix "Sources" section
11046 Update the URL where the release source tarballs can be downloaded.
11048 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11051 README: fix "Reporting bugs" section
11052 The "Reporting bugs" section gives
11053 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
11054 link to report a bug, but this link says "Sorry, entering a bug into the
11055 product gstreamer-vaapi has been disabled.".
11056 This commit fixes the URL to point to the proper location, and also
11057 removes the following paragraph that is no longer correct.
11058 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11059 https://bugzilla.gnome.org/show_bug.cgi?id=779954
11061 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11063 * gst/vaapi/gstvaapipluginutil.c:
11064 plugins: retry to create the VA display
11065 Particularly in GNOME Wayland, the negotiated or created GL context
11066 defines a GLX environment, but VAAPI fails to create a GLX VA
11067 display because there is no a DRI2 connection.
11068 This patch retries to create the VA display if VA cannot create one
11069 with the GL context parameters. Now using the old list of display
11071 This should also work in the case of systems with two GPU, when the
11072 non-VAAPI has the graphics environment, and the VAAPI-enabled one
11073 shall work headless.
11074 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11076 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11078 * gst/vaapi/gstvaapipostproc.c:
11079 vaapipostproc: texture upload if driver supports GL
11080 Removes GstVideoGLTextureUploadMeta caps feature if the driver
11081 doesn't support opengl.
11082 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11083 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11085 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11087 * gst/vaapi/gstvaapidecode.c:
11088 vaapidecode: texture upload if driver supports GL
11089 When the allowed source pad caps are generated, the GLTextureUpload caps are
11090 only inserted if the driver support OpenGL.
11091 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11093 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11096 configure: Add missing compiler flags
11097 The AC_CHECK_HEADERS macro was failing to locate some headers, in
11098 particular the va_enc_* headers due to missing compiler flags.
11099 https://bugzilla.gnome.org/show_bug.cgi?id=779101
11100 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11102 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11104 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11105 libs: window: wayland: handle more VAStatus to use vpp
11106 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
11107 we should consider more returned VAStatus to use vpp.
11108 https://bugzilla.gnome.org/show_bug.cgi?id=779400
11110 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11112 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11113 libs: encoder: ensure profile when context initialization
11114 We can't be sure that encoder's profile is assgined already or not
11115 at context initialization.
11116 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11118 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11120 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11121 libs: encoder: set rate control info only when query succeed
11122 Currently, it set rate control information even when query fails.
11123 In addition, it doesn't update any more since the flag
11124 got_rate_control_mask is set to TRUE.
11125 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11127 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
11130 meson: Update version
11132 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
11135 Back to development
11137 === release 1.11.2 ===
11139 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
11144 * gstreamer-vaapi.doap:
11147 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11149 * gst/vaapi/gstvaapiencode.c:
11150 vaapiencode: merge tags for downstream's info
11151 Add encoder and codec name and the bitrate into the output for
11152 informational purposes. Some muxers or application use it as
11154 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11156 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11158 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11159 libs: encoder: caps can change at any time
11160 The encoder should be able to change its caps even it is already
11161 processing a stream.
11162 This is suppose to happen after a flush so the codedbuf_queue should
11164 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11166 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11168 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11169 libs: encoder: h265: bail if nal unit type fails
11170 Bail out if the NAL unit type is not recognized.
11171 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11173 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11175 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11176 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11177 libs: decoder: h264,h265 avoid uninitialized variable
11178 Configuring GCC to verify possible usage of uninitialized variables,
11179 shows that found_index might be used without previous assignation.
11180 This patch assigns a initial value to found_index, also avoid a
11181 branching when returning the result value.
11182 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11184 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11187 * gst-libs/gst/vaapi/Makefile.am:
11188 * gst/vaapi/gstvaapidecode.c:
11189 * gst/vaapi/gstvaapidecodebin.c:
11190 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11191 Rename to be consistent with H.264 and also H.265 encoder. The
11192 meson build assumed this was already consistently named, and so
11193 previously was not able to actually build the H.265 decoder.
11194 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11196 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11199 meson: gstreamer-codecparsers is a required dep
11200 Just like in configure.ac.
11202 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11205 meson: dist meson build files
11206 Ship meson build files in tarballs, so people who use tarballs
11207 in their builds can start playing with meson already.
11209 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11211 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11212 libs: encoder: vp8: add CBR encoding mode
11213 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11214 Basically it adds the configuration parameters required by libva to
11216 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11217 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11219 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11221 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11222 libs: encoder: vp8: fix bitrate calculation
11223 Base encoder's unit of bitrate is in Kbps. We should honor it so
11224 we use the value of bitrate in VA, in which is expressed in bps.
11225 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11227 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11229 * gst/vaapi/gstvaapipluginbase.c:
11230 plugins: fix build when gcc
11231 In commit a8e482f9 we added a function without parameters, but gcc
11234 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11236 * gst-libs/gst/base/meson.build:
11237 * gst-libs/gst/meson.build:
11238 * gst-libs/gst/vaapi/meson.build:
11239 * gst-libs/meson.build:
11241 * gst/vaapi/meson.build:
11243 * meson_options.txt:
11244 vaapi: add meson build
11245 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11247 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11250 * gst-libs/gst/vaapi/Makefile.am:
11251 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11252 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11253 make: remove gstvaapiversion.h generation
11254 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11256 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11258 * gst/vaapi/gstvaapipluginbase.c:
11259 plugins: use linear storage if not the same device
11260 When dmabuf is negotiated downstream and decoding and rendering are
11261 not done on the same device, the layout has to be linear in order for
11262 the memory to be shared accross devices, since each device has its
11263 own way to do tiling.
11264 Right now this code is rather just a to-do comment, since we are not
11265 fetching the device ids.
11266 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11268 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11270 * gst-libs/gst/vaapi/gstvaapiutils.c:
11271 libs: utils: add HEVC profiles representation
11272 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11274 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11276 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11277 libs: decoder: h264: reduce frame number of gaps
11278 Reduce frame num gaps so that we don't have to create unnecessary
11279 dummy pictures, just throw them away.
11280 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11281 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11283 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11285 * gst/vaapi/gstvaapidecode.c:
11286 vaapidecode: don't GLTextureUpload if dmabuf
11287 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11288 element can handle dmabuf-based buffers, avoiding its negotiation.
11290 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11292 * gst/vaapi/gstvaapidecode.c:
11293 vaapidecode: make pool to export decoder's surface
11294 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11295 pass the current proxy/surface to the pool.
11296 The pool will will export thins given surface instead of exporting a
11297 brand new surface that will never be filled in with meaningfull data.
11298 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11300 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11302 * gst/vaapi/gstvaapipluginbase.c:
11303 plugins: decoder can negotiate dmabuf downstream
11305 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11307 * gst/vaapi/gstvaapivideobufferpool.c:
11308 vaapivideobufferpool: override acquire_buffer()
11309 Overriding the vmethod acquire_buffer() it is possible to attach the
11310 right GstMemory to the current acquired buffer.
11311 As a matter of fact, this acquired buffer may contain any instantiated
11312 GstFdmemory, since this buffer have been popped out from the buffer
11313 pool, which is a FIFO queue. So there is no garantee that this buffer
11314 matches with the current processed surface. Evenmore, the VA driver
11315 might not use a FIFO queue. Therefore, it is no way to guess on the
11317 In short, acquire_buffer on the VA driver and on the buffer pool return
11318 none matching data, we have to manually attach the right GstFdMemory to
11319 the acquired GstBuffer. The right GstMemory is the one associated with
11320 the current surface.
11321 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11323 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11325 * gst/vaapi/gstvaapivideobufferpool.c:
11326 * gst/vaapi/gstvaapivideomemory.c:
11327 vaapivideomemory: export surface if it is provided
11328 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11329 had to create that surface. Now it can also export an already provided
11330 surface. It is useful to export decoder's surfaces (from VA context).
11331 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11333 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11335 * gst/vaapi/gstvaapivideobufferpool.h:
11336 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11337 Useful to let the pool know the current surface proxy when calling
11338 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11339 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11341 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11343 * gst-libs/gst/vaapi/gstvaapisurface.c:
11344 * gst-libs/gst/vaapi/gstvaapisurface.h:
11345 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11346 These functions are useful when a dmabuf-based memory is instantiated in
11347 order to relate the generated buffer @proxy with the processed @surface.
11348 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11350 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11352 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11353 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11354 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11355 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11356 This patch adds a GstMemory as a variable member of the buffer proxy,
11357 because we will need to associate the buffer proxy with the memory
11358 which exposes it. Later, we will know which memory, in the video buffer
11359 pool, is attached to the processed surface.
11360 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11362 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11364 * gst/vaapi/gstvaapipostproc.c:
11365 vaapipostproc: don't GLTextureUpload if dmabuf
11366 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11367 element can handle dmabuf-based buffers, avoiding its negotiation.
11368 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11369 feature if can dmabuf"
11370 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11372 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11374 * gst/vaapi/gstvaapipluginbase.c:
11375 plugins: enable DMAbuf allocator to downstream
11376 If the negotiated caps are raw caps and downstream supports the
11377 EGL_EXT_image_dma_buf_import extension, then the created allocator
11378 is the DMAbuf, configured to downstream.
11379 At this moment, the only element which can push dmabuf-based buffers
11380 to downstream, is vaapipostproc.
11382 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11384 * gst/vaapi/gstvaapipluginbase.c:
11385 * gst/vaapi/gstvaapipluginbase.h:
11386 plugins: check if negotiate dmabuf with downstream
11387 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11388 plugin needs to check if downstream can import dmabuf buffers.
11389 This patch checks if downstream can handle dmabuf, by introspecting the
11390 shared GL context. If the GL context is EGL/GLES2 and have the extension
11391 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11392 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11394 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11396 * gst/vaapi/gstvaapivideomemory.c:
11397 vaapivideomemory: release proxy's data if downstream
11398 The surface created for downstream is going to be filled by VAAPI
11399 elements. So, the driver needs write access on that surface.
11400 This patch releases the derived image held by the proxy, thus the
11401 surface is unmarked as busy.
11402 This is how it has to be done as discussed on libva mailing list.
11403 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11405 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11407 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11408 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11409 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11410 Adds an API to request the user's data release in the buffer proxy.
11411 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11413 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11415 * gst/vaapi/gstvaapipluginbase.c:
11416 * gst/vaapi/gstvaapivideomemory.c:
11417 * gst/vaapi/gstvaapivideomemory.h:
11418 vaapivideomemory: add direction to dmabuf allocator
11419 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11420 we later could do different thing when the allocated memory is for
11421 upstream or dowstream, as required by VA-API.
11422 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11424 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11426 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11427 libs: utils: return NULL if failed to get surface formats
11428 Thus, when generating the allowed caps, the element will throw a
11429 warning and it will use its caps template.
11430 This behavior might be a bug in the VA driver.
11431 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11433 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11435 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11436 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11437 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11439 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11441 * gst/vaapi/gstvaapipostproc.c:
11442 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11443 A value of width/height property should be set to out caps,
11444 if negotiation had been going properly.
11445 So we can use srcpad_info when making decision of scaling.
11446 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11448 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11450 * gst/vaapi/gstvaapidecode.c:
11451 * gst/vaapi/gstvaapiencode.c:
11452 * gst/vaapi/gstvaapipluginutil.c:
11453 * gst/vaapi/gstvaapipluginutil.h:
11454 * gst/vaapi/gstvaapipostproc.c:
11455 * gst/vaapi/gstvaapisink.c:
11456 plugins: handle GL params through context query
11457 If the element instantiated the GL display and context, they should
11458 handle them too through the context query.
11459 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11461 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11463 * gst/vaapi/gstvaapipluginbase.c:
11464 * gst/vaapi/gstvaapipluginbase.h:
11465 * gst/vaapi/gstvaapipluginutil.c:
11466 plugins: create a GL context on certain conditions
11467 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11468 then VAAPI elements look for a local GstGLContext in gst context
11469 sharing mechanism ('gst.gl.local.context').
11470 If this GstGLContext not found either then, only the VAAPI decoders
11471 and the VAAPI post-processor, will try to instantiate a new
11473 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11474 be instantiated with the platform, API and windowing specified by the
11475 instantiated GstGLContext.
11476 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11477 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11479 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11481 * gst/vaapi/gstvaapivideocontext.c:
11482 vaapivideocontext: context type can be rejected
11483 Instead of calling g_return_val_if_fail() to check the context type, we
11484 should use a normal conditional, since it is possible that other context types
11485 can arrive and try to be assigned. Otherwise a critical log message is
11487 This happens when we use playbin3 with vaapipostproc as video-filter.
11488 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11490 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11492 * gst/vaapi/gstvaapipostprocutil.c:
11493 vaapipostproc: use sink caps par if not requested
11494 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11495 is not already set.
11496 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11498 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11500 * gst/vaapi/gstvaapipostproc.c:
11501 * gst/vaapi/gstvaapipostprocutil.c:
11502 vaapipostproc: set interlace mode
11503 if the vaapipostproc is configured to not do deinterlacing, the
11504 interlace-mode in the src caps should be the same as the input caps.
11505 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11507 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11509 * gst/vaapi/gstvaapisink.c:
11510 vaapisink: fix gcc compiler warning
11511 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11513 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11515 * gst/vaapi/gstvaapisink.c:
11516 vaapisink: don't use member variable outside lock
11517 Thus a race condition segfault is avoided.
11518 Original-patch-by: Matt Staples <staples255@gmail.com>
11519 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11521 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11523 * gst/vaapi/gstvaapipluginbase.c:
11524 * gst/vaapi/gstvaapipostproc.c:
11525 plugins: avoid log flood when activating pool
11526 Every time a new buffer is allocated, the pool is activated. This
11527 doesn't impact in performance since gst_buffer_pool_set_active()
11528 checks the current state of the pool. Nonetheless it logs out a
11529 message if the state is the same, and it floods the logging subsystem
11531 To avoid this log flooding first the pool state is checked before
11534 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11536 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11537 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11538 * gst/vaapi/gstvaapidecode.c:
11539 * gst/vaapi/gstvaapidecode.h:
11540 vaapidecode: update internal decoder sink caps
11541 When a new sink caps arrive the internal decoder state is updated
11542 and, if it is, request a downstream renegotiation.
11543 Previously, when new caps arrived the whole decoder where destroyed
11544 and recreated. Now, if the caps are compatible or has the same codec,
11545 the internal decoder is kept, but a downstream renegotiation is
11547 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11549 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11552 Back to development
11554 === release 1.11.1 ===
11556 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11561 * gstreamer-vaapi.doap:
11564 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11566 * gst-libs/gst/vaapi/gstvaapiutils.c:
11567 vaapi: bump ifdef to API 0.40.0 for log redirect
11568 vaSetInfoCallback() is not released yet. It is going to appear in
11571 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11573 * gst-libs/gst/vaapi/gstvaapiutils.c:
11574 vaapiutils: Fix compilation with latest and previous libva releases
11575 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11578 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11580 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11581 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11582 * gst-libs/gst/vaapi/gstvaapiutils.c:
11583 * gst-libs/gst/vaapi/gstvaapiutils.h:
11584 libs: display: redirect logging at initialize
11585 Redirect libva's logs to GStreamer logging mechanism. This is
11586 particularly useful when VA is initialized, because it always logs
11587 out the drivers details.
11588 In order to achieve this a new helper function was added as a wrapper
11589 for the vaInitialize() function.
11590 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11592 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11594 * gst/vaapi/gstvaapipluginbase.c:
11595 plugins: provide at least two buffers in sink pool
11596 Adds two buffers as the default value of minimum buffer.
11597 This would be used when creating and proposing vaapi bufferpool for
11598 sink pad, hence the upstream element will keep, at least, these two
11600 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11601 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11603 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11605 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11606 libs: decoder: h264: don't update cloned attributes
11607 If the frame is a cloned picture, its PTS comes from its parent
11608 picture. In addition, the base decoder doesn't set a valid PTS to
11609 the frame corresponding to the cloned picture.
11610 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11612 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11614 * gst/vaapi/gstvaapivideomemory.c:
11615 vaapivideomemory: check for display
11616 This patch fixes the check of display, rather than check for the
11617 meta, which it is known it exists.
11619 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11621 * gst/vaapi/gstvaapivideomemory.c:
11622 * gst/vaapi/gstvaapivideomemory.h:
11623 vaapivideomemory: rename dmabuf allocator parameters
11624 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11625 'surface_alloc_flags' respectively. The purpose of this change is
11626 to auto-document those parameters.
11627 Also, aligned to this patch, the local 'alloc_info' variable was
11628 renamed as 'surface_info', because it stores the possible surface's
11629 video info, not the allocate one.
11631 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11633 * gst/vaapi/gstvaapivideomemory.c:
11634 * gst/vaapi/gstvaapivideomemory.h:
11635 vaapivideomemory: rename vip to alloc_info parameter
11636 In order to auto-document the code, this patch renames the 'vip'
11637 parameter in the functions related to gst_vaapi_video_allocator_new ()
11638 to 'alloc_info', since it declares the allocation video info from
11639 the vaapi buffer pool.
11641 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11643 * gst/vaapi/gstvaapivideomemory.c:
11644 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11645 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11646 the video format string.
11648 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11650 * gst/vaapi/gstvaapivideomemory.c:
11651 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11652 gst_vaapi_surface_new_with_format() is a wrapper for
11653 gst_vaapi_surface_new_full (). In this case, the former is simpler
11654 than the first. This patch changes that.
11656 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11658 * gst/vaapi/gstvaapipostproc.c:
11659 vaapipostproc: notify if src pad caps changed
11660 If src pad caps have changed, it needs to notify it downstream. In
11661 addition, do not set passthrough if they have changed.
11662 Otherwise, transform sometimes starts processing before caps change.
11663 The passthrough value will be set in fixate later in this case.
11664 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11666 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11668 * gst/vaapi/gstvaapidecodebin.c:
11669 vaapidecodebin: capsfilter to optimize negotiation
11670 Add a capsfilter forcing the caps
11671 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11672 queue and the vaapipostproc so no renegotiation is required.
11673 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11675 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11677 * gst/vaapi/gstvaapivideomemory.c:
11678 vaapivideomemory: fail surface/image configuration
11679 To detect and handle errors during allocator_configure_surface_info()
11680 and allocator_conigure_image_info().
11681 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11682 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11684 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11686 * gst/vaapi/gstvaapisink.c:
11687 vaapisink: ensures raw caps at start()
11688 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11689 race conditions at get_caps(), especially with multiple src elements.
11690 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11692 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11694 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11695 libs: surface: fix error handling code style
11697 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11699 * gst/vaapi/gstvaapivideomemory.c:
11700 vaapivideomemory: add gst_video_info_update_from_surface()
11701 With this function is possible to refactor and remove duplicated code
11702 between dmabuf configuration and direct rendering/uploading
11705 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11707 * gst/vaapi/gstvaapivideomemory.c:
11708 vaapivideomemory: no log object at initialization
11709 When an instance of GstVaapiVideoAllocator fails at initializing, the
11710 log message should not include the allocator's object, because it is
11711 going to be unrefed.
11713 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11715 * gst/vaapi/gstvaapidecode.c:
11716 vaapidecode: lock stream when setting caps
11718 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11720 * gst/vaapi/gstvaapidecode.c:
11721 Revert "vaapidecode: implement negotiate() vmethod"
11722 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11723 videodecode's negotiate() vmethod is also called when events arrive,
11724 but this would mean that the proper configuration of sink pad might
11725 not be complete, thus we should not update the src pad.
11726 Let's keep the old non-vmethod negotitate().
11728 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11730 * gst/vaapi/gstvaapi.c:
11731 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11732 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11734 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
11736 * gst/vaapi/gstvaapiencode.c:
11737 * gst/vaapi/gstvaapiencode.h:
11738 vaapiencode: get surface formats in get_caps()
11739 Query for the supported surface formats in config at get_caps() vmethod.
11740 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11741 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11743 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
11745 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11746 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11747 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11748 This method will return the valid surface formats in the current
11749 config. If the are no VAConfig it is created with the information
11751 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11752 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11754 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
11756 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11757 libs: encoder: split set_context_info()
11758 Split set_context_info() adding init_context_info() which only
11759 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11760 required for VAConfig.
11761 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11762 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11764 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
11766 * gst-libs/gst/vaapi/gstvaapicontext.c:
11767 libs: context: skip VAContext if no frame size
11768 If GstVaapiContextInfo has just initial information, without frame's
11769 width and height, skip the creation of the VAContext, just keep the
11771 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11772 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11774 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11776 * gst-libs/gst/vaapi/gstvaapicontext.c:
11777 libs: context: split context_create()
11778 Split the funcion context_create() into context_create() and
11780 Decoupling VAConfig and VAContext during context creation, we could
11781 query the VAConfig for the supported surface's formats without creating
11783 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11785 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11787 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11788 libs: drm: find render node in hybrid system
11789 Originally the drm backend only tried to open the first render node
11790 found. But in hybrid system this first render node might not support
11791 VA-API (propietary Nvidia driver, for example).
11792 This patch tries all the available nodes until a finding one with a
11793 VA-API supported driver.
11794 https://bugzilla.gnome.org/show_bug.cgi?id=774811
11795 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11796 Reza Razavi <reza@userful.com>
11798 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11800 * gst/vaapi/gstvaapivideomemory.c:
11801 vaapivideomemory: refactor code for readability
11802 Added the inlined function allocator_configure_pools() moving out code
11803 from gst_vaapi_video_allocator_new() to make clear that it is a
11804 post-initalization of the object.
11806 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11808 * gst/vaapi/gstvaapivideomemory.c:
11809 vaapivideomemory: log error if not VA image
11810 Log an error message if the test image for surface downloading
11811 cannot be allocated or mapped.
11813 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11815 * gst/vaapi/gstvaapivideomemory.c:
11816 vaapivideomemory: remove unused macros
11817 These macros are not used. Let us remove them.
11819 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11821 * gst/vaapi/gstvaapivideomemory.c:
11822 * gst/vaapi/gstvaapivideomemory.h:
11823 vaapivideomemory: rename video for allocation_info
11824 Since video_info stores the GstVideoInfo of the allocation caps,
11825 it is clear if we rename it as allocation_info, to distinguish it
11826 later from negotiation_info.
11828 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11830 * gst/vaapi/gstvaapivideomemory.c:
11831 * gst/vaapi/gstvaapivideomemory.h:
11832 vaapivideomemory: add real GstVaapiDmaBufAllocator
11833 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11834 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11835 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11836 from GstDmaBufAllocator.
11837 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11838 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11840 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
11842 * gst/vaapi/gstvaapivideomemory.c:
11843 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11844 Add a helper function to initialize the gst_debug_vaapivideomemory,
11845 to use it either by the GstVaapiVideoAllocatorClass or
11846 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11847 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11848 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11850 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
11852 * gst/vaapi/gstvaapiencode.c:
11853 vaapiencode: release internal encoder at stop()
11854 As the internal encoder is created at start(), let's release it at
11855 stop() vmethod, to be consistent.
11856 gst_vaapiencode_destroy() is called since it also resets the input and
11857 output states, which is something that the base class does internally
11858 after calling stop() vmethod.
11859 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11860 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11862 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
11865 Automatic update of common submodule
11866 From f49c55e to 39ac2f5
11868 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
11870 * gst/vaapi/gstvaapiencode.c:
11871 vaapiencode: call ensure_encoder() at start()
11872 Currently, specific encoder is created during set_format(). This might
11873 lead to race condition when creating profiles with multiple encoders.
11874 This patch moves ensure_encoder() call to start() vmethod to ensure
11875 avoiding the race condition.
11876 https://bugzilla.gnome.org/show_bug.cgi?id=773546
11878 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11880 * gst/vaapi/gstvaapidecodebin.c:
11881 vaapidecodebin: bring back dynamic configuration
11882 In commit ca0c3fd6 we remove the dynamic configuration if the bin
11883 because we assumed that the bin will be always static as it is
11885 Nonetheless we were wrong, because it is possible to request, with a
11886 property, to avoid the use of the post-processor.
11887 Since we want to add a way to disable the post-processor through
11888 environment variables, this remove feature is required again.
11889 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11890 postprocessor inside of the vaapidecodebin is disabled, then
11891 vaapidecodebin is an alias of the old vaapidecode.
11892 https://bugzilla.gnome.org/show_bug.cgi?id=775041
11894 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11896 * gst/vaapi/gstvaapidecode.c:
11897 vaapidecode: implement negotiate() vmethod
11898 Instead of decorating the negotiate() method, let us override it,
11899 so the stream is locked while called.
11900 https://bugzilla.gnome.org/show_bug.cgi?id=775040
11902 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
11905 common: use https protocol for common submodule
11906 https://bugzilla.gnome.org/show_bug.cgi?id=775110
11908 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
11910 * gst-libs/gst/vaapi/Makefile.am:
11911 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11912 In case libva-wayland has its headers not installed in default
11913 locations (like /usr/include), the build fails to include "wayland-client.h":
11914 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
11915 In file included from gstvaapidisplay_wayland.h:27:0,
11916 from gstvaapidisplay_egl.c:35:
11917 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11918 #include <wayland-client.h>
11919 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11920 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11921 for libva-wayland.pc in configure and use this in other places as well. It is thus only
11922 correct and consequent, to do it also at this spot.
11923 https://bugzilla.gnome.org/show_bug.cgi?id=773946
11925 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11927 * gst/vaapi/gstvaapivideocontext.c:
11928 vaapivideocontext: log a message if no bus
11929 Raise a warning if there is no bus when the element tries to post a
11932 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11934 * gst/vaapi/gstvaapisink.c:
11935 vaapisink: create display at open()
11936 Instead of creating the VA display before setting the bus to the
11937 element, it is created when the element is opened.
11938 Basically, this commit is a revert of
11939 5e5d62cac79754ba60057fc2516135aad8d7de35
11940 That was done when the GStreamer's context sharing was not mature
11941 enough as now. There is no reason to keep this hack.
11943 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11945 * gst/vaapi/gstvaapidecode.c:
11946 vaapidecode: don't add video crop meta
11947 Since the differentiation of negotiation caps and allocation caps,
11948 there is no need to add a video crop meta with the negotiation caps.
11949 Hence, removing it.
11950 https://bugzilla.gnome.org/show_bug.cgi?id=773948
11952 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11954 * gst/vaapi/gstvaapivideobuffer.c:
11955 * gst/vaapi/gstvaapivideometa.c:
11956 * gst/vaapi/gstvaapivideometa.h:
11957 remove the video converter from vaapi buffer meta
11958 Since all the video converter were deprecated in gstreamer-1.2, we don't need
11959 to handle them anymore in the vaapi's buffer meta.
11960 This patch removes its usage and the buffer meta's API for that.
11961 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11963 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11965 * gst/vaapi/gstvaapipluginbase.c:
11966 plugins: destroy source pad allocator and pool
11967 First, deactivate source pad pool when the out caps change, and if so,
11968 destroy texture map, the source pad allocator and pool only if the
11969 new caps are different from the ones already set.
11971 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11973 * gst/vaapi/gstvaapipluginbase.c:
11974 plugins: don't destroy sink pad allocator
11975 Don't destroy sink pad allocator at _set_caps() because it will be done at
11976 ensure_sinkpad_buffer_pool() if it is required.
11978 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11980 * gst/vaapi/gstvaapipluginbase.c:
11981 plugins: first validate the out caps
11982 When calling _set_caps() first validate the out caps before doing
11985 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11987 * gst/vaapi/gstvaapidecode.c:
11988 vaapidecode: negotiate after destroying allocator
11989 This is related with bug 758907 when no vaapipostproc is used (no
11990 vaapidecodebin). In order to negotiate downstream we need to destroy
11991 the source pad allocator, otherwise the same allocated buffers are
11992 used, failing the mapping.
11994 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11996 * gst/vaapi/gstvaapivideomemory.c:
11997 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11998 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11999 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
12001 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12003 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12005 * gst/vaapi/gstvaapipluginbase.c:
12006 plugins: update the src pad allocator video info
12007 Update the size, stride and offset of the source pad allocator video
12008 info, so the pool could set the correct GstVideoMeta
12009 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12011 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12013 * gst/vaapi/gstvaapivideomemory.c:
12014 vaapivideomemory: add missing documentation
12015 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12017 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12019 * gst/vaapi/gstvaapipluginbase.c:
12020 plugins: use early return without goto
12021 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12023 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12025 * gst/vaapi/gstvaapipluginbase.c:
12026 * gst/vaapi/gstvaapivideomemory.c:
12027 * gst/vaapi/gstvaapivideomemory.h:
12028 plugins: add allocator to allocation query
12029 This patch adds the created allocator to the allocation query either
12030 in decide_allocation() and propose_allocation() vmehtods.
12031 With it, there's no need to set the modified allocator's size in the
12032 pool configuration.
12033 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12035 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
12037 * gst/vaapi/gstvaapivideobufferpool.c:
12038 vaapivideobufferpool: set correct buffer size
12039 We should set the correct buffer size when we are configuring the pool,
12040 otherwise the buffer will be discarded when it returns to the pool.
12041 Indeed when the ref-count of a buffer reaches zero, its pool will queue
12042 it back (and ref it) if, and only if, the buffer size matches the
12043 configured buffer size on the pool.
12044 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
12045 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12047 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12049 * gst/vaapi/gstvaapivideomemory.c:
12050 vaapivideomemory: check for memory allocator
12051 When calling gst_vaapi_video_memory_copy() the allocator of the memory
12052 to copy should be allocated by the vaapi allocator.
12053 This patch does this verification.
12055 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12057 * gst/vaapi/gstvaapivideomemory.c:
12058 vaapivideomemory: code style fixes
12059 A cosmetic commit for enhance readability of the casts and method
12062 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12064 * gst/vaapi/gstvaapivideomemory.c:
12065 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
12066 Instead of having a gst_vaapi_video_memory_free() that is only going to
12067 be called by gst_vaapi_video_allocator_free(), let's just remove the first
12068 and merged into the second.
12070 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12072 * gst/vaapi/gstvaapivideomemory.c:
12073 vaapivideomemory: avoid virtual methods casting
12074 Use the expected virtual method signatures for readability.
12076 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12078 * gst/vaapi/gstvaapivideomemory.c:
12079 vaapivideomemory: remove unimplemented methods
12080 Remove unimplemented method for allocator mem_share() and mem_is_span().
12082 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12084 * gst/vaapi/gstvaapivideomemory.c:
12085 vaapivideomemory: fail if frame map can't get plane
12086 If map() vmethod in GstVideMeta cannot get the plane data, return false,
12087 thus the caller will not try to read invalid memory.
12088 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12090 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12092 * gst/vaapi/gstvaapivideomemory.c:
12093 * gst/vaapi/gstvaapivideomemory.h:
12094 vaapivideomemory: lock map and unmap operations
12095 In order to avoid race condition when two threads call map/unmap the same
12096 VA surface, this patch mutex these operations.
12097 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12099 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12101 * gst/vaapi/gstvaapivideomemory.c:
12102 vaapivideomemory: refactor vaapi memory unmapping
12103 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
12104 gst_vaapi_video_memory_unmap() when unmapping.
12105 This patch refactors both methods adding the common function
12106 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
12107 is correctly reset.
12108 Additionally, only when mapping flag has the WRITE bit, it set the image as
12109 current, which was done in gst_video_meta_map_vaapi_memory() but no in
12110 gst_vaapi_video_memory_map().
12111 In order to make this, the mapping flags were required, so instead of
12112 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
12113 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12115 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12117 * gst/vaapi/gstvaapivideomemory.c:
12118 vaapivideomemory: refactor vaapi memory mapping
12119 There were duplicated code in gst_video_meta_map_vaapi_memory() and
12120 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
12121 This patch refactors both methods adding the common function
12122 map_vaapi_memory().
12123 Additionally, only when flag has the READ bit it calls
12124 ensure_images_is_current(), which was done in
12125 gst_video_meta_map_vaapi_memory() but no in
12126 gst_vaapi_video_memory_map().
12127 https://bugzilla.gnome.org/show_bug.cgi?id=772151
12129 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12131 * gst/vaapi/gstvaapidecode.c:
12132 vaapidecode: unref allowed_sinkpad_caps at close()
12133 The variable member allowed_sinkpad_caps is constructed querying the
12134 current VA display. Bearing that in mind, the variable shall be freed
12135 when the VA display changes or is removed.
12136 This patch moves the freeing of allowed_sinkpad_caps to close(), when
12137 the VA display is freed.
12139 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12141 * gst/vaapi/gstvaapisink.c:
12142 vaapisink: finish event thread at stop()
12143 The thread that handles window's events should be finished during
12144 pipeline's shutdown, otherwise it will remain alive during pipeline
12145 re-activation, leading to unexpected problems.
12146 This patch fixes failures of intensive_state_change scenario of
12148 https://bugzilla.gnome.org/show_bug.cgi?id=774241
12150 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12152 * gst/vaapi/gstvaapipostproc.c:
12153 vaapipostproc: enhance debug message
12154 "gst_pad_push" is not a good description of the event.
12156 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12158 * gst/vaapi/gstvaapipostproc.c:
12159 postproc: honor gst_pad_push() return value
12160 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12161 deadlock during seek.
12162 This patch returns the same error of gst_pad_push() and log out the
12164 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12166 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12168 * gst/vaapi/gstvaapidecode.c:
12169 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12170 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12171 compiled with out EGL/GLX support: it shall not support
12172 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12173 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12174 allowed src caps for vaapedecode if EGL/GLX.
12176 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12178 * gst/vaapi/gstvaapivideomemory.c:
12179 vaapivideomemory: increment map counter only if succeeded
12180 Previously the frame map counter increased independently if the map succeeded
12181 or not. This leaded to critical messages and crashes if the frame was unable
12182 to be mapped, but the counter increased.
12183 This patch increases the map counter only if the map operation occurred.
12184 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12186 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12188 * gst/vaapi/gstvaapipluginbase.c:
12189 plugins: set negotiation caps in src allocator
12190 When the allocator is created, it stores the allocation caps. But sometimes
12191 the "allocation caps" may be different from the "negotiation caps".
12192 In this case, the allocator should store the negotiation caps since they
12193 are the ones used for frame mapping with GstVideoMeta.
12194 When vaapispostproc is used, this is not a problem since the element is assume
12195 to resize. But when using a vaapi decoder only, with a software renderer, it
12196 fails in this case.
12197 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12199 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12201 * gst/vaapi/gstvaapidecode.c:
12202 * gst/vaapi/gstvaapidecode.h:
12203 vaapidecode: generate source pad caps
12204 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12205 raw formats, so, the src caps can negotiate the exact caps that the context
12208 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12210 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12211 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12212 libs: decoder: add _get_surface_formats()
12213 This function exposes the available formats of the surfaces in the the current
12214 context to the plugins.
12216 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12218 * gst-libs/gst/vaapi/gstvaapicontext.c:
12219 * gst-libs/gst/vaapi/gstvaapicontext.h:
12220 libs: context: ensure context formats
12221 This patch ensures to get the formats, as filter does, available in the
12222 decoder / encoder context.
12223 The context fills up the array as soon it is created, otherwise the pipeline
12224 could get stalled (perhaps this is a bug in my HSW backend).
12225 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12227 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12229 * gst-libs/gst/vaapi/gstvaapifilter.c:
12230 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12231 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12232 libs: move get_surface_formats to utils_core
12233 The query of all the supported formats for a VA config were only used by the
12234 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12235 negotiate a suitable raw format with downstream, we need to query these
12236 formats against the decoder's config.
12237 This patch is the first step: moves the code in filter's ensure_image() to a
12238 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12239 shared later by the decoder.
12240 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12242 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12244 * gst/vaapi/gstvaapipluginbase.c:
12245 plugins: remove set_sinkpad_dmabuf_allocator()
12246 Since when the sink pad allocator is created, it is decided if the required
12247 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12250 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12252 * gst/vaapi/gstvaapipluginbase.c:
12253 plugins: ensure display when getting raw caps
12254 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12255 meanwhile it is transforming caps. The problem is that stop() calls
12256 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12257 the va display is used in tranform_caps() when it is extracting the possible
12258 format conversions. This display disappearing generates warning messages.
12259 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12260 hence it doesn't go away meanwhile it is used, even if the
12261 gst_vaapi_plugin_base_close() is called in other thread.
12262 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12264 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12266 * gst/vaapi/gstvaapiencode_h264.c:
12267 * gst/vaapi/gstvaapiencode_h265.c:
12268 plugins: fix code style for errors
12270 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12272 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12273 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12274 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12275 * gst-libs/gst/vaapi/gstvaapicontext.c:
12276 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12277 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12278 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12279 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12280 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12281 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12282 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12283 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12284 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12285 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12286 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12287 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12288 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12289 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12290 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12291 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12292 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12293 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12294 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12295 * gst-libs/gst/vaapi/gstvaapifilter.c:
12296 * gst-libs/gst/vaapi/gstvaapiimage.c:
12297 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12298 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12299 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12300 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12301 * gst-libs/gst/vaapi/gstvaapisurface.c:
12302 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12303 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12304 * gst-libs/gst/vaapi/gstvaapitexture.c:
12305 * gst-libs/gst/vaapi/gstvaapiutils.c:
12306 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12307 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12308 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12309 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12310 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12311 libs: fix code style for errors
12313 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12315 * gst/vaapi/gstvaapipluginbase.c:
12316 * gst/vaapi/gstvaapivideocontext.c:
12317 plugins: update GstGL deprecated symbol
12318 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12320 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12322 * gst/vaapi/gstvaapipluginbase.c:
12323 plugins: direct render when raw video
12324 Enable the direct rendering with linear surfaces if the negotiated src caps
12325 are video/x-raw without features.
12326 Pass also the caps, since they are needed to know the requested caps features.
12328 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12330 * gst/vaapi/gstvaapipluginbase.c:
12331 plugins: move src allocator error to instantiator
12332 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12333 into the ensure_srcpad_allocator() from the caller,
12334 gst_vaapi_plugin_base_decide_allocation()
12336 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12338 * gst/vaapi/gstvaapipluginbase.c:
12339 plugins: enable direct upload if raw video
12340 Enable the direct upload with linear surfaces if the negotiated sink caps are
12341 video/x-raw without features.
12343 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12345 * gst/vaapi/gstvaapipluginutil.c:
12346 * gst/vaapi/gstvaapipluginutil.h:
12347 pluginutil: add gst_caps_is_video_raw()
12349 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12351 * gst/vaapi/gstvaapipluginbase.c:
12352 plugins: receive caps in ensure_sinkpad_allocator()
12353 Instead of receiving the GstVideoInfo structure as parameter, get the original
12354 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12355 which allocator instantiate.
12357 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12359 * gst/vaapi/gstvaapivideomemory.c:
12360 vaapivideomemory: destroy derived image at unmap
12361 If the allocator was configured to use direct upload or rendering, the
12362 generated derived image created at mapping needs to be destroyed after
12363 unmapping, because, in order to process the surface, it should not be marked
12364 as "busy" by the driver.
12366 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12368 * gst/vaapi/gstvaapivideomemory.c:
12369 vaapivideomemory: enhance logs for direct modes
12370 Print, conditionally, only the enabled direct mode.
12372 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12374 * gst/vaapi/gstvaapivideomemory.c:
12375 * gst/vaapi/gstvaapivideomemory.h:
12376 vaapivideomemory: add direct upload flag
12377 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12378 GstVaapiVideoMemory.
12379 It still doesn't apply any functional change.
12381 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12383 * gst/vaapi/gstvaapipluginbase.c:
12384 * gst/vaapi/gstvaapivideomemory.c:
12385 * gst/vaapi/gstvaapivideomemory.h:
12386 vaapivideomemory: set direct rendering at run-time
12387 The way to experiment with the direct rendering is through and internal
12388 compiler pre-processor flag.
12389 The current change set enables a way to specified at run-time, as a flag
12390 passed to the allocator at instanciation time.
12392 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12394 * gst/vaapi/gstvaapivideomemory.c:
12395 vaapivideomemory: log in perf category when copy
12396 Log in performance category when the derive image handling fails, falling back
12399 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12401 * gst/vaapi/gstvaapivideomemory.c:
12402 vaapivideomemory: error log is derive image fails
12403 Instead of a silently failure of the derive image, this patch log an error
12404 message according to the failure.
12406 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12408 * gst/vaapi/gstvaapivideomemory.c:
12409 vaapivideomemory: store surface alloc flags in qdata
12410 For sake of consistency, we should add the requested surface allocation flags
12411 to the object's qdata structure.
12413 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12415 * gst/vaapi/gstvaapivideomemory.c:
12416 vaapivideomemory: category init when object define
12417 Move the Gstreamer debug category initialize to the GObject definition.
12419 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12421 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12422 libs: vaapitexturemap: trivial code-style fix
12424 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12426 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12427 libs: display: egl: avoid recreate native display
12428 Instead of passing the native descriptor of the display, just pass the received
12429 GstVaapiDisplay and reuse it.
12431 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12433 * gst/vaapi/gstvaapipluginbase.c:
12434 plugins: log the GstVaapiDisplay name
12435 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12436 name. Log it instead of the memory address.
12438 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12440 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12441 libs: window: egl: pass native va display
12442 When creating a GstVaapiWindowEGL, it also creates native window by its own
12443 native display. It should pass the native display, either X11 or Wayland.
12444 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12446 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12448 * gst-libs/gst/vaapi/gstvaapidebug.h:
12449 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12450 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12451 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12452 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12453 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12454 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12455 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12456 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12457 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12458 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12459 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12460 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12461 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12462 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12463 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12464 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12465 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12466 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12467 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12468 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12469 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12470 * gst/vaapi/gstvaapivideocontext.c:
12471 libs: display: GstVaapiDisplay as GstObject descendant
12472 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12473 instead of GstVaapiMiniObject. In this way we can use all the available
12474 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12475 In addition, a new debug category for GstVaapiDisplay is created to make it
12476 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12477 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12478 This patch is a step forward to expose GstVaapiDisplay for users in a future
12480 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12481 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12483 === release 1.11.0 ===
12485 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12488 Back to development
12490 === release 1.10.0 ===
12492 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12497 * gstreamer-vaapi.doap:
12500 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12502 * gst/vaapi/gstvaapidecodebin.c:
12503 vaapidecodebin: resurrect disable-vpp property
12504 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12506 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12508 * gst/vaapi/gstvaapidecodebin.c:
12509 vaapidecodebin: name the internal queue
12510 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12512 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12514 * gst/vaapi/gstvaapidecodebin.c:
12515 * gst/vaapi/gstvaapidecodebin.h:
12516 vaapidecodebin: remove unused variables
12517 Since vaapipostproc is only registered if the driver supports it, all the
12518 support for dynamic loading were removed. Though some leftovers remained.
12519 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12521 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12523 * docs/plugins/Makefile.am:
12524 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12525 * docs/plugins/running.xml:
12526 docs: document environment variables
12527 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12529 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12531 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12532 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12533 * gst/vaapi/Makefile.am:
12534 * gst/vaapi/gstvaapidecode.c:
12535 * gst/vaapi/gstvaapidecodebin.c:
12536 * gst/vaapi/gstvaapidecodedoc.c:
12537 docs: replace vaapidecode with each codec
12538 In the spirit of the codec split, this patch removes the documentation of
12539 vaapidecode and adds a page per each possible decoder.
12540 Nonetheless, only those available in the compilation system are going to be
12541 instrospected, because the rest are not registered.
12543 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12545 * gst/vaapi/gstvaapipluginutil.c:
12546 * gst/vaapi/gstvaapivideobuffer.c:
12547 * gst/vaapi/gstvaapivideometa.c:
12548 docs: add missing long descriptions
12550 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12552 * gst/vaapi/gstvaapipostproc.c:
12553 vaapipostproc: use GST_*_OBJECT when possible
12554 Since we can have several vaapipostproc operating in a pipeline, it is useful
12555 to know which one is generating the logging message.
12556 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12558 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12560 * gst/vaapi/gstvaapidecode.c:
12561 * gst/vaapi/gstvaapidecode.h:
12562 vaapidecode: rename member to allowed_sinkpad_caps
12563 vaapidecode has a member named allowed_caps, but this name is not enough
12564 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12565 No functional changes were included.
12566 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12568 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12570 * gst/vaapi/gstvaapiencode_h264.c:
12571 * gst/vaapi/gstvaapiencode_h265.c:
12572 * gst/vaapi/gstvaapisink.c:
12573 * gst/vaapi/gstvaapivideomemory.c:
12574 * gst/vaapi/gstvaapivideometa.c:
12575 * gst/vaapi/gstvaapivideometa_texture.c:
12576 plugins: fix code style for errors
12577 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12579 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12581 * gst/vaapi/gstvaapivideomemory.c:
12582 vaapivideomemory: comment style
12583 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12585 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12587 * gst/vaapi/gstvaapivideomemory.c:
12588 * gst/vaapi/gstvaapivideomemory.h:
12589 vaapivideomemory: rename input parameter
12590 In order to clarify the use of flag as input parameter, it is renamed to
12591 surface_alloc_flag, since it is used when creating a VA surface with certain
12593 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12595 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12597 * gst/vaapi/gstvaapidecode.c:
12598 vaapidecode: rename element description
12599 So encoders and decoders have similar descriptions.
12600 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12602 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12604 * gst/vaapi/gstvaapiencode_h264.c:
12605 * gst/vaapi/gstvaapiencode_h265.c:
12606 vaapiencode: h264, h265: rename codec name
12607 So encoder and decoders have the same codec name.
12608 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12610 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12612 * gst/vaapi/gstvaapipluginbase.c:
12613 plugins: simplify code
12614 Merge two lines of variable declarations.
12615 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12617 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12619 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12620 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12621 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12622 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12623 libs: minor correction for logical consistency
12624 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12625 use its methods, even though it doesn't change functionality.
12626 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12627 GstVaapiObject, hence its methods shall be used.
12628 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12630 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12632 * gst/vaapi/gstvaapivideomemory.c:
12633 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12634 In short GstFdMemory is configured to call close when using
12636 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12638 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12641 * gst-libs/gst/vaapi/Makefile.am:
12642 build: clean up the dlopen usage
12644 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12646 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12647 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12648 encoder: h264,h265: fix regression in offset count
12649 In commit dc35dafa a bug was introduced because I assumed that
12650 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12651 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12653 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12656 docs: update README
12658 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12660 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12661 libs: display: egl: remove unused header include
12662 The header gmodule.h is not used since the library dynamic loading for EGL
12663 display was removed.
12664 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12666 === release 1.9.90 ===
12668 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12674 * gstreamer-vaapi.doap:
12677 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12679 * gst/vaapi/gstvaapidecode.c:
12680 * gst/vaapi/gstvaapidecodebin.c:
12681 * gst/vaapi/gstvaapiencode_h264.c:
12682 * gst/vaapi/gstvaapiencode_h265.c:
12683 * gst/vaapi/gstvaapiencode_jpeg.c:
12684 * gst/vaapi/gstvaapiencode_mpeg2.c:
12685 * gst/vaapi/gstvaapiencode_vp8.c:
12686 * gst/vaapi/gstvaapipostproc.c:
12687 * gst/vaapi/gstvaapisink.c:
12688 vaapi: use new gst_element_class_add_static_pad_template()
12689 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12690 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12692 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12694 * gst/vaapi/gstvaapipluginbase.c:
12695 plugins: reset textures at negotiation/shutdown
12696 When caps reconfiguration is called, the new downstream frame size might be
12697 different. Thus, if the downstream caps change,the display's texture map is
12699 In addition, during pipeline shutdown, textures in texture map have to be
12700 released, since each one have a reference to the GstVaapiDisplay object, which
12701 is a dangerous circular reference.
12702 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12703 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12705 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12707 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12708 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12709 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12710 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12711 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12712 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12713 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12714 * gst/vaapi/gstvaapivideometa_texture.c:
12715 libs: display{egl,glx}: cache GstVaapiTextures
12716 instances when created and reuse
12717 This patch improves performance when glimagesink uploads a GL texture.
12718 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12719 instance of GstVaapiTextureMap, so our internal texture structure can be found
12720 by matching the GL texture id for each frame upload process, avoiding the
12721 internal texture structure creation and its following destruction.
12722 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12723 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12725 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
12727 * gst-libs/gst/vaapi/Makefile.am:
12728 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12729 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12730 libs: vaapitexturemap: implement GstVaapiTextureMap
12731 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12732 reused. Internally it is a hash table.
12733 Note that it is GstObject based rather than GstVaapiObject, as part of the future
12734 converstion to GstObject of most of the code.
12735 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12736 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12738 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12740 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12741 encoder: vp8: Increase the allocation size for coded buffer
12742 We are not getting enough compression for some streams and
12743 encoded frame end up with more size than allocated.
12744 Assuming a compression ratio of 4, which should be good enough
12745 for holding the frames.
12746 https://bugzilla.gnome.org/show_bug.cgi?id=771528
12748 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12750 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12751 encoder: vp9: Fix refresh frame flag setting
12752 While doing the mode-1 referece picture selection,
12753 the circular buffer logic was not correctly setting the
12754 refresh frame flags as per VP9 spec.
12755 Make sure refresh_flag[0] get updated correclty after
12756 each cycle of GST_VP9_REF_FRAMES.
12757 https://bugzilla.gnome.org/show_bug.cgi?id=771507
12759 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12761 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12762 vaapidecode: codec_data minimal size is 7
12763 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12764 stream, not in the codec_data, so the size of codec_data might be 7.
12765 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12766 https://bugzilla.gnome.org/show_bug.cgi?id=771441
12768 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12770 * gst/vaapi/gstvaapidecode.c:
12771 vaapidecode: reset decoder hard when set_format()
12772 set_format() is called by upstream when the stream capabilites has changed.
12773 Before, if the new stream is compatible with the old one the VA decoder was
12774 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12775 when the upstreamer parsers gets more details of the stream, such as the
12776 framerate. Hence, when the src caps are negotiates, the further sink caps
12777 updates are ignored.
12778 This patch forces the VA decoder destroying and recreation when set_format()
12780 https://bugzilla.gnome.org/show_bug.cgi?id=770921
12782 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
12785 configure: Depend on gstreamer 1.9.2.1
12787 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12789 * gst/vaapi/gstvaapivideomemory.c:
12790 Revert "vaapivideomemory: load VA Image when mapping to write"
12791 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12793 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
12796 Automatic update of common submodule
12797 From b18d820 to f980fd9
12799 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
12802 Automatic update of common submodule
12803 From f49c55e to b18d820
12805 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12807 * gst/vaapi/gstvaapipluginbase.c:
12808 plugins: set allocator's image size to sinkpad bufferpool
12809 Otherwise the buffer is always ditched by the bufferpool, losing performance.
12810 https://bugzilla.gnome.org/show_bug.cgi?id=771035
12812 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12814 * gst-libs/gst/vaapi/gstvaapisurface.c:
12815 libs: surface: ensure composite overlay is not bigger
12816 Ensure the composition overlay rectangle (subtitles) is not bigger than
12817 the surface where it is going to be composited and rendered.
12818 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12820 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
12822 * gst/vaapi/gstvaapivideomemory.c:
12823 vaapivideomemory: load VA Image when mapping to write
12824 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12825 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12827 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12829 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12831 * gst/vaapi/gstvaapidecode.c:
12832 vaapidecode: merge vc1 and wmv3 elements
12833 This patch merges vaapivc1dec and vaapiwmv3dec into a single
12834 vaapivc1dec. Also, removed the WMVA format, since it is not
12835 supported by libva.
12836 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12838 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12840 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12841 decoder: vc1: fails only on advanced profile
12842 In commit 2eb4394 the frame coding mode was verified for progressive
12843 regardless the profile. But the FCM is only valid in the advanced
12844 profile. This patch checks for the advanced profile before verifying FCM for
12846 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12848 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12850 * gst/vaapi/gstvaapi.c:
12851 vaapi: DISPLAY envvar as dependency
12852 In a multiple video cards system, a X11 environment may have different VA
12853 capabilities. This patch tracks the DISPLAY environment variable to
12854 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12855 https://bugzilla.gnome.org/show_bug.cgi?id=770357
12857 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12859 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12860 decoder: vc1: Fail only on actual interlaced frames
12861 In the earlier patch:
12862 f31d9f3 decoder: vc1: Print error on interlaced content
12863 Decoding would error out if the interlace flag was set in the
12864 sequence bdu. This isn't quite right because a video can have this
12865 flag set and yet not have any interlaced pictures.
12866 Here instead we error out when either parsing a field bdu or
12867 decoding a frame bdu which has fcm set to anything other than
12869 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12870 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12872 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
12875 Back to development
12877 === release 1.9.2 ===
12879 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
12884 * gstreamer-vaapi.doap:
12887 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
12889 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12890 decoder: vc1: Print error on interlaced content
12891 Interlaced video is as yet unsupported in the vc1 element. Print
12892 an error to make that more obvious.
12893 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12895 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12897 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12898 encoder: h264: fix C90 mixed declarations and code
12899 Commit 4259d1a introduced this compilation error. This patch fixes it.
12901 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12903 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12904 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12905 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12906 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12907 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12908 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12909 to avoid overflows, underflows and loss of precision.
12910 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12912 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12914 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12915 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12916 vaapiencode: h264,h265: validate fps numerator
12917 Validate that fps numerator is non-zero so it can be used to calculate
12918 the duration of the B frame.
12919 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12920 order to aviod overflows, underflows and loss of precision.
12921 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12923 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
12925 * gst/vaapi/gstvaapi.c:
12926 encoders: demote to RANK_NONE since not fit for autoplugging yet
12927 Encoders claim to support a whole bunch of input formats but then
12928 just error out if the format is not actually supported, even if
12929 there's a converter in front. This means they're not fit for
12930 autoplugging in encodebin or camerabin yet and therefore should
12931 not have a rank. People can still use them in custom pipelines.
12932 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12934 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12936 * gst/vaapi/gstvaapipluginbase.c:
12937 plugins: check dmabuf-import for sink pad allocator
12938 Check earlier if upstream video source has activated the dmabuf-import
12939 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12942 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12944 * gst/vaapi/gstvaapipluginbase.c:
12945 plugins: reset allocators if video info changed
12946 If the frame size or format, change, the allocators are reset, so a new ones
12947 can be created with the new video info.
12949 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12951 * gst/vaapi/gstvaapipluginbase.c:
12952 plugins: remove sink pad allocator if caps change
12953 If the negotiated sinkpad caps change, destroy the assignated allocator,
12954 because it is not valid anymore.
12956 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12958 * gst/vaapi/gstvaapipluginutil.c:
12959 * gst/vaapi/gstvaapipluginutil.h:
12960 pluginutil: const params to gst_video_info_changed()
12961 Since they are not modified, we should mark them as const.
12963 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12965 * gst/vaapi/gstvaapipluginbase.c:
12966 * gst/vaapi/gstvaapivideomemory.c:
12967 * gst/vaapi/gstvaapivideomemory.h:
12968 gstvaapivideomemory: allocator's image size getter
12969 Add the method gst_allocator_get_vaapi_image_size() for the
12970 GstVaapiVideoAllocator, which gets the size of the allocated images with the
12971 current video info.
12972 This method replaces the direct call to the allocator's image info when the
12973 pool is configured.
12975 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
12977 * gst/vaapi/gstvaapipluginbase.c:
12978 plugins: update buffer pool size with new allocator's image size
12979 Depends on media, video size is sometimes updated with new allocator.
12980 It leads to dismatch between bufferpool's set size and real allocated buffer size.
12981 In this case, it causes every buffer is freed during release in bufferpool,
12982 which should be reused. This affects performance.
12983 https://bugzilla.gnome.org/show_bug.cgi?id=769248
12985 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12988 configure: remove gmodule-2.0 EGL dependency
12989 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12990 thus the dependency to gmodule-2.0 is not mandatory anymore.
12992 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12995 configure: Fix non-fatal PKG_CHECK_MODULES invocations
12996 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12997 the package is missing, but action-if-not-found was given as an empty
12998 string which still causes the default action to run, which halts
13000 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13001 https://bugzilla.gnome.org/show_bug.cgi?id=769237
13003 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13005 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13006 libs: egl: remove dynamic library loading code
13007 Since the upstream of gstreamer-vaapi, the library is not a public shared
13008 object anymore. But the EGL support depended on this dynamic library, so the
13009 EGL support was broken.
13010 This patch removes the dynamic library loading code and instantiates the
13011 EGL display using either X11 or Wayland if available.
13012 https://bugzilla.gnome.org/show_bug.cgi?id=767203
13014 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13016 * gst/vaapi/gstvaapi.c:
13017 * gst/vaapi/gstvaapidecode.c:
13018 * gst/vaapi/gstvaapidecode.h:
13019 vaapidecode: register only the available decoders
13020 In order to register only the available decoders, this patch queries the
13021 created test VA display, which uses the currently used back-end (X11, Wayland,
13022 DRM, …) on the used display device.
13023 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13025 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13027 * gst/vaapi/gstvaapi.c:
13028 * gst/vaapi/gstvaapipluginutil.c:
13029 * gst/vaapi/gstvaapipluginutil.h:
13030 vaapi: register only the available encoders
13031 In order to register only the available encoders, this patch queries the
13032 created test VA display, which uses the currently used back-end (X11,
13033 Wayland, DRM, …) on the used display device.
13034 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13036 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13038 * gst/vaapi/gstvaapidecode.c:
13039 * gst/vaapi/gstvaapidecodebin.c:
13040 vaapidecode: split all the codecs
13041 Split the vaapidecode to all the supported codecs with the format
13043 vaapidecode is stil registered as a GObject type, but not as a
13044 GStreamer feature, so it can be used internally by vaapidecodebin without
13045 changing its code too much.
13046 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13048 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13050 * gst/vaapi/gstvaapidecodebin.c:
13051 vaapidecodebin: simplify the code
13052 Since the elements dependant of the VA video processor are now only registered
13053 if it is available, vaapidecodebin code can be simplified a lot, removing all
13054 the code required to check if the VA video processor was available.
13055 https://bugzilla.gnome.org/show_bug.cgi?id=768899
13057 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13059 * gst/vaapi/gstvaapidecode.c:
13060 vaapidecode: delay the GstVaapiDisplay instantiating
13061 Delay the GstVaapiDisplay instantiating until when changing the state from
13062 READY to PAUSE. In this way the element has more chances to find an already
13063 created GstVaapiDisplay, or a GL context, in the pipeline.
13064 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13066 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13068 * gst/vaapi/gstvaapipluginutil.c:
13069 pluginutil: set GLX display type
13070 The function gst_vaapi_create_display_from_gl_context() cretes a
13071 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
13072 when the GL platform was GLX, but a plain X11 VA display.
13073 This patch fixes that, by querying the GL platform earlier.
13074 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13076 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13078 * gst/vaapi/gstvaapipluginbase.c:
13079 * gst/vaapi/gstvaapivideocontext.c:
13080 * gst/vaapi/gstvaapivideocontext.h:
13081 plugins: add gst_vaapi_plugin_base_find_gl_context()
13082 Using the GstContext mechanism, it is possible to find if the pipeline
13083 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
13084 meta. This is interesting because we could negotiate system memory caps
13085 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
13086 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13088 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13090 * gst/vaapi/gstvaapipluginbase.c:
13091 * gst/vaapi/gstvaapipluginbase.h:
13092 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
13093 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
13096 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13098 * gst/vaapi/gstvaapipluginbase.h:
13099 plugins: remove common change_state() vmethod
13100 Remove the common change_state() vmethod for all the plugins, since no one is
13103 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13105 * gst/vaapi/gstvaapidecode.c:
13106 vaapidecode: remove change_state() vmethod
13107 Since the driver checkup is done at registering, there is no need to do it
13108 when changing the element state from NULL to READY. This patch remove this
13109 vmethod from vaapidecode.
13111 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13113 * gst/vaapi/gstvaapi.c:
13114 vaapi: register vaapipostproc only if supported
13115 Query the GstVaapiDisplay to know if the driver supports video
13116 postprocessing. If does, then register vaapipostproc and vaapidecodebin
13118 This patch will simplify the design of vaapidecodebin.
13119 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13121 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13123 * gst/vaapi/gstvaapi.c:
13124 vaapi: don't register if VA driver is unsupported
13125 Using the test VA display, the driver name is queried, and if it is not
13126 white-listed, the plugin rejects to register any element.
13127 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13129 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13131 * gst/vaapi/gstvaapipluginbase.c:
13132 * gst/vaapi/gstvaapipluginutil.c:
13133 * gst/vaapi/gstvaapipluginutil.h:
13134 plugins: add gst_vaapi_driver_is_whitelisted()
13135 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
13136 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
13137 when registering the plugin's feature set with the test VA display.
13138 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13140 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13142 * gst/vaapi/gstvaapi.c:
13143 vaapi: instantiate a VA display when registering
13144 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13145 features, if it fails, no gstreamer-vaapi element is registering.
13146 The purpose of this patch is to avoid a situation where the user has
13147 gstreamer-vaapi installed but their VA-API setup is not functional, which may
13148 lead to unexpected behavior.
13149 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13151 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13154 * gst/vaapi/gstvaapi.c:
13155 vaapi: declare external dependencies
13156 There are two main external dependencies that define the feature set of this
13157 plugin: a) the kernel and b) the VA driver
13158 This patch tracks both dependencies, if any of them change, GStreamer will
13159 re-inspect the plugin.
13160 The kernel is tracked through the device files /dev/dri/card*
13161 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13162 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13163 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13164 since they modify the driver lookup.
13165 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13166 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13168 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13170 * gst/vaapi/gstvaapidecode.c:
13171 vaapidecode: remove unneeded initializations
13172 GObject's memory is set to zero, so there is no need to initialize to zero or
13173 NULL it's class variables.
13175 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13177 * gst/vaapi/gstvaapipluginbase.h:
13178 plugins: remove undefined macros
13180 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13182 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13183 Revert "gstvaapisurface_drm: release image when done"
13184 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13185 372a03a9e38acbf435eb80bf31d9a9844069e504.
13186 While the dmabuf handle is exported, the derive image must exist, otherwise
13187 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13188 leading into a file descriptors leak.
13190 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13192 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13193 encoder: h265: fix code-style
13195 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13197 * gst/vaapi/gstvaapipostproc.c:
13198 vaapipostproc: update filters at color balance
13199 This is a fix for a regression of previous commit, which updates the filters
13200 only when the property is set, because it is also required to update the
13201 filter when the color balance interface change its values.
13203 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13205 * gst/vaapi/gstvaapipostproc.c:
13206 * gst/vaapi/gstvaapipostproc.h:
13207 vaapipostproc: make it enable/disable pass-through mode
13208 In case that sink caps and src caps are same, and no filtering parameter set,
13209 pass-through mode is enabled.
13210 If new filtering parameter is set during playback, it makes it reconfiguring,
13211 so that pass-through mode is changed
13212 In addition, updating filter is performed during reconfiguration, if needed.
13213 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13215 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13217 * gst-libs/gst/vaapi/gstvaapifilter.c:
13218 * gst-libs/gst/vaapi/gstvaapifilter.h:
13219 * gst/vaapi/gstvaapipostproc.c:
13220 vaapipostproc: checking and updating filter parameter only when it's set
13221 This patch is to avoid checking filter value at every frame.
13222 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13224 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13226 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13227 decoder: h265: handle the SEI NAL units included in codec_data
13228 The prefix/suffix SEI nal units can appear in codec_data too
13229 which weren't handled before. Parse these SEI headers to
13231 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13233 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13235 * docs/plugins/Makefile.am:
13236 build: doc: do not redefine MAINTAINERCLEANFILES
13237 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13238 overload it, the files should be added.
13240 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13242 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13243 encoder: h264: Fix MVC encode while enabling dct8x8
13244 Pack the transform_8x8_mode_flag and other necessary rbsp data
13245 in packed_pps header for MVC encode.
13246 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13248 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13250 * gst/vaapi/gstvaapisink.c:
13251 vaapisink: demote a debug message to trace
13252 Reduces noise when debugging.
13254 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13256 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13257 wayland: Error check before using cached wl_display
13258 A planar(or some other) buffer allocation may fail on the driver, then
13259 the wayland connection becomes invalid, not able to send request or
13260 receive any event. So we need to set up a new wayland connection if
13261 there's an error detected on the cached wl_display.
13262 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13263 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13265 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13268 Automatic update of common submodule
13269 From ac2f647 to f49c55e
13271 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13273 * gst/vaapi/gstvaapiencode.c:
13274 vaapiencode: demote a log to trace level
13275 Removes noise when debugging.
13277 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13279 * gst/vaapi/gstvaapiencode.c:
13280 vaapiencode: implement flush() vmethod
13281 In order to handle correctly seek and other operations, vaapiencode should
13282 flush all the remaining data from the encoder without pushing it downstream.
13283 This patch implements the flush() vmethod, only after of pausing the
13284 source pad task, and restarting it again after the flush stop.
13285 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13286 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13288 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13290 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13291 decoder: vc1: flush dpb only if opened
13292 Flush the decode picture buffer, if and only if, the decoder is
13293 started. Otherwise the dpb structure might be NULL.
13294 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13296 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13298 * gst/vaapi/gstvaapidecode.c:
13299 * gst/vaapi/gstvaapidecode.h:
13300 vaapidecode: drop non-keyframe in reverse playback
13301 To avoid surface-exhausted situation during reverse playback,
13302 drop frames except for key frame.
13303 Also, to avoid the corruption of the parser state, flush() vmethod
13304 doesn't destroy the VA decoder when playing in reverse.
13305 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13306 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13308 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13310 * gst/vaapi/gstvaapidecode.c:
13311 vaapidecode: unref output frame earlier
13312 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13313 unref that extra reference earlier making the code simpler to follow.
13314 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13316 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13318 * gst/vaapi/gstvaapidecode.c:
13319 vaapidecode: remove gst_vaapidecode_internal_flush()
13320 As gst_vaapidecode_finish() is the only callee of
13321 gst_vaapidecode_internal_flush(), it is better to inline it.
13322 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13324 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13326 * gst/vaapi/gstvaapidecode.c:
13327 vaapidecode: flush output adapter at drain()
13328 Calling drain() vmethod means "decode any data it can at this point, but that
13329 more data may arrive after". Hence, vaapidecode should check if there is data
13330 in the output adapter and process them, without destroying the decoded picture
13332 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13333 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13334 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13336 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13338 * gst/vaapi/gstvaapidecode.c:
13339 vaapidecode: call purge at flush()
13340 Calling flush() vmethod means "to flush all remaining data from the decoder
13341 without pushing it downstream".
13342 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13343 gst_video_decoder_have_frame() if there is still something in the input
13344 adapter, which may push buffers to downstream by calling handle_frame().
13345 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13346 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13347 decoder and releases all the rest of decoded frames.
13348 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13350 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13352 * tests/elements/Makefile.am:
13353 * tests/elements/test-vaapisink.c:
13354 test: elements: remove spurious linkage
13355 Element tests only need to link against gstreamer libraries.
13357 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13360 configure: Require GLib >= 2.40 like everywhere else
13362 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13365 Back to development
13367 === release 1.9.1 ===
13369 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13375 * gstreamer-vaapi.doap:
13378 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13380 * tests/elements/test-vaapisink.c:
13381 tests: elements: rotate orientation event
13383 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13386 * tests/Makefile.am:
13387 * tests/elements/Makefile.am:
13388 * tests/elements/test-vaapisink.c:
13389 tests: elements: Add testsuite for vaapisink
13390 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13392 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13394 * gst-libs/gst/vaapi/gstvaapitypes.h:
13395 * gst-libs/gst/vaapi/gstvaapivalue.c:
13396 * gst/vaapi/gstvaapisink.c:
13397 * gst/vaapi/gstvaapisink.h:
13398 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13399 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13401 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13403 * gst/vaapi/gstvaapipostproc.c:
13404 vaapipostproc: return caps template if no display
13405 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13406 be able to return the available raw caps handled by the VA display, but that
13407 only should happen when there a VA display. If there's none, the element
13408 should use the caps template.
13409 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13411 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13413 * gst/vaapi/gstvaapipostproc.c:
13414 vaapipostproc: don't require a vaapi display for all caps queries
13415 This delays the requirement of having a GstVaapiDisplay until later
13416 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13418 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13420 * gst-libs/gst/vaapi/gstvaapiutils.c:
13421 utils: report VP9 profiles
13422 Add VP9Profile0-3 name mapping.
13424 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13426 * gst/vaapi/gstvaapi.c:
13427 vaapi: nest includes under USE_ENCODER macro
13428 This is a missed changeset from commit 1c05c53, since also header includes
13431 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13433 * gst/vaapi/gstvaapi.c:
13434 vaapi: nest encoders under USE_ENCODER macro
13435 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13436 macro, it is clearer to nest them, showing explicitly the dependency relation.
13438 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13440 * gst/vaapi/gstvaapivideocontext.c:
13441 vaapivideocontext: check if query context is NULL
13442 Under certain conditions the element might receive a positive context query
13443 but without a context instance. This situation will lead to a segmentation
13444 fault when traversing the context list in the pipeline.
13445 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13447 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13449 * gst-libs/gst/vaapi/Makefile.am:
13450 * gst-libs/gst/vaapi/glibcompat.h:
13451 * gst-libs/gst/vaapi/sysdeps.h:
13452 remove unused glibcompat.h
13453 glibcompat.h is no longer doing anything. Remove it.
13454 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13455 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13457 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13459 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13460 encoder: h264: Use high profile by default
13461 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13462 by default. This will cause the default profile to be high instead
13463 of baseline. In most situations this is the right decision, and
13464 the profile can still be lowered in the case of caps restrictions.
13465 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13466 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13468 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13470 * gst/vaapi/gstvaapidecodebin.c:
13471 vaapidecodebin: element warning if missing element
13472 Raise an element warning if a required element is not available, thus the
13473 pipeline will post a warning message and the application will be informed.
13475 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13477 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13478 decoder: h265: fix to release all dpb pictures
13479 Without this, all dpb pictures are not released during flush,
13480 because we used the global dpb_count variable for checking the
13481 dpb fullness which get decremented in dpb_remove_index()
13482 routine during each loop iteration.
13483 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13485 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13488 Automatic update of common submodule
13489 From ac2f647 to f363b32
13491 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13493 * gst/vaapi/gstvaapidecode.c:
13494 * gst/vaapi/gstvaapipostproc.c:
13495 vaapi: fix minor leaks
13496 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13498 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13500 * gst/vaapi/gstvaapi.c:
13501 vaapi: remove an already included header
13502 gst/gst.h is already included in gstcompat.h
13504 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13506 * gst/vaapi/gstvaapidecodebin.c:
13507 vaapidecodebin: add vp9 in sink pad template
13509 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13511 * gst/vaapi/gstvaapisink.c:
13512 vaapisink: return caps template if no display
13513 If vaapisink received a caps query before getting a VA display, it returned
13514 only the surfaces related caps. This behavior broke the autovideosink
13516 This patch returns the pad's template caps if no VA display, otherwise the
13517 caps are crafted as before.
13518 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13520 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13522 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13523 decoder: vp9: Update comment about context resets
13524 Clarify that vaapi context resets are never needed for vp9, but
13525 that ensure_context() needs called when the size increases so that
13526 new surfaces can be allocated.
13527 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13528 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13530 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13532 * gst-libs/gst/vaapi/gstvaapicontext.c:
13533 * gst-libs/gst/vaapi/gstvaapicontext.h:
13534 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13535 gstvaapicontext: control reset_on_resize with option
13536 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13537 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13539 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13541 * gst/vaapi/gstvaapivideobufferpool.c:
13542 vaapivideobufferpool: add video meta to config when needed
13543 In cases where we know the video meta must be present, add it to
13544 the pool configuration.
13545 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13546 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13548 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13550 * gst/vaapi/gstvaapipluginbase.c:
13551 plugins: retry pool config
13552 if gst_buffer_pool_set_config returns FALSE, check the modified
13553 config and retry set_config if the config is still acceptable.
13554 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13555 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13557 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13559 * gst/vaapi/gstvaapivideomemory.h:
13560 vaapivideomemory: internal attributes to methods
13561 Mark as internal the functions used by VA-API dmabuf allocator.
13563 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13565 * gst/vaapi/gstvaapipluginbase.c:
13566 plugins: remove precondition for decide_allocation()
13567 There's no need to check for the display in the plugin object when
13568 decide_allocation() vmethod is called, because the display will created or
13569 re-created along the method execution.
13571 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13573 * gst/vaapi/gstvaapipluginbase.c:
13574 plugins: avoid possible memory leaks
13575 Get the pool config just before use it, to avoid a memory leak if the
13576 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13577 cannot be set, avoid keep a not used allocator in the pool.
13579 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13581 * gst/vaapi/gstvaapipluginbase.c:
13582 plugins: use GstParentBufferMeta
13583 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13584 use the GStreamer's GstParentBufferMeta.
13585 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13587 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13589 * gst/vaapi/gstvaapipluginbase.c:
13590 plugins: cache VASurfaces from dmabufs
13591 This patch avoids the creation of a VASurface each time a new input buffer is
13592 processed, caching them in the input buffer itself.
13593 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13595 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13597 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13598 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13599 * gst/vaapi/gstvaapipluginbase.c:
13600 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13601 Instead of passing the data already in GstVideoInfo, let's just pass the
13602 GstVideoInfo structure.
13603 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13605 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13607 * gst/vaapi/gstvaapipluginbase.c:
13608 * gst/vaapi/gstvaapipluginbase.h:
13609 plugins: use an unique allocator per pad
13610 Instead of instantiating an allocator per vaapivideobufferpool, only one
13611 allocator is instantiated per element's pad and shared among future pools.
13612 If the pad's caps changes, the allocator is reset.
13613 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13615 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13617 * gst/vaapi/gstvaapipluginbase.c:
13618 * gst/vaapi/gstvaapivideobufferpool.c:
13619 * gst/vaapi/gstvaapivideobufferpool.h:
13620 vaapivideobufferpool: share options flag with pluginbase
13621 Originally, vaapivideobufferpool has a set of boolean variables for the
13622 buffer configuration options.
13623 This pach changes these boolean variables for a single bitwise, just as
13624 it is used in pluginbase. Hence, the internal enum was moved to
13625 vaapivideobufferpool header.
13626 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13628 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13630 * gst/vaapi/gstvaapipluginbase.c:
13631 plugins: add gst_vaapi_plugin_base_create_pool()
13632 This patch refactors the code in pluginbase in order to centralize the buffer
13633 pool instantiation. As the buffer pool config may have different options, these
13634 are gathered using a bitwise flag.
13635 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13637 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13639 pluginbase negotiates allocator with bufferpool
13640 Originally vaapivideobufferpool instantiates its own allocator regardless the
13641 received configuration, and it relies in custom configuration options to
13642 choose which kind of allocator instantiate.
13643 This patch transfers the responsibility of the allocator instantiate to
13644 vaapipluginbase and pass it to the vaapivideobufferpool through its
13646 * gst/vaapi/gstvaapipluginbase.c
13647 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13648 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13649 bufferpool configuration
13650 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13652 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13653 allocator in bufferpool configuration
13654 * gst/vaapi/gstvaapivideobufferpool.c
13655 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13656 allocator, process the received one through its configuration.
13657 * gst/vaapi/gstvaapivideobufferpool.h: removed
13658 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13659 * gst/vaapi/gstvaapivideomemory.c
13660 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13661 allocator with the vaapi qdata.
13662 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13664 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13666 * gst/vaapi/gstvaapivideobufferpool.c:
13667 vaapivideobufferpool: keep only current video info
13668 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13669 the current one, the negotiated. The old one is not needed at all.
13670 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13672 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13674 * gst/vaapi/gstvaapipluginbase.c:
13675 * gst/vaapi/gstvaapipluginutil.c:
13676 * gst/vaapi/gstvaapipluginutil.h:
13677 * gst/vaapi/gstvaapivideomemory.c:
13678 pluginutil: add gst_video_info_force_nv12_if_encoded()
13679 This lines repeat a couple times in the code, so it would be better to put it
13681 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13683 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13685 * gst/vaapi/gstvaapipluginutil.c:
13686 * gst/vaapi/gstvaapipluginutil.h:
13687 * gst/vaapi/gstvaapipostproc.c:
13688 * gst/vaapi/gstvaapivideobufferpool.c:
13689 pluginutil: add gst_video_info_changed() helper
13690 This function is shared among different elements, so let factorized it.
13691 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13693 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13695 * gst/vaapi/gstvaapipostprocutil.c:
13696 vaapipostproc: Add colorimetry attributes to src caps
13697 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13699 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13701 * gst/vaapi/gstvaapidecode.c:
13702 vaapidecode: remove chroma-site and colorimetry from src caps
13703 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13705 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13707 * gst/vaapi/gstvaapipostproc.c:
13708 * gst/vaapi/gstvaapipostproc.h:
13709 vaapipostproc: add postproc_lock to protect data members
13710 Add a mutex to postproc to protect concurrent access to data members.
13711 Previously set_caps() could release the allowed_srcpad_caps while
13712 transform_caps was in the middle of using it.
13713 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13714 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13716 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13718 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13719 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13720 encoder: vp9: Add simple algorithms for reference picture selection
13721 Added two modes(as properties) for reference picture selection:
13722 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13723 and LastRef is pointing to the previous frame.
13724 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13725 and n-2 th frame as AltRef
13726 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13728 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13730 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13731 encoder: vp9: Define Max frame width and height
13732 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13734 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13736 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13737 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13738 encoder: vp9: Add more propertis for tuning encode quality
13739 Added three tuning properties:
13742 3: luma ac quant-table index
13743 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13745 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13747 * gst/vaapi/Makefile.am:
13748 * gst/vaapi/gstvaapi.c:
13749 * gst/vaapi/gstvaapiencode_vp9.c:
13750 * gst/vaapi/gstvaapiencode_vp9.h:
13751 Add vp9 encode element to "vaapi" plugin
13752 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13754 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13756 * gst-libs/gst/vaapi/Makefile.am:
13757 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13758 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13759 Add vp9 encoder support in libgstvaapi
13760 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13762 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13765 build: Add check for VP9 encode API support in libva
13766 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13768 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13770 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13771 gstvaapisurface_drm: fix internal documentation
13773 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13775 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13776 gstvaapisurface_drm: fix code-style
13778 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13780 * gst/vaapi/gstvaapipluginbase.c:
13781 plugins: remove unused header
13782 Remove the include of gst/allocators/allocators.h since it is not used.
13784 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13786 * gst/vaapi/gstvaapivideobufferpool.h:
13787 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13788 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13789 keep compatibility definition.
13790 This patch removes the definition of
13791 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13792 gst-plugins-base version 1.2.2
13794 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13796 * gst/vaapi/gstvaapipluginbase.c:
13797 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13798 This is a helper function to improve the readability of
13799 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13802 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13804 * gst/vaapi/gstvaapipluginbase.c:
13805 plugins: deactivate buffer pool before unref
13806 This buffer pool may still be processing buffers when a caps renegotiation is
13807 done. This one-liner patch deactivates the pool to drain it before it
13810 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13812 * gst/vaapi/gstvaapipluginbase.c:
13813 plugins: no sinkpad bufferpool when decoder
13814 Right now, the decoders create a buffer pool for their sink pad which is not
13815 used at all, because the decoders have never proposed it to upstream.
13816 This patch avoids the buffer pool instantiating when the element inherits from
13817 the GstVideoDecoder class.
13819 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13821 * gst/vaapi/gstvaapipluginbase.c:
13822 plugins: avoid to get/set pool config twice
13823 This patch is a bit of optimization, since the bufferpool configuration is get
13824 when the pool is created. Hence, we only need to request it when the pool from
13825 the allocation query is reused.
13827 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13829 * gst/vaapi/gstvaapipluginbase.c:
13830 plugins: destroy pool earlier if non-vaapi
13831 If the offered pool in decide_allocation() vmethod doesn't have the
13832 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13833 so it could be created later.
13835 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13837 * gst/vaapi/gstvaapivideobufferpool.c:
13838 vaapivideobufferpool: split caps validation
13839 When validating the caps from bufferpool config, this patch distinguishes the
13840 error from no caps received (NULL) from the invalid caps (cannot be converted
13841 into GstVideoInfo structure).
13843 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13845 * gst/vaapi/gstvaapidecode.c:
13846 * gst/vaapi/gstvaapipluginbase.c:
13847 plugins: check for caps in query earlier
13848 Check for caps as soon gst_query_parse_allocation() returns.
13850 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13852 * gst/vaapi/gstvaapipluginbase.c:
13853 * gst/vaapi/gstvaapipluginbase.h:
13854 plugins: remove unused variables
13855 This variables stopped to be used since commit 001a5c63, which removed the
13858 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13860 * gst/vaapi/gstvaapipluginbase.c:
13861 plugins: fix potential memleak from commit 9159328
13862 If gst_video_info_from_caps() fails it is required to unref the instantiated
13865 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13867 * gst/vaapi/gstvaapipostproc.c:
13868 vaapipostproc: handle if gst_video_info_from_caps() fails
13869 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13872 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13874 * gst/vaapi/gstvaapipluginbase.c:
13875 plugins: handle if gst_video_info_from_caps() fails
13876 Let's play safe and return error if, somehow, the received caps are wrong.
13878 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13880 * gst/vaapi/gstvaapipluginbase.c:
13881 plugins: relate errors to instance
13882 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13883 will show the name of the vaapipluginbase instance that failed.
13884 Also, the code-style is fixed, where some error labels need to be surrounded
13887 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13889 * gst/vaapi/gstvaapipluginbase.c:
13890 * gst/vaapi/gstvaapipluginutil.c:
13891 * gst/vaapi/gstvaapisink.c:
13892 plugins: use GstVideoInfo accessors
13893 Instead of access to GstVideInfo members directly, use their accessors
13894 macros. This patch makes more resistance to future changes in GStreamer core.
13896 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13898 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13899 * gst/vaapi/gstvaapipluginbase.c:
13900 * gst/vaapi/gstvaapipostproc.c:
13901 * tests/simple-encoder.c:
13902 remove spurious gst_video_info_init()
13903 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13904 gst_video_info_init(), hence it is not required to call it before them. This
13905 patch removes these spurious calls.
13907 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13909 * gst/vaapi/gstvaapipluginbase.c:
13910 vaapipluginbase: code-style: rename goto label
13911 The error labels have error_ prefix, but this one.
13913 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13915 * gst/vaapi/gstvaapivideomemory.c:
13916 vaapivideomemory: use allocator custom alloc flag
13917 Instead of a dummy alloc() vmethod, the allocator instance set the flag
13918 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13919 gst_allocator_alloc() on the allocator.
13921 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13923 * gst/vaapi/gstvaapivideobufferpool.c:
13924 vaapivideobufferpool: relate errors to instance
13925 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13926 the vaapivideobufferpool instance that failed.
13928 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13930 * gst/vaapi/gstvaapipluginbase.c:
13931 plugins: remove gst_vaapi_plugin_base_set_pool_config()
13932 This function helper make sense for GStreamer 1.2, but it is not helpful for
13933 greater version since the validation is already done in the API implementation.
13934 Thus, it is removed.
13936 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13938 * gst/vaapi/gstvaapipluginbase.c:
13939 gstvaapipluginbase: Fix typo in doc
13941 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13943 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13944 encoder : h264: Disable b-frame encode in low-power mode
13945 This is a workaround since vaapi-intel-driver doesn't have
13946 support for B-frame encode when utilizing low-power-enc
13948 Fixme :We should query the VAConfigAttribEncMaxRefFrames
13949 instead of blindly disabling b-frame support and set b/p frame count,
13950 buffer pool size etc based on the query result.
13951 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13953 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13955 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13956 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13957 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13958 Remove the duplicate property "low-power-enc" and use the
13959 tune property for enabling low power encoding mode.
13960 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13962 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13964 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13965 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13966 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13968 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13970 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13971 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13972 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13973 encoder: h264: Add support of low power/high performance encoding mode
13974 Added a new property "low-power-enc" for enabling low power
13975 encoding mode. Certain encoding tools may not be available
13976 with the VAEntrypointEncSliceLP.
13977 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13979 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13981 * gst-libs/gst/vaapi/gstvaapitypes.h:
13982 * gst-libs/gst/vaapi/gstvaapiutils.c:
13983 * gst-libs/gst/vaapi/gstvaapivalue.c:
13984 Add mapping for Macroblock level rate control (VA_RC_MB)
13986 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13988 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13989 gstvaapidisplay: Add VAEntrypointEncSliceLP support
13990 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13992 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13994 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13995 * gst-libs/gst/vaapi/gstvaapiprofile.h:
13996 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13997 This is for implementations that supports low_power/high_performance
13998 variant for slice level encode.
13999 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14001 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14003 * gst/vaapi/gstvaapipostprocutil.c:
14004 vaapipostproc: negotiate frame size fixation
14005 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
14006 using the sink caps, also it use the next capsfilter.
14007 This code is a shameless copy of gst_video_scale_fixate_caps() from
14008 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
14009 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14011 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14013 * gst/vaapi/gstvaapipostprocutil.c:
14014 vaapipostproc: don't use GstVideoInfo for src caps
14015 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
14016 this patch enables the first step for caps negotiation with a possible
14017 following caps filter.
14018 _get_preferred_caps() will traverse the possible src caps looking for the one
14019 wit the preferred feature and the preferred color format. Then the color
14020 format, the frame size and the frame rate are fixated.
14021 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14023 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14025 * gst/vaapi/gstvaapipostproc.c:
14026 * gst/vaapi/gstvaapipostprocutil.c:
14027 * gst/vaapi/gstvaapipostprocutil.h:
14028 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
14029 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
14030 No functional changes.
14031 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14033 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14035 * gst/vaapi/gstvaapipostproc.c:
14036 vaapipostproc: simplify code
14037 Change a convoluted snippet to find the preferred color format in the peer
14039 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14041 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14043 * gst/vaapi/gstvaapipostproc.c:
14044 vaapipostproc: use othercaps for preferred caps
14045 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
14046 from fixate_caps() vmethod to find the preferred caps feature and color
14048 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14050 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14052 * gst/vaapi/gstvaapipostproc.c:
14053 vaapipostproc: add fixate_caps() vmethod
14054 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
14055 implements the fixate_caps() vmethod and moves code around.
14056 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14058 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14060 * gst/vaapi/Makefile.am:
14061 * gst/vaapi/gstvaapipostproc.c:
14062 * gst/vaapi/gstvaapipostprocutil.c:
14063 * gst/vaapi/gstvaapipostprocutil.h:
14064 vaapipostproc: set early properties restrictions
14065 When running transform_caps() vmethod, returning the srcpad caps, the caps are
14066 early restricted to the element properties set: width, height, format and
14068 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
14070 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14072 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14074 * gst/vaapi/gstvaapipostproc.c:
14075 vaapipostproc: log the caps transformation
14076 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14078 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14080 * gst/vaapi/gstvaapipostproc.c:
14081 vaapipostproc: no GLTextureUpload in sinkpad
14082 As the vaapipostproc does not process frames with the VideoGLTextureUpload
14083 meta, the feature is removed from the sink pad template.
14084 https://bugzilla.gnome.org/show_bug.cgi?id=765931
14086 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
14088 * gst/vaapi/gstvaapivideobufferpool.c:
14089 vaapibufferpool: do not create texture upload meta if dmabuf
14090 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14092 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14095 build: update git.mk
14097 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14099 * gst/vaapi/gstvaapipluginbase.h:
14100 plugin: fix macro processor check
14101 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
14102 defined in config.h, but it would be 0 or 1 depending on the configure output.
14103 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14105 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14107 * tests/test-display.c:
14108 tests: display: guard possible unused variables
14109 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14111 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14117 * tests/simple-decoder.c:
14118 * tests/test-decode.c:
14119 * tests/test-display.c:
14120 * tests/test-filter.c:
14121 * tests/test-h264.c:
14122 * tests/test-jpeg.c:
14123 * tests/test-mpeg2.c:
14124 * tests/test-mpeg4.c:
14125 * tests/test-subpicture-data.c:
14126 * tests/test-subpicture.c:
14127 * tests/test-surfaces.c:
14128 * tests/test-textures.c:
14129 * tests/test-vc1.c:
14130 * tests/test-windows.c:
14131 tests: inforce gstreamer code-style
14133 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14135 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14136 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
14137 It seems driver requires enablement of cu_qp_delta_enabled_flag
14138 for modifying QP values to controll the CBR mode bitrate.
14139 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14141 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14143 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14144 encoder: h265: Add CBR Encoding support
14145 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14147 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
14149 * gst-libs/gst/vaapi/gstvaapisurface.c:
14150 gstvaapisurface: explicitely clear TILING flag if dmabuf
14151 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14153 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14155 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14156 gstvaapisurface_drm: release image when done
14157 Otherwise intel-vaapi-driver will fail to process the exported surface because
14158 it will find it is currently derived, so considered as busy.
14159 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14161 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14163 * gst/vaapi/gstvaapipostproc.c:
14164 vaapipostproc: already have a surface proxy if dmabuf
14165 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14167 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14169 * gst/vaapi/gstvaapipostproc.c:
14172 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14174 * gst/vaapi/gstvaapidecode.c:
14175 * gst/vaapi/gstvaapipluginbase.c:
14176 * gst/vaapi/gstvaapipluginbase.h:
14177 vaapidecode: search driver in whitelist
14178 If the backend driver vendor string is not in a white-list, and the
14179 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14180 change it state from NULL to READY, hence the auto-plug mechanism will look
14181 for another decoder.
14182 This patch assumes the GstContext has already being shared along the pipeline
14183 and the element has a valid GstVaapiDisplay instance.
14184 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14186 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14188 * gst/vaapi/gstvaapidecode.c:
14189 * gst/vaapi/gstvaapiencode.c:
14190 * gst/vaapi/gstvaapipluginbase.c:
14191 * gst/vaapi/gstvaapipluginbase.h:
14192 * gst/vaapi/gstvaapipostproc.c:
14193 * gst/vaapi/gstvaapisink.c:
14194 plugins: rework set_context() vmethod definition
14195 In bug 757598 was added the set_context() vmethod chain up in
14196 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14197 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14198 No error has shown up since none of the element's base classes redefined
14199 set_context() vmethod from GstElement, so always the correct function was
14200 called. Still this code is wrong and this patch make it right.
14201 Since set_context() is the same code, a macro is used to implement that code
14202 in all the gst-vaapi elements.
14203 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14205 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14207 * gst/vaapi/gstvaapipostproc.c:
14208 vaapipostproc: resize if negotiated and allocation caps are different
14209 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14210 the negotiated caps.
14211 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14212 resize the frame to the negotiated, if and only if, some other parameter is
14213 activated to avoid the passthrough. If it is not, the surface won't be mapped
14214 into a image. If not, the image won't be resized and the output buffer would be
14216 This patch will break the passthrough if the allocation query is different
14217 from the negotiation caps, forcing the resizing.
14218 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14220 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14222 * gst/vaapi/gstvaapidecode.c:
14223 vaapidecode: improve code readability
14224 No functional changes.
14226 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14228 * gst/vaapi/gstvaapidecode.c:
14229 vaapidecode: move GstCapsFeatures near to its use
14230 Move the handling of the GstCapsFeatures just after it is used, in order to
14231 avoid handling its memory.
14233 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14235 * gst/vaapi/gstvaapidecode.c:
14236 vaapidecode: caps negotiation checks
14237 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14238 compiled with GL support.
14240 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14242 * gst/vaapi/gstvaapidecode.c:
14243 * gst/vaapi/gstvaapipluginbase.c:
14244 * gst/vaapi/gstvaapipluginbase.h:
14245 * gst/vaapi/gstvaapipostproc.c:
14246 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14248 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14250 * gst/vaapi/gstvaapidecode.c:
14251 vaapidecode: bail early if not caps in decide_allocation()
14253 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14255 * gst/vaapi/gstvaapidecode.c:
14256 * gst/vaapi/gstvaapipluginbase.c:
14257 * gst/vaapi/gstvaapipluginutil.c:
14258 * gst/vaapi/gstvaapipluginutil.h:
14259 * gst/vaapi/gstvaapipostproc.c:
14260 plugin: use allowed caps filter from element
14261 Instead of using the srcpad template caps for filtering the peer caps, the
14262 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14263 for the element's allowed caps.
14264 With this modification, the vaapipostproc element simplifies a bit its code.
14265 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14267 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14269 * gst/vaapi/gstvaapidecode.c:
14270 * gst/vaapi/gstvaapipluginbase.c:
14271 * gst/vaapi/gstvaapipluginutil.c:
14272 * gst/vaapi/gstvaapipluginutil.h:
14273 * gst/vaapi/gstvaapipostproc.c:
14274 plugin: remove function parameter
14275 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14276 saved if the out format is used for both: in and out. Thus the code is more
14278 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14280 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14282 * gst/vaapi/gstvaapidecode.c:
14283 vaapidecode: warns if driver will do color conversions
14284 If the downstream feature is system memory, the surface has to be mapped,
14285 hence a warning message is logged saying that the driver has to do color
14286 conversions. This might be troublesome because not all the color conversion
14287 combinations are supported by the VA-API drivers, and there is not a reliable
14288 way to know them before hand.
14289 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14291 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14293 * gst/vaapi/gstvaapipluginutil.c:
14294 plugin: honour negotiated format
14295 Instead of setting the requested format by the caller, the function
14296 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14297 the negotiated format.
14298 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14299 given the format list from the negotiated caps, will choose the best one, if
14300 possible, given the native format.
14301 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14303 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14305 * gst/vaapi/gstvaapipluginutil.c:
14306 plugin: simplify caps feature selection
14307 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14308 Instead of intersecting custom caps to find the preferred feature, the peer
14309 caps are traversed in order to find the preferred feature, according to an
14310 ordered feature priority list.
14311 In the case of GLTextureUploadMeta, the colour format is computed using
14312 GstVideoInfo of the selected fixed caps.
14313 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14315 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14317 * gst/vaapi/gstvaapidecode.c:
14318 vaapidecode: use macros for GstVideoInfo
14319 Instead of accessing directly to the members of the structure, use the macros.
14321 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14323 * gst/vaapi/gstvaapidecode.c:
14324 vaapidecode: refactor is_display_resolution_changed()
14325 Make the comparisons more readable and simple.
14326 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14328 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14330 * gst/vaapi/gstvaapidecode.c:
14331 * gst/vaapi/gstvaapidecode.h:
14332 vaapidecode: keep only display_{width,height}
14333 Instead of keeping the structure GstVideoInfo when we are using its width and
14334 height, we only keep these two guints.
14335 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14337 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14339 * gst/vaapi/gstvaapidecode.c:
14340 vaapidecode: decoded_info is valid at src caps update
14341 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14342 is called, then we don't need to verify or replace it with the sinkpad info
14344 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14346 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14348 * gst/vaapi/gstvaapidecode.c:
14349 vaapidecode: always a valid format in decoded_info
14350 Always set a valid format in decoded_info class variable.
14351 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14353 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14355 * gst/vaapi/gstvaapidecode.c:
14356 vaapidecode: code style fixes
14357 No functional changes.
14358 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14360 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14362 * gst/vaapi/gstvaapidecode.c:
14363 vaapidecode: init {decoded,display}_info at open()
14364 It is required to initialize {decoded,display}_info variables when the decoder
14365 is open, not only at instance initialization.
14366 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14368 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14370 * gst/vaapi/gstvaapidecode.c:
14371 * gst/vaapi/gstvaapidecode.h:
14372 vaapidecode: remove spurious class variables
14373 active, do_pool_renego and do_outstate_renego class variables were used to
14374 indicate when negotiate downstream once, but now that each time a new surface
14375 resolution is pop out a renegotation verified, these variable are not required
14377 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14379 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14381 * gst/vaapi/gstvaapidecode.c:
14382 * gst/vaapi/gstvaapipluginbase.c:
14383 * gst/vaapi/gstvaapipluginbase.h:
14384 * gst/vaapi/gstvaapipostproc.c:
14385 remove custom allocation query
14386 When resolving bug 753914, a custom allocation query was added, overlapping
14387 the responsibilities of GstVideoDecoder.
14388 But with the merge of the patches from bug 764421 this overlapping was not
14389 required anymore. This patch restores this situation setting the
14390 allocation_caps in the GstVideoCodecState when needed.
14391 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14393 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14396 Automatic update of common submodule
14397 From 6f2d209 to ac2f647
14399 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14401 * gst/vaapi/gstvaapidecode.c:
14402 * gst/vaapi/gstvaapidecodebin.c:
14403 * gst/vaapi/gstvaapipostproc.c:
14404 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14405 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14406 their caps templates if they were not compiled either with GLX or EGL support.
14408 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14410 * gst/vaapi/gstvaapipluginutil.c:
14411 plugins: fix compilation when EGL/GLX is disabled
14412 The compiler might complain of gst_vaapi_create_display_from_handle() being
14413 unused if both EGL and GLX are disabled. This patch avoid that compilation
14416 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14418 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14419 libs: fix deleting a GstVaapiCodedBufferPool object
14420 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14421 Otherwise it is not called when the pool is destroyed and all objects
14422 referenced by the GstVaapiVideoPool are never released.
14423 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14425 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14427 * gst-libs/gst/vaapi/gstvaapisurface.c:
14428 surface: destroy derived image
14429 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14430 destroyed, otherwise the surface cannot be processed because is being used.
14431 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14433 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14435 * gst/vaapi/gstvaapidecode.c:
14436 vaapidecode: add stop function
14437 Clear any status on the current stream:
14438 stored frames, caps and decoder configuration
14439 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14441 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14443 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14444 decoder: vp9: Align with the ABI changes in vp9 codecparser
14445 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14446 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14447 These fields are only present in keyframe or intra-only frame, no need to
14448 duplicate them for inter-frames.
14449 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14451 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14453 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14454 decoder: vp9 : Add 10bit decoding support (Profile2)
14455 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14457 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14459 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14460 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14461 gstvaapiporfile: Add more VP9 profile definitions
14462 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14464 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14468 build: possibility to disable tests
14469 The configuration option --disable-examples will disable the compilation of
14470 the sample apps in tests/ directory.
14472 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14474 * gst/vaapi/gstvaapiencode_h264.c:
14475 * gst/vaapi/gstvaapiencode_h265.c:
14476 * gst/vaapi/gstvaapiencode_jpeg.c:
14477 * gst/vaapi/gstvaapiencode_mpeg2.c:
14478 * gst/vaapi/gstvaapiencode_vp8.c:
14479 * gst/vaapi/gstvaapipluginutil.h:
14480 * gst/vaapi/gstvaapisink.c:
14481 unify caps template for VAAPI encoders and decoders
14482 There is no difference in VAAPI surface caps between encoders and decoders.
14483 Thus, the patch makes a simplification by removing encoders specific caps and
14484 shares the same definition of VAAPI surfaces caps for all the elements.
14486 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14488 * gst/vaapi/gstvaapidecode.c:
14489 vaapidecode: move gst_vaapidecode_negotiate() code
14490 With it we can remove a function declaration, making the code a bit
14492 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14494 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14496 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14497 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14498 * gst/vaapi/gstvaapidecode.c:
14499 docs: generate vaapijpegdec documentation
14500 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14502 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14504 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14505 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14506 The array_completeness, reserved bit and num_nal_units fields
14507 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14508 but not for each occurance of similar headers.
14509 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14511 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14513 * gst-libs/gst/vaapi/video-format.c:
14514 video-format: Keep the HW order preference while mapping to GstVideoFormats
14516 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14518 * gst/vaapi/gstvaapidecode.c:
14519 * gst/vaapi/gstvaapipluginbase.c:
14520 * gst/vaapi/gstvaapipluginutil.c:
14521 * gst/vaapi/gstvaapipluginutil.h:
14522 * gst/vaapi/gstvaapivideomemory.c:
14523 gst/vaapi: keep precedence for NV12 over I420
14524 Use NV12 as default "assumption" format all over.
14525 NV12 is the default high priority format used my most of the
14528 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14530 * gst/vaapi/gstvaapidecode.c:
14531 vaapidecode: Use video format derived from decoded surface as default src pad format
14532 Use the surface format derived from first decoded surface
14533 to negotiate the downstream video format capabilities.
14534 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14536 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14538 * gst-libs/gst/vaapi/gstvaapiimage.c:
14539 * gst-libs/gst/vaapi/video-format.c:
14540 * gst/vaapi/gstvaapidecode.c:
14541 * gst/vaapi/gstvaapipluginutil.h:
14542 * gst/vaapi/gstvaapisink.c:
14543 Add P010 video format support
14544 The P010 video format is the native format used by the vaapi intel driver
14545 for HEVCMain10 decode . Add support for planes and images of this video format.
14546 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14548 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14550 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14551 libs: x11: allows 30-bit colour depth
14552 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14553 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14554 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14556 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14558 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14560 * gst/vaapi/gstvaapivideometa_texture.c:
14561 gltextureupload: use an array for texture type
14562 Instead of using a single value for the texture type, use an array with 4
14563 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14565 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14567 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14569 * gst/vaapi/gstvaapidecode.c:
14570 * gst/vaapi/gstvaapipluginbase.c:
14571 vaapidecode: Fix decide_allocation handling
14572 Set the already configured pool in decide_allocation query
14573 in cases where pool renegotiation is not required.
14574 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14576 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14578 * gst/vaapi/gstvaapidecode.c:
14579 vaapidecode: Derive and save the decoded surface format
14580 After the decoding of first frame, try to extract the exact
14581 decoded surface format using vaDeriveImage and keep this
14582 as the format in decoded_info.
14583 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14585 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14587 * gst/vaapi/gstvaapidecode.c:
14588 * gst/vaapi/gstvaapidecode.h:
14589 * gst/vaapi/gstvaapipluginbase.c:
14590 * gst/vaapi/gstvaapipluginbase.h:
14591 * gst/vaapi/gstvaapipostproc.c:
14592 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14593 -- Maintaing decoded surface resoluton and actual display resoultion separately
14594 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14595 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14596 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14597 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14598 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14599 This is slight overhead, but safe enough. Optimization could be possible though.
14600 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14602 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14604 * gst/vaapi/gstvaapidecode.c:
14605 vaapidecode: Delay the output format setting until we have a decoded surface
14606 This will help to consoidate the out caps negotiation to a single place,
14607 which will make the code simpler, allows to get the exact decoded format
14608 if needed and the selected chroma type too.
14609 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14611 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14613 * gst/vaapi/gstvaapidecode.h:
14614 vaapidecode: GST_VAAPIDECODE macro is a cast
14615 This patch is the continuation of commit 1e1d3b1d because the function
14616 gst_vaapidecode_get_type() got undefined since then.
14617 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14618 structure. The rest of the GObject handling macros were deleted too.
14620 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14623 Back to development
14625 === release 1.8.0 ===
14627 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14632 * gstreamer-vaapi.doap:
14635 === release 1.7.91 ===
14637 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14642 * gstreamer-vaapi.doap:
14645 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14647 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14648 decoder: h265: Fix offset calculation in codec_data parsing
14649 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14651 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14653 * gst/vaapi/gstvaapidecodebin.c:
14654 vaapidecodebin: don't handle jpeg decoding
14655 As JPEG decoder has been split and demoted, it cannot be handled by
14657 Added a fixme comment regarding the future removal of vaapidecode.
14658 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14660 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14662 * gst/vaapi/gstvaapidecode.c:
14663 vaapidecode: split out jpeg decoder
14664 Split, as a different element, the JPEG decoder.
14665 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14667 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14669 * gst/vaapi/gstvaapi.c:
14670 * gst/vaapi/gstvaapidecode.c:
14671 * gst/vaapi/gstvaapidecode.h:
14672 vaapidecode: register decoder with internal GType
14673 Don't expose the the vaapidecode GType, instead expose a function
14674 which will register element.
14675 This is the first step to split the decoder by codecs.
14676 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14678 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14680 * gst/vaapi/gstvaapidecode.c:
14681 vaapidecode: remove unused function declaration
14682 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14683 code-style of the other pre-declared functions.
14685 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14687 * docs/plugins/Makefile.am:
14688 build: git ignore gtkdoc generated files
14690 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14693 build: handle git ignore in m4 directory
14695 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14697 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14698 vaapidecoder_h265: plug leak of h265 parsing info
14699 If something goes wrong while parsing, the info object is
14701 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14703 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14705 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14706 vaapidecoder_h264: plug leak of h264 parsing info
14707 If something goes wrong while parsing, the info object is
14709 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14711 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14713 * gst/vaapi/gstvaapipluginutil.c:
14714 plugins: fix gstgl and vaapi memory leaks
14715 1\ Unref gl_display and gl_window as soon they are not needed.
14716 2\ Remove an unneeded display type check, since is handled by
14717 gst_vaapi_created_display_from_handle()
14718 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14719 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14720 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14722 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
14724 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14725 vaapidisplay: Fix uninitialized value error for VA attribute
14726 https://bugzilla.gnome.org/show_bug.cgi?id=763362
14728 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14730 * gst/vaapi/gstvaapidecode.c:
14731 * gst/vaapi/gstvaapiencode.c:
14732 plugins: proxy information from downstream caps
14733 Propagate to upstream the downstream information, such as fps, par, etc.
14734 This will fix several "getcaps" critical warnings in gst-validate.
14735 https://bugzilla.gnome.org/show_bug.cgi?id=763300
14737 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14739 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14740 decoder: vp9: Assign values for profile and bit_depth from frame header
14741 bit_depth field has added only in VA-API 0.39.0, added version check.
14743 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
14746 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14747 https://bugzilla.gnome.org/show_bug.cgi?id=763067
14749 === release 1.7.90 ===
14751 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
14756 * gstreamer-vaapi.doap:
14759 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
14762 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14764 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14766 * gst/vaapi/gstvaapidecode.c:
14767 vaapidecode: intersect with filter in getcaps()
14768 In commit 6034734d I forgot to add the caps filter intersection in the
14769 getcaps() vmethod generating a regression when a capsfilter is set in the
14771 This commit adds the caps filter intersection.
14773 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14775 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14776 Add memset to initialize value for VAEncSliceParameterBufferJPEG
14777 https://bugzilla.gnome.org/show_bug.cgi?id=762850
14779 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
14782 Automatic update of common submodule
14783 From b64f03f to 6f2d209
14785 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14790 build: add m4 directory
14791 Instead of rely on the automatic creation of m4 directory by aclocal, we
14792 already control it. Later we could create our own m4 scripts in order to
14793 unclutter configure.ac
14794 https://bugzilla.gnome.org/show_bug.cgi?id=762528
14796 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14798 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14799 decoder: hevc: Fill dependent slice segment headers while parsing
14800 Copy the data into the dependent slice segment header from the
14801 corresponding independent slice segment header during parsing.
14802 Previously the reference to the "previous" independent header was
14803 held through the parsing phase and then dereferenced during the
14804 decoding phase. This caused all dependent headers to be populated
14805 with the data of the AU's last independent header instead of the
14806 proper corresponding header.
14807 https://bugzilla.gnome.org/show_bug.cgi?id=762352
14809 - Reworded commit message
14811 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14813 * gst/vaapi/gstvaapidecode.c:
14814 vaapidecode: use video decoder getcaps()
14815 The usage of getcaps() vmethod is preferred than to handle manually the sink's
14817 In order to avoid function declarations, this patch moves the class_init()
14818 method to the end of the file.
14820 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14822 * gst/vaapi/gstvaapipluginbase.c:
14823 plugins: remove deprecated code
14824 Since we are only supporting current GStreamer version, since 1.3
14825 gst_buffer_pool_config_add_option() checks if the option to add is
14826 already set. There is no need to do it ourselves.
14828 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14830 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14831 vaapidecoder_h265: fix parsing of NALU aligned data
14832 Don't assume the whole buffer is a single NAL, instead look for the
14833 next start code in case there are multiple NALs per buffer.
14834 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14836 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14838 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14839 vaapidecoder_h264: fix parsing of NALU aligned data
14840 Don't assume the whole buffer is a single NAL, instead look for the
14841 next start code in case there are multiple NALs per buffer.
14842 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14844 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
14846 * gst/vaapi/gstvaapisink.c:
14847 vaapisink: Fix event,pad,structure memory leaks
14848 https://bugzilla.gnome.org/show_bug.cgi?id=762229
14850 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14852 * gst/vaapi/gstvaapipluginbase.c:
14853 Add icamerasrc as dmabuf capable peer element
14854 icamerasrc is another gstreamer plugin using to capture RAW
14855 frames from camera device. It is based on libcamhal library.
14856 There are some properties available to control icamera behavior.
14857 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14858 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14859 https://bugzilla.gnome.org/show_bug.cgi?id=759481
14860 Fixme: This is the similar workaround we done for v4l2src.
14861 The workaround will be removed once we fix #755072
14863 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14865 * gst/vaapi/gstvaapipluginbase.c:
14866 vaapipluginbase: Fix structure memory leak
14867 config structure is not being freed in all cases
14868 https://bugzilla.gnome.org/show_bug.cgi?id=762172
14870 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
14872 * gst/vaapi/gstvaapidecode.c:
14873 vaapidecode: Fix videocodec state memory leak
14874 When state is not NULL and either width/height of video info is 0, then state leaks
14875 https://bugzilla.gnome.org/show_bug.cgi?id=762173
14877 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
14879 * gst/vaapi/gstvaapisink.c:
14880 vaapisink: post message for application for unhandled keyboard/mouse events
14881 Makes (most) keyboard shortcuts work in gst-play-1.0 when
14882 the video window has focus.
14884 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
14886 * gst/vaapi/gstvaapidecode.c:
14887 vaapidecode: Fix capsfeature memory leak
14888 https://bugzilla.gnome.org/show_bug.cgi?id=762116
14890 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
14892 * gst/vaapi/gstvaapisink.c:
14893 vaapisink: Fix capsfeature memory leak
14894 caps feature allocated is not being freeing in some cases
14895 https://bugzilla.gnome.org/show_bug.cgi?id=762111
14897 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
14900 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14901 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14902 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14903 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14904 * gst-libs/gst/vaapi/gstvaapifilter.c:
14905 * gst/vaapi/gstvaapidecodebin.c:
14906 * gst/vaapi/gstvaapipluginutil.c:
14907 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14909 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
14912 configure: Fix setting of extra compiler warning flags
14914 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14916 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14917 libs: fix build error
14918 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14919 functions are used only when libva's API version is greater than 0.36.0
14920 This patch guards those functions completely rather than just their
14921 content. The patch is a continuation of commit 38f8fea4
14922 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14923 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14925 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
14927 * tests/simple-encoder.c:
14928 tests: simple-encoder: fix build error
14929 argument mismatch of gsize with 'long unsigned int'
14930 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14932 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14934 * gst/vaapi/gstvaapisink.c:
14935 vaapisink: Fix wrong caps advertising
14936 The get_caps() should only report the supported formats.
14937 https://bugzilla.gnome.org/show_bug.cgi?id=761147
14939 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14942 Automatic update of common submodule
14943 From e97c9bb to b64f03f
14945 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14947 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14948 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14949 * gst/vaapi/gstvaapi.c:
14950 * gst/vaapi/gstvaapiencode_h264.c:
14951 * gst/vaapi/gstvaapiencode_h265.c:
14952 * gst/vaapi/gstvaapiencode_jpeg.c:
14953 * gst/vaapi/gstvaapiencode_mpeg2.c:
14954 * gst/vaapi/gstvaapiencode_vp8.c:
14955 rename encoders to vaapi{codec}enc
14956 Trying to comply with GStreamer's element names, this patch renames the
14957 encoders using the name format vaapi{codec}enc.
14958 In this way, the plugin documentation is linked correctly.
14959 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14961 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14964 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14965 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14967 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14970 build: remove vp9 parser check
14971 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14972 the check of the parser, as we did for the others.
14973 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14975 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14979 Back to development
14980 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14982 === release 1.6.0 ===
14984 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14989 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14991 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14992 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14993 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14994 libs: fix compiler warnings
14995 After setting the release flags, the compiler warns about a couple
14996 initialized variables.
14997 Also marked a couple of set variables as unused, because they are only
14998 used for assertion.
14999 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15001 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15003 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15004 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15005 * gst/vaapi/gstvaapidecode.c:
15006 * gst/vaapi/gstvaapidecodebin.c:
15007 * gst/vaapi/gstvaapiencode_h264.c:
15008 * gst/vaapi/gstvaapiencode_h265.c:
15009 * gst/vaapi/gstvaapiencode_jpeg.c:
15010 * gst/vaapi/gstvaapiencode_mpeg2.c:
15011 * gst/vaapi/gstvaapiencode_vp8.c:
15012 * gst/vaapi/gstvaapipostproc.c:
15013 * gst/vaapi/gstvaapisink.c:
15014 docs: update plugin documentation
15015 Update all the documentation of elements of the vaapi plugin.
15016 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15018 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15022 * docs/Makefile.am:
15023 * docs/plugins/Makefile.am:
15024 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15025 * docs/plugins/gstreamer-vaapi-plugins.types:
15026 * docs/reference/Makefile.am:
15027 * docs/reference/plugins/Makefile.am:
15028 * docs/reference/plugins/plugins-sections.txt:
15029 * docs/reference/plugins/plugins.types:
15030 * docs/version.entities.in:
15031 resurrect gtk-doc machinery
15032 Our auto-generated documentation has been a bit neglected. This patch replaces
15033 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
15034 plugins, elements and libraries.
15035 This patch also re-enables documentation generation.
15036 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15038 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15044 use gst-common submodule
15045 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
15046 GStreamer common submodule.
15047 The documentation generation has been disable temporarily since it needs a
15048 major rework, which will be done in the following commit.
15049 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15051 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15055 add gst-common submodule
15056 Pointing to branch 1.6
15057 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15059 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15061 * gstreamer-vaapi.doap:
15062 add doap descriptor
15063 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
15064 describe software projects, in particular free and open source software.
15065 The description is used in GStreamer as in many other open source projects.
15066 This patch adds the doap description of this project.
15067 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15069 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15071 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
15072 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15073 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15074 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15075 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15076 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
15077 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15078 * gst-libs/gst/vaapi/gstvaapiimage.c:
15079 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
15080 * gst-libs/gst/vaapi/gstvaapipixmap.c:
15081 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15082 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15083 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
15084 libs: humongous code style fix
15085 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
15086 umbrella, we need to comply with the project's code style. This meant to
15087 change a lot of code.
15088 It was decided to use a single massive patch to update the code style.
15089 I would like to apologize with the original developers of this code because of
15090 the history breakage.
15091 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15093 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15095 * gst-libs/gst/vaapi/gstvaapicontext.c:
15096 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15097 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
15098 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15099 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15100 * gst/vaapi/gstvaapivideomemory.c:
15101 libs: small refactors to enhance the code style
15102 As gst-indent generated ugly code in these cases, this patch changes the used
15103 idiomatic into other one.
15104 No functional changes were introduced.
15105 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15107 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15109 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15110 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15111 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
15112 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15113 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15114 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15115 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15116 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15117 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15118 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15119 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15120 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15121 * gst-libs/gst/vaapi/gstvaapifilter.c:
15122 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15123 * gst-libs/gst/vaapi/gstvaapisurface.c:
15124 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15125 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
15126 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15127 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15128 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
15129 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15130 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15131 libs: small code style fixes
15132 This a set of small code style fixes detected as-is by gst-indent.
15133 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15135 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15137 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15138 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15139 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15140 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15141 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15142 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15143 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15144 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15145 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15146 libs: trivial comment style fixes
15147 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15149 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15151 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15152 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15153 libs: avoid gst-indent mess up
15154 Guard pieces of code to avoid gst-ident to mess up the following code.
15155 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15157 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15159 * gst/vaapi/gstvaapidecode.c:
15160 * gst/vaapi/gstvaapidecodebin.c:
15161 * gst/vaapi/gstvaapipluginutil.c:
15162 * gst/vaapi/gstvaapisink.c:
15163 * gst/vaapi/gstvaapivideomemory.c:
15164 plugins: fix code style
15165 Minor code style changes by executing gst-indent in gst/vaapi directory.
15166 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15168 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15170 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15171 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15172 Fix some more compiler warning
15173 Two (false) compiler warnings about variables potentially
15174 being used uninitialized, and one about a variable being
15176 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15178 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15180 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15181 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15182 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15183 * gst-libs/gst/vaapi/gstvaapifilter.c:
15184 * gst/vaapi/gstvaapidecode.c:
15185 * gst/vaapi/gstvaapipluginbase.c:
15186 * gst/vaapi/gstvaapipluginutil.c:
15187 * gst/vaapi/gstvaapipostproc.c:
15188 * tests/simple-encoder.c:
15189 * tests/test-filter.c:
15190 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15191 Declare variables at the beginning of a code block, which
15192 is how it's done in GStreamer.
15193 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15195 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15197 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15198 decoder: vp9: Fix crop rectangle setting
15199 Align with software vp9dec behaviour: Add crop rectangle
15200 only if display_width/display_height is less than the
15201 frame_hdr->width/frame_hdr->height
15203 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15205 * gst/vaapi/gstvaapidecode.c:
15206 vaapidecode: Fix renegotiation for resolution change
15207 Always renegotiate the pool if the immediate frame which going
15208 to be pushed has a different un-cropped resolution than the already
15211 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15213 * gst/vaapi/gstvaapipluginbase.h:
15214 plugins: use the same pre-processor macro
15215 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15216 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15217 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15218 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15219 in the header file.
15220 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15222 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15224 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15225 decoder: update a deprecated function
15226 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15227 deprecated since GStreamer 1.0.
15228 This patch replace it with gst_adapter_prev_pts()
15229 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15231 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15234 build: honor configure's cache
15235 The user might enable --config-cache when calling configure script. If so, our
15236 configuration variables will not be correctly calculated.
15237 This patch extracts the value of our variables either from the cache or from
15238 the operation result.
15239 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15241 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15244 build: use common version variables
15245 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15247 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15250 build: hard-code an unneeded macro
15251 That macro is required for EGL's dynamic module loading, but since
15252 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15253 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15254 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15256 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15259 build: refactorization of dependency tracking
15260 This patch tries to avoid branching in configure.ac using a more functional
15261 approach in macros usage.
15262 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15264 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15267 build: check for OpenGL either GLX or EGL are requested
15268 Refactor some code in configure.ac to centralize $enable_opengl definition.
15269 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15271 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15274 build: indent and add square braces
15275 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15277 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15280 build: upgrade autotools version dependency
15281 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15283 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15286 build: enhance string comparisons
15287 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15288 the string is empty or undefined.
15289 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15291 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15294 build: remove unused variables
15295 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15297 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15300 build: remove check for old version of gstreamer
15301 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15303 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15306 build: remove GStreamer's parsers checks
15307 This patch removes almost all the parsers check since they are already in place,
15308 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15309 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15311 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15314 * gst/vaapi/Makefile.am:
15315 build: add gstreamer-pbutils dependency
15316 This dependency was added in gstvaapidecodebin with the call
15317 gst_missing_element_message_new().
15318 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15320 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15323 build: fix variable declaration
15324 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15326 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15328 * gst-libs/gst/vaapi/Makefile.am:
15329 build: fix when HEVC decoder is disabled
15330 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15332 The encoder needs functions that are only available when the decoder is
15334 This patch moves the utils functions into the generic sources, such as the
15336 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15338 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15340 * gst/vaapi/Makefile.am:
15341 build: remove unused EGL specific sources
15342 These Makefile variables are not used at all.
15343 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15345 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15347 * gst/vaapi/Makefile.am:
15348 build: remove check for GStreamer 1.2
15349 Since we are working for current stable GStreamer 1.6
15350 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15352 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15354 * gst/vaapi/gstvaapiparse.h:
15355 Remove more video parser crufts
15356 This header is not used anymore since it declares parsers that are
15357 already in GStreamer 1.6
15358 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15360 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15363 * docs/reference/Makefile.am:
15364 * docs/reference/libs/Makefile.am:
15365 * docs/reference/libs/libs-docs.xml.in:
15366 * docs/reference/libs/libs-overrides.txt:
15367 * docs/reference/libs/libs-sections.txt:
15368 docs: remove library documentation which is non-public now
15369 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15371 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15375 * debian.upstream/Makefile.am:
15376 * debian.upstream/changelog.in:
15377 * debian.upstream/compat:
15378 * debian.upstream/control.in:
15379 * debian.upstream/copyright:
15380 * debian.upstream/gstreamer-vaapi-doc.install.in:
15381 * debian.upstream/gstreamer-vaapi.install.in:
15382 * debian.upstream/rules:
15383 Remove debian.upstream packaging
15384 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15386 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15388 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15389 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15390 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15391 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15392 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15393 * gst/vaapi/gstcompat.h:
15394 * gst/vaapi/gstvaapi.c:
15395 * gst/vaapi/gstvaapidecode.c:
15396 * gst/vaapi/gstvaapiencode.c:
15397 * gst/vaapi/gstvaapipluginbase.c:
15398 * gst/vaapi/gstvaapipluginbase.h:
15399 * gst/vaapi/gstvaapipluginutil.c:
15400 * gst/vaapi/gstvaapisink.c:
15401 Remove old gst version guards
15402 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15403 all the old GStreamer version guards.
15404 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15406 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15408 * gst/vaapi/gstvaapiparse.c:
15409 Remove video parser crufts
15410 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15412 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15414 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15416 * docs/reference/libs/Makefile.am:
15417 * docs/reference/plugins/Makefile.am:
15418 * gst-libs/gst/vaapi/Makefile.am:
15419 * gst/vaapi/Makefile.am:
15420 * tests/Makefile.am:
15421 libs: remove versioning
15422 Since we don't install libraries anymore, it makes no sense to keep
15423 versioning them according to the gstreamer's version.
15424 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15426 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15429 * debian.upstream/Makefile.am:
15430 * debian.upstream/control.in:
15431 * debian.upstream/libgstvaapi-dev.install.in:
15432 * debian.upstream/libgstvaapi-drm.install.in:
15433 * debian.upstream/libgstvaapi-glx.install.in:
15434 * debian.upstream/libgstvaapi-wayland.install.in:
15435 * debian.upstream/libgstvaapi-x11.install.in:
15436 * debian.upstream/libgstvaapi.install.in:
15437 * gst-libs/gst/vaapi/Makefile.am:
15438 * tests/Makefile.am:
15439 libs: make libraries no installables
15440 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15442 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15444 * debian.upstream/libgstvaapi-dev.install.in:
15445 * gst-libs/gst/vaapi/Makefile.am:
15446 Do not install libgstvaapi headers
15447 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15449 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15453 * patches/Makefile.am:
15454 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15455 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15456 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15457 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15458 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15459 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15460 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15461 * patches/videoparsers/Makefile.am:
15462 * patches/videoparsers/series.frag:
15463 Remove videoparser patches
15465 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15469 * debian.upstream/libgstvaapi-dev.install.in:
15470 * pkgconfig/Makefile.am:
15471 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15472 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15473 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15474 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15475 * pkgconfig/gstreamer-vaapi.pc.in:
15476 Remove pkg-config files
15477 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15479 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15485 * ext/codecparsers:
15486 * gst-libs/gst/Makefile.am:
15487 * gst-libs/gst/codecparsers/Makefile.am:
15488 * gst-libs/gst/vaapi/Makefile.am:
15489 * gst/vaapi/Makefile.am:
15490 Remove codecparsers submodule
15491 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15493 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15498 * debian.upstream/libgstvaapi.install.in:
15500 * ext/libvpx/Makefile.am:
15501 * ext/libvpx/gstlibvpx.c:
15502 * ext/libvpx/gstlibvpx.h:
15503 * ext/libvpx/libgstcodecparsers_vpx.vers:
15504 * ext/libvpx/sources.frag:
15505 * ext/libvpx/upstream:
15506 * gst-libs/gst/codecparsers/Makefile.am:
15507 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15508 Remove libvpx submodule
15509 We will be using upstream codecparsers always.
15510 No more internal libvpx !
15512 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15515 build: fix check for GstJpegParser
15516 Right now the local JPEG parser is always compiled because the check for the
15517 upstreamed version is broken: it looks for an non existent symbol:
15519 This patch changes that check for< GstJpegFrameHdr.
15520 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15522 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15524 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15525 wayland: free the frame in frame_release_callback()
15526 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15527 decouple wl_buffer from frame).
15528 Otherwise the frame may be overwritten while it is still used by the
15530 The frame done callback (frame_done_callback()) is called, when the
15531 compositor is done processing the frame and hands it to the hardware.
15532 The buffer release callback (frame_release_callback()) is called when the
15533 buffer memory is no longer used.
15534 This can be quite some time later: E.g. if weston (with the DRM backend)
15535 puts the buffer on a hardware plane, then then buffer release callback is
15536 called when the kernel is done with the buffer. This is usually when the
15537 next frame is shown, so most likely after the frame done callback for the
15539 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15540 destroy()" the mentioned possible leak should no longer be a problem, so
15541 reverting this change should cause no leaking buffers.
15542 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15543 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15544 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15546 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15548 * gst/vaapi/gstvaapipostproc.c:
15549 vaapipostproc: check ANY caps at transform_caps()
15550 When transforming downstream caps we should check for ANY caps from peer pad,
15551 otherwise we get a segmentation fault.
15552 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15553 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15555 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15557 * gst/vaapi/gstvaapisink.c:
15558 vaapisink: ignore frame if its upload failed
15559 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15560 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15561 ignored by the vaapisink, leading to a segmentation fault.
15562 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15563 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15564 segmentation fault, but doing and effort to continue rendering. This is
15565 the same behavior of ximagesink.
15566 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15567 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15569 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15572 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15573 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15575 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15577 * gst-libs/gst/vaapi/gstvaapicontext.c:
15578 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15579 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15580 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15581 Add 10 HEVC 10 bit decoding support
15582 Only supporting vaapidecode ! vaapisink combination for now.
15583 Missing dependencies:
15584 1: No support for P010 video format in GStreamer
15585 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15586 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15587 through GstVideoMeta.
15588 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15589 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15590 of the surfaces is implementation (driver) defined, which is P010.
15592 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15594 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15595 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15596 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15597 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15598 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15599 chroam type and dimensions. The underlying format of the surfaces is
15600 implementation (driver) defined.
15602 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15604 * gst-libs/gst/vaapi/gstvaapisurface.h:
15605 * gst-libs/gst/vaapi/gstvaapiutils.c:
15606 Add definitions for YUV420 with more than 8 bits per channel
15608 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15610 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15611 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15613 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15616 Bump version for development
15618 === release 0.7.0 ===
15620 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15625 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15630 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15635 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15640 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15642 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15643 texture: detect GL version and use the proper API
15644 When receiving the texture from the application or the video sink, we must
15645 know it size and border. To query the texture the API has changed according to
15646 the OpenGL version used in the GL context of the application/vsink.
15647 This patch checks the current context API type and queries the texture
15648 according to this detected API.
15649 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15650 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15652 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15654 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15655 texture: check for expected target and format
15656 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15657 formats GL_RGBA or GL_BGRA.
15658 This patch adds a debugging verification of those values.
15659 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15660 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15662 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15664 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15665 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15666 libs: add gl3_bind_texture_2d()
15667 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15668 needed. In particular, the Intel's Mesa implementation complains if it is
15670 This patch add a new binding function for 2D textures, without enabling
15671 gl3_bind_texture_2d()[2].
15672 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15673 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
15674 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15675 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15677 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15679 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15680 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15681 libs: add gl_get_current_api()
15682 In order to know which OpenGL API use, we must detect the API type of current
15683 context. This patch adds the function gl_get_current_api() which returns the
15685 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15687 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15688 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15690 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15693 * gst-libs/gst/vaapi/Makefile.am:
15694 build: Add gmodule dependency for libgstvaapi_egl
15695 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15697 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15699 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15700 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15701 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15702 * patches/videoparsers/series.frag:
15703 patches/videoparsers: h264: Disable passthorugh mode enabling
15704 This is a quick fix for regression introduced by the upstream
15705 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15706 The patch is disabling the passthrough mode, otherwise it will
15707 break multi-layer mvc stream parsing.
15708 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15710 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15712 * gst/vaapi/Makefile.am:
15713 * patches/videoparsers/Makefile.am:
15714 * patches/videoparsers/series.frag:
15715 build: add gsth265parse patches conditionally
15716 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15717 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15719 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15720 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15722 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15724 * gst/vaapi/Makefile.am:
15725 build: declare correctly parse lib built files
15726 This is a continuation of commit fc8a0d12
15727 When declaring BUILT_SOURCES, those files should not be distributed. This
15728 patch avoids the distribution of the generated source code.
15729 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15730 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15732 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15734 * ext/libvpx/sources.frag:
15735 build: libvpx: Add missing source file
15737 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15739 * gst/vaapi/gstvaapipostproc.c:
15740 vaapipostproc: Correctly detect the caps change
15741 This is a quick fix for regression introuduced by the
15742 commit 757833230bc73b8e3b4e31649e4618ba802bea51
15743 With out this, the gst_vaapipostproc_create() will
15745 https://bugzilla.gnome.org/show_bug.cgi?id=758543
15747 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15749 * ext/libvpx/Makefile.am:
15750 * ext/libvpx/sources.frag:
15751 build: libvpx: update the sources lists
15752 `make dist` broke since commit f06798 (libvpx: Update the submodule to
15753 libvpx-1.4.0) because the sources.frag does not contain all the module
15755 This patch updates thoroughly the sources.
15756 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15757 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15759 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15761 * gst/vaapi/gstvaapipostproc.c:
15762 vaapipostproc: don't set caps change at first set
15763 When the source caps change, the filter is destroyed and recreated.
15764 Nonetheless, this happens every time the vaapipostproc starts, since the caps
15765 change detection algorithm does not take in consideration when the caps are
15767 This patch intents to be an optimization, to avoid a useless filter
15768 destroy-creation cycle when the sources caps are set for first time.
15769 The new helper function video_info_update() is a refactorization to avoid
15771 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15772 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15774 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15776 * gst/vaapi/gstvaapipostproc.c:
15777 vaapipostproc: params video_info_changed() callers
15778 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15779 swapped the the order. This didn't raise problems since the comparison of both
15780 structures were not affected by its semantics.
15781 But still it would be better to fix this to keep the coherence of the code.
15782 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15783 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15785 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15787 * gst/vaapi/Makefile.am:
15788 build: declare real built files
15789 When runnig the `make dist` target from a clean tree, it fails because
15790 if could not find the copied files from codecparsers submodule.
15791 They weren't copied because they weren't declared as built sources.
15792 This patch removes the stamp mechanism and use the actual file list to copy
15793 as the built sources. Also it fixes the duplication of the parser files.
15794 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15795 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15797 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15799 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15800 decoder: vp9: Fix last/golden/altref frame index setting
15801 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15802 based on what ever reference frame indices encoded in frame header.
15804 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15806 * debian.upstream/rules:
15807 debian: remove custom parallel compilation
15808 In order to build a debian package with upstream source, the user should
15811 cp -a debian.upstream debian
15812 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15813 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15814 way to make a parallel build (-j8 in this case).
15815 This commit removes the script in debian/rules that detects the number of
15816 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15817 official in debian.
15818 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15819 https://bugzilla.gnome.org/show_bug.cgi?id=754087
15821 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15823 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15824 decoder: vp9: Fix PTS calculation of cloned frames
15826 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15828 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15829 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15830 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15831 gstvaapidecoder base calss is reponsible for handling those frames later on.
15832 No need for explicit verification of frame header's show_frame in order to
15833 do picture outputing.
15835 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15837 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15838 decoder: vp9: Fix ref picture update while doing repeat frame
15839 Don't try to do frame decoding and reference picture update
15840 while receiving a vp9 frame having show_existing_frame flag
15843 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15845 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15846 decoder: vp9: Add repeat-frame display handling
15847 If vp9 frame header come up with show_existing_frame flag set,
15848 we should duplicate the existing decoded frame as current frame to
15851 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15853 * gst/vaapi/gstvaapidecodebin.c:
15854 vaapidecodebin: add me as element co-author
15855 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15856 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15858 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15860 * gst/vaapi/gstvaapidecodebin.c:
15861 vaapidecodebin: try to get display from decoder
15862 Rather than create a dummy display, if none has propagated as a context, we
15863 should try to get the one from vaapidecode.
15864 As the bin is already in READY state, the vaapidecode should be also in that
15865 state. That means that the contexts have been negotiated, and it should have
15867 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15868 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15870 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15872 * gst/vaapi/gstvaapidecodebin.c:
15873 * gst/vaapi/gstvaapidecodebin.h:
15874 vaapidecodebin: add postprocessor dynamically
15875 The former approach to left the bin unfinished has some problems: the context
15876 cannot be shared because the vaapidecode is unlinked in many cases, leading to
15877 creating a VADisplay twice.
15878 Initially the bin is fully functional, constructed as
15879 (-----------------------------------)
15881 | (-------------) (-------) |
15882 |<--| vaapidecode |--->| queue |--->|
15883 | (-------------) (-------) |
15884 (-----------------------------------)
15885 When the context is shared and the VADisplay has VPP capabilities, before
15886 changing to READY state, the bin is reconfigured dynamically, adding the
15887 vaapipostproc element afeter the queue:
15888 (--------------------------------------------------------)
15890 | (-------------) (-------) (---------------) |
15891 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15892 | (-------------) (-------) (---------------) |
15893 (--------------------------------------------------------)
15894 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15895 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15897 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15899 * gst/vaapi/gstvaapidecodebin.c:
15900 vaapidecodebin: delay the bin configuration
15901 Delay the bin configuration until changing to READY state. This is because we
15902 should add the vaapipostproc element until the vaapidecode has emitted the
15903 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15905 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15906 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15908 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15910 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15911 decoder: vp9: Add crop rectangle support.
15912 Set crop rectange if:
15913 There is display_width and display_height which is different from actual width/height
15915 The changed resolution is less than the actual configured dimension of surfaces
15917 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15919 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15920 decoder: vp9: Fix the context and surface pool reset for multi resolution video
15921 Unlike other decoders, vp9 decoder doesn't need to reset the
15922 whole context and surfaces for each resolution change. Context
15923 reset only needed if resolution of any frame is greater than
15924 what actullay configured. There are streams where a bigger
15925 resolution set in ivf header or webm header but actual resolution
15926 of all frames are less. Also it is possible to have inter-prediction
15927 between these multi resolution frames.
15929 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15931 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15932 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15933 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15934 Preliminary fix for supproting multi resolution video decode.
15936 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15938 * gst/vaapi/gstvaapidecode.c:
15939 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15941 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15943 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15944 decoder: vp9: Set lossless flag from frame header
15946 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15948 * ext/codecparsers:
15949 codecparsers: Update to gst-vaapi-branch d9f25
15950 d9f2527: codecparsers: vp9: Set lossless flag in frame header
15952 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15954 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15955 libs: vp9: remove unused symbols
15956 clang complains about a couple variables and one label which were not
15957 used. This patch removes them.
15958 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15959 https://bugzilla.gnome.org/show_bug.cgi?id=757958
15961 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15963 * ext/codecparsers:
15964 codecparsers: Update to gst-vaapi-branch da251bb
15965 da251bb: codecparsers: vp9: Optimize the memory allocation
15966 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15968 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15970 * gst/vaapi/gstvaapipluginbase.c:
15971 * gst/vaapi/gstvaapipluginbase.h:
15972 plugin: guard pointers to pad query functions
15973 Since gstreamer 1.4 is not required to have pad query functions if the query
15975 This patch guards out the pad query functions for gstreamer < 1.4
15976 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15977 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15979 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15981 * gst/vaapi/gstvaapiencode.c:
15982 vaapiencode: use pad query vmethods
15983 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15984 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15985 while keeps support for previous versions of gstreamer.
15986 This patch is relevant since GstVideoEncoder takes care of other queries that
15987 we are currently ignoring.
15988 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15989 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15991 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15993 * gst/vaapi/gstvaapidecode.c:
15994 vaapidecode: return pad's template caps if no display
15995 A caps query can occur before the element has a display. In that case, the
15996 element can return its pad's template. But when the element already has a
15997 display, and the caps probe fails, the element shall return an empty caps, so
15998 the auto-plug could try with another decoder.
15999 If the element has a display and the caps probe works, then the computed caps
16000 should be returned.
16001 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16002 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16004 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16006 * gst/vaapi/gstvaapidecode.c:
16007 * gst/vaapi/gstvaapisink.c:
16008 plugins: don't create display at caps query
16009 Caps query can happen before the element has a bus. The display creation should
16010 be should occur on the context negotiation, when the bus is already configured.
16011 Then at caps query no display should be created.
16012 Instead of force the display creation, we graciously fail the allowed_caps()
16014 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
16015 basetransform descendant, seems to be not affected by this, nor the encoders.
16016 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16017 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16019 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16021 * gst/vaapi/gstvaapidecode.c:
16022 * gst/vaapi/gstvaapiencode.c:
16023 * gst/vaapi/gstvaapipluginutil.c:
16024 * gst/vaapi/gstvaapipluginutil.h:
16025 * gst/vaapi/gstvaapipostproc.c:
16026 * gst/vaapi/gstvaapisink.c:
16027 plugins: fix context query handling
16028 The current context query handling design is flawed: the function
16029 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
16030 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
16031 pad query function should handle differently each case.
16032 This patch changes the gst_vaapi_reply_to_query() for
16033 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
16034 to match the correct context query handling.
16035 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16036 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16038 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16040 * gst/vaapi/gstvaapipluginutil.c:
16041 plugin: don't lose previous context at query
16042 When processing the GST_CONTEXT_QUERY we should not lose the previous
16043 context in the query, we should only add our display structure.
16044 This patch copies the old context, if it is there, and stamp our display on
16045 it. Otherwise, a new context is created.
16046 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16047 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16049 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16051 * gst/vaapi/gstvaapivideocontext.c:
16052 * gst/vaapi/gstvaapivideocontext.h:
16053 vaapivideocontext: add gst_vaapi_video_context_set_display()
16054 This function set the display to an already created context. This function is
16055 going to be used later.
16056 Also, gst_vaapi_video_context_new_with_display() now uses this function.
16057 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16058 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16060 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16062 * gst/vaapi/gstvaapipluginutil.c:
16063 * gst/vaapi/gstvaapivideocontext.c:
16064 * gst/vaapi/gstvaapivideocontext.h:
16065 plugins: check if display is set in sync
16066 Since the context messages are sync'ed, the display assignation happens in the
16067 same thread, hence we can know if the display was found or not as soon we call
16069 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
16070 as a new parameter, the address of the plugin's display, and reports back if
16071 the display was found and set.
16072 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16073 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16075 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16077 * gst/vaapi/gstvaapipluginutil.c:
16078 * gst/vaapi/gstvaapivideocontext.c:
16079 plugins: set display through context
16080 Instead of setting the display to the plugin directly after its creation, do
16081 it through the gstreamer's context mechanism, avoiding double assignations.
16082 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16083 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16085 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16087 * gst/vaapi/gstvaapivideocontext.c:
16088 vaapivideocontext: rename context structure
16089 The context structure is named "display" which is too generic. The contrary
16090 happens, for example, with GstGL, what uses the same name as the context, and
16091 its logs make more sense.
16092 This patch renames the context structure with the same name as the
16093 context, thus GST_PTR_FORMAT can pretty print it.
16094 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16096 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16098 * gst/vaapi/gstvaapivideocontext.c:
16099 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
16100 First, refactorized run_context_query() into _gst_context_run_query(), adding
16101 a new parameter: the pad direction, in order to simplify the code.
16102 Second, added a new helper function: _gst_context_query(), which is a generic
16103 context query function. It isolates the operation of running the query and
16104 sets the context if found, also it enhances the logs.
16105 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
16106 future this helper function will be merged into the core libraries of
16108 Finally, gst_vaapi_video_context_prepare() was rewritten to use
16109 _gst_context_query().
16110 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16111 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16113 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16115 * gst/vaapi/gstvaapivideocontext.c:
16116 vaapivideocontext: refactor context category debug
16117 Refactor the extraction GST_CAT_CONTEXT logging using a only once
16118 initializator, so we could get the debug category from different code
16120 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16121 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16123 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16125 * gst/vaapi/gstvaapivideocontext.c:
16126 gstvaapivideocontext: fix indentation
16127 gst-indent does not handle correctly some expression like function
16128 declaration with attributes, breaking the following expressions.
16129 This patch makes gst-indent to ignore the attributed function
16130 declartion so the followed function definition is not mangled, such
16131 as happened in commit b4154a
16132 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16133 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16135 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16137 * gst/vaapi/gstvaapipluginbase.c:
16138 plugin: chain up set_context() vmethod
16139 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16140 the parent class in order to broadcast all its contexts when the element
16141 is added into a bin:
16142 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16143 There is no need to guard the call, because before GStreamer 1.7, the
16144 set_context() vmethod was NULL in the element class, hence the conditional
16146 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16147 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16149 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16151 * tests/simple-encoder.c:
16152 tests: simple-encoder: remove dead code
16153 The caps creation for codec state configuration is not used. Let's remove it.
16154 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16156 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16158 * gst/vaapi/gstvaapidecodebin.c:
16159 vaapidecodebin: fix a leaked display instance
16160 The display returned by gst_vaapi_video_context_get_display() increments the
16161 references. Thus, we have to unref the returned display.
16162 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16163 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16165 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16167 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16168 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16169 libs: remove unneeded headers
16170 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16171 required to include them in the header. It is not also required to include
16172 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16173 exposes their structures (e.g. GLXPixmap).
16174 Nonetheless, glext.h neither glxext.h are required to include, they are
16175 already included conditionally by gl.h and glx.h, respectively.
16176 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16177 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16179 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16181 * ext/codecparsers:
16182 codecparsers: Update to gst-vaapi-branch 0ea6792
16183 0ea6792: codecparsers: vp9: Add header comments
16184 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16186 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16188 * gst/vaapi/gstvaapidecode.c:
16189 VP9: plugins: Add VP9 decoder
16191 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16193 * gst-libs/gst/vaapi/Makefile.am:
16194 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16195 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16196 VP9: libgstvaapi: Add VP9 decoder
16198 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16200 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16201 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16202 VP9: gstvaapiprofile: Add profile definitions
16204 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16207 VP9: build: Check availability of vp9 decoder APIs
16209 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16213 * gst-libs/gst/codecparsers/Makefile.am:
16214 VP9: Allow building vp9 codecparser internally
16216 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16218 * ext/codecparsers:
16219 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16220 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16221 e7d9217: codecparser: h264: initialize parsing structures
16222 403d400: codecparser: h265: initialize parsing structures
16224 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16227 configure.ac: don't use an undefined variable
16228 If the environment lacks of gstreamer development packages, this error will
16229 be reported to the user: "gstreamer- was not found"
16230 This is because we are using an undefined variable in the printed message. The
16231 fix simple changes the variable for the hard-coded string "1.0".
16232 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16233 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16235 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16237 * gst/vaapi/gstvaapidecode.c:
16238 vaapidecode: relax guards for memory:VASurface capsfeature
16239 Though caps features are supported since GStreamer 1.2, there are some
16240 issues with the features caps negotiation in that version. Nonetheless,
16241 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16242 feature negotiation is relaxed for GStreamer 1.4.
16243 The guard is the same as in vaapisink's caps template.
16244 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16245 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16247 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16249 * gst/vaapi/gstvaapidecode.c:
16250 vaapidecode: decide allocation doesn't update srccaps
16251 The received caps query will bring the already negotiated caps, so they are
16252 not expected to change.
16253 This patch removes this verification which is dead code path.
16254 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16255 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16257 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16259 * gst/vaapi/gstvaapidecode.c:
16260 * gst/vaapi/gstvaapipluginutil.c:
16261 * gst/vaapi/gstvaapipluginutil.h:
16262 vaapidecode: use caps to check the features
16263 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16264 expensive, we check the caps from the allocation query, to check the
16265 negotiated feature.
16266 In order to do this verification a new utility function has been implemented:
16267 gst_vaapi_caps_feature_contains().
16268 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16269 have been refactorized.
16270 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16271 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16273 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16275 * gst/vaapi/gstvaapidecode.c:
16276 vaapidecode: set format before decide allocation
16277 There is a regression from commit 3d8e5e. It was expected the buffer pool
16278 allocation occur before the caps negotiation, but it is not.
16279 This patch fixes this regression: the caps negotiation is done regardless the
16280 allocation query from downstream.
16281 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16282 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16284 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16287 build: check for patch and fix yasm check
16288 Add configure checking for GNU patch tools and fixed configure
16289 checking YASM to correct sequence.
16290 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16291 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16293 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16295 * ext/libvpx/Makefile.am:
16296 build: Remove disable-md5 option for libvpx build
16297 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16298 has been removed in 1.4.0.
16300 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16302 * ext/libvpx/upstream:
16303 libvpx: Update the submodule to libvpx-1.4.0
16304 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16306 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16309 configure: mark support for GStreamer 1.2 as obsolete.
16310 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16311 Our goal is to support the last two stable versions of GStreamer which
16312 are 1.4 and 1.6 at the moment.
16313 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16314 release and will get rid of those in 0.8.
16316 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16318 * gst/vaapi/gstvaapidecode.c:
16319 vaapidecode: Fix buffer copy assertion
16320 Don't try to copy the NULL buffer-codec_data.
16322 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16325 build: allow builds against GStreamer 1.7.x
16326 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16328 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16330 * gst/vaapi/gstcompat.h:
16331 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16332 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16333 add an implementation if gstreamer-vaapi is linked to previous versions.
16334 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16336 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16338 * gst/vaapi/gstvaapidecode.c:
16339 vaapidecode: simplify copy of GstVideoCodecState
16340 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16342 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16344 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16345 * patches/videoparsers/series.frag:
16346 patches/videoparsers: h265parser: more API fences
16347 Add more API fences according with its version and refresh the patch.
16348 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16349 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16351 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16353 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16354 * patches/videoparsers/series.frag:
16355 patches/videoparsers: h265parser: rename patch keeping number
16356 Refresh the patch and rename it in order to keep the patch number.
16357 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16358 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16360 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16362 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16363 patches/videoparsers: h264parser: more API fences and refresh
16364 Add more API fences according with its version and refresh the patch.
16365 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16366 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16368 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16370 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16371 * patches/videoparsers/series.frag:
16372 patches/videoparsers: h264parser: fix description and refresh
16373 Fix a typo in the patch description and refresh it in order to avoid the
16374 creation of .orig files and break the distcheck target.
16375 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16376 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16378 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16380 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16381 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16382 patches/videoparsers: h264parser: refresh patches
16383 In order to avoid the creation of .orig files and break the distcheck target.
16384 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16385 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16387 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16389 * gst/vaapi/Makefile.am:
16390 build: link libgstvaapi_parse against codec parser
16391 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16392 when running configure.
16393 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16394 need it if builtin codec parsers are disabled.
16395 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16396 compilation. If builtin codec parsers are enable, this variable is null, so it
16397 should work using libgstvaapi, as normal.
16398 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16399 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16401 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16404 build: verify for H264 MVC and H265 SPS
16405 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16406 the required symbols for those were added in GStreamer 1.5
16407 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16408 parsers, the compilation fails, because the lack of those symbols.
16409 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16410 they do not, the specific built in codec parsers are enabled and used.
16411 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16412 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16414 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16416 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16417 decoder: h264: initialize PPS's slice_group_id
16418 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16419 so it contains random data.
16420 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16421 pointer uninitialized, leading to a segmentation fault when the memory is
16423 This patch prevents this by initializing the slice_group_id before the PPS
16425 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16426 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16428 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16430 * gst/vaapi/gstvaapidecode.c:
16431 vaapidecode: proper numerator and denominator for forced latency framerate
16432 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16434 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16436 * ext/codecparsers:
16437 codecparsers: Update to gst-vaapi-branch commit f9e284b
16438 dae1a84: h264parse/h265parse: Fix negotiation crash
16439 45a9f8a: codecparsers: h265 : Fix default scaling list values
16440 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16441 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16443 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16445 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16446 decoder: hevc: Don't flush dpb for EOS/EOB nal
16447 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16448 the dpb_add() itself will handle the flusing(if needed) of dpb
16449 for end of sequence and end of bitstream.
16450 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16452 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16454 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16455 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16456 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16457 just after the PicLatencyCnt setting of existing dpb frames.
16458 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16460 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16462 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16463 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16464 This fix is based on the V3 vesion of spec which was missing in older versions.
16465 When the current picture has PicOutputFlag equal to 1, for each picture in the
16466 DPB that is marked as "needed for output" and follows the current picture in output order,
16467 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16468 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16470 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16472 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16473 decoder: h265: Fix indentation
16475 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16477 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16478 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16479 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16480 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16481 * gst/vaapi/gstvaapidecode.c:
16482 * gst/vaapi/gstvaapipluginutil.c:
16483 multiview: initial attempt at stereo/multiview support
16484 Add support for marking caps and buffers for multiview or
16485 stereoscopic output.
16486 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16488 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16490 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16491 decoder: hevc: remove unused functions
16492 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16493 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16495 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16497 * gst/vaapi/gstvaapidecode.c:
16498 vaapidecode: remove (another) unused variable
16499 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16501 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16503 * gst/vaapi/gstvaapidecode.c:
16504 vaapidecode: remove unused variable
16505 Thus silence the compilation warnings.
16507 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16509 * gst/vaapi/gstvaapidecode.c:
16510 vaapidecode: compilation fix
16511 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16512 compilation where the toolchain uses restrictive flags as clang.
16513 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16515 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16517 * gst/vaapi/gstvaapidecode.c:
16518 vaapidecode: renegotiate if caps are not equal
16519 The use of gst_caps_is_always_compatible() for this optimization may lead to
16520 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16521 if it is required a re-negotiation.
16522 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16523 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16525 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16527 * gst/vaapi/gstvaapidecode.c:
16528 * gst/vaapi/gstvaapidecode.h:
16529 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16530 Delaying the pool re-negotiation untill we push all decoded (and queued)
16531 frames downstream. Otherwise for the multi-resolution videos, the
16532 GstVideoVideoMemory will be having wrong resolution and which leads
16533 to nasty behaviours, especially when using software renderers.
16534 sample media file: RAP_B_Bossen_1.bin
16536 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16537 get the final resoultion 416x240.
16538 Starting from 25 th frame, the resolution will change to 416x240. But parser
16539 elements won't report this since the effective croped resolution is same in
16540 both cases. Here the core libgstvaapi will detect this through it's internal
16541 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16542 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16543 immediately, this will not sync with the resolution of already decoded and queued
16544 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16545 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16546 untill we push all decoded frames downstream.
16547 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16549 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16551 * gst/vaapi/gstvaapidecode.c:
16552 vaapidecode: Always keep a copy of input codec state
16553 Currently we are sharing the input GstVideoCodecState with
16554 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16555 each caps change. This is troublesome in many cases, for eg: if
16556 resoultion changes with in a singe stream. Because, when ever there
16557 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16558 fields with new resolution, but since we are using the same codecstate (ref)
16559 in gstvaapidecode.c, the caps check for input caps change will always fail.
16560 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16562 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16564 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16565 decoder: hevc: Fix the scaling list scan order
16566 The default scan order of scaling lists are up-right-diagonal
16567 as per hevc specification. Use the newly implemented
16568 uprightdiagonal_to_raster conversion codecparser APIs to
16569 get the the scaling_list values in raster order, which is
16570 what the VA intel driver requires.
16572 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16574 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16575 decoder: hevc: sync with the codecparser changes
16576 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16577 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16579 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16581 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16582 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16584 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16586 * ext/codecparsers:
16587 codecparsers: Update to gst-vaapi-branch commit 69550f1
16588 c207c6d: codecparsers: h265: Fix tile row and column parsing
16589 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16590 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16591 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16592 2f0932b: h264parse: Clear SPS info after processing
16593 f57d6b0: videoparsers: enable accept-template flag
16595 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16597 * debian.upstream/control.in:
16598 debian: add yasm as build dependency
16599 As the compilation of libvpx (for vp8 parser) is enabled by default,
16600 yasm is required by default too.
16601 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16603 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16605 * debian.upstream/rules:
16606 debian: remove --with-gstreamer-api option
16607 It is no longer valid in gstreamer-vaapi.
16608 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16609 [removed unused GST_API_VERSION variable]
16610 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16611 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16613 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16615 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16616 wayland: rename is_cancelled to sync_failed
16617 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16618 sense. This commit renames this variable to sync_failed.
16620 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16622 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16623 wayland: Don't return GST_FLOW_ERROR on flushing
16624 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16625 return FALSE which makes gst_vaapi_window_wayland_render() return
16626 FALSE which ends up posting an ERROR message in
16627 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16629 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16631 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16633 * gst/vaapi/gstvaapi.c:
16634 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16635 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16637 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16639 * gst/vaapi/gstvaapidecodebin.c:
16640 vaapidecodebin: check for postproc instance
16641 If the VPP's deinterlace-method is set, first we should check if the postproc
16642 is already instanced to set it. Otherwise we just store it until the VPP is
16643 added into the bin.
16644 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16645 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16647 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16649 * gst/vaapi/gstvaapidecodebin.c:
16650 * gst/vaapi/gstvaapipluginutil.c:
16651 * gst/vaapi/gstvaapipluginutil.h:
16652 vaapidecodebin: ensure VPP before going to READY
16653 There are sometimes that the VA-API display context is not shared among the
16654 pipeline, but it is important to know it before going to READY state (when the
16655 pipeline is already linked).
16656 One instance of this case is this:
16657 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16658 This patch adds a new function in gstvaapipluginutil called
16659 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16660 display, which only will be used for verify if the VAEntrypointVideoProc is
16661 available by the hardware. Afterwards, it should be unrefed.
16662 If the vaapidecodebin is going to READY state, and the element still doesn't
16663 know if VPP is available, the last resort is to create a new instance of the
16664 VA-API display and test for it.
16665 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16667 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16669 * gst/vaapi/gstvaapidecodebin.c:
16670 vaapidecodebin: post an error message if fails
16671 If the construction of the bin fails, post an error message in the bus.
16672 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16673 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16675 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16677 * gst/vaapi/gstvaapidecodebin.c:
16678 * gst/vaapi/gstvaapidecodebin.h:
16679 vaapidecodebin: has_vpp as a tri-state variable
16680 has_vpp can be UNKNOWN while the context message hasn't being received.
16681 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16682 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16684 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16686 * gst/vaapi/gstvaapivideomemory.c:
16687 gstvaapivideomemory: native format with no derived image
16688 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16689 info based on the derived image configuration.
16690 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16691 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16693 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16695 * gst-libs/gst/vaapi/video-format.c:
16696 * gst-libs/gst/vaapi/video-format.h:
16697 * gst/vaapi/gstvaapivideomemory.c:
16698 surface pool config based on video info
16699 First added the function gst_vaapi_video_format_get_best_native(), which
16700 returns the best native format that matches a particular chroma type:
16701 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16702 RGB32 chroma and encoded format map to NV12 too.
16703 That format is used to configure, initially, the surface's pool for the
16705 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16706 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16708 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16710 * gst/vaapi/gstvaapivideomemory.c:
16711 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16712 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16713 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16715 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16717 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16718 gstvaapiencoder: validate chroma according to the VA's RT format
16719 Before, only YUV420 color space where supported. With this patch, the
16720 encoder is queried to know the supported formats and admits YUV422
16721 color space if its available.
16722 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16723 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16725 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16727 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16728 decoder: hevc: Add calculation of WpOffsetHalfRangeC
16729 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16730 prediction weight table values with out using any hard coding.
16731 Fixme: We don't have parser API for sps_range_extension, so
16732 assumed zero value for high_precision_offsets_enabled_flag.
16733 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16735 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16737 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16738 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16739 Based on ITU-T rec H265(4/2015): 7-56
16740 This was a wrong equation in rec H265 (4/2013): 7-44...
16741 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16743 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16745 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16746 decoder: hevc: Fix default value assignment of pred_weight_table
16748 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16750 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16751 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16752 Assign only if ChromaArrayType != 0..
16753 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16755 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16757 * ext/codecparsers:
16758 codecparsers: Update to gst-vaapi-branch commit 1c70432
16759 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16760 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16761 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16763 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16765 * ext/codecparsers:
16766 codecparsers: Update to gst-vaapi-branch commit c18b8ad
16767 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16768 a033083: videoparsers: h265: Fix the frame start detection code
16769 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16771 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16773 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16774 decoder: hevc: Add SEI parsing
16775 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16777 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16779 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16780 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16781 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16782 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16783 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16784 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16785 is TRUE. Assuming them as MAIN profile for now.
16786 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16787 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16789 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16791 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16792 patches/videoparsers: Fix the wrong source file path
16793 This is something wrongly typed in commit 6d7b631
16795 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16797 * ext/codecparsers:
16798 codecparsers: Update to gst-vaapi-branch commit b8d8be4
16799 ee7e81b: h264parse: Don't discard first AU delimiter
16800 3690fb9: h264parse: Add more NAL types for debugging output
16801 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16802 ace61048: h265parse: expose compatible profiles to downstream
16803 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16805 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16807 * gst/vaapi/gstvaapipluginutil.c:
16808 * gst/vaapi/gstvaapivideocontext.c:
16809 * gst/vaapi/gstvaapivideocontext.h:
16810 gstvaapivideocontext: remove unused parameter
16811 gst_vaapi_video_context_prepare() received an unused parameter. This patch
16812 removes it and the structure passed by the caller.
16813 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16814 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16816 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16818 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16819 decoder: hevc: Fix decoding of stream when it has temporal sublayers
16820 We are calculating the dpb size based on max_dec_pic_buffering.
16821 But if there are more than one temporal sublayers, we are supposed
16822 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16823 size calculation (Assuming HighestTid as max_sub_layers_minus).
16824 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16825 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16826 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16828 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16830 * gst/vaapi/gstvaapidecode.c:
16831 * gst/vaapi/gstvaapidecodebin.c:
16832 * gst/vaapi/gstvaapiencode_h264.c:
16833 * gst/vaapi/gstvaapiencode_h265.c:
16834 * gst/vaapi/gstvaapiencode_jpeg.c:
16835 * gst/vaapi/gstvaapiencode_mpeg2.c:
16836 * gst/vaapi/gstvaapiencode_vp8.c:
16837 * gst/vaapi/gstvaapipluginutil.h:
16838 * gst/vaapi/gstvaapipostproc.c:
16839 * gst/vaapi/gstvaapisink.c:
16840 refactor vaapi caps strings for pad templates
16841 Refactor the main vaapi caps strings into three macros:
16842 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16843 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16844 Those are in gstvaapipluginutil.h so all the elements could use them, instead
16845 of re-declaring them every time.
16846 No functional changes.
16847 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16849 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16851 * gst/vaapi/gstvaapipostproc.c:
16852 gstvaapipostproc: fix code style
16853 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16855 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16857 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16858 decoder: hevc: Fix the decoding of dependent slice segment
16859 Decoding process for reference picture list construction needs to be
16860 invoked only for P and B slice and the value for slice_type of dependent slice
16861 segment should be taken from the previous independent slice segment header
16863 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16864 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16866 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
16868 * gst/vaapi/gstvaapipluginbase.c:
16869 plugins: reduce the noise of warnings
16870 Those messagse should be attached to the object, also the lack of
16871 caps is not an error, in particular in the case of JPEG encoding.
16872 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16873 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16875 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16877 * gst-libs/gst/vaapi/gstvaapicontext.c:
16878 gstvaapicontext: fix the JPEG encoder attribs value
16879 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16880 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16881 assigns the returned value to the attribute.
16882 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16883 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16885 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
16887 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16888 gstvaapiencoder: framerate 0/1 is valid too
16889 Framerate 0/1 is valid, and it is particularly useful for picture
16890 encoding, such as jpeg. This patch makes the encoder to admit that
16892 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16893 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16895 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16897 * gst/vaapi/gstvaapipostproc.c:
16898 vaapipostroc: GLTextureUploadMeta in sink template
16899 Advertise GLTextureUploadMeta in sink caps template.
16900 https://bugzilla.gnome.org/show_bug.cgi?id=752130
16902 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16904 * gst/vaapi/Makefile.am:
16905 * gst/vaapi/gstvaapiencode.c:
16906 * gst/vaapi/gstvaapipluginbase.c:
16907 * gst/vaapi/gstvaapipluginbase.h:
16908 * gst/vaapi/gstvaapipostproc.c:
16909 * gst/vaapi/gstvaapisink.c:
16910 * gst/vaapi/gstvaapiuploader.c:
16911 * gst/vaapi/gstvaapiuploader.h:
16912 remove gstvaapiuploader
16913 Working on bug #744042 I realized that the gstvaapiuploader is practically not
16915 This patch removes the gstvaapiuploader and add the method
16916 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16917 the system can handle, which is used by vaapisink and vaapipostproc.
16918 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16919 https://bugzilla.gnome.org/show_bug.cgi?id=752777
16921 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16923 * gst/vaapi/gstvaapidecode.c:
16924 vaapidecode: don't lost GLTextureUpload on seek
16925 When seeking, the decoder is reset, but the buffer pool is not
16926 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16927 pool has the GLTextureUpload meta.
16928 The decoder knows that GLTextureUpload meta was negotiated in
16929 decide_allocation(), but this method is not called when seeking.
16930 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16931 https://bugzilla.gnome.org/show_bug.cgi?id=752929
16933 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16935 * gst/vaapi/gstvaapipluginutil.c:
16936 plugins: don't use gst_pad_get_allowed_caps()
16937 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16938 decoders, that is OK, but in the case of the postproc might lead loops,
16939 since the gst_base_transform_query_caps() forwards the query upstream
16941 Instead of gst_pad_get_allowed_caps() we only query the peer with
16942 gst_pad_peer_query_caps() using the pad's template as filter.
16943 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16944 https://bugzilla.gnome.org/show_bug.cgi?id=752558
16946 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16951 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16953 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16954 * patches/videoparsers/series.frag:
16955 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16956 All API/ABI changes for S3D/MVC are added in 1.5, backporting
16957 them to older verison is not recommended.
16958 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16960 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16962 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16963 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16965 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16967 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16968 decoder: jpeg: Align with new API/ABI changes in codecparser
16969 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16971 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16973 * ext/codecparsers:
16974 codecparsers: Update to gst-vaapi-branch commit 800bdb2
16975 ed13220: mpegvideometa: add meta transform function
16976 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16977 7a51722: codecparsers: jpeg: fix docs for table parsing functions
16978 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16979 387a39d: codecparsers: jpeg: fix up API
16980 db9d6a9: codecparsers: jpeg: tweak API a little
16981 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16982 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16983 4658c30: codecparsers: jpeg: fix calculation of segment size
16984 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16985 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16986 9422464: h264parse: fix typo in log message
16987 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16988 77704ce: nalutils: trivial patch to check if
16989 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16990 7862f95: Revert "codecparsers: remove ignored increment of return"
16991 54017b1: h264parse: Add support for passing stereoscopic/multiview info
16992 8667ee4: h264parse: Don't switch to passthrough on set_caps()
16993 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16995 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16997 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16998 decoder: h264: track previous reference frames.
16999 Improve closure of gaps in frame_num by strictly following and trying
17000 to fill them with previous reference frames. So, they are now tracked
17001 thus avoiding insertion of dummy ("greenish") frames.
17003 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17005 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17006 decoder: h264: fix integration of second field into the DPB.
17007 If the new picture to be added to the DPB is not a first field, then
17008 it shall be the second field of the previous picture that was added
17010 This removes the need for dpb_find_picture() now that we track the
17011 immediately preceding decoded picture, in decode order.
17013 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17015 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17016 decoder: h264: fix closure of "other-field" gap.
17017 When a dummy "other-field" is inserted, it is assumed to inherit the
17018 reference flags from the first field, and the sliding window decoded
17019 reference picture marking process is also executed so that corrupted
17020 frames are moved out as early as possible.
17021 While doing so, we also try to output frames that now contain a single
17022 valid field picture, prior to inserting any other picture into the DPB.
17023 Note: this may be superfluous currently based on the fact that dpb_add()
17024 combines the two most recent pairable fields, but this process would be
17025 further simplified later on.
17027 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17029 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17030 decoder: h264: track corrupted frames.
17031 Mark the picture as "corrupted" if it is reconstructed from corrupted
17032 references or if those references are fake, e.g. resulting from lost
17034 This is useful for notifying the upper layer, or downstream elements,
17035 that the decoded frame may contain artefacts.
17036 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17038 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17040 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17041 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17042 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17043 * gst/vaapi/gstvaapidecode.c:
17044 decoder: add initial infrastructure for marking corrupted output.
17045 Add initial infrastructure in core codec library and vaapidecode to mark
17046 corrupted frames as such. A corrupted frame is such a frame that was
17047 reconstructed from invalid references for instance.
17048 https://bugzilla.gnome.org/show_bug.cgi?id=751434
17049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17051 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17054 Bump version for development
17056 === release 0.6.0 ===
17058 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17063 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17068 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17070 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17071 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
17072 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
17073 Right now there is not a primary ranked parser for vc1 and the demuxers
17074 delivers caps without specifying the profile. This situation is not an issue
17075 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
17076 explicit profile defined in the negotiated caps.
17077 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
17078 negotiation admits caps subsets try outs.
17079 This patch solves the issue ignoring the profile negotiation in the caps. For
17080 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
17081 done without the vc1 parser, such as happens in gstreamer 1.5.
17082 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17084 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17086 * gst/vaapi/gstvaapi.c:
17087 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
17088 Unfortunately vaapidecodebin element is not seems to be stable
17089 enough for autoplugging ahead of vaapidecode.
17090 Lowering the rank for now (cosidering the immediate 0.6 release).
17091 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
17092 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17094 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17096 * gst-libs/gst/vaapi/Makefile.am:
17097 build: Add missing CFLAGS to Makefile.am
17099 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17101 * gst-libs/gst/vaapi/gstvaapifilter.c:
17102 gstvaapifilter: Only register STE property if it supported by corresponding VA library
17103 Fix the regression introduced in commit eb465fb.
17104 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17105 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17107 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17109 * gst/vaapi/gstvaapipostproc.c:
17110 vaapipostproc: no format convert on GL tex upload meta
17111 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
17112 color format of the buffer.
17113 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17115 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17117 * gst-libs/gst/vaapi/gstvaapifilter.c:
17118 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
17119 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17120 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17122 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17124 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17125 encoder:h265: Fix the check for packed-header support
17126 Use VA_ENC_PACKED_HEADER_* definition for checking.
17127 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17129 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17131 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17132 encoder:h264: Fix the check for packed-header support
17133 Use VA_ENC_PACKED_HEADER_* definition for checking.
17134 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17136 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17138 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17139 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17140 One buffering_period() SEI message shall be present in every IDR access unit
17141 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17142 use a non-CQP mode, e.g. CBR. In other words, when
17143 nal_hrd_parameters_present_flag is set to 1.
17144 One picture_timing() SEI messages shall be present in every access unit
17145 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17146 https://bugzilla.gnome.org/show_bug.cgi?id=722734
17147 https://bugzilla.gnome.org/show_bug.cgi?id=751831
17148 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17150 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17152 * gst/vaapi/gstvaapidecodebin.c:
17153 vaapidecodebin: notify if vpp is disabled
17154 When the system is aware that VPP is not available by the VA driver,
17155 it would be useful to notify to the user that the disable-vpp property
17157 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17159 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17161 * gst/vaapi/gstvaapidecodebin.c:
17162 * gst/vaapi/gstvaapidecodebin.h:
17163 vaapidecodebin: enable vpp if it is available
17164 Instead of creating and adding VPP into the bin at setup, we wait until
17165 we are sure the VA driver supports it. We know that when the VA video
17166 context is received by the bin. Afterwards, it is decided to instanciate
17167 and link the VPP or not.
17168 This is more efficient and safer than waiting the VPP to fail and then
17170 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17172 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17174 * tests/test-display.c:
17175 * tests/test-windows.c:
17176 tests: Fix compilation while enabling egl as the only renderer in build
17177 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17179 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17182 configure: fix the build while enabling egl as the only renderer
17184 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17187 libs: Bump library major version
17189 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17191 * gst/vaapi/gstvaapi.c:
17192 * gst/vaapi/gstvaapidecodebin.c:
17193 * gst/vaapi/gstvaapiencode.c:
17194 * gst/vaapi/gstvaapiencode_jpeg.c:
17195 * gst/vaapi/gstvaapipluginbase.c:
17196 * gst/vaapi/gstvaapipluginutil.c:
17197 * gst/vaapi/gstvaapipostproc.c:
17198 * gst/vaapi/gstvaapivideobufferpool.c:
17199 * gst/vaapi/gstvaapivideocontext.c:
17200 * gst/vaapi/gstvaapivideomemory.c:
17201 * gst/vaapi/gstvaapivideometa.c:
17202 gst/vaapi: Switch to upstreram like indentation.
17203 gst-indent for all gst/vaapi/*.c source files
17205 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17207 * gst/vaapi/gstvaapidecodebin.c:
17208 * gst/vaapi/gstvaapidecodebin.h:
17209 vaapidecodebin: Add property to disable VPP
17210 Adding a new propery "disable-vpp", enabling it will prevent
17211 the insertion of vaapipostproc child element.
17212 This is helpful in debugging, specifically to narrow-down the
17213 vaapidecodebin/vaapipostproc related negotiation issues.
17214 No support for run-time disabling for now.
17215 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17217 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17219 * gst/vaapi/gstvaapipostproc.c:
17220 vaapipostproc: Fix wrong selection of passthrough mode.
17221 The Current code path is falling back to passthorugh mode if there is no
17222 vpp property set by the user explictily. But we should not use the
17223 passthrough mode if the negotiated src pad caps have a differnt color space
17224 format than sink pad caps (Even though the user didn't set the format property
17226 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17227 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17229 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17231 * gst/vaapi/gstvaapipostproc.c:
17232 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17233 This is a workaround to deal with the va-intel-driver for non-native
17234 formats while doing advanced deinterlacing. The format of reference surfaces must
17235 be same as the format used by the driver internally for motion adaptive
17236 deinterlacing and motion compensated deinterlacing.
17237 A permanent solution could be to do the color space conversion internally
17238 for reference surfaces.
17239 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17240 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17242 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17244 * gst/vaapi/gstvaapisink.c:
17245 Work around ABBA deadlock between vaapisink and vaapipostproc
17246 vaapisink takes the display lock, then does a gst_buffer_replace which can
17247 take the lock on the gst_vaapi_video_pool.
17248 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17249 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17250 surfaces, which means that gst_vaapi_surface_create is
17251 called. gst_vaapi_surface_create takes the display lock.
17252 If vaapisink and vaapipostproc are in different threads, and this happens,
17253 you get a deadlock. vaapisink holds the display lock, and wants the
17254 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17255 and wants the display lock.
17256 Work around this by releasing the display lock in vaapisink around the
17257 gst_buffer_replace.
17258 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17259 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17260 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17262 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17264 * gst/vaapi/gstvaapidecodebin.c:
17265 * gst/vaapi/gstvaapidecodebin.h:
17266 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17267 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17269 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17271 * gst/vaapi/gstvaapipostproc.c:
17272 vaapipostproc: log negotiated caps
17274 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17276 * gst/vaapi/gstvaapipostproc.c:
17277 vaapipostproc: remove useless debug message
17279 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17281 * gst/vaapi/gstvaapidecode.c:
17282 vaapidecode: log negotiated src/sink caps
17284 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17286 * gst/vaapi/gstvaapisink.c:
17287 vaapisink: error handling if rendering fails
17288 This patch enhance the code path when an error is found when rendering a
17290 If the video meta doesn't contain a surface proxy or a surface, a warning
17291 message is printed.
17292 If the rendering backend fails, a error message is posted in the bus.
17293 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17295 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17297 * gst/vaapi/gstvaapisink.c:
17298 vaapisink: Fix the conditional pad template creation.
17300 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17302 * tests/Makefile.am:
17303 build: Don't build simple-encoder test program if there is no VA Encoding support
17304 This will fix the build error against older VA-APIs <= 0.32
17306 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17308 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17309 * gst-libs/gst/vaapi/gstvaapicompat.h:
17310 Fix build error for older VA-API versions
17311 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17312 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17315 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17317 * gst/vaapi/gstvaapisink.c:
17318 vaapisink: Fix the capsfeature advertisement in padtemplate
17319 This fixes the regression introduced in 64acc74.
17320 If a pad supports multiple set of capsfeatures, it needs to add
17321 multiple equal structures with different feature sets to the caps.
17322 Because caps structures with the same name but with a non-equal
17323 set of caps features are not compatible.
17324 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17325 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17327 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17329 * gst/vaapi/gstvaapisink.c:
17330 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17331 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17332 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17333 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17335 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17337 * gst/vaapi/gstvaapipluginbase.c:
17338 vaapipluginbase: Override downstream allocation reply if no pool
17339 If the downstream replied without a pool, then override it.
17340 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17342 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17344 * gst/vaapi/gstvaapipostproc.c:
17345 * gst/vaapi/gstvaapipostproc.h:
17346 vaapipostproc: add color balance interface
17347 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17349 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17351 * gst-libs/gst/vaapi/gstvaapifilter.c:
17352 * gst-libs/gst/vaapi/gstvaapifilter.h:
17353 * gst/vaapi/gstvaapipostproc.c:
17354 * gst/vaapi/gstvaapipostproc.h:
17355 vaapipostproc: add skin tone enhancement
17356 Added the 'skin-tone-enhancement' property to vaapostproc.
17357 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17359 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17361 * docs/reference/libs/libs-docs.xml.in:
17362 doc: add VA-API reference in freedesktop
17364 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17366 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17367 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17368 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17369 patches/videoparsers: rebase all the h264parse patches
17370 In order to avoid the creation of .orig files and break the distcheck target
17372 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17374 * ext/libvpx/Makefile.am:
17375 build: don't build in parallel libvpx
17376 This fixes the distcheck -j XX target.
17378 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17380 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17381 encoder: jpeg: Fix the packed header generation
17382 This is a work-around to satisfy the va-intel-driver.
17383 Normalize the quality factor and scale QM values (only for packed header
17384 generation) similar to what VA-Intel driver is doing . Otherwise the
17385 generated packed headers will be wrong, since the driver itself is
17386 scaling the QM values using the normalized quality factor.
17387 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17388 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17390 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17392 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17393 decoder: h264: fix uninitialized variables in avcC mode.
17394 Fix uninitialized variables when decoding SPS and PPS NAL units from
17395 "codec-data" buffers. This is particularly important when seeking ops
17396 are involved, and the new persistent states are used more often.
17397 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17399 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17401 * gst/vaapi/gstvaapidecode.c:
17402 vaapidecode: remove unneeded casting
17403 And a code-style fix
17405 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17407 * gst/vaapi/gstvaapidecode.c:
17408 vaapidecode: calculate decoding latency
17409 This is a naïve approach to the calculation of the VA-API decoding latency. It
17410 takes into consideration when the frame-rate has some insane value.
17411 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17413 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17416 configure: Compiling against libgstgl requires libgstvideo
17417 Fix detection of the GstGL helper headers in uninstalled
17420 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17422 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17423 encoder: hevc: Fix the size over-flow for encoded buffer.
17424 The approximation of 6 times compression ratio migh not
17425 work in all cases. Especially when enabling I frames.
17426 Provide large enough size for coded-buffer creation.
17428 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17430 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17431 encoder: vp8: Fix the size over-flow for encoded buffer.
17432 The approximation of 4 times compression ratio will not
17433 work in all cases. Especially when enabling I frames.
17434 Provide large enough size for coded-buffer creation.
17436 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17438 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17439 encoder: hevc: fix bug in multi slice encoding.
17440 This is a work-around for satisfying the VA-Intel driver.
17441 The driver only support slices begin from CTU row start address.
17442 Multi-Slice encoding also requires a fix in va-intel-driver:
17443 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17444 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17445 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17447 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17449 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17450 decoder: h264: add initial support for loss of pictures.
17451 Implement decoding process for gaps in frame_num (8.5.2). This
17452 also somewhat supports unintentional loss of pictures.
17453 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17454 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17455 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17456 [fixed derivation of POC, ensured clone is valid for reference,
17457 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17460 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17462 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17463 decoder: h264: add support for missing first field.
17464 Try to identify missing first fields too, thus disregarding any
17465 intermediate gaps in frames. We also assume that we keep the same
17466 field sequence, i.e. if previous frames were in top-field-first
17467 (TFF) order, then so are subsequent frames.
17468 Note that insertion of dummy first fields need to operate in two
17469 steps: (i) create the original first field that the current field
17470 will inherit from, and (ii) submit that field into the DPB prior
17471 to initializing the current (other) field POC values but after any
17472 reference flag was set. i.e. copy reference flags from the child
17473 (other field) to the parent (first field).
17474 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17476 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17478 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17479 decoder: h264: add support for missing second field.
17480 Interlaced H.264 video frames always have two fields to decode and
17481 display. However, in some cases, e.g. packet loss, one of the field
17482 can be missing. This perturbs the reference picture marking process,
17483 whereby the number of references available in DPB no longer matches
17484 the expected value.
17485 This patch adds initial support for missing field within a decoded
17486 frame. The current strategy taken is to find out the nearest field,
17487 by POC value, and with the same parity.
17488 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17490 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17492 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17493 decoder: h264: improve tracking of "top-field-first" flag.
17494 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17495 does not mandate it. This will be useful for tracking missing fields, and
17496 also for more correct _split_fields() implementation for frames in the DPB.
17498 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17500 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17501 decoder: h264: skip all pictures prior the first I-frame.
17502 Don't try to decode pictures until the first I-frame is received within
17503 the currently active sequence. There is no point is decoding and then
17504 displaying frames with artifacts.
17506 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17508 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17509 decoder: h264: fix processing of EOSEQ NAL.
17510 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17511 picture for decoding again. This is pretty vintage code that dates back
17512 before the existing of the whole decoder units machinery.
17513 One issue that could be arising if that code was kept is that we could
17514 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17515 Once without the decode_only flag set, and once with that flag set. The
17516 end result is that the GstVideoDecoder would release the codec frame
17517 twice, thus releasing stale data.
17518 In short, the piece of code that is removed by this patch is for once
17519 completely obsolete for a while, and secondly error-prone in corner
17522 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17524 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17525 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17526 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17527 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17528 decoder: add utility function to clone picture objects.
17529 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17530 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17531 [added cosmetic changes, fixed propagation of "one-field" flag to
17532 children, fixed per-codec clone modes (h264)]
17533 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17535 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17537 * gst/vaapi/Makefile.am:
17538 build: don't compile HEVC encoder if not supported
17540 (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
17541 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17542 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17543 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17545 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17547 * gst-libs/gst/vaapi/gstvaapicompat.h:
17548 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17549 HEVC: decode: add missing va_dec_hevc header
17550 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17551 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17552 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17554 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17556 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17557 mpeg2: fix PTS cache for GOP start.
17558 If the GOP temporal sequence number (TSN) is interpolated from a valid
17559 PTS, then we need to compensate that PTS corresponding to the start of
17560 GOP with the next picture to be decoded, which shall be an I-frame,
17561 based on its sequence number.
17562 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17564 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17566 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17567 mpeg2: avoid crash when seeking with debug logs
17568 Move down the debug message when the state of the decoder is verified
17569 so the slice header is not NULL.
17571 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17573 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17574 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17575 Reset state and add some checks for safe state to avoid a crash and
17576 a warning after the decoder is destroyed/recreated during a seek.
17578 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17580 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17581 * patches/videoparsers/series.frag:
17582 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17583 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17585 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17587 * ext/codecparsers:
17588 codecparsers: Update to gst-vaapi-branch commit 20ee952
17589 b7dded3: h264parse: don't consider unknown stream-format as avc
17590 5110ad9: h264parse: fix up handling of input caps corner cases
17591 e51db3e: h264parse: Remove dead code
17592 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17593 8482957: h265parse: Fix profile, tier and level setting in caps
17594 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17595 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17596 6886a31: h264parse: Fix profile and level setting in caps
17597 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17598 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17599 53074fc: build: Upgrade GStreamer dependency to 1.0
17600 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17602 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17604 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17605 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17606 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17608 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17610 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17611 HEVC: decode: Update Cropping Rectangle
17612 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17614 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17616 * gst/vaapi/Makefile.am:
17617 * gst/vaapi/gstvaapi.c:
17618 * gst/vaapi/gstvaapiencode_h265.c:
17619 * gst/vaapi/gstvaapiencode_h265.h:
17620 HEVC_Encode: Add HEVC(h265) Encoder plugin
17621 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17622 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17624 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17626 * gst-libs/gst/vaapi/Makefile.am:
17627 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17628 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17629 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17630 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17631 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17633 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17636 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17637 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17638 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17640 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17642 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17643 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17644 gstvaapiutils_h265: Add H265 Tier specific utility functions
17645 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17646 -- New API: gst_vaapi_utils_h265_get_tier_string()
17647 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17648 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17650 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17652 * docs/reference/plugins/Makefile.am:
17653 doc: conditional linking for scanner
17654 Add x11 library only if it is enabled.
17655 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17657 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17659 * docs/reference/plugins/plugins.types:
17660 doc: fix scanner compilation warning
17661 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17663 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17665 * docs/reference/libs/libs-docs.xml.in:
17666 * docs/reference/libs/libs-sections.txt:
17667 doc: update sections and symbols
17668 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17670 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17674 * debian.upstream/Makefile.am:
17675 * docs/Makefile.am:
17676 * docs/reference/Makefile.am:
17677 * docs/reference/libs/Makefile.am:
17678 * docs/reference/plugins/Makefile.am:
17680 * ext/libvpx/Makefile.am:
17682 * gst-libs/Makefile.am:
17683 * gst-libs/gst/Makefile.am:
17684 * gst-libs/gst/base/Makefile.am:
17685 * gst-libs/gst/codecparsers/Makefile.am:
17686 * gst-libs/gst/vaapi/Makefile.am:
17688 * gst/vaapi/Makefile.am:
17689 * patches/Makefile.am:
17690 * patches/videoparsers/Makefile.am:
17691 * pkgconfig/Makefile.am:
17692 * tests/Makefile.am:
17694 This patch handles dinamically the gitignore files with git.mk[1].
17695 Removed the automake variable MAINTAINERCLANFILES in most of the
17696 Makefile.am files since now it is handled by the top one.
17697 1. https://github.com/behdad/git.mk/blob/master/git.mk
17698 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17700 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17702 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17703 wayland: sync() when destroy()
17704 Before pushing a the new frame, the render() method calls sync() to flush the
17705 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17706 to a memory leak too.
17707 This patch calls sync() in the destroy() to flush the pending frames before
17708 destroying the window.
17709 Also a is_cancelled flag is added. This flag tells to not flush the event
17710 queue again since the method failed previously or were cancelled by the user.
17711 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17713 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17715 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17716 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17717 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17718 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17719 * gst/vaapi/gstvaapisink.c:
17720 vaapisink: implement unlock/unlock_stop for wayland
17721 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17722 shutting down. This can happen e.g. if the wayland compositor exits while
17723 the pipeline is running.
17725 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17726 * splitted the patch removing wl_display_dispatch_queue()
17727 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17728 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17729 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17731 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17734 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17735 wayland: wl_display_dispatch_queue() can block forever.
17736 wl_display_dispatch_queue() might prevent the pipeline from shutting
17737 down. This can happen e.g. if the wayland compositor exits while the
17738 pipeline is running.
17739 This patch replaces it with these steps:
17740 - With wl_display_prepare_read() all threads announce their intention
17742 - wl_display_read_events() is thread save. On threads reads, the other
17743 wait for it to finish.
17744 - With wl_display_dispatch_queue_pending() each thread dispatches its
17746 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17747 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17748 * stripped out the unlock() unlock_stop() logic
17749 * stripped out the poll handling
17750 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17751 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17752 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17754 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17756 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17757 wayland: rename frame for last_frame
17758 Since frame in the private data means the last frame sent, it would
17759 semantically better use last_frame.
17760 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17762 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17764 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17766 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17767 wayland: use a counter as sync flag
17768 Wayland window has a pointer to the last pushed frame and use it to set the
17769 flag for stopping the queue dispatch loop. This may lead to memory leaks,
17770 since we are not keeping track of all the queued frames structures.
17771 This patch removes the last pushed frame pointer and change the binary flag
17772 for an atomic counter, keeping track of number of queued frames and use it for
17773 the queue dispatch loop.
17774 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17776 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17778 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17779 wayland: decouple wl_buffer from frame
17780 This patch takes out the wayland's buffer from the the frame structure. The
17781 buffer is queued to wayland and destroyed in the "release" callback. The
17782 frame is freed in the surface's "done" callback.
17783 In this way a buffer may be leaked but not the whole frame structure.
17784 - surface 'done' callback is used to throttle the rendering operation and to
17785 unallocate the frame, but not the buffer.
17786 - buffer 'release' callback is used to destroy wl_buffer.
17787 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17789 * kept the the event_queue for buffer's proxy
17790 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17791 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17793 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17795 * gst/vaapi/gstvaapisink.c:
17796 vaapisink: fix indentation
17798 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17800 * debian.upstream/Makefile.am:
17801 * ext/libvpx/Makefile.am:
17802 * gst-libs/gst/vaapi/Makefile.am:
17803 * gst/vaapi/Makefile.am:
17804 * tests/Makefile.am:
17805 build: fix make distcheck
17806 This patch fixes several issues found when running the `make distcheck`
17808 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17810 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17812 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17813 - The make target distcleancheck failed because some autogenerated files
17814 were not handled with the DISTCLEANFILES variable.
17815 Note: `make distcheck -jXX` is not currently supported.
17817 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17819 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17820 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17821 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17822 h264parse: update patches with upstream
17823 These patches didn't applied cleanly, breaking the `make distcleancheck`
17824 target. Re-sync'ed the patches against the current git's submodule.
17826 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17828 * tests/simple-encoder.c:
17829 tests: simple-encoder: fix build warnings on 64-bit platforms.
17830 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17831 importantly fix warnings spitted out during build on 64-bit platforms.
17832 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17833 g_warning ("Invalid VAAPI buffer size (%d)", size);
17835 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17836 g_warning ("Failed to create output buffer of size %d", size);
17839 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17841 * gst/vaapi/gstvaapipluginbase.c:
17842 * gst/vaapi/gstvaapipluginutil.c:
17843 * gst/vaapi/gstvaapipluginutil.h:
17844 * gst/vaapi/gstvaapivideocontext.h:
17845 plugins: remove gstreamer-0.10 crumbs
17846 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17847 Still, its definition was still in the code. This patch removes it.
17848 https://bugzilla.gnome.org/show_bug.cgi?id=749113
17850 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17852 * tests/Makefile.am:
17853 * tests/simple-encoder.c:
17854 * tests/y4mreader.c:
17855 * tests/y4mreader.h:
17856 tests: add simple-encoder program
17857 This patch adds a simple-encoder test program that uses libgstvaapi for video
17858 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17859 format. That can be from a regular file or standard input when the input
17861 Usage: simple-encoder [options]* <source>
17863 --output|-o output file name
17864 --codec|-c codec to use for video encoding
17865 --bitrate|-b desired bitrate (kbps)
17866 By default, and as an initial patch, the encoded stream shall conform to the
17867 minimally supported profile. That is "Constrained Baseline Profile" for H.264
17868 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17869 generated by libgstvaapi.
17870 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17871 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17872 * general code clean-up
17873 * removed the yuv reader thread
17874 * re-wrote the y4m file parser
17875 * updated used API fixed some wrong usage
17876 * fixed a lot of memory leaks
17877 * added the bitrate setting
17878 * keep fps' numerator and denominator
17879 * simplified the thread control
17880 * removed custom logging and use glib
17881 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17882 https://bugzilla.gnome.org/show_bug.cgi?id=719528
17884 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17886 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17887 libs: trivial documentation fix
17888 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17889 are not errors, so they do not have the ERROR namespace.
17890 This patch fixes this typo in documentation.
17892 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
17894 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17895 window: Correct prototype to match implementation
17896 On s390x, guintptr and GstVaapiID are not compatible types. The
17897 implementation of gst_vaapi_window_new_internal() and all its callers
17898 seem to assume that its third argument is a GstVaapiID, while the
17899 header gives it guintptr type.
17900 https://bugzilla.gnome.org/show_bug.cgi?id=744559
17902 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17904 * gst/vaapi/gstvaapidecode.c:
17905 * gst/vaapi/gstvaapidecodebin.c:
17906 vaapidecode: add guards for disabled codecs.
17907 Fix link when building plugin elements without HEVC support. e.g. don't
17908 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17909 support HEVC enabled in libgstvaapi.
17910 Also, drop disabled codecs from static template caps. Add the missing
17911 HEVC static template caps into vaapidecodebin too.
17913 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17916 * gst-libs/gst/vaapi/glibcompat.h:
17917 build: upgrade glib dependency to 2.32
17918 Since bug #745728 was fixed the oldest supported version of GStreamer is
17919 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17921 This patch changes the required version of glib in configure.ac and removes
17922 the hacks in glibcompat.h
17923 https://bugzilla.gnome.org/show_bug.cgi?id=748698
17925 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17927 * gst/vaapi/gstvaapipluginbase.c:
17928 plugins: check if the pool config is already set
17929 In commit 97b768, a regression for GStreamer 1.2 was introduced:
17930 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17931 config option is already set. This patch adds an inline function to
17932 first verify if the option is not in the pool config berfore add it.
17934 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17936 * gst/vaapi/gstvaapipostproc.c:
17937 vaapipostproc: tune up a couple of log messages
17938 In order to reduce the noise, the query type log was downgrade from INFO to
17939 DEBUG, and the shared display address log message is assigned to the object.
17941 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17943 * gst/vaapi/gstvaapipluginbase.c:
17944 plugins: check gst_buffer_pool_set_config()
17945 Check the return value of gst_buffer_pool_set_config(). If it fails an error
17946 message is posted in the bus.
17948 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17950 * gst/vaapi/gstvaapipluginbase.c:
17951 plugins: more specific log message
17952 Be more specific in the log message about the reason of creating a new pool.
17954 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17956 * gst/vaapi/gstvaapipluginbase.c:
17957 plugins: delete unused variable
17958 need_pool is a boolean variable extracted from the allocation query, but it is
17959 not used afterwards.
17961 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17963 * gst/vaapi/gstvaapipluginbase.c:
17964 vaapipluginbase: Update the pool if there was no pool in the downstream reply
17965 Fix regression introduced by bd866479, the query after decide_allocation()
17966 always needs a pool in the first slot.
17967 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17968 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17970 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
17972 * gst/vaapi/gstvaapivideobufferpool.c:
17973 videopool: Free members before chaining up finalize
17974 The finalize function in GObject frees the object memory, so
17975 everything else needs to have been freed before.
17976 https://bugzilla.gnome.org/show_bug.cgi?id=748563
17978 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
17980 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17981 wayland: don't leak the registry proxy
17982 Release the registry proxy when closing the display.
17983 https://bugzilla.gnome.org/show_bug.cgi?id=748564
17985 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17987 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17988 wayland: refactor _sync() method and rename callback
17989 This patch only intends to improve readability: in the method
17990 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17992 Also renames the frame_redraw_callback() callback into frame_done_callback(),
17993 which is a bit more aligned to Wayland API.
17995 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
17997 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17998 wayland: free frame in buffer release callback
17999 The Wayland compositor may still use the buffer when the frame done
18000 callback is called.
18001 This patch destroys the frame (which contains the buffer) until the
18002 release callback is called. The draw termination callback only controls
18003 the display queue dispatching.
18004 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18005 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18007 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18009 * gst/vaapi/gstvaapidecode.c:
18010 vaapidecode: refactor gst_vaapidecode_internal_flush()
18011 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
18012 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
18013 shares the same error message of gst_vaapidecode_internal_flush() when flush
18016 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18018 * gst/vaapi/gstvaapidecode.c:
18019 vaapidecode: refactor gst_vaapidecode_destroy()
18020 Add the method gst_vaapidecode_purge(). This method releases the
18021 flushed frames from the decoder.
18022 This new method add more readablity to gst_vaapidecode_destroy()
18024 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
18026 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18027 * gst/vaapi/gstvaapidecode.c:
18028 vaapidecode: Tell the base class about released frames on close
18029 The base class needs to be informed about frames that were still queued
18030 in the decoder on release, otherwise they are leaked.
18031 https://bugzilla.gnome.org/show_bug.cgi?id=747999
18033 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18035 * gst/vaapi/gstvaapidecode.c:
18036 vaapidecode: reduce logging noise
18037 When a frame is rejected by downstream, the message is logged twice. This
18038 patch removes one of those logging messages.
18039 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
18040 the log message from error to info.
18042 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
18044 * gst/vaapi/gstvaapidecode.c:
18045 vaapidecode: Use the GstVideoDecoder error reporting function
18046 This way, the decoder won't stop on the first decoding error,
18047 in most cases it can recover after some glitchiness.
18048 https://bugzilla.gnome.org/show_bug.cgi?id=744620
18050 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
18052 * gst/vaapi/gstvaapipluginbase.c:
18053 vaapipluginbase: The allocation query can return without a pool
18054 It is possible to return the min/max/size without actually providing
18055 a pool. This way the source knows how many buffers downstream needs.
18056 https://bugzilla.gnome.org/show_bug.cgi?id=748076
18058 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18061 * gst/vaapi/Makefile.am:
18062 * gst/vaapi/gstvaapiparse.c:
18063 * gst/vaapi/gstvaapiparse.h:
18064 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
18065 * patches/videoparsers/series.frag:
18066 plugins: Add h265 videoparser element "vaapiparse_h265"
18067 This is a mirror of h265parse element in upstream gst-plugins-bad.
18068 There could be additional patches but all should go to upstream.
18069 This is for making development faster.
18070 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
18072 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18074 * ext/codecparsers:
18075 codecparsers: Update to gst-vaapi-branch commit 43a0368
18076 45f1c28: codecparser: h265: Fix nal unit size checking
18077 f25987b: codecparser: h265: Calculate crop rectangle dimensions
18078 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
18079 4c8ec41: Add h265 videoparser plugin source files
18081 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18084 autogen: drop videoutils submodule.
18086 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18088 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18089 decoder: hevc: cosmetics.
18090 Mostly coding style updates. Avoid integer signess inconsistencies.
18091 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
18093 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18095 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18096 decoder: hevc: Add Support for tiled video decoding
18097 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
18098 the tile column width and tile row height should be calculated.
18099 Equations: 6-1, 6-2
18100 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
18102 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18104 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18105 decoder: hevc: Fix decoding when there are RASL pictures present.
18106 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
18107 -- Fix PicOutputFlag setting for RASL picture
18108 -- Fix prev_poc_lsb/prev_poc_msb calculation
18109 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
18110 -- Fixed couple of crashes and added cosmetics
18112 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
18114 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18115 display: drm: fix race condition setting device type
18116 There is a race condition where g_drm_device_type can be left set to
18117 DRM_DEVICE_RENDERNODES when it shouldn't.
18118 If thread 1 comes in and falls into the last else statement setting up both
18119 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
18120 it sets g_drm_device_type = RENDERNODES.
18121 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
18122 up that type to be tried but then encounters the lock and has to wait until the
18123 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
18124 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
18125 attempts will only try RENDERNODES.
18126 So to avoid this situation I have simply moved the acquisition of the lock higher
18127 up in the attached patch.
18128 https://bugzilla.gnome.org/show_bug.cgi?id=747914
18130 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18132 * gst/vaapi/gstvaapipostproc.c:
18133 vaapipostproc: Don't create filter on caps query
18134 The problem with this is that creating the filter causes the display to
18135 be selected, and the caps query happens while linking the element. So,
18136 if the downstream or upstream element is using a specific display
18137 object, it won't be propagated correctly to the postproc as it already
18138 has a display at this point.
18139 https://bugzilla.gnome.org/show_bug.cgi?id=747945
18141 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
18143 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18144 videopool: Release lock while allocating new object
18145 The video pool can be accessed with the display lock held, for example,
18146 when releasing a buffer from inside vaapisink_render, but allocating
18147 a new object can may also take the display lock. Which means a possible
18149 https://bugzilla.gnome.org/show_bug.cgi?id=747944
18151 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18153 * gst/vaapi/gstvaapisink.c:
18154 vaapisink: use GstVideoSink vmethod show_frame()
18155 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18156 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18157 rather than call ourselves render() and preroll().
18159 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18161 * gst/vaapi/gstvaapisink.c:
18162 * gst/vaapi/gstvaapisink.h:
18163 vaapisink: add 'handoff' signal
18164 This patch adds the signal ::handoff and the property signal-handoffs. If the
18165 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18167 Based on Zhao Halley <halley.zhao@intel.com>
18168 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18170 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18172 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18173 HEVC: silence the compiler
18174 Fixed a couple of clang complains.
18176 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18178 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18179 wayland: destroy vpp buffer pool on resize
18180 Otherwise the old buffers with the old size are used.
18181 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18183 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18186 * gst-libs/gst/vaapi/Makefile.am:
18187 build: don't compile HEVC if not supported
18188 HEVC decoding was added recently libva-1.5.
18189 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18190 in the installed libva.
18191 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18193 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18195 * gst/vaapi/gstvaapidecode.c:
18196 vaapidecode: Update Author name in plugin metadata
18198 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18200 * gst/vaapi/gstvaapidecode.c:
18201 plugins: Add HEVC decoder
18202 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18204 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18206 * gst-libs/gst/vaapi/Makefile.am:
18207 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18208 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18209 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18210 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18212 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18214 * gst-libs/gst/vaapi/Makefile.am:
18215 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18216 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18217 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18218 HEVC: Add codec utility methods to core libgstvaapi
18219 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18221 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18223 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18224 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18225 HEVC: gstvaapiprofile: Add profile definitions
18226 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18228 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18231 HEVC: build: Check availability of h265 decoder APIs
18232 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18234 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18238 * gst-libs/gst/codecparsers/Makefile.am:
18239 HEVC: Allow to build h265 codecparser internally
18240 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18242 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18244 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18245 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18246 * gst-libs/gst/vaapi/gstvaapisurface.c:
18247 guard buffer export API if not available
18248 The support for buffer exports in VA-API was added in version 0.36. These
18249 interfaces are for interop with EGL, OpenCL, etc.
18250 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18251 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18252 This patch guards all the buffer exports handling (and dmabuf allocator) if
18253 the detected VA-API version is below 0.36.
18254 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18256 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18258 * ext/codecparsers:
18259 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18260 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18261 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18262 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18263 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18264 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18266 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18268 * gst/vaapi/gstvaapidecode.c:
18269 vaapidecode: unref video codec frame twice
18270 We get one reference when the frame is passed to decode_handle_frame()
18271 and create another one in gst_vaapi_decoder_push_frame().
18272 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18273 Here the frame is always released twice:
18274 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18275 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18276 In gst_vaapidecode_reset_full() both references to the frame must be
18278 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18279 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18281 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18283 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18284 libs: remove unused variables
18285 clang reports these unused variables. Let's get rid of them.
18286 This patch is a missing part of commit c82e5173
18287 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18289 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18291 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18292 decoder: mpeg4: remove an spurious comparison
18293 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18294 less than zero. Hence this pre-condition test is a no-op. This patch removes
18296 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18298 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18300 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18301 encoder: h264: casts slice_param->slice_type
18302 slice_type in slice_param is defined as (char *), but it is compared against a
18303 signed integer. clang complains about this comparison.
18304 This patch casts the variable.
18305 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18307 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18309 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18310 encoder: avoid GstVaapiCodedBuffer redefinition
18311 The symbol GstVaapiCodedBuffer is already defined in
18312 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18313 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18314 This patch removes that redefinition.
18315 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18317 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18319 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18320 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18321 libs: remove unused variables
18322 clang reports these unused variables. Let's get rid of them.
18323 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18325 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18327 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18328 encoder: mpeg2: use fabsf() instead of abs()
18329 The member value in frame_rate_tab is float, the result of the abs() function
18330 should be float too. But abs() only manages integers.
18331 This patch replaces abs() with fabsf() to handle correctly the possible floats
18333 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18335 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18337 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18338 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18339 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18340 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18341 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18342 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18343 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18344 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18345 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18347 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18352 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18356 Changing source code download links from https://gitorious to https://github
18357 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18358 -- README: Change the gstreamer-vaapi webpage link
18360 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18362 * ext/codecparsers:
18363 codecparsers: update to gst-vaapi-branch commit 1f792e4
18364 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18365 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18366 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18367 2b92a67: h264parse: reset the parser information when caps changes
18368 05eee86: codecparsers: Indent file
18369 e27a38b: codecparsers: Add READ_UE_MAX macro
18370 2036471: Constify some static arrays everywhere
18372 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18374 * gst/vaapi/gstvaapivideoconverter_glx.c:
18375 * gst/vaapi/gstvaapivideoconverter_x11.c:
18376 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18378 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18380 * gst/vaapi/gstvaapidecode.c:
18381 * gst/vaapi/gstvaapidecodebin.c:
18382 * gst/vaapi/gstvaapiencode_h264.c:
18383 * gst/vaapi/gstvaapiencode_jpeg.c:
18384 * gst/vaapi/gstvaapiencode_mpeg2.c:
18385 * gst/vaapi/gstvaapiencode_vp8.c:
18386 * gst/vaapi/gstvaapipluginbase.c:
18387 * gst/vaapi/gstvaapipluginutil.c:
18388 * gst/vaapi/gstvaapipluginutil.h:
18389 * gst/vaapi/gstvaapipostproc.c:
18390 * gst/vaapi/gstvaapisink.c:
18391 * gst/vaapi/gstvaapivideobuffer.c:
18392 * gst/vaapi/gstvaapivideobufferpool.c:
18393 * gst/vaapi/gstvaapivideocontext.c:
18394 * gst/vaapi/gstvaapivideocontext.h:
18395 * gst/vaapi/gstvaapivideoconverter_glx.h:
18396 * gst/vaapi/gstvaapivideoconverter_x11.h:
18397 * gst/vaapi/gstvaapivideomemory.h:
18398 * gst/vaapi/gstvaapivideometa_texture.c:
18399 Removal of gstreamer-1.0 support
18400 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18401 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18402 This patch removes all the pre-processor conditional code compilation guarded
18404 Thus, all the video converters were removed too.
18405 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18406 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18407 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18409 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18411 * gst-libs/gst/vaapi/gstcompat.h:
18412 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18413 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18414 * gst-libs/gst/vaapi/sysdeps.h:
18415 * gst/vaapi/gstcompat.h:
18416 * gst/vaapi/gstvaapi.c:
18417 * gst/vaapi/gstvaapidecode.c:
18418 * gst/vaapi/gstvaapidecodebin.c:
18419 * gst/vaapi/gstvaapiencode.c:
18420 * gst/vaapi/gstvaapiencode_h264.c:
18421 * gst/vaapi/gstvaapiencode_jpeg.c:
18422 * gst/vaapi/gstvaapiencode_mpeg2.c:
18423 * gst/vaapi/gstvaapiencode_vp8.c:
18424 * gst/vaapi/gstvaapiparse.c:
18425 * gst/vaapi/gstvaapipluginbase.c:
18426 * gst/vaapi/gstvaapipluginutil.c:
18427 * gst/vaapi/gstvaapipostproc.c:
18428 * gst/vaapi/gstvaapisink.c:
18429 * gst/vaapi/gstvaapiuploader.c:
18430 * gst/vaapi/gstvaapivideobuffer.c:
18431 * gst/vaapi/gstvaapivideobufferpool.c:
18432 * gst/vaapi/gstvaapivideocontext.c:
18433 * gst/vaapi/gstvaapivideoconverter_glx.c:
18434 * gst/vaapi/gstvaapivideoconverter_x11.c:
18435 * gst/vaapi/gstvaapivideomemory.c:
18436 * gst/vaapi/gstvaapivideometa.c:
18437 * gst/vaapi/gstvaapivideometa_texture.c:
18439 update and move gstcompat.h
18440 The purpose of gstcompat.h is to couple the API differences among
18441 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18442 in this compatibility layer shall be removed.
18443 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18444 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18445 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18446 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18447 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18448 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18449 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18450 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18452 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18455 * gst/vaapi/Makefile.am:
18456 autotools: remove gstreamer-1.0 support
18457 This patch only removes the support of gstreamer-1.0 in the autotools
18458 scripts. No other files are touched.
18459 In the automake file all the converters were deprecated.
18460 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18461 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18462 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18464 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18469 Remove the gstreamer-videoutils submodule
18471 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18474 * gst-libs/gst/Makefile.am:
18475 * gst-libs/gst/vaapi/Makefile.am:
18476 * gst-libs/gst/video/Makefile.am:
18477 * gst/vaapi/Makefile.am:
18478 * tests/Makefile.am:
18479 Remove libgstvaapi-videoutils.so
18480 This library was intended to add the base classes for video decoders which
18481 where not included in gstreamer-0.10.
18482 Since the support of gstreamer-0.10 is deprecated those classes are not
18483 required, thus the whole library is removed.
18484 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18485 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18486 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18488 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18491 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18492 * gst-libs/gst/vaapi/gstvaapiutils.c:
18493 * tests/test-subpicture.c:
18494 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18495 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18496 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18497 deprecated these guards are not required.
18498 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18499 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18500 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18502 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18504 * gst-libs/gst/vaapi/gstcompat.h:
18505 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18506 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18507 * gst-libs/gst/vaapi/gstvaapiimage.c:
18508 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18509 * gst-libs/gst/vaapi/video-format.c:
18510 * gst-libs/gst/vaapi/video-format.h:
18511 * gst/vaapi/gstvaapi.c:
18512 * gst/vaapi/gstvaapidecode.c:
18513 * gst/vaapi/gstvaapidecodebin.c:
18514 * gst/vaapi/gstvaapidownload.c:
18515 * gst/vaapi/gstvaapidownload.h:
18516 * gst/vaapi/gstvaapiencode.c:
18517 * gst/vaapi/gstvaapiencode_h264.c:
18518 * gst/vaapi/gstvaapiencode_jpeg.c:
18519 * gst/vaapi/gstvaapiencode_mpeg2.c:
18520 * gst/vaapi/gstvaapiencode_vp8.c:
18521 * gst/vaapi/gstvaapiparse.c:
18522 * gst/vaapi/gstvaapipluginbase.c:
18523 * gst/vaapi/gstvaapipluginbase.h:
18524 * gst/vaapi/gstvaapipluginutil.c:
18525 * gst/vaapi/gstvaapipluginutil.h:
18526 * gst/vaapi/gstvaapipostproc.c:
18527 * gst/vaapi/gstvaapisink.c:
18528 * gst/vaapi/gstvaapiupload.c:
18529 * gst/vaapi/gstvaapiupload.h:
18530 * gst/vaapi/gstvaapiuploader.c:
18531 * gst/vaapi/gstvaapivideobuffer.c:
18532 * gst/vaapi/gstvaapivideoconverter_glx.c:
18533 * gst/vaapi/gstvaapivideoconverter_x11.c:
18534 * gst/vaapi/gstvaapivideometa.c:
18535 * gst/vaapi/gstvaapivideometa.h:
18536 * tests/test-filter.c:
18537 * tests/test-subpicture.c:
18538 Removal of gstreamer-0.10 support
18539 This patch removes all the pre-processor conditional code compilation guarded
18540 for gstreamer-0.10.
18541 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18542 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18543 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18545 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18548 * debian.upstream/control.in:
18549 * gst-libs/gst/video/Makefile.am:
18550 * gst/vaapi/Makefile.am:
18551 autotools: remove gstreamer-0.10 support
18552 This patch only removes the support of gstreamer-0.10 in the autotools
18553 scripts. No other files are touched.
18554 The configuration parameter --gstreamer-api was deleted since now it is always
18556 The verification of vmethod query in GstBaseSinkClass was removed since it was
18557 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18559 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18561 The automake files were changed accordingly.
18562 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18563 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18564 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18565 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18567 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18569 * gst/vaapi/gstvaapidecode.c:
18570 vaapidecode: add drain() vmethod
18571 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18572 class. This patch implements this new method.
18573 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18574 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18575 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18577 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18579 * gst/vaapi/gstvaapidecode.c:
18580 vaapidecode: remove vmethod reset()
18581 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18582 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18583 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18584 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18585 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18587 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18589 * gst/vaapi/gstvaapidecode.c:
18590 vaapidecode: handle flush() vmethod
18591 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18592 and flush() was added.
18593 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18594 superior. Otherwise, reset() is set.
18595 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18596 was renamed to gst_vaapidecode_internal_flush().
18597 2) The new vmethod flush() always do a hard full reset.
18598 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18599 gather all collected data with gst_video_decoder_have_frame()
18600 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18601 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18602 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18604 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18606 * gst/vaapi/gstvaapidecode.c:
18607 vaapidecode: call the correct query function
18608 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18609 a bug was introduced: when calling the parent's query function of the
18610 src pad, the one of the sink pad is called instead. This patch fixes
18612 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18614 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18617 gitmodules: Use https:// url instead of git:// for submodules.
18618 Gitorious is failing to clone repositories over git:// url.
18620 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18622 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18623 vaapidisplay: mark X11 display as compatible with EGL
18624 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18625 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18626 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18627 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18629 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18631 * gst/vaapi/gstvaapidecode.c:
18632 vaapidecode: Don't crash if a buffer outlives the decoder
18633 Sometimes, for example, when switching video streams but keeping
18634 the same sink, the surface will be released after the decoder is
18635 stopped and replaced. This caused a crash because the release
18636 callback was called on an invalid pointer.
18637 The patch adding an additional reference to the decoder object in the buffer.
18638 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18639 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18640 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18642 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18644 * gst/vaapi/gstvaapidecode.c:
18645 vaapidecode: clean-ups (indentation, drop unused variables)
18647 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18649 * gst/vaapi/gstvaapidecode.c:
18650 vaapidecode: use the query virtual methods in 1.4
18651 GstVideoDecoder, the base class of vaapidecode, added support for
18652 pad queries as virtual methods. This patch enables the use of that
18653 support, while keeping support for lower versions of gstreamer.
18654 This patch is important because GstVideoDecoder takes care of other
18655 queries that might be important in the pipeline managing.
18656 v2: 1) rebase to current master
18657 2) fix indentation with gst-indent
18658 3) simplify the patch layout
18659 4) fix the context query
18660 5) initialise the filter to NULL
18661 6) improve the query log message for gst-1.2
18662 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18664 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18666 * gst/vaapi/gstvaapipostproc.c:
18667 * gst/vaapi/gstvaapipostproc.h:
18668 vaapipostproc: always activate buffer pool
18669 The vaapipostproc has a proxy flag to know if the the buffer pool is
18670 already active. But this fails in some situations where it is needed
18671 to renegotiate the buffer pool.
18672 This patch removes that flag so the renegotiation is done whenever is
18674 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18676 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18678 * gst/vaapi/gstvaapisink.c:
18679 vaapisink: fix minor memory leak in debug mode.
18680 The gst_video_colorimetry_to_string() function returns a newly created
18681 string that represents the GstVideoColorimetry value. So, that needs
18682 to be released after usage, in e.g. GST_DEBUG().
18684 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18686 * gst/vaapi/gstvaapidecodebin.h:
18687 vaapidecodebin: Avoid usage of "__" prefix in macro names
18688 Avoiding "__" prefix usage in Header File Guards as per
18689 C standard recommendation.
18691 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18693 * gst/vaapi/gstvaapi.c:
18694 plugins: Disable vaapidecodebin for GStreamer < 1.4
18695 There are autoplugging issues in GStreamer-1.2.
18696 Lets disable vaapidecodebin untill we get some workarounds for this.
18698 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18700 * gst/vaapi/Makefile.am:
18701 * gst/vaapi/gstvaapi.c:
18702 * gst/vaapi/gstvaapidecodebin.c:
18703 * gst/vaapi/gstvaapidecodebin.h:
18704 plugins: Add a vaapidecodebin element
18705 Add a "vaapidecodebin" element to vaapi plugins.
18706 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18707 The Reasons for implementing a new bin element:
18708 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18709 with out any dependency to upstream gstreamer.
18710 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18711 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18712 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18713 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18714 -- Help to maintain a single thread implementation in vaapidecode.
18715 This will result a dead-lock free vaapidecode in most of the cases.
18716 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18717 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18719 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18721 * gst/vaapi/gstvaapidecode.c:
18722 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18724 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18726 * gst/vaapi/gstvaapidecode.c:
18727 * gst/vaapi/gstvaapidecode.h:
18728 vaapidecode: Switch back to Single thread implementation
18729 Because the decoder uses the thread from handle_frame() to decode a frame,
18730 the src pad task creates an unsolveable AB-BA deadlock between
18731 handle_frame() waiting for a free surface and decode_loop() pushing
18732 decoded frames out.
18733 Instead, have handle_frame() take responsibility for pushing surfaces,
18734 and remove the deadlock completely. If you need a separate thread
18735 downstream, you can insert a queue between vaapidecode and its downstream
18737 Another justification for the single thread implementation is,
18738 there are two many point of locking in gstreamer-vaapi's current
18739 implementation which can lead to deadlocks.
18740 https://bugzilla.gnome.org/show_bug.cgi?id=742605
18741 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18742 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18743 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18745 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18747 * gst/vaapi/gstvaapipluginbase.c:
18748 plugins: fix detection of upstream v4l2src element.
18749 Improve check for upstream element that requires DMABUF buffer pool,
18750 e.g. v4l2src element. In particular, make sure to traverse through
18751 any additional capsfilter for instance.
18752 Note: the traversal to the top-most upstream element could be made
18753 more generic, but we are insofar only interested in supporting pipes
18754 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18755 specification for a desired video camera format, or resolution.
18757 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18759 * gst/vaapi/gstvaapivideomemory.c:
18760 plugins: fix allocation of DMABUF memory.
18761 The dmabuf allocator would close the DMABUF handle passed in the init
18762 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18763 to avoid a double close, ultimately in the underlying driver that owns
18766 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18768 * gst/vaapi/gstvaapidecode.c:
18769 vaapidecode: keep src caps and output state in sync
18770 vaapidecode keeps an output state that use the format
18771 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18772 for a correct negotiation.
18773 I don't see the rational behind this decoupling, it looks like
18774 unnecessary complexity. This patch simplify this logic keeping
18775 in sync the output state and the src caps.
18776 This patch improves the readability of the function
18777 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18778 the patch validates if the buffer pool has the configuration for
18779 the GL texture upload meta, in order to set the caps feature
18780 meta:GLTextureUpload. Otherwise, the I420 format is set back.
18781 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18782 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18783 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18785 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18787 * gst/vaapi/gstvaapidecode.c:
18788 vaapidecode: upload meta only if feature and allocation
18789 When vaapidecode finishes the decoding of a frame and pushes it,
18790 if, in the decide_allocation() method, it is determined if the
18791 next element supports the GL texture upload meta feature, the
18792 decoder adds the buffer's meta.
18793 Nonetheless, in the same spirit of the commit 71d3ce4d, the
18794 determination if the next element supports the GL texture upload
18795 meta needs to check both the preferred caps feature *and* if the
18796 allocation query request the API type.
18797 This patch, first removes the unused variable need_pool, and
18798 determines the attribute has_texture_upload_meta using the
18799 preferred caps feature *and* the allocation query.
18800 Also, the feature passed to GstVaapPluginBase is not longer
18801 determined by has_texture_upload_meta, but by the computed
18803 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18804 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18805 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18807 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18809 * gst/vaapi/gstvaapidecode.c:
18810 * gst/vaapi/gstvaapidecode.h:
18811 * gst/vaapi/gstvaapipluginutil.c:
18812 * gst/vaapi/gstvaapipluginutil.h:
18813 vaapidecode: delayed src caps negotiation
18814 Currently the src caps are set immediately after the sink caps are set, but in
18815 that moment the pipeline might not fully constructed and the video sink has
18816 not negotiated its supported caps and features. As a consequence, in many cases
18817 of playback, the least optimized caps feature is forced. This is partially the
18818 responsible of bug #744039.
18819 Also, vaapidecode doesn't attend the reconfigure events from downstream,
18820 which is a problem too, since the video sink can be changed with different
18822 This patch delays the src caps, setting them until the first frame arrives to
18823 the decoder, assuming until that very moment the whole pipeline is already
18824 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18825 as a consequence of a reconfiguration event from downstream.
18826 A key part of this patch is the new GstVaapiCapsFeature
18827 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18828 doesn't have a peer yet. Also, for a better report of the caps allowed
18829 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18830 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18831 v3: move the input_state unref to close(), since videodecoder resets at
18832 some events such as navigation.
18833 v4: a) the state_changed() callback replaces the input_state if the media
18834 changed, so this case is also handled.
18835 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18836 always the input_state, the parameter were removed.
18837 c) there were a lot of repeated code handling the input_state, so I
18838 refactored it with the function gst_vaapi_decode_input_state_replace().
18839 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18840 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18841 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18843 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18845 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18846 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18847 encoder: h264: add support for more than 2 views
18848 Add support for H.264 MVC Multiview High profile encoding with
18849 more than 2 views. All views within the same accesss unit are
18850 provided in increasing order of view order index (VOIdx).
18851 Upto 10 view are supported for now.
18852 A new property "view-ids" has been provided for the plugins to
18853 set the view ids (which is an array of guint values) to be used
18855 https://bugzilla.gnome.org/show_bug.cgi?id=732453
18857 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18859 * gst/vaapi/gstvaapipluginbase.c:
18860 plugins: upload meta only if feature and allocation
18861 Working on bug #743687, I realized that vaapidecode always adds to its buffer
18862 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18863 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18864 Nevertheless, there are occasions where the query has the API type, but the
18865 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18866 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18867 buffer pool configuration, and adds its buffer's meta to each output buffer,
18868 even if the negotiated caps feature is memory:SystemMemory with I420 color
18870 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18871 that relates caps <-> GL upload method. If it receives a buffer with color
18872 format I420, it assumes that it doesn't have a texture upload meta, because
18873 only those with RGB color format has it. Our buffers, with I420 format, say
18874 that they have the upload meta too. In that case the mapped method is a dummy
18875 one which does nothing. I reported this issue in bug #744039 (the patch,
18876 obviously, was rejected).
18877 This patch workarounds the problem: the buffer pool's configuration option
18878 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18879 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18880 caps feature is meta:GstVideoGLTextureUploadMeta.
18881 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18882 in all they seem to work correctly.
18883 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18884 [adapted to fit current EGL changes]
18885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18887 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18889 * gst-libs/gst/vaapi/gstvaapitexture.c:
18890 * gst-libs/gst/vaapi/gstvaapitexture.h:
18891 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18892 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18893 * gst/vaapi/gstvaapivideometa_texture.c:
18894 plugins: add support for GstVideoGLTextureOrientation.
18895 Add support for GstVideoGLTextureOrientation modes. In particular,
18896 add orientation flags to the GstVaapiTexture wrapper and the GLX
18897 implementations. Default mode is that texture memory is laid out
18898 with top lines first, left row first. Flags indicate whether the
18899 X or Y axis need to be inverted.
18901 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18903 * gst/vaapi/gstvaapidecode.c:
18904 * gst/vaapi/gstvaapipluginbase.c:
18905 * gst/vaapi/gstvaapipluginutil.c:
18906 * gst/vaapi/gstvaapipluginutil.h:
18907 * gst/vaapi/gstvaapipostproc.c:
18908 * gst/vaapi/gstvaapivideometa_texture.c:
18909 plugins: add support for BGRA textures.
18910 Some frameworks (EFL) expect BGRA textures for storage. However,
18911 adding support for that broadly into GStreamer framework implies
18912 two kinds of hacks: (i) libgstgl helpers currently do not support
18913 BGRA textures correctly, (ii) we need to better parse downstream
18914 suggested caps and intersect them with what the VA plugin elements
18915 can offer to them for GL texturing.
18917 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18919 * gst/vaapi/gstvaapipluginutil.c:
18920 plugins: fix support for Wayland/EGL running alongside X11.
18921 When multiple display servers are available, the glimagesink element
18922 (from GStreamer 1.4) may not be able to derive a global display in
18923 Wayland. Rather, a "window"-specific display is created. In this case,
18924 the GstGLDisplay handle available through GstGLContext is invalid.
18925 So, try to improve heuristics for display server characterisation in
18926 those particular situations.
18928 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18931 * gst/vaapi/Makefile.am:
18932 * gst/vaapi/gstvaapidecode.c:
18933 * gst/vaapi/gstvaapipluginbase.c:
18934 * gst/vaapi/gstvaapipluginutil.c:
18935 * gst/vaapi/gstvaapivideobufferpool.c:
18936 * gst/vaapi/gstvaapivideometa_texture.c:
18937 plugins: add initial support for EGL.
18938 Add initial support for EGL through GstVideoGLTextureUploadMeta.
18939 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18940 downstream supplied GstGLContext configuration, i.e. use its native
18941 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18942 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18944 https://bugzilla.gnome.org/show_bug.cgi?id=741079
18946 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18948 * gst/vaapi/gstvaapivideometa_texture.c:
18949 plugins: track video texture size changes.
18950 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18951 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18952 now update the texture size from the GstVideoMeta, if any, or reset
18953 to some defaults otherwise.
18955 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18957 * gst/vaapi/gstvaapipluginbase.c:
18958 * gst/vaapi/gstvaapipluginbase.h:
18959 * gst/vaapi/gstvaapipluginutil.c:
18960 plugins: ensure VA display matches GL context expectations.
18961 If a GstGLContext is supplied by the downstream element, then make
18962 sure that the VA plugin element gets a compatible display to what
18963 is requested by the GL context. e.g. re-allocate a VA/GLX display
18964 when a GLX context is provided by the downstream element.
18966 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18969 * gst/vaapi/Makefile.am:
18970 * gst/vaapi/gstvaapipluginbase.c:
18971 * gst/vaapi/gstvaapipluginbase.h:
18972 plugins: record downstream GstGLContext.
18973 Record GL context supplied by downstream elements. This can be useful,
18974 and further needed, to enforce run-time check that the GL context is
18975 compatible for use by libgstvaapi. e.g. check that we don't create a
18976 VA/GLX display for EGL/X11 contexts.
18977 https://bugzilla.gnome.org/show_bug.cgi?id=725643
18978 Original-path-by: Matthew Waters <ystreet00@gmail.com>
18980 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18982 * tests/Makefile.am:
18985 Add initial support for EGL to tests. The new EGL backend can be selected
18986 through the --egl command line option. The OpenGL|ES version can further
18987 be selected with the --gles-version command line option, where the default
18988 of 0 means "desktop" OpenGL.
18990 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18992 * gst-libs/gst/vaapi/Makefile.am:
18993 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18994 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18995 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18996 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18997 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18998 egl: add windowing support.
18999 This provides for some basic EGL window abstraction.
19001 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19003 * gst-libs/gst/vaapi/Makefile.am:
19004 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19005 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
19006 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
19007 egl: add texture abstraction.
19008 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
19009 or import a foreign allocated one, while still allowing updates from a
19012 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19014 * gst-libs/gst/vaapi/Makefile.am:
19015 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
19016 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
19017 egl: allow for EGLImage imports into VA Surfaces.
19018 Add helpers to import EGLImage objects into VA surfaces. There are
19019 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
19020 which allows for implicit conversion from EGLImage to a VA surface
19021 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
19022 which exactly wraps the source EGLImage, typically in RGBA format
19023 with linear storage.
19024 Note: in case of (i), the EGLImage can be disposed right after the
19025 VA surface creation call, unlike in (ii) where the user shall ensure
19026 that the EGLImage is live until the associated VA surface is no longer
19028 https://bugzilla.gnome.org/show_bug.cgi?id=743847
19030 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19033 * gst-libs/gst/vaapi/Makefile.am:
19034 * gst-libs/gst/vaapi/egl_compat.h:
19035 * gst-libs/gst/vaapi/egl_vtable.h:
19036 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19037 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19038 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19039 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
19040 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
19041 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19042 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19043 * gst-libs/gst/vaapi/ogl_compat.h:
19044 Add initial support for EGL.
19045 Add initial support for EGL to libgstvaapi core library. The target
19046 display server and the desired OpenGL API can be programmatically
19047 selected at run-time.
19048 A comprehensive set of EGL utilities are provided to support those
19049 dynamic selection needs, but also most importantly to ensure that
19050 the GL command stream is executed from within a single thread.
19051 https://bugzilla.gnome.org/show_bug.cgi?id=743846
19053 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19055 * gst-libs/gst/vaapi/gstvaapivalue.c:
19056 libs: initialize GValues in a thread-safe manner.
19058 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19060 * gst-libs/gst/vaapi/gstvaapivalue.c:
19061 libs: re-indent all GValue related source code.
19063 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19065 * gst/vaapi/gstvaapidecode.c:
19066 vaapidecode: partially revert 0777f35.
19067 Reset the VA decoder after updating the base plugin caps, and most
19068 importantly, after GstVideoDecoder negotiation. The reason behind
19069 this is that the negotiation could trigger a last decide_allocation()
19070 where we could actually derive a new GstVaapiDisplay to use from the
19071 downstream element. e.g. GLX backend.
19073 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19075 * gst/vaapi/gstvaapidecode.c:
19076 vaapidecode: Caps query should return the list of all supported caps.
19077 Query caps filtering should be always done on top of allowed caps instead
19078 of existing fixed caps on a particular pad.
19079 This fixes the mvc stream decoding when there is a base view(high profile)
19080 and non-base view(stereo-high profile).
19082 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19084 * gst/vaapi/gstvaapidecode.c:
19085 vaapidecode: intersect filter from query caps
19086 According to documentation[1] when receiving a GST_QUERY_CAPS
19087 the return value should be all formats that this elements supports,
19088 taking into account limitations of peer elements further downstream
19089 or upstream, sorted by order of preference, highest preference first.
19090 This patch add those limitations intersecting with the received
19091 filter in the query. Also takes into account the already negotiated
19092 caps. Also adds the processing of the query on the SRC pad.
19093 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
19094 https://bugzilla.gnome.org/show_bug.cgi?id=744406
19096 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19098 * gst-libs/gst/vaapi/Makefile.am:
19099 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19100 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19101 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19102 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19103 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19104 * gst/vaapi/gstvaapivideomemory.c:
19105 Fix compiler warnings
19106 This patch fixes some warnings that gcc 4.9 reports.
19107 https://bugzilla.gnome.org/show_bug.cgi?id=744411
19109 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19111 * gst/vaapi/gstvaapidecode.c:
19112 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
19113 Hence the function name is shown in the gst-inspect-1.0 information
19114 rather than the memory address.
19115 https://bugzilla.gnome.org/show_bug.cgi?id=744330
19117 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19119 * gst/vaapi/gstvaapidecode.c:
19120 vaapidecode: log flow error name
19121 https://bugzilla.gnome.org/show_bug.cgi?id=744387
19123 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19125 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19126 VC1: decoder: Ignore VC1 user BDU's
19127 Don't return error if the processed BDU is a user one, just ignore them.
19128 https://bugzilla.gnome.org/show_bug.cgi?id=741237
19129 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19131 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
19133 * gst/vaapi/gstvaapidecode.c:
19134 * gst/vaapi/gstvaapipluginbase.c:
19135 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
19136 This is required in GStreamer, elements should never return
19137 GST_FLOW_ERROR without posting an ERROR message on the bus.
19138 https://bugzilla.gnome.org/show_bug.cgi?id=744620
19140 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19142 * gst/vaapi/Makefile.am:
19143 * gst/vaapi/gstvaapi.c:
19144 * gst/vaapi/gstvaapiencode_vp8.c:
19145 * gst/vaapi/gstvaapiencode_vp8.h:
19146 plugins: Add VP8 Encoder
19148 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19150 * gst-libs/gst/vaapi/Makefile.am:
19151 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19152 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19153 Add VP8 Encoder to core libgstvaapi.
19155 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19158 configure: Add Check for VP8 Encoding API
19160 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19162 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19163 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19164 Added rounding control handling for VC1 simple and Main profile
19165 based on VC1 standard spec: section 8.3.7
19166 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19167 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19168 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19170 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19172 * gst/vaapi/Makefile.am:
19173 build: fix make dist when certain conditionals not met.
19174 Fix typo which was preventing the inclusion of jpeg encoder
19175 source files from make dist (when there is no jpeg encoder
19176 API support in libva).
19178 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19180 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19181 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19182 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19183 use native YUV420 format (which is i420) as default.
19185 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19187 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19188 encoder: Only support YUV420 native format as input for now
19189 Practically we should be able to support more formats, for eg:
19190 JPEG Encoder can support YUV422, RGBA and all.
19191 But this is causing more issues which need proper fix here and there.
19193 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19195 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19196 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19197 * gst/vaapi/gstvaapidecode.c:
19198 vaapidecode: Check the condition after taking the lock
19199 Otherwise the condition could become true before the lock
19200 is taken and the g_cond_signal() could be called
19201 before the g_cond_wait(), so the g_cond_wait() is never
19203 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19205 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19207 * gst/vaapi/Makefile.am:
19208 * gst/vaapi/gstvaapi.c:
19209 * gst/vaapi/gstvaapiencode_jpeg.c:
19210 * gst/vaapi/gstvaapiencode_jpeg.h:
19211 plugins: Add JPEG encoder element
19213 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19215 * gst-libs/gst/vaapi/gstvaapicontext.c:
19216 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19218 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19220 * gst-libs/gst/vaapi/gstvaapicontext.c:
19221 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19222 Don't add the VAConfigAttribRateControl to the attribute list using
19223 for the vaCreateConfig if it is not supported by the driver.
19225 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19227 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19228 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19230 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19232 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19233 gstvaapiencoder: Fix crash when handling rate control mask
19234 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19235 might not be supporting any kind of rate control mechanisms.
19238 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19240 * gst-libs/gst/vaapi/Makefile.am:
19241 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19242 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19243 encoder: Add JPEG Encoder
19245 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19247 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19248 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19249 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19251 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19253 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19254 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19255 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19256 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19257 Encode: Add support for Picture level Entrypoint
19258 This is useful for JPEG encoding which is utilizing picture level
19259 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19261 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19264 configure: Add Check for JPEG encoding API
19266 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19271 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19274 Bump version for development.
19276 === release 0.5.10 ===
19278 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19283 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19288 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19290 * gst/vaapi/gstvaapivideometa_texture.c:
19291 Fix compilation error if there is no GL/gl.h header file installed
19293 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19295 * gst/vaapi/gstvaapivideomemory.h:
19296 plugins: drop leftover declaration.
19297 GstVaapiVideoMemory quark is not needed any more, and the actual
19298 implementation was already removed bfore the merge. i.e. this is
19299 an oversight for a hunk that was not meant to be pushed.
19301 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19303 * gst/vaapi/gstvaapipluginbase.c:
19304 * gst/vaapi/gstvaapivideobufferpool.c:
19305 * gst/vaapi/gstvaapivideobufferpool.h:
19306 * gst/vaapi/gstvaapivideomemory.c:
19307 * gst/vaapi/gstvaapivideomemory.h:
19308 plugins: add support for dma_buf exports (v4l2src).
19309 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19310 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19311 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19312 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19313 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19314 with --without-libv4l2.
19315 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19317 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19320 * gst/vaapi/Makefile.am:
19321 * gst/vaapi/gstvaapipluginbase.c:
19322 plugins: add support for dma_buf imports.
19323 Allow imports of v4l2 buffers into VA surfaces for further operation
19324 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19325 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19326 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19327 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19329 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19331 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19332 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19333 surface: add support for GEM buffer imports.
19334 Add support for GEM buffer imports. This is useful for VA/EGL interop
19335 with legacy Mesa implementations, or when it is desired or required to
19336 support outbound textures for instance.
19337 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19339 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19341 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19342 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19343 surface: add support for dma_buf imports.
19344 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19345 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19346 resulting VA surface owns the supplied buffer handle.
19347 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19349 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19351 * gst-libs/gst/vaapi/gstvaapisurface.c:
19352 * gst-libs/gst/vaapi/gstvaapisurface.h:
19353 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19354 surface: add initial support for foreign buffer imports.
19355 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19356 create a VA surface from an external buffer provided throug the
19357 new GstVaapiBufferProxy object.
19359 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19361 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19362 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19363 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19364 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19365 surface: add support for GEM buffer exports.
19366 Add support for GEM buffer exports. This will only work with VA drivers
19367 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19368 to support interop with EGL and the "Desktop" GL specification. Indeed,
19369 the EXT_image_dma_buf_import extension is not going to be supported in
19370 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19372 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19373 in Desktop OpenGL context.
19374 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19376 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19378 * gst-libs/gst/vaapi/Makefile.am:
19379 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19380 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19381 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19382 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19383 surface: add support for dma_buf exports.
19384 Use the new VA buffer export APIs to allow for a VA surface to be
19385 exposed as a plain PRIME fd. This is in view to simplifying interop
19386 with EGL or OpenCL for instance.
19387 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19389 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19391 * gst-libs/gst/vaapi/Makefile.am:
19392 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19393 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19394 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19395 Add abstraction for exported VA buffers.
19396 The VA buffer export APIs work for a particular lifetime starting from
19397 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19398 it could be much more convenient to support implicit releases by simply
19399 having a refcount reaching zero.
19400 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19402 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19404 * gst-libs/gst/vaapi/Makefile.am:
19405 Add missing header file to Makefile
19406 Add gstvaapitexture_glx.h to Makefile.am
19408 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19410 * gst-libs/gst/vaapi/gstvaapicontext.c:
19411 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19412 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19413 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19414 * gst/vaapi/gstvaapipostproc.c:
19415 * gst/vaapi/gstvaapiuploader.c:
19416 * gst/vaapi/gstvaapivideobufferpool.c:
19417 * gst/vaapi/gstvaapivideomemory.c:
19418 * gst/vaapi/gstvaapivideomemory.h:
19419 * tests/test-surfaces.c:
19420 videopool: add optional flags for surface pool allocation.
19421 Reword surface pool allocation helpers so that to allow for a simple
19422 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19423 somewhat more elaborated/flexible form with optional allocation flags
19424 and precise GstVideoInfo specification.
19425 This is an API/ABI change, and SONAME version needs to be bumped.
19427 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19429 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19430 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19431 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19432 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19433 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19434 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19435 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19436 videopool: re-indent all GstVaapiVideoPool related source code.
19438 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19440 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19441 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19442 window: add toplevel display indirection for visualid and colormap.
19443 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19444 the best suitable window visual id and colormap. This is an indirection in
19445 view to supporting EGL and custom/generic replacements.
19447 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19449 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19450 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19451 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19452 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19453 window: add toplevel API to determine the colormap.
19454 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19455 currently active colormap bound to the supplied window, or actually
19456 create it if it does not already exist yet.
19458 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19460 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19461 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19462 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19463 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19464 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19465 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19466 window: add toplevel API to determine a visual id.
19467 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19468 the best suitable visual id for the supplied window. While doing so,
19469 also simplify the process by which an X11 window is created with a
19470 desired Visual, i.e. now use a visual id instead of a Visual object.
19472 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19474 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19475 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19476 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19477 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19478 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19479 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19480 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19481 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19482 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19483 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19484 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19485 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19486 window: add generic helper to create windows.
19487 Add a new generic helper function gst_vaapi_window_new() to create
19488 a window without having the caller to check for the display type
19489 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19490 to create windows, and the actual backend implementation fills it in.
19491 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19492 This is a simplification in view to supporting EGL.
19494 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19496 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19497 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19498 * gst-libs/gst/vaapi/gstvaapitexture.c:
19499 * gst/vaapi/gstvaapivideometa_texture.c:
19500 display: add utility function to check for OpenGL rendering.
19501 Add gst_vaapi_display_has_opengl() helper function to help determining
19502 whether the display can support OpenGL context to be bound to it, i.e.
19503 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19505 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19507 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19508 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19509 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19510 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19511 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19512 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19513 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19514 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19515 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19516 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19517 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19518 * gst/vaapi/gstvaapipluginutil.c:
19519 * gst/vaapi/gstvaapivideobuffer.c:
19520 * gst/vaapi/gstvaapivideometa_texture.c:
19521 display: refine the meaning of display type.
19522 Make gst_vaapi_display_get_display_type() return the actual VA display
19523 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19524 return the type of the GstVaapiDisplay instance. The former is used to
19525 identify the display server onto which the application is running, and
19526 the latter to identify the original object class.
19528 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19530 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19531 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19532 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19533 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19534 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19535 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19536 display: cosmetics (helper macros, new internal API names).
19537 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19538 Rename a few others used internally for improved consistency.
19540 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19542 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19543 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19544 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19545 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19546 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19547 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19548 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19549 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19550 display: record native display object.
19551 Record the underlying native display instance into the toplevel
19552 GstVaapiDisplay object. This is useful for fast lookups to the
19553 underlying native display, e.g. for creating an EGL display.
19555 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19557 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19558 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19559 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19560 display: use a recursive mutex for the display cache.
19561 Use a recursive mutex for the display cache so that a 3rdparty display
19562 object could be initialized during the initialization of the parent
19565 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19567 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19568 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19569 * gst-libs/gst/vaapi/gstvaapitexture.c:
19570 * gst-libs/gst/vaapi/gstvaapitexture.h:
19571 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19572 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19573 texture: add generic helper to create textures.
19574 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19575 and gst_vaapi_texture_new() to create a texture without having
19576 the caller to uselessly check for the display type himself. i.e.
19577 internally, there is now a GstVaapiDisplayClass hook to create
19578 textures, and the actual backend implementation fills it in.
19579 This is a simplification in view to supporting EGL.
19581 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19583 * gst-libs/gst/vaapi/Makefile.am:
19584 * gst-libs/gst/vaapi/gstvaapitexture.c:
19585 * gst-libs/gst/vaapi/gstvaapitexture.h:
19586 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19587 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
19588 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19589 * gst/vaapi/gstvaapivideoconverter_glx.c:
19590 * gst/vaapi/gstvaapivideometa_texture.c:
19591 * tests/test-textures.c:
19592 texture: move to core libgstvaapi base library.
19593 GstVaapiTexture is a generic abstraction that could be moved to the
19594 core libgstvaapi library. While doing this, no extra dependency needs
19595 to be added. This means that a GstVaapitextureClass is now available
19596 for any specific code that needs to be added, e.g. creation of the
19597 underlying GL texture objects, or backend dependent ways to upload
19598 a surface to the texture object.
19599 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19601 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19603 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19606 * gst-libs/gst/vaapi/Makefile.am:
19607 * gst-libs/gst/vaapi/gstvaapicompat.h:
19608 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19609 * gst-libs/gst/vaapi/gstvaapitexture.c:
19610 texture: drop support for VA/GLX interfaces.
19611 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19612 ease of use, but they had other caveats to deal with. It's now better
19613 to move on to legacy mode, whereby VA/GLX interop is two be provided
19614 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19615 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19617 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19619 * gst-libs/gst/vaapi/gstvaapitexture.c:
19620 * gst-libs/gst/vaapi/gstvaapitexture.h:
19621 * gst/vaapi/gstvaapivideoconverter_glx.c:
19622 * gst/vaapi/gstvaapivideometa_texture.c:
19623 * tests/test-textures.c:
19624 texture: add support for cropping rectangle during transfer.
19625 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19626 argument that would be used during transfer for cropping the source
19627 surface to the desired dimensions.
19628 Note: from a user point-of-view, he should create the GstVaapiTexture
19629 object with the cropped size. That's the default behaviour in software
19630 decoding pipelines that we need to cope with.
19631 This is an API/ABI change, and SONAME version needs to be bumped.
19632 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19634 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19636 * gst-libs/gst/vaapi/gstvaapitexture.c:
19637 * gst-libs/gst/vaapi/gstvaapitexture.h:
19638 texture: re-indent all GstVaapiTexture related source code.
19640 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19642 * gst-libs/gst/vaapi/gstvaapisurface.c:
19643 * gst-libs/gst/vaapi/gstvaapisurface.h:
19644 surface: add more fine-grained allocation helper.
19645 Add new gst_vaapi_surface_new_full() helper function that allocates
19646 VA surface from a GstVideoInfo template in argument. Additional flags
19647 may include ways to
19648 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19649 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19650 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19652 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19654 * gst-libs/gst/vaapi/gstvaapisurface.c:
19655 * gst-libs/gst/vaapi/gstvaapisurface.h:
19656 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19657 surface: re-indent all GstVaapiSurface related source code.
19659 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19661 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19662 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19663 surfaceproxy: add helper to create a wrapped surface object.
19664 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19665 a proxy. The main use case for that is to convey additional information
19666 at the proxy level that would not be suitable to the plain surface.
19668 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19670 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19671 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19672 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19673 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19675 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19678 libs: bump library major version.
19680 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19682 * gst-libs/gst/vaapi/gstvaapitypes.h:
19683 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19684 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19685 a non-zero and invalid id. This is useful to have a value
19686 that is still invalid for cases where zero could actually
19689 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19691 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19692 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19693 libs: expose GstVaapiMiniObject APIs to all backends.
19694 Make it possible to have all libgstvaapi backends (libs) access to a
19695 common GstVaapiMiniObject API and implementation. This is a minor step
19696 towards full exposure when needed, but restrict it to libgstvaapi at
19699 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19701 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19702 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19703 * gst-libs/gst/vaapi/gstvaapiobject.c:
19704 * gst-libs/gst/vaapi/gstvaapiobject.h:
19705 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19706 libs: re-indent all GstVaapiObject related source code.
19707 Re-indent and provide additional minor cosmetical changes to the
19708 GstVaapiMiniObject and GstVaapiObject source files.
19710 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19712 * gst/vaapi/gstvaapipluginutil.c:
19713 pluginutil: Fix clearing of subtitle overlay
19714 dvbsuboverlay signals no subtitles present by not setting
19715 GstVideoOverlayCompositionMeta on a buffer.
19716 Detect this, and remove subtitles whenever we have no overlay composition to
19718 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19720 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19722 * gst/vaapi/gstvaapipostproc.c:
19723 vaapipostproc: clear state on stop
19724 Otherwise restarting may fail because the state of vaapipluginbase and
19725 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19726 initailization and not call gst_vaapi_plugin_base_set_caps()
19728 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19730 * gst/vaapi/gstvaapidecode.c:
19731 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19733 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19735 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19736 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19737 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19738 since the vaaapi context creation (gstvaapicontext.c) can still use the
19739 default chroma type which is YUV420.
19740 https://bugzilla.gnome.org/show_bug.cgi?id=743567
19741 https://bugzilla.gnome.org/show_bug.cgi?id=743035
19743 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19745 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19746 * patches/videoparsers/series.frag:
19747 h264parse: drop patches merged upstream.
19748 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19750 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19752 * ext/codecparsers:
19753 codecparsers: update to gst-vaapi-branch commit d3b5c1b
19754 8194cac: h264parse: parse SPS subset
19755 64b7f52: h264parse: expose stereo-high profile
19756 774360a: h264parse: add initial support for MVC NAL units
19757 258478f: h264parser: fix stack smashing
19759 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19761 * gst/vaapi/gstvaapivideometa_texture.c:
19762 Fix compilation error if there is no GL/gl.h header file installed
19764 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19766 * gst/vaapi/gstvaapidecode.c:
19767 vaapidecode: commit updated srcpad caps to base plugin.
19768 Make sure that the GstVaapiPluginBase instance receives the new src
19769 pad caps whenever they get updated from within the GstVaapiDecoder
19771 This also ensures that downstream elements receive correctly sized
19772 SW decoded buffers if needed.
19773 https://bugs.tizen.org/jira/browse/TC-114
19775 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19777 * gst/vaapi/gstvaapidecode.c:
19778 vaapidecode: always reset decoder on ::set_format().
19779 Split GstVideoDecoder::set_format() handler to first update the sink
19780 pad caps and reset the active VA decoder instance based on those, and
19781 then update the src pad caps whenever possible, e.g. when the caps
19782 specify a valid video resolution.
19784 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19786 * gst/vaapi/gstvaapivideomemory.c:
19787 vaapivideomemory: don't crash when trying to allocate 0x0 images.
19788 In some occasions, a buffer pool is created for pre-initialization
19789 purposes regardless of whether a valid image size is available or
19790 not. However, during actual decode stage, the vaapidecode element
19791 is expected to update the srcpad caps with the new dimensions, thus
19792 also triggering a reset of the underlying bufferpool.
19794 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19796 * ext/codecparsers:
19797 codecparsers: update to gst-vaapi-branch commit 191cb2f
19798 347605a: h264parse: expose compatible profiles to downstream
19799 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19800 24a3126: Revert "h264parse: expose compatible profiles to downstream"
19801 8661740: h264parse: expose compatible profiles to downstream
19802 8b7ef3f: codecparsers: fix some compiler warnings
19804 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19806 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19807 encoder: h264: Fix the period between I/P frames
19808 If the key-frame period is set as one, then ip_period shuld be zero
19809 https://bugzilla.gnome.org/show_bug.cgi?id=734992
19811 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19813 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19814 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19815 https://bugzilla.gnome.org/show_bug.cgi?id=734993
19817 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19819 * gst/vaapi/gstvaapisink.c:
19820 vaapisink: Protect the X11 API invokations with proper locking
19821 https://bugzilla.gnome.org/show_bug.cgi?id=739808
19823 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19825 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19826 encoder: h264: fix pixel-aspect-ratio in encoded stream.
19827 Really report sample aspect ratio (SAR) as present, and make it match
19828 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19829 really make sure VUI parameter aspect_ratio_info_present_flag is set
19830 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19831 This is a leftover from git commit a12662f.
19832 https://bugzilla.gnome.org/show_bug.cgi?id=740360
19834 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19836 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19837 decoder: mpeg4: fix uninitialized variables.
19838 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19839 GST_MPEG4_USER_DATA so that a parse error would result in skipping
19840 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19841 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19843 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19845 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19846 encoder: h264: fix profile limits.
19847 Fix ensure_profile_limits() to lower profile to the desired limits,
19848 only if the latter are actually known and the profile needed to be
19851 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19853 * gst/vaapi/gstvaapipostproc.c:
19854 vaapipostproc: fix out caps for GLMemory.
19855 If the best downstream capsfeature turns out to be GLMemory, then make
19856 sure to propagate RGBA video format in caps to that element. This fixes
19857 the following pipeline: ... ! vaapipostproc ! glimagesink.
19859 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19861 * gst/vaapi/gstvaapipostproc.c:
19862 vaapipostproc: fix check for compatible src pad capsfilters.
19863 When an explicit output video format is selected, from an src pad
19864 capsfilter, make sure that the downstream element actually supports
19865 that format. In particular, fix crash with the following pipelines:
19866 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19867 XXX is a format not supported by xvimagesink.
19868 While doing so, also reduce the set of src pad filter caps to the
19869 actual set of allowed src pad caps.
19871 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19873 * gst/vaapi/gstvaapipostproc.c:
19874 * gst/vaapi/gstvaapipostproc.h:
19875 * gst/vaapi/gstvaapiuploader.c:
19876 * gst/vaapi/gstvaapiuploader.h:
19877 plugins: re-indent all video processing related source code.
19879 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19881 * gst/vaapi/gstvaapivideomemory.c:
19882 plugins: further fixes to the new "current" storage tracker.
19883 The ensure_surface() and ensure_image() functions shall only relate
19884 to the underlying backing store. The actual current flags are to be
19885 updated only through ensure_{surface,image}_is_current() or very other
19886 particular cases in GstMemory hooks.
19888 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19890 * gst/vaapi/gstvaapivideomemory.c:
19891 plugins: fix "current" video memory flags.
19892 If the surface proxy is updated into the GstVaapiVideoMemory, then
19893 it is assumed it is the most current representation of the current
19894 video frame. Likewise, make a few more arrangements to have the
19895 "current " flags set more consistently.
19897 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19899 * gst/vaapi/gstvaapivideomemory.c:
19900 * gst/vaapi/gstvaapivideomemory.h:
19901 * gst/vaapi/gstvaapivideometa.c:
19902 plugins: ensure VA surface is current prior to using it.
19903 When interacting with SW elements, the buffers and underlying video
19904 memory could be mapped as read/write. However, we need to use those
19905 buffers again as plain VA surfaces, we have to make sure the VA image
19906 is thus committed back to VA surface memory.
19907 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19909 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19911 * gst/vaapi/gstvaapivideomemory.c:
19912 plugins: enable memory maps for read & write.
19913 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19914 buffers can be further processed in-place, e.g. with a textoverlay.
19915 https://bugzilla.gnome.org/show_bug.cgi?id=704078
19916 [ported to current git master branch, amended commit message]
19917 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19919 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19921 * gst/vaapi/gstvaapidecode.c:
19922 * gst/vaapi/gstvaapipluginutil.c:
19923 * gst/vaapi/gstvaapipluginutil.h:
19924 * gst/vaapi/gstvaapipostproc.c:
19925 plugins: preserve framerate when updating src caps video format.
19926 In the current implementation, gst_video_info_set_format() would reset
19927 the whole GstVideoInfo structure first, prior to setting video format
19928 and size. So, coleteral information like framerate or pixel-aspect-
19930 Provide and use a unique gst_video_info_change_format() for overcome
19931 this issue, i.e. only have it change the format and video size, and
19932 copy over the rest of the fields.
19933 https://bugzilla.gnome.org/show_bug.cgi?id=734665
19935 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19937 * gst/vaapi/gstvaapi.c:
19938 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19939 This is for helping decodebin to autoplug the vaapidecode element.
19940 Decodebin is selecting decoder elements only based on rank and caps.
19941 Without overriding the autoplug-* signals there is no way to autoplug
19942 HW decoders inside decodebin. An easier soulution is to raise the
19943 rank of vaapidecode, so that it gets selected first.
19944 https://bugzilla.gnome.org/show_bug.cgi?id=739332
19946 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19948 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19949 * gst/vaapi/gstvaapidecode.c:
19950 vaapidecode: only expose supported profiles when needed.
19951 JPEG and VP8 codecs do not really support the concept of "profile". So,
19952 don't try to expose any set that wouldn't be supported by jpegparse, or
19953 ivfparse for instance.
19954 https://bugzilla.gnome.org/show_bug.cgi?id=739713
19955 https://bugzilla.gnome.org/show_bug.cgi?id=739714
19957 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19959 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19960 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19961 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19962 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19963 decoder: h264: add initial support for repeat-first-field (RFF) flag.
19964 Use the SEI pic_timing() message to track and propagate down the repeat
19965 first field (RFF) flag. This is only initial support as there is one
19966 other condition that could induce the RFF flag, which is not handled
19969 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19971 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19972 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19973 Fix the decoding process for picture order count type 0 when the previous
19974 picture had a memory_management_control_operation = 5. In particular, fix
19975 the actual variable type for prev_pic_structure to hold the full bits of
19976 the picture structure.
19977 In practice, this used to work though, due to the underlying type used to
19978 express a gboolean.
19980 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19982 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19983 decoder: h264: fix detection of top-field-first (TFF) flag.
19984 Use the SEI pic_timing() message to track the pic_struct variable when
19985 present, or infer it from the regular slice header flags field_pic_flag
19986 and bottom_field_flag. This fixes temporal sequence ordering when the
19987 output pictures are to be displayed.
19988 https://bugzilla.gnome.org/show_bug.cgi?id=739291
19990 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19992 * ext/codecparsers:
19993 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19994 1241840 h264: fix derivation of MaxPicNum variable
19995 3bd718e h264: fix GstH264ParserResult documentation typo
19996 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19997 b08e4be h264parse: don't unnecesarily set src_caps
19999 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20001 * gst/vaapi/gstvaapipostproc.c:
20002 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
20003 Added the same Klass specifications used in other upstream
20004 video postprocessing elements like videoconvert, videoscale,
20005 videobalance and deinterlace.
20006 An example use case is for this is to help the playsink
20007 to autoplug the hardware accelerated deinterlacer.
20009 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20011 * gst/vaapi/gstvaapipostproc.c:
20012 vaapipostproc: Tweak the output video format setting to enable the autoplugging
20013 This is a workaround until auto-plugging is fixed when
20014 format=ENCODED + memory:VASurface caps feature are provided.
20015 Use the downstream negotiated video format as the output video format
20016 if the user didn't ask for the colorspace conversion explicitly.
20017 Usecase: This will help to connect elements like videoscale, videorate etc
20019 https://bugzilla.gnome.org/show_bug.cgi?id=739443
20021 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20023 * gst/vaapi/gstvaapipostproc.c:
20024 * gst/vaapi/gstvaapipostproc.h:
20025 vaapipostproc: allow user defined scaling mode.
20026 Add new "scale-method" property to expose the scaling mode to use during
20027 video processing. Note that this is only a hint, and the actual behaviour
20028 may differ from implementation (VA driver) to implementation.
20030 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20032 * gst-libs/gst/vaapi/gstvaapifilter.c:
20033 * gst-libs/gst/vaapi/gstvaapifilter.h:
20034 * gst-libs/gst/vaapi/gstvaapiutils.c:
20035 * gst-libs/gst/vaapi/gstvaapiutils.h:
20036 filter: add initial support for high quality scaling.
20037 Add support for video scaling options in VPP pipelines. Only the
20038 DEFAULT mode is bound to exist. Others might be folded into that
20041 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20043 * gst-libs/gst/vaapi/gstvaapifilter.c:
20044 * gst-libs/gst/vaapi/gstvaapifilter.h:
20045 filter: re-indent all GstVaapiFilter related source code.
20047 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20049 * ext/codecparsers:
20050 codecparsers: update to gst-vaapi-branch commit f9d3bde.
20051 2218b02 h264parse: expose parsed profile and level to downstream
20052 3dbfab4 h264parse: return flushing if we get chained while being set to READY
20053 d40fa8b h264: fix frame packing SEI parsing
20054 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
20055 b3e022e h264: initialize some fields of pic_timing structure
20056 a70661d vc1: fix expected level in sequence-layer parsing unit test
20057 6cee88d vc1: fix level values for simple/main profile
20058 356c189 vc1: add unit test for sequence-layer parsing
20059 ab9f641 vc1: take care of endianness when parsing sequence-layer
20060 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
20062 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20064 * gst/vaapi/gstvaapidecode.c:
20065 vaapidecode: Expose the supported profiles as caps to upstream
20066 This will allows the playbin to fallback to Software Decoder
20067 if the Hardware Decoder does not support a particular profile.
20068 https://bugzilla.gnome.org/show_bug.cgi?id=730997
20070 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20072 * gst/vaapi/gstvaapiencode.c:
20073 * gst/vaapi/gstvaapiencode.h:
20074 * gst/vaapi/gstvaapiencode_h264.c:
20075 encode: Attach the codec-data to out caps only based on negotiated caps
20076 Attach the codec_data to out_caps only if downstream needed.
20077 For eg: h264 encoder doesn't need to stuff codec_data to the
20078 src caps if the negotiated caps has a stream format of byte-stream.
20079 https://bugzilla.gnome.org/show_bug.cgi?id=734902
20081 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20084 configure: echoing installation prefix path
20086 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20088 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20089 display: add support for DRM Render-Nodes.
20090 Add support for DRM Render-Nodes. This is a new feature that appeared
20091 in kernel 3.12 for experimentation purposes, but was later declared
20092 stable enough in kernel 3.15 for getting enabled by default.
20093 This allows headless usages without authentication at all, i.e. usages
20094 through plain ssh connections is possible.
20096 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20098 * gst/vaapi/gstvaapisink.c:
20099 vaapisink: clean-ups (indentation, drop unused variables).
20101 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20104 * gst/vaapi/gstvaapisink.c:
20105 vaapisink: fix GstNavigation "key-press" / "key-release" events.
20106 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
20107 to a KeySym. In particular, there is no such Window argument. Also
20108 make sure to check for, and use, the correct <X11/XKBlib.h> header
20109 where that new function is defined. Otherwise, default to the older
20110 XKeycodeToKeysym() function.
20112 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20114 * gst/vaapi/gstvaapisink.c:
20115 vaapisink: fix GstNavigation "mouse-move" event.
20116 Really use the motion event coordinates to propagate the "mouse-move"
20117 event to upper layer, instead of those from a button event. Those are
20118 technically the same though.
20120 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20122 * gst/vaapi/gstvaapisink.c:
20123 vaapisink: implement the GstNavigation interface
20124 This is useful for things like DVD menus, where key/mouse events
20125 would need to be forwarded from the upstream sink element.
20126 https://bugzilla.gnome.org/show_bug.cgi?id=711479
20128 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20130 * gst/vaapi/gstvaapipluginbase.c:
20131 vaapipostproc: fix deinterlacing from non VA memory buffers.
20132 When we copy a buffer because we're moving it into VA-API memory, we
20133 need to copy flags. Otherwise, interlaced YUV buffers from a capture
20134 source (e.g. V4L2) don't get flagged as interlaced.
20135 https://bugzilla.gnome.org/show_bug.cgi?id=726270
20136 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20137 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
20138 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20140 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20142 * gst/vaapi/gstvaapipostproc.c:
20143 vaapipostproc: add support for GLTextureUploadMeta output.
20144 This allows for vaapipostproc to be chained to the glimagesink element
20146 https://bugzilla.gnome.org/show_bug.cgi?id=735231
20148 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20150 * gst/vaapi/gstvaapipluginutil.c:
20151 * gst/vaapi/gstvaapipluginutil.h:
20152 * gst/vaapi/gstvaapipostproc.c:
20153 vaapipostproc: add support for "download" capability.
20154 Allow implicit conversions to raw video formats, while still keeping
20155 VA surfaces underneath. This allows for chaining the vaapipostproc
20156 element to a software-only element that takes care of maps/unmaps.
20158 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20160 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20162 * gst/vaapi/gstvaapipostproc.c:
20163 * gst/vaapi/gstvaapipostproc.h:
20164 vaapipostproc: use pooled vaapi video meta.
20165 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20166 video buffer allocation. Also optimize copy of additional metadata info
20167 into the resulting video buffer: only copy the video cropping info and
20168 the source surface proxy.
20169 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20170 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20171 [fixed proxy leak, fixed double free on error, optimized meta copy]
20172 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20174 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20176 * gst/vaapi/gstvaapipostproc.c:
20177 vaapipostproc: fix passthrough mode.
20178 If no explicit output surface format is supplied try to keep the one
20179 supplied through the sink pad caps. This avoids a useless copy, even
20180 if things are kept in GPU memory.
20181 This is a performance regression from git commit dfa70b9.
20183 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20185 * gst/vaapi/gstvaapipostproc.c:
20186 * gst/vaapi/gstvaapipostproc.h:
20187 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20188 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20189 [used new infrastructure through base decide_allocation() impl]
20190 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20192 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20194 * gst/vaapi/gstvaapipostproc.c:
20195 vaapipostproc: enable advanced deinterlacing with same format.
20196 If only advanced deinterlacing is requested, i.e. deinterlacing is
20197 the only active algorithm to apply with source and output surface
20198 formats being the same, then make sure to enable VPP processing.
20199 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20202 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20204 * gst/vaapi/gstvaapivideomemory.c:
20205 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20206 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20208 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20210 * gst/vaapi/gstvaapipluginbase.c:
20211 * gst/vaapi/gstvaapipluginutil.c:
20212 plugins: fix memory leaks.
20214 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20216 * gst/vaapi/gstvaapidecode.c:
20217 * gst/vaapi/gstvaapipluginbase.c:
20218 * gst/vaapi/gstvaapipluginbase.h:
20219 plugins: factor out decide_allocation() hook.
20220 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20221 feature argument can be used to force a bufferpool with a specific kind
20224 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20226 * gst/vaapi/gstvaapivideobufferpool.c:
20227 * gst/vaapi/gstvaapivideobufferpool.h:
20228 * gst/vaapi/gstvaapivideomemory.c:
20229 plugins: allow bufferpool to not allocate vaapi video meta.
20230 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20231 can be used to disable early allocations of vaapi video metas on buffers,
20232 thus delagating that to the bufferpool user.
20234 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20236 * gst/vaapi/gstvaapivideobuffer.c:
20237 * gst/vaapi/gstvaapivideobuffer.h:
20238 * gst/vaapi/gstvaapivideobufferpool.c:
20239 * gst/vaapi/gstvaapivideobufferpool.h:
20240 * gst/vaapi/gstvaapivideocontext.c:
20241 * gst/vaapi/gstvaapivideocontext.h:
20242 * gst/vaapi/gstvaapivideoconverter_glx.c:
20243 * gst/vaapi/gstvaapivideoconverter_glx.h:
20244 * gst/vaapi/gstvaapivideoconverter_x11.c:
20245 * gst/vaapi/gstvaapivideoconverter_x11.h:
20246 * gst/vaapi/gstvaapivideomemory.c:
20247 * gst/vaapi/gstvaapivideomemory.h:
20248 * gst/vaapi/gstvaapivideometa.c:
20249 * gst/vaapi/gstvaapivideometa.h:
20250 * gst/vaapi/gstvaapivideometa_texture.c:
20251 * gst/vaapi/gstvaapivideometa_texture.h:
20252 plugins: re-indent all GstVaapiVideo* related source code.
20254 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20256 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20257 surfaceproxy: fix copy to propagate view_id.
20258 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20259 fixing random frames skipped when vaapipostproc element is used in
20260 passthrough mode. In that mode, GstMemory is copied, thus including
20261 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20263 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20265 * gst/vaapi/gstvaapipostproc.c:
20266 vaapipostproc: fix detection of output surface format changes.
20267 Default to I420 format for output surfaces so that to match the usual
20268 GStreamer pipelines. Though, internally, we could still opt for NV12
20269 surface formats, i.e. default format=ENCODED is a hint for that, thus
20270 delegating the decision to the VA driver.
20272 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20274 * gst/vaapi/gstvaapipostproc.c:
20275 vaapipostproc: fix construction of allowed sink pad caps.
20276 Fix construction of the set of caps allowed on the sink pad to filter
20277 out unsupported raw video caps with GStreamer >= 1.2.
20279 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20281 * gst/vaapi/gstvaapipostproc.c:
20282 * gst/vaapi/gstvaapipostproc.h:
20283 vaapipostproc: improve heuristics for detecting native VA surfaces.
20284 Use the new gst_caps_has_vaapi_surface() helper function to detect
20285 whether the sink pad caps contain native VA surfaces, or not, i.e.
20287 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20288 explicit as we just want a way to differentiate raw video caps from
20289 VA surfaces actually.
20291 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20293 * gst/vaapi/gstvaapipostproc.c:
20294 vaapipostproc: disable discontinuity detection code.
20295 The "discontinuity" tracking code, whereby lost frames are tentatively
20296 detected, is inoperant if the sink pad buffer timestamps are not right
20298 This is a temporary workaround until the following bug is fixed:
20299 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20301 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20303 * gst/vaapi/gstvaapipostproc.c:
20304 vaapipostproc: fix heuristic for detecting discontinuity.
20305 In order to make the discontinuity detection code useful, we need to
20306 detect the lost frames in the history as early as the previous frame.
20307 This is because some VA implementations only support one reference
20308 frame for advanced deinterlacing.
20309 In practice, turn the condition for detecting new frame that is beyond
20310 the previous frame from field_duration*2 to field_duration*3, i.e.
20311 nothing received for the past frame and a half because of possible
20312 rounding errors when calculating the field-duration either in this
20313 element (vaapipostproc), or from the upstream element (parser element).
20314 This is a regression introduced with commit faefd62.
20315 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20317 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20319 * gst/vaapi/gstvaapipluginbase.c:
20320 * gst/vaapi/gstvaapipluginbase.h:
20321 plugins: fix detection of raw video caps.
20322 Use the new gst_caps_has_vaapi_surface() helper function to better
20323 detect raw video caps, and in particular those from RGB colorspace.
20324 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20326 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20328 * gst/vaapi/gstvaapipluginutil.c:
20329 * gst/vaapi/gstvaapipluginutil.h:
20330 plugins: add helper for detecting VA surfaces in caps.
20331 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20332 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20333 implies a check for memory:VASurface caps features, and format=ENCODED
20334 for earlier versions of GStreamer.
20336 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20338 * gst/vaapi/gstvaapidecode.c:
20339 vaapidecode: start the decoder task again after finishing
20340 This allows the element to accept data again after draining without
20341 a hard reset or caps change happening in between.
20342 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20344 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20346 * gst/vaapi/gstvaapidecode.c:
20347 vaapidecode: unlock condition variables before shutting down the element
20348 Otherwise threads might wait for them, causing the shutdown of the element
20349 to deadlock on the streaming thread.
20350 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20352 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20354 * gst/vaapi/gstvaapidecode.c:
20355 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20356 Otherwise the element is not usable again after draining/EOS.
20357 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20359 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20361 * gst/vaapi/gstvaapidecode.c:
20362 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20363 This otherwise results in unnecessary error messages.
20364 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20366 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20368 * gst-libs/gst/vaapi/Makefile.am:
20369 * gst/vaapi/Makefile.am:
20370 build: fix with --no-undefined linker flags.
20371 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20373 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20375 * gst/vaapi/gstvaapisink.c:
20376 * gst/vaapi/gstvaapisink.h:
20377 vaapisink: add support for GstColorBalance interface.
20378 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20379 [fixed channel names, simplified range factor, fixed memory leak]
20380 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20382 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20384 * gst/vaapi/gstvaapisink.c:
20385 * gst/vaapi/gstvaapisink.h:
20386 vaapisink: add support for colorbalance adjustment.
20387 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20388 [fixed and simplified tracking of colorbalance value changes]
20389 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20391 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20393 * gst/vaapi/gstvaapisink.c:
20394 vaapisink: improve installation of properties.
20395 Simplify the creation and installation process of properties, by first
20396 accumulating them into a g_properties[] array, and next calling into
20397 g_object_class_install_properties().
20398 Also add missing docs and flags to some properties.
20400 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20402 * gst/vaapi/gstvaapisink.c:
20403 * gst/vaapi/gstvaapisink.h:
20404 vaapisink: code clean-ups.
20405 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20406 helper macro and use it wherever we know the object is a GstBaseSink or
20407 any base class. Drop explicit initializers for values that have defaults
20410 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20412 * gst/vaapi/gstvaapisink.c:
20413 * gst/vaapi/gstvaapisink.h:
20414 vaapisink: re-indent all GstVaapiSink related source code.
20416 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20418 * gst/vaapi/gstvaapisink.c:
20419 * gst/vaapi/gstvaapisink.h:
20420 vaapisink: introduce separate backends.
20421 Introduce new backends vtable so that to have clean separation between
20422 display dependent code and common base code. That's a "soft" separation,
20423 we don't really need dedicated objects.
20424 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20426 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20428 * gst/vaapi/gstvaapisink.c:
20429 * gst/vaapi/gstvaapisink.h:
20430 vaapisink: drop unused "synchronous" mode.
20431 Support for X11 "synchronous" mode was never implemented, and was only
20432 to be useful for debugging. Drop that altogether, that's not going to
20433 be useful in practice.
20434 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20436 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20438 * gst/vaapi/gstvaapisink.c:
20439 * gst/vaapi/gstvaapisink.h:
20440 vaapisink: drop unused variables.
20441 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20442 variables. They got merged into the GstVaapiPluginBase object.
20444 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20446 * gst/vaapi/gstvaapisink.c:
20447 * gst/vaapi/gstvaapisink.h:
20448 vaapisink: drop GLX rendering and fancy effects.
20449 Rendering with GLX in vaapisink is kind of useless nowadays, including
20450 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20451 deprecated in favor of EGL, or more direct buffer sharing with actual
20453 Should testing of interop with GLX be needed, one could still be using
20454 the modern cluttersink or glimagesink elements.
20455 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20457 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20459 * gst/vaapi/gstvaapisink.c:
20460 * gst/vaapi/gstvaapisink.h:
20461 vaapisink: listen to window size changes on X11.
20462 Allow dynamic changes to the window, e.g. performed by the user, and
20463 make sure to refresh its contents, while preserving aspect ratio.
20464 In practice, Expose and ConfigureNotify events are tracked in X11
20465 display mode by default. This occurs in a separte event thread, and
20466 this is similar to what xvimagesink does. Any of those events will
20467 trigger a reconfiguration of the window "soft" size, subsequently
20468 the render-rect when necessary, and finally _expose() the result.
20469 The default of handle_events=true can be changed programatically via
20470 gst_x_overlay_handle_events().
20471 Thanks to Fabrice Bellet for rebasing the patch.
20472 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20473 [dropped XInitThreads(), cleaned up the code a little]
20474 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20476 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20478 * gst/vaapi/gstvaapidecode.c:
20479 vaapidecode: decode and output all pending frames on normal EOS.
20480 The gst_vaapidecode_decode_loop() function is called within a separate
20481 task to fetch and output all frames that were decoded so far. So, if
20482 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20483 then we are bound to exist the task without submitting the pending
20485 If the downstream element error'ed out, then the gst_pad_push() would
20486 propagate up an error and so we will get it right for cutting off
20487 _finish() early in that case.
20488 This is a regression from 6003596.
20489 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20491 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20494 Bump version for development.
20496 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20501 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20506 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20508 * gst/vaapi/gstvaapidecode.c:
20509 vaapidecode: properly return from decode loop on downstream errors.
20510 Fixes a hang/race on shutdown where _decode_loop() had already completed
20511 its execution and _finish() was waiting on a GCond for decode_loop()
20512 to complete. Also fixes the possible race where _finish() is called
20513 but _decode_loop() endlessly returns before signalling completion
20514 iff the decoder instance returns GST_FLOW_OK.
20515 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20516 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20517 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20518 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20520 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20526 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20528 * gst/vaapi/gstvaapisink.c:
20529 vaapisink: fix GstVideoOverlay::expose() implementation.
20530 Now that we always track the currently active video buffer, it is
20531 not necessary to automatically increase its reference since this is
20532 implicitly performed in ::show_frame() through the get_input_buffer()
20533 helper from GstVaapiPluginBase class.
20534 This is a regression from a26df80.
20536 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20538 * gst/vaapi/gstvaapidecode.c:
20539 * gst/vaapi/gstvaapipluginutil.c:
20540 vaapidecode: simplify bufferpool configuration.
20541 Rework the logics behind the configuration of an adequate bufferpool,
20542 especially when OpenGL meta or additional capsfeatures are needed.
20543 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20544 and that is not system memory, is now selected by default.
20546 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20548 * gst/vaapi/gstvaapidecode.c:
20549 vaapidecode: fix auto-plugging of vaapisink element.
20550 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20551 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20552 core currently miss additional patches available in 1.5-git (1.6).
20553 This is a temporary workaround.
20555 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20558 configure: allow builds against GStreamer git (1.5.x).
20559 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20561 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20564 configure: fix build with GStreamer 1.4.0 release.
20566 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20569 * debian.upstream/Makefile.am:
20570 * debian.upstream/control.in:
20571 debian: fix packaging for new naming scheme.
20573 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20578 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20581 configure: mark support for GStreamer < 1.2 as deprecated.
20582 Supporting anything thing below GStreamer 1.2 is asking for trouble
20583 for keeping up with the required facilities to make efficient pipelines.
20584 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20587 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20590 configure: mark support for GStreamer 0.10 as obsolete.
20591 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20592 and may actually be removed altogether for a future release. There is
20593 no real point to maintain a build for such an ancient GStreamer version
20594 that is not even supported upstream.
20596 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20598 * gst/vaapi/gstvaapisink.c:
20599 * gst/vaapi/gstvaapisink.h:
20600 vaapisink: allow a specific view component to be displayed.
20601 If a multiview stream is decoded, multiple view components are submitted
20602 as is downstream. It is the responsibility of the sink element to display
20603 the required view components. By default, always select the frame buffer
20604 that matches the view-id of the very first frame to be displayed.
20605 However, introduce a "view-id" property to allow the selection of a
20606 specific view component of interest to display.
20608 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20610 * gst/vaapi/gstvaapisink.c:
20611 vaapisink: always keep the last displayed buffer around.
20612 Always record the VA surface that is currently being rendered, no matter
20613 the fact we are using texturedblit or overlay. That's because in some
20614 occasions, we need to refresh or resize the displayed contents based on
20615 new events. e.g. user-resized window.
20616 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20617 through the base sink "last-sample".
20619 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20621 * gst/vaapi/gstvaapipluginbase.c:
20622 * gst/vaapi/gstvaapipluginbase.h:
20623 * gst/vaapi/gstvaapipluginutil.c:
20624 * gst/vaapi/gstvaapisink.c:
20625 vaapisink: add support for "display-name" property.
20626 Add a "display-name" property to vaapisink so that the end user could
20627 select the desired output. Keep "display-name" in-line with the existing
20628 "display" (GstVaapiDisplayXXX type).
20629 So, for X11 or GLX, the "display-name" is the usual display name as we
20630 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20631 for wl_display_connect(); and for DRM, the "display-name" is actually the
20633 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20635 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20637 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20638 window: make gst_vaapi_window_reconfigure() thread-safe.
20639 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20640 thread-safe by default, so that upper layer users don't need to handle
20643 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20645 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20646 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20647 window: allow for updating size from current geometry.
20648 Add gst_vaapi_window_reconfigure() interface to force an update of
20649 the GstVaapiWindow "soft" size, based on the current geometry of the
20650 underlying native window.
20651 This can be useful for instance to synchronize the window size when
20652 the user changed it.
20653 Thanks to Fabrice Bellet for rebasing the patch.
20654 [changed interface to gst_vaapi_window_reconfigure()]
20655 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20657 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20659 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20660 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20661 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20662 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20663 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20664 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20665 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20666 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20667 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20668 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20669 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20670 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20671 window: re-indent all GstVaapiWindow related source code.
20673 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20675 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20676 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20677 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20678 display: add interface to retrieve the display name.
20679 Add gst_vaapi_display_get_display_name() helper function to determine
20680 the name associated with the underlying native display. Note that for
20681 raw DRM backends, the display name is actually the device path.
20683 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20685 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20686 display: fix comparison of X11 display names.
20687 Make sure to not only compare display host names, but also the actual
20688 display number. The screen number does not need to be checked at this
20691 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20693 * gst/vaapi/gstvaapidecode.c:
20694 * gst/vaapi/gstvaapivideobufferpool.c:
20695 vaapidecode: add support for VideoAlignment bufferpool option.
20696 Always add VideoAlignment bufferpool option if the downstream element
20697 expects its own pool to be used but does not offer it through a proper
20698 propose_allocation() implementation for instance, and that the ALLOCATION
20699 query does not expose the availability of the Video Meta API.
20700 This fixes propagation of video buffer stride information to Firefox.
20702 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20704 * gst/vaapi/gstvaapivideomemory.c:
20705 vaapivideomemory: always prefer native VA surface formats.
20706 Make sure to always prefer native internal formats for the VA surfaces
20707 that get allocated. Also disable "direct-rendering" mode in this case.
20708 This is needed so that to make sure that anything that gets out of the
20709 decoder, or anything that gets into the encoder, is in native format
20710 for the hardware, and thus the driver doesn't need to perform implicit
20711 conversions in there. Interop with SW elements is still available with
20712 fast implementations of VA imaging APIs.
20714 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20716 * gst/vaapi/gstvaapivideomemory.c:
20717 vaapivideomemory: disallow memory shares across buffers, use a copy.
20718 Forbid shares of GstMemory instances, and rather make copy of it. This
20719 effectively copies the GstMemory structure and enclosed metadata, but
20720 this does not copy the VA surface contents itself. It should though.
20721 This fixes preroll and makes sure to not download garbage for the first
20722 frame when a SW rendering sink is used.
20724 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20726 * gst/vaapi/gstvaapivideomemory.c:
20727 * gst/vaapi/gstvaapivideomemory.h:
20728 vaapivideomemory: use an image pool to cache objects.
20729 Use an image pool to hold VA images to be used for downloads/uploads
20730 of contents for the associated surface.
20731 This is an optmization for size. So, instead of creating as many VA
20732 images as there are buffers (then VA surfaces) allocated, we only
20733 maintain a minimal set of live VA images, thus preserving memory
20736 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20738 * gst/vaapi/gstvaapivideomemory.c:
20739 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20740 Disable read-write mappings if "direct-rendering" is not supported.
20741 Since the ordering of read and write operations is not specified,
20742 this would require to always download the VA surface on _map(), then
20743 commit the temporary VA image back to the VA surface on _unmap().
20744 Some SW decoding plug-in elements still use R/W mappings though.
20745 https://bugzilla.gnome.org/show_bug.cgi?id=733242
20747 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20749 * gst/vaapi/gstvaapivideomemory.c:
20750 vaapivideomemory: minor code clean-ups.
20751 Fix error messages introduced in the previous commit for the _map()
20752 imaplementation. Also use the new get_image_data() helper function
20753 to determine the base pixels data buffer from a GstVaapiImage when
20754 updating the video info structure from it.
20756 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20758 * gst/vaapi/gstvaapivideomemory.c:
20759 * gst/vaapi/gstvaapivideomemory.h:
20760 vaapivideomemory: add support for raw pixels mappings.
20761 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20762 cases where the buffer pool is allocated without VideoMeta API, thus
20763 individual planes cannot be mapped.
20764 This is initial support for Firefox >= 30.
20765 https://bugzilla.gnome.org/show_bug.cgi?id=731886
20767 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20769 * gst/vaapi/gstvaapivideomemory.c:
20770 vaapivideomemory: fix determination of the surface pool format.
20771 While creating the vaapi video allocator, make sure the associated
20772 surface pool has correct format instead of defaulting to NV12 video
20773 format even though there is no direct rendering support.
20774 https://bugzilla.gnome.org/show_bug.cgi?id=732691
20776 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20778 * gst/vaapi/gstvaapivideomemory.c:
20779 vaapivideomemory: fix association of surface to proxy.
20780 Make sure to always update the VA surface pointer whenever the proxy
20781 changes. This used to only work when the VA surface is written to, in
20782 interop with SW element ("upload" feature), and this now fixes cases
20783 when the VA surface is needed for reading, in interop with SW element
20784 ("download" feature).
20786 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20788 * gst/vaapi/gstvaapidecode.c:
20789 * gst/vaapi/gstvaapipluginutil.c:
20790 * gst/vaapi/gstvaapivideomemory.c:
20791 plugins: expose I420 format for interop with SW elements.
20792 Always expose I420 format by default when the VA surface could be
20793 mapped for interoperability with non harware accelerated elements.
20794 However, the default behaviour remains the auto-plugging of vaapi
20795 elements, down to the sink.
20796 Side effect: "direct-rendering" mode is also disabled most of the
20797 times as plain memcpy() from uncached speculative write combining
20798 memory is not going to be efficient enough.
20800 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20802 * gst/vaapi/gstvaapidecode.c:
20803 * gst/vaapi/gstvaapivideomemory.c:
20804 plugins: allow download capability to vaapidecode element.
20805 Fix support for VA surface download capability in vaapidecode element
20806 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20807 but also the libva-intel-driver while performing hardware accelerated
20808 conversions from the native VA surface format (NV12) to the desired
20809 output VA image format.
20810 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20811 https://bugzilla.gnome.org/show_bug.cgi?id=733243
20813 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
20815 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20816 decoder: mpeg4: fix picture decoder return value for skipped frames.
20817 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20818 when a frame should be skipped, so the stream processing is not stalled.
20819 https://bugzilla.gnome.org/show_bug.cgi?id=733324
20821 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
20823 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20824 decoder: mpeg2: respect any input PTS provided for a frame.
20825 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20826 frame timestamps within a GOP, even when it's been fed input PTS for
20828 That leads to incorrect output timestamps in some situations - for example
20829 live playback where input timestamps have been scaled based on arrival time
20830 from the network and don't exactly match the framerate.
20831 https://bugzilla.gnome.org/show_bug.cgi?id=732719
20833 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20835 * gst-libs/gst/vaapi/gstvaapiobject.c:
20836 GstVaapiObject: make gst_vaapi_object_new() more robust.
20837 Forbid GstVaapiObject to be created without an associated klass spec.
20838 It is mandatory that the subclass implements an adequate .finalize()
20839 hook, so it shall provide a valid GstVaapiObjectClass.
20840 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20841 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20842 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20844 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20846 * gst-libs/gst/vaapi/gstvaapiobject.c:
20847 GstVaapiObject: initialize the derived object data with init() hook.
20848 Call the subclass .init() function in gst_vaapi_object_new(), if
20849 needed. The default behaviour is to zero initialize the subclass
20850 object data, then the .init() function can be used to initialize
20851 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20852 Also fix the gst_vaapi_object_new() description, which was merely
20853 copied from GstVaapiMiniObject.
20854 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20855 [changed to always zero initialize the subclass]
20856 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20858 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
20860 * gst/vaapi/gstvaapidecode.c:
20861 vaapidecode: make decoder work with playbin
20862 When playbin/decodebin builds the pipeline, it puts decoders and sinks
20863 into different bins and forwards the queries from bins to bins. So in
20864 the initials steps the pipeline is built iteratively by playbin and
20867 [filesrc] -> [typefind]
20868 [filesrc] -> [typefind] -> [demuxer]
20869 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20870 At this point the decoder is asked for its SRC caps and it will make a
20871 choice based on what gst_pad_peer_query_caps() returns. The problem is
20872 that the caps returns at that point includes caps features like ANY,
20873 essentially because playbin can plug in additional elements like
20874 videoscale, videoconv or deinterlace.
20875 This patch adds a another call to
20876 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20877 allocation, to make sure we asks the downstream elements when the
20878 entire pipeline has been built.
20879 https://bugzilla.gnome.org/show_bug.cgi?id=731645
20881 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20883 * gst/vaapi/gstvaapipostproc.c:
20884 vaapipostproc: don't let tmp_rect go out of scope.
20885 A compiler change showed me that tmp_rect went out of scope before
20886 it was used. Move it to the beginning of the function instead.
20887 https://bugzilla.gnome.org/show_bug.cgi?id=726363
20888 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20889 [added guards for GStreamer 0.10 builds]
20890 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20892 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20897 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20901 Drop references to deprecated plugins (vaapiupload, vaapidownload),
20902 mention that support for GStreamer 0.10 is deprecated, make overview
20903 more descriptive in certain aspects.
20905 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20910 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20914 build: mention that support for GStreamer 0.10 is deprecated.
20916 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20919 * gst/vaapi/gstvaapidecode.c:
20920 build: fix for GStreamer 0.10.
20922 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20924 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20925 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20926 * patches/videoparsers/series.frag:
20927 build: fix for GStreamer 1.0.x.
20929 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20931 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20932 decoder: h264: detect incorrectly paired fields in frames.
20933 When a DPB flush is required, e.g. at a natural and of stream or issued
20934 explicitly through an IDR, try to detect any frame left in the DPB that
20935 is interlaced but does not contain two decoded fields. In that case, mark
20936 the picture as having a single field only.
20937 This avoids a hang while decoding tv_cut.mkv.
20939 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20941 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20942 decoder: h264: simplify the DPB output process.
20943 Simplify the dpb_output() function to exclusively rely on the frame store
20944 buffer to output, since this is now always provided. Besides, also fix
20945 cases where split fields would not be displayed.
20946 This is a regression from f48b1e0.
20948 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20950 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20951 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20952 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20953 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20954 * patches/videoparsers/series.frag:
20955 h264parse: drop patches merged upstream.
20956 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20957 0005-h264parse-introduce-new-state-tracking-variables.patch
20958 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20959 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20961 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20963 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20964 decoder: h264: fix memory leak in PPS.
20965 Cope with latest changes from codecparsers/h264. It is now required
20966 to explicitly clear the GstH264PPS structure as it could contain
20967 additional allocations (slice_group_ids).
20969 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20971 * ext/codecparsers:
20972 codecparsers: update to gst-vaapi-branch commit 2d53b69.
20973 c4ace00 h264parse: fix collection of access units to preserve config headers
20974 0f9f7c9 h264parse: improve conditions for skipping NAL units
20975 9ffb25c h264parse: introduce new state tracking variables
20976 64955d3 h264parse: fix and optimize NAL collection function
20977 13cd2a3 h264: clarifications and documentation fixes
20978 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20979 18f0de0 h264: fix memory leak in GstH264PPS
20980 fdcb54c h264: fix typo in GstH264VUIParams description
20981 fd4dae9 vp8: move up built-in range decoder private data
20983 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20985 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20986 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20987 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20988 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20989 decoder: propagate MVC metadata ("view-id", head of multiview set).
20990 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20991 bundle", and really expresses the first view component of a multi
20992 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20994 Likewise, new API is exposed to retrieve the associated "view-id".
20996 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20998 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20999 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21000 decoder: propagate "one-field" flags.
21001 Allow decoders to set the "one-field" attribute when the decoded frame
21002 genuinely has a single field, or if the second field was mis-decoded but
21003 we still want to display the first field.
21005 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21007 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21008 decoder: output decoded frames only once.
21009 Make sure to output the decoded picture, and push the associated
21010 GstVideoCodecFrame, only once. The frame fully represents what needs
21011 to be output, included for interlaced streams. Otherwise, the base
21012 GstVideoDecoder class would release the frame twice.
21013 Anyway, the general process is to output decoded frames only when
21014 they are complete. By complete, we mean a full frame was decoded or
21015 both fields of a frame were decoded.
21017 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21019 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21020 decoder: h264: decode current picture earlier.
21021 Slightly optimize decoding process by submitting the current VA surface
21022 for decoding earlier to the hardware, and perform the reference picture
21023 marking process and DPB update process afterwards.
21024 This is a minor optimization to let the video decode engine kick in work
21025 earlier, thus improving parallel resources utilization.
21027 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21029 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21030 decoder: h264: fix output of second field when first field is not in DPB.
21031 Fix decoding of interlaced streams where a first field (e.g. B-slice)
21032 was immediately output and the current decoded field is to be paired
21033 with that former frame, which is no longer in DPB.
21034 https://bugzilla.gnome.org/show_bug.cgi?id=701340
21036 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21038 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21039 decoder: h264: slightly optimize the process to detect new pictures.
21040 Optimize the process to detect new pictures or start of new access
21041 units by checking if the previous NAL unit was the end of a picture,
21042 or the end of the previous access unit.
21044 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21046 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21047 decoder: h264: handle access unit ("au") optimization.
21048 Optimize parsing when buffers are supplied with access unit alignment.
21049 This helps determining faster when the end of an access unit is reached.
21051 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21053 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21054 decoder: h264: fix tracking of DPB size changes.
21055 Add support for MVC streams with multiple SPS and subset SPS headers
21056 emitted regularly, e.g. at around every I-frame. Track the maximum
21057 number of views in ensure_context() and really reset the DPB size to
21058 the expected value, always. i.e. even if it decreased. dpb_reset()
21059 only cares of ensuring the DPB allocation.
21061 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21063 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21064 decoder: h264: fix the DPB compaction process.
21065 Fix the compaction process when the DPB is cleared for a specific
21066 view, i.e. fix the process of filling in the holes resulting from
21067 removing frame buffers matching the current picture.
21069 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21071 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21072 encoder: h264: generate new SPS only when codec config changed.
21073 It is not necessary to periodically send SPS or subset SPS headers.
21074 This is up to the upper layer (e.g. transport layer) to decide on
21075 if/how to periodically submit those. For now, only generate new SPS
21076 or subset SPS headers when the codec config changed.
21077 Note: the upper layer could readily determine the config headers
21078 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
21079 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21080 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21082 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21084 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21085 encoder: h264: track encoder config changes.
21086 Track and report when encoder configuration changed. For now, this covers
21087 resolution, profile/level and bitrate changes.
21089 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21091 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21092 encoder: h264: add pixel-aspect-ratio to VUI parameters.
21093 Report sample aspect ratio (SAR) as present, and make it match what
21094 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
21095 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
21097 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21099 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21100 encoder: h264: fix number of anchor and non-anchor reference pictures.
21101 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
21102 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
21105 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21107 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21108 encoder: h264: fix timing_info_present_flag value in subset SPS.
21109 When the seq_parameter_set_data() syntax structure is present in a subset
21110 sequence parameter set and vui_parameters_present_flag is equal to 1, then
21111 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
21113 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21115 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21116 encoder: h264: add cpbBrNalFactor values for MVC profiles.
21118 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21120 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21121 h264parse: fix detection of access unit boundaries for MVC.
21122 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
21123 this function is used to determine access unit boundaries, i.e. that
21124 is the key function for alignment=au output format generation.
21126 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21128 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21129 * patches/videoparsers/series.frag:
21130 h264parse: fix collection of access units to preserve config headers.
21131 Always use a GstAdapter when collecting access units (alignment="au")
21132 in either byte-stream or avcC format. This is required to properly
21133 preserve config headers like SPS and PPS when invalid or broken NAL
21134 units are subsequently parsed.
21135 More precisely, this fixes scenario like:
21136 <SPS> <PPS> <invalid-NAL> <slice>
21137 where we used to reset the output frame buffer when an invalid or
21138 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21139 preventing the next slice unit to be decoded, should this also
21140 represent any valid data.
21141 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21143 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21145 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21146 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21147 * patches/videoparsers/series.frag:
21148 h264parse: improve conditions for skipping NAL units.
21149 Carefully track cases when skipping broken or invalid NAL units is
21150 necessary. In particular, always allow NAL units to be processed
21151 and let that gst_h264_parse_process_nal() function decide on whether
21152 the current NAL needs to be dropped or not.
21153 This fixes parsing of streams with SEI NAL buffering_period() message
21154 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21155 SPS NAL unit, among other cases too.
21156 Practical examples from the H.264 AVC conformance suite include
21157 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21158 when parsing in stream-format=byte-stream,alignment=au mode.
21159 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21161 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21163 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21164 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21165 * patches/videoparsers/series.frag:
21166 h264parse: introduce new state tracking variables.
21167 Improve parser state tracking by introducing new flags reflecting
21168 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21169 robustness purposes.
21170 Older have_sps and have_pps variables are kept because they have
21171 a different meaning. i.e. they are used for deciding on when to
21172 submit updated caps or not, and rather mean "have new SPS/PPS to
21175 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21177 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21178 * patches/videoparsers/series.frag:
21179 h264parse: default to byte-stream/nalu format (Annex B).
21180 Always default to stream-format=byte-stream,alignment=nalu if avcC
21181 format was not detected. This is the natural stream format specified
21182 in the standard (Annex.B): a series of NAL units prefixed with the
21184 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21186 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21188 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21189 * patches/videoparsers/series.frag:
21190 h264parse: fix and optimize NAL collection function.
21191 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21192 NAL unit. We don't want to parse the full NAL unit, but only the
21193 header bytes and possibly the first RBSP byte for identifying the
21194 first_mb_in_slice syntax element.
21195 Also fix check for failure when returning from that function. The
21196 only success condition for that is GST_H264_PARSER_OK, so use it.
21197 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21199 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21201 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21202 encoder: h264: fix NAL unit types in packed headers.
21203 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21204 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21205 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21206 is required, with an appropriate nal_unit_header_mvc_extension() in
21207 the NAL header bytes.
21208 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21210 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21212 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21213 encoder: h264: add missing field in packed Subset SPS header.
21214 Write the missing num_level_values_signalled_minus1 syntax element
21215 into the packed header for subset sequence parameter set.
21216 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21218 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21220 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21221 decoder: h264: fix marking of non-reference picture into DPB.
21222 Fix search for a picture in the DPB that has a lower POC value than
21223 the current picture. The dpb_find_lowest_poc() function will return
21224 a picture with the lowest POC in DPB and that is marked as "needed
21225 for output", but an additional check against the actual POC value
21226 of the current picture is needed.
21227 This is a regression from 1c46990.
21228 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21230 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21232 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21233 decoder: h264: fix DPB clear when no decoding actually started.
21234 Fix dpb_clear() to clear previous frame buffers only if they actually
21235 exist to begin with. If the decoder bailed out early, e.g. when it
21236 does not support a specific profile, that array of previous frames
21237 might not be allocated beforehand.
21239 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21241 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21242 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21243 * gst/vaapi/gstvaapidecode.c:
21244 decoder: h264: add support for NALU "alignment" optimization.
21245 We can avoid scanning for start codes again if the bitstream is fed
21246 in NALU chunks. Currently, we always scan for start codes, and keep
21247 track of remaining bits in a GstAdapter, even if, in practice, we
21248 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21250 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21251 [use gst_adapter_available_fast() to determine the top buffer size]
21252 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21254 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21256 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21257 decoder: h264: fix caps to report interlace-mode accordingly.
21258 The `vaapipostproc' element could never determine if the H.264 stream
21259 was interlaced, and thus always assumed it to be progressive. Fix the
21260 H.264 decoder to report interlace-mode accordingly, thus allowing the
21261 vaapipostproc element to automatically enable deinterlacing.
21263 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21265 * gst/vaapi/gstvaapipostproc.c:
21266 vaapipostproc: don't crash with dynamic framerate (0/1).
21267 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21268 way to solve this problem is to just stick field_duration to zero.
21269 However, this means that, in presence of interlaced streams, the
21270 very first field will never be displayed if precise presentation
21271 timestamps are honoured.
21272 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21274 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21276 * gst/vaapi/gstvaapipostproc.c:
21277 vaapipostproc: create filter surface pool if it does not exist yet.
21278 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21279 recreating filter_pool. Unfortunately, this also meant it didn't create
21280 it if it did not exist.
21281 Fix it to always create the buffer pool if it does not exist.
21282 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21283 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21285 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21287 * gst/vaapi/gstvaapipostproc.c:
21288 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21289 Reset deinterlacer state, i.e. past reference frames used for advanced
21290 deinterlacing, when there is some discontinuity detected in the course
21291 of processing source buffers.
21292 This fixes support for advanced deinterlacing when a seek occurred.
21293 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21294 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21295 history buffer, reduce heuristic for detecting discontinuity]
21296 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21298 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21300 * gst/vaapi/gstvaapipostproc.c:
21301 vaapipostproc: add support for crop regions in VPP mode.
21302 Apply video cropping regions stored in GstVideoCropMeta, or in older
21303 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21304 the crop meta are already propagated to the output buffers.
21305 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21307 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21309 * gst/vaapi/gstvaapipostproc.c:
21310 vaapipostproc: make deinterlace-mode behave as expected.
21311 deinterlace-mode didn't behave in the way you'd expect if you have
21312 past experience of the deinterlace element. There were two bugs:
21313 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21314 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21315 Fix these up, and add assertions and error messages to detect cases that
21317 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21318 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21319 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21321 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21323 * gst/vaapi/gstvaapidecode.c:
21324 vaapidecode: do not discard video info props when the format changed.
21325 gst_video_info_set_format() does not preserve video info properties. In
21326 order to keep important information in the caps such as interlace mode,
21327 framerate, pixel aspect ratio, ... we need to manually copy back those
21328 properties after setting the new video format.
21329 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21331 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21333 * gst/vaapi/gstvaapidecode.c:
21334 vaapidecode: plug a memory leak.
21335 It can happen that there is a pool provided that does not advertise
21336 the vappivideometa. We should unref that pool before using our own.
21337 Discovered with vaapidecode ! {glimagesink,cluttersink}
21338 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21339 [fixed compilation by adding the missing semi-colon]
21340 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21342 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21344 * gst/vaapi/gstvaapidecode.c:
21345 vaapidecode: parse source data until a frame is obtained.
21346 Parse any pending data until a complete frame is obtained. This is a
21347 memory optimization to avoid expansion of video packets stuffed into
21348 the GstAdapter, and a fix to EOS condition to detect there is actually
21349 pending data that needs to be decoded, and subsequently output.
21350 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21352 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21354 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21355 encoder: h264: fix multiple slices support in packed headers mode.
21356 Handle packedi slice headers and packed raw data on a per-slice basis,
21357 which is necessary for multi slice encoding.
21359 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21361 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21362 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21363 encoder: add infrastructure for per-slice handling of packed headers.
21364 The packed slice header and packed raw data need to be paired with
21365 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21366 on a per-slice basis insted of a per-picture basis.
21367 [removed useless initializer]
21368 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21370 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21372 * gst/vaapi/gstvaapisink.c:
21373 vaapisink: fix initialization with "drm" display type.
21374 Force early initializatin of the GstVaapiDisplay so that to make sure
21375 that the sink element display object is presented first to upstream
21376 elements, as it will be correctly featuring the requested display type
21378 Otherwise, we might end up in situations where a VA/X11 display is
21379 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21380 (as requested by the "display" property), but this would cause a failure
21381 because we cannot acquire a DRM display that was previously acquired
21382 through another backend (e.g. VA/X11).
21384 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21386 * gst/vaapi/gstvaapipluginbase.c:
21387 plugins: fix initialization with foreign context.
21388 When a new display is settled through GstElement::set_context() (>= 1.2),
21389 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21390 associated display type.
21392 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21397 * gst/vaapi/Makefile.am:
21398 * gst/vaapi/gstvaapiparse.c:
21399 * gst/vaapi/gstvaapiparse.h:
21400 * patches/Makefile.am:
21401 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21402 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21403 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21404 * patches/videoparsers/Makefile.am:
21405 * patches/videoparsers/series.frag:
21406 plugins: add built-in video parsers as "vaapiparse" element.
21407 The built-in video parsers elements are built into a single DSO named
21408 libgstvaapi_parse.so. The various video parsers could be accessed as
21410 For now, this only includes a modified version of h264parse so that to
21411 support H.264 MVC encoded streams.
21413 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21415 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21416 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21417 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21418 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21420 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21422 * ext/codecparsers:
21423 codecparsers: update to gst-vaapi-branch commit d6325ac.
21424 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21425 d2f965a h264parse: set field_pic_flag when parsing a slice header
21426 24c15b8 Import h264parse
21427 a9283e5 bytereader: Use concistant derefence method
21428 a8252c6 bytereader: Use pointer instead of index access
21429 b1bebfc Import GstBitReader and GstByteReader
21430 2f58788 h264: recognize SVC NAL units
21431 4335da5 h264: fix SPS copy code for MVC
21432 cf9b6dc h264: fix quantization matrix conversion routine names
21433 b11ce2a h264: add gst_h264_video_calculate_framerate()
21434 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21436 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21438 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21439 decoder: h264: factor out DPB pruning for MVC.
21440 Factor out the removal process of unused inter-view only reference
21441 pictures from the DPB, prior to the possible insertion of the current
21443 Ideally, the compiler could still opt for generating two loops. But
21444 at least, the code is now clearer for maintenance.
21446 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21448 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21449 decoder: h264: clean-ups.
21450 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21451 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21453 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21455 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21456 decoder: h264: improve pruning of unused MVC inter-view frames.
21457 Improve process for the removal of pictures from DPB before possible
21458 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21459 reference components. In particular, handle cases where picture to be
21460 inserted is not the last one of the access unit and if it was already
21461 output and is no longer marked as used for reference, including for
21462 decoding next view components within the same access unit.
21464 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21466 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21467 decoder: h264: improve DPB bumping process for MVC.
21468 While invoking the DPB bumping process in presence of many views,
21469 it could be necessary to output previous pictures that are ready,
21470 in a whole. i.e. emitting all view components from the very first
21471 view order index zero to the very last one in its original access
21472 unit; and not starting from the view order index of the picture
21473 that caused the DPB bumping process to be invoked.
21474 As a reminder, the maximum number of frames in DPB for MultiView
21475 High profile with more than 2 views is not necessarily a multiple
21476 of the number of views.
21477 This fixes decoding of MVCNV-4.264.
21479 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21481 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21482 decoder: h264: fix inter-view references array growth.
21483 Let the utility layer handle dynamic growth of the inter-view pictures
21484 array. By definition, setting a new size to the array will effectively
21485 grow the array, but would also fill in the newly created elements with
21486 empty entries (NULL), thus also increasing the reported length, which
21489 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21491 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21492 decoder: h264: reduce ReferenceFrames entries to the essential set.
21493 When decoding Multiview High profile streams with a large number of
21494 views, it is not possible to make the VAPictureParameterBufferH264.
21495 ReferenceFrames[] array hold the complete DPB, with all possibly
21496 active pictures to be used for inter-view prediction in the current
21498 So reduce the scope of the ReferenceFrames[] array to only include
21499 the set of reference pictures that are going to be used for decoding
21500 the current picture. Basically, this is a union of all RefPicListX[]
21501 array, for all slices constituting the decoded picture.
21503 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21505 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21506 decoder: h264: fix MVC inter-view prediction process.
21507 The inter-view reference components and inter-view only reference
21508 components that are included in the reference picture lists shall
21509 be considered as not being marked as "used for short-term reference"
21510 or "used for long-term reference". This means that reference flags
21511 should all be removed from VAPictureH264.flags.
21512 This fixes decoding of MVCNV-2.264.
21514 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21516 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21517 decoder: h264: fix detection of profile changes for MVC.
21518 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21519 be careful to detect profiles changes and not reset the underlying
21520 VA context erroneously. In MVC situations, we could indeed get a
21521 profile_idc change for every SPS that gets activated, alternatively
21522 (base-view -> non-base view -> base-view, etc.).
21523 An improved fix would be to characterize the exact profile to use
21524 once and for all when SPS NAL units are parsed. This would also
21525 allow for fallbacks to a base-view decoding only mode.
21527 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21529 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21530 encoder: h264: drop extraneous definitions.
21531 Re-use definitions from the codecparser headers instead of duplicating
21532 them here again. That covers NALU definitions and slice types.
21534 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21536 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21537 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21538 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21540 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21542 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21543 encoder: h264: don't allow CABAC with Extended profile.
21544 The H.264 specification does not support CABAC entropy coding for the
21546 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21548 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21550 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21551 encoder: h264: use packed headers mode for MVC encoding.
21552 Exclusively use VA drivers that support raw packed headers for encoding.
21553 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21554 provides for better compatibility accross the various VA drivers and HW
21555 generations since no particular API is needed beyond what readily exists.
21557 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21559 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21560 encoder: h264: add support for packed slice headers.
21561 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21563 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21565 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21566 encoder: h264: store subset sps to generate the codec-data
21567 Store the SubsetSPS nal unit which we need for MVC specific
21568 codec_data generation.
21570 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21572 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21573 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21574 Since we are encoding each view independently from each other, we
21575 need a higher number of pre-allocated surfaces to be used as the
21576 reconstructed frames. For Stereo High profile encoding, this means
21577 to effectively double the number of frames to be stored in the DPB.
21579 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21581 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21582 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21583 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21584 * gst/vaapi/gstvaapiencode_h264.c:
21585 encoder: h264: add initial support for H.264 Stereo High profile.
21586 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21587 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21588 NALs for base-view encoding.
21589 The H.264 Stereo High profile encoding mode will be turned on when the
21590 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21591 considered as Left/Right view, alternatively.
21592 Each of the two views has its own frames reordering pool and reference
21593 frames list management system. Inter-view references are not supported
21594 yet, so the views are encoded independently from each other.
21595 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21596 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21597 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21599 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21601 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21602 encoder: h264: wrap pools for refs and frames reordering.
21603 Create structures to maintain the reference frames list (RefPool) and
21604 frames reordering (ReorderPool) logic.
21605 This is a prerequisite for H.264 MVC support.
21606 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21608 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21610 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21611 encoder: h264: add provisional support for subset SPS headers.
21612 Add provisions to write subset SPS headers to the bitstream in view
21613 to supporting the H.264 MVC specification.
21614 This assumes the libva "staging" branch is in use.
21615 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21617 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21619 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21620 * gst-libs/gst/vaapi/gstvaapiutils.c:
21621 utils: add H.264 MVC profiles.
21622 Add "MultiView High" and "Stereo High" definitions.
21623 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21624 [require VA-API >= 0.35.2 for MVC profiles]
21625 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21627 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21629 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21630 * gst-libs/gst/vaapi/gstvaapiutils.c:
21631 utils: only enable VP8 profiles for newer VA-API versions.
21632 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21633 involving VP8 codec on earlier versions of the API.
21635 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21638 decoder: h264: compute view ids only once per slice.
21639 Optimize lookups of view ids / view order indices by caching the result
21640 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21641 terribly simplifies is_new_access_unit() and find_first_field() functions.
21643 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21645 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21646 decoder: h264: add support for MVC interlaced streams.
21647 Fix support for MVC Stereo High profile streams with interlaced frames.
21648 Also improve the detection logic of the first field.
21650 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21652 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21653 decoder: h264: add MVC profiles compatibility logic.
21654 Add safe fallbacks for MVC profiles:
21655 - all MultiView High profile streams with 2 views at most can be decoded
21656 with a Stereo High profile compliant decoder ;
21657 - all Stereo High profile streams with only progressive views can be
21658 decoded with a MultiView High profile compliant decoder ;
21659 - all drivers that support slice-level decoding could normally support
21660 MVC profiles when the DPB holds at most 16 frames.
21662 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21664 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21665 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21666 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21667 decoder: h264: add initial support for MVC.
21668 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21670 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21672 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21673 decoder: h264: dynamically allocate the DPB.
21674 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21675 for supporting the MVC allocation requirements.
21677 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21679 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21680 decoder: h264: fix detection of access unit boundaries.
21681 In order to have a stricter conforming implementation, we need to carefully
21682 detect access unit boundaries. Additional operations could be necessary to
21683 perform at those boundaries.
21685 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21687 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21688 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21689 Detect the first VCL NAL unit of a picture for MVC, based on the
21690 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21692 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21694 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21696 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21697 decoder: h264: properly handle Prefix NAL units.
21698 Always cache the previous NAL unit so that we could check whether
21699 there is a Prefix NAL unit immediately preceding the current slice
21700 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21701 the current NAL unit. Otherwise, some default values are inferred,
21702 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21703 [infer default values for slice if previous NAL was not a Prefix]
21704 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21706 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21709 decoder: h264: add support for MVC base views.
21710 Allow decoding for base views of MVC encoded streams. For now, just skip
21711 the slice extension and prefix NAL units, and skip non-base view frames.
21712 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21713 [fixed memory leak, improved check for MVC NAL units]
21714 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21716 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21718 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21719 decoder: h264: simplify storage of decoded picture into DPB.
21720 Factor out process by which the decoded picture with the lowest POC
21721 is found, and possibly output. Likewise, the storage and marking of
21722 a reference decoded, or non-reference decoded picture, into the DPB
21723 could also be simplified as they mostly share the same operations.
21725 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21727 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21728 decoder: h264: minor clean-ups.
21729 Make init_picture_ref_lists() more consistent with other functions
21730 related to the reference marking process by supplying the current
21731 picture as argument.
21733 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21735 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21736 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21737 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21738 display: add utility function to query VA driver name.
21739 Add gst_vaapi_display_get_vendor_string() helper function to query
21740 the underlying VA driver name. The display object owns the resulting
21741 string, so it shall not be deallocated.
21742 That function is thread-safe. It could be used for debugging purposes,
21745 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21747 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21748 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21749 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21750 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21751 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21752 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21753 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21754 display: make cache maintenance really MT-safe.
21755 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21756 environments. This makes sure the display cache is also consistent
21757 during the whole display creation process. In the former implementation,
21758 there were risks that display cache got updated in another thread.
21760 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21762 * gst-libs/gst/vaapi/gstvaapicontext.c:
21763 context: allow dynamic growth of VA surfaces pool.
21764 Add support for dynamic growth of the VA surfaces pool. For decoding,
21765 this implies the recreation of the underlying VA context, as per the
21766 requirement from VA-API. Besides, only increases are supported, not
21769 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21771 * gst-libs/gst/vaapi/gstvaapicontext.c:
21772 context: reset VA context if VA surfaces set changed.
21773 It is a requirement from VA-API specification that the VA context got
21774 from vaCreateContext(), for decoding purposes, binds the supplied set
21775 of VA surfaces. This means that if the set of VA surfaces is to be
21776 changed for the current decode session, then the VA context needs to
21777 be recreated with the new set of VA surfaces.
21779 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21781 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21782 decoder: h264: fix assignment of LongTermFrameIdx.
21783 Complement fix committed as e95a42e.
21784 The H.264 AVC standard has to say: if the field is part of a reference
21785 frame or a complementary reference field pair, and the other field of
21786 the same reference frame or complementary reference field pair is also
21787 marked as "used for long-term reference", the reference frame or
21788 complementary reference field pair is also marked as "used for long-term
21789 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21790 This fixes decoding of MR9_BT_B in strict mode.
21791 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21792 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21794 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21796 * gst-libs/gst/vaapi/gstvaapicontext.c:
21797 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21798 * gst-libs/gst/vaapi/gstvaapiutils.c:
21799 * gst-libs/gst/vaapi/gstvaapiutils.h:
21800 decoder: h264: properly support grayscale formats.
21801 Request the correct chroma format for decoding grayscale streams.
21802 i.e. make lookups of the VA chroma format more generic, thus possibly
21803 supporting more formats in the future.
21804 This means that, if a VA driver doesn't support grayscale formats,
21805 it is now going to fail. We cannot safely assume that maybe grayscale
21806 was implemented on top of some YUV 4:2:0 with the chroma components
21809 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21811 * gst-libs/gst/vaapi/gstvaapifilter.c:
21812 * gst-libs/gst/vaapi/gstvaapifilter.h:
21813 * tests/test-filter.c:
21814 build: fix source file modes.
21815 A few source files are marked executable in error - fix them
21816 https://bugzilla.gnome.org/show_bug.cgi?id=723748
21817 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21819 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21822 * gst-libs/gst/vaapi/Makefile.am:
21823 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21824 * gst/vaapi/gstvaapidecode.c:
21825 build: fix conditional compilation of VP8 decoder.
21826 https://bugzilla.gnome.org/show_bug.cgi?id=729170
21827 [added check for VASliceParameterBufferBase fields]
21828 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21830 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21832 * gst-libs/gst/codecparsers/Makefile.am:
21833 build: fix make dist for codecparsers.
21835 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21837 * ext/codecparsers:
21838 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21839 h264: fix parsing of slice groups for map type = 2
21841 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21843 * ext/codecparsers:
21844 codecparsers: update to gst-vaapi branch commit f44edfc.
21845 h264: fix derivation of default scaling lists
21847 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
21849 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21850 decoder: h264: fix long-term reference picture marking process.
21851 Fix reference picture marking process with memory_management_control_op
21852 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21853 picture, or the current picture.
21854 This fixes decoding of FRExt_MMCO4_Sony_B.
21855 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21856 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21857 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21858 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21860 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21862 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21863 decoder: h264: fix initialization of RefPicLists for multiple slices.
21864 The initialization of reference picture lists (8.2.4.2) applies to all
21865 slices. So, the RefPicList0/1 lists need to be constructed prior to
21866 each slice submission to the HW decoder.
21867 This fixes decoding of video sequences where frames are encoded with
21868 multiple slices of different types, e.g. 4 slices in this order I, P,
21869 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21870 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21872 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
21874 * ext/codecparsers:
21875 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21876 decoder: h264: skip SPS extension and auxiliary slice NALs.
21877 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21878 are present in a video, decoders shall perform the (optional) decoding
21879 process specified for these NAL units or shall ignore them (7.4.1).
21880 Implement option 2 (skip) for now, as alpha composition is not
21881 supported yet during the decoding process.
21882 This fixes decoding of the primary coded video in alphaconformanceG.
21883 https://bugzilla.gnome.org/show_bug.cgi?id=703928
21884 https://bugzilla.gnome.org/show_bug.cgi?id=728869
21885 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21886 [skip NAL units earlier, i.e. at parsing time]
21887 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21889 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21891 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21892 decoder: h264: fix slice data bit offset with MVC NAL units.
21893 When MVC slice NAL units (coded slice extension and prefix NAL) are
21894 present, the number of NAL header bytes is 3, not 1 as usual.
21895 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21896 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21898 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21900 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21901 decoder: h264: fix activation of picture and sequence parameters.
21902 At the time the first VCL NAL unit of a primary coded picture is found,
21903 and if that NAL unit was parsed to be an SPS or PPS, then the entries
21904 in the parser may have been overriden. This means that, when the picture
21905 is to be decoded, slice_hdr->pps could point to an invalid (the next)
21907 So, one way to solve this problem is to not use the parser PPS and
21908 SPS info but rather maintain our own activation chain in the decoder.
21909 https://bugzilla.gnome.org/show_bug.cgi?id=724519
21910 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21912 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21914 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21915 decoder: h264: retain SEI messages until the end of frame.
21916 Retain the SEI messages that were parsed from the access unit until we
21917 have completely decoded the current frame. This is done so that we can
21918 peek at that data whenever necessary during decoding. e.g. for exposing
21919 3D stereoscopic information at a later stage.
21921 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21923 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21924 decoder: h264: add support for grayscale encoded clips.
21925 Fix support for grayscale encoded video clips, and possibly others if
21926 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21927 the decision that a surface with the desired chroma format is not
21928 supported to the actual VA driver implementation.
21929 https://bugzilla.gnome.org/show_bug.cgi?id=728144
21931 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21933 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21934 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21935 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21937 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21938 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21939 decoder: default to YUV 4:2:0 VA surfaces.
21940 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21941 make sure all codecs use YUV 4:2:0 output format for now, by default.
21943 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21945 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21946 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21947 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21948 decoder: re-indent GstVaapiDecoder base object.
21950 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21952 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21953 encoder: derive chroma type from video format.
21954 Cope with previous VA context change to derive the correct surface chroma
21955 type from the input video format.
21957 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21959 * gst-libs/gst/vaapi/gstvaapicontext.c:
21960 * gst-libs/gst/vaapi/gstvaapicontext.h:
21961 context: add support for non-YUV 4:2:0 formats.
21962 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21963 for the upper layer to specify the desired chroma type. If the chroma
21964 type field is not set (or yields zero), then YUV 4:2:0 format is used
21967 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21969 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21970 vp8: fix per-segment deblocking filter level in relative mode.
21971 Fix possible bug when a per-segment deblocking filter level value
21972 needs to be set in non-absolute mode, i.e. when the loop filter update
21973 value is negative in delta mode.
21974 Also clamp the resulting filter level value to 0..63 range.
21976 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21978 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21979 vp8: fix check for disabling the loop filter (again).
21980 Improve condition to disable the loop filter. The previous heuristic
21981 used to check all filter levels, for all segments. It turns out that
21982 only the base filter_level value defined in the frame header needs
21984 This fixes 00-comprehensive-013.
21986 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21988 * gst-libs/gst/codecparsers/Makefile.am:
21989 * gst/vaapi/Makefile.am:
21990 build: fix make dist with certain conditionals not met.
21991 Fix generation of source tarballs when certain conditionals are not
21992 met. e.g. always include all buildable codecparsers sources in the
21993 distribution tarball, fix plug-in element sources set to include X11
21996 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21999 build: add missing files for GStreamer 0.10.
22000 Add missing GstVideoEncoder implementation files to fix build with ancient
22001 GStreamer 0.10 stack.
22002 https://bugzilla.gnome.org/show_bug.cgi?id=723964
22004 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22007 build: add missing files for VP8 bitstream parser.
22008 Fix make dist for building the VP8 bitstream parser.
22010 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22013 * ext/libvpx/Makefile.am:
22014 * gst-libs/gst/codecparsers/Makefile.am:
22015 vp8: allow compilation without the built-in libvpx.
22016 The built-in libvpx serves multiple purposes, among which the most
22017 important ones could be: track the most up-to-date, and optimized,
22018 range decoder; allow for future hybrid implementations (non-VLD);
22019 and have a completely independent range decoder implementation.
22021 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22023 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22024 vp8: propagate PTS from demux frame.
22025 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
22026 or parser would already have determined the PTS from a previous stage.
22028 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22031 * debian.upstream/libgstvaapi.install.in:
22032 * ext/libvpx/Makefile.am:
22033 * ext/libvpx/sources.frag:
22034 * gst-libs/gst/codecparsers/Makefile.am:
22035 vp8: fix compilation with built-in libvpx.
22036 Apply correct patch from fd.o #722760 to fix several issues: update the
22037 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
22040 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22046 * ext/libvpx/Makefile.am:
22047 * ext/libvpx/gstlibvpx.c:
22048 * ext/libvpx/gstlibvpx.h:
22049 * ext/libvpx/libgstcodecparsers_vpx.vers:
22050 * ext/libvpx/sources.frag:
22051 * ext/libvpx/upstream:
22052 * gst-libs/gst/codecparsers/Makefile.am:
22053 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
22054 vp8: use range decoder from libvpx.
22055 Add libvpx submodule that tracks the upstream version 1.3.0. This is
22056 needed to build a libgstcodecparsers_vpx.so library with all symbols
22057 placed into the GSTREAMER namespace.
22059 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22061 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22062 vp8: fix check for disabling the loop filter.
22064 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
22068 * gst-libs/gst/codecparsers/Makefile.am:
22069 * gst-libs/gst/vaapi/Makefile.am:
22070 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22071 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22072 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22073 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22074 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22075 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
22076 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22077 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22078 * gst/vaapi/gstvaapidecode.c:
22079 Add initial VP8 decoder.
22080 https://bugzilla.gnome.org/show_bug.cgi?id=722761
22081 [complete overhaul, fixed support for resolution changes]
22082 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22084 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22086 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22087 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
22088 The gst_h264_parse_parse_sei() function now returns an array of SEI
22089 messages, instead of a single SEI message. Reason: it is allowed to
22090 have several SEI messages packed into a single SEI NAL unit, instead
22091 of multiple NAL units.
22093 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22095 * ext/codecparsers:
22096 codecparsers: update to gst-vaapi-branch commit a454f86.
22097 b2eb5f6 vp8: rename dboolhuff symbols
22098 b74a881 vp8: add GStreamer native utilities
22099 2940ac6 add VP8 bitstream parser
22101 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22103 * ext/codecparsers:
22104 codecparsers: update to gst-vaapi-branch commit d459bc5.
22105 d459bc5 h264: set framerate even for interlaced videos
22106 c78b82c h264: add support for Recovery Point SEI message
22107 7693bac h264: add support for Frame Packing Arrangement SEI message
22108 31fafa7 h264: add support for Stereo Video Information SEI message
22109 8b113a6 h264: parse seq_parameter_set_mvc_extension()
22110 040f9b8 h264: parse MVC syntax elements
22111 cc18ef3 h264: add nal_reader_skip_long() helper
22112 7e76a48 h264: fix slice_header() parsing for MVC
22113 caf46d8 h264: add gst_h264_parse_nalu_header() helper
22114 f75074e h264: add gst_h264_parse_sps_data() helper
22115 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
22116 4e36737 h264: fix skipping of unsupported SEI messages
22117 5300766 h264: fix SEI buffering_period() parsing
22119 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22121 * ext/codecparsers:
22122 * gst-libs/gst/codecparsers/Makefile.am:
22123 codecparsers: update to gst-vaapi-branch commit 8fadf40.
22124 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
22125 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
22126 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
22127 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
22128 8ec5816 h265: Fix segfault when parsing HRD parameter
22129 5b1730f h265: Fix segfault when parsing VPS
22130 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
22131 7ba641d h265: Fix debug output
22132 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
22134 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22136 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22137 decoder: h264: fix robustness patch for bytestream format.
22138 Fix parser and decoder state to sync at the right locations. This is
22139 because we could reset the parser state, while the decoder state was
22140 not copied yet, e.g. when parsing several NAL units from multiple frames
22141 whereas the current frame was not decoded yet.
22142 This is a regression brought in by commit 6fe5496.
22144 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22147 * pkgconfig/Makefile.am:
22148 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22149 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22150 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22151 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22152 build: fix pkgconfig file names (again).
22153 It turns out it is more convenient to have only pkgconfig files named
22154 after the installed GStreamer API version (1.0) instead of using all
22155 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22156 altogether anyway, so align pkgconfig file names to that.
22158 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22160 * debian.upstream/libgstvaapi-dev.install.in:
22161 * gst-libs/gst/vaapi/Makefile.am:
22162 * pkgconfig/gstreamer-vaapi.pc.in:
22163 build: fix packaging for GStreamer 1.2.
22164 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22165 the pkgconfig version (1.0) instead of the intended API version (1.2).
22166 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22167 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22169 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22172 Bump version for development.
22174 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22176 * debian.upstream/control.in:
22177 debian: fix trailing whitespace in description.
22179 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22181 * debian.upstream/control.in:
22182 * debian.upstream/copyright:
22183 debian: fix package description.
22184 Try to improve package description for the compiled plug-in elements
22185 available in there. e.g. only display vaapidownload and vaapiupload
22186 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22187 encoding is enabled, etc.
22188 Also increase the copyright notice date.
22190 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22192 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22193 build: fix warnings on 64-bit platforms.
22195 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22197 * gst-libs/gst/vaapi/gstvaapicontext.c:
22198 * gst-libs/gst/vaapi/gstvaapiutils.c:
22199 build: fix for older versions of VA-API (< 0.34.0).
22200 Fix build with older versions of VA-API (< 0.34.0), or versions without
22201 good enough headers for encoding support for instance.
22203 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22209 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22213 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22214 support. Update copyright years, list of supported Intel HD Graphics
22217 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22222 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22224 * tests/test-filter.c:
22225 tests: test-filter: fix "deinterlace" option parse.
22226 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22227 string was provided, i.e. if it remained set to NULL.
22229 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22231 * gst-libs/gst/vaapi/Makefile.am:
22232 * gst-libs/gst/vaapi/gstvaapicontext.c:
22233 * gst-libs/gst/vaapi/gstvaapicontext.h:
22234 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22235 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22236 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22237 libs: factor out usages of vaGetConfigAttributes().
22238 Add gst_vaapi_get_config_attribute() helper function that takes a
22239 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22240 is to have thread-safe VA helpers by default.
22242 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22244 * gst-libs/gst/vaapi/gstvaapiutils.c:
22245 * gst-libs/gst/vaapi/gstvaapiutils.h:
22246 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22247 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22248 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22249 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22250 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22251 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22252 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22253 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22254 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22255 libs: re-indent all source code related to VA utilities.
22257 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22259 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22260 libs: add missing file (libgstvaapi_priv_check.h).
22262 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22264 * gst-libs/gst/vaapi/gstvaapicontext.c:
22265 * gst-libs/gst/vaapi/gstvaapicontext.h:
22266 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22267 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22268 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22269 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22270 encoder: notify the encoder of the submitted packed headers.
22271 Make sure to configure the encoder with the set of packed headers we
22272 intend to generate and submit. i.e. make selection of packed headers
22273 to submit more robust.
22275 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22277 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22278 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22279 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22280 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22281 encoder: fix and factor out check for supported rate-control modes.
22282 Cache the first compatible GstVaapiProfile found if the encoder is not
22283 configured yet. Next, factor out the code to check for the supported
22284 rate-control modes by moving out vaGetConfigAttributes() to a separate
22285 function, while also making sure that the attribute type is actually
22286 supported by the encoder.
22287 Also fix the default set of supported rate control modes to not the
22288 "none" variant. It's totally useless to expose it at this point.
22290 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22292 * gst-libs/gst/vaapi/gstvaapicontext.c:
22293 * gst-libs/gst/vaapi/gstvaapicontext.h:
22294 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22295 context: move rate-control mode to encoder specific config.
22296 Move usage-specific config out of the common GstVaapiContextInfo.
22297 Create a specialized config for encoding and move rate-control mode
22300 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22302 * gst-libs/gst/vaapi/gstvaapicontext.c:
22303 * gst-libs/gst/vaapi/gstvaapicontext.h:
22304 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22305 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22306 context: introduce concept of usage.
22307 Introduce GstVaapiContextUsage so that to explicitly determine the
22308 usage of a VA context. This is useful in view to simplifying the
22309 creation of VA context for VPP too.
22311 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22313 * gst-libs/gst/vaapi/gstvaapicontext.c:
22314 context: fix get_attribute() value result.
22315 Unknown attributes, or attributes that are not supported for the given
22316 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22317 So, return failure in this case.
22319 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22321 * gst-libs/gst/vaapi/Makefile.am:
22322 * gst-libs/gst/vaapi/gstvaapicontext.c:
22323 * gst-libs/gst/vaapi/gstvaapicontext.h:
22324 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22325 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22326 * gst-libs/gst/vaapi/gstvaapisurface.c:
22327 context: move overlay composition to separate files.
22328 Move GstVideoOverlayComposition handling to separate source files.
22329 This helps keeing GstVaapiContext core implementation to the bare
22330 minimal, i.e. simpy helpers to create a VA context and handle pool
22331 of associated VA surfaces.
22333 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22335 * gst-libs/gst/vaapi/gstvaapicontext.c:
22336 * gst-libs/gst/vaapi/gstvaapicontext.h:
22337 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22338 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22339 context: clean-ups. Strip down APIs.
22340 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22341 them down to the minimal set of interfaces. They are private, so no
22342 need expose getters for instance.
22344 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22346 * gst-libs/gst/vaapi/gstvaapicontext.c:
22347 * gst-libs/gst/vaapi/gstvaapicontext.h:
22348 context: re-indent all GstVaapiContext related source code.
22350 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22352 * gst-libs/gst/vaapi/Makefile.am:
22353 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22354 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22355 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22356 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22357 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22358 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22359 * gst-libs/gst/vaapi/gstvaapiutils.h:
22360 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22361 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22362 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22363 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22364 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22365 libs: check that private headers remain private.
22366 Make sure that libgstvaapi private headers remain internally used to
22367 build libgstvaapi libraries only. All header dependencies were reviewed
22368 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22369 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22372 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22375 Bump library major version.
22376 Bump the library major version due to API/ABI changes that occurred in
22377 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22378 expose any GstCaps but provide GArray based ones e.g. to determine the
22379 set of supported decode/encode profiles.
22381 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22383 * gst-libs/gst/vaapi/glibcompat.h:
22384 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22385 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22386 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22387 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22388 * gst-libs/gst/vaapi/gstvaapicontext.c:
22389 * gst-libs/gst/vaapi/gstvaapicontext.h:
22390 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22391 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22392 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22393 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22394 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22395 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22396 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22397 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22398 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22399 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22400 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22401 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22402 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22403 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22404 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22405 * gst-libs/gst/vaapi/gstvaapifilter.c:
22406 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22407 * gst-libs/gst/vaapi/gstvaapisurface.c:
22408 * gst-libs/gst/vaapi/gstvaapisurface.h:
22409 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22410 * gst-libs/gst/vaapi/gstvaapitypes.h:
22411 * gst-libs/gst/vaapi/gstvaapiutils.c:
22412 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22413 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22414 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22415 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22416 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22417 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22418 * gst-libs/gst/vaapi/gstvaapivalue.c:
22419 * gst-libs/gst/vaapi/gstvaapivalue.h:
22420 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22421 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22422 * gst/vaapi/gstvaapidecode.c:
22423 * gst/vaapi/gstvaapiencode.c:
22424 * gst/vaapi/gstvaapiencode.h:
22425 * gst/vaapi/gstvaapiencode_h264.c:
22426 * gst/vaapi/gstvaapiencode_h264.h:
22427 * gst/vaapi/gstvaapiencode_mpeg2.c:
22428 * gst/vaapi/gstvaapiencode_mpeg2.h:
22429 * gst/vaapi/gstvaapipluginbase.c:
22430 * gst/vaapi/gstvaapipluginutil.c:
22431 * gst/vaapi/gstvaapipluginutil.h:
22432 * gst/vaapi/gstvaapipostproc.c:
22433 * gst/vaapi/gstvaapipostproc.h:
22434 * gst/vaapi/gstvaapisink.c:
22435 * gst/vaapi/gstvaapisink.h:
22436 * gst/vaapi/gstvaapivideometa_texture.c:
22437 * tests/simple-decoder.c:
22438 legal: update copyright notice dates.
22440 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22442 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22443 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22444 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22445 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22446 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22447 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22448 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22449 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22450 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22451 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22452 * gst/vaapi/gstvaapiencode.c:
22453 * gst/vaapi/gstvaapiencode.h:
22454 * gst/vaapi/gstvaapiencode_h264.c:
22455 * gst/vaapi/gstvaapiencode_h264.h:
22456 * gst/vaapi/gstvaapiencode_mpeg2.c:
22457 * gst/vaapi/gstvaapiencode_mpeg2.h:
22458 legal: add per-file authorship information.
22460 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22462 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22463 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22464 decoder: fix video codec frame number in standalone mode.
22465 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22466 stream in standalone mode. While we are at it, improve the debugging
22467 messages to also include that frame number.
22469 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22471 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22472 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22473 decoder: fix crash on invalid pointer for GST_DEBUG().
22474 When decoding failed, or that the frame was dropped, the associated
22475 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22476 message needs to check whether the proxy is actually present or not.
22477 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22478 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22479 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22481 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22483 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22484 encoder: h264: disable NAL HRD parameters for now.
22485 Don't emit NAL HRD parameters for now in the SPS headers because the
22486 SEI buffering_period() and picture_timing() messages are not handled
22487 yet. Some additional changes are necessary to get it right.
22488 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22490 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22492 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22493 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22494 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22495 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22496 encoder: h264: fix default CPB buffer size.
22497 Fix default CPB buffer size to something more reasonable (1500 ms)
22498 and that still fits the level limits. This is a non configurable
22499 property for now. The initial CPB removal delay is also fixed to
22501 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22503 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22505 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22506 encoder: h264: fix bitrate encoding for HRD conformance.
22507 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22508 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22509 that to have less losses in precision. Likewise, don't round up because
22510 that could be a strict constraint imposed by the user.
22512 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22514 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22515 encoder: h264: fix level lookup constraints wrt. bitrate.
22516 Fix the level calculation involving bitrate limits. Since we are
22517 targetting NAL HRD conformance, the check against MaxBR from the
22518 Table A-1 limits shall involve cpbBrNalFactor depending on the
22521 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22523 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22524 encoder: h264: submit sequence parameter only once.
22525 Submit sequence parameter buffers only once, or when the bitstream
22526 was reconfigured in a way that requires such. Always submit packed
22527 sequence parameter buffers at I-frame period, if the VA driver needs
22529 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22531 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22533 * gst-libs/gst/vaapi/gstvaapicontext.c:
22534 * gst-libs/gst/vaapi/gstvaapicontext.h:
22535 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22536 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22537 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22538 encoder: h264: only submit packed headers when required.
22539 Make sure to submit the packed headers only if the underlying VA driver
22540 requires those. Currently, only handle packed sequence and picture
22542 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22544 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22546 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22547 encoder: h264: fix ip_period value in sequence parameter.
22548 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22549 between the I-frame and the next P-frame. So, this also accounts for
22550 any additional B-frame in the middle of it.
22551 This fixes rate control heuristics for certain VA drivers.
22552 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22554 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22556 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22557 encoder: h264: fix level when bitrate is automatically computed.
22558 Fix level characterisation when the bitrate is automatically computed
22559 from the active coding tools. i.e. ensure the bitrate once the profile
22560 is completely characterized but before the level calculation process.
22562 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22564 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22565 encoder: h264: clean-ups.
22566 Document and rename a few functions here and there. Drop code that
22567 caps num_bframes variable in reset_properties() since they shall
22568 have been checked beforehand, during properties initialization.
22570 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22572 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22573 encoder: h264: clean-up bitwriter related utilities.
22574 Clean-up GstBitWriter related utility functions and simplify notations.
22575 While we are at it, also make bitstream writing more robust should an
22576 overflow occur. We could later optimize for writing headers capped to
22577 their maximum possible size by using the _unchecked() helper variants.
22579 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22581 * gst-libs/gst/vaapi/Makefile.am:
22582 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22583 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22584 encoder: h264: completely remove private headers.
22585 Drop private header since it was originally used to expose internals
22586 to the plugin element. The proper interface is now the properties API,
22587 thus rendering private headers totally obsolete.
22589 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22591 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22592 encoder: h264: fix PPS header packing with profile < high.
22593 Fix PPS header packing when profile is below High since 8x8 transform
22594 mode and scaling lists are High Profile features.
22596 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22598 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22599 encoder: h264: always emit VUI parameters for framerate.
22600 Always emit VUI parameters for timing_info, which includes framerate
22603 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22605 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22606 encoder: h264: really fix frame cropping rectangle calculation.
22607 Make frame cropping rectangle calculation future proof, i.e. exactly
22608 follow the specification (7-18) to (7-21), and subsampling definitions
22610 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22611 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22613 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22615 * gst/vaapi/gstvaapisink.c:
22616 * gst/vaapi/gstvaapisink.h:
22617 vaapisink: set csc render flags from sinkpad caps.
22618 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22619 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22621 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22622 [factored out code, added SMPTE240M, handle per-buffer flags]
22623 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22625 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22627 * gst-libs/gst/vaapi/gstvaapisurface.h:
22628 * gst-libs/gst/vaapi/gstvaapiutils.c:
22629 * gst/vaapi/gstvaapipostproc.c:
22630 surface: rework render flags.
22631 Pack render flags per category and provide more flags into the color
22632 standard category. In particular, cover for SMPTE-240M.
22634 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22636 * gst-libs/gst/vaapi/gstvaapifilter.c:
22637 * gst/vaapi/gstvaapipostproc.c:
22638 * gst/vaapi/gstvaapipostproc.h:
22639 vaapipostproc: add support for colorbalance filters.
22640 Add support for hue, saturation, brightness and constrat adjustments.
22641 Also fix cap info local copy to match the really expected cap subtype
22643 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22644 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22646 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22648 * gst/vaapi/gstvaapipostproc.c:
22649 vaapipostproc: fix support for "sharpen" filter.
22650 Fix copy/paste error when submitting the "sharpen" value to the
22651 GstVaapiFilter instance.
22652 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22653 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22655 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22658 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22659 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22660 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22661 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22662 * pkgconfig/gstreamer-vaapi.pc.in:
22663 pkgconfig: plugin dir should use PKG version not API version.
22664 Fix the pluginsdir and includedir variables in the generated pkgconfig
22665 (.pc) files. The location needs to be built with the PKG version in
22666 mind instead of the API version.
22667 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22668 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22669 [additional fixes for includedir and pkg requirements]
22670 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22672 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22674 * gst/vaapi/gstvaapisink.c:
22675 vaapisink: fix display initialization in GstVideoOverlay implementation.
22676 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22677 before the pipeline has been set to PLAYING, the display has not yet
22678 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22679 up-to-date. For this reason the foreign XID is not attached.
22680 Now _ensure_display() is called earlier.
22681 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22682 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22684 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22686 * gst/vaapi/gstvaapisink.c:
22687 vaapisink: expose the raw video formats in static caps template.
22688 Expose all raw video formats in the static caps template since the
22689 vaapisink is supporting raw data. We will get the exact set of formats
22690 supported by the driver dynamically through the _get_caps() routine.
22691 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22692 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22693 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22695 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22697 * gst/vaapi/gstvaapidecode.c:
22698 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22699 Fix vaapidecode to correctly report caps features downstream, when
22700 a custom pipeline is built manually.
22701 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22702 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22704 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22706 * gst/vaapi/gstvaapidecode.c:
22707 vaapidecode: add system memory caps to template caps.
22708 Since vaapidecode provides buffer that can be mapped as regular memory,
22709 those caps should be added to the template caps. That only applies to
22711 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22712 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22714 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22716 * gst/vaapi/gstvaapidecode.c:
22717 vaapidecode: fix hang on SIGINT.
22718 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22719 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22720 locked. This fixes a deadlock on state change from PAUSED to READY.
22721 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22722 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22724 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
22726 * gst/vaapi/gstvaapiencode.c:
22727 vaapiencode: fix possible hang on SIGINT.
22728 vaapiencode might hang when the pipeline is stopped without any EOS,
22729 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22730 running and locked. This fixes a possible deadlock on state change
22731 from PAUSED to READY.
22732 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22733 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22735 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22737 * gst/vaapi/gstvaapiencode.c:
22738 vaapiencode: fix typo in error message.
22739 Fix incomplete error message in gst_vaapiencode_push_frame().
22741 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22743 * gst/vaapi/gstvaapipluginutil.c:
22744 * gst/vaapi/gstvaapipluginutil.h:
22745 plugins: add helpers to create video caps with features.
22746 Add gst_vaapi_video_format_new_template_caps_with_features() helper
22747 function to add the supplied caps feature string on GStreamer >= 1.2.
22748 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22749 the "best" caps feature to use for the supplied pad. In practice, we
22750 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22751 and finally the system memory caps.
22752 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22754 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22756 * gst/vaapi/gstvaapivideometa_texture.c:
22757 plugins: don't apply overlay composition in GLTextureUpload function.
22758 The GLTextureUpload function is not in charge of doing the overlay
22759 composition if any.
22760 https://bugzilla.gnome.org/show_bug.cgi?id=721859
22761 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22763 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22765 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22766 encoder: re-order submission of VA objects.
22767 Change the submission order of VA objects so that to make that process
22768 more logical. i.e. submit sequence parameter first, if any; next the
22769 packed headers associated to sequece, picture or slices; and finally
22770 the actual picture and associated slices.
22772 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22774 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22775 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22776 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22777 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22778 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22779 encoder: clean-up objects.
22780 Various clean-ups to improve consistency and readability: rename some
22781 variables, drop unused macro definitions, drop initialization of vars
22782 that are zero-initialized from the base class, drop un-necessary casts,
22783 allocate GPtrArrays with a destroy function.
22785 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22787 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22788 encoder: h264: fix frame cropping rectangle calculation.
22789 Fix frame cropping rectangle calculation to handle horizontal resolutions
22790 that don't match a multiple of 16 pixels, but also the vertical resolution
22791 that was incorrectly computed for progressive sequences too.
22792 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22794 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22796 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22797 encoder: h264: improve automatic bitrate calculation.
22798 For non "Constant-QP" modes, we could provide more reasonable heuristics
22799 for the target bitrate. In general, 48 bits per macroblock with all the
22800 useful coding tools enable looks safe enough. Then, this rate is raised
22801 by +10% to +15% for each coding tool that is disabled.
22802 https://bugzilla.gnome.org/show_bug.cgi?id=719699
22804 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22806 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22807 encoder: h264: support "high-compression" tuning option.
22808 Add support for "high-compression" tuning option. First, determine the
22809 largest supported profile by the hardware. Next, check any target limit
22810 set by the user. Then, enable each individual coding tool based on the
22811 resulting profile_idc value to use.
22812 https://bugzilla.gnome.org/show_bug.cgi?id=719696
22814 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22816 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22817 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22818 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22819 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22820 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22821 * gst/vaapi/gstvaapiencode_h264.c:
22822 encoder: h264: allow target decoder constraints.
22823 Allow user to precise the largest profile to use for encoding due
22824 to target decoder constraints. For instance, if CABAC entropy coding
22825 mode is requested by "constrained-baseline" profile only is desired,
22826 then an error is returned during codec configuration.
22827 Also make sure that the suitable profile we derived actually matches
22828 what the HW can cope with.
22829 https://bugzilla.gnome.org/show_bug.cgi?id=719694
22831 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22833 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22834 encoder: h264: refine size of coded buffer.
22835 Refine the heuristic to determine the maximum size of a coded buffer
22836 to account for the exact number of slices. set_context_info() is the
22837 last step during codec reconfiguration, no additional change is done
22838 afterwards, so re-using the num_slices field here is fine.
22839 https://bugzilla.gnome.org/show_bug.cgi?id=719953
22841 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@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 encoder: h264: expose more coding tools.
22847 Add new H.264 coding tools to improve compression:
22848 - "cabac": enable CABAC entropy coding (default: FALSE);
22849 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22850 https://bugzilla.gnome.org/show_bug.cgi?id=719693
22851 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22853 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22855 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22856 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22857 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22858 encoder: h264: derive profile and level from active coding tools.
22859 Automatically derive the minimum profile and level to be used for
22860 encoding, based on the activated coding tools. The encoder will
22861 be trying to generate a bitstream that has the best chances to be
22862 decoded on most platforms by default.
22863 Also change the default profile to "constrained-baseline" so that
22864 to ensure maximum compatibility when the stream is decoded.
22865 https://bugzilla.gnome.org/show_bug.cgi?id=719691
22867 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22869 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22870 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22871 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22872 encoder: h264: fix hardware profile lookup.
22873 Fix lookup for a suitable HW profile, as to be used by the underlying
22874 hardware, based on heuristics that lead to characterize the SW profile,
22875 i.e. the one used by the SW level encoding logic.
22876 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22877 as they should respectively match the baseline and main profile.
22878 https://bugzilla.gnome.org/show_bug.cgi?id=719827
22880 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22882 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22883 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22884 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22885 encoder: h264: support only the byte-stream format.
22886 The libgstvaapi core encoders are meant to support raw bitstreams only.
22887 Henceforth, we are always producing a stream in "byte-stream" format.
22888 However, the "codec-data" buffer which holds SPS and PPS headers is
22889 always available. The "lengthSizeMinusOne" field is always set to 3
22890 so that in-place "byte-stream" format to "avc" format conversion could
22893 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22895 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22896 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22897 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22898 * gst/vaapi/gstvaapiencode_h264.c:
22899 encoder: h264: clean-ups.
22900 Various clean-ups to improve consistency and readability: rename some
22901 variables, drop unused macro definitions, drop initialization of vars
22902 that are zero-initialized from the base class, drop un-necessary casts.
22904 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22906 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22907 encoder: mpeg2: fix hardware profile lookup.
22908 Fix lookup for a suitable HW profile, as to be used by the underlying
22909 hardware, based on heuristics that lead to characterize the SW profile,
22910 i.e. the one used by the SW level encoding logic.
22912 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22914 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22915 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22916 encoder: mpeg2: derive profile and level from active coding tools.
22917 Automatically derive the minimum profile and level to be used for
22918 encoding, based on the activated coding tools. Improve lookup for
22919 the best suitable level with the new MPEG-2 helper functions.
22920 Also change the default profile to "simple" so that to ensure maximum
22921 compatibility when the stream is decoded.
22922 https://bugzilla.gnome.org/show_bug.cgi?id=719703
22924 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22926 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22927 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22928 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22929 encoder: mpeg2: clean-ups.
22930 Various clean-ups to improve consistency and readability: drop unused
22931 macro definitions, drop initialization of vars that are zero-initialized
22932 from the base class, drop un-necessary casts.
22934 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22936 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22937 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22938 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22939 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22940 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22941 encoder: add tuning options API.
22942 Add encoder "tune" option to override the default behaviour that is to
22943 favor maximum decoder compatibility at the expense of lower compression
22945 Expected tuning options to be developed are:
22946 - "high-compression": improve compression, target best-in-class decoders;
22947 - "low-latency": tune for low-latency decoding;
22948 - "low-power": tune for encoding in low power / resources conditions.
22950 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22952 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22953 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22954 encoder: fix bitrate units to match kbps.
22955 Bitrate is expressed in kilobits per second (kbps). So, this exactly
22956 means in multiple of 1000 bits, not 1024 bits.
22957 https://bugzilla.gnome.org/show_bug.cgi?id=722086
22959 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22961 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22962 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22963 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22964 encoder: clean-ups.
22965 Drop obsolete and unused macros. Add a few doc comments. Slightly
22966 improve indentation of a few leftovers.
22968 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22970 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22971 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22972 * gst-libs/gst/vaapi/gstvaapivalue.c:
22973 * gst-libs/gst/vaapi/gstvaapivalue.h:
22974 encoder: filter out the supported set of rate-control properties.
22975 Only expose the exact static set of supported rate-control properties
22976 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22977 only support CQP rate control, then only add it the the exposed enum
22979 Add helper macros and functions to build a GType for an enum subset.
22981 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22983 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22984 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22985 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22986 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22987 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22988 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22989 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22990 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22991 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22992 encoder: add keyframe period API.
22993 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22994 user control the maximum distance between two keyframes. This new
22995 property can only be set prior to gst_vaapi_encoder_set_codec_state().
22996 A value of zero for "keyframe-period" gets it re-evaluated to the
22997 actual framerate during encoder reconfiguration.
22999 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23001 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23002 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23003 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23004 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23005 encoder: improve codec reconfiguration.
23006 Improve codec reconfiguration to be performed only through a single
23007 function. That is, remove the _set_context_info() hook as subclass
23008 should not alter the parent GstVaapiContextInfo itself. Besides, the
23009 VA context is constructed only at the final stages of reconfigure().
23011 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23013 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
23014 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
23015 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23016 encoder: fix possible memory leak of coded buffer pools.
23017 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
23018 buffer pool only if the coded buffer size actually changed.
23020 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23022 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23023 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23024 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23025 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23026 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23027 * gst/vaapi/gstvaapiencode.c:
23028 * gst/vaapi/gstvaapiencode.h:
23029 encoder: add video codec-state API.
23030 Add interface to communicate the encoder resolution and related info
23031 like framerate, interlaced vs. progressive, etc. This new interface
23032 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
23033 but rather use GstVideoCodecState.
23034 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
23035 point for codec config. This means that the encoder is reconfigured
23036 there to match the latest properties.
23038 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23040 * gst/vaapi/gstvaapiencode.c:
23041 vaapiencode: don't crash on NULL encoder on _finish().
23042 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
23043 if it was not created in the first place. Return "not-negotiated" error
23044 since this means we did not even reach GstVideoEncoder::set_format(),
23045 where the encoder could have been created.
23046 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
23047 and that we failed to negotiate either pad.
23048 https://bugzilla.gnome.org/show_bug.cgi?id=719704
23050 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23052 * gst/vaapi/gstvaapiencode.c:
23053 * gst/vaapi/gstvaapiencode.h:
23054 * gst/vaapi/gstvaapiencode_h264.c:
23055 vaapiencode: use more GstVaapiPluginBase facilities.
23056 Avoid duplication of pad references or query functions since they are
23057 provided through the GstVaapiPluginBase object.
23059 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23061 * gst/vaapi/gstvaapiencode.c:
23062 * gst/vaapi/gstvaapiencode.h:
23063 * gst/vaapi/gstvaapiencode_h264.c:
23064 * gst/vaapi/gstvaapiencode_h264.h:
23065 * gst/vaapi/gstvaapiencode_mpeg2.c:
23066 vaapiencode: fix negotiation process of output caps.
23067 The specified caps in gst_video_encoder_set_output_state() function
23068 arguments should not contain any resolution, pixel-aspect-ratio,
23069 framerate, codec-data et al. Those rather should be set through the
23070 returned GstVideoCodecState. This means that output caps creation
23071 could be delayed until before gst_video_encoder_finish_frame() is
23073 This greatly simplifies the GstVideoEncoder::set_format() callback
23076 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23078 * gst/vaapi/gstvaapiencode.c:
23079 vaapiencode: make GstVaapiEncode an abstract type.
23080 Make base GstVaapiEncode class an abstract type so that we cannot
23081 create an instance from it without going through any of the codec
23082 specific derived class.
23084 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23086 * gst/vaapi/gstvaapiencode.c:
23087 * gst/vaapi/gstvaapiencode.h:
23088 * gst/vaapi/gstvaapiencode_h264.c:
23089 * gst/vaapi/gstvaapiencode_mpeg2.c:
23090 vaapiencode: rename a few member functions.
23091 Rename a few member functions to make them more consistent:
23092 - alloc_encoder(): now reduced to allocate the encoder object only;
23093 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
23095 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23097 * gst/vaapi/gstvaapiencode.c:
23098 * gst/vaapi/gstvaapiencode.h:
23099 * gst/vaapi/gstvaapiencode_h264.c:
23100 * gst/vaapi/gstvaapiencode_h264.h:
23101 * gst/vaapi/gstvaapiencode_mpeg2.c:
23102 vaapiencode: update for new properties API.
23103 Update MPEG-2 and H.264 encode elements to cope with the new core
23104 libgstvaapi properties API. i.e. all configurable properties are now
23105 directly handled at the GstVaapiEncoder level.
23106 Besides, this also makes sure to not use or modify the GstVaapiEncoder
23107 private definitions directly. Private data need to remain private.
23108 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23110 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23112 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23113 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23114 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23115 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23116 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23117 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23118 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23119 encoder: add properties API.
23120 Add interface to communicate configurable properties to the encoder.
23121 This covers both the common ones (rate-control, bitrate), and the
23122 codec specific properties.
23123 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23125 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23127 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23128 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23129 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23130 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23131 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23132 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23133 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23134 * gst/vaapi/gstvaapiencode.c:
23135 * gst/vaapi/gstvaapiencode_h264.c:
23136 * gst/vaapi/gstvaapiencode_mpeg2.c:
23137 encoder: add bitrate API.
23138 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23139 the bitrate for encoding. Currently, changing this parameter is only
23140 valid before the first frame is encoded. Should the value be modified
23141 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23143 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23145 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23147 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23148 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23149 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23150 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23151 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23152 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23153 * gst-libs/gst/vaapi/gstvaapitypes.h:
23154 * gst/vaapi/gstvaapiencode.c:
23155 * gst/vaapi/gstvaapiencode.h:
23156 * gst/vaapi/gstvaapiencode_h264.c:
23157 * gst/vaapi/gstvaapiencode_mpeg2.c:
23158 encoder: add rate control API.
23159 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23160 rate control mode for encoding. Changing the rate control mode is
23161 only valid prior to encoding the very first frame. Afterwards, an
23162 error ("operation-failed") is issued.
23163 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23165 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23167 * gst/vaapi/gstvaapiencode.c:
23168 * gst/vaapi/gstvaapiencode_h264.c:
23169 * gst/vaapi/gstvaapiencode_mpeg2.c:
23170 vaapiencode: fix indentation.
23172 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23174 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23175 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23176 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23177 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23178 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23179 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23180 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23181 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23182 * gst/vaapi/gstvaapiencode.h:
23183 encoder: fix indentation.
23185 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23187 * gst-libs/gst/vaapi/Makefile.am:
23188 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23189 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23190 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23191 utils: add new MPEG-2 helper functions.
23192 Add various helper functions to convert profile, level, chroma formats
23193 from gstreamer-vaapi world and the MPEG-2 specification world.
23195 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23197 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23198 utils: h264: don't use fatal asserts.
23199 Replace g_assert() with a g_debug() so that to not make the program
23200 abort when an unsupported value is supplied.
23202 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23204 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23205 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23206 utils: h264: add helpers for profile and level string mappings.
23207 Add profile and level helper functions to convert to/from strings.
23209 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23211 * gst-libs/gst/vaapi/Makefile.am:
23212 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23213 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23214 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23215 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23216 utils: h264: expose levels in public header.
23217 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23218 H.264 levels in there. The additional helper functions are meant
23219 to be private for now.
23221 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23223 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23224 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23225 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23226 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23227 codec: add helper macros to maintain object refcount.
23228 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23229 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23231 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23233 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23234 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23235 codec: re-indent decoder objects.
23237 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23239 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23240 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23241 codec: re-indent base codec objects.
23243 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23245 * gst/vaapi/gstvaapipluginbase.c:
23246 plugins: do not free debug category in finalize method.
23247 Fixes a crash when multiple vaapidecode elements are finalized since
23248 the debug category is created once in the class init method.
23249 This is a regression from git commit 7e58d60.
23250 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23251 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23253 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23255 * gst-libs/gst/vaapi/glibcompat.h:
23256 * tests/simple-decoder.c:
23257 tests: simple-decoder: don't use deprecated g_thread_create().
23258 Use g_thread_try_new() instead of the deprecated g_thread_create()
23259 function. Provide compatibility glue for any GLib version < 2.31.2.
23261 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23263 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23264 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23265 * gst-libs/gst/vaapi/gstvaapisurface.c:
23266 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23267 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23268 * gst/vaapi/gstvaapiencode.c:
23269 Fix printf()-like formats.
23270 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23271 make size_t arguments use the %zu format specifier accordingly; force
23272 XID formats to be a 32-bit unsigned integer; and fix the format used
23273 for gst_vaapi_create_surface_with_format() error cases since we have
23274 been using strings nowadays.
23276 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23278 * gst-libs/gst/vaapi/video-format.c:
23279 * gst-libs/gst/vaapi/video-format.h:
23280 utils: format: drop unused helper functions.
23281 The following helper functions are no longer used, thus are removed:
23282 - gst_vaapi_video_format_from_structure()
23283 - gst_vaapi_video_format_from_caps()
23284 - gst_vaapi_video_format_to_caps()
23286 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23288 * gst-libs/gst/vaapi/video-format.c:
23289 * gst-libs/gst/vaapi/video-format.h:
23290 utils: re-indent GstVideoFormat related helpers.
23292 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23294 * gst/vaapi/gstvaapidownload.c:
23295 download: use GstVideoInfo facilities to build output caps.
23296 Use standard GstVideoInfo related functions to build the output caps,
23297 thus directly preserving additional fields as needed, instead of
23298 manually copying them over through gst_vaapi_append_surface_caps().
23299 Also ensure that the input caps are fixated first.
23301 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23303 * gst/vaapi/gstvaapidownload.c:
23304 * gst/vaapi/gstvaapipluginutil.c:
23305 * gst/vaapi/gstvaapipluginutil.h:
23306 * gst/vaapi/gstvaapiuploader.c:
23307 plugins: factor out construction of template caps.
23308 Add new helper functions to build video template caps.
23309 - gst_vaapi_video_format_new_template_caps():
23310 create GstCaps with size, frame rate and PAR to full range
23311 - gst_vaapi_video_format_new_template_caps_from_list():
23312 try to create a "simplified" list from the supplied formats
23314 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23316 * gst/vaapi/gstvaapipluginutil.c:
23317 * gst/vaapi/gstvaapipluginutil.h:
23318 * gst/vaapi/gstvaapipostproc.c:
23319 plugins: factor out construction of GValue from GstVideoFormat.
23320 Add new helper functions to build GValues from GstVideoFormat:
23321 - gst_vaapi_value_set_format():
23322 build a GValue from the supplied video format
23323 - gst_vaapi_value_set_format_list():
23324 build a GValue list from the supplied array of video formats
23326 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23328 * gst/vaapi/gstvaapipluginutil.c:
23329 * gst/vaapi/gstvaapipluginutil.h:
23330 * gst/vaapi/gstvaapivideocontext.c:
23331 * gst/vaapi/gstvaapivideocontext.h:
23332 plugins: re-indent common and video context creation utils.
23334 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23336 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23337 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23338 * gst/vaapi/gstvaapidecode.c:
23339 * tests/test-display.c:
23340 display: don't use GstCaps for decode or encode profiles list.
23341 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23342 more convenient APIs that return an array of GstVaapiProfile instead
23343 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23345 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23347 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23348 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23349 * gst/vaapi/gstvaapidownload.c:
23350 * gst/vaapi/gstvaapiuploader.c:
23351 * tests/test-display.c:
23352 display: don't use GstCaps for image or subpicture formats list.
23353 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23354 returned GstCaps, with more convenient APIs that return an array of
23355 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23357 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23359 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23360 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23361 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23362 display: allocate queried resources on-demand.
23363 Allocate the set of decoders or encoders on-demand, when they are
23364 queried. Likewise for VA display attributes, image and subpicture
23367 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23369 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23370 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23371 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23372 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23373 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23374 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23375 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23376 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23377 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23378 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23379 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23380 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23381 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23382 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23383 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23384 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23385 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23386 display: re-indent all GstVaapiDisplay related source code.
23388 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23390 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23391 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23392 utils: add helper functions to get codec or profile name.
23394 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23396 * gst/vaapi/gstvaapipostproc.c:
23397 * gst/vaapi/gstvaapipostproc.h:
23398 * gst/vaapi/gstvaapiuploader.c:
23399 plugins: fix permissions for certain files.
23400 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23403 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23405 * gst/vaapi/gstvaapivideometa_texture.c:
23406 plugins: implement GLTextureUploadMeta user data copy.
23407 Makes the copies of a buffer reference their own GLTextureUploadMeta
23408 user data and prevent the original buffer accessing already freed
23409 memory if its copies has been released and freed.
23410 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23411 [Propagate the original meta texture to the copy too]
23412 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23414 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23416 * gst/vaapi/gstvaapiencode.c:
23417 * gst/vaapi/gstvaapiencode.h:
23418 * gst/vaapi/gstvaapipluginbase.c:
23419 * gst/vaapi/gstvaapipluginbase.h:
23420 * gst/vaapi/gstvaapipostproc.c:
23421 * gst/vaapi/gstvaapipostproc.h:
23422 * gst/vaapi/gstvaapisink.c:
23423 * gst/vaapi/gstvaapisink.h:
23424 plugins: factor out support for raw YUV buffers on sink pads.
23425 Factor out propose_allocation() hooks, creation of video buffer pool
23426 for the sink pad, conversion from raw YUV buffers to VA surface backed
23427 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23428 with the new GstVaapiPluginBase abilities.
23430 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23432 * gst-libs/gst/vaapi/gstcompat.h:
23433 * gst/vaapi/gstvaapidecode.c:
23434 * gst/vaapi/gstvaapidecode.h:
23435 * gst/vaapi/gstvaapidownload.c:
23436 * gst/vaapi/gstvaapipluginbase.c:
23437 * gst/vaapi/gstvaapipluginbase.h:
23438 * gst/vaapi/gstvaapipostproc.c:
23439 * gst/vaapi/gstvaapipostproc.h:
23440 * gst/vaapi/gstvaapisink.c:
23441 * gst/vaapi/gstvaapiupload.c:
23442 plugins: factor out pad caps.
23444 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23446 * gst/vaapi/gstvaapidecode.c:
23447 * gst/vaapi/gstvaapidownload.c:
23448 * gst/vaapi/gstvaapiencode.c:
23449 * gst/vaapi/gstvaapipluginbase.c:
23450 * gst/vaapi/gstvaapipostproc.c:
23451 * gst/vaapi/gstvaapisink.c:
23452 * gst/vaapi/gstvaapiupload.c:
23453 plugins: factor out video context sharing code.
23455 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23457 * gst/vaapi/gstvaapidecode.c:
23458 * gst/vaapi/gstvaapidownload.c:
23459 * gst/vaapi/gstvaapiencode.c:
23460 * gst/vaapi/gstvaapipluginbase.c:
23461 * gst/vaapi/gstvaapipluginbase.h:
23462 * gst/vaapi/gstvaapipostproc.c:
23463 * gst/vaapi/gstvaapisink.c:
23464 * gst/vaapi/gstvaapiupload.c:
23465 plugins: factor out GstImplementsInterface.
23467 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23469 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23470 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23471 * gst/vaapi/gstvaapipluginbase.c:
23472 * gst/vaapi/gstvaapipluginutil.c:
23473 plugins: check type of display obtained from neighbours.
23474 Fix display creation code to check that any display obtained from a
23475 neighbour actually has the type we expect. Note: if display type is
23476 set to "any", we can then accept any VA display type.
23478 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23480 * gst/vaapi/gstvaapidecode.c:
23481 * gst/vaapi/gstvaapidownload.c:
23482 * gst/vaapi/gstvaapiencode.c:
23483 * gst/vaapi/gstvaapipluginbase.c:
23484 * gst/vaapi/gstvaapipluginbase.h:
23485 * gst/vaapi/gstvaapipluginutil.c:
23486 * gst/vaapi/gstvaapipluginutil.h:
23487 * gst/vaapi/gstvaapipostproc.c:
23488 * gst/vaapi/gstvaapisink.c:
23489 * gst/vaapi/gstvaapisink.h:
23490 * gst/vaapi/gstvaapiupload.c:
23491 plugins: factor out display creation process.
23492 Move common VA display creation code to GstVaapiPluginBase, with the
23493 default display type remaining "any". Also add a "display-changed"
23494 hook so that subclasses could perform additional tasks when/if the
23495 VA display changed, due to a new display type request for instance.
23496 All plug-ins are updated to cope with the new internal APIs.
23498 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23500 * gst/vaapi/Makefile.am:
23501 * gst/vaapi/gstvaapidecode.c:
23502 * gst/vaapi/gstvaapidecode.h:
23503 * gst/vaapi/gstvaapidownload.c:
23504 * gst/vaapi/gstvaapidownload.h:
23505 * gst/vaapi/gstvaapiencode.c:
23506 * gst/vaapi/gstvaapiencode.h:
23507 * gst/vaapi/gstvaapipluginbase.c:
23508 * gst/vaapi/gstvaapipluginbase.h:
23509 * gst/vaapi/gstvaapipostproc.c:
23510 * gst/vaapi/gstvaapipostproc.h:
23511 * gst/vaapi/gstvaapisink.c:
23512 * gst/vaapi/gstvaapisink.h:
23513 * gst/vaapi/gstvaapiupload.c:
23514 * gst/vaapi/gstvaapiupload.h:
23515 plugins: add new base object, store display in there.
23516 Introduce a new GstVaapiPluginBase object that will contain all common
23517 data structures and perform all common tasks. First step is to have a
23518 single place to hold VA displays.
23519 While we are at it, also make sure to store and subsequently release
23520 the appropriate debug category for the subclasses.
23522 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23524 * gst-libs/gst/vaapi/gstvaapiobject.h:
23525 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23526 * gst/vaapi/gstvaapivideometa_texture.c:
23527 * gst/vaapi/gstvaapivideometa_texture.h:
23528 plugins: fix GLTextureUploadMeta to work with different texture ids.
23529 The GLTextureUploadMeta implementation assumed that for each upload()
23530 sequence, the supplied texture id is always the same as the one that
23531 was previously cached into the underlying GstVaapiTexture. Cope with
23532 any texture id change the expense to recreate the underlying VA/GLX
23534 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23536 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23538 * gst/vaapi/gstvaapidecode.c:
23539 * gst/vaapi/gstvaapivideobufferpool.c:
23540 * gst/vaapi/gstvaapivideometa_texture.c:
23541 plugins: allow builds without GLX enabled for GStreamer 1.2.
23542 Don't try to build GLTextureUploadMeta related code if GLX is not
23543 enabled during GStreamer >= 1.2 builds.
23545 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23547 * gst/vaapi/gstvaapidecode.c:
23548 * gst/vaapi/gstvaapivideobufferpool.c:
23549 * gst/vaapi/gstvaapivideobufferpool.h:
23550 * gst/vaapi/gstvaapivideometa_texture.c:
23551 * gst/vaapi/gstvaapivideometa_texture.h:
23552 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23553 Requesting the GLTextureUpload meta on buffers in the bufferpool
23554 prevents such metas from being de-allocated when buffers are released
23556 This is particulary useful in terms of performance when using the
23557 GLTextureUploadMeta API since the GstVaapiTexture associated with
23558 the target texture is stored in the meta.
23559 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23560 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23562 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23564 * gst/vaapi/gstvaapivideometa_texture.c:
23565 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23566 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23567 when the GstVaapiTexture associated with the supplied texture id could
23570 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23572 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23573 h264: improve robustness when packets are missing.
23574 Improve robustness when some expected packets where not received yet
23575 or that were not correctly decoded. For example, don't try to decode
23576 a picture if there was no valid frame headers parsed so far.
23577 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23579 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23581 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23582 decoder: h264: fix decoding of BA3_SVA_C.264.
23583 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23584 extended profile specifications. However, the SPS header has the
23585 constraint_set1_flag syntax element set to 1. This means that, if
23586 a Main profile compliant decoder is available, then it should be
23587 able to decode this stream.
23588 This changes makes it possible to fall-back from Extended profile
23589 to Main profile if constraint_set1_flag is set to 1.
23590 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23592 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23594 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23595 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23596 utils: h264: add more profiles.
23597 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23598 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23599 multiview profiles (H.10.1.1, H.10.1.2).
23600 Document "Constrained Baseline" and "High 10" profiles.
23602 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23604 * ext/codecparsers:
23605 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23606 e7d0e18 h264: complete set of NAL unit types
23608 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23610 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23611 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23612 decoder: h264: add support for constrained baseline profile.
23613 Recognize streams marked as conforming to the "Constrained Baseline
23614 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23615 to baseline, main or high profile.
23616 Constrained Baseline Profile conveys coding tools that are common
23617 to baseline profile and main profile.
23618 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23619 [Added fallbacks to main and high profiles]
23620 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23622 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23624 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23625 decoder: h264: fix decoding of scaling lists.
23626 The GStreamer codecparser layer now parses the scaling lists in zigzag
23627 scan order, as expected, so that to match the original bitstream layout
23628 and specification. However, further convert the scaling lists into
23629 raster scan order to fit the existing practice in most VA drivers.
23630 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23632 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23634 * ext/codecparsers:
23635 codecparsers: update to gst-vaapi-branch commit 177c73b.
23636 a7e3255 add H.265 (HEVC) bitstream parser
23637 177c73b h264: fix picture level scaling lists derivation (rule B)
23638 14733f1 h264: fix parsing of VCL HRD parameters
23639 59a0b47 h264: store quantization matrices in zig-zag order
23640 ffb6e26 h264: add helpers to convert quantization matrices
23641 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23642 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23643 5241d8e all: remove some unused functions
23644 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23645 963c04a all: make warnings more meaningful
23647 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23649 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23650 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23651 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23652 utils: add helpers for H.264 levels.
23653 - gst_vaapi_utils_h264_get_level():
23654 Returns GstVaapiLevelH264 from H.264 level_idc value
23655 - gst_vaapi_utils_h264_get_level_idc():
23656 Returns H.264 level_idc value from GstVaapiLevelH264
23657 - gst_vaapi_utils_h264_get_level_limits():
23658 Returns level limits as specified in Table A-1 of the H.264 standard
23659 - gst_vaapi_utils_h264_get_level_limits_table():
23660 Returns the Table A-1 specification
23662 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23664 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23665 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23666 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23667 utils: add new H.264 profiles.
23668 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23669 and helper functiions.
23671 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23673 utils: add new H.264 helper functions.
23675 - gst_vaapi_utils_h264_get_profile():
23676 Returns GstVaapiProfile from H.264 profile_idc value
23677 - gst_vaapi_utils_h264_get_profile_idc():
23678 Returns H.264 profile_idc value from GstVaapiProfile
23680 - gst_vaapi_utils_h264_get_chroma_type():
23681 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23682 - gst_vaapi_utils_h264_get_chroma_format_idc():
23683 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23685 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23687 * gst-libs/gst/base/Makefile.am:
23688 * gst-libs/gst/vaapi/Makefile.am:
23689 Fix missing files in distribution tarball.
23690 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23691 [Additional fixes and clean-ups]
23692 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23694 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23696 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23697 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23698 encoder: fix computation of max coded buffer size (again).
23699 The previous fix was only valid to express the maximum size of the
23700 macroblock layer, i.e. without any headers. Now, also account for
23701 the slice headers and top picture header, but also any other header
23702 we might stuff into the VA coded buffer, e.g. sequence headers.
23704 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23706 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23707 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23708 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23709 encoder: fix computation of max coded buffer size.
23710 Fix coded buffer size for each codec. A generic issue was that the
23711 number of macroblocks was incorrectly computed. The second issue was
23712 specific to MPEG-2 were the max number of bits per macroblock, and
23713 as defined by the standard, was incorrectly mapped to the (lower)
23714 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23716 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23718 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23719 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23720 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23721 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23722 encoder: simplify VA context initialization process.
23723 Change get_context_info() into a set_context_info() function that
23724 initializes common defaults into the base class, thus allowing the
23725 subclasses to specialize the context info further on.
23726 The set_context_info() hook is also the location where additional
23727 context specific data could be initialized. At this point, we are
23728 guaranteed to have valid video resolution size and framerate. i.e.
23729 gst_vaapi_encoder_set_format() was called beforehand.
23731 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
23733 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23734 encoder: fix mpeg2 compilation error.
23735 https://bugzilla.gnome.org/show_bug.cgi?id=719746
23736 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23738 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23740 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23741 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23742 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23743 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23744 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23745 * gst/vaapi/gstvaapiencode.c:
23746 encoder: clean-ups and document public APIs.
23747 Clean public APIs up so that to better align with the decoder APIs.
23748 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23749 return the VA coded buffer proxy. Also provide useful documentation
23750 for the public APIs.
23752 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23754 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23755 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23756 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23757 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23758 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23759 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23760 through GstVaapiCodedBufferProxy user-data facility.
23761 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23763 Partial fix for the following report:
23764 https://bugzilla.gnome.org/show_bug.cgi?id=719530
23766 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23768 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23769 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23770 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23771 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23772 * gst/vaapi/gstvaapiencode.c:
23773 encoder: refactor status codes.
23774 Drop obsolete or unused status codes. Align some status codes with the
23775 decoder counterparts.
23777 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23779 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23780 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23781 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23782 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23783 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23784 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23785 encoder: fix subclassing process.
23786 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23787 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23788 thus avoiding useless run-time checks. Also simplify the subclass
23789 initialization process to be less error prone.
23791 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23793 encoder: rework GstVaapiCodedBuffer and related proxy.
23794 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23795 public and private interfaces. Besides, the map/unmap APIs should not
23796 be exposed as is but appropriate accessors should be provided instead.
23797 * GstVaapiCodedBuffer: VA coded buffer abstraction
23798 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23799 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23800 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23801 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23802 the specified max size, and bound to the supplied encoder
23803 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23804 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23805 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23806 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23807 Rationale: more optimized transfer functions might be provided in the
23808 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23809 https://bugzilla.gnome.org/show_bug.cgi?id=719775
23811 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23813 * gst/vaapi/gstvaapidecode.c:
23814 * gst/vaapi/gstvaapiencode.c:
23815 * gst/vaapi/gstvaapipostproc.c:
23816 * gst/vaapi/gstvaapisink.c:
23817 plugins: fix reference leaks of VA display objects.
23818 Fix GstElement::set_context() implementation for all plug-in elements
23819 to avoid leaking an extra reference to the VA display, thus preventing
23820 correct cleanup of VA resources in GStreamer 1.2 builds.
23822 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23824 * gst/vaapi/gstvaapipluginutil.c:
23825 * gst/vaapi/gstvaapivideocontext.c:
23826 plugins: simplify gst_vaapi_ensure_display().
23827 Return earlier if the creation of a VA display failed. Likewise, simplify
23828 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23831 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23833 * gst/vaapi/gstvaapivideomemory.c:
23834 plugins: fix memory leaks through GstVideoMeta maps.
23835 When GstVideoMeta maps were used, the supporting functions incorrectly
23836 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23837 always increasing the associated GstMemory reference count and giving
23838 zero chance to actually release that, and subsequently the VA display.
23840 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23842 * gst-libs/gst/vaapi/gstvaapifilter.c:
23843 * gst/vaapi/gstvaapiencode_h264.c:
23844 * gst/vaapi/gstvaapiencode_mpeg2.c:
23845 * gst/vaapi/gstvaapipostproc.c:
23846 * gst/vaapi/gstvaapisink.c:
23847 * gst/vaapi/gstvaapiuploader.c:
23848 plugins: use G_PARAM_STATIC_STRINGS.
23849 This avoids a few string copies during initialization.
23851 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23853 * gst/vaapi/gstvaapivideometa.c:
23854 plugins: simplify VA video meta to only reference surface proxies.
23855 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23856 now allocated from a surface pool. This also means that the local
23857 reference to the VA surface is also gone, as it could be extracted
23858 from the associated surface proxy.
23860 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23862 * gst/vaapi/gstvaapivideobuffer.c:
23863 * gst/vaapi/gstvaapivideobuffer.h:
23864 * gst/vaapi/gstvaapivideometa.c:
23865 * gst/vaapi/gstvaapivideometa.h:
23866 plugins: drop obsolete functions.
23867 Drop the following functions that are not longer used:
23868 - gst_vaapi_video_buffer_new_with_surface()
23869 - gst_vaapi_video_meta_new_with_surface()
23870 - gst_vaapi_video_meta_set_surface()
23871 - gst_vaapi_video_meta_set_surface_from_pool()
23873 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23875 * gst/vaapi/gstvaapivideometa.c:
23876 plugins: allow VA video meta to be allocated from surface proxy pools.
23877 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23878 from surface pools instead of plain VA surfaces. This is to simplify
23879 allocations now that surface proxies are created from a surface pool.
23881 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23883 * docs/reference/libs/libs-sections.txt:
23884 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23885 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23886 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23887 surfaceproxy: add copy function.
23888 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23889 proxy with the same information from the parent proxy, except that the
23890 user-defined destroy notify function is not copied over.
23891 The underlying VA surface is pushed back to the video pool only when
23892 the last reference to the parent surface proxy is released.
23894 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23896 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23897 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23898 * gst/vaapi/gstvaapiencode.c:
23899 vaapiencode: optimize _handle_frame() to avoid extra allocation.
23900 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23901 and in particular the GstVaapiEncObjUserData object. i.e. directly use
23902 the VA surface proxy from the source buffer. This also makes the user
23903 data attached to the GstVideoCodecFrame more consistent between both
23904 the decoder and encoder plug-in elements.
23906 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23908 * gst/vaapi/gstvaapiencode.c:
23909 vaapiencode: fix memory leaks in _push_frame() on error.
23910 Simplify gst_vaapiencode_push_frame(), while also removing the call
23911 to gst_video_encoder_negotiate() since this is implicit in _finish()
23912 if caps changed. Also fixed memory leaks that occured on error.
23914 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23916 * gst/vaapi/gstvaapiencode.c:
23917 * gst/vaapi/gstvaapiencode.h:
23918 * gst/vaapi/gstvaapiencode_h264.c:
23919 * gst/vaapi/gstvaapiencode_h264.h:
23920 * gst/vaapi/gstvaapiencode_mpeg2.c:
23921 vaapiencode: additional clean-ups.
23922 Constify pointers wherever possible. Drop unused variables, and use
23923 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23924 to correctly report errors, especially when in-place conversion from
23925 bytestream to avcC format failed.
23927 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23929 * gst/vaapi/gstvaapiencode.c:
23930 * gst/vaapi/gstvaapiencode.h:
23931 * gst/vaapi/gstvaapiencode_h264.c:
23932 * gst/vaapi/gstvaapiencode_h264.h:
23933 * gst/vaapi/gstvaapiencode_mpeg2.c:
23934 * gst/vaapi/gstvaapiencode_mpeg2.h:
23935 vaapiencode: move common properties to base class.
23936 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23937 base class. The actual range of supported rate control modes is currently
23938 implemented as a plug-in element hook. This ought to be determined from
23939 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23941 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23943 * gst/vaapi/gstvaapiencode_h264.c:
23944 * gst/vaapi/gstvaapiencode_mpeg2.c:
23945 vaapiencode: fix plugin description and debug name.
23946 Align the plug-in debug category to its actual name. i.e. enable debug
23947 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23948 the plug-in element description to make it more consistent with other
23951 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23954 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23955 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23956 * gst-libs/gst/video/Makefile.am:
23957 * gst/vaapi/gstvaapiencode.c:
23958 * gst/vaapi/gstvaapiencode.h:
23959 * gst/vaapi/gstvaapiencode_h264.c:
23960 * gst/vaapi/gstvaapiencode_mpeg2.c:
23961 vaapiencode: add initial support for GStreamer 0.10.
23963 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23965 * gst-libs/gst/vaapi/gstcompat.h:
23966 libs: add more GstBuffer compat glue for GStreamer 0.10.
23967 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23968 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23971 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23974 * gst-libs/gst/video/Makefile.am:
23975 libs: always use built-in videoutils for GStreamer 0.10.
23976 GStreamer 0.10.36 is the latest and ultimate version to be released
23977 from the GStreamer 0.10 branch. i.e. no further releases are to be
23978 made. So, we can safely enable the built-in videoutils replacement
23979 now that they are in sync with the 0.10 branch.
23981 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23984 videoutils: update to master commit d4a15a5.
23985 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23986 86096cc videodecoder: minor cosmetic changes to align a bit more with master
23987 b4b8b52 videodecoder: allow parse function to not use all data on adapter
23988 2145495 videodecoder: warn if frame list gets long
23989 36c3753 videodecoder: Also use the object lock to protect the output_state
23990 518c93d videodecoder: fix seeking again
23991 185fb63 video: Correct usage of the base class stream lock
23992 170e944 videodecoder: Expose _negotiate function
23994 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23997 * gst-libs/gst/vaapi/Makefile.am:
23998 * tests/Makefile.am:
23999 Fix build with GStreamer >= 1.3.
24000 http://bugzilla.gnome.org/show_bug.cgi?id=715183
24001 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24003 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24006 configure: disable encoders with GStreamer 0.10.
24007 Don't try to build video encoders for GStreamer 0.10. Support code is
24008 not there yet, and probably will never for such an ancient version.
24010 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24012 * gst/vaapi/gstvaapiencode.c:
24013 vaapiencode: fix error handling while allocating output buffers.
24014 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
24015 unmap the coded buffer prior to returning an error.
24017 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24019 * gst/vaapi/gstvaapiencode.c:
24020 vaapiencode: fix error handling in _finish() hook.
24021 Fix GstVideoEncoder::finish() implementation to really return possible
24022 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
24024 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24026 * gst/vaapi/gstvaapiencode.c:
24027 * gst/vaapi/gstvaapiencode.h:
24028 * gst/vaapi/gstvaapiencode_h264.c:
24029 * gst/vaapi/gstvaapiencode_h264.h:
24030 * gst/vaapi/gstvaapiencode_mpeg2.c:
24031 * gst/vaapi/gstvaapiencode_mpeg2.h:
24032 vaapiencode: minor clean-ups.
24033 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
24034 the GObject type system. We are guaranteed to only deal with the same
24035 plug-in element object.
24037 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24039 * gst/vaapi/gstvaapiencode.c:
24040 * gst/vaapi/gstvaapiencode_h264.c:
24041 * gst/vaapi/gstvaapiencode_mpeg2.c:
24042 vaapiencode: fix support for raw YUV sink buffers.
24043 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
24044 The most efficient way to do so is to let the vaapiencode elements
24045 allocate a buffer pool, and subsequently buffers from it. This means
24046 that upstream elements are expected to honour downstream pools.
24047 If upstream elements insist on providing their own allocated buffers
24048 to the vaapiencode elements, then it possibly would be more efficient
24049 to insert a vaapipostproc element before the vaapiencode element.
24050 This is because vaapipostproc currently has better support than other
24051 elements for "foreign" raw YUV buffers.
24053 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24055 * gst/vaapi/gstvaapiencode.c:
24056 vaapiencode: fix support for GStreamer 1.2.
24058 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
24060 * gst/vaapi/gstvaapiencode.c:
24061 * gst/vaapi/gstvaapiencode_h264.c:
24062 * gst/vaapi/gstvaapiencode_mpeg2.c:
24063 vaapiencode: initial port to GStreamer 1.2.
24064 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24066 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
24068 * gst/vaapi/Makefile.am:
24069 * gst/vaapi/gstvaapi.c:
24070 * gst/vaapi/gstvaapiencode_mpeg2.c:
24071 * gst/vaapi/gstvaapiencode_mpeg2.h:
24072 plugins: add mpeg2 encoder element.
24073 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
24074 is called "vaapiencode_mpeg2".
24076 - rate-control: rate control mode (default: cqp - constant QP)
24077 - bitrate: desired bitrate in kbps (default: auto-calculated)
24078 - key-period: maximal distance between two key frames (default: 30)
24079 - max-bframes: number of B-frames between I and P (default: 2)
24080 - quantizer: constant quantizer (default: 8)
24081 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24083 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
24085 * gst/vaapi/Makefile.am:
24086 * gst/vaapi/gstvaapi.c:
24087 * gst/vaapi/gstvaapiencode_h264.c:
24088 * gst/vaapi/gstvaapiencode_h264.h:
24089 plugins: add h264 encoder element.
24090 Add GstVaapiEncodeH264 element object. The actual plug-in element
24091 is called "vaapiencode_h264".
24093 - rate-control: rate control mode (default: none)
24094 - bitrate: desired bitrate in kbps (default: auto-calculated)
24095 - key-period: maximal distance between two key frames (default: 30)
24096 - num-slices: number of slices per frame (default: 1)
24097 - max-bframes: number of B-frames between I and P (default: 0)
24098 - min-qp: minimal quantizer (default: 1)
24099 - init-qp: initial quantizer (default: 26)
24100 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24102 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
24104 * gst/vaapi/Makefile.am:
24105 * gst/vaapi/gstvaapiencode.c:
24106 * gst/vaapi/gstvaapiencode.h:
24107 plugins: add base encoder element.
24108 vaapiencode element is based on GstVideoEncoder APIs.
24109 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24111 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
24113 * gst-libs/gst/vaapi/Makefile.am:
24114 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24115 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
24116 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24117 encoder: add mpeg2 encoder.
24118 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
24119 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24121 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
24123 * gst-libs/gst/vaapi/Makefile.am:
24124 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24125 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
24126 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24127 encoder: add h264 encoder.
24128 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24130 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
24133 * gst-libs/gst/vaapi/Makefile.am:
24134 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24135 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24136 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24137 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24138 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24139 Add initial infrastructure for video encoding.
24140 Add initial API for video encoding: only basic interfaces and small
24141 encoder objects are implemented so far.
24142 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24144 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
24147 * gst-libs/gst/Makefile.am:
24148 * gst-libs/gst/base/Makefile.am:
24149 * gst-libs/gst/base/gstbitwriter.c:
24150 * gst-libs/gst/base/gstbitwriter.h:
24151 * gst-libs/gst/vaapi/Makefile.am:
24152 libs: add generic bitstream writer.
24153 GstBitWriter provides a bit writer that can write any number of bits
24154 to a pre-allocated memory buffer. Helper functions are also provided
24155 to write any number of bits from 8, 16, 32 and 64 bit variables.
24156 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24158 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24160 * gst-libs/gst/vaapi/gstvaapicontext.c:
24161 * gst-libs/gst/vaapi/gstvaapicontext.h:
24162 libs: add support for rate-control to GstVaapiContext.
24163 Extend GstVaapiContextInfo structure to hold the desired rate control
24164 mode for encoding purposes. For decoding purposes, this field is not
24165 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24166 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24168 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24170 * gst-libs/gst/vaapi/gstvaapitypes.h:
24171 * gst-libs/gst/vaapi/gstvaapiutils.c:
24172 * gst-libs/gst/vaapi/gstvaapiutils.h:
24173 * gst-libs/gst/vaapi/gstvaapivalue.c:
24174 * gst-libs/gst/vaapi/gstvaapivalue.h:
24175 libs: add rate-control attributes.
24176 Add GstVaapiRateControl types and GType values in view to supporting
24177 rate controls for encoding. This is meant to be used for instance in
24179 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24181 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24184 Bump version for development.
24186 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24188 * gst/vaapi/Makefile.am:
24189 build: fix for Wayland headers not in standard include dirs.
24190 Fix build when Wayland headers don't live in plain system include dirs
24191 like /usr/include but rather in /usr/include/wayland for instance.
24192 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24193 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24195 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24197 * gst-libs/gst/vaapi/Makefile.am:
24198 build: link libgstvaapi-wayland against videoutils.
24199 This library is using symbols that don't exist in GStreamer 0.10 so
24200 it needs to link to built-in implementation (libgstvaapi-videoutils).
24201 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24202 Signed-off-by: Ross Burton <ross.burton@intel.com>
24203 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24205 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24207 * gst-libs/gst/vaapi/gstvaapifilter.c:
24208 * gst/vaapi/gstvaapipostproc.c:
24209 vaapostproc: fix memory leaks.
24210 Destroy VPP output surface pool on exit. Also avoid a possible crash
24211 in double-free situation caused by insufficiently reference counted
24212 array of formats returned during initialization.
24214 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24216 * gst/vaapi/gstvaapipostproc.c:
24217 * gst/vaapi/gstvaapipostproc.h:
24218 vaapipostproc: fix and optimize advanced deinterlacing mode.
24219 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24220 reference buffers. This used to be 3 past reference buffers but this
24221 doesn't fit with the existing decode pipeline that only has 4 extra
24223 Also optimize references tracking to be only enabled when needed, i.e.
24224 when advanced deinterlacing mode is used. This means that we don't
24225 need to track past references for basic bob or weave deinterlacing.
24227 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24229 * gst/vaapi/gstvaapipostproc.c:
24230 vaapipostproc: fix "mixed" mode deinterlacing.
24231 In "mixed" interlaced streams, the buffer contains additional flags that
24232 specify whether the frame contained herein is interlaced or not. This means
24233 that we can alternatively get progressive or interlaced frames. Make sure
24234 to disable deinterlacing at the VPP level when the source buffer is no longer
24237 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24239 * gst/vaapi/gstvaapipostproc.c:
24240 vaapipostproc: fix memory leaks with advanced deinterlacing.
24241 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24242 of past buffers. Completely reset the deinterlace state, thus destroying
24243 any buffer currently held, on _start(), _stop() and _destroy().
24245 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24249 - GStreamer 1.2 APIs are supported ;
24250 - Video Processing (VA/VPP) features.
24252 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24255 README: update for GStreamer >= 1.0.x and VPP features.
24257 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24259 * gst-libs/gst/vaapi/glibcompat.h:
24260 * gst-libs/gst/vaapi/gstvaapicontext.h:
24261 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24262 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24263 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24264 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24265 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24266 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24267 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24268 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24269 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24270 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24271 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24272 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24273 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24274 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24275 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24276 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24277 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24278 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24279 * gst-libs/gst/vaapi/gstvaapiimage.c:
24280 * gst-libs/gst/vaapi/gstvaapiimage.h:
24281 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24282 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24283 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24284 * gst-libs/gst/vaapi/gstvaapiobject.c:
24285 * gst-libs/gst/vaapi/gstvaapiobject.h:
24286 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24287 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24288 * gst-libs/gst/vaapi/gstvaapisurface.h:
24289 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24290 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24291 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24292 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24293 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24294 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24295 * gst-libs/gst/vaapi/gstvaapitexture.c:
24296 * gst-libs/gst/vaapi/gstvaapitexture.h:
24297 * gst-libs/gst/vaapi/gstvaapitypes.h:
24298 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24299 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24300 * gst-libs/gst/vaapi/gstvaapivalue.c:
24301 * gst-libs/gst/vaapi/gstvaapivalue.h:
24302 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24303 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24304 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24305 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24306 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24307 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24308 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24309 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24310 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24311 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24312 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24313 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24314 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24315 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24316 * gst/vaapi/gstvaapi.c:
24317 * gst/vaapi/gstvaapidecode.h:
24318 * gst/vaapi/gstvaapidownload.h:
24319 * gst/vaapi/gstvaapipluginutil.c:
24320 * gst/vaapi/gstvaapipluginutil.h:
24321 * gst/vaapi/gstvaapipostproc.h:
24322 * gst/vaapi/gstvaapisink.h:
24323 * gst/vaapi/gstvaapivideoconverter_glx.h:
24327 * tests/test-display.c:
24328 * tests/test-jpeg.c:
24329 * tests/test-jpeg.h:
24330 * tests/test-mpeg4.c:
24331 * tests/test-mpeg4.h:
24332 * tests/test-surfaces.c:
24333 * tests/test-windows.c:
24334 legal: update copyright notice dates.
24336 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24338 * gst-libs/gst/vaapi/glibcompat.h:
24339 * gst-libs/gst/vaapi/gstcompat.h:
24340 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24341 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24342 * gst-libs/gst/vaapi/gstvaapicompat.h:
24343 * gst-libs/gst/vaapi/gstvaapicontext.c:
24344 * gst-libs/gst/vaapi/gstvaapicontext.h:
24345 * gst-libs/gst/vaapi/gstvaapidebug.h:
24346 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24347 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24348 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24349 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24350 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24351 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24352 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24353 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24354 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24355 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24356 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24357 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24358 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24359 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24360 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24361 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24362 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24363 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24364 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24365 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24366 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24367 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24368 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24369 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24370 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24371 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24372 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24373 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24374 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24375 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24376 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24377 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24378 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24379 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24380 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24381 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24382 * gst-libs/gst/vaapi/gstvaapifilter.c:
24383 * gst-libs/gst/vaapi/gstvaapifilter.h:
24384 * gst-libs/gst/vaapi/gstvaapiimage.c:
24385 * gst-libs/gst/vaapi/gstvaapiimage.h:
24386 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24387 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24388 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24389 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24390 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24391 * gst-libs/gst/vaapi/gstvaapiobject.c:
24392 * gst-libs/gst/vaapi/gstvaapiobject.h:
24393 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24394 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24395 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24396 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24397 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24398 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24399 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24400 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24401 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24402 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24403 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24404 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24405 * gst-libs/gst/vaapi/gstvaapisurface.c:
24406 * gst-libs/gst/vaapi/gstvaapisurface.h:
24407 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24408 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24409 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24410 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24411 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24412 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24413 * gst-libs/gst/vaapi/gstvaapitexture.c:
24414 * gst-libs/gst/vaapi/gstvaapitexture.h:
24415 * gst-libs/gst/vaapi/gstvaapitypes.h:
24416 * gst-libs/gst/vaapi/gstvaapiutils.c:
24417 * gst-libs/gst/vaapi/gstvaapiutils.h:
24418 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24419 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24420 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24421 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24422 * gst-libs/gst/vaapi/gstvaapivalue.c:
24423 * gst-libs/gst/vaapi/gstvaapivalue.h:
24424 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24425 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24426 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24427 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24428 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24429 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24430 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24431 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24432 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24433 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24434 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24435 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24436 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24437 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24438 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24439 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24440 * gst-libs/gst/vaapi/sysdeps.h:
24441 * gst-libs/gst/vaapi/video-format.c:
24442 * gst-libs/gst/vaapi/video-format.h:
24443 * gst/vaapi/gstvaapi.c:
24444 * gst/vaapi/gstvaapidecode.c:
24445 * gst/vaapi/gstvaapidecode.h:
24446 * gst/vaapi/gstvaapidownload.c:
24447 * gst/vaapi/gstvaapidownload.h:
24448 * gst/vaapi/gstvaapipluginutil.c:
24449 * gst/vaapi/gstvaapipluginutil.h:
24450 * gst/vaapi/gstvaapipostproc.c:
24451 * gst/vaapi/gstvaapipostproc.h:
24452 * gst/vaapi/gstvaapisink.c:
24453 * gst/vaapi/gstvaapisink.h:
24454 * gst/vaapi/gstvaapiupload.c:
24455 * gst/vaapi/gstvaapiupload.h:
24456 * gst/vaapi/gstvaapiuploader.c:
24457 * gst/vaapi/gstvaapiuploader.h:
24458 * gst/vaapi/gstvaapivideobuffer.c:
24459 * gst/vaapi/gstvaapivideobuffer.h:
24460 * gst/vaapi/gstvaapivideobufferpool.c:
24461 * gst/vaapi/gstvaapivideobufferpool.h:
24462 * gst/vaapi/gstvaapivideocontext.c:
24463 * gst/vaapi/gstvaapivideocontext.h:
24464 * gst/vaapi/gstvaapivideoconverter_glx.c:
24465 * gst/vaapi/gstvaapivideoconverter_glx.h:
24466 * gst/vaapi/gstvaapivideoconverter_x11.c:
24467 * gst/vaapi/gstvaapivideoconverter_x11.h:
24468 * gst/vaapi/gstvaapivideomemory.c:
24469 * gst/vaapi/gstvaapivideomemory.h:
24470 * gst/vaapi/gstvaapivideometa.c:
24471 * gst/vaapi/gstvaapivideometa.h:
24472 * gst/vaapi/gstvaapivideometa_texture.c:
24473 * gst/vaapi/gstvaapivideometa_texture.h:
24482 * tests/simple-decoder.c:
24483 * tests/test-decode.c:
24484 * tests/test-decode.h:
24485 * tests/test-display.c:
24486 * tests/test-filter.c:
24487 * tests/test-h264.c:
24488 * tests/test-h264.h:
24489 * tests/test-jpeg.c:
24490 * tests/test-jpeg.h:
24491 * tests/test-mpeg2.c:
24492 * tests/test-mpeg2.h:
24493 * tests/test-mpeg4.c:
24494 * tests/test-mpeg4.h:
24495 * tests/test-surfaces.c:
24496 * tests/test-textures.c:
24497 * tests/test-vc1.c:
24498 * tests/test-vc1.h:
24499 * tests/test-windows.c:
24500 legal: add per-file authorship information.
24501 Credit original authors on a per-file basis as we cannot expect people
24502 to know all country-specific rules, or bother browsing through the git
24505 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24511 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24516 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24518 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24519 decoder: don't include obsolete headers.
24520 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24521 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24524 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24526 * gst/vaapi/Makefile.am:
24527 * gst/vaapi/gstvaapi.c:
24528 * gst/vaapi/gstvaapipostproc.c:
24529 vaapipostproc: add initial support for GStreamer 1.2.
24530 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24531 right now so that to cope with auto-plugging issues/regressions. e.g.
24532 this happens when the correct set of expected caps are being exposed.
24533 This means that, currently, the proposed caps are not fully accurate.
24535 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24537 * gst/vaapi/gstvaapipostproc.c:
24538 * gst/vaapi/gstvaapipostproc.h:
24539 vaapipostproc: add support for denoise and sharpen filters.
24540 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24542 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24544 * gst/vaapi/gstvaapipostproc.c:
24545 * gst/vaapi/gstvaapipostproc.h:
24546 vaapipostproc: add support for advanced deinterlacing.
24547 Add initial support for advanced deinterlacing. The history buffer
24548 size is arbitrarily set to 3 references for now.
24550 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24552 * gst/vaapi/gstvaapipostproc.c:
24553 vaapipostproc: fix deinterlacing with VPP.
24554 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24555 for the first field. Render flags were supplied instead of the actual
24556 deinterlacing flags (deint_flags).
24558 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24560 * gst/vaapi/gstvaapipostproc.c:
24561 vaapipostproc: fix transform caps.
24562 Fix GstBaseTransform::transform_caps() implementation to always return
24563 the complete set of allowed sink pad caps (unfixated) even if the src
24564 pad caps we are getting are fixated. Rationale: there are just so many
24565 possible combinations, and it was wrong to provide a unique set anyway.
24566 As a side effect, this greatly simplifies the ability to derive src pad
24567 caps from fixated sink pad caps.
24569 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24571 * docs/reference/libs/libs-sections.txt:
24572 * gst-libs/gst/vaapi/gstvaapifilter.c:
24573 * gst-libs/gst/vaapi/gstvaapifilter.h:
24574 filter: add helper to specify references for deinterlacing.
24575 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24576 list of surfaces used for forward or backward reference in advanced
24577 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24578 The list of surfaces used as deinterlacing references shall be live
24579 until the next call to gst_vaapi_filter_process().
24580 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24582 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24584 * gst-libs/gst/vaapi/gstvaapifilter.c:
24585 * gst-libs/gst/vaapi/gstvaapifilter.h:
24586 * gst-libs/gst/vaapi/gstvaapiutils.c:
24587 * gst/vaapi/gstvaapipostproc.c:
24588 * tests/test-filter.c:
24589 filter: fix semantics of deinterlacing flags.
24590 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24591 flag is meant to specify the organization of reference frames used in
24592 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24593 to specify that the top-field of the supplied input surface is to be
24594 used for deinterlacing. Conversely, if not set, this means that the
24595 bottom field of the supplied input surface will be used instead.
24597 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24599 * docs/reference/libs/libs-sections.txt:
24600 * gst-libs/gst/vaapi/gstvaapifilter.c:
24601 * gst-libs/gst/vaapi/gstvaapifilter.h:
24602 filter: add helpers to check for supported/active operation.
24603 Add a couple of helper functions:
24604 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24605 advertises support for the supplied operation ;
24606 - gst_vaapi_filter_use_operation(): checks whether the supplied
24607 operation was already enabled to its non-default value.
24609 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24611 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24612 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24613 The user-defined destroy notify function is meant to be called only when
24614 the surface proxy was fully released, i.e. once it actually released the
24615 VA surface back to the underlying pool.
24617 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24619 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24620 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24621 libs: make GstVaapiVideoPool thread-safe.
24622 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24623 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24625 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24627 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24628 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24629 libs: robustify decoder objects and surface proxy initialization.
24630 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24631 sequences to have the expected default values set beforehand in case of an
24632 error raising up further during creation. i.e. make it possible to cleanly
24633 destroy those partially initialized objects.
24634 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24635 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24637 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24639 * gst/vaapi/gstvaapidecode.c:
24640 vaapidecode: fix decoder flush.
24641 There are situations where gst_video_decoder_flush() is called, and
24642 this subsequently produces a gst_video_decoder_reset() that kills the
24643 currently active GstVideoCodecFrame. This means that it no longer
24644 exists by the time we reach GstVideoDecoder::finish() callback, thus
24645 possibly resulting in a crash if we assumed spare data was still
24646 available for decode (current_frame_size > 0).
24647 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24648 that means a flush, thus performing the actual operations there like
24649 calling gst_video_decoder_have_frame() if pending data is available.
24651 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24653 * gst/vaapi/gstvaapidecode.c:
24654 * gst/vaapi/gstvaapidecode.h:
24655 vaapidecode: fix dead-locks with decoder task.
24656 Review all interactions between the main video decoder stream thread
24657 and the decode task to derive a correct sequence of operations for
24658 decoding. Also avoid extra atomic operations that become implicit under
24659 the GstVideoDecoder stream lock.
24661 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24663 * gst/vaapi/gstvaapidecode.c:
24664 vaapidecode: fix hard reset for seek cases.
24665 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24666 and completely purge any decoded output frame that may come out from
24667 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24668 state to start decoding over new buffers.
24669 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24671 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24673 * gst/vaapi/gstvaapidecode.c:
24674 * gst/vaapi/gstvaapidecode.h:
24675 vaapidecode: drop decode timeout, always wait for a free surface.
24676 vaapidecode used to wait up to one second past the expected time of
24677 presentation for the last decoded frame. This is not realistic in
24678 practice when it comes to video pause/resume. Changed behaviour to
24679 unconditionnally wait for a free VA surface prior to continuing the
24680 decoding. The decode task will continue pushing the output frames to
24681 the downstream element while also reporting errors at the same time
24682 to the main thread.
24683 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24684 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24686 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24688 * gst/vaapi/gstvaapidecode.c:
24689 vaapidecode: fix srcpad caps for GStreamer 1.2.
24690 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24691 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24692 that it relied on possibly un-initialized data. Fix srcpad caps to be
24693 initialized from a sanitized copy of GstVideoDecoder output state caps.
24694 Note: the correct way to expose the srcpad caps triggers an additional
24695 issue in core GStreamer auto-plugging capabilities as the correct caps
24696 to be exposed should be format=ENCODED with memory:VASurface caps feature
24697 at the minimum. In some situations, we could determine the underlying
24698 VA surface format, but this is not always possible. e.g. cases where it
24699 is not allowed to expose the underlying VA surface data, or when the
24700 VA driver implementation cannot actually provide such information.
24702 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24704 * gst/vaapi/gstvaapidecode.c:
24705 * gst/vaapi/gstvaapisink.c:
24706 plugins: streamline VA formats exposed in caps to a realistic set.
24707 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24708 output formats for GStreamer 1.2 in caps to a realistic subset. This
24709 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24710 underlying VA surface format, or if it is actually not allowed to get
24711 access to the surface contents.
24713 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24715 * gst/vaapi/gstvaapidecode.c:
24716 * gst/vaapi/gstvaapisink.c:
24717 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24718 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24719 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24720 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24721 we really don't support that for rendering.
24722 https://bugzilla.gnome.org/show_bug.cgi?id=711828
24724 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24727 configure: automatically detect GStreamer API version.
24728 Automatically detect GStreamer API version. The --with-gstreamer-api
24729 configure option now defaults to "autodetect" and configure then tries
24730 to derive the GStreamer API version from the highest version based on
24731 what pkg-config --modversion would report.
24732 https://bugzilla.gnome.org/show_bug.cgi?id=711657
24734 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
24736 * gst/vaapi/gstvaapipostproc.c:
24737 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24738 Fix raw YUV data uploaded as in the following pipeline:
24739 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24740 The main reason why it failed was that the videoparse element simply
24741 allocates GstBuffer with raw data chunk'ed off the sink pad without
24742 any prior knowledge of the actual frame info. i.e. it basically just
24743 calls gst_adapter_take_buffer().
24744 We could avoid the extra copy performed in vaapipostproc if the videoparse
24745 element was aware of the downstream pool and bothers copying line by
24746 line, for each plane. This means that, for a single frame per buffer,
24747 the optimizatin will be to allocate the video buffer downstream, map
24748 it, and copy each line that is coming through until we need to fills
24749 in the successive planes.
24750 Still, optimized raw YUV uploads already worked with the following:
24751 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24752 https://bugzilla.gnome.org/show_bug.cgi?id=711250
24753 [clean-ups, fixed error cases to unmap and unref outbuf]
24754 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24756 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24758 * gst/vaapi/gstvaapipostproc.c:
24759 vaapipostproc: try to downgrade deinterlace-method when needed.
24760 If the currently selected deinterlacing method is not supported by the
24761 underlying hardware, then try to downgrade the method to a supported one.
24762 At the minimum, basic bob-deinterlacing shall always be supported.
24764 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24766 * gst/vaapi/gstvaapipostproc.c:
24767 vaapipostproc: add initial support for deinterlacing with VPP.
24768 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24769 this only covers bob-deinterlacing when the output pixel format is
24772 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24774 * gst/vaapi/gstvaapipostproc.c:
24775 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24776 The size argument for GstBaseTransform::transform_size() hook is a
24777 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24779 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24781 * gst/vaapi/gstvaapipostproc.c:
24782 * gst/vaapi/gstvaapipostproc.h:
24783 vaapipostproc: add initial support for scaling.
24784 Add initial support for basic scaling with size specified through the
24785 "width" and "height" properties. If either user-provided dimension is
24786 zero and "force-aspect-ratio" is set to true (the default), then the
24787 other dimension is scaled to preserve the aspect ratio.
24789 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24791 * gst/vaapi/gstvaapipostproc.c:
24792 * gst/vaapi/gstvaapipostproc.h:
24793 vaapipostproc: add initial support for color conversion.
24794 If VPP is available, we always try to implicitly convert the source
24795 buffer to the "native" surface format for the underlying accelerator.
24796 This means that no optimization is performed yet to propagate raw YUV
24797 buffers to the downstream element as is, if VPP is available. i.e. it
24798 will always cause a color conversion.
24800 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24802 * gst/vaapi/gstvaapipostproc.c:
24803 vaapipostproc: fix bug when user disabled deinterlacing.
24804 Fix pipeline error / hang when the user disabled deinterlacing through
24805 the deinterlace-mode=disabled property setting.
24807 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24809 * gst/vaapi/gstvaapipostproc.c:
24810 * gst/vaapi/gstvaapipostproc.h:
24811 vaapipostproc: factor out operations to be applied into flags.
24812 Even if we only support deinterlacing for now, use flags to specify
24813 which filters are to be applied to each frame we receive in transform().
24814 This is preparatory work for integrating new filters.
24816 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24818 * gst/vaapi/gstvaapipostproc.c:
24819 * gst/vaapi/gstvaapipostproc.h:
24820 vaapipostproc: add support for raw YUV video source buffers.
24821 Allow video processing from raw YUV buffers coming from the sink pad,
24822 while still producing a VA surface for the downstream elements.
24824 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24826 * gst/vaapi/gstvaapipluginutil.c:
24827 * gst/vaapi/gstvaapipluginutil.h:
24828 * gst/vaapi/gstvaapipostproc.c:
24829 vaapipostproc: add support for "mixed" interlace mode.
24830 Add support for "mixed" interlace-mode, whereby the video frame buffer
24831 shall be deinterlaced only if its flags mention that's actually an
24832 interlaced frame buffer.
24834 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24836 * gst-libs/gst/vaapi/gstcompat.h:
24837 * gst/vaapi/gstvaapipostproc.c:
24838 * gst/vaapi/gstvaapipostproc.h:
24839 * gst/vaapi/gstvaapivideobuffer.c:
24840 * gst/vaapi/gstvaapivideobuffer.h:
24841 vaapipostproc: rework plug-in element.
24842 Rewrite the vaapipostproc plug-in element so that it derives from
24843 GstBaseTransform, thus simplifying the caps negotiation process.
24845 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24847 * gst/vaapi/gstvaapivideobufferpool.c:
24848 * gst/vaapi/gstvaapivideomemory.c:
24849 * gst/vaapi/gstvaapivideomemory.h:
24850 plugins: fix and optimize check for buffer pool allocator params.
24851 Reset the buffer pool allocator only if the config caps changed in a
24852 sensible way: format or resolution change. i.e. don't bother with
24853 other caps like colorimetry et al. as this doesn't affect the way to
24854 allocate VA surfaces or images.
24856 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24858 * gst/vaapi/gstvaapivideomemory.c:
24859 plugins: enable memory maps for read & write with direct-rendering.
24860 Enable read and write mappings only if direct-rendering is supported.
24861 Otherwise, this means that we may need to download data from the VA
24862 surface first for correctness, even if the VA surface doesn't need to
24863 be read at all. i.e. sometimes, READWRITE mappings are meant for
24864 surfaces that are written to first, and read afterwards for further
24866 https://bugzilla.gnome.org/show_bug.cgi?id=704078
24868 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24870 * gst/vaapi/gstvaapivideomemory.c:
24871 plugins: fix check for direct-rendering support.
24872 Fix check for direct-rendering if the creation of VA surfaces with
24873 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24874 that we tried to allocate a VA surface based on the corresponding
24875 chroma type. i.e. in that particular case, we have to make sure that
24876 the derived image has actually the expected format.
24878 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24880 * gst/vaapi/gstvaapivideobufferpool.c:
24881 * gst/vaapi/gstvaapivideomemory.c:
24882 * gst/vaapi/gstvaapivideomemory.h:
24883 plugins: fix buffer pool reset_buffer() to reset memory resources.
24884 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24885 memory resources, and more particularly the VA surface proxy. Most
24886 importantly, the GstVaapiVideoMeta is retained. Cached surface in
24887 memory are released, thus triggering a new allocation the next time
24888 we need to map the buffer.
24890 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24892 * gst/vaapi/gstvaapivideomemory.c:
24893 * gst/vaapi/gstvaapivideomemory.h:
24894 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24895 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24896 pool stored in the parent VA memory allocator.
24897 This fixes the following scenario:
24898 - VA video buffer 1 is allocated from a buffer pool
24899 - Another video buffer is created, and inherits info from buffer 1
24900 - Buffer 1 is released, thus pushing it back to the buffer pool
24901 - New buffer alloc request comes it, this yields buffer 1 back
24902 - At this stage, buffers 1 and 2 still share the same underlying VA
24903 surface, but buffer 2 was already submitted downstream for further
24904 processing, thus conflicting with additional processing we were
24905 about to perform on buffer 1.
24906 Maybe the core GstBufferPool implementation should have been fixed
24907 instead to actually make sure that the returned GstBuffer memory we
24908 found from the pool is writable?
24910 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24912 * gst/vaapi/gstvaapiuploader.c:
24913 plugins: create a proxy for GstVaapiUploader allocated buffers.
24914 Always make sure to allocate a VA surface proxy for GstVaapiUploader
24915 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24917 This fixes cases where we want to retain the underlying surface longer,
24918 instead of releasing it back to the surface pool right away.
24920 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24922 * gst/vaapi/gstvaapidecode.c:
24923 * gst/vaapi/gstvaapipluginutil.c:
24924 * gst/vaapi/gstvaapipluginutil.h:
24925 * gst/vaapi/gstvaapipostproc.c:
24926 plugins: add helper function to disable deinterlacing in caps.
24927 Add gst_caps_set_interlaced() helper function that would reset the
24928 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24929 interlaced field to "false" for GStreamer 0.10.
24931 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24933 * gst-libs/gst/vaapi/gstvaapifilter.c:
24934 filter: fix memory leak of VPP operations.
24935 Fix ensure_operations() to release the VPP operations array if non
24936 NULL, prior to returning to the caller. The former function was also
24937 renamed to a more meaningful get_operations() since the caller owns
24938 the returned array that needs to be released.
24940 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24942 * gst-libs/gst/vaapi/gstvaapifilter.c:
24943 filter: fix first-time operation lookup.
24944 Fix first-time operation lookup through find_operation() if the set
24945 of supported operations was not initially determined through the
24946 gst_vaapi_filter_get_operations() helper function.
24947 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24949 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24951 * gst-libs/gst/vaapi/gstvaapifilter.c:
24952 filter: fix colorbalance related subtypes.
24953 Fix intiialization of GstVaapiFilterOpData for colorbalance related
24954 operations. In particular, fill in the va_subtype field accordingly.
24955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24957 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24959 * gst-libs/gst/vaapi/gstvaapifilter.c:
24960 filter: fix VA-API 0.34.0 symbol guards.
24961 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24962 that need to be guarded for libva 0.34 and 0.33, respectively.
24963 https://bugzilla.gnome.org/show_bug.cgi?id=709102
24964 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24966 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24968 * gst/vaapi/gstvaapidecode.c:
24969 * gst/vaapi/gstvaapipluginutil.c:
24970 * gst/vaapi/gstvaapisink.c:
24971 plugins: hanle the context query in any pad.
24972 Also this patch simplifies the code, since now the query is common for the
24973 decoder and the sink.
24974 https://bugzilla.gnome.org/show_bug.cgi?id=709200
24976 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24978 * gst/vaapi/gstvaapivideocontext.c:
24979 plugins: query upstream element for a GstContext.
24980 Fix gst_vaapi_video_context_prepare() to also query upstream elements
24981 for a valid GstContext. Improve comments regarding the steps used to
24982 lookup or build that context, thus conforming to the GstContext API
24984 https://bugzilla.gnome.org/show_bug.cgi?id=709112
24985 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24987 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24990 * debian.upstream/control.in:
24991 Fix detection and packaging of GStreamer 1.2.x builds.
24992 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24993 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24994 purposes, update the versioning to -1.2 suffix instead.
24996 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24998 * gst/vaapi/Makefile.am:
24999 * gst/vaapi/gstvaapidecode.c:
25000 * gst/vaapi/gstvaapidecode.h:
25001 * gst/vaapi/gstvaapisink.c:
25002 * gst/vaapi/gstvaapivideometa_texture.c:
25003 * gst/vaapi/gstvaapivideometa_texture.h:
25004 plugins: add support for GstVideoGLTextureUploadMeta.
25005 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
25006 requested, and more specifically under a GLX configuration, then add
25007 the GstVideoGLTextureUploadMeta to the output buffer.
25008 https://bugzilla.gnome.org/show_bug.cgi?id=703236
25009 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25011 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25013 * gst/vaapi/gstvaapidecode.c:
25014 * gst/vaapi/gstvaapisink.c:
25015 * gst/vaapi/gstvaapivideomemory.h:
25016 plugins: add support for GstCaps features.
25017 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
25018 as expressed in caps, to the more standard use of caps features. i.e.
25019 add "memory:VASurface" feature attribute to the associated caps.
25020 https://bugzilla.gnome.org/show_bug.cgi?id=703271
25021 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25023 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25025 * gst/vaapi/gstvaapidecode.c:
25026 * gst/vaapi/gstvaapisink.c:
25027 plugins: improve ::query() debugging messages.
25028 Fix gst_vaapidecode_query() to correctly display the query type name,
25029 instead of randomly displaying that we shared the underlying display.
25030 Also add debug info for the GstVaapiSink::query() handler, i.e. the
25031 supplied query type name actually.
25032 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25034 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25036 * gst/vaapi/gstvaapidecode.c:
25037 * gst/vaapi/gstvaapisink.c:
25038 plugins: add support for GstContext API.
25039 Add support for the new GstContext API from GStreamer 1.2.x.
25040 - implement the GstElement::set_context() hook ;
25041 - reply to the `context' query from downstream elements.
25042 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25043 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25045 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25047 * gst/vaapi/Makefile.am:
25048 * gst/vaapi/gstvaapipluginutil.c:
25049 * gst/vaapi/gstvaapivideocontext.c:
25050 * gst/vaapi/gstvaapivideocontext.h:
25051 plugins: add compat layer for GstVideoContext.
25052 Add thin compatibility layer for the deprecated GstVideoContext API.
25053 For GStreamer API >= 1.2, this involves the following two functions:
25054 - gst_vaapi_video_context_prepare(): queries if a context is already
25055 set in the pipeline ;
25056 - gst_vaapi_video_context_propagate(): propagates the newly-created
25057 context to the rest of the pipeline.
25058 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25059 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25061 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25064 * gst/vaapi/Makefile.am:
25065 * gst/vaapi/gstvaapi.c:
25066 * gst/vaapi/gstvaapidecode.c:
25067 * gst/vaapi/gstvaapipluginutil.c:
25068 * gst/vaapi/gstvaapisink.c:
25069 * gst/vaapi/gstvaapivideobuffer.c:
25070 plugins: initial port to GStreamer 1.2.
25071 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
25072 is rather minimalistic so that to test the basic functionality.
25073 Disable vaapipostproc plugin for now as further polishing is needed.
25074 Also disable GstVideoContext interface support since this API is now
25075 gone in 1.2.x. This is preparatory work for GstContext support.
25076 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25077 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25079 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25081 * tests/simple-decoder.c:
25082 tests: simple-decoder: fix for non-X11 backends.
25083 Don't try to create pixmaps if we have not requested that feature. This
25084 fixes execution for non-X11 backends, and most specifically DRM video
25087 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25089 * ext/codecparsers:
25090 codecparsers: update to gst-vaapi-branch commit b33bd32.
25091 b33bd32 jpeg: fix and optimize scan for next marker code
25093 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25095 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25096 jpeg: fix calculation of MCU count.
25097 Fix calculation of MCU count for image sizes that are not a multiple
25098 of 8 pixels in either dimension, but also for non-common sampling
25099 factors like 4:2:2 in non-interleaved mode.
25101 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25103 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25104 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25105 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25106 jpeg: add support for multiscan images.
25107 Add support for images with multiple scans per frame. The Huffman table
25108 can be updated before SOS, and thus possibly requiring multiple uploads
25109 of Huffman tables to the VA driver. So, the latter must be able to cope
25110 with multiple VA buffers of type 'huffman-table' and with the correct
25113 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25115 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25116 jpeg: improve robustness when packets are missing.
25117 Improve robustness when some expected packets where not received yet
25118 or that were not correctly decoded. For example, don't try to decode
25119 a picture if there was no valid frame headers.
25121 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25123 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25124 jpeg: minor clean-ups.
25125 Improve debugging and error messages. Rename a few variables to fit the
25126 existing naming conventions. Change some fatal asserts to non-fatal
25129 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25131 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25132 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25133 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25134 jpeg: rework and optimize parser.
25135 Split the input buffer data into decoder units that represent a JPEG
25136 segment. Handle scan decoder unit specifically so that it can include
25137 both the scan header (SOS) but also any other ECS or RSTi segment.
25138 That way, we parse the input buffer stream only once at the gst-vaapi
25139 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25140 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25141 determine segment boundaries and decode them.
25142 In practice, this is a +15 to +25% performance improvement.
25144 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25146 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25147 jpeg: handle comment segments.
25148 Fix decode_buffer() function to gracefully skip comment (COM) segments.
25149 This fixes decoding of streams generated by certain cameras, e.g. like
25150 the Logitech Pro C920.
25151 https://bugzilla.gnome.org/show_bug.cgi?id=708208
25152 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25154 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25156 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25157 jpeg: fix determination of image bounds.
25158 Look for the exact image bounds characterised by the <SOI> and <EOI>
25159 markers. Use the gst_jpeg_parse() codec parser utility function to
25160 optimize the lookup for the next marker segment.
25161 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25163 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25165 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25166 jpeg: fix calculation of offset to next marker segment.
25167 Fix calculation of the offset to the next marker segment since the
25168 correction of the codecparser part to match the API specification.
25169 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25170 of the segment minus any marker prefix.
25171 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25172 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25174 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25176 * ext/codecparsers:
25177 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25178 23c7dde jpeg: fix calculation of segment size
25180 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25183 Bump version for development.
25185 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25191 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25196 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25199 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25200 configure: fix detection of VA/JPEG decoding API.
25201 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25202 More precisely, some packages were shipping with a <va/va.h> header that
25203 did not include <va/va_dec_jpeg.h>.
25204 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25205 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25207 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25209 * gst/vaapi/gstvaapisink.c:
25210 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25211 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25212 is setup in case upstream elements allocate buffers themselves without
25213 honouring our GstVaapiSink::bufer_alloc() hook.
25214 In particular, this fixes support for OGG video streams with WebKit.
25215 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25216 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25218 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25220 * gst/vaapi/gstvaapisink.c:
25221 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25222 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25225 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25227 * gst/vaapi/gstvaapisink.c:
25228 * gst/vaapi/gstvaapisink.h:
25229 vaapisink: handle raw buffers not created from VA video buffer pool.
25230 Handle raw video buffers that were not created from a VA video buffer
25231 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25232 builds instead of the GstVaapiUploader.
25233 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25235 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25237 * gst/vaapi/gstvaapidecode.c:
25238 vaapidecode: remove extraneous size information from allowed caps.
25239 Fix _getcaps() implementation to not report codecs with size information
25240 filled in the returned caps. That's totally useless nowadays. Ideally,
25241 this is a hint to insert a video parser element, thus allowing future
25242 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25243 which is able to parse the elementary bitstreams itself.
25244 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25246 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25248 * gst/vaapi/gstvaapidecode.c:
25249 * gst/vaapi/gstvaapidecode.h:
25250 vaapidecode: submit the last frame from output adapter to decoder.
25251 If there is no frame delimiter at the end of the stream, e.g. no
25252 end-of-stream or end-of-sequence marker, and that the current frame
25253 was fully parsed correctly, then assume that last frame is complete
25254 and submit it to the decoder.
25255 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25256 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25257 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25259 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25261 * gst/vaapi/gstvaapidecode.c:
25262 * gst/vaapi/gstvaapidecode.h:
25263 vaapidecode: push all decoded frames from within the task.
25264 Make sure to push all decoded frames from the task so that the unlying
25265 VA surfaces could all be rendered from the same thread.
25267 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25269 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25270 wayland: render the raw surface if VPP failed.
25271 As a last resort, if video processing capabilities (VPP) are not available,
25272 or they did not produce anything conclusive enough, then try to fallback to
25273 the original rendering code path whereby the whole VA surface is rendered
25274 as is, no matter of video cropping or deinterlacing requests.
25275 Note: under those conditions, the visual outcome won't be correct but at
25276 least, something gets displayed instead of bailing out.
25278 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25280 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25281 wayland: add supporting for video processing.
25282 Try to use VA/VPP processing capabilities to handle video cropping and
25283 additional rendering flags that may not be directly supported by the
25284 underlying hardware when exposing a suitable Wayland buffer for the
25285 supplied VA surface. e.g. deinterlacing, different color primaries than
25288 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25290 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25291 wayland: add new frame redraw infrastructure.
25292 Update the frame redraw infrastructure with a new FrameState stucture
25293 holds all the necessary information used to display the next pending
25295 While we are at it, delay the sync operation down to when it is actually
25296 needed. That way, we keep performing additional tasks meanwhile.
25298 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25300 * docs/reference/libs/libs-sections.txt:
25301 * gst-libs/gst/vaapi/gstvaapifilter.c:
25302 * gst-libs/gst/vaapi/gstvaapifilter.h:
25303 filter: allow specification of render target regions.
25304 Add support for rendering the source surface to a particular region within
25305 the supplied target surface. The default background color is black.
25307 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25309 * gst/vaapi/gstvaapivideobuffer.c:
25310 decode: fix creation of GLX video buffers for GStreamer 0.10.
25311 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25312 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25314 This fixes support for cluttersink with GStreamer 0.10 builds.
25316 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25318 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25319 mpeg2: disable video cropping as picture_display_extension() is missing.
25320 Disable video cropping in MPEG-2 codec because it is partially implemented
25321 and actually because nobody implements it that way, and the standard spec
25322 does not specify the display process either anyway.
25323 Most notably, there are two possible use cases for sequence_display_extension()
25324 horizontal_display_size & vertical_display_size: (i) guesstimating the
25325 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25326 in conjunction with picture_display_extension() information.
25327 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25329 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25331 * gst/vaapi/gstvaapisink.c:
25332 * gst/vaapi/gstvaapisink.h:
25333 vaapisink: allow scaling to ignore aspect ratio.
25334 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25335 which allows you to say that you don't want the sink to respect aspect
25336 ratio. Add the same property to vaapisink.
25337 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25338 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25340 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25342 * gst/vaapi/gstvaapisink.c:
25343 vaapisink: fix memory leak of GstVaapiUploader instance.
25344 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25345 of a former GstVaapiUploader instance prior to forcibly creating a
25347 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25349 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25351 * gst/vaapi/gstvaapisink.c:
25352 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25353 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25354 by honouring the filter caps argument. More precisely, this fixes the
25355 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25356 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25357 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25358 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25360 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25362 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25363 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25364 This fixes the following issue:
25365 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25366 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25367 'GstVaapiDecoderMpeg4Class'
25368 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25369 'GstVaapiDecoderMpeg4Class' was here
25370 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25371 make[5]: Leaving directory
25372 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25373 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25375 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25377 * tests/test-filter.c:
25378 tests: filter: add support for deinterlacing.
25379 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25380 deinterlacing filter. However, if --deinterlace option is not set but the
25381 --deinterlace-flags option is set with "top-field-first", then the very
25382 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25384 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25386 * tests/test-filter.c:
25387 tests: filter: add support for denoising and sharpening.
25388 Add --denoise option to enable noise reduction with the level specified
25389 as the option value (float). Likewise, add --sharpen option to enable
25391 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25393 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25395 * tests/test-filter.c:
25396 tests: filter: add support for frame cropping.
25397 Add support for frame cropping through the --crop-rect|-c argument.
25398 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25399 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25401 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25403 * tests/test-filter.c:
25404 tests: filter: dump supported operations and formats.
25406 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25408 * tests/Makefile.am:
25409 * tests/test-filter.c:
25410 tests: add initial test for video processing.
25411 Add minimal test case for video processing: scaling and color format
25413 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25415 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25417 * docs/reference/libs/libs-sections.txt:
25418 * gst-libs/gst/vaapi/gstvaapifilter.c:
25419 * gst-libs/gst/vaapi/gstvaapifilter.h:
25420 * gst-libs/gst/vaapi/gstvaapiutils.c:
25421 * gst-libs/gst/vaapi/gstvaapiutils.h:
25422 * gst/vaapi/gstvaapipostproc.c:
25423 * gst/vaapi/gstvaapipostproc.h:
25424 filter: add initial support for deinterlacing.
25425 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25426 the selected field from the input surface is kept for the target surface.
25427 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25428 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25429 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25430 to libgstvaapi core library.
25431 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25433 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25435 * docs/reference/libs/libs-sections.txt:
25436 * gst-libs/gst/vaapi/gstvaapifilter.c:
25437 * gst-libs/gst/vaapi/gstvaapifilter.h:
25438 filter: add support for color balance adjustment.
25439 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25440 and contrast. The respective range for each filter shall be the same as
25441 for the VA display attributes.
25442 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25444 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25446 * docs/reference/libs/libs-sections.txt:
25447 * gst-libs/gst/vaapi/gstvaapifilter.c:
25448 * gst-libs/gst/vaapi/gstvaapifilter.h:
25449 filter: add support for sharpening.
25450 Sharpening is configured with a float value. The supported range is
25451 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25453 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25455 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25457 * docs/reference/libs/libs-sections.txt:
25458 * gst-libs/gst/vaapi/gstvaapifilter.c:
25459 * gst-libs/gst/vaapi/gstvaapifilter.h:
25460 filter: add support for denoising.
25461 Noise reduction is configured with a float value. The supported range
25462 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25464 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25466 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25468 * docs/reference/libs/libs-sections.txt:
25469 * gst-libs/gst/vaapi/gstvaapifilter.c:
25470 * gst-libs/gst/vaapi/gstvaapifilter.h:
25471 filter: add support for frame cropping.
25472 Frame cropping is defined with a GstVaapiRectangle value. The default
25473 behaviour is to treat the source surface as a whole
25475 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25477 * gst-libs/gst/vaapi/gstvaapifilter.c:
25478 filter: add helper functions.
25479 Add helper functions to ensure an operation VA buffer is allocated to
25480 the right size; that filter caps get parsed and assigned to the right
25481 operation too; and that float parameters are correctly scaled to fit
25482 the reported range from the VA driver.
25484 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25487 * docs/reference/libs/libs-docs.xml.in:
25488 * docs/reference/libs/libs-sections.txt:
25489 * gst-libs/gst/vaapi/Makefile.am:
25490 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25491 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25492 * gst-libs/gst/vaapi/gstvaapifilter.c:
25493 * gst-libs/gst/vaapi/gstvaapifilter.h:
25494 Add initial infrastructure for video processing.
25495 Add initial API for video processing: only scaling and color format
25496 conversion operations are supported.
25498 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25500 * gst-libs/gst/vaapi/video-format.c:
25501 * gst-libs/gst/vaapi/video-format.h:
25502 libs: add gst_vaapi_video_format_from_string() helper.
25503 Add gst_vaapi_video_format_from_string() helper function to convert from
25504 a video format string representation to a suitable GstVideoFormat. This
25505 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25506 builds, and a proper iteration over all GstVideoFormat string representations
25507 otherwise for earlier GStreamer 0.10.x builds.
25509 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25511 * gst-libs/gst/vaapi/video-format.c:
25512 * gst-libs/gst/vaapi/video-format.h:
25513 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25514 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25515 VA fourcc value to a suitable GstVideoFormat.
25517 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25519 * gst-libs/gst/vaapi/gstvaapivalue.c:
25520 * gst-libs/gst/vaapi/gstvaapivalue.h:
25521 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25522 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25523 structures as a standard GType. This could be useful to have them
25524 described as a GValue later on.
25526 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25528 * docs/reference/libs/libs-docs.xml.in:
25529 * docs/reference/libs/libs-sections.txt:
25530 * gst-libs/gst/vaapi/Makefile.am:
25531 * gst-libs/gst/vaapi/gstvaapicontext.h:
25532 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25533 libs: drop some public APIs.
25534 Don't expose GstVaapiContext APIs and make them totally private to
25535 libgstvaapi core library. That API would also tend to disappear in
25536 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25537 but keep symbols visible so that the various render backends could
25538 share a common display cache implementation in libgstvaapi.
25539 Try to clean-up the documentation from any stale entry too.
25541 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25545 tests: image: allow creation of images with interleaved patterns.
25546 Add image_generate_full() function to create interleaved color rectangles.
25547 If flags is zero, the whole frame is generated with a unique pattern. If
25548 flags is non-zero, then each field is handled individually.
25550 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25553 tests: image: fix conversion from RGB to YUV.
25554 Fix RGB to YUV conversion to preserve full data range.
25556 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25559 tests: image: try to upload images through vaDeriveImage() too.
25560 On some platforms, vaPutImage() would fail even if it does not involve
25561 color format conversion or scaling, whereas copying raw pixels through
25562 vaDeriveImage() could work instead.
25564 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25567 tests: image: add support for packed YUV formats.
25568 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25570 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25573 tests: image: fix generation of I420/YV12 images.
25574 U/V planes were reversed, thus producing invalid images.
25576 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25579 tests: image: fix string representation for GstVideoFormat.
25581 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25583 * docs/reference/libs/libs-sections.txt:
25584 * gst-libs/gst/vaapi/Makefile.am:
25585 * gst-libs/gst/vaapi/gstvaapiimage.c:
25586 * gst-libs/gst/vaapi/gstvaapiimage.h:
25587 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25588 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25589 * gst-libs/gst/vaapi/gstvaapisurface.c:
25590 image: clean image API up.
25591 Don't expose functions that reference a GstVaapiImageRaw, those are
25592 meant to be internal only for implementing subpictures sync. Also add
25593 a few private definitions to avoid functions calls for retrieving
25594 image size and format information.
25596 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25598 * docs/reference/libs/libs-sections.txt:
25599 * gst-libs/gst/vaapi/gstvaapiimage.c:
25600 * gst-libs/gst/vaapi/gstvaapiimage.h:
25601 image: add gst_vaapi_image_copy() helper.
25602 Add gst_vaapi_image_copy() helper function to copy images of same format
25605 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25607 * gst/vaapi/gstvaapivideoconverter_x11.c:
25608 plugins: handle video cropping in X11 pixmap converter.
25609 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25610 we could decode from the stream.
25612 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25614 * gst/vaapi/Makefile.am:
25615 * gst/vaapi/gstvaapivideobuffer.c:
25616 * gst/vaapi/gstvaapivideoconverter_glx.c:
25617 * gst/vaapi/gstvaapivideoconverter_x11.c:
25618 * gst/vaapi/gstvaapivideoconverter_x11.h:
25619 plugins: add support for "x11-pixmap" video converter type.
25620 Install a new video converter that supports X11 pixmap targets for X11
25621 backends only, or make the GLX converter creation function chain up to
25622 the X11 converter whenever requested.
25624 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25626 * tests/simple-decoder.c:
25627 tests: simple-decoder: add support for pixmap API.
25628 Add support for the new render-to-pixmap API. Avoid flickering on
25629 platforms supporting video overlay by keeping up to 2 intermediate
25632 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25634 * tests/simple-decoder.c:
25635 tests: simple-decoder: add support for video cropping.
25636 Handle video cropping information attached to a VA surface proxy.
25638 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25642 * tests/test-decode.c:
25643 tests: add support for render-to-pixmap.
25644 Add --pixmap option to test-decode so that to allow copies of VA
25645 surface to an intermediate pixmap and rendering from that pixmap.
25646 Only X11 backends are supported for now.
25648 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25651 * gst-libs/gst/vaapi/Makefile.am:
25652 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25653 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25654 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25655 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25656 x11: implement pixmap rendering with RENDER extension.
25657 Use hardware accelerated XRenderComposite() function, from the RENDER
25658 extension, to blit a pixmap to screen. Besides, this can also support
25659 cropping and scaling.
25661 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25663 * docs/reference/libs/libs-docs.xml.in:
25664 * docs/reference/libs/libs-sections.txt:
25665 * gst-libs/gst/vaapi/Makefile.am:
25666 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25667 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25668 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25669 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25670 x11: implement pixmap API.
25671 Implement the new render-to-pixmap API. The only supported pixmap format
25672 that will work is xRGB, with native byte ordering. Others might work but
25673 they were not tested.
25675 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25677 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25678 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25679 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25680 x11: update x11_get_geometry() helper function with depth output.
25681 Allow x11_get_geometry() utility function to also return the depth
25682 assigned to the X drawable.
25684 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25686 * docs/reference/libs/libs-docs.xml.in:
25687 * docs/reference/libs/libs-sections.txt:
25688 * gst-libs/gst/vaapi/Makefile.am:
25689 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25690 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25691 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25692 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25693 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25694 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25695 Add initial Pixmap API.
25696 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25697 render a native pixmap, for completeness. In general, rendering to
25698 pixmap would only be useful to certain VA drivers and use cases on
25699 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25702 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25704 * docs/reference/libs/libs-sections.txt:
25705 * gst-libs/gst/vaapi/gstvaapiimage.c:
25706 * gst-libs/gst/vaapi/gstvaapisurface.c:
25707 * gst-libs/gst/vaapi/video-format.c:
25708 * gst-libs/gst/vaapi/video-format.h:
25709 libs: add and expose gst_vaapi_video_format_to_string() helper.
25710 This is just a wrapper over gst_video_format_to_string() for older
25711 GStreamer 0.10 builds.
25713 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25715 * gst/vaapi/gstvaapipluginutil.c:
25716 plugins: fix display type comparison in gst_vaapi_create_display().
25717 After the code got moved to create the gst_vaapi_create_display() helper,
25718 this comparison was not updated to dereference the newly-created
25719 pointer, so the code was comparing the pointer itself to the type, and
25720 therefore failing to retrieve the VA display.
25721 This fixes the following error (and gets gst-vaapi decoding again):
25722 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25723 https://bugzilla.gnome.org/show_bug.cgi?id=704410
25724 Signed-off-by: Emilio López <emilio@elopez.com.ar>
25726 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25729 Bump version for development.
25731 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25733 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25734 mpeg2: don't output dummy pictures.
25735 Mark dummy pictures as output already so that we don't try to submit
25736 them to the upper layer since this is purely internal / temporary
25737 picture for helping the decoder.
25739 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25741 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25742 decoder: dispose GstVideoCodecFrame earlier.
25743 Once the picture was output, it is no longer necessary to keep an extra
25744 reference to the underlying GstVideoCodecFrame. So, we can release it
25745 earlier, and maybe subsequently release the associate surface proxy
25748 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25754 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25756 * docs/reference/libs/libs-sections.txt:
25757 * gst-libs/gst/vaapi/Makefile.am:
25758 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25759 * gst-libs/gst/vaapi/gstvaapiimage.c:
25760 * gst-libs/gst/vaapi/gstvaapisurface.c:
25761 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25762 * gst-libs/gst/vaapi/video-format.c:
25763 * gst-libs/gst/vaapi/video-format.h:
25764 * gst/vaapi/gstvaapidownload.c:
25765 * gst/vaapi/gstvaapiuploader.c:
25767 * tests/test-display.c:
25768 Fix new video format API.
25769 Fix new internal video format API, based on GstVideoFormat, to not
25770 clobber with system symbols. So replace the gst_video_format_* prefix
25771 with gst_vaapi_video_format_ prefix, even if the format type remains
25774 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25777 Bump library major version.
25778 Bump the library major version due to API/ABI changes that occurred in
25779 the imaging API. In particular, GstVaapiImageFormat type was replaced
25780 with the standard GstVideoFormat type. All dependent APIs were updated
25781 to match this change.
25783 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25788 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25790 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25791 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25792 decoder: fix memory leak when processing interlaced pictures.
25793 Fix memory leak when processing interlaced pictures and that occurs
25794 because the first field, represented as a GstVideoCodecFrame, never
25795 gets released. i.e. when the picture is completed, this is generally
25796 the case when the second field is successfully decoded, we need to
25797 propagate the GstVideoCodecFrame of the first field to the original
25798 GstVideoDecoder so that it could reclaim memory.
25799 Otherwise, we keep accumulating the first fields into GstVideoDecoder
25800 private frames list until the end-of-stream is reached. The frames
25801 are eventually released there, but too late, i.e. too much memory
25802 may have been consumed.
25803 https://bugzilla.gnome.org/show_bug.cgi?id=701257
25805 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25807 * gst/vaapi/gstvaapipluginutil.c:
25808 plugins: simlpify gst_vaapi_create_display() helper.
25809 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25810 performs the necessary validation checks for the underlying VA display
25811 prior to returning to the caller. So, if an error occurred, then NULL is
25812 really returned in that case.
25814 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25816 * gst/vaapi/gstvaapipluginutil.c:
25817 plugins: add gst_vaapi_create_display() helper.
25818 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25819 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25821 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25823 * gst/vaapi/gstvaapivideobufferpool.c:
25824 plugins: don't reallocate pool allocator for the same caps.
25825 If the video buffer pool config doesn't have new caps, then it's not
25826 necessary to reinstantiate the allocator. That could be a costly
25827 operation as we could do some extra heavy checking in there.
25829 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25831 * gst/vaapi/gstvaapivideomemory.c:
25832 plugins: fix ref counting of GstVaapiVideoMemory allocator.
25833 Fix reference counting issue whereby gst_memory_init() does not hold
25834 an extra reference to the GstAllocator. So, there could be situations
25835 where the last instance of GstVaapiVideoAllocator gets released before
25836 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25838 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25840 * gst/vaapi/gstvaapiuploader.c:
25841 vaapiupload: use implicit color conversion to NV12.
25842 Always perform conversion of sources buffers to NV12 since this is
25843 the way we tested for this capability in ensure_allowed_caps(). This
25844 also saves memory bandwidth for further rendering. However, this may
25845 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25847 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25849 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25850 pool: fix deallocation of video pools.
25851 The queue of free objects to used was deallocated with g_queue_free_full().
25852 However, this convenience function shall only be used if the original queue
25853 was allocated with g_queue_new(). This caused memory corruption, eventually
25854 leading to a crash.
25855 The correct solution is to pair the g_queue_init() with the corresponding
25856 g_queue_clear(), while iterating over all free objects to deallocate them.
25858 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
25860 * gst/vaapi/gstvaapidownload.c:
25861 vaapidownload: fix src caps format error.
25862 This fixes direct linking of vaapidownload element to xvimagesink with
25863 VA drivers supporting vaGetImage() from the native VA surface format to
25864 a different VA image format. i.e. color conversion during download.
25865 http://bugzilla.gnome.org/show_bug.cgi?id=703937
25866 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25868 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25870 * gst/vaapi/gstvaapidownload.c:
25871 vaapidownload: fix debug string for image formats.
25872 The image is now expressed as a standard GstVideoFormat, which is not
25873 a FOURCC but rather a regular enum value.
25874 This is a regression introduced in commit 09397fa.
25876 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
25878 * gst-libs/gst/vaapi/gstvaapiimage.c:
25879 image: add support for raw YUY2/UYVY image copies.
25880 Implement raw image copies for YUY2 format. Add support for UYVY format
25881 too, with the same copy function as for YUY2. Even though components
25882 ordering differs, copying line strides is essentially the same.
25883 https://bugzilla.gnome.org/show_bug.cgi?id=703939
25884 https://bugzilla.gnome.org/show_bug.cgi?id=703940
25885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25887 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25889 * gst/vaapi/gstvaapiuploader.c:
25890 plugins: clean-up video uploader helper.
25891 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25892 were already negotiated beforehand, and they are not used from the
25893 buffer in upstream elements.
25894 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25895 represented as a GstVideoInfo.
25897 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25899 * gst/vaapi/gstvaapiuploader.c:
25900 plugins: use GstVideoInfo in video uploader helper.
25902 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25904 * gst/vaapi/gstvaapivideomemory.c:
25905 plugins: allow creation of VA surfaces with explicit pixel format.
25906 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25907 with an explicit pixel format. This allows for direct rendering to
25908 VA surface memory from a software decoder.
25910 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25912 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25913 surface: fix surface pool creation with an explicit pixel format.
25914 Fix creation of surface pool objects to honour explicit pixel format
25915 specification. If this operation is not supported, then fallback to
25916 the older interface with chroma format.
25918 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25920 * gst-libs/gst/vaapi/gstvaapisurface.c:
25921 surface: try to determine the underlying VA surface format.
25922 If a VA surface was allocated with the chroma-format interface, try to
25923 determine the underlying pixel format on gst_vaapi_surface_get_format(),
25924 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25926 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25928 * docs/reference/libs/libs-sections.txt:
25929 * gst-libs/gst/vaapi/gstvaapisurface.c:
25930 * gst-libs/gst/vaapi/gstvaapisurface.h:
25931 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25932 surface: allow creation with explicit pixel format.
25933 Make it possible to create VA surfaces with a specific pixel format.
25934 This is a new capability brought in by VA-API >= 0.34.0. If that
25935 capability is not built-in (e.g. using VA-API < 0.34.0), then
25936 gst_vaapi_surface_new_with_format() will return NULL.
25938 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25940 * docs/reference/libs/libs-sections.txt:
25941 * gst-libs/gst/vaapi/video-format.c:
25942 * gst-libs/gst/vaapi/video-format.h:
25943 surface: add helper function to get chroma type from GstVideoFormat.
25944 Add gst_video_format_get_chroma_type() helper function to determine
25945 the GstVaapiChromaType from a standard GStreamer video format. It is
25946 possible to reconstruct that from GstVideoFormatInfo but it is much
25947 simpler (and faster?) to use the local GstVideoFormatMap table.
25949 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25951 * gst-libs/gst/vaapi/gstvaapisurface.c:
25952 * gst-libs/gst/vaapi/gstvaapisurface.h:
25953 * gst-libs/gst/vaapi/gstvaapiutils.c:
25954 * gst-libs/gst/vaapi/gstvaapiutils.h:
25955 surface: add new chroma formats.
25956 Add new chroma formats available with VA-API >= 0.34.0. In particular,
25957 this includes "RGB" chroma formats, and more YUV subsampled formats.
25958 Also add a new from_GstVaapiChromaType() helper function to convert
25959 libgstvaapi chroma type to VA chroma format.
25961 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25963 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25964 pool: fix image pool to check for the video format to use.
25965 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25966 image pool object, only if the underlying VA display does support the
25967 requested VA image format.
25969 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25971 * gst-libs/gst/vaapi/gstvaapicontext.c:
25972 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25973 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25974 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25975 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25976 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25977 * gst/vaapi/gstvaapidownload.c:
25978 * gst/vaapi/gstvaapiuploader.c:
25979 * tests/Makefile.am:
25980 * tests/test-surfaces.c:
25981 Use GstVideoInfo for video pools.
25982 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25983 structures instead. Those are smaller, and allows for streamlining
25986 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25988 * gst-libs/gst/vaapi/gstvaapiimage.c:
25989 * gst-libs/gst/vaapi/video-format.c:
25990 Add more video formats.
25991 Add new video format mappings to VA image formats:
25992 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25993 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25995 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25997 * gst-libs/gst/vaapi/gstvaapiimage.c:
25998 image: fix debug message with video format.
25999 Fix debug message string with image format expressed with GstVideoFormat
26000 instead of the obsolete format that turned out to be a fourcc.
26001 This is a regression from git commit e61c5fc.
26003 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26007 * tests/test-display.c:
26008 * tests/test-textures.c:
26009 * tests/test-windows.c:
26010 tests: port to new video format API.
26012 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26014 * gst/vaapi/gstvaapidownload.c:
26015 * gst/vaapi/gstvaapiuploader.c:
26016 * gst/vaapi/gstvaapivideomemory.c:
26017 plugins: port to new video format API.
26019 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26021 * gst-libs/gst/vaapi/gstvaapiimage.c:
26022 libs: use GstVideoInfo wherever possible.
26023 In particular, use gst_video_info_from_caps() helper function in VA image
26024 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
26025 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
26027 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26029 * docs/reference/libs/libs-docs.xml.in:
26030 * docs/reference/libs/libs-sections.txt:
26031 * gst-libs/gst/vaapi/Makefile.am:
26032 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26033 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26034 libs: drop GstVaapiImageFormat helpers.
26035 Drop GstVaapiImageFormat helpers since everything was moved to the new
26036 GstVideoFormat based API. Don't bother with backwards compatibility and
26037 just bump the library major version afterwards.
26039 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26041 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26042 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26043 * gst-libs/gst/vaapi/gstvaapiimage.c:
26044 * gst-libs/gst/vaapi/gstvaapiimage.h:
26045 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26046 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26047 libs: port to new video format API.
26049 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26051 * docs/reference/libs/libs-docs.xml.in:
26052 * docs/reference/libs/libs-sections.txt:
26053 * gst-libs/gst/vaapi/Makefile.am:
26054 * gst-libs/gst/vaapi/video-format.c:
26055 * gst-libs/gst/vaapi/video-format.h:
26056 Add new video format API.
26057 Leverage GstVideoFormat utilities from core GStreamer to provide an
26058 adaptation layer to VA image formats.
26060 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26065 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26067 * gst/vaapi/gstvaapisink.c:
26068 vaapisink: fix creation of GLX texture.
26069 Fix creation of GLX texture, to not depend on the GstCaps video size that
26070 could be wrong, especially in presence of frame cropping. So, use the size
26071 from the source VA surfaces.
26072 An optimization could be to reduce the texture size to the actual visible
26073 size on screen. i.e. scale down the texture size to match the screen dimensions,
26074 while preserving the VA surface aspect ratio. However, some VA drivers don't
26077 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26079 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26080 mpeg2: add support for video cropping.
26081 If the stream has a sequence_display_extenion, then attach the
26082 display_horizontal/display_vertical dimension as the cropping
26083 rectangle width/height to the GstVaapiPicture.
26084 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26086 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26088 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26089 vc1: add support for video cropping.
26090 If the Advanced profile has display_extension fields, then set the display
26091 width/height dimension as cropping rectangle to the GstVaapiPicture.
26092 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26094 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26096 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26097 h264: add support for video cropping.
26098 If the encoded stream has the frame_cropping_flag set, then associate
26099 the cropping rectangle to GstVaapiPicture.
26100 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26102 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26106 * tests/test-decode.c:
26107 * tests/test-subpicture.c:
26108 tests: add basic support for video cropping.
26109 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
26110 instead of a plain GstVaapiSurface. This means that we can now retrieve
26111 the frame cropping rectangle from the surface proxy, along with additional
26112 information if ever needed.
26114 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26116 * gst/vaapi/gstvaapidecode.c:
26117 * gst/vaapi/gstvaapisink.c:
26118 * gst/vaapi/gstvaapivideometa.c:
26119 plugins: add support for video cropping.
26120 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
26121 specific meta information to hold video cropping details. Make the sink
26122 support video cropping in X11 and GLX modes.
26124 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26126 * gst/vaapi/gstvaapivideometa.c:
26127 * gst/vaapi/gstvaapivideometa.h:
26128 plugins: add helper functions to set the render rectangle.
26129 Some video clips may have a clipping region that needs to propogate to
26130 the renderer. These helper functions make it possible to attach that
26131 clipping region, as a GstVaapiRectangle, the the video meta associated
26133 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26134 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26136 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26138 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26139 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26140 surfaceproxy: allow for NULL cropping rectangle.
26141 Make it possible associate an empty cropping rectangle to the surface
26142 proxy, thus resetting any cropping rectangle that was previously set.
26143 This allows for returning plain NULL when no cropping rectangle was
26144 initially set up to the surface proxy, or if it was reset to defaults.
26146 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26148 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26149 surfaceproxy: clean-up helper macros.
26150 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26151 proxy macro argument to a GstVaapiSurfaceProxy pointer.
26153 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26155 * gst-libs/gst/vaapi/gstvaapisurface.c:
26156 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26157 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26158 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26159 surface: add simple surface info accessors as helper macros.
26160 Add helper macros to retrieve the VA surface information like size
26161 (width, height) or chroma type. This is a micro-optimization to avoid
26162 useless function calls and NULL pointer re-checks in internal routines.
26164 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26166 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26167 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26168 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26169 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26170 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26171 decoder: add support for video cropping.
26172 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26173 cropping information from raw bitstreams to each picture being decoded.
26174 Also add helper function to surface proxy to propagate that information
26175 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26176 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26177 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26179 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26181 * ext/codecparsers:
26182 codecparsers: update to gst-vaapi-branch commit f90de0a.
26183 f90de0a h264: fix calculation of the frame cropping rectangle
26184 535515c h264: parse the cropping rectangle separately
26186 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26188 * ext/codecparsers:
26189 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26190 0f68a71 mpeg2: fix video packet header size checks
26192 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26194 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26195 mpeg2: reset quantization matrices on new sequence headers.
26196 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26197 shall be reset to their default values when a Sequence_Header() is
26199 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26201 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26204 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26205 mpeg2: cope with latest codecparser changes.
26206 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26207 used in individual header parsers. Also use the new slice parsing API.
26209 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26211 * ext/codecparsers:
26212 codecparsers: update to gst-vaapi-branch commit dddd182.
26213 dddd182 mpeg2: add slice header parsing API
26214 94e6228 mpeg2: add sequence scalable extension parsing API
26215 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26216 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26218 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26220 * gst/vaapi/gstvaapisink.c:
26221 vaapisink: expose the raw video formats in static caps template.
26222 Expose all raw video formats in the static caps template since the
26223 vaapisink is supporting raw data. We will get the exact set of formats
26224 supported by the driver dynamically through the _get_caps() routine.
26225 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26226 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26227 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26229 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26231 * gst/vaapi/gstvaapisink.c:
26232 * gst/vaapi/gstvaapisink.h:
26233 vaapisink: add "use-glx" property for OpenGL rendering.
26234 Now that VA/GLX capable buffers are generated by default on X11, thus
26235 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26236 rendering since it is faster.
26237 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26238 enabling "fancy" effects to play with. This has no real value. So,
26239 disable OpenGL rendering by default.
26241 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26243 * gst/vaapi/gstvaapipluginutil.c:
26244 plugins: try to allocate a GLX display first over an X11 one.
26245 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26246 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26248 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26250 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26253 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26254 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26255 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26256 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26258 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26260 * gst-libs/gst/vaapi/gstvaapiimage.c:
26261 image: fix wrong check for rect bounds in copy_image().
26263 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26266 Bump version for development.
26268 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26274 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26279 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26282 * gst-libs/gst/codecparsers/Makefile.am:
26283 configure: always build the MPEG-4 parser.
26284 Always build the MPEG-4 parser for now as there are also core fixes
26285 included in the parser that cannot be tested for with API checks.
26287 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26290 configure: add --enable-builtin-codecparsers [default="yes"] option.
26291 Add flag to have all codecparsers built-in, thus ensuring that the
26292 resulting binaries have all the necessary bug fixes and this is what
26293 the QA has been testing anyway.
26294 Of course, for a completely up-to-date Linux distribution, you could
26295 also opt for --disable-builtin-codecparsers and use the system ones.
26296 Though, some core fixes could be missing, and those cannot be tested
26297 for with API checks.
26299 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26301 * ext/codecparsers:
26302 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26303 843ce3e jpeg: fix default Huffman tables generation.
26304 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26305 21099dc mpeg2: actually store video bitrate values
26306 dd02087 mpeg2: fix picture packet extension size check
26307 25948e9 mpeg2: increase min size for picture coding ext
26308 f1f5a40 ensure the debug category is properly initialized
26310 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26312 * debian.upstream/Makefile.am:
26313 debian: fix list of generated files for .deb packaging.
26315 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26318 * debian.upstream/Makefile.am:
26319 * debian.upstream/control.in:
26320 debian: fix libgstvaapi -dev package name.
26321 Fix libgstvaapi -dev package name so that to allow installation of both
26322 GStreamer 0.10 and 1.0.x based packages.
26324 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26329 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26331 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26332 wayland: fix memory leak of display resources.
26334 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26336 * gst/vaapi/gstvaapisink.c:
26337 vaapisink: fix build without VA/GLX support.
26339 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26341 * gst/vaapi/gstvaapivideomemory.c:
26342 * gst/vaapi/gstvaapivideomemory.h:
26343 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26344 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26345 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26346 caller. This is the only sensible enough thing to do in this mode as
26347 the underlying surface pixels need to be extracted through an explicit
26348 call to the gst_video_frame_map() function instead.
26349 A possible use-case of this is to implement a "handoff" signal handler
26350 to fakesink or identity element for further processing.
26352 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26354 * gst/vaapi/gstvaapivideomemory.c:
26355 plugins: silence check for direct-rendering mode in video memory.
26356 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26357 mode support, and not trigger fatal-criticals if either test surface or
26358 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26359 supported by most hardware vs. I420 supported by most software decoders.
26361 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26363 * gst/vaapi/gstvaapivideomemory.c:
26364 plugins: improve video memory flags safety checks.
26365 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26366 support for now. Likewise, on unmap, make sure that the VA image is
26367 unmapped for either read or write, while still committing it to the
26368 VA surface if write was requested.
26370 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26372 * gst-libs/gst/vaapi/gstvaapisurface.c:
26373 surface: fix memory leak through unreleased parent context.
26374 Break the circular references between GstVaapiContext and its children
26375 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26376 context, which holds a reference to its VA surfaces, then none of those
26378 How does this impact support for subpictures?
26379 The only situation when the parent context needs to disappear is when
26380 it is replaced with another one because of a resolution change in the
26381 video stream for instance, or a normal destroy. In this case, it does
26382 not really matter to apply subpictures to the peer surfaces since they
26383 are either gone, or those that are left in the pipe can probably bear
26384 a reinstantiation of the subpictures for it.
26385 So, parent_context is set to NULL when the parent context is destroyed,
26386 other VA surfaces can still get subpictures attached to them, individually
26387 not as a whole. i.e. subpictures for surface S1 will be created from
26388 active composition buffers and associated to S1, subpictures for S2 will
26389 be created from the next active composition buffers, etc. We don't try
26390 to cache the subpictures in those cases (pending surfaces until EOS
26391 is reached, or pending surfaces until new surfaces matching new VA context
26392 get to be used instead).
26394 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26396 * gst/vaapi/gstvaapisink.c:
26397 vaapisink: fix one-time initialization when display property is set.
26398 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26399 tasks even if the `display' property was explicitly set.
26401 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26403 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26404 window: fix GLX window initialization.
26405 Make sure to create the GLX context once the window object has completed
26406 its creation. Since gl_resize() relies on the newly created window size,
26407 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26408 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26409 window object is created in the gst_vaapi_window_glx_new*() functions.
26411 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26413 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26414 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26415 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26416 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26417 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26418 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26419 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26420 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26421 * gst-libs/gst/vaapi/gstvaapitexture.c:
26422 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26423 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26424 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26425 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26426 display: validate display types.
26428 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26430 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26431 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26432 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26433 display: drop internal NAME_PREFIX, store the real display name.
26434 Always store a valid display name/device path, instead of adding a
26435 particular prefix. i.e. make it simply a strdup(), or "" if it was
26438 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26440 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26441 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26442 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26443 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26444 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26445 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26446 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26447 display: make it possible to lookup the display cache by type.
26448 Make it possible to add extra an extra filter to most of display cache
26449 lookup functions so that the GstVaapiDisplay instance can really match
26450 a compatible and existing display by type, instead of relying on extra
26451 string tags (e.g. "X11:" prefix, etc.).
26453 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26455 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26456 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26457 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26458 display: cope with new display cache API.
26460 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26462 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26463 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26464 display: rework display cache API.
26465 Simplify display cache API, while making it more flexible. We can now create
26466 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26468 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26470 * tests/test-display.c:
26471 tests: improve check for display cache.
26472 Improve check for display cache infrastructure. In particular, for X11 and
26473 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26474 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26475 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26476 already exists will have to generate different VA displays.
26478 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26480 * gst/vaapi/gstvaapiuploader.c:
26481 uploader: fix memory leak in GStreamer 0.10 builds.
26482 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26483 but it exhibited a memory leak because the surface generated for the
26484 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26485 possible to release that surface back to the parent pool when the meta
26486 gets released, and the memory consumption kept growing.
26487 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26489 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26491 * gst/vaapi/gstvaapivideometa.c:
26492 plugins: fix gst_vaapi_video_meta_new_from_pool().
26493 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26494 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26495 was hereby totally broken. Fixed this regression by using the newly
26496 provided gst_vaapi_video_pool_get_object_type() function.
26498 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26500 * gst/vaapi/gstvaapiuploader.c:
26501 * gst/vaapi/gstvaapivideomemory.c:
26502 * gst/vaapi/gstvaapivideometa.c:
26503 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26505 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26508 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26510 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26512 * docs/reference/libs/libs-sections.txt:
26513 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26514 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26515 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26516 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26517 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26518 libs: add query for GstVaapiVideoPool object types.
26519 Add API to identify the underlying GstVaapiVideoPool object type.
26521 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26523 * docs/reference/libs/libs-sections.txt:
26524 * gst-libs/gst/vaapi/gstvaapicontext.c:
26525 * gst-libs/gst/vaapi/gstvaapicontext.h:
26526 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26527 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26528 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26529 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26530 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26531 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26532 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26533 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26534 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26535 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26536 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26537 * gst-libs/gst/vaapi/gstvaapiimage.c:
26538 * gst-libs/gst/vaapi/gstvaapiimage.h:
26539 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26540 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26541 * gst-libs/gst/vaapi/gstvaapiobject.c:
26542 * gst-libs/gst/vaapi/gstvaapiobject.h:
26543 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26544 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26545 * gst-libs/gst/vaapi/gstvaapisurface.c:
26546 * gst-libs/gst/vaapi/gstvaapisurface.h:
26547 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26548 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26549 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26550 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26551 * gst-libs/gst/vaapi/gstvaapitexture.c:
26552 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26553 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26554 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26555 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26556 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26557 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26558 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26559 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26560 libs: drop GST_VAAPI_IS_xxx() helper macros.
26561 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26562 deriving from GObject and so those were only checking for whether the
26563 argument was NULL or not. This is now irrelevant, and even confusing
26564 to some extent, because we no longer have type checking.
26565 Note: this incurs more type checking (review) but the libgstvaapi is
26566 rather small, so this is manageable.
26568 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26571 Bump library major version.
26572 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26573 This is a fundamental change that requires a new SONAME. More changes are
26574 underway to streamline the core libraries.
26575 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26576 On one particular test (sintel HD trailer), the total number of executed
26577 instruction was reduced by 8%.
26579 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26581 * docs/reference/libs/Makefile.am:
26582 * docs/reference/libs/libs-docs.xml.in:
26583 * docs/reference/libs/libs-sections.txt:
26584 * docs/reference/libs/libs.core.types:
26585 * docs/reference/libs/libs.glx.types:
26586 * docs/reference/libs/libs.x11.types:
26587 docs: cope with removed APIs.
26588 Some APIs are dead because they are no longer based on GObject.
26590 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26592 * gst/vaapi/gstvaapidecode.c:
26593 * gst/vaapi/gstvaapidownload.c:
26594 * gst/vaapi/gstvaapipluginutil.c:
26595 * gst/vaapi/gstvaapipostproc.c:
26596 * gst/vaapi/gstvaapisink.c:
26597 * gst/vaapi/gstvaapiupload.c:
26598 * gst/vaapi/gstvaapiuploader.c:
26599 * gst/vaapi/gstvaapivideobufferpool.c:
26600 * gst/vaapi/gstvaapivideoconverter_glx.c:
26601 * gst/vaapi/gstvaapivideomemory.c:
26602 * gst/vaapi/gstvaapivideometa.c:
26603 plugins: cope with new GstVaapiMiniObject objects.
26605 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26610 * tests/simple-decoder.c:
26611 * tests/test-decode.c:
26612 * tests/test-display.c:
26613 * tests/test-subpicture.c:
26614 * tests/test-surfaces.c:
26615 * tests/test-textures.c:
26616 * tests/test-windows.c:
26617 tests: cope with new GstVaapiMiniObject objects.
26619 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26621 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26622 display: fix set_synchronous() to lock display.
26624 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26626 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26627 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26628 videopool: simplify creation of video objects pool.
26630 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26632 * gst-libs/gst/vaapi/gstvaapiobject.c:
26633 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26634 * gst-libs/gst/vaapi/gstvaapitypes.h:
26635 libs: simplify GstVaapiID definitions.
26636 Make GstVaapiID a gsize instead of guessing an underlying integer large
26637 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26638 this is plain zero and that it is no longer passed as varargs.
26640 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26642 * gst-libs/gst/vaapi/Makefile.am:
26643 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26644 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26645 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26646 * gst-libs/gst/vaapi/gstvaapivalue.c:
26647 * gst-libs/gst/vaapi/gstvaapivalue.h:
26648 libs: drop obsolete function helpers and objects.
26649 Drop obsolete GstVaapiID related function helpers for passing them as
26652 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26654 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26655 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26656 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26657 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26658 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26659 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26660 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26661 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26662 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26663 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26664 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26665 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26666 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26667 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26668 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26669 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26670 * gst-libs/gst/vaapi/gstvaapiobject.c:
26671 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26672 libs: use GstVaapiMiniObject for display objects.
26674 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26676 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26677 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26678 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26679 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26680 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26681 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26682 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26683 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26684 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26685 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26686 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26687 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26688 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26689 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26690 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26691 libs: use GstVaapiMiniObject for video decoders.
26692 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26693 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26694 helper function to let the user add a callback to a function triggered
26695 whenever the codec state (e.g. caps) changes.
26697 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26699 * docs/reference/libs/libs-sections.txt:
26700 * gst-libs/gst/vaapi/Makefile.am:
26701 * gst-libs/gst/vaapi/gstvaapicontext.c:
26702 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26703 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26704 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26705 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26706 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26707 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26708 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26709 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26710 libs: use GstVaapiMiniObject for video object pools.
26711 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26712 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26713 no longer used for a long time. Make object allocators static, i.e.
26714 local to the shared library.
26716 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26718 * gst-libs/gst/vaapi/gstvaapitexture.c:
26719 * gst-libs/gst/vaapi/gstvaapitexture.h:
26720 libs: use GstVaapiObject for texture objects.
26722 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26724 * gst-libs/gst/vaapi/Makefile.am:
26725 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26726 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26727 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26728 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26729 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26730 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26731 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26732 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26733 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26734 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26735 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26736 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26737 libs: use GstVaapiObject for window objects.
26739 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26741 * gst-libs/gst/vaapi/gstvaapicontext.c:
26742 * gst-libs/gst/vaapi/gstvaapicontext.h:
26743 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26744 * gst-libs/gst/vaapi/gstvaapiimage.c:
26745 * gst-libs/gst/vaapi/gstvaapiimage.h:
26746 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26747 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26748 * gst-libs/gst/vaapi/gstvaapisurface.c:
26749 * gst-libs/gst/vaapi/gstvaapisurface.h:
26750 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26751 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26752 libs: use GstVaapiObject for VA objects.
26754 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26756 * gst-libs/gst/vaapi/Makefile.am:
26757 * gst-libs/gst/vaapi/gstvaapiobject.c:
26758 * gst-libs/gst/vaapi/gstvaapiobject.h:
26759 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26760 Port GstVaapiObject to GstVaapiMiniObject.
26762 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26764 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26765 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26766 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26767 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26768 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26769 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26770 libs: refine GstVaapiMiniObject.
26771 Drop support for user-defined data since this capability was not used
26772 so far and GstVaapiMiniObject represents the smallest reference counted
26773 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26774 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26775 is also possible to further simplify the layout of the object. i.e. merge
26776 GstVaapiMiniObjectBase into GstVaapiMiniObject.
26778 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26780 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26781 decoder: update picture size from the bitstream.
26782 Propagate the picture size from the bitstream to the GstVaapiDecoder,
26783 and subsequent user who installed a signal on notify::caps. This fixes
26784 decoding of TS streams when the demuxer failed to extract the required
26787 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26789 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26790 decoder: fix raw decoding mode.
26791 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26792 surface proxy to the caller.
26794 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26796 * docs/reference/libs/libs-sections.txt:
26797 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26798 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26799 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26800 * gst/vaapi/gstvaapidecode.c:
26801 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26802 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26803 wait for a frame to be decoded, until the specified timeout in microseconds,
26804 prior to returning to the caller.
26805 This is a fix to performance regression from 851cc0, whereby the vaapidecode
26806 loop executed on the srcpad task was called to often, thus starving all CPU
26809 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26812 Bump version for development.
26814 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26820 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26825 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26827 * gst/vaapi/gstvaapidecode.c:
26828 vaapidecode: rework heuristics to detect decode timeout.
26829 Rework heuristics to detect when downstream element ran into errors,
26830 and thus failing to release any VA surface in due time for the current
26831 frame to get decoded. In particular, recalibrate the render time base
26832 when the first frame gets submitted downstream, or when there is no
26833 timestamp that could be inferred.
26835 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26837 * gst-libs/gst/vaapi/gstcompat.h:
26838 * gst/vaapi/gstvaapidecode.c:
26839 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26840 Rework GstVideoDecoder::handle_frame() to decode the current frame,
26841 while possibly waiting for a free surface, and separately submit all
26842 decoded frames from a task. This makes it possible to pop and render
26843 decoded frames as soon as possible.
26845 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26847 * gst/vaapi/gstvaapidecode.c:
26848 * gst/vaapi/gstvaapidownload.c:
26849 * gst/vaapi/gstvaapisink.c:
26850 * gst/vaapi/gstvaapiupload.c:
26851 plugins: use gst_object_unref() wherever applicable.
26852 Use gst_object_unref() wherever applicable, e.g. objects derived from
26853 GstElement, GstVideoPool, etc.
26855 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26857 * docs/reference/plugins/plugins-docs.xml.in:
26858 * docs/reference/plugins/plugins-sections.txt:
26859 * docs/reference/plugins/plugins.types:
26860 docs: drop obsolete plug-ins.
26861 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26862 i.e. vaapiupload and vaapidownload are no longer the recommended
26865 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26867 * debian.upstream/rules:
26868 debian: fix build of GStreamer 0.10 packages.
26869 Fix build of Debian packages to scan the actual GStreamer API version
26870 from the generated changelog file.
26872 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26874 * gst/vaapi/gstvaapipostproc.c:
26875 vaapipostproc: minor clean-ups.
26876 Use g_clear_object() wherever appropriate and remove dead-code.
26878 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26880 * gst/vaapi/gstvaapipostproc.c:
26881 vaapipostproc: fix reference counting buf for passthrough mode.
26882 Fix reference counting bug for passthrough mode, whereby the input buffer
26883 was propagated as is downstream through gst_pad_push() without increasing
26884 its reference count before. The was a problem when gst_pad_push() returns
26885 an error and we further decrease the reference count of the input buffer.
26887 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26889 * gst-libs/gst/vaapi/gstcompat.h:
26890 * gst/vaapi/Makefile.am:
26891 * gst/vaapi/gstvaapi.c:
26892 * gst/vaapi/gstvaapidecode.c:
26893 * gst/vaapi/gstvaapipluginutil.h:
26894 * gst/vaapi/gstvaapipostproc.c:
26895 vaapipostproc: port to GStreamer 1.0.
26896 Add support for interlaced streams with GStreamer 1.0 too. Basically,
26897 this enables vaapipostproc, though it is not auto-plugged yet. We also
26898 make sure to reply to CAPS queries, and happily handle CAPS events.
26900 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26902 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26903 decoder: fix GstVideoCodecFrame flags for interlaced contents.
26904 Fix support for interlaced contents with GStreamer 0.10. In particular,
26905 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26907 This is a regression from commit 87e5717.
26909 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26911 * gst-libs/gst/vaapi/Makefile.am:
26912 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26913 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26914 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26915 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26916 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26917 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26918 structure was only useful to parsing and a proper GstvaapiDecoderFrame
26919 instance will be created instead.
26921 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26923 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26924 decoder: export presentation timestamp for raw decoding mode.
26925 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26926 held any information about the expected presentation timestamp, frame
26927 duration or additional flags like interlaced or top-field-first.
26929 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26931 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26932 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26933 decoder: use new GstVaapiSurfaceProxy utility functions.
26934 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26935 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26936 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26937 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26938 than gst_vaapi_picture_output().
26940 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26942 * docs/reference/libs/libs-sections.txt:
26943 * gst-libs/gst/vaapi/Makefile.am:
26944 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26945 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26946 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26947 surfaceproxy: add more attributes for raw decoding modes.
26948 Add more attributes for raw decoding modes, i.e. directly through the
26949 libgstvaapi helper library. In particular, add presentation timestamp,
26950 duration and a couple of flags (interlaced, TFF, RFF, one-field).
26952 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26954 * docs/reference/libs/libs-sections.txt:
26955 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26956 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26957 * gst/vaapi/gstvaapidecode.c:
26958 * tests/simple-decoder.c:
26959 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26960 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26961 to call some user-provided function when the surface proxy is released.
26963 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26966 * gst-libs/gst/vaapi/Makefile.am:
26967 build: link libgstvaapi-glx-1.0.so against libdl.
26968 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26969 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26971 https://bugzilla.gnome.org/show_bug.cgi?id=698046
26972 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26974 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26976 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26977 decoder: fix gst_vaapi_decoder_get_codec_state().
26978 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26979 supposed to make GstVaapiDecoder own the return GstVideoCodecState
26980 object. Only comment was updated, not the actual code.
26982 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26984 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26985 * gst/vaapi/gstvaapidecode.c:
26986 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26987 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26988 i.e. make the GstVaapiDecoder object own the return state so that callers
26989 that want an extra reference to it would just gst_video_codec_state_ref()
26990 it before usage. This aligns the behaviour with what we had before with
26991 gst_vaapi_decoder_get_caps().
26992 This is an ABI incompatible change, library major version was bumped from
26993 previous release (0.5.2).
26995 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26997 * gst/vaapi/gstvaapivideobufferpool.h:
26998 * gst/vaapi/gstvaapivideoconverter_glx.h:
26999 plugins: mark a few more functions as internal.
27000 Mark the following functions are internal, i.e. private to the vaapi plug-in:
27001 - gst_vaapi_video_buffer_pool_get_type()
27002 - gst_vaapi_video_converter_glx_get_type()
27003 - gst_vaapi_video_converter_glx_new()
27005 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27007 * gst/vaapi/gstvaapivideobuffer.c:
27008 plugins: implement GstSurfaceMeta API.
27009 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
27010 an unstable/deprecated API, this makes it possible to support Clutter
27011 sink with minimal changes. Tested against clutter-gst 1.9.92.
27013 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27015 * gst/vaapi/gstvaapisink.c:
27016 vaapisink: optimize GstVideoOverlayInterface::expose().
27017 When render-mode is "overlay", then it is not really useful to peek into
27018 the GstBaseSink::last_buffer, since we have our own video_buffer already
27019 recorded and maintained into GstVaapiSink.
27021 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27023 * gst/vaapi/gstvaapisink.c:
27024 vaapisink: fix memory leak of GstSample objects.
27025 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
27026 This also fixes extra unreferencing of the underlying GstBuffer in the common
27027 path afterwards (for both 0.10 or 1.0).
27029 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27031 * gst-libs/gst/vaapi/gstcompat.h:
27032 * gst/vaapi/gstvaapi.c:
27033 plugins: fix description for gst-inspect.
27034 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
27035 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
27036 incorrectly uses #name for creating the plug-in name, instead of using macro
27037 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
27039 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27043 Update build requirements for GStreamer 1.0.x support. Add section for
27044 ways to report bugs.
27046 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27051 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27053 * gst-libs/gst/vaapi/Makefile.am:
27054 * gst/vaapi/Makefile.am:
27055 Fix make dist to include all source files, in any case.
27056 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
27057 sure to include all source files in either case while generating source
27060 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27063 Bump library major version.
27064 Bump library major version, while preserving a major version of 0 for
27065 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
27066 0.10 based librarieS.
27068 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27070 * gst/vaapi/gstvaapivideomemory.c:
27071 * gst/vaapi/gstvaapivideomemory.h:
27072 plugins: implement direct-rendering mode for raw YUV buffer uploads.
27073 Allow direct-rendering (writes) into target VA surfaces.
27075 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27077 * gst/vaapi/gstvaapivideobufferpool.c:
27078 * gst/vaapi/gstvaapivideomemory.c:
27079 * gst/vaapi/gstvaapivideomemory.h:
27080 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
27081 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
27082 the last component is unmapped. Downloads are not supported yet. The aim
27083 was to first support SW decoding + HW accelerated rendering (vaapisink).
27086 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27088 * gst/vaapi/gstvaapidecode.c:
27089 vaapidecode: submit all decoded frames before decoding a new one.
27090 Make sure to purge all pending frames that were already decoded prior
27091 to decoding a new one. This helps release VA surfaces as early as
27094 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27096 * gst/vaapi/gstvaapidecode.c:
27097 vaapidecode: reply to CAPS queries.
27098 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
27099 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
27100 This fixes fallback to SW decoding if no HW decoder is available.
27102 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27104 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27105 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27106 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27107 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27108 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27109 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27110 decoder: fix unpaired GstBuffer map/unmaps.
27111 This possibly fixes a few memory leaks along the way.
27113 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27116 * gst-libs/gst/vaapi/gstcompat.h:
27117 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27118 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27119 * gst/vaapi/Makefile.am:
27120 * gst/vaapi/gstvaapi.c:
27121 * gst/vaapi/gstvaapidecode.c:
27122 * gst/vaapi/gstvaapisink.c:
27123 * gst/vaapi/gstvaapisink.h:
27124 * gst/vaapi/gstvaapiuploader.c:
27126 Allow build against either GStreamer API (0.10 or 1.0).
27127 Introduce a new configure option --with-gstreamer-api that determines
27128 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
27129 Also integrate more compatibility glue into gstcompat.h and plugins.
27131 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27133 * gst/vaapi/gstvaapidecode.c:
27134 * gst/vaapi/gstvaapisink.c:
27135 * gst/vaapi/gstvaapisink.h:
27136 plugins: use new video buffer pools.
27137 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
27138 GstBaseSink::propose_allocation() to expose that pool to upstream
27139 elements; and also implement GstVideoDecoder::decide_allocation() to
27140 actually use that pool (from downstream), if any, or create one.
27141 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27143 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27145 * gst/vaapi/Makefile.am:
27146 * gst/vaapi/gstvaapivideobufferpool.c:
27147 * gst/vaapi/gstvaapivideobufferpool.h:
27148 * gst/vaapi/gstvaapivideomemory.c:
27149 * gst/vaapi/gstvaapivideomemory.h:
27150 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27151 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27152 object currently holds a reference to GstVaapiVideoMeta.
27153 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27155 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27157 * gst/vaapi/gstvaapivideometa.c:
27158 * gst/vaapi/gstvaapivideometa.h:
27159 plugins: allow copies of GstVaapiVideoMeta objects.
27160 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27161 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27162 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27165 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27167 * gst/vaapi/gstvaapivideometa.c:
27168 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27169 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27170 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27171 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27174 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27176 * gst/vaapi/Makefile.am:
27177 * gst/vaapi/gstvaapi.c:
27178 * gst/vaapi/gstvaapidecode.c:
27179 * gst/vaapi/gstvaapidownload.c:
27180 * gst/vaapi/gstvaapipluginutil.c:
27181 * gst/vaapi/gstvaapipostproc.c:
27182 * gst/vaapi/gstvaapisink.c:
27183 * gst/vaapi/gstvaapiupload.c:
27184 * gst/vaapi/gstvaapiuploader.c:
27185 * gst/vaapi/gstvaapivideobuffer.c:
27186 * gst/vaapi/gstvaapivideoconverter_glx.c:
27187 * gst/vaapi/gstvaapivideometa.c:
27188 * gst/vaapi/gstvaapivideometa.h:
27189 plugins: initial port to GStreamer 1.0.
27190 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27191 is rather minimalistic so that to test the basic functionality.
27192 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27193 needs polishing wrt. to GStreamer 1.x functionality and the former are
27194 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27195 which are yet to be implemented.
27196 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27198 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27200 * gst-libs/gst/vaapi/gstcompat.h:
27203 * tests/simple-decoder.c:
27204 * tests/test-subpicture.c:
27205 tests: add support for GStreamer 1.0.
27207 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27210 * gst-libs/gst/vaapi/gstcompat.h:
27211 * gst-libs/gst/vaapi/gstvaapicontext.c:
27212 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27213 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27214 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27215 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27216 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27217 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27218 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27219 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27220 * gst-libs/gst/vaapi/gstvaapiimage.c:
27221 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27222 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27223 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27224 * gst-libs/gst/vaapi/gstvaapisurface.h:
27225 Add initial support for GStreamer 1.0.
27226 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27227 core decoding library. The changes are kept rather minimal here so that
27228 the library retains as little dependency as possible on core GStreamer
27230 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27232 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27234 * gst/vaapi/gstvaapisink.c:
27235 vaapisink: improve check for raw YUV format mode.
27236 Improve check for raw YUV format modes by avoiding checks against strings
27237 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27238 GstBaseSink::set_caps() is called first and if VA surface format mode is
27239 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27240 called before set_caps(), then we just make a full check. This one is
27241 pretty rare though, e.g. it usually happens once for custom pipelines.
27243 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27245 * gst/vaapi/gstvaapipluginutil.c:
27246 plugins: don't fail if there is no overlay composition to apply.
27247 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27248 was found. i.e. return success (TRUE). This was harmless though extra
27249 debug messages are not nice.
27250 This is a regression introduced by commit 95b8659.
27252 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27254 * gst/vaapi/gstvaapidecode.c:
27255 * gst/vaapi/gstvaapidecode.h:
27256 vaapidecode: expose the exact set of supported HW decoders.
27257 Don't return static caps that don't mean anything for the underlying codecs
27258 that are actually supported for decoding. i.e. always allocate a VA display
27259 and retrieve the exact set of HW decoders available. That VA display may be
27260 re-used later on during negotiation through GstVideoContext "prepare-context".
27261 This fixes fallback to SW decoding if no HW decoder is available.
27263 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27265 * docs/reference/libs/libs-sections.txt:
27266 * gst-libs/gst/vaapi/gstvaapicontext.c:
27267 * gst-libs/gst/vaapi/gstvaapicontext.h:
27268 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27269 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27270 decoder: drop obsolete functions.
27271 Drop the following functions that are now obsolete:
27272 - gst_vaapi_context_get_surface()
27273 - gst_vaapi_context_put_surface()
27274 - gst_vaapi_context_find_surface_by_id()
27275 - gst_vaapi_surface_proxy_new()
27276 - gst_vaapi_surface_proxy_get_context()
27277 - gst_vaapi_surface_proxy_set_context()
27278 - gst_vaapi_surface_proxy_set_surface()
27279 This is an API change.
27281 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27283 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27284 decoder: delegate surface size check to VA context reset.
27285 Now that the surface pool is reference counted in the surface proxy wrapper,
27286 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27287 Besides, this check is already performed in gst_vaapi_context_reset_full().
27289 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27291 * docs/reference/libs/libs-sections.txt:
27292 * gst-libs/gst/vaapi/gstvaapicontext.c:
27293 * gst-libs/gst/vaapi/gstvaapicontext.h:
27294 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27295 * gst-libs/gst/vaapi/gstvaapisurface.h:
27296 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27297 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27298 decoder: simplify acquisition/release of spare surface.
27299 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27300 proxy from the context surface pool. This change also makes sure to retain
27301 the parent surface pool in the proxy.
27302 Besides, it was also totally useless to attach/detach parent context to
27303 VA surface each time we acquire/release it. Since the whole context owns
27304 all associated VA surfaces, we can mark this as such only once and for all.
27306 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27309 Bump version for development.
27311 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27317 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27322 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27324 * gst/vaapi/gstvaapipluginutil.c:
27325 * gst/vaapi/gstvaapisink.c:
27326 plugins: fix usage of gst_vaapi_reply_to_query().
27327 Make gst_vaapi_reply_to_query() first check whether the query argument
27328 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27329 Then, make sure vaapisink propagates the query to the parent class if
27330 it is not a video-context query.
27332 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27334 * gst/vaapi/gstvaapivideobuffer.c:
27335 * gst/vaapi/gstvaapivideobuffer.h:
27336 plugins: streamline video buffers.
27337 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27338 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27339 gst_vaapi_video_buffer_get_meta().
27341 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27343 * docs/reference/libs/libs-sections.txt:
27344 * gst-libs/gst/vaapi/Makefile.am:
27345 * gst/vaapi/Makefile.am:
27346 * gst/vaapi/gstvaapidecode.c:
27347 * gst/vaapi/gstvaapidownload.c:
27348 * gst/vaapi/gstvaapipostproc.c:
27349 * gst/vaapi/gstvaapisink.c:
27350 * gst/vaapi/gstvaapiupload.c:
27351 * gst/vaapi/gstvaapiuploader.c:
27352 * gst/vaapi/gstvaapivideobuffer.h:
27353 * gst/vaapi/gstvaapivideoconverter_glx.c:
27354 * gst/vaapi/gstvaapivideometa.c:
27355 * gst/vaapi/gstvaapivideometa.h:
27356 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27357 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27358 actual plugin elements. That's only useful there. Also inline reference
27359 counting code from GstVaapiMiniObject.
27361 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27363 * gst/vaapi/Makefile.am:
27364 * gst/vaapi/gstvaapidecode.c:
27365 * gst/vaapi/gstvaapidownload.c:
27366 * gst/vaapi/gstvaapipluginbuffer.c:
27367 * gst/vaapi/gstvaapipluginbuffer.h:
27368 * gst/vaapi/gstvaapipostproc.c:
27369 * gst/vaapi/gstvaapiupload.c:
27370 * gst/vaapi/gstvaapiuploader.c:
27371 * gst/vaapi/gstvaapivideobuffer.c:
27372 * gst/vaapi/gstvaapivideobuffer.h:
27373 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27374 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27375 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27377 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27379 * docs/reference/libs/libs-sections.txt:
27380 * docs/reference/libs/libs.core.types:
27381 * gst-libs/gst/vaapi/Makefile.am:
27382 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27383 * gst/vaapi/Makefile.am:
27384 * gst/vaapi/gstvaapidownload.h:
27385 * gst/vaapi/gstvaapipluginbuffer.c:
27386 * gst/vaapi/gstvaapipostproc.h:
27387 * gst/vaapi/gstvaapivideobuffer.c:
27388 * gst/vaapi/gstvaapivideobuffer.h:
27389 * gst/vaapi/gstvaapivideoconverter_glx.h:
27390 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27391 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27392 actual plugin elements. That's only useful there.
27394 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27396 * gst/vaapi/gstvaapipluginutil.c:
27397 * gst/vaapi/gstvaapipluginutil.h:
27398 * gst/vaapi/gstvaapisink.c:
27399 * gst/vaapi/gstvaapivideoconverter_glx.c:
27400 plugins: use common helper function to apply compositions.
27401 Use common gst_vaapi_apply_composition() helper function to apply compositions
27402 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27404 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27406 * gst-libs/gst/vaapi/Makefile.am:
27407 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27408 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27409 * gst/vaapi/Makefile.am:
27410 * gst/vaapi/gstvaapipluginbuffer.c:
27411 * gst/vaapi/gstvaapivideoconverter_glx.c:
27412 * gst/vaapi/gstvaapivideoconverter_glx.h:
27413 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27414 Make sure libgstvaapi core decoding library doesn't include un-needed
27415 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27416 Besides, even if the vaapisink element is not used, we are bound to have
27417 a correctly populated GstSurfaceBuffer from vaapidecode.
27418 Also clean-up the file along the way.
27420 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27422 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27423 vc1: fix use of possibly uninitialized variable.
27424 In decode_codec_data(), force initialization of format to zero so that
27425 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27426 fields, thus making it possible to gracefully fail in this case.
27428 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27430 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27431 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27433 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27435 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27436 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27437 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27438 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27439 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27440 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27441 decoder: sanitize codec-data decoding.
27442 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27443 codec-data in the decoder sub-class. Provide a common shared helper
27444 function to do the actual work and delegating further to the sub-class.
27446 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27448 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27449 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27450 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27451 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27452 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27453 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27454 useless nowadays as creating sub-buffers doesn't bring any value. It
27455 actually means more memory allocations. We can't do without that in
27456 JPEG and MPEG-4:2 decoders.
27458 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27460 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27461 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27462 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27463 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27464 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27465 decoder: sanitize uses of codec frame input buffer (cosmetics).
27466 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27469 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27471 * gst/vaapi/gstvaapisink.c:
27472 vaapisink: add helper function to apply a composition buffer.
27473 Simplify application of a composition buffer to a GstVaapiSurface, and
27474 all its peers, until that function is eventually promoted to libgstvaapi.
27476 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27478 * gst/vaapi/gstvaapisink.c:
27479 vaapisink: fix support for raw YUV buffers.
27480 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27481 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27482 However, we previously assumed in that case that it was a "native" VA buffer,
27483 thus not calling into GstVaapiUploader::process().
27485 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27487 * gst-libs/gst/vaapi/gstcompat.h:
27488 * gst/vaapi/gstvaapidecode.c:
27489 * gst/vaapi/gstvaapidownload.c:
27490 * gst/vaapi/gstvaapipostproc.c:
27491 * gst/vaapi/gstvaapisink.c:
27492 * gst/vaapi/gstvaapiupload.c:
27493 plugins: use modern GstElement metadata information.
27494 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27495 basically is the same as gst_element_class_set_details_simple() in
27496 GStreamer 0.10 context.
27498 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27500 * gst/vaapi/gstvaapidecode.c:
27501 * gst/vaapi/gstvaapidownload.c:
27502 * gst/vaapi/gstvaapipostproc.c:
27503 * gst/vaapi/gstvaapisink.c:
27504 * gst/vaapi/gstvaapiupload.c:
27505 plugins: move up interfaces (cosmetics).
27506 Move GstImplementsInterface and GstVideoContext support functions up
27507 so that to keep a clear separation between the plugin element and its
27510 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27512 * gst/vaapi/gstvaapisink.c:
27513 * gst/vaapi/gstvaapiuploader.c:
27514 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27515 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27516 Also use the newly added gst_vaapi_image_format_from_structure() helper
27517 in GstVaapiUploader::ensure_allowed_caps().
27519 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27521 * gst/vaapi/gstvaapipluginbuffer.c:
27522 plugins: fix creation of video buffer from another source buffer.
27523 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27524 buffer video meta since it would be unreference'd from the get_buffer()
27525 helper function. For other cases, we still use (steal) the newly created
27528 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27530 * gst/vaapi/gstvaapipluginbuffer.c:
27531 * gst/vaapi/gstvaapipluginutil.c:
27532 plugins: include "sysdeps.h" header instead of "config.h".
27534 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27536 * gst-libs/gst/vaapi/gstcompat.h:
27538 tests: modernize GstTypeFind functions.
27539 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27540 exactly correspond to the expected behaviour.
27542 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27546 * tests/test-decode.c:
27547 * tests/test-display.c:
27548 * tests/test-h264.c:
27549 * tests/test-h264.h:
27550 * tests/test-jpeg.c:
27551 * tests/test-jpeg.h:
27552 * tests/test-mpeg2.c:
27553 * tests/test-mpeg2.h:
27554 * tests/test-mpeg4.c:
27555 * tests/test-mpeg4.h:
27556 * tests/test-textures.c:
27557 * tests/test-vc1.c:
27558 * tests/test-vc1.h:
27559 * tests/test-windows.c:
27560 tests: fix license templates.
27562 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27564 * tests/test-display.c:
27565 tests: use gst_vaapi_image_format_from_structure() in test-display.
27566 Use gst_vaapi_image_format_from_structure() helper in test-display and
27567 then extract a VAImageFormat from it instead of relying on GstCaps for
27568 YUV and RGB formats.
27570 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27575 * tests/test-decode.c:
27576 * tests/test-display.c:
27577 * tests/test-subpicture.c:
27578 * tests/test-textures.c:
27579 * tests/test-windows.c:
27580 tests: include "sysdeps.h" header instead of "config.h".
27582 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27584 * gst-libs/gst/vaapi/gstcompat.h:
27585 * gst-libs/gst/vaapi/gstvaapicontext.c:
27586 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27587 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27588 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27589 function with GStreamer 0.10 compatible semantics, or that tries to
27590 approach the current meaning. Basically, this is also just about moving
27591 the helper to gstcompat.h.
27593 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27595 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27596 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27597 image: add gst_vaapi_image_format_from_structure() helper.
27598 Add helper function to convert video formats from a GstStructure to a
27599 plain GstVaapiImageFormat.
27601 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27603 * gst-libs/gst/vaapi/Makefile.am:
27604 * gst-libs/gst/vaapi/gstcompat.h:
27605 * gst-libs/gst/vaapi/sysdeps.h:
27606 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27608 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27610 * gst-libs/gst/vaapi/sysdeps.h:
27611 sysdeps: add more standard includes by default.
27613 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27616 configure: improve GStreamer API version checks.
27618 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27621 * debian.upstream/Makefile.am:
27622 * debian.upstream/changelog.in:
27623 * debian.upstream/control.in:
27624 * debian.upstream/gstreamer-vaapi-doc.install.in:
27625 * debian.upstream/libgstvaapi-dev.install.in:
27626 * debian.upstream/libgstvaapi-drm.install.in:
27627 * debian.upstream/libgstvaapi-glx.install.in:
27628 * debian.upstream/libgstvaapi-wayland.install.in:
27629 * debian.upstream/libgstvaapi-x11.install.in:
27630 * debian.upstream/libgstvaapi.install.in:
27631 * docs/reference/libs/Makefile.am:
27632 * docs/reference/libs/libs-docs.xml.in:
27633 * docs/reference/plugins/Makefile.am:
27634 * docs/reference/plugins/plugins-docs.xml.in:
27635 * gst-libs/gst/vaapi/Makefile.am:
27636 * gst/vaapi/Makefile.am:
27637 * pkgconfig/Makefile.am:
27638 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27639 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27640 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27641 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27642 * pkgconfig/gstreamer-vaapi.pc.in:
27643 * tests/Makefile.am:
27644 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27646 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27649 configure: improve check for H.264 codecparser.
27651 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27653 * gst/vaapi/gstvaapiuploader.c:
27654 vaapiupload: fix illegal write in ensure_image().
27655 Fix ensure_image() to only zero-initialize the first line of each plane.
27656 Properly initializing each plane to their full vertical resolution would
27657 require to actually compute it based on the image format.
27658 In particular, for NV12 images, the UV plane has half vertical resolution
27659 vs. the Y plane. So using the full image height to initialize the UV plane
27660 will obviously lead to a buffer overflow. Likewise for other YUV format.
27661 Since ensure_image() is only a helper function to initialize something,
27662 and not necessarily the whole thing, it is fine to initializ the first
27663 line only. Besides, the target surface is not rendered either.
27664 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27666 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27668 * gst-libs/gst/codecparsers/Makefile.am:
27669 * gst-libs/gst/video/Makefile.am:
27670 build: fix compiling of local GstVideoDecoder and codecparsers.
27671 Generated source files were missing a dependency on the complete set of
27672 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27673 to build and almost every codec parser source depends on parserutils.h.
27674 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27675 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27676 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27678 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27680 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27681 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27682 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27683 there is no pred_weight_table() that was parsed.
27684 This is a workaround for the VA intel-driver on Ivy Bridge.
27686 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27688 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27689 h264: use new profile definitions from codecparsers.
27691 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27693 * ext/codecparsers:
27694 codecparsers: update to gst-vaapi-branch commit 500bc02.
27695 500bc02 h264: add profile enums
27697 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27702 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27704 * ext/codecparsers:
27705 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27706 8957fb7 mpeg2: add helpers to convert quantization matrices
27707 07c4034 mpeg2: store quantization matrices in zigzag scan order
27709 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27711 * tests/simple-decoder.c:
27712 tests: simple-decoder: fix build on older platforms.
27713 Make simple-decoder build and execute correctly on older platforms,
27714 and more precisely older versions of glib.
27716 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27718 * gst-libs/gst/vaapi/glibcompat.h:
27719 glibcompat: add replacement for g_async_queue_timeout_pop().
27720 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27721 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27722 new data to arrive in the queue.
27724 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27726 * gst-libs/gst/vaapi/glibcompat.h:
27727 glibcompat: add replacement for g_cond_wait().
27729 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27731 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27732 mpeg2: fix decoding of 4K videos.
27733 Account for slice_vertical_position_extension when vertical_size > 2800.
27735 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27737 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27738 mpeg2: fix decoding of sequence_end().
27739 There shall be only one place to call decode_current_picture(), and this
27740 is in the end_frame() hook. The EOS unit is processed after end_frame()
27741 so this means we cannot have a valid picture to decode/output at this
27744 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27746 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27747 mpeg2: improve robustness when packets are missing.
27748 Improve robustness when some expected packets where not received yet
27749 or that were not correctly decoded. For example, don't try to decode
27750 a picture if there was no valid sequence or picture headers.
27752 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27754 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27755 decoder: handle decode-only frames in raw API mode.
27756 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27757 surface proxy, i.e. with a valid VA surface. This means that any frame
27758 marked as decode-only is simply skipped.
27760 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27762 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27763 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27764 decoder: allow frames to be dropped.
27765 If the decoder was not able to decode a frame because insufficient
27766 information was available, e.g. missing sequence or picture header,
27767 then allow the frame to be gracefully dropped without generating
27769 It is also possible that a frame is not meant to be displayed but
27770 only used as a reference, so dropping that frame is also a valid
27771 operation since GstVideoDecoder base class has extra references to
27772 that GstVideoCodecFrame that needs to be released.
27774 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27776 * gst/vaapi/gstvaapidecode.c:
27777 vaapidecode: handle decode-only frames.
27778 Decode-only frames may not have a valid surface proxy. So, simply discard
27779 them gracefully, i.e. don't create meta data information. GstVideoDecoder
27780 base class will properly handle this case and won't try to push any buffer
27781 to downstream elements.
27783 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27785 * gst/vaapi/gstvaapidecode.c:
27786 vaapidecode: add support for post-seek semantics reset.
27787 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27788 and the creation of a new VA decoder.
27789 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27791 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27794 Bump version for development.
27796 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27802 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27804 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27805 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27807 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27809 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27810 decoder: fix documentation for GstVaapiDecoderFrame.
27811 Drop superfluous reference to prev_slice member.
27813 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27815 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27816 decoder: assume current frame is complete at end-of-stream.
27817 Assume we got a complete frame when the end-of-stream is reached and that
27818 the current codec frame contains at least one slice data unit.
27820 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27824 * debian.upstream/copyright:
27825 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27826 * gst-libs/gst/vaapi/gstvaapicontext.c:
27827 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27828 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27829 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27830 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27831 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27832 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27833 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27834 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27835 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27836 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27837 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27838 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27839 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27840 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27841 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27842 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27843 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27844 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27845 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27846 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27847 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27848 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27849 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27850 * gst-libs/gst/vaapi/gstvaapisurface.c:
27851 * gst-libs/gst/vaapi/gstvaapiutils.c:
27852 * gst-libs/gst/vaapi/gstvaapiutils.h:
27853 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27854 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27855 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27856 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27857 * gst-libs/gst/vaapi/sysdeps.h:
27858 * gst/vaapi/gstvaapidecode.c:
27859 * gst/vaapi/gstvaapidownload.c:
27860 * gst/vaapi/gstvaapipluginbuffer.c:
27861 * gst/vaapi/gstvaapipluginbuffer.h:
27862 * gst/vaapi/gstvaapipostproc.c:
27863 * gst/vaapi/gstvaapisink.c:
27864 * gst/vaapi/gstvaapiupload.c:
27865 * gst/vaapi/gstvaapiuploader.c:
27867 * tests/test-decode.c:
27868 * tests/test-subpicture.c:
27869 legal: fix year for some copyright notices (2013).
27871 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27873 * gst-libs/gst/vaapi/gstvaapicontext.h:
27874 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27875 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27876 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27877 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27878 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27879 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27880 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27881 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27882 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27883 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27884 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27885 * gst-libs/gst/vaapi/gstvaapisurface.c:
27886 * gst-libs/gst/vaapi/gstvaapisurface.h:
27887 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27888 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27889 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27890 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27891 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27892 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27893 * gst/vaapi/gstvaapidecode.h:
27894 * gst/vaapi/gstvaapisink.h:
27895 * tests/test-subpicture.c:
27896 legal: fix year for some copyright notices (2012).
27898 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27900 * gst-libs/gst/vaapi/gstvaapicompat.h:
27901 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27902 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27903 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27904 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27905 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27906 * gst-libs/gst/vaapi/gstvaapiobject.c:
27907 * gst-libs/gst/vaapi/gstvaapiobject.h:
27908 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27909 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27910 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27911 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27912 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27913 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27914 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27915 * gst-libs/gst/vaapi/gstvaapitexture.c:
27916 * gst-libs/gst/vaapi/gstvaapitexture.h:
27917 * gst-libs/gst/vaapi/gstvaapitypes.h:
27918 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27919 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27920 * gst-libs/gst/vaapi/gstvaapivalue.c:
27921 * gst-libs/gst/vaapi/gstvaapivalue.h:
27922 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27923 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27924 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27925 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27926 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27927 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27928 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27929 * tests/test-display.c:
27930 * tests/test-surfaces.c:
27931 * tests/test-windows.c:
27932 legal: add Intel copyright on modified files.
27934 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27939 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27941 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27942 wayland: use a local event queue to avoid lock contention.
27943 This improves performance when rendering several surfaces from within
27944 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27946 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27948 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27949 wayland: fix thread-safe issues.
27950 The Wayland API is not fully thread-safe and client applications shall
27951 perform locking themselves on key functions. Besides, make sure to
27952 release the lock if the _render() function fails.
27954 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27956 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27957 wayland: really wait until the pending redraw completed.
27958 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27959 the completion of the redraw request. Use it in _render() function to
27960 actually block until the previous draw request is completed.
27962 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27964 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27965 wayland: fix frame_redraw callback.
27966 The redraw callback needs to be attached to the surface prior to the
27967 commit. Otherwise, the callback notifies the next surface repaint,
27968 which is not the desired behaviour. i.e. we want to be notified for
27969 the surface we have just filled.
27970 Another isse was the redraw_pending was reset before the actual completion
27971 of the frame redraw callback function, thus causing concurrency issues.
27972 e.g. the callback could have been called again, but with a NULL buffer.
27974 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27976 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27977 wayland: fix display sharing.
27978 When the Wayland display is shared, we still have to create our own local
27979 shell and compositor objects, since they are not propagated from the cache.
27980 Likewise, we also need to determine the display size or vaapisink would
27981 fail to account for the display aspect ratio, and will try to create a 0x0
27984 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27986 * ext/codecparsers:
27987 codecparsers: update to gst-vaapi-branch commit 21a098e.
27988 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27989 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27991 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27993 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27994 vc1: handle frames with multiple slices.
27996 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27998 * ext/codecparsers:
27999 codecparsers: update to gst-vaapi-branch commit 3fba492.
28000 3fba492 vc1: add API to parse slice headers
28002 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28004 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28005 vc1: handle CLOSED_ENTRY.
28006 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
28007 lack a reference anchor picture, these B pictures shall be discarded.
28008 https://bugs.freedesktop.org/show_bug.cgi?id=59505
28010 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28012 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28013 vc1: cope with latest codecparser changes.
28014 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
28015 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
28016 the actual value of DQPROFILE.
28018 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28020 * ext/codecparsers:
28021 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
28022 3d2c67c vc1: simplify GstVC1VopDquant structure
28024 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28026 * ext/codecparsers:
28027 codecparsers: update to gst-vaapi-branch commit 5d33da8.
28028 5d33da8 vc1: fix bitplanes decoding
28029 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
28030 0b13d2b vc1: fix calculation of ALTPQUANT
28031 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
28033 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28035 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28036 vc1: fix size of encapsulated BDU.
28037 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
28038 the size of the BDU data, starting from offset, i.e. after any start
28040 This fixes a buffer overflow during the unescaping process.
28042 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
28044 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28045 vc1: fix decoding of WMV3 videos in AVI format.
28046 The AVI demuxer (avidemux) does not set a proper "format" attribute
28047 to the generated caps. So, try to recover the video codec format from
28048 the "wmvversion" property instead.
28049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28051 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28053 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28054 vc1: review and report errors accordingly.
28055 Use GST_ERROR() to report real errors instead of hiding them into
28058 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28060 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28061 vc1: don't create GstBuffers for all decoder units.
28062 Don't create temporary GstBuffers for all decoder units, even if they
28063 are lightweight "sub-buffers", since it is not really necessary to keep
28064 the buffer data around.
28066 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28068 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28069 vc1: implement flush() hook.
28070 Make it a simple DPB flush.
28072 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28074 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28075 vc1: implement {start,end}_frame() hooks.
28076 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28077 that to create new VA context earlier and submit VA pictures to the
28078 HW for decoding as soon as possible. i.e. don't wait for the next
28079 frame to start decoding the previous one.
28081 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28083 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28084 vc1: fix next POC for new sequence layers.
28085 Fix next POC when a new sequence layer is reached. At this point, we
28086 need to reset any previous reference picture, i.e. non B-frame.
28088 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28090 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28091 vc1: port to common GstVaapiDpb interface.
28092 Use GstVaapiDpb interface instead of maintaining our own prev and next
28093 picture pointers. While doing so, try to derive a sensible POC value.
28094 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28096 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28098 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28099 vc1: fix decode_sequence_end() to return success, not EOS.
28101 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28103 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28104 decoder: simplify gst_vaapi_decoder_get_surface().
28105 Avoid extraenous branches, i.e. immediately return with success once we
28106 have a decoded frame available.
28108 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28110 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28111 decoder: optimize and clean decode_step() up.
28112 Avoid usage of goto. Simplify decode_step() process to first accumulate all
28113 pending buffers into the GstAdapter, and then parse and decode units from
28114 that input adapter. Stop the process once a frame is fully decoded or an
28117 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28119 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28120 display: move "vaapi" debug init to libgstvaapi_init_once().
28122 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28125 * gst-libs/gst/vaapi/Makefile.am:
28126 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28127 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
28128 display: dump gstreamer-vaapi version for debugging purposes.
28130 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28132 * tests/Makefile.am:
28133 tests: simple-decoder: fix build with built-in videoutils.
28134 Fix build with built-in videoutils, i.e. when system GStreamer installation
28135 does not know about GstVideoDecoder API.
28137 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28139 * tests/simple-decoder.c:
28140 tests: simple-decoder: flush decoded frames at EOS.
28141 Flush the remaining decoded frames when an end-of-stream is reached.
28143 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28145 * tests/simple-decoder.c:
28146 tests: simple-decoder: drop use of GstVaapiVideoMeta.
28147 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28148 in libgstvaapi forever. Rather, that'd move to plugin elements at some
28151 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28153 * tests/simple-decoder.c:
28154 tests: simple-decoder: add benchmark mode.
28155 Add --benchmark option to enable benchmark mode where rendering is not
28156 synchronized with presentation timestamps of the decoded surfaces.
28158 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28160 * tests/Makefile.am:
28161 * tests/simple-decoder.c:
28162 tests: simple-decoder: honour framerate from the bitstream.
28163 Try to honour the framerate from the bitstream, or cap the playback to
28166 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28168 * tests/simple-decoder.c:
28169 tests: simple-decoder: set window size to the surface dimensions.
28170 Set the window size to the decoded surface dimensions, if the user has
28171 not requested the application to run in full-screen mode. Besides, no
28172 effort is made to preserve aspect ratio or to center the video within
28175 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28177 * tests/Makefile.am:
28178 * tests/simple-decoder.c:
28179 tests: add simple decoder application.
28180 Add simple decoder application to show off decoding capabilities from
28181 raw bitstreams, for debugging or performance evaluation purposes.
28183 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28185 * tests/Makefile.am:
28188 tests: add codec helper utils.
28189 Add helper functions to determine the codec type from a specific file
28190 or utility functions to convert from codec type to GstCaps or from
28191 codec name to codec type.
28193 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28196 tests: allow fullscreen mode.
28197 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28199 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28201 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28202 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28204 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28206 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28207 h264: handle end-of-stream NALU.
28208 Handle <end-of-stream> NAL unit to actually flush any pending picture
28211 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28213 * gst/vaapi/gstvaapidecode.c:
28214 vaapidecode: handle EOS events.
28215 Flush all decoded frames to downstream when EOS is received. This is
28216 performed by implementing GstVideoDecoder::finish() hook.
28218 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28220 * gst/vaapi/gstvaapidecode.c:
28221 vaapidecode: split gvd_handle_frame() into decode/push frames.
28222 Split GstVideoDecoder::handle_frame() implementation into two functions:
28223 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28224 for purging all decoded frames and submit them downstream.
28226 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28228 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28229 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28230 decoder: add GstVaapiDecoder::flush() hook.
28232 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28234 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28235 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28236 decoder: fix check for end-of-stream in raw API mode.
28237 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28238 if the end-of-stream was already reached at the previous iteration.
28240 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28242 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28243 decoder: make decode_step() return once the frame is decoded.
28244 Make sure we always have a free surface left to use for decoding the
28245 current frame. This means that decode_step() has to return once a frame
28246 gets decoded. If the current adapter contains more buffers with valid
28247 frames, they will get parsed and decoded on subsequent iterations.
28249 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28251 * ext/codecparsers:
28252 codecparsers: update to gst-vaapi-branch commit b47983a.
28253 8840c2d h264: zero-initialize SPS VUI parameters
28255 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28258 Bump version for development.
28260 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28266 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28268 * docs/reference/libs/libs-docs.xml.in:
28269 * docs/reference/libs/libs-sections.txt:
28270 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28271 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28272 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28273 docs: expose new interfaces.
28275 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28280 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28282 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28283 dpb: cosmetics (clean-ups).
28285 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28287 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28288 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28289 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28290 dpb: port to GstVaapiMiniObject.
28292 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28294 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28295 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28296 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28297 dpb: drop GstVaapiDpb2 interface, keep only one class.
28298 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28299 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28300 around the specified picture POC.
28302 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28304 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28305 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28306 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28307 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28308 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28309 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28310 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28312 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28315 Bump version for pre-release.
28317 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28322 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28325 * gst-libs/gst/vaapi/gstvaapicontext.c:
28326 * gst-libs/gst/vaapi/gstvaapiutils.c:
28327 * gst-libs/gst/vaapi/sysdeps.h:
28328 * tests/test-subpicture.c:
28329 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28330 Check for global-alpha support in GstVideoOverlayComposition API.
28331 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28333 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28335 * tests/test-subpicture.c:
28336 tests: add support for global-alpha subpictures.
28337 Add --global-alpha option to test-subpicture.
28339 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28341 * tests/Makefile.am:
28342 * tests/test-subpicture.c:
28343 tests: use GstVideoOverlayComposition API for subpicture test.
28345 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28347 * tests/Makefile.am:
28348 * tests/test-subpicture.c:
28349 tests: use common decoder helpers for subpicture test.
28350 Use common decoder helpers for subpicture test, thus allowing to decode
28351 sample images in an alternate format.
28353 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28355 * tests/Makefile.am:
28358 * tests/test-decode.c:
28359 tests: add decoder helpers.
28361 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28363 * gst-libs/gst/vaapi/gstvaapicontext.c:
28364 overlay: fix ordering of composition layers.
28365 Make sure to maintain the association order of composition layers when
28366 GstVideoOverlayRectangle objects are kept around (cached).
28368 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28370 * gst-libs/gst/vaapi/gstvaapicontext.c:
28371 overlay: fix support for global-alpha.
28372 Fix support for global-alpha subpictures. The previous changes brought
28373 the ability to check for GstVideoOverlayRectangle changes by comparing
28374 the underlying pixel buffer pointers. If sequence number and pixel data
28375 did not change, then this is an indication that only the global-alpha
28376 value changed. Now, try to update the underlying VA subpicture global-alpha
28378 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28380 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28382 * gst-libs/gst/vaapi/gstvaapicontext.c:
28383 overlay: detect render-rect changes.
28384 Don't re-upload VA subpicture if only the render rectangle changed.
28385 Rather deassociate the subpicture and re-associate it with the new
28388 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28390 * gst-libs/gst/vaapi/gstvaapicontext.c:
28391 overlay: fix check for pixels buffer change.
28392 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28393 change. However, when global-alpha is supported, it is possible to re-use
28394 the same GstVideoOverlayRectangle but with a change to the global-alpha
28395 value. This process causes a change of sequence number, so we can no longer
28397 Still, if sequence numbers did not change, then there was no change in
28398 global-alpha either. So, we need a way to compare the underlying GstBuffer
28399 pointers. There is no API to retrieve the original pixels buffer from
28400 a GstVideoOverlayRectangle. So, we use the following heuristics:
28401 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28402 format flags from which the GstVideoOverlayRectangle was created. This
28403 will work if there was no prior consumer of the GstVideoOverlayRectangle
28404 with alternate (non-"native") format flags.
28405 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28406 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28407 with flags that match the subpicture. This is needed to cope with
28408 platforms that don't support global-alpha in HW, so the gst-video
28409 layer takes care of that and fixes this up with a possibly new
28410 GstBuffer, and hence pixels data (or) in-place by caching the current
28411 global-alpha value applied. So we have to determine the rectangle
28412 was previously used, based on what previous flags were used to
28413 retrieve the ARGB pixels buffer.
28415 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28417 * gst-libs/gst/vaapi/gstvaapicontext.c:
28418 overlay: optimize cache at the GstVideoOverlayRectangle level.
28419 We previously assumed that an overlay composition changed if the number
28420 of overlay rectangles in there actually changed, or that the rectangle
28421 was updated, and thus its seqnum was also updated.
28422 Now, we can cope with cases where the GstVideoOverlayComposition grew
28423 by one or a few more overlay rectangles, and the initial overlay rectangles
28426 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28428 * gst-libs/gst/vaapi/gstvaapicontext.c:
28429 overlay: simplify caching of GstVideoOverlayComposition objects.
28430 Create the GPtrArray once in the _init() function and destroy it only
28431 in the _finalize() function. Then use overlay_clear() to remove all
28432 subpicture associations for intermediate updates, don't recreate the
28434 Make GstVaapiOverlayRectangle a reference counted object. Also make
28435 sure that overlay_rectangle_new() actually creates and associates the
28438 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28440 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28441 * gst-libs/gst/vaapi/gstvaapiutils.c:
28442 * gst-libs/gst/vaapi/gstvaapiutils.h:
28443 overlay: add support for global-alpha.
28444 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28445 the same code path could also work for premultiplied-alpha but this
28447 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28449 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28451 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28452 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28453 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28454 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28455 * gst-libs/gst/vaapi/gstvaapisurface.c:
28457 * tests/test-subpicture.c:
28458 subpicture: add support for global-alpha.
28459 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28460 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28461 to address this feature.
28462 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28464 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28466 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28467 * gst-libs/gst/vaapi/gstvaapiutils.c:
28468 * gst-libs/gst/vaapi/gstvaapiutils.h:
28469 subpicture: add premultiplied-alpha and global-alpha feature flags.
28470 Add premultiplied-alpha and global-alpha feature flags, along with converters
28471 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28472 also necessary for GstVideoOverlayComposition API.
28474 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28476 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28477 display: allow image/subpicture formats with additional flags.
28478 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28479 and any additional flags needed. Currently, all flags are set to zero.
28481 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28483 * gst-libs/gst/codecparsers/Makefile.am:
28484 * gst-libs/gst/video/Makefile.am:
28485 * tests/Makefile.am:
28486 libs: fix build of submodule wrappers.
28487 Make sure to build codecparsers/ and videoutils/ sources against the
28488 newly generated headers when out-of-source builds are used.
28490 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28493 configure: fix checks for packages installed in non-standard roots.
28495 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28497 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28498 decoder: fix mini object implementation on 64-bit systems.
28499 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28500 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28501 Only a gsize can hold all bits of a pointer.
28502 Thanks to Ouping Zhang for spotting this error.
28504 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28506 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28507 mpeg2: optimize scan for the end of the frame.
28508 Heuristic: if the second start-code is available, check whether that
28509 one marks the start of a new frame because e.g. this is a sequence
28510 or picture header. This doesn't save much, since we already cache the
28513 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28515 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28516 mpeg2: optimize scan for start codes.
28517 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28518 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28519 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28520 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28521 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28522 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28523 4. xx == 00, yy == 00, zz == 1, we have match!
28524 This algorithm requires to peek bytes from the adapter. This increases the
28525 amount of bytes copied to a temporary buffer, but this process is much faster
28526 than scanning for all the bytes and using shift/masks. So, overall, this is
28529 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28531 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28532 mpeg2: drop useless gst_adapter_peek().
28533 Drop useless gst_adapter_peek() since the returned buffer was not used
28534 and this could incur superfluous memcpy().
28536 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28538 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28539 mpeg2: cosmetics: move parse_slice() down.
28541 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28543 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28544 mpeg2: avoid too many allocations of parser info objects.
28545 Move parsing back to decoding step, but keep functions separate for now.
28546 This is needed for future optimizations that may introduce some meta data
28547 for parsed info attached to codec frames.
28549 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28551 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28552 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28553 decoder: decoder units are no longer dynamically allocated objects.
28555 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28557 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28558 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28559 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28560 decoder: optimize pre-allocation of decoder units.
28561 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28562 memory reallocations. The heuristic used is that we could have around
28563 one slice unit per macroblock line.
28565 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28567 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28568 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28569 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28570 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28571 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28572 decoder: use an array of units instead of a single-linked list.
28573 Use a GArray to hold decoder units in a frame, instead of a single-linked
28574 list. This makes 'append' calls faster, but not that much. At least, this
28575 makes things clearer.
28577 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28579 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28580 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28581 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28582 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28583 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28584 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28585 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28586 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28587 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28588 decoder: refactor decoder unit API.
28589 Allocate decoder unit earlier in the main parse() function and don't
28590 delegate this task to derived classes. The ultimate purpose is to get
28591 rid of dynamic allocation of decoder units.
28593 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28596 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28597 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28598 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28600 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28602 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28603 h264: introduce parser info instead of H.264 specific decoder unit.
28604 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28605 from GstVaapiDecoderUnit for H.264 specific parser information.
28607 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28609 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28610 h264: set default values for some header fields.
28611 The SPS, PPS and slice headers are not fully zero-initialized in the
28612 codecparsers/ library. Rather, the standard upstream behaviour is to
28613 initialize only certain syntax elements with some inferred values if
28614 they are not present in the bitstream.
28615 At the gstreamer-vaapi decoder level, we need to further initialize
28616 certain syntax elements with some sensible default values so that to
28617 not complicate VA drivers that just pass those verbatim to the HW,
28618 and also avoid an memset() of the whole decoder unit.
28619 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28620 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28622 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28624 * ext/codecparsers:
28625 codecparsers: update to gst-vaapi-rebased commit b47983a.
28626 b47983a h264: add inferred value for slice_beta_offset_div2
28628 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28630 * gst/vaapi/gstvaapidecode.c:
28631 * gst/vaapi/gstvaapidownload.c:
28632 * gst/vaapi/gstvaapipluginbuffer.c:
28633 * gst/vaapi/gstvaapipluginbuffer.h:
28634 * gst/vaapi/gstvaapipostproc.c:
28635 * gst/vaapi/gstvaapisink.c:
28636 * gst/vaapi/gstvaapiupload.c:
28637 * gst/vaapi/gstvaapiuploader.c:
28638 plugins: cope with new GstVaapiVideoMeta API.
28639 Update plugin elements with the new GstVaapiVideoMeta API.
28640 This also fixes support for subpictures/overlay because GstVideoDecoder
28641 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28642 is marked as read-only. However, when comes in the textoverlay element
28643 for example, it checks whether the input buffer is writable. Since that
28644 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28645 does not preserve the parent field, the generated buffer in textoverlay
28646 is not exploitable because we lost all VA specific information.
28647 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28648 all information are preserved through gst_buffer_copy() since the latter
28649 does copy metadata (qdata in this case).
28651 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28653 * gst-libs/gst/vaapi/Makefile.am:
28654 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28655 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28656 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28657 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28658 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28659 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28660 videobuffer: wrap video meta into a surface buffer.
28661 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28662 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28663 expecting a GstSurfaceBuffer like Clutter.
28665 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28667 * gst-libs/gst/vaapi/Makefile.am:
28668 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28669 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28670 videobuffer: add video meta information.
28671 Add new GstVaapiVideoMeta object that holds all information needed to
28672 convey gst-vaapi specific data as a GstBuffer.
28674 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28676 * gst/vaapi/gstvaapidecode.c:
28677 vaapidecode: fix calculation of the time-out value.
28678 Fix calculation of the time-out value for cases where no VA surface is
28679 available for decoding. In this case, we need to wait until downstream
28680 sink consumed at least one surface. The time-out was miscalculated as
28681 it was always set to <current-time> + one second, which is not suitable
28682 for streams with larger gaps.
28684 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28686 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28687 decoder: always use the calculated presentation timestamp.
28688 Use PTS value computed by the decoder, which could also be derived from
28689 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28690 the original one was miscomputed or only represented a DTS instead.
28692 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28694 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28695 h264: don't create sub-buffer for slice data.
28697 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28699 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28700 decoder: create new context when encoded resolution changes.
28701 Create a new VA context if the encoded surface size changes because we
28702 need to keep the underlying surface pool until the last one was released.
28703 Otherwise, either of the following cases could have happened: (i) release
28704 a VA surface to an inexistent pool, or (ii) release VA surface to an
28705 existing surface pool, but with different size.
28707 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28709 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28710 mpeg2: don't create sub-buffer for slice data.
28711 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28712 frame input buffer data. This is possible because the codec frame is valid
28713 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28714 slice data buffer is copied into the VA buffer when it is created.
28716 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28718 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28719 mpeg2: minor clean-ups.
28720 Drop explicit initialization of most fields that are implicitly set to
28721 zero. Remove some useless checks for NULL pointers.
28723 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28725 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28726 mpeg2: optimize scan for the second start code.
28727 Optimize scan for the second start code, on the next parse() call so that
28728 to avoid scanning again earlier bytes where we didn't find any start code.
28730 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28732 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28733 mpeg2: use sequence_display_extension() to compute PAR.
28734 Also compute pixel-aspect-ratio from sequence_display_extension(),
28735 should it exist in the bitstream.
28737 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28739 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28740 mpeg2: handle sequence_display_extension().
28742 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28744 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28745 mpeg2: implement {start,end}_frame() hooks.
28746 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28747 that to create new VA context earlier and submit VA pictures to the
28748 HW for decoding as soon as possible. i.e. don't wait for the next
28749 frame to start decoding the previous one.
28751 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28753 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28754 mpeg2: parse slice() header earlier.
28755 Parse slice() header and first macroblock position earlier in _parse()
28756 function instead of waiting for the _decode() stage. This doesn't change
28757 anything but readability.
28759 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28761 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28762 mpeg2: add codec specific decoder unit.
28763 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28764 GstMpegVideoPacket and additional parsed header info. Besides, we now
28765 parse as early as in the _parse() function so that to avoid un-necessary
28766 creation of sub-buffers in _decode() for video packets that are not slices.
28768 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28770 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28771 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28772 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28773 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28774 decoder: introduce lists of units to decode before/after frame.
28775 Theory of operations: all units marked as "slice" are moved to the "units"
28776 list. Since this list only contains slice data units, the prev_slice pointer
28777 was removed. Besides, we now maintain two extra lists of units to be decoded
28778 before or after slice data units.
28779 In particular, all units in the "pre_units" list will be decoded before
28780 GstVaapiDecoder::start_frame() is called and units in the "post_units"
28781 list will be decoded after GstVaapiDecoder::end_frame() is called.
28783 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28785 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28786 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28787 decoder: drop useless checks for codec objects.
28788 Codec objects are used internally only and they are bound to be created
28789 with a valid GstVaapiDecoder object.
28791 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28793 * gst/vaapi/gstvaapidecode.c:
28794 vaapidecode: use GST_ERROR to print error messages.
28796 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28798 * gst/vaapi/gstvaapidecode.c:
28799 vaapidecode: avoid double release of frame on error.
28800 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28801 was already called before and it returned an error. In that case, we were
28802 releasing the frame again, thus leading to a "double-free" condition.
28804 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28811 * gst-libs/gst/Makefile.am:
28812 * gst-libs/gst/vaapi/Makefile.am:
28813 * gst-libs/gst/video/Makefile.am:
28814 * gst/vaapi/Makefile.am:
28815 Add videoutils submodule for GstVideoDecoder APIs.
28817 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28820 configure: check for GstVideoDecoder API.
28821 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28822 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28823 parties may either use upstream git 0.10 branch or backport the necessary support
28824 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28826 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28828 * docs/reference/libs/libs.core.types:
28829 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28830 GstVaapiSurfaceProxy is no longer based on the GType system.
28832 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28834 * docs/reference/libs/libs-sections.txt:
28835 docs: fix entries for GstVaapiSurfaceProxy.
28837 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28842 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28845 * gst-libs/gst/vaapi/Makefile.am:
28846 Bump library major version.
28847 Increase library major so that to cope with API/ABI incompatible changes
28848 since 0.4.x series and avoid user issues.
28850 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28852 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28853 surfaceproxy: minor clean-ups.
28855 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28857 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28858 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28859 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28860 surfaceproxy: drop accessors to obsolete attributes.
28861 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28862 VA surface. i.e. drop any other attribute like timestamp, duration,
28863 interlaced or top-field-first.
28865 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28867 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28868 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28869 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28870 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28871 * gst/vaapi/gstvaapidecode.c:
28872 decoder: maintain decoded frames as GstVideoCodecFrame objects.
28873 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28874 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28875 the strict minimum: a context and a surface.
28877 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28879 * gst/vaapi/gstvaapidecode.c:
28880 vaapidecode: output all decoded frames as soon as possible.
28881 Make sure to push all decoded frames downstream as soon as possible.
28882 This makes sure we don't need to wait for a new frame to be ready to
28883 be decoded before receiving new decoded frames.
28884 This also separates the decode process and the output process. The latter
28885 could be moved to a specific GstTask later on.
28887 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28889 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28890 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28891 decoder: add gst_vaapi_decoder_get_frame() API.
28892 Add new gst_vaapi_decoder_get_frame() function meant to be used with
28893 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28894 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28895 as the user-data object.
28897 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28899 * gst/vaapi/gstvaapipostproc.c:
28900 vaapipostproc: use GstBuffer flags for TFF.
28901 Determine whether the buffer represents the top-field only by checking for
28902 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28903 flag. Also trust "interlaced" caps to determine whether the input frame
28904 is interleaved or not.
28906 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28908 * gst/vaapi/gstvaapipostproc.c:
28909 vaapipostproc: handle video sub-buffers.
28910 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28911 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28913 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28915 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28916 h264: optimize initialization process of decoder units.
28917 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28918 The latter don't require zero-initialization since the codecparsers/ lib
28919 will do so for key variables already. This is not a great value per se but
28920 at least it makes it possible to check whether the default initialization
28921 decisions made in the codecparsers/ lib were right or not.
28922 This can be reverted if this exposes too many issues.
28924 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28926 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28927 h264: minor clean-ups.
28928 Drop explicit initialization of most fields that are implicitly set to
28929 zero. Drop helper macros for casting to GstVaapiPictureH264 or
28930 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28932 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28934 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28935 h264: drop GstVaapiSliceH264 object.
28936 Use standard GstVaapiSlice object from now on since we already have
28937 parsed and recorded the slice headers (GstH264SliceHdr decode units).
28939 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28941 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28942 h264: detect new pictures from decode-units.
28943 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28944 of assuming frame boundaries when first_mb_in_slice is zero.
28946 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28948 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28949 h264: implement {start,end}_frame() hooks.
28950 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28951 that to create new VA context earlier and submit VA pictures to the
28952 HW for decoding as soon as possible. i.e. don't wait for the next
28953 frame to start decoding the previous one.
28955 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28957 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28958 h264: optimize scan for the second start code.
28959 Optimize scan for the second start code, on the next parse() call so that
28960 to avoid scanning again earlier bytes where we didn't find any start code.
28962 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28964 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28965 h264: add codec specific decoder unit.
28966 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28967 NAL unit header (GstH264NalUnit) and additional parsed header info.
28968 Besides, we now parse headers as early as in the _parse() function so
28969 that to avoid un-necessary creation of sub-buffers in _decode() for
28970 NAL units that are not slices.
28971 This is a performance win by ~+1.1% only.
28973 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28975 * gst/vaapi/gstvaapisink.c:
28976 vaapisink: handle sub video-buffers.
28977 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28978 for non raw YUV cases. Make sure vaapisink now understands those buffers.
28980 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28982 * gst/vaapi/gstvaapidecode.c:
28983 vaapidecode: use gst_vaapi_decoder_get_codec_state().
28984 Directly use the GstVideoCodecState associated with the VA decoder
28985 instead of parsing caps again.
28986 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28987 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28989 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28991 * gst/vaapi/gstvaapidecode.c:
28992 vaapidecode: use more standard helpers.
28993 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28996 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28998 * gst/vaapi/gstvaapidecode.c:
28999 * gst/vaapi/gstvaapidecode.h:
29000 vaapidecode: move to GstVideoDecoder base class.
29001 Make vaapidecode derive from the standard GstVideoDecoder base element
29002 class. This simplifies the code to the strict minimum for the decoder
29003 element and makes it easier to port to GStreamer 1.x API.
29004 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29005 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29007 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29009 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29010 jpeg: initial port to new GstVaapiDecoder API
29012 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29014 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29015 vc1: initial port to new GstVaapiDecoder API
29017 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29019 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29020 h264: initial port to new GstVaapiDecoder API
29022 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29024 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29025 mpeg4: initial port to new GstVaapiDecoder API
29027 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29029 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29030 mpeg2: initial port to new GstVaapiDecoder API.
29032 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29034 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29035 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29036 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29037 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29038 * gst-libs/gst/vaapi/gstvaapiprofile.c:
29039 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29040 decoder: use GstVideoCodecState.
29041 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
29042 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
29043 it possible to drop picture size (width, height) information, framerate
29044 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
29045 and interlace mode (is_interlaced field).
29046 This is a new API with backwards compatibility maintained. In particular,
29047 gst_vaapi_decoder_get_caps() is still available.
29048 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29051 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29053 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29054 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29055 * tests/test-decode.c:
29056 * tests/test-subpicture.c:
29057 decoder: update gst_vaapi_decoder_get_surface() semantics.
29058 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
29059 API. That is, return a GstVaapiDecoderStatus and the decoded surface
29060 as a handle to GstVaapiSurfaceProxy in parameter.
29061 This is an API/ABI change.
29063 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29065 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29066 decoder: use standard helper functions.
29067 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
29068 whenever necessary.
29070 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29072 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29073 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29074 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29075 decoder: expose new parse/decode API.
29076 Introduce new decoding process whereby a GstVideoCodecFrame is created
29077 first. Next, input stream buffers are accumulated into a GstAdapter,
29078 that is then passed to the _parse() function. The GstVaapiDecoder object
29079 accumulates all parsed units and when a complete frame or field is
29080 detected, that GstVideoCodecFrame is passed to the _decode() function.
29081 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
29082 process was successful.
29084 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29086 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29087 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29088 decoder: add {start,end}_frame() hooks.
29089 The start_frame() hook is called prior to traversing all decode-units
29090 for decoding. The unit argument represents the first slice in the frame.
29091 Some codecs (e.g. H.264) need to wait for the first slice in order to
29092 determine the actual VA context parameters.
29094 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29096 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29097 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29098 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29099 decoder: add new GstVaapiDecoder API.
29100 Split decoding process into two steps: (i) parse incoming bitstreams
29101 into simple decoder-units until the frame or field is complete; and
29102 (ii) decode the whole frame or field at once.
29103 This is an ABI change.
29105 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29107 * gst-libs/gst/vaapi/Makefile.am:
29108 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29109 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29110 decoder: add new "decoder-frame" object.
29111 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
29112 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
29113 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
29114 as the user-data member element.
29115 This is a libgstvaapi internal object.
29117 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29119 * gst-libs/gst/vaapi/Makefile.am:
29120 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
29121 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29122 decoder: add new "decoder-unit" object.
29123 Introduce GstVaapiDecoderUnit which represents a fragment of the source
29124 stream to be decoded. For instance, a decode-unit will be a NAL unit for
29125 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
29127 This is a libgstvaapi internal object.
29129 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29131 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29132 Port GstVaapiFrameStore to GstVaapiMiniObject.
29134 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29136 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29137 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29138 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29139 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29140 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29141 Port codec objects to GstVaapiMiniObject.
29143 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29145 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29146 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29147 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29148 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29149 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29150 * gst/vaapi/gstvaapidecode.c:
29151 * gst/vaapi/gstvaapipluginbuffer.c:
29152 * tests/test-decode.c:
29153 * tests/test-subpicture.c:
29154 surfaceproxy: port to GstVaapiMiniObject.
29155 GstVaapiSurfaceProxy does not use any particular functionality from
29156 GObject. Actually, it only needs a basic object type with reference
29158 This is an API and ABI change.
29160 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29162 * gst-libs/gst/vaapi/Makefile.am:
29163 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29164 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29165 Add GstVaapiMiniObject.
29166 Introduce a new reference counted object that is very lightweight and
29167 also provides flags and user-data functionalities. Initialization and
29168 finalization times are reduced by up to a factor 5x vs GstMiniObject
29169 from GStreamer 0.10 stack.
29170 This is a libgstvaapi internal object.
29172 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29174 * tests/Makefile.am:
29175 * tests/test-decode.c:
29176 * tests/test-mpeg4.c:
29177 * tests/test-mpeg4.h:
29178 tests: add test for MPEG-4:2 decoding.
29180 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29182 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29183 h264: initialize VA context before allocating the first slice.
29184 Fix decode_slice() to ensure a VA context exists prior to creating a
29185 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29186 context ID. i.e. the latter was not initialized, thus causing failures
29187 on Cedar Trail for example.
29189 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29192 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29193 If GST_PLUGIN_PATH environment variable exists and points to a valid
29194 directory, then use it as the system installation path for gst-vaapi
29196 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29198 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29201 configure: downgrade glib required version to 2.28.
29203 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29205 * gst-libs/gst/vaapi/glibcompat.h:
29206 * gst/vaapi/gstvaapi.c:
29207 libs: fix compatibility with glib 2.28.
29208 Always prefer non deprecated APIs by default and provide compatibility
29209 glue for older glib versions when necessary.
29211 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29213 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29214 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29215 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29216 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29217 libs: use glib >= 2.32 semantics for mutexes.
29218 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29219 and termination. Basically, the new mutex objects can be used as static
29220 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29222 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29224 * gst-libs/gst/vaapi/Makefile.am:
29225 libs: only export gst_vaapi_*() symbols.
29226 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29227 library and the system-provided one, mainly used by videoparses/. Now,
29228 only symbols with the gst_vaapi_* prefix will be exported, if they are
29229 not marked as "hidden" to libgstvaapi.
29231 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29233 * gst/vaapi/gstvaapiuploader.c:
29234 vaapiupload: reset direct-rendering to zero when changing caps.
29235 Make sure to reset direct-rendering flag to zero when caps are changed,
29236 and only derive it to one when the next checks succeed.
29238 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29240 * gst/vaapi/gstvaapiupload.c:
29241 vaapiupload: fix sink caps to report the supported set of YUV caps.
29242 Try to allocate the GstVaapiUploader helper object prior to listing the
29243 supported image formats. Otherwise, only a single generic caps is output
29244 with no particular pixel format referenced in there.
29246 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29248 * gst/vaapi/gstvaapiupload.c:
29249 * gst/vaapi/gstvaapiupload.h:
29250 vaapiupload: use new GstVaapiUploader helper.
29251 Use GstVaapiUploader helper that automatically handles direct rendering
29252 mode, thus making the "direct-rendering" property obsolete and hence it
29254 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29255 really well supported and it could actually trigger degraded performance.
29256 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29258 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29260 * gst/vaapi/gstvaapisink.c:
29261 * gst/vaapi/gstvaapiuploader.c:
29262 * gst/vaapi/gstvaapiuploader.h:
29263 vaapisink: compute and expose the supported set of YUV caps.
29264 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29265 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29266 of supported YUV caps as source (for images). This function actually
29267 tries to zero and upload each image to a 64x64 test surface. Of course,
29268 this relies on VA drivers to not claim success if vaPutImage() is not
29269 correctly supported.
29271 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29274 * gst/vaapi/Makefile.am:
29275 * gst/vaapi/gstvaapisink.c:
29276 * gst/vaapi/gstvaapisink.h:
29277 * gst/vaapi/gstvaapiuploader.c:
29278 * gst/vaapi/gstvaapiuploader.h:
29279 vaapisink: add support for raw YUV buffers.
29280 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29281 It is up to the caller to negotiate source caps (for images) and output
29282 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29283 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29284 GstBuffer on sink pads.
29285 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29286 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29288 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29290 * gst-libs/gst/vaapi/gstvaapiimage.c:
29291 image: fix GstVaapiImage map and unmap.
29292 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29293 structure correctly filled in if the image was already mapped.
29294 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29295 was already unmapped.
29297 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29300 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29301 videobuffer: fix memory leak for surface and image.
29302 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29303 thus resulting on actual memory leak of GstVaapiImage when using them
29304 for downloads/uploads from VA surfaces and more specifically surfaces
29305 when the pipeline is shutdown. i.e. vaTerminate() was never called
29306 because the resources were not unreferenced, and thus not deallocated
29308 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29310 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29315 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29317 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29318 h264: fix picture size in macroblocks.
29319 The picture size signalled by sps->{width,height} is the actual size with
29320 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29321 and pic_height_in_map_units_minus1. VA driver expects that original size,
29323 There is another issue pending: frame cropping information needs to be
29326 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29328 * gst-libs/gst/codecparsers/Makefile.am:
29329 codecparsers: always build parserutils first.
29330 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29331 This is needed since that's the common dependency for actual codec
29332 parsers (gstvc1parser.c for instance).
29334 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29336 * gst-libs/gst/codecparsers/Makefile.am:
29337 codecparsers: always build the VC-1 parser library.
29338 ... this is useful to make sure pixel-aspect-ratio and framerate
29339 information are correctly parsed since we have no means to detect
29340 that at configure time.
29342 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29345 * gst-libs/gst/codecparsers/Makefile.am:
29346 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29347 mpeg2: fix PAR calculation from commit bd11bae.
29348 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29349 correct PAR values. While doing so, require a newer version of the
29350 bitstream parser library.
29351 Note: it may be necessary to also parse the Sequence_Display_Extension()
29353 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29356 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29358 * gst-libs/gst/vaapi/Makefile.am:
29359 Fix build with the GNU gold linker.
29360 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29361 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29363 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29366 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29367 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29368 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29369 wayland: port to 1.0 version of the protocol.
29370 This patch updates to relect the 1.0 version of the protocol. The main
29371 changes are the switch to wl_registry for global object notifications
29372 and the way that the event queue and file descriptor is processed.
29373 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29375 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29377 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29378 h264: fix incorrect integration of previous commit (4d31e1e).
29379 git am got confused somehow, though the end result doesn't change at
29380 all since we require both SPS and PPS to be parsed prior to decoding
29383 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29385 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29386 h264: start decoding slices after first SPS/PPS activation.
29387 Only start decoding slices when at least one SPS and PPS got activated.
29388 This fixes cases when a source represents a substream of another stream
29389 and no SPS and PPS was inserted before the first slice of the generated
29392 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29394 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29395 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29396 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29397 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29398 16 reference frames, thus including both fields.
29400 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29402 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29403 h264: fix interlaced stream decoding with MMCO.
29404 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29405 is equal to 1, i.e. when memory management control operations are used. In
29406 particular, when field_pic_flag is set to 0, the new reference flags shall
29407 be applied to both fields.
29409 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29411 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29412 h264: add initial support for interlaced streams.
29413 Decoded frames are only output when they are complete, i.e. when both
29414 fields are decoded. This also means that the "interlaced" caps is not
29415 propagated to vaapipostproc or vaapisink elements. Another limitation
29416 is that interlaced bitstreams with MMCO are unlikely to work.
29418 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29420 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29421 h264: split remove_reference_at() into finer units.
29422 Split remove_reference_at() into a function that actually removes the
29423 specified entry from the short-term or long-term reference picture array,
29424 and a function that sets reference flags to the desired value, possibly
29425 zero. The latters marks the picture as "unused for reference".
29427 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29429 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29430 decoder: fix gst_vaapi_picture_new_field() object type.
29431 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29432 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29433 shall generate a GstVaapiPictureH264 object.
29435 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29437 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29438 h264: add picture structure for reference picture marking process.
29439 Introduce new `structure' field to the H.264 specific picture structure
29440 so that to simplify the reference picture marking process. That local
29441 picture structure is derived from the original picture structure, as
29442 defined by the syntax elements field_pic_flag and bottom_field_flag.
29444 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29446 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29447 h264: introduce new frame store structure.
29448 The frame store represents a Decoded Picture Buffer entry, which can
29449 hold up to two fields. So far, the frame store is only used to hold
29452 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29454 * ext/codecparsers:
29455 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29456 73d6aab h264: fix rbsp_more_data() implementation
29457 25d04cf h264: fix error code for invalid size parsed in SPS
29458 84798e5 fix FSF address
29460 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29462 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29463 h264: minor clean-ups.
29464 Move DPB flush up if the current picture to decode is an IDR. Besides,
29465 don't bother to check for IDR pictures in dpb_add() function since an
29466 explicit DPB flush was already performed in this case.
29468 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29470 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29471 h264: simplify reference picture marking process.
29472 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29473 of maintaining them separately. This avoids refs/unrefs while making it
29474 possible to generate the list based on the actual picture structure.
29475 This also ensures that the list of generated ReferenceFrames[] actually
29476 matches what reference frames are available in the DPB. i.e. short_ref[]
29477 and long_ref[] entries are implied from the DPB, so there is no risk of
29478 having "dangling" references.
29480 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29482 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29483 h264: introduce per-field POC in GstVaapiPictureH264.
29484 Use the POC member available in the GstVaapiPicture base class and
29485 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29486 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29487 initialized to INT_MAX, so that to simplify picture POC calculation
29488 for non frame pictures.
29490 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29492 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29493 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29494 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29495 reference bits, thus simplifying the reference picture marking process
29496 to only track a single set of reference flags. Also introduce a new
29497 long_term_frame_idx member.
29499 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29501 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29502 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29504 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29506 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29507 h264: fill in GstVaapiPicture structure.
29508 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29510 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29512 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29513 h264: add vaapi_fill_picture() helper.
29514 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29515 to VAPictureH264 structure. This is preparatory work to get rid of the
29516 local VAPictureH264 member in GstVaapiPictureH264.
29518 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29520 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29521 h264: fix activation order of picture and sequence parameters.
29522 Delay ensure_context() until we actually need a VA context for allocating
29523 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29524 of a new picture parameter set occurs, thus also implying an activation
29525 of the related sequence parameter set.
29526 The most important thing was to drop the global pps and sps pointers since
29527 they may not have matched the currently activated picture parameter or
29528 sequence parameter sets at the specified decode point.
29529 Anoter positive side-effect is that this cleans up all occurrences of
29530 decode_current_picture() to only keep those useful in decode_picture(),
29531 before a new picture is allocated, or in decode_sequence_end() when
29532 an end-of-stream or end-of-sequence condition occurred.
29534 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29536 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29537 h264: fix scaling list generation.
29538 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29539 array was partially copied to the VAIQMatrixBufferH264. While we are
29540 at it, also improve bounds checking and avoid copying 8x8 scaling
29541 lists if transform_8x8_mode_flag is set to 0.
29543 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29545 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29546 h264: fix detection of picture boundaries.
29547 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29548 unit of a primary coded picture.
29550 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29552 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29553 h264: optimize handling of scaling lists.
29554 Don't copy scaling lists twice to an intermediate state. Rather, directly
29555 use the scaling lists from GstH264PPS since they would match those provided
29556 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29557 available in the bitstream.
29559 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29561 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29562 h264: simplify code when MMCO is 5.
29563 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29564 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29565 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29567 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29569 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29570 h264: fix MMCO-based reference picture marking process.
29571 Fix adaptive memory control decoded reference picture marking process
29572 implementation for operations 2 to 6, thus also fixing support for
29573 long-term reference pictures.
29575 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29577 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29578 h264: move MMCO handlers out of the loop (cosmetics).
29579 This change only splits each individual MMCO handler into several functions
29580 dedicated for each operation. This is needed to perform further work later
29583 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29586 debian: fix make dist for packaging.
29587 bzip2 tarballs are now used, so update the deb.upstream dependencies
29588 to include dist-bzip2 instead of plain old dist, and use the correct
29589 tar extract options to handle that format.
29591 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29594 configure: generate bzip2 tarballs in ustar format by default.
29596 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29599 configure: bump glib required version to 2.31.2.
29600 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29601 rather than g_mutex_new() and g_cond_new() respectively.
29603 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29605 * gst/vaapi/gstvaapidecode.c:
29606 * gst/vaapi/gstvaapidecode.h:
29607 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29608 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29609 inside the structure they are locking.
29610 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29611 allocation functions.
29612 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29613 initialise inside the GObject _init function and clear inside the _finalize
29614 which is guaranteed to only be called once and after the object is no longer
29617 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29619 * gst/vaapi/gstvaapidecode.c:
29620 vaapidecode: fix compiler warnings.
29621 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29622 during destruction of the element. Don't print out (uninitialised)
29623 error code when allocation of video buffer failed.
29625 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29627 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29628 h264: add flag to compile with strict DPB ordering mode.
29629 Allow build with strict DPB ordering mode whereby evicted entries
29630 are replaced by the next entries, in order instead of optimizing
29631 it away with the last entry in the DPB.
29632 This is only useful for debugging purpose, against a reference SW
29633 decoder for example.
29635 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29638 h264: drop extra code covered by built-in codecparsers.
29639 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29640 a newer version of codecparsers/ are used if the system provided one is
29641 now recent enough to have those required extensions.
29643 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29645 * gst-libs/gst/codecparsers/Makefile.am:
29646 codecparsers: fix generation of symlinks.
29647 Try to improve dependencies while generating symlinks to externally
29648 maintained copy of codecparsers (derived from upstream git master
29651 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29653 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29654 vc1: use framerate information from bitstream parser.
29656 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29658 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29659 vc1: use pixel-aspect-ratio from bitstream parser.
29660 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29661 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29663 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29665 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29666 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29667 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29668 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29670 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29673 * gst-libs/gst/codecparsers/Makefile.am:
29674 codecparsers: h264: use submodule sources.
29675 Use newer sources from the codecparsers/ submodule for
29676 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29677 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29679 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29683 * gst-libs/gst/codecparsers/Makefile.am:
29684 * gst-libs/gst/codecparsers/gstjpegparser.c:
29685 * gst-libs/gst/codecparsers/gstjpegparser.h:
29686 * gst-libs/gst/vaapi/Makefile.am:
29687 codecparsers: jpeg: use submodule sources.
29689 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29696 * ext/codecparsers:
29697 Add codecparsers submodule.
29699 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29702 .gitignore: updates.
29704 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29707 autogen: fix check for gtkdocize and autoreconf.
29708 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29709 script would fail to report that correctly because test -z was not passed
29710 any argument (empty string "" in this case).
29712 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29714 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29715 h264: use pixel-aspect-ratio from SPS header.
29716 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29717 from the sequence headers.
29718 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29719 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29721 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29723 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29724 h264: add decode_nalu() helper function.
29725 Split decode_buffer() into the core infrastructure that determines
29726 the NAL units contained in the adapter and the actual function that
29727 decodes the NAL unit.
29729 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29731 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29732 h264: fix end-of-stream conditions (flush).
29733 Decode pending data in the adapter prior to processing the actual
29734 code for end-of-stream.
29736 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29738 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29739 mpeg2: add decode_packet() helper function.
29740 Split decode_buffer() into the core infrastructure that determines
29741 the packets contained in the adapter and the actual function that
29742 decodes the packet data.
29744 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29746 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29747 mpeg2: fix end-of-stream conditions (flush).
29748 Decode pending data in the adapter prior to processing the actual
29749 code for end-of-stream. Initial code from Feng Yuan.
29751 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29753 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29754 mpeg2: fix memory leak of empty packets.
29755 Fix memory leakage of empty packets, i.e. packets that only contain
29756 the start code prefix. In particular, free empty user-data packets.
29757 Besides, the codec parser will already fail gracefully if the packet
29758 to parse does not have the minimum required size. So, we can also
29759 completely drop the block of code that used to handle packets of size 4
29760 (including the start code).
29762 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29764 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29765 mpeg2: fix return value for "no-data" conditions.
29766 Fix return value when the second scan for start code fails. This means
29767 there is not enough data to determine the full extents of the current
29768 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29769 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29771 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29773 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29774 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29775 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29776 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29777 or with a size equals to zero. In this case, that buffer is simply
29778 skipped and the function returns TRUE. A NULL buffer argument still
29779 marks the end-of-stream.
29781 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29783 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29784 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29785 decoder: drop unused functions.
29787 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
29789 * gst/vaapi/gstvaapidecode.c:
29790 vaapidecode: flush buffers when receiving EOS.
29791 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29793 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29795 * debian.upstream/Makefile.am:
29796 debian: fix make dist for packaging.
29798 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29800 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29801 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29802 wayland: cosmetics (remove tabs).
29804 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
29806 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29807 wayland: add support for windowed mode.
29808 Rather than always making the surface fullscreen instead implement the
29809 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29810 fullscreen on not depending on that.
29811 Reviewed-by: Joe Konno <joe.konno@intel.com>
29812 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29814 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29817 Bump version for development.
29819 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29823 Fix and document build dependencies better.
29825 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29827 * debian.upstream/control.in:
29828 debian: fix GStreamer build dependencies.
29830 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29833 * debian.upstream/control.in:
29834 debian: fix Wayland build dependencies.
29836 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29838 * debian.upstream/control.in:
29839 debian: fix conditional build of packages.
29840 Make it still possible to build package even if one of the build dependencies
29841 for a specific video backend is not available.
29843 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29845 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29846 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29847 utils: drop unused GLX helpers.
29848 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29849 extensions since they are not used throughout gstreamer-vaapi.
29851 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29853 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29854 utils: fix build with <GL/glext.h> version >= 85.
29855 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29856 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29857 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29858 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29859 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29860 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29861 newer versions of the <GL/glext.h> header.
29863 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29866 configure: update VA-API version requirements.
29867 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29869 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29871 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29872 h264: review and report errors accordingly.
29873 Use GST_ERROR() to report real errors instead of hiding them into
29876 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29878 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29879 h264: exclusively use GstAdapter, drop sub-buffer hack.
29880 Maintaining the sub-buffer is rather suboptimal especially since we
29881 were also maintaining a GstAdapter. Now, we only use the GstAdapter
29882 thus requiring minor extra parsing when receiving avcC buffers.
29884 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29889 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29894 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29896 * debian.upstream/gstreamer-vaapi.install.in:
29897 debian: fix packaging on recent Ubuntu platforms.
29898 Use explicit GStreamer plugins path.
29900 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29902 * docs/reference/libs/libs-docs.xml.in:
29903 * docs/reference/libs/libs.core.types:
29904 docs: fix build for make dist.
29906 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
29908 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29909 wayland: set opaque region for YUV surface.
29910 This allows the compositor to optimize redraws and cull away changes
29911 obscured by the video surface.
29912 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29914 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29917 configure: fix check for libva-glx and libva-drm.
29919 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29921 * gst-libs/gst/vaapi/glibcompat.h:
29922 glibcompat: add replacement for g_cond_wait_until().
29924 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29926 * gst/vaapi/gstvaapidecode.c:
29927 * gst/vaapi/gstvaapidownload.c:
29928 * gst/vaapi/gstvaapipostproc.c:
29929 * gst/vaapi/gstvaapisink.c:
29930 * gst/vaapi/gstvaapiupload.c:
29931 plugins: include "sysdeps.h" instead of "config.h".
29933 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29935 * gst-libs/gst/codecparsers/gstjpegparser.c:
29936 codecparsers: jpeg: add missing includes.
29938 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29940 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29941 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29942 * gst/vaapi/gstvaapidecode.c:
29943 vaapidecode: don't reset decoder if codec type is the same.
29944 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29945 if the underlying codec type actually changed. This makes it possible
29946 to be more tolerant with certain MPEG-2 streams that get parsed to
29947 form caps that are compatible with the previous state but minor changes
29950 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29952 * gst/vaapi/gstvaapidecode.c:
29953 vaapidecode: simplify codec lookup from caps.
29954 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29955 the specified caps. Don't globally expose this function since this is
29956 really trivial and only used in the vaapidecode element.
29958 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29960 * gst/vaapi/gstvaapidecode.c:
29961 * gst/vaapi/gstvaapidecode.h:
29962 vaapidecode: improve "no free surface" conditions.
29963 Previously, vaapidecode would wait up to one second until a free surface
29964 is available, or it aborts decoding. Now, vaapidecode waits until the
29965 last decoded surface was to be presented, plus one second. Besides, end
29966 times are now expressed relative to the monotonic clock.
29968 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29970 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29971 * gst/vaapi/gstvaapidecode.c:
29972 decoder: propagate buffer duration downstream.
29974 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29976 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29977 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29978 surfaceproxy: add "duration" property.
29980 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29982 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29983 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29984 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29985 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29986 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29987 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29988 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29989 decoder: cope with new GstVaapiContextInfo based API.
29990 Update decoders to report the maximum number of reference frames to use.
29992 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29994 * gst-libs/gst/vaapi/gstvaapicontext.c:
29995 context: JPEG codec does not need any reference frame.
29997 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29999 * gst-libs/gst/vaapi/gstvaapicontext.c:
30000 * gst-libs/gst/vaapi/gstvaapicontext.h:
30001 context: allow number of reference frames to be set.
30002 Make it possible to specify the maximum number of references to use within
30003 a single VA context. This helps reducing GPU memory allocations to the useful
30004 number of references to be used.
30006 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30008 * gst/vaapi/gstvaapipostproc.c:
30009 vaapipostproc: fix deinterlace-{mode,method} types definition.
30011 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30013 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30014 mpeg4: fix debug info for unsupported profile.
30016 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30018 * gst-libs/gst/vaapi/gstvaapicontext.c:
30019 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30020 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30021 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30022 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30023 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30024 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30025 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30026 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30027 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30028 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30029 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30030 * gst-libs/gst/vaapi/gstvaapiimage.c:
30031 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30032 * gst-libs/gst/vaapi/gstvaapiobject.c:
30033 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30034 * gst-libs/gst/vaapi/gstvaapisurface.c:
30035 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30036 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30037 * gst-libs/gst/vaapi/gstvaapitexture.c:
30038 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30039 * gst-libs/gst/vaapi/gstvaapivalue.c:
30040 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30041 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30042 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30043 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30044 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30045 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30046 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30047 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30048 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30049 libs: fix build in strict ISO C mode.
30051 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30053 * gst/vaapi/gstvaapi.c:
30054 * gst/vaapi/gstvaapidecode.c:
30055 * gst/vaapi/gstvaapidownload.c:
30056 * gst/vaapi/gstvaapipostproc.c:
30057 * gst/vaapi/gstvaapisink.c:
30058 * gst/vaapi/gstvaapiupload.c:
30059 plugins: fix build in strict ISO C mode.
30061 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30063 * pkgconfig/gstreamer-vaapi-glx.pc.in:
30064 * pkgconfig/gstreamer-vaapi-x11.pc.in:
30065 * pkgconfig/gstreamer-vaapi.pc.in:
30066 pkgconfig: fix dependencies and slightly improve description.
30067 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
30068 descriptions with clearer renderer names.
30070 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
30072 * gst/vaapi/gstvaapidecode.c:
30073 vaapidecode: acquire lock only if the mutex exists.
30074 When playback stops the GstVaapiDecode object is reset into a clean
30075 state. However, surfaces may still be referenced by library users and
30076 unreferencing them after the reset triggers an access to an unset mutex.
30077 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30079 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30081 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30082 decoder: drop extraneous return for void function.
30084 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30086 * gst-libs/gst/vaapi/gstvaapiimage.c:
30087 image: don't use (void *) pointer arithmetic.
30089 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
30091 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30092 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30093 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30094 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30095 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30096 * gst-libs/gst/vaapi/gstvaapiprofile.h:
30097 * gst-libs/gst/vaapi/gstvaapisurface.h:
30098 * gst-libs/gst/vaapi/gstvaapitypes.h:
30099 * gst/vaapi/gstvaapipostproc.h:
30100 Do not forward declare enums.
30101 Forward declaring enums is not allowed by the C standard and aborts
30102 compilation if the header file is included in a C++ project.
30103 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30105 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30108 configure: fix check for VA/DRM API.
30110 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30112 * gst/vaapi/gstvaapisink.c:
30113 vaapisink: fix calculation of window size.
30114 If either dimension is out-of-bounds, then scale window to fit the
30115 display size, even if the output is to be rotated. Use the standard
30116 gst_video_sink_center_rect() function to center and scale the window
30117 wrt. the outer (display) bounds.
30119 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
30121 * gst/vaapi/gstvaapisink.c:
30122 * gst/vaapi/gstvaapisink.h:
30123 vaapisink: add video rotation support.
30124 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30126 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30128 * gst/vaapi/gstvaapipluginutil.h:
30129 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
30130 This macro helps swapping variables while maintaining the correct underlying
30131 and primitive type.
30133 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30135 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30136 display: fix display aspect ratio when display is rotated.
30138 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30141 * gst-libs/gst/vaapi/Makefile.am:
30142 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30143 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30144 display: fix physical display size when display is rotated.
30146 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30148 * gst-libs/gst/vaapi/gstvaapivalue.c:
30149 display: fix GstVaapiRotation enumeration of values.
30151 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30153 * docs/reference/libs/libs-docs.xml.in:
30154 * docs/reference/libs/libs-sections.txt:
30155 * gst-libs/gst/vaapi/Makefile.am:
30156 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30157 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30158 * gst/vaapi/gstvaapidecode.c:
30159 * gst/vaapi/gstvaapidownload.c:
30160 * gst/vaapi/gstvaapipostproc.c:
30161 * gst/vaapi/gstvaapisink.c:
30162 * gst/vaapi/gstvaapiupload.c:
30163 vaapisink: drop obsolete GstVaapiVideoSink interface.
30164 This interface was deprecated since 0.3.x series when the GstVideoContext
30165 interface was added to the main GStreamer APIs.
30167 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30169 * gst/vaapi/gstvaapisink.c:
30170 * gst/vaapi/gstvaapisink.h:
30171 vaapisink: automatically detect overlay rendering mode.
30172 Retain the VA surface until another surface is to be displayed only
30173 if VA display rendering mode is determined to be "overlay" mode.
30175 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30177 * gst/vaapi/gstvaapisink.c:
30178 * gst/vaapi/gstvaapisink.h:
30179 vaapisink: retain VA surface until another one is displayed.
30180 Keep VA surface proxy associated with the surface that is currently
30181 being displayed. This makes sure that surface is not released back
30182 to the pool of surfaces free to use for decoding. This is necessary
30183 with VA driver implementations that support rendering to an overlay
30184 pipe. Otherwise, there could be cases where we are decoding into a
30185 surface that is being displayed, hence some flickering.
30187 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30189 * gst/vaapi/gstvaapisink.h:
30190 vaapisink: fix build with older toolchains.
30191 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30193 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30195 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30196 display: partially revert 8ebe4d6.
30197 Don't try to fix up the initial values, this could make things worse.
30198 Simply assume the driver does not support the capability in this case.
30200 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30202 * tests/test-display.c:
30203 tests: dump VA display properties.
30205 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30207 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30208 display: fix validation process of properties during discovery.
30209 Some VA drivers (e.g. EMGD) can have completely random values for initial
30210 display attributes. So, try to improve the discovery process to check the
30211 initial display attribute values actually fall within valid bounds. If not,
30212 try to reset those to some sensible values like the default value reported
30213 through vaQueryDisplayAttributes().
30215 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30217 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30218 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30219 display: add color balance properties.
30220 Add support for hue, saturation, brightness and contrast attributes.
30222 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30224 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30225 display: initialize default attribute values.
30226 Ensure the display attribute is actually supported by trying to retrieve
30227 its current value during GstVaapiDisplay creation.
30229 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30231 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30232 display: raise "notify" for property changes.
30234 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30236 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30237 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30238 display: expose display attributes as GObject properties.
30239 Expose VA display "render-mode" and "rotation" attributes as standard
30240 GObject properties.
30242 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30244 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30245 display: install properties in batch.
30246 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30247 It is useful to maintain properties as GParamSpec so that to be able to raise
30248 "notify" signals by id instead of by name in the future.
30250 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30252 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30253 display: fix gst_vaapi_display_has_property().
30254 Append the "render-mode" and "rotation" properties, should they be supported
30255 by the underlying VA driver.
30257 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30259 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30260 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30261 * gst-libs/gst/vaapi/gstvaapitypes.h:
30262 * gst-libs/gst/vaapi/gstvaapiutils.c:
30263 * gst-libs/gst/vaapi/gstvaapiutils.h:
30264 * gst-libs/gst/vaapi/gstvaapivalue.c:
30265 * gst-libs/gst/vaapi/gstvaapivalue.h:
30266 display: add support for rotation modes.
30267 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30269 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30271 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30272 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30273 * gst-libs/gst/vaapi/gstvaapitypes.h:
30274 * gst-libs/gst/vaapi/gstvaapivalue.c:
30275 * gst-libs/gst/vaapi/gstvaapivalue.h:
30276 display: add support for rendering modes.
30277 A rendering mode can be "overlay" or "texture"'ed blit.
30278 The former mode implies that a VA surface used for rendering can't be
30279 re-used right away for decoding, so the sink shall make provisions to
30280 retain the associated surface proxy until the next surface is to be
30282 The latter mode implies that the VA surface is implicitly copied to an
30283 intermediate backing store, or back buffer of a frame buffer, so the
30284 associated surface proxy can be disposed right away.
30286 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30288 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30289 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30290 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30291 display: add initial support for display attributes.
30292 The VA display attributes are mapped to properties so that to maintain the
30293 GStreamer terminology. Properties are to be identified by name, but internal
30294 functions are available to lookup the property by the actual VA display
30297 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30299 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30300 jpeg: fix end-of-image (EOI) handler.
30301 decode_current_picture() was converted to return a gboolean instead
30302 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30303 loop as expected, or could cause an error instead.
30304 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30306 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30308 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30309 mpeg2: include start code into VA slice data buffer.
30310 Integrate the start code prefix in the slice data buffer that is submitted
30311 to the hardware. VA-API specifies that slice_data_offset is the offset to
30312 the first byte of slice data. And, for MPEG-2, slice() data begins with
30313 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30315 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30318 autogen: fix configure script generation when srcdir != builddir.
30319 This patch allows for regenerating the configure script from a build
30320 directory that is not the actual source directory.
30321 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30323 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30326 configure: use new libtool syntax.
30327 This now requires libtool >= 2.2 to regenerate the configure script.
30328 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30330 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30332 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30333 decoder: use g_object_notify_by_pspec().
30334 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30335 avoid a property name lookup. i.e. this makes notifications faster to
30336 the `vaapidecode' element.
30337 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30339 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30341 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30342 wayland: handle de-interlacing flags.
30343 VA/Wayland API was updated to allow flags for bob deinterlacing.
30344 More elaborated filters will require a complete VA/VPP pipeline.
30346 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30348 * gst-libs/gst/codecparsers/gstjpegparser.c:
30349 jpeg: fix default quantization tables.
30350 Two elements in the luminance quantization table were wrong. So,
30351 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30352 in zig-zag order from the standard ones (Tables K.1 and K.2).
30354 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30356 * gst-libs/gst/codecparsers/gstjpegparser.c:
30357 jpeg: compute default Huffman tables.
30358 ... instead of having them pre-calculated. This saves around 1.5 KB
30359 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30360 to do more work. Though, the client application may have to call that
30361 function at most once, only.
30363 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30365 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30366 display: drop VAProfileNone entries from debug messages.
30368 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30370 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30371 display: query for supported display attributes.
30372 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30374 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30376 * gst-libs/gst/vaapi/gstvaapiutils.c:
30377 * gst-libs/gst/vaapi/gstvaapiutils.h:
30378 utils: add string_of_VADisplayAttributeType() helper.
30379 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30381 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30383 * gst/vaapi/gstvaapisink.c:
30384 vaapisink: handle VA/DRM API.
30385 This is not useful in practice but for raw performance evaluation when
30386 the sink is invoked with display=drm sync=false. fakesink could also be
30389 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30391 * gst/vaapi/Makefile.am:
30392 * gst/vaapi/gstvaapipluginutil.c:
30393 plugins: add support for headless pipelines.
30395 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30397 * tests/Makefile.am:
30399 * tests/test-display.c:
30400 * tests/test-windows.c:
30401 tests: add support for headless decoding.
30403 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30407 * debian.upstream/Makefile.am:
30408 * debian.upstream/control.in:
30409 * debian.upstream/libgstvaapi-drm.install.in:
30410 * gst-libs/gst/vaapi/Makefile.am:
30411 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30412 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30413 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30414 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30415 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30416 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30417 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30418 * pkgconfig/Makefile.am:
30419 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30420 Add initial support for VA/DRM.
30422 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30425 * gst-libs/gst/vaapi/Makefile.am:
30426 Fix build without X11 (again).
30427 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30428 files list wrt. x11, glx and wayland backends.
30430 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30433 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30434 * gst-libs/gst/vaapi/gstvaapicompat.h:
30435 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30436 jpeg: update to the latest VA-API changes (0.32.1+).
30438 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30440 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30441 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30442 * gst/vaapi/gstvaapisink.c:
30443 wayland: implement display ::get_size*() hooks.
30445 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30447 * gst/vaapi/gstvaapipluginutil.c:
30448 plugins: prefer X11 rendering over GLX.
30449 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30450 for rendering instead of texturing.
30452 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30454 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30455 wayland: use scale fullscreen method.
30456 This makes the compositor scale the surface to fit and preserves aspect
30458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30460 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30462 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30463 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30464 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30466 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30468 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30469 wayland: fix double disconnect of display.
30471 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30473 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30474 wayland: mangle display name for cache lookups.
30476 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30479 * debian.upstream/Makefile.am:
30480 * debian.upstream/control.in:
30481 * debian.upstream/libgstvaapi-wayland.install.in:
30482 * pkgconfig/Makefile.am:
30483 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30484 wayland: add packaging files.
30486 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30488 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30489 * gst/vaapi/gstvaapipluginutil.c:
30490 * gst/vaapi/gstvaapisink.c:
30491 * pkgconfig/Makefile.am:
30492 Fix build without X11.
30494 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30496 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30497 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30498 * gst/vaapi/Makefile.am:
30499 * gst/vaapi/gstvaapipluginutil.c:
30500 * gst/vaapi/gstvaapisink.c:
30501 plugins: add support for Wayland.
30503 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30505 * tests/Makefile.am:
30507 * tests/test-display.c:
30508 * tests/test-windows.c:
30509 tests: add support for Wayland.
30511 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30515 * gst-libs/gst/vaapi/Makefile.am:
30516 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30517 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30518 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30519 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30520 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30521 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30522 Add initial support for VA/Wayland.
30523 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30525 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30527 * gst/vaapi/gstvaapipluginbuffer.c:
30528 plugins: fix creation of video buffer from surface proxy.
30529 Fix a regression introduced with commit 8ef490a.
30531 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30533 * gst/vaapi/gstvaapipluginbuffer.c:
30534 * gst/vaapi/gstvaapipluginutil.c:
30535 plugins: use new display types more.
30536 In particular, simplify gst_vaapi_reply_to_query() with display types.
30537 Likewise for creating new video buffers.
30539 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30541 * gst/vaapi/gstvaapidecode.c:
30542 * gst/vaapi/gstvaapidownload.c:
30543 * gst/vaapi/gstvaapipluginutil.c:
30544 * gst/vaapi/gstvaapipluginutil.h:
30545 * gst/vaapi/gstvaapipostproc.c:
30546 * gst/vaapi/gstvaapisink.c:
30547 * gst/vaapi/gstvaapiupload.c:
30548 plugins: fix display type selection and propagation.
30549 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30550 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30551 queries from vaapidecode shall get a valid answer from vaapisink.
30553 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30555 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30556 display: fix destruction of mutex.
30558 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30560 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30561 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30562 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30563 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30564 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30565 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30566 * gst/vaapi/gstvaapipluginutil.c:
30567 * gst/vaapi/gstvaapipluginutil.h:
30568 * gst/vaapi/gstvaapisink.c:
30569 display: add display types.
30570 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30571 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30572 type to "any", and add a "display-type" attribute.
30574 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30576 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30577 display: use prefixed display names for cache lookups.
30578 This improves display name comparisons by always allocating a valid display
30579 name. This also helps to disambiguate lookups by name in the global display
30580 cache, should a new backend be implemented.
30582 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30584 * gst/vaapi/gstvaapipluginutil.h:
30585 plugins: declare helper functions as internal.
30587 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30589 * docs/reference/libs/libs-sections.txt:
30590 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30591 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30592 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30593 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30594 * gst/vaapi/Makefile.am:
30595 * gst/vaapi/gstvaapidecode.c:
30596 * gst/vaapi/gstvaapidownload.c:
30597 * gst/vaapi/gstvaapipluginbuffer.c:
30598 * gst/vaapi/gstvaapipluginbuffer.h:
30599 * gst/vaapi/gstvaapipostproc.c:
30600 * gst/vaapi/gstvaapiupload.c:
30601 videobuffer: drop deprecated functions.
30602 Move video buffer creation routines to plugin elements. That exclusively
30603 uses *_typed_new*() variants.
30605 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30607 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30608 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30609 videobuffer: mark video buffer creation routines as deprecated.
30610 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30611 plugin elements. So deprecate any explicit creation routines that are not the
30612 new *_typed_new*() variants.
30614 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30616 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30617 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30618 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30619 videobuffer: factor out base and GLX implementations.
30620 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30621 This avoids duplication of code, and makes it possible to further implement
30622 generic video buffer creation routines that automatically map to base or GLX
30625 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30627 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30628 utils: fix gl_create_context() with parent context set.
30629 If GLX window was created from a foreign Display, then that same Display shall
30630 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30631 will now use the same Display that the parent, if available.
30632 This fixes cluttersink with the Intel GenX VA driver.
30634 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30636 * gst/vaapi/gstvaapidecode.c:
30637 * gst/vaapi/gstvaapidownload.c:
30638 * gst/vaapi/gstvaapipluginutil.c:
30639 * gst/vaapi/gstvaapipluginutil.h:
30640 * gst/vaapi/gstvaapipostproc.c:
30641 * gst/vaapi/gstvaapisink.c:
30642 * gst/vaapi/gstvaapiupload.c:
30643 pluginutils: improve automatic display type selection.
30645 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30647 * gst/vaapi/gstvaapipluginutil.c:
30648 * gst/vaapi/gstvaapipluginutil.h:
30649 pluginutils: cosmetics (indentation fixes).
30651 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30654 configure: simplify video outputs summary.
30656 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30659 * gst/vaapi/gstvaapipluginutil.c:
30660 * gst/vaapi/gstvaapipluginutil.h:
30661 * gst/vaapi/gstvaapisink.c:
30662 * gst/vaapi/gstvaapisink.h:
30663 configure: drop check for --enable-vaapisink-glx.
30664 vaapisink is now built with support for multiple display types, whenever
30665 they are enabled. The new "display" attribute is used to select a particular
30668 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30671 * gst-libs/gst/vaapi/gstvaapicompat.h:
30672 * gst/vaapi/Makefile.am:
30673 * gst/vaapi/gstvaapidecode.c:
30674 * gst/vaapi/gstvaapidownload.c:
30675 * gst/vaapi/gstvaapipluginutil.c:
30676 * gst/vaapi/gstvaapipostproc.c:
30677 * gst/vaapi/gstvaapiupload.c:
30678 * tests/test-display.c:
30679 configure: drop check for --enable-vaapi-glx.
30680 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30681 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30682 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30683 we now default to use TFP+FBO.
30684 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30685 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30686 API shall be used as it covers most usages. e.g. AMD driver can't render to
30689 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30692 tests: allow GLX output, if available and selected.
30694 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30696 * tests/Makefile.am:
30699 * tests/test-decode.c:
30700 * tests/test-subpicture.c:
30701 * tests/test-surfaces.c:
30702 tests: use common display and window creation routines.
30703 Add new --output option to select the renderer. Use --list-outputs to
30704 print a list of supported renderers.
30706 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30708 * tests/Makefile.am:
30709 tests: move encoded bitstreams to libutils.la.
30711 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30713 * tests/Makefile.am:
30714 tests: build convenience library for common utilities.
30716 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30718 * tests/Makefile.am:
30719 * tests/test-display.c:
30720 tests: simplify build with various display options.
30722 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30725 configure: improve checks for X11.
30727 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30729 * tests/Makefile.am:
30730 configure: fix previous commit for GLX deps.
30732 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30735 * gst-libs/gst/vaapi/Makefile.am:
30736 configure: improve checks for GLX.
30738 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30741 * gst-libs/gst/vaapi/gstvaapicompat.h:
30742 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30743 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30744 * gst-libs/gst/vaapi/gstvaapiutils.h:
30745 Drop support for obsolete VA-API versions < 0.30.4.
30747 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30750 * gst-libs/gst/Makefile.am:
30751 * gst-libs/gst/gstutils_version.h.in:
30752 * gst/vaapi/gstvaapisink.c:
30753 vaapisink: drop checks for new APIs used by default.
30754 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30755 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30756 are no longer necessary.
30758 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30761 configure: cosmetics and some minor changes.
30762 - Better grouping of feature checks
30763 - Sort list of config files to generate
30765 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30768 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30769 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30770 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30771 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30772 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30773 * gst-libs/gst/vaapi/gstvaapiutils.h:
30774 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30775 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30776 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30778 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30780 * gst-libs/gst/vaapi/Makefile.am:
30781 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30782 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30783 Drop obsolete GstVaapiTSB.
30784 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30786 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30788 * docs/reference/libs/libs-sections.txt:
30789 docs: add missing entries for the JPEG decoder.
30791 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30794 * gst-libs/gst/vaapi/Makefile.am:
30795 * gst/vaapi/gstvaapidecode.c:
30796 * tests/test-decode.c:
30797 * tests/test-subpicture.c:
30798 Drop all references to USE_CODEC_PARSERS.
30800 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30804 * docs/reference/libs/libs-sections.txt:
30805 * docs/reference/libs/libs.core.types:
30806 * gst-libs/gst/vaapi/Makefile.am:
30807 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30808 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30809 * gst/vaapi/gstvaapidecode.c:
30810 * gst/vaapi/gstvaapidecode.h:
30811 * tests/test-decode.c:
30812 * tests/test-subpicture.c:
30813 Drop FFmpeg-based decoders.
30814 GStreamer codecparsers-based decoders are the only supported decoders now.
30815 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30817 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
30820 * debian.upstream/control.in:
30821 configure: bump glib required version to 2.28.
30822 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30824 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
30826 * gst/vaapi/gstvaapidecode.h:
30827 * gst/vaapi/gstvaapidownload.h:
30828 * gst/vaapi/gstvaapipostproc.h:
30829 * gst/vaapi/gstvaapisink.h:
30830 * gst/vaapi/gstvaapiupload.h:
30831 plugins: declare _get_type() functions as const.
30832 Declaring a function as const enables better optimization of calls to
30834 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30836 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
30838 * gst/vaapi/gstvaapidecode.c:
30839 * gst/vaapi/gstvaapidownload.c:
30840 * gst/vaapi/gstvaapipostproc.c:
30841 * gst/vaapi/gstvaapisink.c:
30842 * gst/vaapi/gstvaapiupload.c:
30843 plugins: use g_clear_object() wherever applicable.
30844 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30846 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
30848 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30849 * gst-libs/gst/vaapi/gstvaapicontext.h:
30850 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30851 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30852 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30853 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30854 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30855 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30856 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30857 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30858 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30859 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30860 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30861 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30862 * gst-libs/gst/vaapi/gstvaapiimage.h:
30863 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30864 * gst-libs/gst/vaapi/gstvaapiobject.h:
30865 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30866 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30867 * gst-libs/gst/vaapi/gstvaapisurface.h:
30868 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30869 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30870 * gst-libs/gst/vaapi/gstvaapitexture.h:
30871 * gst-libs/gst/vaapi/gstvaapivalue.h:
30872 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30873 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30874 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30875 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30876 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30877 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30878 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30879 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30880 libs: declare _get_type() functions as const.
30881 Declaring a function as const enables better optimization of calls
30883 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30885 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
30887 * gst-libs/gst/vaapi/glibcompat.h:
30888 * gst-libs/gst/vaapi/gstvaapicontext.c:
30889 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30890 * gst-libs/gst/vaapi/gstvaapiobject.c:
30891 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30892 * gst-libs/gst/vaapi/gstvaapisurface.c:
30893 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30894 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30895 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30896 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30897 libs: use g_clear_object() wherever applicable.
30898 This is a preferred thread-safe version. Also add an inline version of
30899 g_clear_object() if compiling with glib < 2.28.
30900 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30902 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
30906 * docs/reference/libs/Makefile.am:
30907 * gst-libs/gst/vaapi/Makefile.am:
30908 * gst-libs/gst/vaapi/gstvaapimarshal.list:
30909 * gst-libs/gst/vaapi/gstvaapiobject.c:
30910 libs: use generic g_cclosure_marshal_VOID__VOID().
30911 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30913 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30916 * gst-libs/gst/vaapi/glibcompat.h:
30917 glibcompat: drop explicit check for g_list_free_full().
30919 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30922 Bump version for development.
30924 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30926 * gst-libs/gst/codecparsers/Makefile.am:
30927 jpeg: fix make dist.
30929 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
30933 * docs/Makefile.am:
30934 configure: fix build without gtk-doc support.
30935 Also do not generate tamplate files as all the documentation is inline.
30936 Drop un-needed code in autogen.sh as well.
30937 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30939 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
30944 configure: put m4 macros and autogenerated files into m4/ directory.
30945 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30947 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
30950 configure: drop deprecated autoconf macros.
30951 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30952 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30954 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
30957 configure: don't use AC_SUBST for some variables.
30958 PKG_CHECK_MODULES already does this for us.
30959 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30961 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30963 * gst/vaapi/gstvaapidecode.c:
30964 * gst/vaapi/gstvaapidownload.c:
30965 * gst/vaapi/gstvaapipostproc.c:
30966 * gst/vaapi/gstvaapiupload.c:
30967 plugins: add support for GstImplementsInterface.
30969 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
30972 * gst/vaapi/gstvaapidecode.c:
30973 * gst/vaapi/gstvaapidownload.c:
30974 * gst/vaapi/gstvaapipostproc.c:
30975 * gst/vaapi/gstvaapisink.c:
30976 * gst/vaapi/gstvaapiupload.c:
30977 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30978 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30980 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30983 * gst/vaapi/gstvaapisink.c:
30984 plugins: do not use deprecated GStreamer -base symbols.
30985 Bump GStreamer plugins -base required version to 0.10.31, needed for
30986 gst_x_overlay_got_window_handle().
30987 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30989 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30992 * gst/vaapi/gstvaapidecode.c:
30993 * gst/vaapi/gstvaapidownload.c:
30994 * gst/vaapi/gstvaapipostproc.c:
30995 * gst/vaapi/gstvaapisink.c:
30996 * gst/vaapi/gstvaapiupload.c:
30997 plugins: do not use deprecated core GStreamer symbols.
30998 Bump GStreamer required version to 0.10.14, needed for
30999 gst_element_class_set_details_simple().
31000 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31002 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31004 * tests/test-decode.c:
31005 tests: fix build without JPEG decoder support.
31007 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31009 * tests/Makefile.am:
31010 * tests/test-decode.c:
31011 * tests/test-jpeg.c:
31012 * tests/test-jpeg.h:
31013 tests: add test for JPEG decoding.
31015 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31017 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31018 jpeg: update to match latest parser API.
31020 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31022 * gst-libs/gst/codecparsers/gstjpegparser.c:
31023 * gst-libs/gst/codecparsers/gstjpegparser.h:
31024 codecparsers: jpeg: tweak parser API.
31025 ... to allow for more consistent parsing API among various codec parsers.
31026 In particular, drop use of GList.
31028 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31031 jpeg: fix configure check for VA/JPEG decoding API.
31033 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31035 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31036 jpeg: fix build with VA-API < 0.32.0.
31038 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31043 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31046 Bump version for development.
31048 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31054 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31059 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
31061 * gst/vaapi/gstvaapipluginutil.c:
31062 vaapiplugin: fix build when compiling without GLX.
31063 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31065 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31068 configure: disable FFmpeg-based decoders.
31069 FFmpeg decoders are still available through the --enable-ffmpeg option
31070 but are no longer maintained.
31072 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31074 * gst-libs/gst/vaapi/Makefile.am:
31075 Fix build with recent GStreamer stack.
31077 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31080 * gst-libs/gst/vaapi/gstvaapicompat.h:
31081 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31082 jpeg: update to current VA/JPEG decoding API.
31084 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31086 * gst-libs/gst/codecparsers/gstjpegparser.c:
31087 * gst-libs/gst/codecparsers/gstjpegparser.h:
31088 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31089 codecparsers: jpeg: track valid quantization and Huffman tables.
31090 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
31091 to determine whether a table actually changed since the last user
31092 synchronization point. That way, this makes it possible for some
31093 hardware accelerated decoding solution to upload only those tables
31096 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
31098 * gst-libs/gst/codecparsers/gstjpegparser.c:
31099 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
31100 Use GstByteReader *_unchecked() variants as much as possible.
31101 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31103 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
31105 * gst-libs/gst/codecparsers/gstjpegparser.c:
31106 * gst-libs/gst/codecparsers/gstjpegparser.h:
31107 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31108 jpeg: add new GstJpegHuffmanTables structure.
31109 Add new GstJpegHuffmanTables helper structure to hold all possible
31110 AC/DC Huffman tables available to all components.
31111 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31113 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
31115 * gst-libs/gst/codecparsers/gstjpegparser.c:
31116 * gst-libs/gst/codecparsers/gstjpegparser.h:
31117 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31118 jpeg: make gst_jpeg_parse() support multiple scans.
31119 gst_jpeg_parse() now gathers all scans available in the supplied
31120 buffer. A scan comprises of the scan header and any entropy-coded
31121 segments or restart marker following it. The size and offset to
31122 the associated data (ECS + RST segments) are append to a new
31123 GstJpegScanOffsetSize structure.
31124 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31126 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
31128 * gst-libs/gst/codecparsers/gstjpegparser.c:
31129 * gst-libs/gst/codecparsers/gstjpegparser.h:
31130 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31131 jpeg: update to match latest parser API.
31132 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31134 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31136 * gst-libs/gst/codecparsers/gstjpegparser.h:
31137 jpeg: simplify and optimize parser API.
31139 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
31141 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31142 mpeg: fix picture used to determine backward_reference_vop_coding_type.
31143 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31144 but Gwenole did not apply all the bits.
31145 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31147 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
31149 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31150 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31153 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31155 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31156 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31157 Gracefully skip non VOP coded frames.
31158 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31160 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31162 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31163 mpeg4: fix timestamp issues on too fast playback.
31164 Improve generation of presentation timestamps to be less sensitive
31165 to input stream errors. In practise, GOP is also a synchronization
31166 point for PTS calculation.
31167 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31169 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31171 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31172 Fix build without JPEG decoder.
31174 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31176 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31177 mpeg4: fix VOP coding type of backward reference pictures.
31178 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31180 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31182 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31183 mpeg4: fix handling of temporal reference distances.
31184 TRD and TRB fields are not large enough to hold the difference of PTS
31185 expressed with nanosecond resolution. So, compute them from the original
31187 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31189 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31191 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31192 dpb: mpeg2: cosmetics.
31193 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31195 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31198 * gst-libs/gst/vaapi/Makefile.am:
31199 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31200 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31201 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31202 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31203 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31204 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31205 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31206 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31207 * gst/vaapi/gstvaapidecode.c:
31208 Add initial JPEG decoder.
31209 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31211 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31214 * gst-libs/gst/Makefile.am:
31215 * gst-libs/gst/codecparsers/Makefile.am:
31216 * gst-libs/gst/codecparsers/gstjpegparser.c:
31217 * gst-libs/gst/codecparsers/gstjpegparser.h:
31218 * gst-libs/gst/vaapi/Makefile.am:
31219 codecparsers: add JPEG parser.
31220 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31222 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31224 * gst/vaapi/gstvaapidecode.c:
31225 vaapidecode: fix VA display type.
31226 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31228 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31230 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31232 * gst/vaapi/gstvaapidecode.c:
31233 vaapidecode: fix includes when compiling for a single API.
31235 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31238 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31239 mpeg2: fix calculation of macroblock_offset.
31240 Fix decoding of streams with extra slice() information before the first
31241 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31243 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31245 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31246 mpeg2: fix interpolation of GOP TSN from new PTS.
31247 New GOP TSN base could be mis-calculated. In particular, this fixes
31248 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31250 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31253 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31254 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31255 mpeg2: fix decoding of high profile streams.
31256 Allow MPEG-2 High profile streams only if the HW supports that profile
31257 or no High profile specific bits are used, and thus Main profile could
31258 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31259 set to 11 and no sequence_scalable_extension() was parsed.
31261 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31264 * gst/vaapi/gstvaapidecode.c:
31265 vaapidecode: report unsupported codec profiles.
31266 Try to gracefully abort when the HW does not support the requested
31267 profile. There is no fallback unless profiles are correctly parsed
31268 and matched through caps beforehand.
31270 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31273 * gst/vaapi/gstvaapisink.c:
31274 vaapisink: don't resize a 'foreign' X-window.
31275 Don't forcibly resize foreign X windows. The user is responsible for
31276 their size and vaapisink shall not change this.
31277 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31279 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31282 * gst/vaapi/gstvaapisink.c:
31283 * gst/vaapi/gstvaapisink.h:
31284 vaapisink: recalculate render rect only if caps are negotiated.
31285 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31286 caps got negotiated. Besides, when a foreign window is provided by the
31287 user, so should the render rect.
31288 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31290 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31293 Bump version for development.
31295 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31300 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31302 * docs/reference/libs/libs-docs.xml.in:
31303 * docs/reference/libs/libs-sections.txt:
31304 * docs/reference/plugins/plugins-docs.xml.in:
31305 * docs/reference/plugins/plugins-sections.txt:
31306 * docs/reference/plugins/plugins.types:
31307 * gst-libs/gst/vaapi/gstvaapiimage.c:
31308 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31309 * gst/vaapi/gstvaapipostproc.c:
31310 Fix a few documentation issues.
31312 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31316 Update introduction and changelog.
31318 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31320 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31321 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31322 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31323 mpeg2: allocate dummy picture for first field based I-frame.
31324 In P-pictures, prediction shall be made from the two most recently
31325 decoded reference fields. However, when the first I-frame is a field,
31326 the next field of the current picture could be a P-picture but only a
31327 single field was decoded so far. In this case, create a dummy picture
31328 with POC = -1 that will be used as reference.
31329 Some VA drivers would error out if P-pictures don't have a forward
31330 reference picture. This is true in general but not in this very specific
31333 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31335 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31336 mpeg2: fix simple to main profile fallback.
31337 Allow fallback from simple to main profile when the HW decoder does
31338 not support the former profile and that no sequence_header_extension()
31339 is available to point out this.
31341 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31343 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31344 mpeg4: improve error checking while decoding packets.
31345 decode_picture() could return an error when an MPEG-4 profile is not
31346 supported for example. In this case, the underlying VA context is not
31347 allocated and no other proper action can be taken. Likewise on exit
31348 from decode_slice().
31349 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31351 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31353 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31354 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31355 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31356 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31357 decoder: use POC to maintain the DPB.
31358 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31359 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31360 video streaming at 60 Hz.
31361 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31362 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31364 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31366 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31367 mpeg2: rework generation of presentation timestamps.
31368 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31369 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31370 max PTS from past pictures, then try to fix it up based on the duration of
31372 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31373 reconstruct a current time. Also now handle wrapped TSN correctly.
31375 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31377 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31378 mpeg2: ignore empty user-data packets.
31379 Fix tcela-8.bits conformance test.
31381 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31383 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31384 mpeg2: review and report errors accordingly.
31385 Use GST_ERROR() to report real errors instead of hiding them into
31388 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31390 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31391 mpeg2: fix invalid interlaced frame in progressive sequence.
31392 Some streams, badly constructed, could have signaled an interlaced
31393 frame while the sequence was meant to be progressive. Warn and force
31394 frame to be progressive in this case.
31396 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31398 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31399 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31400 mpeg2: add support for interlaced streams.
31401 Pictures are submitted to the HW for rendering only when both fields
31402 are decoded or current picture is a full frame.
31404 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31406 * gst-libs/gst/vaapi/Makefile.am:
31407 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31408 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31409 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31410 mpeg2: add new decoded picture buffer infrastructure.
31411 Decoded pictures are now maintained into DPB, similarly to H.264.
31412 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31414 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31416 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31417 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31418 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31419 decoder: add first-field flag to picture.
31420 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31421 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31422 as the first field. Any subsequent allocated field will become the second field.
31424 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31426 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31427 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31428 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31429 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31430 decoder: allow pictures to be cloned for field decoding.
31431 Add gst_vaapi_picture_new_field() function that clones a picture, while
31432 preserving the parent picture surface. i.e. the surface proxy reference
31433 count is increased and other fields copied as is. Besides, the picture
31434 is reset into a "non-output" mode.
31436 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31438 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31439 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31440 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31441 decoder: rework picture field flags.
31442 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31443 could be propagated to the surface proxy when it is pushed for rendering.
31444 Besides, top and bottom fields are now expressed with picture structure flags
31445 from GstVaapiSurfaceRenderFlags.
31447 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31449 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31450 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31451 decoder: add OUTPUT flag to pictures.
31452 Allow pictures to be marked as output gst_vaapi_picture_output().
31454 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31456 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31457 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31458 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31459 decoder: fix semantics of SKIPPED pictures.
31460 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31461 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31462 has nothing to do with rendering. This only means that the currently decoded
31463 picture is just a copy of its reference picture.
31465 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31467 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31468 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31469 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31470 * gst/vaapi/gstvaapipostproc.c:
31471 vaapipostproc: get "interlaced" attribute from surface proxy.
31472 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31473 vaapipostproc so that to handles cases where bitstream is interlaced
31474 but almost only frame pictures are generated. In this case, we should
31475 not be alternating between top/bottom fields.
31477 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31480 * debian.upstream/control.in:
31481 * gst/vaapi/Makefile.am:
31482 * gst/vaapi/gstvaapi.c:
31483 * gst/vaapi/gstvaapipostproc.c:
31484 * gst/vaapi/gstvaapipostproc.h:
31485 vaapipostproc: add new element for video postprocessing.
31486 Add vaapipostproc element for video postprocessing. So far, only basic
31487 bob deinterlacing is implemented. Interlaced mode is automatically
31488 detected based on sink caps ("interlaced" field).
31490 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31492 * docs/reference/libs/libs-sections.txt:
31493 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31494 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31495 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31496 * gst/vaapi/gstvaapisink.c:
31497 videobuffer: add surface render flags.
31498 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31499 to be set to the video buffer. In particular, this is mostly useful for
31500 basic deinterlacing.
31502 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31504 * gst-libs/gst/vaapi/gstvaapicompat.h:
31505 compat: add compatibility glue with VA-API 0.34+ (WIP).
31507 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31509 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31510 h264: skip all Filler Data NALs.
31512 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31514 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31515 mpeg4: check for decoder status prior to decoding packet.
31516 Make sure there is a VA surface free prior to decoding the current frame.
31517 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31519 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31521 * gst/vaapi/gstvaapidecode.c:
31522 * gst/vaapi/gstvaapidecode.h:
31523 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31524 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31525 is created and a NEWSEGMENT event arrives, downstream element may not
31526 be ready yet. So, delay this event until next element is chained in,
31527 otherwise basesink could output "Received buffer without a new-segment.
31528 Assuming timestamps start from 0".
31529 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31531 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31533 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31534 mpeg2: fix GOP timestamps when incorrect data is received.
31535 Some streams have incorrect GOP timestamps, or nothing set at all.
31536 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31537 from demuxer timestamps, which are monotonic.
31538 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31540 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31542 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31543 mpeg2: don't decode anything before the first sequence_header().
31544 Skip all pictures prior to the first sequence_header(). Besides,
31545 skip all picture_data() if there was no prior picture_header().
31546 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31548 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31550 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31551 ffmpeg: add support for interlaced streams.
31552 Evaluate interlaced stream properties.
31553 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31555 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31557 * gst/vaapi/gstvaapidecode.c:
31558 vaapidecode: propagate interlaced and TFF properties downstream.
31559 Propagate "interlaced" caps downstream and set "tff" buffer flag
31560 appropriately to output buffers for interlaced pictures.
31561 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31563 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31565 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31566 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31567 decoder: maintain caps for interlaced streams.
31568 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31570 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31572 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31574 * docs/reference/libs/libs-sections.txt:
31575 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31576 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31577 surfaceproxy: add TFF property.
31578 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31579 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31581 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31584 AUTHORS: update to match current authors.
31586 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31588 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31589 mpeg2: fix is_first_field calculation.
31590 Reset is_first_field for frame pictures. Factor out locations where
31591 the flag is updated.
31593 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31596 mpeg2: catch incorrect picture_structure from bitstreams.
31597 Assume "frame" picture structure if the syntax element was zero or if
31598 progressive_frame is set.
31600 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31602 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31603 mpeg2: fix slice_vertical_position calculation (again).
31604 VA-API expects slice_vertical_position as the initial position from the
31605 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31608 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31610 * gst/vaapi/gstvaapidecode.c:
31611 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31612 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31613 For gst_element_class_get_pad_template(), no unreferencing is necessary
31614 according to the GStreamer documentation.
31616 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31619 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31620 h264: fix slice_data_bit_offset calculation.
31621 Unlike what VA-API documentation defines, the slice_data_bit_offset
31622 represents the offset to the first macroblock in the slice data, minus
31623 any emulation prevention bytes in the slice_header().
31624 This fix copes with binary-only VA drivers that won't be fixed any
31625 time soon. Besides, this aligns with the current FFmpeg behaviour
31626 that was based on those proprietary drivers implementing the API
31629 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31631 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31632 h264: skip all Access Unit (AU) NALs.
31633 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31635 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31638 h264: fix modification process of reference picture lists.
31639 Construction of RefPicList0/1 could be off by one element.
31640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31642 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31644 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31645 mpeg2: fix size calculation from sequence_extension().
31646 Original values from sequence_header() are 12-bit and the remaining
31647 2 most significant bits are coming from sequence_extension().
31648 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31650 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31652 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31653 mpeg2: fix slice_vertical_position calculation.
31654 Make sure to adjust slice_vertical_position if picture structure
31655 is a top or bottom field.
31657 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31659 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31660 decoder: add picture structure flags.
31662 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31664 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31665 mpeg2: fix decoding at end-of-sequence.
31667 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31670 mpeg2: fix slice_horizontal_position calculation.
31672 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31674 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31675 mpeg2: drop useless mb_y and mb_height members.
31677 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31679 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31680 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31681 6.3.15 says that "some slices may have the same slice_vertical_position,
31682 since slices may start and finish anywhere". So, we can't submit the current
31683 picture to the HW right away since subsequent slices would be missing.
31685 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31687 * gst-libs/gst/vaapi/gstvaapiimage.c:
31688 image: fix source stride in picture copy.
31690 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31692 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31693 decoder: fix double buffer free with some VA drivers.
31694 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31695 push the VA buffer object into a list of free buffers to be re-used. However,
31696 reference pictures (and data) that was kept would explicitly release the VA
31697 buffer object later on, thus possibly destroying a valid (re-used) object.
31698 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31699 semantics for VA buffers disposal and would leak memory if there is no explicit
31700 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31701 right after vaRenderPicture(). All VA drivers need to be aligned.
31703 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31705 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31706 h264: complete any current picture decoder before SPS / PPS change.
31707 This ensures the VA context is clear when the encoded resolution
31708 changes. i.e. make sure older picture is decoded with the older
31709 VA context before it changes.
31711 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31713 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31714 h264: create VA context earlier when SPS is parsed.
31716 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31718 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31719 h264: don't allocate too big data structures on stack.
31721 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31723 * gst-libs/gst/vaapi/glibcompat.h:
31724 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31725 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31726 glib: map deprecated API to glib >= 2.32 equivalents.
31727 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31728 GRecMutex, which no longer require any prior call to g_thread_init().
31730 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31732 * gst-libs/gst/vaapi/gstvaapiutils.h:
31733 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31734 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31735 glib: fix includes.
31737 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31739 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31740 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31741 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31742 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31743 cosmetics: fix warnings (drop unused variables).
31745 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31747 * gst/vaapi/gstvaapidecode.c:
31748 vaapidecode: fix another pad template ref leak.
31750 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31752 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31753 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31754 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31755 mpeg2: fix crash when there is no free surface to decode into.
31757 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
31759 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31760 display: skip profiles which have no entrypoints.
31761 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31763 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31765 * gst/vaapi/gstvaapiupload.c:
31766 vaapiupload: use g_object_unref() for GstVaapiImage.
31768 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31770 * gst/vaapi/gstvaapidecode.c:
31771 * gst/vaapi/gstvaapidownload.c:
31772 * gst/vaapi/gstvaapisink.c:
31773 * gst/vaapi/gstvaapiupload.c:
31774 plugins: fix pad template ref leaks.
31776 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31779 Bump version for development.
31781 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31787 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31791 Mention codecparsers-based decoders, FFmpeg is now optional. Update
31792 list of support HW.
31794 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31799 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31801 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31802 decoder: allocate proxy surface earlier.
31803 This simplifies gst_vaapi_picture_output() to only update the presentation
31804 timestamp and submit the proxy to the decoder for output.
31806 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31808 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31809 decoder: fix memory leak of VA objects on exit.
31810 On sequence end, if the last decoded picture is not output for rendering,
31811 then the proxy surface is not created. In this case, the original surface
31812 must be released explicitly to the context.
31814 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31816 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31817 mpeg2: use GstAdapter to track input sequence.
31818 This fixes possible memory leaks and improves performance by removing
31821 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31824 * gst-libs/gst/vaapi/Makefile.am:
31825 * gst-libs/gst/vaapi/glibcompat.h:
31826 * gst-libs/gst/vaapi/sysdeps.h:
31827 Add glib compatibility glue for older versions.
31829 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31831 * gst-libs/gst/vaapi/Makefile.am:
31832 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31833 * gst-libs/gst/vaapi/gstvaapicontext.c:
31834 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31835 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31836 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31837 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31838 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31839 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31840 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31841 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31842 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31843 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31844 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31845 * gst-libs/gst/vaapi/gstvaapiimage.c:
31846 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31847 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31848 * gst-libs/gst/vaapi/gstvaapiobject.c:
31849 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31850 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31851 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31852 * gst-libs/gst/vaapi/gstvaapisurface.c:
31853 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31854 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31855 * gst-libs/gst/vaapi/gstvaapitexture.c:
31856 * gst-libs/gst/vaapi/gstvaapiutils.c:
31857 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31858 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31859 * gst-libs/gst/vaapi/gstvaapivalue.c:
31860 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31861 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31862 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31863 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31864 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31865 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31866 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31867 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31868 * gst-libs/gst/vaapi/sysdeps.h:
31869 Add header for system-dependent definitions.
31871 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31873 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31874 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31875 * gst-libs/gst/vaapi/gstvaapiutils.c:
31876 * gst-libs/gst/vaapi/gstvaapiutils.h:
31877 decoder: optimize slice data buffers initialization.
31878 VA drivers may have a faster means to transfer user buffers to GPU
31879 buffers than using memcpy(). In particular, on Intel Gen graphics, we
31880 can use pwrite(). This provides for faster upload of bitstream and can
31881 help higher bitrates.
31882 vaapi_create_buffer() helper function was also updated to allow for
31883 un-mapped buffers and pre-initialized data for buffers.
31885 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31887 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31888 h264: simplify RefPicList reconstruction.
31890 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31892 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31893 h264: flush DPB when the end of the sequence is reached.
31895 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31897 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31898 h264: handle Decoded Picture Buffer (DPB).
31900 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31902 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31903 h264: fix pred_weight_table() reconstruction.
31904 Only the explicit pred_weight_table(), possibly with the inferred default
31905 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31906 is not set for P/SP slices.
31908 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31910 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31911 h264: execute reference picture marking process (MMCO).
31913 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31915 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31916 h264: fix presentation timestamps.
31918 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31920 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31921 h264: execute reference picture marking process (sliding window).
31923 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31925 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31926 h264: handle avcC format for decoding buffers.
31928 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31930 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31931 h264: handle codec-data.
31932 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31934 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31936 * gst-libs/gst/vaapi/Makefile.am:
31937 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31938 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31939 * gst/vaapi/gstvaapidecode.c:
31940 * tests/test-decode.c:
31941 Add initial H.264 decoder.
31943 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31945 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31946 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31947 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31948 Keep a valid reference to the proxy in GstVaapiPicture so that frames
31949 marked as "used for reference" could be kept during the lifetime of the
31950 picture. i.e. don't release them too soon as they could be re-used right
31953 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31955 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31956 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31957 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31958 decoder: properly reference count pictures.
31959 This fixes cases where a GstVaapiPicture would be destroyed whereas
31960 there is still a valid instance of it in either prev, current or
31963 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31965 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31966 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31967 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31968 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31969 decoder: simplify output of decoded frames.
31970 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31971 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31972 is already set correctly and reference count increased, if necessary.
31974 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31976 * gst-libs/gst/vaapi/Makefile.am:
31977 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31978 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31979 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31980 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31981 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31982 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31983 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31984 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31985 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31986 decoder: rework the internal VA objects API.
31987 The new API simplifies a lot reference counting and makes it more
31988 flexible for future additions/changes. The GstVaapiCodecInfo is
31989 also gone. Rather, new helper macros are provided to allocate
31990 picture, slice and quantization matrix parameter buffers.
31992 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31994 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31995 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31996 decoder: allow slices to be attached to pictures later.
31998 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32000 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32001 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32002 decoder: add ref_count to GstVaapiPicture.
32004 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32006 * gst/vaapi/gstvaapisink.c:
32007 vaapisink: cap window size to the maximum display size.
32009 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
32011 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32012 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32013 profile: match video/x-h263 as H.263 Baseline profile.
32014 HACK: qtdemux does not report profiles for H.263. So, assume plain
32015 "video/x-h263" is H.263 Baseline profile.
32016 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32018 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32020 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32021 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32022 display: report H.263 Baseline profile.
32023 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
32024 profile (VAProfileMPEG4Simple) is supported.
32026 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32028 * gst-libs/gst/vaapi/Makefile.am:
32029 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32030 Add template for workarounds.
32032 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32034 * tests/test-decode.c:
32035 tests: error out if FFmpeg|codecparsers are not supported.
32037 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32039 * docs/reference/libs/libs-sections.txt:
32040 * gst-libs/gst/vaapi/gstvaapisurface.h:
32041 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32042 surface: don't expose gst_vaapi_surface_get_parent_context().
32043 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
32044 It's just an internal helper function. However, it's still possible to get
32045 the parent context through the "parent-context" property.
32047 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32049 * tests/Makefile.am:
32050 * tests/test-subpicture.c:
32051 tests: fix build without FFmpeg.
32053 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32056 Bump version for development.
32058 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32064 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32067 * debian.upstream/copyright:
32068 * gst-libs/gst/vaapi/gstvaapicontext.c:
32069 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32070 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32071 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32072 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32073 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32074 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32075 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32076 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32077 * gst-libs/gst/vaapi/gstvaapiimage.c:
32078 * gst-libs/gst/vaapi/gstvaapiimage.h:
32079 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32080 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32081 * gst-libs/gst/vaapi/gstvaapiutils.c:
32082 * gst-libs/gst/vaapi/gstvaapiutils.h:
32083 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32084 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32085 * gst/vaapi/gstvaapi.c:
32086 * gst/vaapi/gstvaapidecode.c:
32087 * gst/vaapi/gstvaapidownload.c:
32088 * gst/vaapi/gstvaapidownload.h:
32089 * gst/vaapi/gstvaapipluginutil.c:
32090 * gst/vaapi/gstvaapipluginutil.h:
32091 * gst/vaapi/gstvaapisink.c:
32092 * gst/vaapi/gstvaapiupload.c:
32093 * gst/vaapi/gstvaapiupload.h:
32094 * tests/test-decode.c:
32095 legal: fix year for some copyright notices.
32097 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32099 * gst-libs/gst/vaapi/gstvaapicontext.c:
32100 * gst-libs/gst/vaapi/gstvaapicontext.h:
32101 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32102 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32103 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32104 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32105 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32106 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32107 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32108 * gst-libs/gst/vaapi/gstvaapiimage.c:
32109 * gst-libs/gst/vaapi/gstvaapiimage.h:
32110 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32111 * gst-libs/gst/vaapi/gstvaapiimageformat.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/gstvaapisurfaceproxy.c:
32116 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32117 * gst-libs/gst/vaapi/gstvaapiutils.c:
32118 * gst-libs/gst/vaapi/gstvaapiutils.h:
32119 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32120 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32121 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32122 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32123 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32124 * gst/vaapi/gstvaapidownload.h:
32125 * gst/vaapi/gstvaapisink.h:
32126 * gst/vaapi/gstvaapiupload.h:
32127 * tests/test-decode.c:
32128 legal: add Intel copyright on modified files.
32130 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32132 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32133 * gst-libs/gst/vaapi/gstvaapicompat.h:
32134 * gst-libs/gst/vaapi/gstvaapicontext.c:
32135 * gst-libs/gst/vaapi/gstvaapicontext.h:
32136 * gst-libs/gst/vaapi/gstvaapidebug.h:
32137 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32138 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32139 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32140 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32141 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32142 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32143 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32144 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32145 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32146 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32147 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32148 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32149 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32150 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32151 * gst-libs/gst/vaapi/gstvaapiimage.c:
32152 * gst-libs/gst/vaapi/gstvaapiimage.h:
32153 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32154 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32155 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32156 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32157 * gst-libs/gst/vaapi/gstvaapiobject.c:
32158 * gst-libs/gst/vaapi/gstvaapiobject.h:
32159 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32160 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32161 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32162 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32163 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32164 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32165 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32166 * gst-libs/gst/vaapi/gstvaapisurface.c:
32167 * gst-libs/gst/vaapi/gstvaapisurface.h:
32168 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32169 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32170 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32171 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32172 * gst-libs/gst/vaapi/gstvaapitexture.c:
32173 * gst-libs/gst/vaapi/gstvaapitexture.h:
32174 * gst-libs/gst/vaapi/gstvaapitypes.h:
32175 * gst-libs/gst/vaapi/gstvaapiutils.c:
32176 * gst-libs/gst/vaapi/gstvaapiutils.h:
32177 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32178 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32179 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32180 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32181 * gst-libs/gst/vaapi/gstvaapivalue.c:
32182 * gst-libs/gst/vaapi/gstvaapivalue.h:
32183 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32184 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32185 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32186 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32187 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32188 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32189 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32190 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32191 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32192 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32193 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32194 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32195 * gst/vaapi/gstvaapidecode.c:
32196 * gst/vaapi/gstvaapidecode.h:
32197 * gst/vaapi/gstvaapidownload.c:
32198 * gst/vaapi/gstvaapidownload.h:
32199 * gst/vaapi/gstvaapisink.c:
32200 * gst/vaapi/gstvaapisink.h:
32201 * gst/vaapi/gstvaapiupload.c:
32202 * gst/vaapi/gstvaapiupload.h:
32205 * tests/test-decode.c:
32206 * tests/test-decode.h:
32207 * tests/test-display.c:
32208 * tests/test-h264.c:
32209 * tests/test-h264.h:
32210 * tests/test-mpeg2.c:
32211 * tests/test-mpeg2.h:
32212 * tests/test-surfaces.c:
32213 * tests/test-textures.c:
32214 * tests/test-vc1.c:
32215 * tests/test-vc1.h:
32216 * tests/test-windows.c:
32217 legal: fix copyright notices to include "Copyright" term.
32219 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32221 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32222 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32223 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32224 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32226 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32228 * gst-libs/gst/vaapi/Makefile.am:
32229 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32230 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32231 * gst/vaapi/gstvaapidecode.c:
32232 Add initial MPEG-4 decoder.
32233 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32235 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32237 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32238 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32239 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32240 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32242 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32244 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32245 vc1: fix codec-data decoding for WMV3 format.
32247 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32249 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32250 vc1: fix presentation timestamps.
32252 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32254 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32255 vc1: fix MV mode packing.
32257 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32259 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32260 vc1: handle codec-data.
32262 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32264 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32265 vc1: handle encapsulated bitstreams.
32267 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32269 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32270 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32271 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32272 vc1: fix bitplanes decoding.
32274 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32276 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32277 vc1: fix BFRACTION reconstruction.
32279 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32281 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32282 vc1: fix framerate calculation.
32284 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32286 * gst-libs/gst/vaapi/Makefile.am:
32287 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32288 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32289 * gst/vaapi/gstvaapidecode.c:
32290 * tests/test-decode.c:
32291 Add initial VC-1 decoder.
32293 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32295 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32296 mpeg2: fix first field detection.
32297 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32299 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32301 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32302 mpeg2: fix quantisation matrix construction.
32304 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32306 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32307 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32308 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32309 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32311 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32313 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32314 mpeg2: fix packets spanning over two buffers.
32316 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32318 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32319 mpeg2: ignore system start codes (PES headers).
32321 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32323 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32324 mpeg2: handle closed_gop.
32326 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32328 * gst-libs/gst/vaapi/Makefile.am:
32329 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32330 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32331 * gst/vaapi/gstvaapidecode.c:
32332 * tests/test-decode.c:
32333 Add initial MPEG-2 decoder.
32335 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32338 * gst-libs/gst/vaapi/Makefile.am:
32339 * gst/vaapi/gstvaapidecode.c:
32340 * tests/test-decode.c:
32341 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32343 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32345 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32346 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32347 Add VA decoder helpers.
32349 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32351 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32352 decoder: add new error codes.
32353 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32354 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32356 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32358 * gst-libs/gst/vaapi/Makefile.am:
32359 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32360 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32361 Add timestamp buffer store helper utils.
32363 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32365 * gst-libs/gst/vaapi/gstvaapiutils.c:
32366 * gst-libs/gst/vaapi/gstvaapiutils.h:
32367 Add VA buffer helpers.
32369 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32371 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32372 utils: slight improvements to gl_bind_texture().
32374 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32376 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32377 utils: pretty-print output of gl_get_error_string().
32379 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32381 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32382 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32384 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32386 * gst-libs/gst/vaapi/gstvaapiutils.c:
32387 utils: simplify string of VAProfile/VAEntrypoint.
32389 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32391 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32392 * gst-libs/gst/vaapi/gstvaapiutils.c:
32393 * gst-libs/gst/vaapi/gstvaapiutils.h:
32394 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32396 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32401 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32403 * tests/test-decode.c:
32404 tests: check for shared VA displays (display cache).
32406 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32408 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32409 display: always free VA display cache if it is empty.
32411 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32413 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32414 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32415 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32416 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32417 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32418 display: use VA display cache for X11 and GLX winsys.
32420 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32422 * gst-libs/gst/vaapi/Makefile.am:
32423 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32424 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32425 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32426 display: implement a VA display cache.
32428 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32430 * gst/vaapi/gstvaapipluginutil.c:
32431 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32432 This ensures the display name provided to gst_vaapi_display_*_new()
32433 maps to the system defaults, instead of forcing "" that could be different
32434 from the current DISPLAY name.
32436 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32438 * gst/vaapi/gstvaapiupload.c:
32439 vaapiupload: only set caps on newly created buffers.
32440 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32442 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32444 * gst/vaapi/gstvaapisink.c:
32445 vaapisink: ensure VA display in GstBaseSink::start() hook.
32446 This ensures a VA display is ready by the time upstream elements request
32449 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32451 * gst/vaapi/gstvaapisink.c:
32452 vaapisink: don't leak GL texture.
32453 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32455 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32457 * gst/vaapi/gstvaapisink.c:
32458 vaapisink: fix calculation of render region.
32460 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32462 * gst/vaapi/gstvaapisink.c:
32463 vaapisink: automatically fit video to window.
32465 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32467 * gst/vaapi/gstvaapisink.c:
32468 vaapisink: implement GstXOverlay::set_render_rectangle().
32470 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32472 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32473 window: always check geometry when the window is mapped.
32475 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32477 * gst-libs/gst/vaapi/gstvaapiutils.c:
32478 Add missing profiles from VA-API 0.32.0.
32479 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32481 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32484 .gitignore: add test-subpicture.
32486 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32489 Bump version for development.
32491 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32497 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32499 * tests/Makefile.am:
32500 tests: fix make dist (ship with test-subpicture-data.h).
32502 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32507 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32509 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32510 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32511 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32512 decoder: fix possible leak of VA surfaces.
32513 Under some circumstances, we could have leaked a surface, thus not
32514 releasing it to the pool of available surfaces in the VA context.
32515 The strategy is now to use a proxy earlier and automatically ref/unref
32516 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32518 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32520 * docs/reference/libs/libs-sections.txt:
32521 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32522 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32523 surfaceproxy: add helper to retrieve the VA surface ID.
32525 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32527 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32528 surfaceproxy: simplify destruction.
32529 Also make sure to always make sure to release the surface back to the
32530 pool of surfaces in the associated VA context, if any.
32532 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32534 * gst/vaapi/gstvaapidecode.c:
32535 vaapidecode: fix deinitialization order.
32537 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32539 * gst-libs/gst/vaapi/gstvaapicontext.c:
32540 context: avoid self reference loops with surfaces.
32542 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32544 * debian.upstream/control.in:
32545 debian: update control.in description for new plugins.
32547 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32549 * gst/vaapi/gstvaapiupload.c:
32550 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32551 This also fixes extra structures, beyond the one at index 0, to hold
32552 the right additional values.
32554 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32556 * gst/vaapi/gstvaapiupload.c:
32557 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32559 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32562 * docs/reference/plugins/plugins-docs.xml.in:
32563 * docs/reference/plugins/plugins-sections.txt:
32564 * docs/reference/plugins/plugins.types:
32565 * gst/vaapi/Makefile.am:
32566 * gst/vaapi/gstvaapi.c:
32567 * gst/vaapi/gstvaapidownload.c:
32568 * gst/vaapi/gstvaapidownload.h:
32569 vaapidownload: add new plugin to download pixels from VA surfaces.
32571 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32573 * gst/vaapi/gstvaapipluginutil.c:
32574 * gst/vaapi/gstvaapipluginutil.h:
32575 vaapipluingutils: add helper to append surface caps to YUV caps.
32577 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32579 * docs/reference/libs/libs-sections.txt:
32580 * gst-libs/gst/vaapi/gstvaapiimage.c:
32581 * gst-libs/gst/vaapi/gstvaapiimage.h:
32582 image: add helpers to extract pixels to user buffers.
32584 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32586 * gst-libs/gst/vaapi/gstvaapiimage.c:
32587 image: simplify initialization of raw images from video buffers.
32589 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32591 * gst-libs/gst/vaapi/gstvaapiimage.c:
32592 image: fix update from NV12 buffers.
32594 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32596 * gst/vaapi/gstvaapiupload.c:
32597 vaapiupload: fix memory leak in _init() function.
32599 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32603 * debian.upstream/control.in:
32604 * docs/reference/plugins/plugins-docs.xml.in:
32605 * docs/reference/plugins/plugins-sections.txt:
32606 * docs/reference/plugins/plugins.types:
32607 * gst/vaapi/Makefile.am:
32608 * gst/vaapi/gstvaapi.c:
32609 * gst/vaapi/gstvaapiupload.c:
32610 * gst/vaapi/gstvaapiupload.h:
32611 Rename vaapiconvert element to vaapiupload.
32613 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32616 Bump version for development.
32618 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32624 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32629 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32631 * gst-libs/gst/vaapi/gstvaapisurface.c:
32632 * gst-libs/gst/vaapi/gstvaapisurface.h:
32633 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32634 * gst/vaapi/gstvaapisink.c:
32635 surface: apply composition to the parent context, if requested.
32637 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32639 * docs/reference/libs/libs-sections.txt:
32640 * gst-libs/gst/vaapi/gstvaapicontext.c:
32641 * gst-libs/gst/vaapi/gstvaapicontext.h:
32642 context: make it possible to apply composition globally.
32644 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32646 * gst-libs/gst/vaapi/gstvaapisurface.c:
32647 surface: fix associate subpicture to not report deassociation errors.
32649 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32651 * gst-libs/gst/vaapi/gstvaapisurface.c:
32652 surface: fix typo in debug message.
32654 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32656 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32657 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32658 * gst-libs/gst/vaapi/gstvaapisurface.c:
32659 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32661 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32663 * docs/reference/libs/libs-sections.txt:
32664 * gst-libs/gst/vaapi/Makefile.am:
32665 * gst-libs/gst/vaapi/gstvaapicontext.c:
32666 * gst-libs/gst/vaapi/gstvaapisurface.c:
32667 * gst-libs/gst/vaapi/gstvaapisurface.h:
32668 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32669 surface: record parent context.
32671 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32673 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32674 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32675 * gst/vaapi/gstvaapidecode.c:
32676 * gst/vaapi/gstvaapisink.c:
32679 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32681 * gst-libs/gst/vaapi/gstvaapisurface.c:
32682 * gst-libs/gst/vaapi/gstvaapisurface.h:
32683 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32684 * gst/vaapi/gstvaapisink.c:
32685 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32687 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32690 configure: check for GstVideoOverlayComposition.
32692 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32697 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32699 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32700 converter: add support for GstVideoOverlayComposition planes.
32701 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32703 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32705 * gst/vaapi/gstvaapisink.c:
32706 vaapisink: handle GstVideoOverlayComposition planes.
32707 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32709 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32711 * gst-libs/gst/vaapi/gstvaapisurface.c:
32712 surface: use unscaled overlay rectangle for blending.
32714 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32716 * gst-libs/gst/vaapi/gstvaapisurface.c:
32717 surface: fix VA image leak when an error occurred.
32719 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32721 * gst-libs/gst/vaapi/gstvaapisurface.c:
32722 * gst-libs/gst/vaapi/gstvaapisurface.h:
32723 surface: add helper to handle GstVideoOverlayComposition.
32724 This helper resets the subpictures to reflect the current composition
32725 layers provided with the buffers.
32726 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32728 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32730 * docs/reference/libs/libs-sections.txt:
32731 * gst-libs/gst/vaapi/Makefile.am:
32732 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32733 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32734 * gst/vaapi/gstvaapiconvert.c:
32735 image: add gst_vaapi_image_format_from_video() helper.
32737 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32739 * gst-libs/gst/vaapi/gstvaapiimage.c:
32740 * gst-libs/gst/vaapi/gstvaapiimage.h:
32741 image: allow updates from GstVaapiImageRaw.
32743 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32745 * gst-libs/gst/vaapi/gstvaapiimage.c:
32746 * gst-libs/gst/vaapi/gstvaapiimage.h:
32747 * gst/vaapi/gstvaapiconvert.c:
32748 * tests/test-subpicture.c:
32749 image: allow partial updates.
32751 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32753 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32754 subpicture: fix doc for gst_vaapi_subpicture_set_image().
32756 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32758 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32759 display: fix has_image_format() to check against subpicture formats.
32761 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32763 * tests/test-subpicture.c:
32764 tests: fix subpicture test.
32766 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32768 * tests/Makefile.am:
32769 * tests/test-subpicture-data.c:
32770 * tests/test-subpicture-data.h:
32771 * tests/test-subpicture.c:
32772 tests: add test for subpictures.
32773 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32775 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32777 * gst/vaapi/gstvaapiconvert.c:
32778 * gst/vaapi/gstvaapidecode.c:
32779 Add missing video context queries.
32780 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32782 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32785 Bump version for development.
32787 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32789 * gst-libs/gst/video/Makefile.am:
32790 * gst-libs/gst/video/gstbasevideocodec.c:
32791 * gst-libs/gst/video/gstbasevideocodec.h:
32792 * gst-libs/gst/video/gstbasevideodecoder.c:
32793 * gst-libs/gst/video/gstbasevideodecoder.h:
32794 * gst-libs/gst/video/gstbasevideoutils.c:
32795 * gst-libs/gst/video/gstbasevideoutils.h:
32796 Drop unused copy of GstBaseVideoDecoder.
32798 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32804 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32807 README: update dependencies.
32809 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32814 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32817 configure: check for GstBaseSink 'query' vfunc.
32819 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32821 * gst/vaapi/Makefile.am:
32822 vaapiplugin: include local build dir to CFLAGS for generated files.
32824 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32827 autogen: don't configure if NO_CONFIGURE variable is set.
32829 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32831 * gst/vaapi/gstvaapidecode.c:
32832 * gst/vaapi/gstvaapidecode.h:
32833 vaapidecode: return sink caps template if decoder is in NULL state.
32834 Otherwise, the decoder would always create its own X display instead
32835 of probing it from the downstream element, which is not reliable.
32836 e.g. DISPLAY is not :0 or when running on Wayland.
32837 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32839 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32841 * gst/vaapi/gstvaapiconvert.c:
32842 * gst/vaapi/gstvaapidecode.c:
32843 vaapiplugin: properly set surface type to "vaapi" in caps.
32845 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32847 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32848 decoder: drop unused headers.
32850 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32852 * gst/vaapi/gstvaapiconvert.c:
32853 * gst/vaapi/gstvaapidecode.c:
32854 vaapiplugin: properly set opengl support in caps.
32855 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32857 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32859 * gst/vaapi/gstvaapiconvert.c:
32860 * gst/vaapi/gstvaapidecode.c:
32861 vaapiplugin: allocate GLX buffers when supported.
32862 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32864 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32866 * gst-libs/gst/vaapi/Makefile.am:
32867 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32868 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32869 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32870 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32871 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32872 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32873 videobuffer: add GLX buffer support.
32874 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32876 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32878 * gst-libs/gst/vaapi/Makefile.am:
32879 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32880 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32881 Port to GstSurfaceBuffer interface.
32882 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32884 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32886 * gst/vaapi/gstvaapidecode.c:
32887 * gst/vaapi/gstvaapisink.c:
32888 Don't use downstream buffer allocation.
32889 With the new video/x-surface abstraction, we can't rely on having a VA
32890 specific sink downstream. Also, there was no particular reason to do that.
32891 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32893 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32895 * gst-libs/gst/vaapi/Makefile.am:
32896 * gst-libs/gst/vaapi/gstvaapicontext.c:
32897 * gst-libs/gst/vaapi/gstvaapisurface.h:
32898 * gst/vaapi/gstvaapiconvert.c:
32899 * gst/vaapi/gstvaapisink.c:
32900 * tests/Makefile.am:
32901 * tests/test-surfaces.c:
32902 Change caps to use new video/x-surface generic type.
32903 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32905 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32908 * gst-libs/gst/vaapi/Makefile.am:
32909 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32910 * gst/vaapi/Makefile.am:
32911 * gst/vaapi/gstvaapiconvert.c:
32912 * gst/vaapi/gstvaapidecode.c:
32913 * gst/vaapi/gstvaapipluginutil.c:
32914 * gst/vaapi/gstvaapipluginutil.h:
32915 * gst/vaapi/gstvaapisink.c:
32916 * gst/vaapi/gstvaapisink.h:
32917 Port to GstVideoContext interface.
32918 This new interface allows for upstream and downstream display sharing
32919 that works in both static and dynamic pipelines.
32920 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32922 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32924 * gst/vaapi/gstvaapisink.c:
32925 vaapisink: use GST_ERROR to print error messages.
32927 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32929 * gst/vaapi/Makefile.am:
32930 vaapiplugin: link against VA/GLX when enabled.
32932 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32934 * gst/vaapi/gstvaapiconvert.c:
32935 * gst/vaapi/gstvaapisink.c:
32936 Add Intel copyright information.
32938 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32940 * gst/vaapi/gstvaapisink.c:
32941 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32943 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32947 * gst-libs/gst/Makefile.am:
32948 * gst-libs/gst/gstutils_version.h.in:
32949 Add new GStreamer version check utilities.
32951 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32953 * gst/vaapi/gstvaapisink.c:
32954 vaapisink: replace the deprecated xoverlay API with the new one.
32955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32957 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32960 configure: allow for pre-releases.
32962 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32964 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32965 display: destroy display on creation failure.
32966 This allows element to detect that the display creation has actually
32968 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32970 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32972 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32973 display: don't crash when config is empty.
32974 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32976 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32979 * debian.upstream/copyright:
32980 doc: mention Collabora copyrights.
32982 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32985 .gitignore: refine for generated docs.
32987 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32990 * docs/reference/plugins/Makefile.am:
32992 * gst/vaapi/Makefile.am:
32993 * gst/vaapi/gstvaapi.c:
32994 * gst/vaapi/gstvaapiconvert.c:
32995 * gst/vaapi/gstvaapiconvert.h:
32996 * gst/vaapi/gstvaapidecode.c:
32997 * gst/vaapi/gstvaapidecode.h:
32998 * gst/vaapi/gstvaapisink.c:
32999 * gst/vaapi/gstvaapisink.h:
33000 * gst/vaapiconvert/Makefile.am:
33001 * gst/vaapidecode/Makefile.am:
33002 Group all plugins into the same bundle
33003 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33005 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33008 Bump version for development.
33010 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33013 * debian.upstream/control.in:
33014 debian: build against upstream libva packages.
33016 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33018 * docs/reference/libs/Makefile.am:
33019 * docs/reference/plugins/Makefile.am:
33020 * tests/Makefile.am:
33021 Fix build on Ubuntu 11.10 (Oneric).
33023 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33028 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33032 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33034 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33036 * gst/vaapiconvert/gstvaapiconvert.c:
33037 * gst/vaapidecode/gstvaapidecode.c:
33038 * gst/vaapisink/gstvaapisink.c:
33039 Update license in plugin definition
33040 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33042 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33045 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33046 decoder: fix use of invalid data at the end-of-stream.
33048 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33050 * gst/vaapiconvert/gstvaapiconvert.c:
33051 vaapiconvert: fix some warnings.
33053 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33056 * debian.upstream/changelog.in:
33057 * debian.upstream/control.in:
33058 * debian.upstream/copyright:
33059 * gst/vaapiconvert/gstvaapiconvert.c:
33060 * gst/vaapidecode/gstvaapidecode.c:
33061 * gst/vaapisink/gstvaapisink.c:
33062 Update with my current e-mail address.
33064 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33068 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
33070 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
33074 * tests/test-decode.c:
33075 * tests/test-decode.h:
33076 * tests/test-display.c:
33077 * tests/test-h264.c:
33078 * tests/test-h264.h:
33079 * tests/test-mpeg2.c:
33080 * tests/test-mpeg2.h:
33081 * tests/test-surfaces.c:
33082 * tests/test-textures.c:
33083 * tests/test-vc1.c:
33084 * tests/test-vc1.h:
33085 * tests/test-windows.c:
33086 switch tests licence to LGPL v2.1+
33088 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
33092 * debian.upstream/copyright:
33093 * gst/vaapiconvert/gstvaapiconvert.c:
33094 * gst/vaapiconvert/gstvaapiconvert.h:
33095 * gst/vaapidecode/gstvaapidecode.c:
33096 * gst/vaapidecode/gstvaapidecode.h:
33097 * gst/vaapisink/gstvaapisink.c:
33098 * gst/vaapisink/gstvaapisink.h:
33099 move plugins to LGPL v2.1+
33101 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33103 * gst/vaapidecode/gstvaapidecode.c:
33104 vaapidecode: fix sink caps to not expose size information.
33105 This fixes this particular issue:
33106 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
33107 a real subset of its template caps
33109 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33112 * gst/vaapidecode/gstvaapidecode.c:
33113 vaapidecode: fix decoding of MPEG-2 PS files.
33115 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33117 * gst-libs/gst/vaapi/Makefile.am:
33118 Cosmetics (sort source files).
33120 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33122 * gst/vaapiconvert/gstvaapiconvert.c:
33123 * gst/vaapiconvert/gstvaapiconvert.h:
33124 vaapiconvert: fix direct-rendering caps detection.
33126 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33128 * gst-libs/gst/vaapi/gstvaapiimage.c:
33129 Fix gst_vaapi_image_new_with_image().
33131 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33133 * gst/vaapiconvert/gstvaapiconvert.c:
33134 vaapiconvert: warn when surface failed to be updated with image.
33136 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33138 * gst/vaapiconvert/gstvaapiconvert.c:
33139 vaapiconvert: fix autodetection for vaDeriveImage() support.
33141 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33143 * gst/vaapiconvert/gstvaapiconvert.c:
33144 vaapiconvert: fix memory leak (VA surface image).
33146 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33149 * gst/vaapiconvert/gstvaapiconvert.c:
33150 vaapiconvert: fix direct-rendering mode.
33152 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33154 * docs/reference/libs/libs-sections.txt:
33155 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33156 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33157 Add gst_vaapi_video_buffer_new_from_buffer().
33158 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33159 Any image, surface or surface proxy will be inherited from the source buffer
33160 if it is a GstVaapiVideoBuffer.
33162 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33164 * gst/vaapiconvert/gstvaapiconvert.c:
33165 vaapiconvert: protect access to direct_rendering.
33167 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33169 * gst/vaapiconvert/gstvaapiconvert.c:
33170 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33172 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33176 * debian.upstream/copyright:
33177 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33178 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33179 * gst-libs/gst/vaapi/gstvaapisurface.h:
33180 * gst/vaapidecode/gstvaapidecode.c:
33181 * gst/vaapidecode/gstvaapidecode.h:
33182 Add Intel copyright information.
33184 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33189 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33191 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33192 Fix build with newer FFmpeg versions.
33194 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33196 * gst/vaapidecode/gstvaapidecode.c:
33197 * gst/vaapidecode/gstvaapidecode.h:
33198 Fix decoding of MPEG-2 TS files.
33200 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33202 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33203 Report caps update only once per video resolution change.
33205 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33207 * gst-libs/gst/vaapi/gstvaapisurface.h:
33208 Add canonical form (type name) of VA surface caps.
33210 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33213 Bump version for development.
33215 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33218 Use pretty build output with automake >= 1.11.
33220 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33222 * gst/vaapiconvert/Makefile.am:
33223 * gst/vaapidecode/Makefile.am:
33224 * gst/vaapisink/Makefile.am:
33225 * tests/Makefile.am:
33226 Fix build with libva headers not in a standard include dir.
33228 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33233 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33235 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33236 * gst-libs/gst/vaapi/gstvaapicompat.h:
33237 * gst-libs/gst/vaapi/gstvaapicontext.c:
33238 * gst-libs/gst/vaapi/gstvaapicontext.h:
33239 * gst-libs/gst/vaapi/gstvaapidebug.h:
33240 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33241 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33242 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33243 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33244 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33245 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33246 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33247 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33248 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33249 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33250 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33251 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33252 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33253 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33254 * gst-libs/gst/vaapi/gstvaapiimage.c:
33255 * gst-libs/gst/vaapi/gstvaapiimage.h:
33256 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33257 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33258 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33259 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33260 * gst-libs/gst/vaapi/gstvaapiobject.c:
33261 * gst-libs/gst/vaapi/gstvaapiobject.h:
33262 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33263 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33264 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33265 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33266 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33267 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33268 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33269 * gst-libs/gst/vaapi/gstvaapisurface.c:
33270 * gst-libs/gst/vaapi/gstvaapisurface.h:
33271 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33272 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33273 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33274 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33275 * gst-libs/gst/vaapi/gstvaapitexture.c:
33276 * gst-libs/gst/vaapi/gstvaapitexture.h:
33277 * gst-libs/gst/vaapi/gstvaapitypes.h:
33278 * gst-libs/gst/vaapi/gstvaapiutils.c:
33279 * gst-libs/gst/vaapi/gstvaapiutils.h:
33280 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33281 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33282 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33283 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33284 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33285 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33286 * gst-libs/gst/vaapi/gstvaapivalue.c:
33287 * gst-libs/gst/vaapi/gstvaapivalue.h:
33288 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33289 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33290 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33291 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33292 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33293 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33294 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33295 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33296 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33297 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33298 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33299 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33300 * gst/vaapiconvert/gstvaapiconvert.c:
33301 * gst/vaapiconvert/gstvaapiconvert.h:
33302 * gst/vaapidecode/gstvaapidecode.c:
33303 * gst/vaapidecode/gstvaapidecode.h:
33304 * gst/vaapisink/gstvaapisink.c:
33305 * gst/vaapisink/gstvaapisink.h:
33308 * tests/test-decode.c:
33309 * tests/test-decode.h:
33310 * tests/test-display.c:
33311 * tests/test-h264.c:
33312 * tests/test-h264.h:
33313 * tests/test-mpeg2.c:
33314 * tests/test-mpeg2.h:
33315 * tests/test-surfaces.c:
33316 * tests/test-textures.c:
33317 * tests/test-vc1.c:
33318 * tests/test-vc1.h:
33319 * tests/test-windows.c:
33320 Update copyright notice.
33322 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33325 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33326 * gst-libs/gst/vaapi/gstvaapisurface.c:
33327 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33328 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33329 * gst-libs/gst/vaapi/gstvaapitexture.c:
33330 * gst-libs/gst/vaapi/gstvaapiutils.c:
33331 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33332 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33333 * gst-libs/gst/vaapi/gstvaapivalue.c:
33334 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33335 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33336 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33337 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33338 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33339 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33340 Fix licensing terms.
33342 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33347 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33349 * debian.upstream/copyright:
33350 Fix license terms...
33352 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33354 * gst/vaapisink/gstvaapisink.c:
33355 Render pretty background only in use-reflection=true mode.
33357 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33362 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33364 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33365 Drop the GLX 1.3 requirement.
33367 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33369 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33370 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33371 Call the GLX/Pixmap related functions through the vtable.
33373 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33377 * gst-libs/gst/vaapi/Makefile.am:
33378 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33379 Drop dependency on libavformat.
33381 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33383 * gst-libs/gst/video/gstbasevideodecoder.c:
33384 * gst-libs/gst/video/gstbasevideodecoder.h:
33385 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33387 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33389 * gst-libs/gst/video/gstbasevideodecoder.c:
33390 * gst-libs/gst/video/gstbasevideoutils.c:
33391 * gst-libs/gst/video/gstbasevideoutils.h:
33392 Drop superfluous functions.
33394 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33396 * gst-libs/gst/video/gstbasevideodecoder.c:
33397 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33399 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33401 * gst-libs/gst/video/gstbasevideodecoder.c:
33402 Further drop dependency on libgstvideo.
33404 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33406 * gst-libs/gst/video/Makefile.am:
33407 * gst-libs/gst/video/gstbasevideocodec.c:
33408 * gst-libs/gst/video/gstbasevideocodec.h:
33409 * gst-libs/gst/video/gstbasevideodecoder.c:
33410 * gst-libs/gst/video/gstbasevideodecoder.h:
33411 * gst-libs/gst/video/gstbasevideoutils.c:
33412 * gst-libs/gst/video/gstbasevideoutils.h:
33413 Add GstBaseVideoDecoder from gst-plugins-bad git.
33415 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33417 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33418 Fix GLX version check.
33420 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33424 Bump version for development.
33426 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33429 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33430 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33432 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33437 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33439 * gst-libs/gst/vaapi/gstvaapicompat.h:
33440 Fix build with older VA-API 0.29-sds.
33442 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33444 * gst/vaapisink/gstvaapisink.c:
33445 * gst/vaapisink/gstvaapisink.h:
33446 Fix upscaling in foreign window (Totem).
33448 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33450 * gst/vaapisink/gstvaapisink.c:
33451 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33453 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33456 * gst/vaapisink/gstvaapisink.c:
33457 Fix video rendering rect within an embedder window (Totem).
33459 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33462 * gst/vaapisink/gstvaapisink.c:
33463 Disable GLX rendering when vaapisink uses a foreign X window.
33465 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33467 * gst/vaapisink/gstvaapisink.c:
33468 Simplify GLX rendering code.
33470 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33473 Bump version for development.
33475 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33480 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33482 * gst/vaapidecode/gstvaapidecode.c:
33483 Wait for at most one second for a VA surface to become available.
33485 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33489 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33491 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33495 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33496 Fix decoder caps to report codec aliases.
33498 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33501 * gst/vaapidecode/gstvaapidecode.c:
33502 * gst/vaapidecode/gstvaapidecode.h:
33503 Fix VC-1 decoding through the playbin2 pipeline.
33505 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33507 * docs/reference/libs/libs-sections.txt:
33508 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33509 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33510 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33511 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33512 Regularly update and expose decoder caps.
33514 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33516 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33517 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33518 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33519 Add mechanism to reinsert buffer leftovers into the queue.
33521 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33524 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33525 Fix memory leak of encoded buffers.
33527 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33529 * docs/reference/libs/libs-sections.txt:
33530 * gst-libs/gst/vaapi/gstvaapicontext.c:
33531 * gst-libs/gst/vaapi/gstvaapicontext.h:
33532 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33533 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33534 Check for out-of-free-surfaces condition.
33536 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33538 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33539 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33541 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33543 * gst/vaapisink/gstvaapisink.c:
33544 Improve debug info for gst_vaapisink_ensure_render_rect().
33546 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33549 Bump version for development.
33551 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33556 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33558 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33559 Improve previous fix.
33561 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33564 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33565 Fix a crash in the FFmpeg decoder on close.
33567 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33570 Sort platforms by name.
33572 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33576 Bump version for development.
33578 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33580 * gst/vaapisink/gstvaapisink.c:
33581 Add debug info for _show_frame().
33583 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33586 Nuke older build dir.
33588 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33590 * debian.upstream/control.in:
33591 Fix packaging deps.
33593 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33598 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33601 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33602 Fix OpenGL texture internal format (Clutter).
33604 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33609 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33611 * gst/vaapisink/gstvaapisink.c:
33612 Debug video & display PARs.
33614 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33616 * gst/vaapisink/gstvaapisink.c:
33617 Use XGetGeometry() to retrieve the window size.
33619 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33621 * gst/vaapisink/gstvaapisink.c:
33624 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33626 * gst/vaapisink/gstvaapisink.c:
33627 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33629 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33632 Drop obsolete comment.
33634 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33639 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33641 * gst/vaapidecode/gstvaapidecode.c:
33642 Fix GstVaapiDisplay refcounting in vaapidecode.
33644 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33646 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33649 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33651 * gst/vaapisink/gstvaapisink.c:
33652 * gst/vaapisink/gstvaapisink.h:
33653 Fix render rect when the foreign window size changes.
33655 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33659 * gst/vaapisink/Makefile.am:
33660 * gst/vaapisink/gstvaapisink.c:
33661 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33663 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33666 Update deps to match configure.ac versions.
33668 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33670 * gst/vaapiconvert/gstvaapiconvert.c:
33671 * gst/vaapidecode/gstvaapidecode.c:
33672 * gst/vaapisink/gstvaapisink.c:
33675 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33678 * gst/vaapidecode/Makefile.am:
33679 * gst/vaapidecode/gstvaapidecode.c:
33680 * gst/vaapidecode/gstvaapidecode.h:
33681 Fix vaapidecode to expose the HW supported caps only.
33683 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33685 * gst/vaapidecode/gstvaapidecode.c:
33686 Initialize decoder earlier.
33688 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33692 * gst/vaapidecode/gstvaapidecode.c:
33693 Fix integration within the playbin2 pipeline.
33695 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33697 * docs/reference/libs/Makefile.am:
33698 Exclude gstvaapiutils_gst.h from docs for now.
33700 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33702 * gst/vaapiconvert/gstvaapiconvert.c:
33703 * gst/vaapidecode/gstvaapidecode.c:
33704 * gst/vaapisink/gstvaapisink.c:
33705 Raise VA-API plugins ranks.
33707 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33709 * gst-libs/gst/vaapi/Makefile.am:
33710 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33711 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33712 Add gst_vaapi_display_lookup_downstream() helper.
33714 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33716 * gst/vaapidecode/gstvaapidecode.c:
33717 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33719 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33721 * docs/reference/libs/libs-sections.txt:
33722 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33723 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33724 * gst/vaapisink/gstvaapisink.c:
33725 Expose VA display through GstVaapiVideoBuffer.
33727 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33729 * gst/vaapidecode/gstvaapidecode.c:
33730 Simplify gst_vaapidecode_set_caps() and fix memory leak.
33732 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33734 * docs/reference/libs/libs-sections.txt:
33735 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33736 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33737 Expose video pool display.
33739 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33741 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33742 Stop iteration if there is no more element to examine.
33744 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33746 * gst/vaapiconvert/gstvaapiconvert.c:
33747 * gst/vaapidecode/gstvaapidecode.c:
33748 * gst/vaapisink/gstvaapisink.c:
33749 Improve plugin details.
33751 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33753 * gst-libs/gst/vaapi/gstvaapisurface.h:
33754 * gst/vaapiconvert/gstvaapiconvert.c:
33755 * gst/vaapidecode/gstvaapidecode.c:
33756 * gst/vaapisink/gstvaapisink.c:
33757 Factor out VA surface caps.
33759 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33761 * gst/vaapidecode/gstvaapidecode.c:
33762 Add gst_vaapidecode_ensure_display() helper for set-caps.
33764 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33767 Bump version for development.
33769 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33772 Really make it 0.2.0.
33774 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33779 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33781 * docs/reference/libs/Makefile.am:
33782 Don't exclude GstVaapiParamSpecs.
33784 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33786 * docs/reference/libs/Makefile.am:
33787 * docs/reference/libs/libs-sections.txt:
33788 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33789 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33792 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33794 * gst/vaapiconvert/gstvaapiconvert.c:
33795 * gst/vaapidecode/gstvaapidecode.c:
33796 * gst/vaapisink/gstvaapisink.c:
33797 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.
33799 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33801 * gst-libs/gst/vaapi/Makefile.am:
33802 Really link all helper libraries with libtool -no-undefined.
33804 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33806 * gst-libs/gst/vaapi/Makefile.am:
33807 Link helper libraries with libtool -no-undefined.
33809 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33812 * debian.upstream/gstreamer-vaapi.install.in:
33813 * gst/vaapiconvert/Makefile.am:
33814 * gst/vaapidecode/Makefile.am:
33815 * gst/vaapisink/Makefile.am:
33816 Don't build plugins with SONAME. Make them plain *.so.
33818 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33821 Improve documentation for release.
33823 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33825 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33826 Fix build with older VA-API 0.29.
33828 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33833 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33835 * tests/Makefile.am:
33838 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33840 * docs/reference/libs/Makefile.am:
33841 * docs/reference/libs/libs-docs.xml.in:
33842 * docs/reference/libs/libs-sections.txt:
33843 * docs/reference/libs/libs.core.types:
33844 * docs/reference/plugins/Makefile.am:
33845 * docs/reference/plugins/plugins-docs.xml.in:
33846 * docs/reference/plugins/plugins-sections.txt:
33847 * docs/reference/plugins/plugins.types:
33850 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33852 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33855 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33857 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33858 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33859 * gst/vaapidecode/gstvaapidecode.c:
33860 * tests/test-decode.c:
33861 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33863 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33865 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33866 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33867 Extract framerate information from caps.
33869 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33871 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33872 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33873 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33874 Move caps initialization to parent class.
33876 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33878 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33881 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33883 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33886 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33888 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33889 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33890 More simplifications.
33892 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33894 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33895 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33896 * tests/test-decode.c:
33897 Simplify GstVaapiDecoder API.
33899 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33901 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33902 Drop obsolete defs.
33904 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33906 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33907 Drop obsolete decls.
33909 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33911 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33912 * gst/vaapidecode/gstvaapidecode.c:
33913 Add more aliases for MPEG-4 decoding.
33915 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33917 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33918 Use avctx->coded_{width,height} info to create the VA context.
33920 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33922 * tests/test-decode.c:
33923 * tests/test-decode.h:
33924 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33926 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33928 * tests/test-decode.c:
33929 * tests/test-decode.h:
33930 * tests/test-h264.c:
33931 * tests/test-h264.h:
33932 * tests/test-mpeg2.c:
33933 * tests/test-mpeg2.h:
33934 * tests/test-vc1.c:
33935 * tests/test-vc1.h:
33936 Simplify tests info.
33938 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33940 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33941 Try to improve heuristics to use an AVCodecContextParser.
33943 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33945 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33946 Fix VC-1 decoding, it does not require any specific parser.
33948 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33950 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33951 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33953 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33955 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33956 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33957 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33959 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33961 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33962 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33963 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33964 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33965 * gst/vaapidecode/gstvaapidecode.c:
33966 * gst/vaapidecode/gstvaapidecode.h:
33967 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33969 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33971 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33972 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33973 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33974 Improve WMV3 detection yet further.
33976 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33978 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33979 Fix detection of plain old WMV3 contents.
33981 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33983 * tests/test-vc1.c:
33984 Add End-of-Sequence start code.
33986 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33988 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33989 * gst/vaapidecode/gstvaapidecode.c:
33990 Fix VC-1 detection.
33992 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33994 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33995 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33997 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33999 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34000 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34001 Drop obsolete (and wrong) code.
34003 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34005 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34006 Cosmetics (spelling).
34008 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34010 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34011 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34012 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34013 Try to fix timestamps (step 1). Looks OK on H55.
34015 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34017 * debian.upstream/Makefile.am:
34018 Ship with COPYING.LIB.
34020 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34025 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34026 * gst-libs/gst/vaapi/gstvaapicompat.h:
34027 * gst-libs/gst/vaapi/gstvaapicontext.c:
34028 * gst-libs/gst/vaapi/gstvaapicontext.h:
34029 * gst-libs/gst/vaapi/gstvaapidebug.h:
34030 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34031 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34032 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34033 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34034 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34035 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34036 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34037 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34038 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34039 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34040 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34041 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34042 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34043 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34044 * gst-libs/gst/vaapi/gstvaapiimage.c:
34045 * gst-libs/gst/vaapi/gstvaapiimage.h:
34046 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34047 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34048 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34049 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
34050 * gst-libs/gst/vaapi/gstvaapiobject.c:
34051 * gst-libs/gst/vaapi/gstvaapiobject.h:
34052 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34053 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34054 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34055 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34056 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34057 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34058 * gst-libs/gst/vaapi/gstvaapisurface.h:
34059 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34060 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34061 * gst-libs/gst/vaapi/gstvaapitexture.h:
34062 * gst-libs/gst/vaapi/gstvaapitypes.h:
34063 * gst-libs/gst/vaapi/gstvaapiutils.h:
34064 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34065 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34066 * gst-libs/gst/vaapi/gstvaapivalue.h:
34067 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34068 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34069 * gst-libs/gst/vaapi/gstvaapivideosink.h:
34070 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34071 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34072 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34073 Relicense gst-libs/ code to LGPL v2.1+.
34075 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34077 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34078 Drop extraneous comma.
34080 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34082 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34083 Drop variant=itu field to help codec detection.
34085 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34087 * gst/vaapidecode/gstvaapidecode.c:
34088 Decode as many surfaces as possible in gst_vaapidecode_step().
34090 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34092 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34093 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34094 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34095 * gst/vaapidecode/gstvaapidecode.c:
34096 * gst/vaapidecode/gstvaapidecode.h:
34097 * tests/test-decode.c:
34098 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
34100 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34105 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34107 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34108 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
34110 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34112 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34113 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34114 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
34116 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34118 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34119 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34120 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
34122 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34124 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34125 Document H.264 / AVC1 format case better.
34127 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34129 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34130 Fix H.264 decoding with AVC1 format bitstreams.
34132 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34134 * gst/vaapidecode/gstvaapidecode.c:
34135 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
34137 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34139 * gst/vaapisink/gstvaapisink.c:
34140 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34142 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34144 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34145 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34146 Export gst_vaapi_video_buffer_new().
34148 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34150 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34151 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34153 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34158 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34163 * gst/vaapidecode/Makefile.am:
34164 * gst/vaapidecode/gstvaapidecode.c:
34165 * gst/vaapidecode/gstvaapidecode.h:
34166 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34168 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34170 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34171 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34172 Add gst_vaapi_decoder_pause().
34174 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34176 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34177 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34178 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34179 Use a GstTask with start/stop semantics for the decoder thread.
34181 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34183 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34184 Drop extraneous var.
34186 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34188 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34189 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34190 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34192 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34194 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34195 Fix gst_vaapi_decoder_get_surface() status.
34197 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34199 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34200 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34201 Try to set correct timestamps to the decoded surface proxy.
34203 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34205 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34206 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34207 * tests/test-decode.c:
34208 Add timestamps to GstVaapiSurfaceProxy.
34210 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34212 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34213 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34215 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34217 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34218 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34220 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34222 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34223 Prefer profile from codec-data if any was found there.
34225 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34227 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34228 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34230 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34232 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34233 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34235 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34237 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34238 Fix VC-1 codec initialization, it really needs an extradata buffer.
34240 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34242 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34243 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34244 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.
34246 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34248 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34249 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34251 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34253 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34254 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34255 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34256 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34257 * tests/test-decode.c:
34258 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34260 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34262 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34263 Cosmetics (weird indentation).
34265 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34267 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34268 Cosmetics (extraneous variable, debug message).
34270 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34273 Fix check for VA-API enabled FFmpeg.
34275 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34277 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34278 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34279 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34280 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34281 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34283 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34285 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34286 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34287 Add more error codes. Fix documentation.
34289 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34291 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34292 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34294 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34296 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34297 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34298 * tests/test-decode.c:
34299 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34301 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34303 * tests/test-vc1.c:
34304 Drop useless End-of-Sequence marker.
34306 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34308 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34309 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.
34311 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34313 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34314 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34315 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.
34317 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34319 * tests/test-h264.c:
34320 * tests/test-vc1.c:
34321 Regenerate correct clips.
34323 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34325 * tests/Makefile.am:
34326 * tests/test-decode.c:
34327 * tests/test-h264.c:
34328 * tests/test-h264.h:
34329 * tests/test-mpeg2.c:
34330 * tests/test-mpeg2.h:
34331 * tests/test-vc1.c:
34332 * tests/test-vc1.h:
34333 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34334 XXX: only VC-1 decoding works at this time because of awful
34335 bugs left in GstVaapiDecoderFfmpeg et al.
34337 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34340 * gst-libs/gst/vaapi/Makefile.am:
34341 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34342 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34343 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34344 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34345 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34346 Add initial (multithreaded) decoder based on FFmpeg.
34347 There are tons of bugs left:
34348 - Decoder API not nice enough with error conditions
34349 - FFmpeg parser is sometimes broken
34350 - Packets queue can be lost
34352 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34354 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34355 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34356 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34358 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34360 * gst-libs/gst/vaapi/gstvaapicontext.c:
34361 * gst-libs/gst/vaapi/gstvaapicontext.h:
34362 Add VA context abstraction.
34364 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34366 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34367 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34369 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34371 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34372 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34373 Add a means to cap the number of objects allocated in the pool.
34375 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34377 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34378 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34379 Add VA entrypoint abstraction.
34381 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34383 * docs/reference/libs/libs-docs.xml.in:
34384 * docs/reference/libs/libs-sections.txt:
34385 * gst-libs/gst/vaapi/Makefile.am:
34386 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34387 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34388 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34389 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34390 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34391 * tests/test-display.c:
34392 Add VA profile abstraction.
34394 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34396 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34397 Fix OpenGL rendering on G45 systems.
34399 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34401 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34402 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34404 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34406 * gst-libs/gst/vaapi/gstvaapitexture.c:
34407 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34408 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34409 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.
34411 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34413 * gst-libs/gst/vaapi/gstvaapitexture.c:
34414 Fix get-out conditions.
34416 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34418 * gst-libs/gst/vaapi/gstvaapitexture.c:
34419 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34420 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.
34422 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34424 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34427 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34429 * docs/reference/libs/libs-sections.txt:
34430 * gst-libs/gst/vaapi/Makefile.am:
34431 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34432 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34433 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34434 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34435 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34436 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34437 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34438 * gst-libs/gst/vaapi/gstvaapitexture.c:
34439 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34440 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34441 * tests/test-windows.c:
34442 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34444 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34446 * gst-libs/gst/vaapi/Makefile.am:
34447 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34448 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34449 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34450 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34451 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34452 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34453 * gst-libs/gst/vaapi/gstvaapiimage.c:
34454 * gst-libs/gst/vaapi/gstvaapiobject.c:
34455 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34456 * gst-libs/gst/vaapi/gstvaapisurface.c:
34457 * gst-libs/gst/vaapi/gstvaapitexture.c:
34458 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34459 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34460 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34461 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34463 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34465 * gst-libs/gst/vaapi/gstvaapitexture.c:
34466 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34467 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34468 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34469 Improve handling of GL contexts.
34471 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34476 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34479 Bump version for development.
34481 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34484 * debian.upstream/Makefile.am:
34485 * debian.upstream/control.in:
34486 Rename -dev package to libgstvaapi-dev.
34488 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34494 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34496 * gst-libs/gst/vaapi/gstvaapiutils.c:
34497 Fix build with VA-API < 0.30.
34499 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34502 * gst-libs/gst/vaapi/gstvaapicompat.h:
34503 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34504 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34505 * gst-libs/gst/vaapi/gstvaapitexture.c:
34506 * tests/test-display.c:
34507 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34509 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34511 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34512 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34513 Add TFP and FBO helpers.
34515 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34517 * gst-libs/gst/vaapi/gstvaapiutils.c:
34518 * gst-libs/gst/vaapi/gstvaapiutils.h:
34519 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34521 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34523 * gst-libs/gst/vaapi/gstvaapitexture.c:
34524 * gst-libs/gst/vaapi/gstvaapiutils.c:
34525 * gst-libs/gst/vaapi/gstvaapiutils.h:
34526 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34527 Use a shorter function name.
34529 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34531 * docs/reference/libs/libs-sections.txt:
34532 * gst-libs/gst/vaapi/gstvaapisurface.c:
34533 * gst-libs/gst/vaapi/gstvaapisurface.h:
34534 * gst-libs/gst/vaapi/gstvaapiutils.c:
34535 * gst-libs/gst/vaapi/gstvaapiutils.h:
34536 Add gst_vaapi_surface_query_status() wrapper.
34538 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34540 * docs/reference/plugins/Makefile.am:
34541 Fix leftover during migration.
34543 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34547 * docs/reference/plugins/Makefile.am:
34549 * gst/vaapiconvert/Makefile.am:
34550 * gst/vaapiconvert/gstvaapiconvert.c:
34551 * gst/vaapiconvert/gstvaapiconvert.h:
34552 * gst/vaapisink/Makefile.am:
34553 * gst/vaapisink/gstvaapisink.c:
34554 * gst/vaapisink/gstvaapisink.h:
34555 Rename to gst/ as sys/ was too vague.
34557 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34559 * gst-libs/gst/vaapi/gstvaapiimage.c:
34560 * gst-libs/gst/vaapi/gstvaapiimage.h:
34561 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34562 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34563 * gst-libs/gst/vaapi/gstvaapisurface.c:
34564 * gst-libs/gst/vaapi/gstvaapisurface.h:
34565 Try to not reference VA-API types directly.
34567 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34569 * sys/vaapisink/gstvaapisink.c:
34570 Fix reflection code to preserve aspect ratio.
34572 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34574 * sys/vaapisink/gstvaapisink.c:
34575 * sys/vaapisink/gstvaapisink.h:
34576 Fix fullscreen mode.
34578 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34580 * sys/vaapisink/gstvaapisink.c:
34581 * sys/vaapisink/gstvaapisink.h:
34582 Add OpenGL reflection effect ("use-reflection").
34584 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34587 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34588 Use a projection suitable for rotation around the Y axis.
34590 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34593 * sys/vaapisink/Makefile.am:
34594 * sys/vaapisink/gstvaapisink.c:
34595 * sys/vaapisink/gstvaapisink.h:
34596 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34598 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34601 * debian.upstream/Makefile.am:
34602 * debian.upstream/control.in:
34603 * debian.upstream/libgstvaapi-glx.install.in:
34604 Add libgstvaapi-glx-0 package.
34606 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34608 * pkgconfig/Makefile.am:
34609 Really fix make distclean.
34611 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34613 * docs/reference/libs/Makefile.am:
34616 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34618 * pkgconfig/Makefile.am:
34619 Fix make distclean.
34621 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34623 * tests/Makefile.am:
34626 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34628 * docs/reference/libs/Makefile.am:
34629 * docs/reference/libs/libs.core.types:
34630 * docs/reference/libs/libs.glx.types:
34631 * docs/reference/libs/libs.x11.types:
34634 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34636 * sys/vaapisink/gstvaapisink.h:
34637 Fix build without GLX.
34639 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34644 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34646 * sys/vaapisink/Makefile.am:
34647 * sys/vaapisink/gstvaapisink.c:
34648 * sys/vaapisink/gstvaapisink.h:
34649 Add VA/GLX support to vaapisink.
34651 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34653 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34654 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34655 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34656 Add glXSwapBuffers() workaround for NVIDIA.
34658 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34660 * tests/Makefile.am:
34661 * tests/test-textures.c:
34662 Improve VA/GLX textures test.
34664 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34666 * gst-libs/gst/vaapi/gstvaapitexture.c:
34667 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34668 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34669 Fix texture rendering.
34671 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34673 * docs/reference/libs/libs-docs.xml.in:
34674 * docs/reference/libs/libs-sections.txt:
34675 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34676 * gst-libs/gst/vaapi/gstvaapitexture.c:
34679 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34681 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34682 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34683 Add gst_vaapi_window_glx_put_texture() helper.
34685 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34687 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34690 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34694 * tests/test-windows.c:
34697 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34699 * gst-libs/gst/vaapi/Makefile.am:
34700 * gst-libs/gst/vaapi/gstvaapitexture.c:
34701 * gst-libs/gst/vaapi/gstvaapitexture.h:
34702 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34703 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34704 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34706 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34708 * docs/reference/libs/libs-sections.txt:
34709 * gst-libs/gst/vaapi/gstvaapiobject.c:
34710 * gst-libs/gst/vaapi/gstvaapiobject.h:
34711 Add gst_vaapi_object_{,un}lock_display() helpers.
34713 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34715 * tests/Makefile.am:
34718 * tests/test-windows.c:
34719 Factor out image utilities.
34721 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34723 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34724 MT-Safe: lock display.
34726 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34728 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34729 Make sure window resize completed prior to resizing the GL viewport.
34731 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34733 * gst-libs/gst/vaapi/Makefile.am:
34734 gstvaapicompat.h is a private header, don't install it.
34736 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34738 * docs/reference/libs/libs-sections.txt:
34739 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34740 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34741 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34742 Add gst_vaapi_display_{sync,flush}() helpers.
34744 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34746 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34747 * sys/vaapisink/gstvaapisink.c:
34748 * sys/vaapisink/gstvaapisink.h:
34749 Add "synchronous" mode.
34751 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34753 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34754 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34755 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34757 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34759 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34760 Restore GLX context only if there is one.
34762 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34764 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34765 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34766 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34767 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34768 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34770 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34772 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34773 Check GstVaapiWindow::render() is available prior to calling it.
34775 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34777 * tests/Makefile.am:
34778 * tests/test-display.c:
34779 * tests/test-textures.c:
34780 Add VA/GLX display tests.
34782 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34785 * gst-libs/gst/vaapi/Makefile.am:
34788 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34790 * docs/reference/libs/Makefile.am:
34791 * docs/reference/libs/libs-docs.xml.in:
34792 * docs/reference/libs/libs-sections.txt:
34793 * docs/reference/libs/libs.types:
34794 Add missing API documentation.
34796 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34799 * gst-libs/gst/vaapi/Makefile.am:
34800 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34801 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34802 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34803 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34804 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34805 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34806 * pkgconfig/Makefile.am:
34807 * pkgconfig/gstreamer-vaapi-glx.pc.in:
34808 * tests/Makefile.am:
34809 * tests/test-textures.c:
34810 Add initial VA/GLX support.
34812 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34814 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34815 Add missing includes (for vaapi_check_status()).
34817 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34819 * gst-libs/gst/vaapi/gstvaapidebug.h:
34820 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34822 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34824 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34825 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34826 Add gst_vaapi_window_x11_is_foreign_xid() helper.
34828 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34830 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34831 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34832 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34833 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34834 Allow derived classes to specify custom Visual and Colormap.
34836 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34838 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34839 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34840 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34841 Allow window creation with a specific visual (e.g. for GLX support).
34843 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34845 * gst-libs/gst/vaapi/gstvaapiimage.c:
34846 Fix return value on error (though it's the same in the end).
34848 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34850 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34851 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34852 Simplify initialization of VADisplay.
34854 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34857 Move __attribute__((visibility("hidden"))) check down.
34859 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34861 * docs/reference/libs/libs-sections.txt:
34862 * gst-libs/gst/vaapi/gstvaapiimage.c:
34863 * gst-libs/gst/vaapi/gstvaapiimage.h:
34864 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34865 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34866 * gst-libs/gst/vaapi/gstvaapisurface.c:
34867 * gst-libs/gst/vaapi/gstvaapisurface.h:
34868 * tests/test-surfaces.c:
34869 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34871 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34873 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34874 Use the parent display object, no need to maintain another one.
34875 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34877 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34879 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34880 Add more internal helpers.
34882 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34884 * gst-libs/gst/vaapi/gstvaapiimage.c:
34885 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34886 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34887 * gst-libs/gst/vaapi/gstvaapisurface.c:
34888 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34889 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34890 Rename to GST_VAAPI_OBJECT_DISPLAY().
34892 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34894 * docs/reference/libs/libs-sections.txt:
34895 * gst-libs/gst/vaapi/gstvaapiimage.c:
34896 * gst-libs/gst/vaapi/gstvaapiobject.c:
34897 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34898 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34899 * gst-libs/gst/vaapi/gstvaapisurface.c:
34900 * gst-libs/gst/vaapi/gstvaapitypes.h:
34901 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34902 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34904 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34906 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34907 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34908 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34909 Make GstVaapiWindow* derive from GstVaapiObject.
34911 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34914 Factor out use gstreamer-vaapi (PACKAGE name).
34916 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34919 Improve versioning summary.
34921 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34923 * gst-libs/gst/vaapi/Makefile.am:
34924 gstvaapicompat.h is now a private header (not installed).
34926 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34928 * gst-libs/gst/vaapi/gstvaapiimage.c:
34929 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34930 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34931 * gst-libs/gst/vaapi/gstvaapiobject.c:
34932 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34933 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34934 Include gstvaapicompat.h in source files only, not headers.
34936 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34939 * gst-libs/gst/vaapi/Makefile.am:
34940 * sys/vaapiconvert/Makefile.am:
34941 * sys/vaapisink/Makefile.am:
34942 * tests/Makefile.am:
34943 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34945 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34949 * gst-libs/gst/vaapi/Makefile.am:
34950 * gst-libs/gst/vaapi/gstvaapicompat.h:
34951 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34952 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34953 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34954 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34955 * gst-libs/gst/vaapi/gstvaapisurface.c:
34956 * gst-libs/gst/vaapi/gstvaapiutils.c:
34957 * gst-libs/gst/vaapi/gstvaapiutils.h:
34958 * pkgconfig/gstreamer-vaapi-x11.pc.in:
34959 * pkgconfig/gstreamer-vaapi.pc.in:
34960 * sys/vaapiconvert/Makefile.am:
34961 * sys/vaapisink/Makefile.am:
34962 * tests/Makefile.am:
34963 Add compatibility with the original VA-API 0.29.
34965 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34967 * gst-libs/gst/vaapi/gstvaapivalue.h:
34968 Add missing file (gstvaapivalue.h).
34970 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34972 * gst-libs/gst/vaapi/gstvaapiimage.c:
34973 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34974 * gst-libs/gst/vaapi/gstvaapisurface.c:
34975 Fix g_warning() invocation.
34977 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34979 * gst-libs/gst/vaapi/gstvaapisurface.c:
34980 Deassociate subpictures while destroying the surface.
34982 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34984 * gst-libs/gst/vaapi/gstvaapisurface.c:
34985 Fix destruction order of subpictures. They should be destroyed first.
34987 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34990 * gst-libs/gst/vaapi/gstvaapiimage.c:
34991 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34992 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34993 * tests/test-windows.c:
34994 Add support for AYUV format.
34996 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34998 * tests/test-windows.c:
34999 Simplify upload process and fallback to subpictures.
35001 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35003 * docs/reference/libs/libs-docs.xml.in:
35004 * docs/reference/libs/libs-sections.txt:
35005 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35008 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35010 * gst-libs/gst/vaapi/Makefile.am:
35011 * gst-libs/gst/vaapi/gstvaapiobject.c:
35012 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35013 * gst-libs/gst/vaapi/gstvaapitypes.h:
35014 * gst-libs/gst/vaapi/gstvaapivalue.c:
35015 Move GValue specific stuff to a dedicated file.
35017 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35019 * tests/test-surfaces.c:
35020 Cosmetics (lowercase for consistency).
35022 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35024 * gst-libs/gst/vaapi/gstvaapiobject.c:
35025 Cosmetics (vertical alignment).
35027 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35029 * gst-libs/gst/vaapi/gstvaapiobject.c:
35030 Fix return value on error.
35032 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35034 * docs/reference/libs/libs-sections.txt:
35035 * gst-libs/gst/vaapi/gstvaapiimage.c:
35036 * gst-libs/gst/vaapi/gstvaapiimage.h:
35037 * gst-libs/gst/vaapi/gstvaapiobject.c:
35038 * gst-libs/gst/vaapi/gstvaapiobject.h:
35039 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35040 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35041 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35042 * gst-libs/gst/vaapi/gstvaapisurface.c:
35043 * gst-libs/gst/vaapi/gstvaapisurface.h:
35044 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35045 * tests/test-surfaces.c:
35046 Move "id" down to the GstVaapiObject base.
35048 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35050 * gst-libs/gst/vaapi/gstvaapitypes.c:
35051 Cosmetics (drop extraneous empty line).
35053 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35055 * gst-libs/gst/vaapi/Makefile.am:
35056 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35057 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
35058 Add GParamSpecs for GstVaapiID.
35060 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35062 * docs/reference/libs/libs.types:
35063 Drop gst_vaapi_id_get_type().
35065 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35067 * docs/reference/libs/libs-sections.txt:
35068 * gst-libs/gst/vaapi/gstvaapitypes.h:
35069 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
35071 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35073 * docs/reference/libs/libs-sections.txt:
35074 * docs/reference/libs/libs.types:
35075 * gst-libs/gst/vaapi/Makefile.am:
35076 * gst-libs/gst/vaapi/gstvaapitypes.c:
35077 * gst-libs/gst/vaapi/gstvaapitypes.h:
35078 Add GstVaapiID abstraction.
35080 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35082 * docs/reference/libs/libs.types:
35085 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35087 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35088 * gst-libs/gst/vaapi/gstvaapiimage.c:
35089 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35090 * gst-libs/gst/vaapi/gstvaapisurface.c:
35091 Drop useless include (<va/va_backend.h>).
35093 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35095 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35096 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
35098 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35100 * gst-libs/gst/vaapi/Makefile.am:
35101 * gst-libs/gst/vaapi/gstvaapiimage.c:
35102 * gst-libs/gst/vaapi/gstvaapiobject.c:
35103 * gst-libs/gst/vaapi/gstvaapiobject.h:
35104 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35105 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35106 * gst-libs/gst/vaapi/gstvaapisurface.c:
35107 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35108 Move private definitions and accessors to gstvaapiobject_priv.h.
35110 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35112 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35113 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35114 * gst-libs/gst/vaapi/gstvaapiimage.c:
35115 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35116 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35117 * gst-libs/gst/vaapi/gstvaapiobject.c:
35118 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35119 * gst-libs/gst/vaapi/gstvaapisurface.c:
35120 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35121 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35122 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35123 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35124 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35125 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35126 Fix short descriptions.
35128 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35132 * debian.upstream/Makefile.am:
35133 * debian.upstream/changelog.in:
35134 * debian.upstream/compat:
35135 * debian.upstream/control.in:
35136 * debian.upstream/copyright:
35137 * debian.upstream/gstreamer-vaapi-doc.install.in:
35138 * debian.upstream/gstreamer-vaapi.install.in:
35139 * debian.upstream/libgstvaapi-dev.install.in:
35140 * debian.upstream/libgstvaapi-x11.install.in:
35141 * debian.upstream/libgstvaapi.install.in:
35142 * debian.upstream/rules:
35143 Generate upstream packages through make deb.upstream.
35145 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35148 Bump version for development.
35150 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35152 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35153 Use a black background for new windows.
35155 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35160 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35163 * docs/reference/libs/libs.types:
35164 * gst-libs/gst/vaapi/Makefile.am:
35165 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35166 * gst-libs/gst/vaapi/gstvaapiobject.c:
35167 * gst-libs/gst/vaapi/gstvaapiobject.h:
35168 * tests/test-surfaces.c:
35169 Add "destroy" signal.
35171 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35173 * docs/reference/libs/libs-docs.xml.in:
35174 Improve gst-plugins-vaapi Library reference template.
35176 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35178 * docs/reference/libs/libs-docs.xml.in:
35179 * docs/reference/libs/libs-sections.txt:
35180 * gst-libs/gst/vaapi/Makefile.am:
35181 * gst-libs/gst/vaapi/gstvaapiimage.c:
35182 * gst-libs/gst/vaapi/gstvaapiimage.h:
35183 * gst-libs/gst/vaapi/gstvaapiobject.c:
35184 * gst-libs/gst/vaapi/gstvaapiobject.h:
35185 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35186 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35187 * gst-libs/gst/vaapi/gstvaapisurface.c:
35188 * gst-libs/gst/vaapi/gstvaapisurface.h:
35189 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35190 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35192 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35194 * sys/vaapisink/gstvaapisink.c:
35197 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35199 * sys/vaapisink/gstvaapisink.c:
35200 Make sure VA display is valid when created with an explicit "display" name.
35202 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35204 * sys/vaapisink/gstvaapisink.c:
35205 Use plain "display" property for the X11 display name.
35207 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35209 * sys/vaapiconvert/gstvaapiconvert.c:
35210 * sys/vaapisink/gstvaapisink.c:
35211 Document vaapiconvert & vaapisink plugins.
35213 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35216 * docs/reference/Makefile.am:
35217 * docs/reference/plugins/Makefile.am:
35218 * docs/reference/plugins/plugins-docs.xml.in:
35219 * docs/reference/plugins/plugins-overrides.txt:
35220 * docs/reference/plugins/plugins-sections.txt:
35221 * docs/reference/plugins/plugins.types:
35222 Add plugins documentation template.
35224 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35226 * sys/vaapisink/gstvaapisink.c:
35227 * sys/vaapisink/gstvaapisink.h:
35228 Don't export gst_vaapisink_get_display().
35230 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35233 * docs/reference/libs/libs-docs.xml.in:
35234 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35235 * gst-libs/gst/vaapi/gstvaapiimage.c:
35236 * gst-libs/gst/vaapi/gstvaapisurface.c:
35237 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35238 Drop introspection annotations since they require gtk-doc >= 1.12.
35240 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35242 * gst-libs/gst/vaapi/gstvaapisurface.c:
35243 Add note about the fact that the surface holds an extra reference to the subpicture.
35245 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35247 * gst-libs/gst/vaapi/gstvaapiimage.c:
35248 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35249 * gst-libs/gst/vaapi/gstvaapisurface.c:
35250 Improve debugging messages.
35252 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35254 * tests/test-windows.c:
35255 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35257 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35259 * docs/reference/libs/libs-sections.txt:
35260 * gst-libs/gst/vaapi/gstvaapisurface.c:
35261 * gst-libs/gst/vaapi/gstvaapisurface.h:
35262 * tests/test-windows.c:
35263 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35265 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35267 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35268 Wait for MapNotify or UnmapNotify events on foreign windows too.
35270 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35272 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35273 Check whether the foreign XID is mapped at binding time.
35275 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35277 * sys/vaapisink/gstvaapisink.c:
35278 Add missing includes.
35280 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35283 * debian/Makefile.am:
35284 * debian/control.in:
35285 * debian/gstreamer-vaapi-doc.install.in:
35289 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35291 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35292 Fix warnings (drop extraneous var).
35294 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35296 * docs/reference/libs/libs-sections.txt:
35297 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35298 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35300 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35302 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35305 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35307 * gst-libs/gst/vaapi/Makefile.am:
35308 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35309 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35310 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35311 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35312 Try to improve switch to fullscreen mode.
35314 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35316 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35317 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35318 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35319 Improve display locking and rework X event wait functions.
35321 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35323 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35324 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35325 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35327 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35329 * gst-libs/gst/vaapi/Makefile.am:
35330 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35331 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35332 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.
35334 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35336 * docs/reference/libs/libs-sections.txt:
35337 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35338 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35339 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35341 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35343 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35344 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35345 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35346 Add gst_vaapi_window_get_display() to base.
35348 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35350 * docs/reference/libs/libs-docs.xml.in:
35351 * docs/reference/libs/libs-sections.txt:
35352 * gst-libs/gst/vaapi/Makefile.am:
35353 * gst-libs/gst/vaapi/gstvaapitypes.h:
35354 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35355 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35356 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35357 * sys/vaapisink/gstvaapisink.c:
35358 * sys/vaapisink/gstvaapisink.h:
35359 Add GstVaapiPoint & GstVaapiRectangle data structures.
35361 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35366 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35369 * sys/vaapisink/gstvaapisink.c:
35370 * sys/vaapisink/gstvaapisink.h:
35371 Allow `vaapisink` to render videos in fullscreen mode.
35373 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35375 * docs/reference/libs/libs-sections.txt:
35376 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35377 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35378 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35379 Add gst_vaapi_window_set_fullscreen() API.
35381 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35383 * sys/vaapisink/gstvaapisink.c:
35384 Size window so that to respect the video and pixel aspect ratio.
35386 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35388 * docs/reference/libs/libs-sections.txt:
35389 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35390 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35391 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35392 * tests/test-display.c:
35393 Add gst_vaapi_display_get_pixel_aspect_ratio().
35395 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35397 * docs/reference/libs/libs-sections.txt:
35400 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35402 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35403 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35404 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35405 * tests/test-display.c:
35406 Add display size accessors.
35408 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35411 * debian/control.in:
35412 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35414 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35416 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35417 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35418 * gst-libs/gst/vaapi/gstvaapiimage.h:
35419 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35420 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35421 * gst-libs/gst/vaapi/gstvaapisurface.h:
35422 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35423 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35424 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35425 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35426 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35427 Fix documentation of *Class'es.
35429 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35431 * gst-libs/gst/vaapi/gstvaapiutils.c:
35432 * gst-libs/gst/vaapi/gstvaapiutils.h:
35433 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35434 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35436 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35438 * docs/reference/libs/libs-sections.txt:
35439 * gst-libs/gst/vaapi/gstvaapisurface.h:
35440 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35441 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35443 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35445 * docs/reference/libs/libs-sections.txt:
35446 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35447 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35448 * sys/vaapisink/gstvaapisink.c:
35449 * tests/test-windows.c:
35450 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35452 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35454 * docs/reference/libs/Makefile.am:
35455 Fix make dist for --enable-gtk-doc builds.
35457 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35460 Improve autogen.sh.
35462 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35466 Generate gtk-doc.make from gtkdocize.
35468 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35473 * docs/Makefile.am:
35474 * docs/reference/Makefile.am:
35475 * docs/reference/libs/Makefile.am:
35476 * docs/reference/libs/libs-docs.xml.in:
35477 * docs/reference/libs/libs-overrides.txt:
35478 * docs/reference/libs/libs-sections.txt:
35479 * docs/reference/libs/libs.types:
35480 Document public API for libgstvaapi-*.so.*.
35482 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35484 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35485 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35486 Document GstVaapiVideoBuffer.
35488 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35490 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35491 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35492 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35493 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35494 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35495 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35496 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35498 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35500 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35501 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35502 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35503 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35504 * gst-libs/gst/vaapi/gstvaapiimage.c:
35505 * gst-libs/gst/vaapi/gstvaapiimage.h:
35506 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35507 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35508 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35509 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35510 * gst-libs/gst/vaapi/gstvaapisurface.c:
35511 * gst-libs/gst/vaapi/gstvaapisurface.h:
35512 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35513 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35514 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35515 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35516 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35517 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35518 Add tedious documentation.
35520 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35522 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35523 Beautify append_formats().
35525 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35527 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35528 Simplify GstVaapiDisplay (use GArray).
35530 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35533 * sys/vaapiconvert/gstvaapiconvert.c:
35534 * sys/vaapiconvert/gstvaapiconvert.h:
35535 Factor out direct-rendering infrastructure.
35537 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35539 * sys/vaapiconvert/gstvaapiconvert.c:
35540 * sys/vaapiconvert/gstvaapiconvert.h:
35541 Allow user to specify inout-buffers & derive-image optimizations.
35543 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35545 * sys/vaapiconvert/gstvaapiconvert.c:
35546 Reduce number of debug messaged printed out.
35548 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35550 * sys/vaapiconvert/gstvaapiconvert.c:
35551 * sys/vaapiconvert/gstvaapiconvert.h:
35552 Add vaDeriveImage() optimization.
35554 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35556 * gst-libs/gst/vaapi/gstvaapiimage.c:
35557 Fix gst_vaapi_image_create() from a foreign VA image.
35559 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35561 * gst-libs/gst/vaapi/gstvaapiimage.c:
35562 * gst-libs/gst/vaapi/gstvaapiimage.h:
35563 * gst-libs/gst/vaapi/gstvaapisurface.c:
35564 * gst-libs/gst/vaapi/gstvaapisurface.h:
35565 Add gst_vaapi_surface_derive_image() API.
35567 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35569 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35570 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35571 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35572 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().
35574 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35576 * tests/test-windows.c:
35577 Try YV12 & I420 image formats too.
35579 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35581 * gst-libs/gst/vaapi/gstvaapiimage.c:
35582 Split map/unmap functions into internal functions that don't check preconditions.
35584 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35586 * gst-libs/gst/vaapi/gstvaapiimage.c:
35587 Improve gst_vaapi_image_new() sanity checks.
35589 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35591 * tests/test-windows.c:
35594 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35596 * sys/vaapiconvert/gstvaapiconvert.c:
35597 Check if our inout buffer is still alive or default to a separate output buffer.
35599 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35601 * sys/vaapiconvert/gstvaapiconvert.c:
35602 * sys/vaapiconvert/gstvaapiconvert.h:
35603 Factor out buffers negotiation and optimization checks.
35605 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35607 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35608 * gst-libs/gst/vaapi/gstvaapiimage.c:
35609 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35610 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35611 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35612 * sys/vaapiconvert/gstvaapiconvert.h:
35615 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35617 * gst-libs/gst/vaapi/gstvaapiimage.c:
35618 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35620 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35622 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35623 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35624 * gst-libs/gst/vaapi/gstvaapiimage.c:
35625 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35626 * gst-libs/gst/vaapi/gstvaapisurface.c:
35627 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35628 Add VA display locking utilities.
35630 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35632 * sys/vaapisink/gstvaapisink.c:
35633 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35635 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35637 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35638 * tests/test-windows.c:
35639 Don't show window by default during creation.
35641 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35643 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35644 Fix gst_vaapi_window_x11_destroy().
35646 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35648 * sys/vaapiconvert/gstvaapiconvert.c:
35649 * sys/vaapiconvert/gstvaapiconvert.h:
35650 Alias sink & src pad buffers whenever possible.
35652 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35654 * gst-libs/gst/vaapi/gstvaapiimage.c:
35655 * gst-libs/gst/vaapi/gstvaapiimage.h:
35656 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35658 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35660 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35661 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35662 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35664 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35666 * sys/vaapiconvert/gstvaapiconvert.c:
35667 Fix image & surface size cache.
35669 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35672 Move gstreamer-vaapi package versioning to the top.
35674 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35677 Bump version for development.
35679 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35682 Cosmetics (shorten lines).
35684 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35690 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35692 * debian/Makefile.am:
35693 * debian/changelog.in:
35695 * debian/control.in:
35696 * debian/copyright:
35697 * debian/gstreamer-vaapi.install.in:
35698 * debian/libgstvaapi-dev.install.in:
35699 * debian/libgstvaapi-x11.install.in:
35700 * debian/libgstvaapi.install.in:
35702 Add debian packaging.
35704 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35708 Add debian packaging.
35710 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35712 * pkgconfig/Makefile.am:
35713 Silence GNU make extensions warning.
35715 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35718 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'
35720 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35724 * pkgconfig/Makefile.am:
35725 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35726 * pkgconfig/gstreamer-vaapi.pc.in:
35727 Add pkgconfig files.
35729 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35732 * gst-libs/gst/vaapi/Makefile.am:
35733 * sys/vaapisink/Makefile.am:
35734 * tests/Makefile.am:
35735 Split X11 support to libgstvaapi-x11-*.so.*
35737 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35739 * gst-libs/gst/vaapi/Makefile.am:
35740 Don't install private headers.
35742 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35744 * gst-libs/gst/vaapi/gstvaapidebug.h:
35745 * gst-libs/gst/vaapi/gstvaapiutils.c:
35746 * gst-libs/gst/vaapi/gstvaapiutils.h:
35749 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35751 * gst-libs/gst/vaapi/Makefile.am:
35752 * gst-libs/gst/vaapi/gstvaapidebug.h:
35753 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35754 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35755 * gst-libs/gst/vaapi/gstvaapiimage.c:
35756 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35757 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35758 * gst-libs/gst/vaapi/gstvaapisurface.c:
35759 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35760 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35761 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35762 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35763 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35764 Rename vaapi_debug.h to gstvaapidebug.h.
35766 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35768 * gst-libs/gst/vaapi/Makefile.am:
35769 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35770 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35771 * gst-libs/gst/vaapi/gstvaapiimage.c:
35772 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35773 * gst-libs/gst/vaapi/gstvaapisurface.c:
35774 * gst-libs/gst/vaapi/gstvaapiutils.c:
35775 * gst-libs/gst/vaapi/gstvaapiutils.h:
35776 * gst-libs/gst/vaapi/vaapi_debug.h:
35777 Move vaapi_utils.* to gstvaapiutils.*
35779 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35781 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35782 Cosmetics (remove an extra line).
35784 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35786 * gst-libs/gst/vaapi/Makefile.am:
35787 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35788 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35789 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35790 Move X11 utilties to gstvaapiutils_x11.[ch].
35792 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35794 * gst-libs/gst/vaapi/Makefile.am:
35795 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35796 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35797 * sys/vaapiconvert/gstvaapiconvert.c:
35798 * sys/vaapisink/gstvaapisink.c:
35799 Rename GstVaapiSinkBase to GstVaapiVideoSink.
35801 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35804 * tests/Makefile.am:
35805 * tests/examples/Makefile.am:
35806 * tests/examples/generic/Makefile.am:
35807 * tests/test-display.c:
35808 * tests/test-surfaces.c:
35809 * tests/test-windows.c:
35810 Move tests to top-level tests/ directory.
35812 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35814 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35815 * gst-libs/gst/vaapi/gstvaapiimage.c:
35816 * sys/vaapiconvert/gstvaapiconvert.c:
35817 * sys/vaapiconvert/gstvaapiconvert.h:
35818 Handle I420 formats internally in GstVaapiImage.
35820 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35822 * sys/vaapiconvert/gstvaapiconvert.c:
35823 * sys/vaapiconvert/gstvaapiconvert.h:
35824 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35826 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35828 * gst-libs/gst/vaapi/gstvaapiimage.c:
35829 Implement I420 and YV12 if the underlying implementation does not.
35831 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35833 * sys/vaapiconvert/Makefile.am:
35834 * sys/vaapiconvert/gstvaapiconvert.c:
35835 * sys/vaapiconvert/gstvaapiconvert.h:
35836 Add initial vaapiconvert plugin.
35838 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35840 * sys/vaapisink/gstvaapisink.c:
35841 * sys/vaapisink/gstvaapisink.h:
35844 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35846 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35849 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35851 * tests/examples/generic/test-windows.c:
35852 Generate R/G/B rects.
35854 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35856 * gst-libs/gst/vaapi/gstvaapisurface.c:
35857 * gst-libs/gst/vaapi/gstvaapisurface.h:
35858 Add gst_vaapi_surface_sync().
35860 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35862 * gst-libs/gst/vaapi/gstvaapiimage.c:
35863 Cosmetics (reverse args order).
35865 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35867 * gst-libs/gst/vaapi/gstvaapiimage.c:
35868 * gst-libs/gst/vaapi/gstvaapiimage.h:
35869 * gst-libs/gst/vaapi/gstvaapisurface.c:
35872 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35874 * gst-libs/gst/vaapi/Makefile.am:
35875 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35876 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35877 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35878 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35879 * tests/examples/generic/Makefile.am:
35880 * tests/examples/generic/test-windows.c:
35881 Add VA/X11 window abstraction.
35883 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35885 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35886 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35887 Add VA and X11 display accessors.
35889 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35891 * gst-libs/gst/vaapi/gstvaapiimage.c:
35894 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35896 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35899 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35901 * gst-libs/gst/vaapi/gstvaapiimage.c:
35902 * gst-libs/gst/vaapi/gstvaapiimage.h:
35903 * gst-libs/gst/vaapi/gstvaapisurface.c:
35904 * gst-libs/gst/vaapi/gstvaapisurface.h:
35905 Add gst_vaapi_{get,put}_image() API.
35907 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35909 * gst-libs/gst/vaapi/gstvaapiimage.c:
35910 * gst-libs/gst/vaapi/gstvaapiimage.h:
35911 Add gst_vaapi_image_update_from_buffer() helper.
35913 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35915 * sys/vaapisink/Makefile.am:
35916 * sys/vaapisink/gstvaapisink.c:
35917 * sys/vaapisink/gstvaapisink.h:
35918 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35920 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35922 * tests/examples/generic/Makefile.am:
35923 * tests/examples/generic/test-surfaces.c:
35926 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35928 * gst-libs/gst/vaapi/Makefile.am:
35929 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35930 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35931 Add basic GstVaapiVideoBuffer.
35933 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35935 * gst-libs/gst/vaapi/Makefile.am:
35936 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35937 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35938 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35939 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35940 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35941 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35942 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35944 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35946 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35947 Simplify format conversion code.
35949 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35951 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35952 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35953 Add gst_vaapi_image_format_from_caps() helper.
35955 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35957 * gst-libs/gst/vaapi/Makefile.am:
35958 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35959 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35960 Add VA surface pool (lazy allocator).
35962 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35964 * gst-libs/gst/vaapi/gstvaapisurface.c:
35965 * gst-libs/gst/vaapi/gstvaapisurface.h:
35966 Add gst_vaapi_surface_get_size() helper.
35968 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35970 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35971 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35973 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35975 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35976 Reset display-name if the user provided his own X11 display.
35978 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35980 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35981 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35982 * tests/examples/generic/test-display.c:
35983 Add gst_vaapi_display_x11_new_with_display() API.
35985 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35987 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35988 * gst-libs/gst/vaapi/gstvaapiimage.h:
35989 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35990 * gst-libs/gst/vaapi/gstvaapisurface.h:
35991 Fix *_GET_CLASS() definitions...
35993 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35995 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35996 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35997 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35998 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35999 * tests/examples/generic/test-display.c:
36000 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
36002 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36004 * gst-libs/gst/vaapi/gstvaapisurface.c:
36005 * gst-libs/gst/vaapi/gstvaapisurface.h:
36006 Use GstVaapiChromaType abstraction.
36008 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36010 * gst-libs/gst/vaapi/gstvaapiimage.c:
36011 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36012 * gst-libs/gst/vaapi/gstvaapisurface.c:
36013 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
36015 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36017 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36018 Don't warn on failure, just return an appropriate error or value.
36020 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36022 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36023 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36024 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36025 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
36027 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36029 * gst-libs/gst/vaapi/Makefile.am:
36030 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
36031 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
36032 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
36034 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36036 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36037 * gst-libs/gst/vaapi/gstvaapiimage.c:
36038 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36039 * gst-libs/gst/vaapi/gstvaapisurface.c:
36040 * gst-libs/gst/vaapi/vaapi_debug.h:
36043 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36045 * gst-libs/gst/vaapi/gstvaapiimage.c:
36046 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36047 Fix GstVaapiImage and GstVaapiSubpicture initialization.
36049 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36051 * gst-libs/gst/vaapi/gstvaapisurface.c:
36052 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
36054 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36056 * tests/examples/generic/test-display.c:
36059 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36061 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36062 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36063 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36064 Fix GstVaapiDisplay initialization.
36066 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36068 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36069 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36070 Get VA image & subpicture formats as GstCaps.
36072 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36074 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36075 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36076 Add helper to convert from GstVaapiImageFormat to GstCaps.
36078 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36080 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36081 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36082 * gst-libs/gst/vaapi/gstvaapisurface.c:
36083 Cosmetics (drop unused variables).
36085 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36088 * sys/vaapiconvert/Makefile.am:
36089 * sys/vaapiconvert/gstvaapiconvert.c:
36090 * sys/vaapiconvert/gstvaapiconvert.h:
36091 * sys/vaapisink/Makefile.am:
36092 * sys/vaapisink/gstvaapisink.c:
36093 * sys/vaapisink/gstvaapisink.h:
36094 Add boilerplate for vaapiconvert and vaapisink elements.
36096 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36100 * sys/vaapiconvert/Makefile.am:
36101 Add vaapiconvert element hierarchy.
36103 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36105 * sys/vaapisink/Makefile.am:
36106 Rename to vaapisink.
36108 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36110 * gst-libs/gst/vaapi/gstvaapisurface.c:
36111 Shorter code (and more correct).
36113 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36115 * gst-libs/gst/vaapi/gstvaapisurface.c:
36116 * gst-libs/gst/vaapi/gstvaapisurface.h:
36117 Add helper to get GstVaapiDisplay from a surface.
36119 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36121 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36122 Fix subpicture formats list length.
36124 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36126 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36127 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36128 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
36130 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36132 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36133 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36134 Cosmetics (more checks, includes).
36136 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36138 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36139 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36140 Really add VA subpicture abstraction.
36142 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36144 * gst-libs/gst/vaapi/Makefile.am:
36145 * gst-libs/gst/vaapi/gstvaapiimage.c:
36146 * gst-libs/gst/vaapi/gstvaapiimage.h:
36147 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36148 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36149 * gst-libs/gst/vaapi/gstvaapisurface.c:
36150 * gst-libs/gst/vaapi/gstvaapisurface.h:
36151 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36153 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36156 * gst-libs/gst/vaapi/Makefile.am:
36157 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36158 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36159 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36160 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36161 * gst-libs/gst/vaapi/vaapi_debug.h:
36162 * gst-libs/gst/vaapi/vaapi_utils.c:
36163 * gst-libs/gst/vaapi/vaapi_utils.h:
36164 * tests/examples/generic/Makefile.am:
36165 * tests/examples/generic/test-display.c:
36166 Add initial VA display abstraction.
36168 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36172 * tests/Makefile.am:
36173 * tests/examples/Makefile.am:
36174 * tests/examples/generic/Makefile.am:
36175 Add tests infrastructure.
36177 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36180 Clean up VA-API checks.
36182 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36185 Check for __attribute__((visibility("hidden"))).