1 2022-01-30 09:38:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3 * gst/vaapi/gstvaapipluginutil.c:
5 vaapi: Disable Wayland if no libdrm
6 Platform wise, is not possible, as far as I known, to have Wayland
7 without kernel's DRM. Though, it's possible to configure
8 gstreamer-vaapi without DRM but Wayland support, with the enhanced
9 handling of dmabuf in vaapisink for Wayland, vaapisink will always
10 fail. Given both issues, configuration with no DRM but Wayland, makes
11 things more complex, and a simpler approach is to refuse that
13 This patch disables Wayland support if there isn't DRM support. Also,
14 it disables the display test for Wayland, relying only on DRM and
16 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
18 2022-01-30 07:10:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
20 * gst-libs/gst/vaapi/video-format.c:
21 vaapi: libs: video-format: Check if formats map is not NULL.
22 Formats map is instantiated at the end of the display
23 instantiation. The problem is the Wayland display which looks for a
24 format in a callback, before the map is populated.
25 If user compiles gstreamer-vaapi with DRM support, the map is
26 populated with a DRM display at GStreamer plugin registration. But if
27 not, or a VA driver is not available, the plugin will try with a
28 Wayland driver, which cause the NULL de-reference.
29 Nevertheless, in the case of no DRM support, and if the Wayland
30 display doesn't get a reply from the format conversion is not a
32 So the solution is the trivial one, check if the format map is already
33 populated before de-reference it.
35 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
37 === release 1.19.90 ===
39 2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
44 * gstreamer-vaapi.doap:
48 2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
51 Update ChangeLogs for 1.19.90
53 2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
57 meson: Add explicit check: kwarg to all run_command() calls
58 This is required since Meson 0.61.0, and causes a warning to be
60 https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
61 https://github.com/mesonbuild/meson/issues/9300
62 This exposed a bunch of places where we had broken run_command()
63 calls, unnecessary run_command() calls, and places where check: true
65 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
67 2022-01-04 16:19:44 +0800 He Junyan <junyan.he@intel.com>
69 * gst-libs/gst/vaapi/gstvaapiprofile.c:
70 vaapi: av1dec: Use named profiles to replace the numeric ones.
71 Use named AV1 profiles (i.e., main, high) to replace the old "0"
73 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
75 2021-12-01 15:36:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
77 * gst/vaapi/gstvaapidecodebin.c:
78 vaapidecodebin: Misc enhancements.
79 - Use GST_WARNING rather than g_critical
80 - Replace gst_ghost_pad_new_from_template() with
81 gst_ghost_pad_new() to avoid using the template.
82 - Declare extern variable
83 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
85 2021-12-01 12:26:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
87 * gst/vaapi/gstvaapidecode.c:
88 vaapidecode: Autogenerate caps template.
89 vaapidecode is used in vaapidecodebin and it exposes all the
90 theoretically supported caps, but that slows down autoplug. With this
91 autplug is negotiated faster, giving more option to decodebin to select
93 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
95 2021-11-16 17:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
97 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
98 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
99 vaapi: libs: Use unsized arrays as parameters.
100 Instead of defining a sized array for function signature, use it
101 unsized (a pointer alias, basically). In this way clang warning is
103 warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]
104 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
106 2021-11-16 17:21:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
109 vaapi: meson: Fail if static build.
110 And initialize the plugin array.
111 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
113 2021-11-15 16:38:34 +0800 Ung, Teng En <teng.en.ung@intel.com>
115 * gst/vaapi/gstvaapipostproc.c:
116 vaapipostproc: fix mising metadata when using system
117 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1325>
119 2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
124 === release 1.19.3 ===
126 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
131 * gstreamer-vaapi.doap:
135 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
138 Update ChangeLogs for 1.19.3
140 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
142 * tests/check/meson.build:
143 meson: update for meson.build_root() and .build_source() deprecation
144 -> use meson.project_build_root() or .global_build_root() instead.
145 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
147 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
150 * gst-libs/gst/vaapi/meson.build:
152 * tests/check/meson.build:
153 meson: update for dep.get_pkgconfig_variable() deprecation
154 ... in favour of dep.get_variable('foo', ..) which in some
155 cases allows for further cleanups in future since we can
156 extract variables from pkg-config dependencies as well as
157 internal dependencies using this mechanism.
158 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
160 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
163 meson: bump meson requirement to >= 0.59
164 For monorepo build and ugly/bad, for advanced feature
165 option API like get_option('xyz').required(..) which
166 we use in combination with the 'gpl' option.
167 For rest of modules for consistency (people will likely
168 use newer features based on the top-level requirement).
169 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
171 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
174 Docs: Fix a typo for Intel's vaapi driver name.
175 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
177 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
180 doc: update IRC links to OFTC
181 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
183 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
187 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
189 === release 1.19.2 ===
191 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
196 * gstreamer-vaapi.doap:
200 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
202 * gst/vaapi/gstvaapidecode.c:
203 vaapi: decoder: modify the condition to judge whether dma buffer is supported
204 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
205 return false even if this platform support the mem_type dma buffer.
206 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
207 on Gen12(such as TGL).
208 Without this patch, The command such as:
209 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
210 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
211 will return not-negotiated.
212 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
213 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
215 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
217 * gst-libs/gst/vaapi/gstvaapidisplay.c:
218 * gst/vaapi/gstvaapivideocontext.c:
219 Display: Add a property to export the VA display handle.
220 Just like what we do in VA plugins. The display can be seen as a
221 generic gst object and we can add a property to get the internal
223 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
225 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
227 * gst/vaapi/gstvaapivideomemory.c:
228 * gst/vaapi/gstvaapivideomemory.h:
229 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
230 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
231 peek the surface of the VA buffers. The old flag 0 just peek the
232 surface proxy, which may not be convenient for the users who do not
233 want to include our headers.
234 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
236 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
238 * gst/vaapi/gstvaapi.c:
239 * gst/vaapi/gstvaapidecode.c:
240 Revert "vaapi: Demote vaapidecodebin to rank NONE."
241 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
242 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
244 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
246 * gst/vaapi/gstvaapiencode.c:
247 plugins: encode: fix a deadlock because of _drain()
248 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
249 whose context does not hold the stream lock of the encoder. The
250 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
251 lock count to the stream lock of encoder and causes hang later.
252 We just remove the gst_vaapiencode_drain() and expand its logic
253 correctly according to the lock/unlock context.
254 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
256 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
258 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
259 libs: decoder: av1: Clean the film_grain_info field.
260 We need to clean all film_grain_info fields when the film grain
261 feature is not enabled. It may have random data because the picture
262 parameter buffer is not cleaned.
263 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
265 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
267 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
268 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
269 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
270 The MPEG2 spec has amendment 3 to introduce a new level highP, which
271 is used for 1080@50p/60p streams. We need to add this level to avoid
272 encoding failure because of the level check.
274 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
276 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
278 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
279 Decoder: H264: Add the support for frame packing arrangement SEI message.
280 Frame packing arrangement SEI message is an alternative simple stereo 3D
281 manner for AVC. We need to recognize that SEI message and report the correct
283 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
285 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
287 * gst-libs/gst/vaapi/gstvaapifilter.c:
289 Use g_memdup2() where available and add fallback for older GLib versions
290 Alloc size is based on existing allocations and struct sizes.
291 g_memdup() is deprecated since GLib 2.68 and we want to avoid
292 deprecation warnings with recent versions of GLib.
293 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
295 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
300 === release 1.19.1 ===
302 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
307 * gstreamer-vaapi.doap:
311 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
313 * gst/vaapi/gstvaapi.c:
314 * gst/vaapi/gstvaapidecode.c:
315 vaapi: Demote vaapidecodebin to rank NONE.
316 One of the main reasons of vaapidecodebin was because it mitigated the
317 possible surface exhaustion. But that problem is currently
318 solved. Nowadays, vaapidecodebin brings more problems than it
319 solves. Thus this patch demotes vaapidecodebin to NONE rank while
320 bumping PRIMARY + 1 the most common decoders.
321 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
323 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
325 * gst/vaapi/gstvaapi.c:
326 * gst/vaapi/gstvaapioverlay.c:
327 plugins: Demote rank of vaapipostproc and vaapioverlay.
328 Since almost all video filters have rank NONE, these both elements
330 This is useful for autovideoconvert and other bins, and users might
331 force to use these by setting the environment variable
332 GST_PLUGIN_FEATURE_RANK.
333 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
335 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
337 * tests/check/elements/vaapioverlay.c:
338 Use gst_element_request_pad_simple...
339 Instead of the deprecated gst_element_get_request_pad.
340 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
342 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
344 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
345 libs: encoder: VP9: fix > 4k encode fail issue
346 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
347 width of a tile in units of superblocks. So the max width of one tile
348 should not be larger than 64x64=4096. When the width exceeds 4k, we
349 need to split it into multiple tiles in columns. The current vp9 encoder
350 does not handle this correctly.
352 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
353 vaapivp9enc ! fakesink
355 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
357 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
359 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
360 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
361 Otherwise user will be misled that the specified device is using
362 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
363 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
365 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
367 * gst-libs/gst/vaapi/gstvaapiencoder.c:
368 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
369 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
370 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
371 If ROI is enabled, the CUs within the ROI region may have different
372 QP from the other part of the picture. This needs us to enable the
373 cu_qp_delta_enabled_flag even in the CQP mode.
374 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
376 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
378 * gst-libs/gst/vaapi/gstvaapicontext.c:
379 * gst-libs/gst/vaapi/gstvaapicontext.h:
380 * gst-libs/gst/vaapi/gstvaapiencoder.c:
381 * gst-libs/gst/vaapi/gstvaapifilter.c:
382 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
383 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
384 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
385 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
386 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
387 * gst-libs/gst/vaapi/gstvaapivalue.c:
388 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
389 * gst/vaapi/gstvaapipluginbase.c:
390 * gst/vaapi/gstvaapisink.c:
391 * gst/vaapi/gstvaapisink.h:
392 * gst/vaapi/gstvaapivideocontext.c:
393 * gst/vaapi/gstvaapivideomemory.c:
394 * tests/internal/simple-decoder.c:
395 gst: don't use volatile to mean atomic
396 volatile is not sufficient to provide atomic guarantees and real atomics
397 should be used instead. GCC 11 has started warning about using volatile
398 with atomic operations.
399 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
400 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
401 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
403 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
405 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
406 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
407 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
408 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
410 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
412 * gst/vaapi/gstvaapipostproc.c:
413 plugins: postproc: Fix a problem of propose_allocation when passthrough.
414 We should query the downstream element to answer a precise allocation
415 query when the passthrough mode is enabled.
416 The current way still decides the allocation by the postproc itself. The
418 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
419 vaapipostproc ! fakevideosink silent=false sync=true
420 will lose some info such as the GST_VIDEO_META_API_TYPE.
421 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
423 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
425 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
426 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
427 * gst/vaapi/gstvaapivideocontext.c:
428 libs: display: drm: support gst.vaapi.app.Display context for drm backend
429 Attributes for drm backend:
430 - va-display : ponter of VADisplay
431 - drm-device-fd : the DRM device file descriptor
432 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
434 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
437 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
438 libs: display: drm: allow user specify a drm device via an env variable
439 Currently the default drm device is always used on a system with
440 multiple drm devices. This patch allows user to specify the required
441 drm device via GST_VAAPI_DRM_DEVICE env variable
443 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
444 vaapih264enc ! fakesink
445 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
447 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
449 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
450 libs: display: drm: fix set_device_path_from_fd
451 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
452 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
453 so we can't get the right device path. Running test-display will get the
455 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
457 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
458 issue because a special permission is required for SET_VERSION ioctl.
459 This patch retrieves the device path from file descriptor via
461 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
462 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
464 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
466 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
467 glx: Iterate over FBConfig and select 8 bit color size
468 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
469 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
470 over it to find the correct config with supported values.
471 This also adds 8 bit alpha size to the framebuffer configuration which is
472 required to get it working properly.
473 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
475 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
477 * gst-libs/gst/vaapi/gstvaapiutils.c:
478 vaapipostproc: fix code style.
479 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
481 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
483 * gst-libs/gst/vaapi/gstvaapidisplay.c:
484 * gst-libs/gst/vaapi/gstvaapidisplay.h:
485 * gst-libs/gst/vaapi/gstvaapifilter.c:
486 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
487 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
489 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
491 * gst-libs/gst/vaapi/gstvaapiutils.c:
492 vaapipostproc: Added gstreamer BT2020 color standard support.
493 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
495 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
497 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
498 decoder: AV1: Fix a static analysis problem of update_state().
499 No need to check the picture pointer after we have already dereferenced it.
501 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
503 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
505 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
506 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
507 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
508 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
509 The AV1 film_graim feature needs two surfaces the same time for
510 decoding. One is for recon surface which will be used as reference
511 later, and the other one is for display. The GstVaapiPicture should
512 contain the surface for display, while the vaBeginPicture() need
513 the recon surface as the target.
514 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
516 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
518 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
520 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
521 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
522 * gst-libs/gst/vaapi/gstvaapiprofile.c:
523 * gst-libs/gst/vaapi/gstvaapiprofile.h:
524 * gst-libs/gst/vaapi/gstvaapiutils.c:
525 * gst-libs/gst/vaapi/meson.build:
526 * gst/vaapi/gstvaapidecode.c:
528 libs: decoder: AV1: Add the av1 decoder support.
529 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
531 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
533 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
534 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
535 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
536 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
537 libs: codecobject: Add number of elements when create codec object.
538 One slice data may need several slice parameter buffers at one time.
539 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
541 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
543 * gst/vaapi/gstvaapidecodebin.c:
544 * gst/vaapi/gstvaapipluginbase.c:
545 * gst/vaapi/gstvaapivideobufferpool.c:
546 vaapi: use gst_clear_object instead of g_clear_object
547 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
549 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
551 * gst/vaapi/gstvaapiencode.c:
552 plugins: encode: unlock the stream lock before _flush()
553 The current encoder will hang when EOS comes. When we call the
554 gst_vaapi_encoder_encode_and_queue(), we should release the stream
555 lock, just like what we do in gst_vaapiencode_handle_frame().
556 The deadlock happens when: The input thread holding the stream lock
557 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
558 buffer, while the output thread which holding the coded buffer resource
559 is acquiring the stream lock in _push_frame() to push the data to
561 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
563 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
565 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
566 libs: encoder: H264: Fix one assert in get_pending_reordered().
567 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
568 case for HIERARCHICAL_B mode. The pipeline:
569 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
570 keyframe-period=32 ! fakesink
572 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
573 assertion failed: (count != 0)
574 The last few B frames are not fetched in correct order when HIERARCHICAL_B
576 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
577 make the last several frames encoded in reverse order. The NAL of last few
578 frames come in reverse order in the bit stream, though it can still output
580 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
582 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
584 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
585 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
586 libs: encoder: H265: Add screen content coding extensions support.
587 In scc mode, the I frame can ref to itself and it needs the L0 reference
588 list enabled. So we should set the I frame to P_SLICE type. We do not need
589 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
590 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
591 the driver consider the current frame as reference. For bits conformance,
592 the NumRpsCurrTempList0 should be incremented by one to include the current
593 picture as the reference frame. We manually do it when packing the slice header.
595 gst-launch-1.0 videotestsrc num-buffers=10 ! \
596 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
597 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
598 filesink location=out.265
599 Can be used to specify that the encoder should use SCC profiles.
600 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
602 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
604 * gst/vaapi/gstvaapiencode_vp9.c:
605 plugin: encode: vp9: Implement the set_config().
606 We store the allowed profiles list to encoder in set_config().
607 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
609 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
611 * gst/vaapi/gstvaapiencode_vp9.c:
612 plugin: encode: vp9: Add the profile into output caps.
613 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
615 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
617 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
618 libs: encoder: vp9: no need to ensure_hw_profile.
619 Once we decide the profile and can get the valid entrypoint for
620 that profile, hw must already support this profile/entrypoint pair.
621 No need to check it again in set_context_info().
622 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
624 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
626 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
627 libs: encoder: vp9: Improve the manner to decide the profile.
628 We should decide the VP9 encoder's profile based on the chroma and
629 depth of the input format, then make sure it is included in the
631 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
633 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
635 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
636 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
637 libs: util: vpx: add get_chroma_format_idc for VP9
638 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
640 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
642 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
643 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
644 libs: encoder: vp9: Add allowed_profiles.
645 We need the allowed_profiles to store the allowed profiles in down
648 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
650 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
652 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
654 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
656 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
657 libs: decoder: H265: Fix a typo in scc reference setting.
658 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
660 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
662 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
663 * gst-libs/gst/vaapi/gstvaapiprofile.c:
664 * gst-libs/gst/vaapi/gstvaapiprofile.h:
665 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
666 * gst-libs/gst/vaapi/video-format.c:
667 * gst/vaapi/gstvaapidecode.c:
668 libs: decoder: H265: Add MAIN_422_12 profile supporting.
669 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
671 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
673 * gst-libs/gst/vaapi/gstvaapiimage.c:
674 * gst-libs/gst/vaapi/video-format.c:
675 * gst-libs/gst/vaapi/video-format.h:
676 video-format: Add Y212_LE format.
677 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
678 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
680 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
682 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
684 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
685 * gst-libs/gst/vaapi/gstvaapiprofile.c:
686 * gst-libs/gst/vaapi/gstvaapiprofile.h:
687 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
688 * gst-libs/gst/vaapi/video-format.c:
689 * gst/vaapi/gstvaapidecode.c:
690 libs: decoder: H265: Add MAIN_444_12 profile supporting.
691 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
693 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
695 * gst-libs/gst/vaapi/gstvaapiimage.c:
696 * gst-libs/gst/vaapi/video-format.c:
697 * gst-libs/gst/vaapi/video-format.h:
698 video-format: Add Y412_LE format.
699 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
700 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
702 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
704 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
706 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
707 libs: decoder: h265: fill missing predictor_palette_size field.
708 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
709 forgotten and need to be filled when streams have palettes.
710 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
712 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
714 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
715 libs: utils: h265: Use get_profile_from_sps to get profile.
716 We now use gst_h265_get_profile_from_sps() to replace the old way
717 of gst_h265_profile_tier_level_get_profile() to get more precise
718 profile. The new function consider the unstandard cases and give
719 a more suitable profile decision.
720 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
722 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
724 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
725 libs: decoder: vp9: 0xff segment pred probs if no temporal update
726 According to the spec (6.2.11 Segmentation params syntax)
727 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
728 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
730 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
732 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
733 libs: decoder: vp9: avoid reference rewriting
734 The removed code set all the reference frames to the current frame it is a key
735 one, but later, all the reference frames were rewritten with the decoded picture
736 buffers or VA_INVALID_SURFACE if they were not available.
737 Basically, all this time the first reference frame assignment has been ignored,
738 and it's not described by the spec, and this patch removes that code.
739 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
741 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
743 * gst/vaapi/gstvaapidecode.c:
744 decoder: don't reply src caps query with allowed if pad is fixed
745 If the pad is already fixed the caps query have to be reply with the
746 current fixed caps. Otherwise the query has to be replied with the
747 autogeneratd src caps.
748 This path fix this by falling back to the normal caps query processing
749 if the pad is already fixed. Otherwise it will fetch the allowed src
751 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
753 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
755 * gst/vaapi/gstvaapidecode.c:
756 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
757 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
759 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
761 * gst/vaapi/gstvaapisink.c:
762 vaapisink: when updating the caps, reset rotation
763 When an element upstream changes settings (e.g. crop), new caps are sent
764 to vaapisink. When vaapisink was rotating the image, it needs to
765 re-evaluate if the sink needs to rotate the image.
766 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
768 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
771 ci: include template from gst-ci master branch again
773 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
778 === release 1.18.0 ===
780 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
786 * gstreamer-vaapi.doap:
790 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
792 * gst-libs/gst/vaapi/gstvaapifilter.c:
793 Update for gst_video_transfer_function_*() function renaming
794 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
796 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
798 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
799 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
800 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
801 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
802 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
804 === release 1.17.90 ===
806 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
811 * gstreamer-vaapi.doap:
815 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
817 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
818 libs: surface: egl: guard memory type
819 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
821 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
823 * gst/vaapi/gstvaapidecode.c:
824 plugin: decode: Fix two mem leaks because of caps.
825 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
827 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
829 * gst/vaapi/gstvaapivideomemory.c:
830 plugin: allocator: No need to ref allocator when create mem.
831 We do not need to ref the allocator when creating GstVaapiVideoMemory
832 kind memory, and then release it in _free(). The framework already
834 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
836 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
838 * gst/vaapi/gstvaapiencode_h264.c:
839 vaapiencode: h264: ignore level without breaking negotiation
840 Since commit 9f627ef2 if the user sets level in the encoder src caps
841 the caps negotiation is rejected.
842 But since the same commit the same encoder set the autoconfigured
843 level in caps. Some change in the base class might fixed the operation
844 order so now the caps are set and later negotiated.
845 This patch removes the level check.
847 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
849 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
851 * gst-libs/gst/vaapi/egl_vtable.h:
852 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
853 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
854 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
855 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
856 This code path is used when frames are rendered as textures through
857 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
858 Originally the EGLImage was exported as GEM, which was handled by
859 Intel drivers, but Gallium ones cannot create VA surfaces from
860 GEM buffers, only DMABuf.
861 This patch checks the memory types supported by VA driver to choose
862 the render the EGLImages from GEM or DMABuf, because GEM is still
863 better where supported.
864 DMABuf is well handled either by intel-vaapi-driver and gallium.
866 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
868 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
870 * gst-libs/gst/vaapi/gstvaapifilter.c:
871 * gst-libs/gst/vaapi/gstvaapifilter.h:
872 libs: filter: gst_vaapi_filter_get_memory_types()
873 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
875 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
877 * gst/vaapi/gstvaapipluginbase.c:
878 * gst/vaapi/gstvaapipluginbase.h:
879 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
880 Since nobody uses it, just remove it.
881 Thus extract_allowed_surface_formats() is refactored to attend only
882 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
883 Now a surface is created when the image chorma is different from the
884 previous one. And if the driver has the quirk, it outputs all the
885 supported image formats without trying them.
886 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
888 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
890 * gst/vaapi/gstvaapidecode.c:
891 vaapidecode: expose raw src caps with same chroma
892 The try-and-error approach for getting the possible image formats from
893 a surface has brought several problems in different drivers, from
894 crashes to drop in performance.
895 Instead of that we change the algorithm to determine the possible
896 image formats based in the surface chroma: only those available image
897 formats with same chroma are exposed as possible raw caps.
898 Do this is important to avoid performance degrading in raw sinks
899 which doesn't handle NV12 but it does YV12 or I420.
900 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
902 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
904 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
905 libs: util: h265: use common parser API to get vaapi profiles.
906 We can reuse H265 parser's API to recognize the correct profile and
907 then just need to convert them to VAAPI profiles.
908 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
910 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
912 * gst-libs/gst/vaapi/meson.build:
913 * gst/vaapi/meson.build:
915 build: update for gl pkg-config file split
916 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
918 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
920 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
921 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
922 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
923 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
925 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
927 * gst-libs/gst/vaapi/gstvaapiencoder.c:
928 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
929 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
930 libs: encoder: H265: Enable Main 12 profile support.
931 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
933 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
935 * gst-libs/gst/vaapi/video-format.c:
936 video format: Fix P012_LE's chrome type typo.
937 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
939 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
941 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
942 gstvaapiminiobject.c: fix clang 10 warnings
943 the typesystem checks in g_atomic_pointer_compare_and_exchange
944 seem to trigger some false positives with clang 10
945 similar to gstreamer!584
946 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
948 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
950 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
951 libs: window: wayland: destroy all wayland buffers during finalize
952 Some buffers and the associated FrameState state may still be pending at
953 that point. If the wayland connection is shared, then messages for the
954 buffer may still arrive. However, the associated event queue is already
955 deleted. So the result is a crash.
956 With a private connection the associated memory is leaked instead.
957 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
959 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
961 * tests/examples/test-vaapicontext.c:
962 test: vaapicontext: fix draw callback with multiple videos
963 The callback is called for both windows. So make sure that
964 gst_video_overlay_set_render_rectangle() is called for the correct one.
965 Otherwise, the left video will be randomly moved behind the right video.
966 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
968 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
970 * tests/examples/meson.build:
971 * tests/examples/test-vaapicontext.c:
972 test: vaapicontext: support wayland display
973 On Wayland, The whole gtk window is one Wayland surface. So
974 gtk_widget_get_window() must be called on the top-level widget.
975 For any other widget the following gdk_window_ensure_native() may create a
976 new top-level Wayland surface that is never visible.
977 As a result, the coordinates passed to
978 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
979 window. Otherwise the video is placed incorrectly.
980 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
981 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
983 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
985 * tests/examples/test-vaapicontext.c:
986 test: vaapicontext: use playbin to test files
987 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
989 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
991 * tests/examples/test-vaapicontext.c:
992 test: vaapicontext: add PLAY and NULL buttons
993 They only appear when only one sink is instanciated and their purpose
994 is to test the NULL-PLAY use case in context sharing.
995 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
997 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
999 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1000 libs: wayland: update the opaque region in set_render_rect
1001 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
1002 thread. That thread may be responsible for making the window visible.
1003 At that point another thread will block in gst_vaapi_window_wayland_sync()
1004 because the frame callback will not be called until the window is visible.
1005 If that happens, then acquiring the display lock in
1006 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
1007 Cache the size of the opaque rectangle separately and create the opaque
1008 region right before applying it to the surface.
1009 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1011 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
1013 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1014 * gst-libs/gst/vaapi/gstvaapiwindow.h:
1015 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1016 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1017 * gst/vaapi/gstvaapisink.c:
1018 libs: window: implements gst_vaapi_window_set_render_rectangle
1019 Implements new vmethod gst_vaapi_window_set_render_rectangle,
1020 which is doing set the information of the rendered rectangle set by
1022 This is necessary on wayland at least to get exact information of
1024 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
1026 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1028 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
1030 * gst/vaapi/gstvaapisink.c:
1031 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
1032 Implements gst_vaapisink_wayland_create_window_from_handle() to support
1033 using external wl_surface.
1034 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1036 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1038 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1039 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1040 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1041 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1042 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
1043 libs: wayland: implement video overlay API
1044 The Wayland sub-surfaces API is used to embed the video into an application
1046 See Appendix A. Wayland Protocol Specification as the following.
1048 The aim of sub-surfaces is to offload some of the compositing work
1049 within a window from clients to the compositor. A prime example is
1050 a video player with decorations and video in separate wl_surface
1052 This should allow the compositor to pass YUV video buffer processing to
1053 dedicated overlay hardware when possible.
1055 Added new method gst_vaapi_window_wayland_new_with_surface()
1056 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1057 Zhao Halley <halley.zhao@intel.com>
1058 changzhix.wei@intel.com
1059 Hyunjun Ko <zzoon@igalia.com>
1060 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1062 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1064 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1065 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
1066 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1068 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1070 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1071 libs: display: always call close_display()
1072 All close_display() have their own checks for use_foreign_display and only
1073 destroy locally created objects in that case.
1074 Without this objects other than the actuall foreign display itself are
1076 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1078 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
1080 * gst-libs/gst/vaapi/video-format.h:
1081 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
1082 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
1084 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1086 * gst/vaapi/gstvaapidecode.c:
1087 * gst/vaapi/gstvaapipluginutil.c:
1088 * gst/vaapi/gstvaapipluginutil.h:
1089 plugins: add gst_vaapi_caps_set_width_and_height_range()
1090 This utility function is called internally by
1091 gst_vaapi_build_caps_from_formats() and can be used outside.
1092 This function sets frame size and framerates ranges.
1093 Also gst_vaapi_build_caps_from_formats() is simplified.
1094 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
1096 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
1098 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1099 libs: decoder: fix a crash issue when get_surface_formats.
1100 Some context does not report any valid format that we can support.
1101 For example, the HEVC 444 12 bits decoder context, all the formats
1102 it reports is not supported now, which make the formats list a NULL
1103 array. We should check that pointer before we use it.
1104 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
1106 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
1108 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1109 libs: encoder: h265: choose the profile based on allowed list.
1110 We can decide the profile in ensure_profile(), based on allowed list
1111 passed by the encode. We also need to check whether the entrypoint is
1112 available. Once it is decided, no need to check the hw entrypoint
1114 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1116 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
1118 * gst/vaapi/gstvaapiencode_h265.c:
1119 plugins: encode: h265: set all allowed profiles to encoder.
1120 We should collect all allowed profiles and pass them to the inside
1121 encoder, rather than just calculate the max profile idc.
1122 The allowed profiles should also be supported by the HW.
1123 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1125 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
1127 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1128 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1129 libs: display: Add a helper function to get profiles by codec.
1130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1132 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
1134 * gst/vaapi/gstvaapiencode_h265.c:
1135 plugins: encode: h265: collect all allowed profiles to encoder.
1136 We should collect all allowed profiles and pass them to the inside
1137 encoder, rather than just calculate the max profile idc.
1138 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1140 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1142 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1143 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1144 * gst/vaapi/gstvaapiencode_h265.c:
1145 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1146 In h265, bigger profile idc may not be compatible with the small profile
1147 idc. And more important, there are multi profiles with the same profile
1148 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1150 So recording the max profile idc is not enough, the encoder needs to know
1151 all allowed profiles when deciding the real profile.
1152 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1154 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1156 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1157 libs: encoder: h265: No need to check hw_max_profile.
1158 In h265, higher profile idc number does not mean better compression
1159 performance and may be not compatible with the lower profile idc.
1160 So, it is not suitable to find the heighest idc for hw to ensure the
1162 On the other side, when the entrypoint of the selected profile is valid,
1163 it means the hw really support this profile, no need to check it again.
1164 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1166 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1168 * gst/vaapi/gstvaapipostproc.c:
1169 vaapipostproc: early return if fixate srcpad caps fails
1170 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1172 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1174 * gst/vaapi/gstvaapipluginutil.c:
1175 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1176 Generalize the way how the preferred color format is chosen. Also
1177 use new GStreamre API as syntatic sugar.
1178 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1180 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1182 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1183 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1184 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1185 * gst/vaapi/gstvaapidecode.c:
1186 * gst/vaapi/gstvaapiencode.c:
1187 libs: profile: Use get_codec_from_caps to get codec type.
1188 There is no need to get a profile from the caps and then convert
1189 that profile into codec type. We can get the codec type by caps's
1191 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1193 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1195 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1196 libs: profile: h265: Fix return value of from_codec_data_h265.
1197 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1198 The codec data of caps contain the profile IDC, but the mapping between
1199 profile IDC and GstVaapiProfile is wrong.
1200 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1202 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1204 * gst/vaapi/gstvaapiencode_vp9.c:
1205 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1206 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1208 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1210 * gst/vaapi/gstvaapiencode_h264.c:
1211 * gst/vaapi/gstvaapiencode_h265.c:
1212 * gst/vaapi/gstvaapipluginutil.c:
1213 * gst/vaapi/gstvaapipluginutil.h:
1214 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1215 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1216 as VP9 also needs to use this function.
1217 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1219 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1221 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1222 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1223 * gst-libs/gst/vaapi/meson.build:
1224 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1225 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1227 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1229 * gst-libs/gst/vaapi/gstvaapicontext.c:
1230 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1231 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1232 libs: display, context: handle broken jpeg decoder for i965 driver
1233 JPEG decoding in i965 driver is pretty much broken, and the driver is
1234 deprecated which mean authors only accept trivial fixes.
1235 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1236 format which is not a common format in GStreamer. It can export it to
1237 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1238 This patch artificially adds NV12 to the context format list when it's
1239 JPEG decoder for i965 and force the usage of old VA-API for surface
1240 creation without specifying color format. Also it artificially
1241 disables the DMABuf announcement.
1242 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1243 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1245 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1247 * gst-libs/gst/vaapi/gstvaapicontext.c:
1248 libs: context: change function to internal code style
1249 Instead of a getter the function `get_preferred_format()` to
1250 `ensure_preferred_format()` which aligns to the code style.
1251 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1253 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1255 * gst/vaapi/gstvaapidecode.c:
1256 vaapidecode: always merge profile caps in sink caps
1257 This commit fixes a regression of e962069d, where if the profile's
1258 caps doesn't have a caps profile, it's ignored.
1259 This patch add a conditional jump if the caps doesn't have a profile
1262 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1264 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1267 build: request libdrm >= 2.4.98 and fallback
1269 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1271 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1273 * gst/vaapi/gstvaapidecode.c:
1274 vaapidecode: dma caps only use reported color format
1275 This fix pipelines without vaapipostproc after vaapi decoder, such as
1276 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1277 On EGL platforms, so DMABuf is used.
1278 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1280 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1282 * gst/vaapi/gstvaapidecode.c:
1283 vaapidecode: use allowed srcpad caps for caps query
1284 Instead of using just the template caps use the current allowed
1285 srcpad caps, which is created considering the current decoder
1287 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1289 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1291 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1292 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1293 * gst/vaapi/gstvaapidecode.c:
1294 vaapidecode: build allowed srcpad caps from va context
1295 Instead of generating allowed srcpad caps with generic information,
1296 now it takes the size an formats limits from the decoder's context.
1297 This is possible since srcpad caps are generated after the internal
1299 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1300 gst_vaapi_decoder_get_suface_attributes().
1301 From these attributes, formats are only used for VASurface memory
1302 caps feature. For system memory caps feature, the old
1303 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1304 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1305 And for the other caps features (dmabuf and texture upload) the
1306 same static list are used.
1307 This patch also adds DMABuf caps feature only if the context
1308 supports that memory type. Nonetheless, we keep the pre-defined
1309 formats since they are the subset of common derive formats formats
1310 supported either by amd/gallium and both intel drivers, since,
1311 when exporting the fd through vaAcquireBufferHandle()/
1312 vaReleaseBufferHandle(), the formats of the derivable image cannot
1313 be retriebable from the driver. Later we'll use the attribute
1314 formats for the DMABuf feature too, when the code be ported to
1315 vaExportSurfaceHandle().
1316 Finally, the allowed srcpad caps are removed if the internal decoder
1317 is destroyed, since context attribues will change.
1318 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1320 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1322 * gst/vaapi/gstvaapidecode.c:
1323 vaapidecode: reorder src caps template
1324 Since negotiation depends on caps order, first is VA, then DMABuf,
1325 later GLUploadTexture (deprecated) and finally raw.
1326 Also, for decoders, the possible available color formats for DMABuf
1327 is extended to all the possible VA color formats.
1328 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1330 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1332 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1333 libs: window: wayland: use dmabuf protocol if available
1334 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1335 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1336 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1337 compatible with a Wayland server that uses the iris Mesa driver.
1338 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1339 protocol. Formats and modifiers supported by the Wayland server are taken
1340 into account. If necessary, VPP is enabled to convert the buffer into a
1342 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1344 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1346 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1348 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1349 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1350 libs: window: allow choosing the format for the vpp pool
1351 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1352 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1354 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1356 * gst-libs/gst/vaapi/video-format.c:
1357 * gst-libs/gst/vaapi/video-format.h:
1358 video-format: add DRM formats to the mapping table
1359 This will be needed for the DMABuf protocol support to map DRM formats to
1360 vaapi and gstreamer formats.
1361 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1363 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1365 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1366 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1367 * gst-libs/gst/vaapi/meson.build:
1368 libs: display: wayland: add basic dmabuf protocol support
1369 This is just the basic infrastructure. Hook up the interface and collect
1370 all supported formats.
1371 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1373 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1375 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1376 libs: window: wayland: wait for configure before committing the first buffer
1377 Committing the first buffer for a surface must not be done before
1378 ack_configure() has been sent for the xdg_surface.
1379 With weston, the commit will fail with "error 3: xdg_surface has never been
1381 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1383 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1385 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1387 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1388 libs: encoder: h265: set no P frame automatically.
1389 The double reference lists may be required by drivers and there should
1390 be no P frames in the of stream. The old way of converting P frames to
1391 B frames is by setting `low-delay-b` property, which is unconvenient
1392 and has bad user experience, since most of the users do not know when
1393 to set this property, and if it is not set correctly, the encoding
1394 pipeline fails or even hangs on some platforms. VA driver now provides
1395 a attribute to query whether both reference lists must be un-NULL for
1396 a profile/entrypoint pair.
1397 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1399 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1401 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1402 libs: encoder: h265: Deprecate the low-delay-b property.
1403 In HEVC, P and B definitions are different from AVC: P frames have
1404 just one reference list and so 1 MV, while B frames have two reference
1405 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1406 forward/backward reference. So P and B can both have bi-directions
1407 dependency, the difference is just their reference list
1408 number (i.e. MV number). This is different from the AVC.
1409 The *low delay b mode* refers to a special HEVC mode, in which the
1410 stream just contain I and B frames, without P frames, and all B frames
1411 only have forward direction dependencies (i.e. all inter frames have 2
1412 reference lists but no backward reference in both lists). This is
1413 similar to AVC I/P mode, but changing the P to the forward dependent
1415 The `low-delay-b` property is now just used to simply convert all P
1416 frames to B frames when driver does not support P frames (so both
1417 reference lists have the same references frames). This is a little
1418 different from the meaning of low delay b mode (the two ref lists may
1419 have the different reference frames). And the driver now can report
1420 whether it supports P frames correctly, so there is no need to use
1421 this property and deprecate it.
1422 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1424 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1426 * gst/vaapi/gstvaapipostproc.c:
1427 postproc: reconfigure after changing cropping values
1428 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1430 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1432 * gst/vaapi/gstvaapiencode.h:
1433 * gst/vaapi/gstvaapiencode_h264.c:
1434 * gst/vaapi/gstvaapiencode_h265.c:
1435 * gst/vaapi/gstvaapiencode_jpeg.c:
1436 * gst/vaapi/gstvaapiencode_mpeg2.c:
1437 * gst/vaapi/gstvaapiencode_vp8.c:
1438 * gst/vaapi/gstvaapiencode_vp9.c:
1439 plugin: encode: Add static caps for template documentation.
1440 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1442 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1444 * gst/vaapi/gstvaapiencode_vp9.c:
1445 plugin: encode: vp9: Use the dynamically built src template caps.
1446 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1448 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1450 * gst/vaapi/gstvaapiencode_vp8.c:
1451 plugin: encode: vp8: Use the dynamically built src template caps.
1452 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1454 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1456 * gst/vaapi/gstvaapiencode_jpeg.c:
1457 plugin: encode: jpeg: Use the dynamically built src template caps.
1458 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1460 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1462 * gst/vaapi/gstvaapiencode_mpeg2.c:
1463 plugin: encode: mpeg2: Use the dynamically built src template caps.
1464 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1466 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1468 * gst/vaapi/gstvaapiencode_h265.c:
1469 plugin: encode: h265: Use the dynamically built src template caps.
1470 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1472 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1474 * gst/vaapi/gstvaapiencode_h264.c:
1475 plugin: encode: h264: Use the dynamically built src template caps.
1476 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1478 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1480 * gst/vaapi/gstvaapiencode.h:
1481 * gst/vaapi/gstvaapiencode_h264.c:
1482 * gst/vaapi/gstvaapiencode_h265.c:
1483 * gst/vaapi/gstvaapiencode_jpeg.c:
1484 * gst/vaapi/gstvaapiencode_mpeg2.c:
1485 * gst/vaapi/gstvaapiencode_vp8.c:
1486 * gst/vaapi/gstvaapiencode_vp9.c:
1487 plugin: encode: Store the coded caps in type's init data.
1488 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1490 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1492 * gst/vaapi/gstvaapipluginutil.c:
1493 * gst/vaapi/gstvaapipluginutil.h:
1494 plugin: util: add helper function build_template_coded_caps_by_codec()
1495 Like build_template_raw_caps_by_codec(), this function can detect and
1496 build the caps for specified codec based on the query of the profiles.
1497 The result is coded caps such as video/x-h265, video/x-h264. The result
1498 can be used as the template of encode's src or decode's sink.
1499 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1501 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1503 * gst/vaapi/gstvaapiencode.h:
1504 * gst/vaapi/gstvaapipluginutil.c:
1505 * gst/vaapi/gstvaapipluginutil.h:
1506 plugins: utils: rename build_template_caps_by_codec.
1507 Rename the function build_template_caps_by_codec() to the name of
1508 build_template_raw_caps_by_codec(). It can be used to collect all
1509 raw video formats for encode's sink and decode's src.
1510 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1512 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1514 * gst/vaapi/gstvaapidecode.c:
1515 * gst/vaapi/gstvaapipluginutil.c:
1516 * gst/vaapi/gstvaapipluginutil.h:
1517 vaapidecode: merge common profiles before setting size range
1518 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1519 added at the end of processing all available VA profiles. This
1520 generated an non-optimal caps for negotiation, since the synthetic
1521 profiles don't have frame size ranges.
1522 This patch adds those possible synthetic profiles when the associated
1523 profile is processed, with its frame size ranges.
1524 Now allowed sink caps are simpler.
1525 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1527 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1529 * gst/vaapi/gstvaapipluginutil.c:
1530 plugin: util: Add the missing DMA buffer input in template caps.
1531 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1532 and lose the DMA feature in caps.
1533 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1535 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1537 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1538 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1539 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1540 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1541 * gst-libs/gst/vaapi/video-format.c:
1542 * gst/vaapi/gstvaapidecode.c:
1543 libs: decoder: H265: Add MAIN_12 profile supporting.
1544 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1546 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1548 * gst-libs/gst/vaapi/gstvaapiimage.c:
1549 * gst-libs/gst/vaapi/video-format.c:
1550 video-format: Add P012_LE format.
1551 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1552 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1554 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1556 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1558 * gst/vaapi/gstvaapidecode.c:
1559 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1560 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1561 contains all profiles of the whole VAAPI, like:
1562 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1563 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1564 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1565 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1566 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1567 constrained-high, progressive-high, baseline }; video/x-h265,
1568 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1569 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1570 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1571 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1572 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1573 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1574 height=(int)[ 0, 3840 ]
1575 Which is verbose and may have latent problems. It should only contains
1576 the profiles belong to its codec type. For example, h265 should only
1578 video/x-h265, profile=(string){ main, main-intra },
1579 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1580 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1582 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1584 * gst/vaapi/gstvaapidecodebin.c:
1585 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1586 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1588 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1590 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1591 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1592 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1594 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1596 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1597 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1598 * gst/vaapi/gstvaapidecode.c:
1599 * gst/vaapi/gstvaapidecode.h:
1600 * tests/internal/simple-decoder.c:
1601 vaapidecode: Remove NO_SURFACE error handling
1602 Since surfaces are not bounded to decoding context it makes no sense
1603 to keep the surface semaphore. This patch removes the handling of
1605 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1607 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1609 * gst/vaapi/gstvaapidecode.c:
1610 * gst/vaapi/gstvaapidecode.h:
1611 Revert "vaapidecode: drop non-keyframe in reverse playback"
1612 Since the number of surfaces are not bounded to decoder context,
1613 this hack is no longer needed.
1614 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1615 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1617 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1619 * gst-libs/gst/vaapi/gstvaapicontext.c:
1620 libs: decoder: context: remove surfaces binding from context.
1621 The vaCreateContext do not need to specify the surfaces for the
1622 context creation now. So we do not need to bind any surface to the
1623 context anymore. Surfaces should be the resource belong to display
1624 and just be used in encoder/decoder context.
1625 The previous manner has big limitation for decoder. The context's
1626 surface number is decided by dpb size. All the surfaces in dpb will
1627 be attached to a gstbuffer and be pushed to down stream, and the
1628 decoder need to wait down stream free the surface and go on if not
1629 enough surface available. For more and more use cases, this causes
1630 deadlock. For example,
1631 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1632 ! x264enc ! filesink location=./output.h264
1633 will cause deadlock and make the whole pipeline hang.
1634 the x264enc encoder need to cache more than dpb size surfaces.
1635 The best solution is seperating the surfaces number and the dpb size.
1636 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1637 And let the surfaces_pool in context maintain the re-use of all surfaces.
1638 For encoder, the situation is better, all the surfaces are just used
1639 as reference frame and no need to be pushed to down stream. We can
1640 just reserve and set the capacity of the surfaces_pool to meet the
1644 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1645 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1647 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1650 * scripts/extract-release-date-from-doap-file.py:
1651 meson: set release date from .doap file for releases
1652 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1654 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1656 * gst/vaapi/gstvaapipluginbase.c:
1657 plugins: use VA allocator by default on raw caps
1658 Instead of using dmabuf allocator in source pad, when raw video caps
1659 are negotiated, it uses VA allocator as before, since it is stable
1660 in more use cases, for example transcoding, and more backend drivers.
1661 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1662 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1664 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1666 * gst/vaapi/gstvaapi.c:
1667 vaapisink: rank it as secondary
1668 iHD doesn't provide a full implemention for rendering surfaces and
1669 i965 has problems in wayland. And I suspect this path is followed
1670 by other driver implementations.
1671 This patch demotes the rank of vaapisink to secondary, so it will
1672 not be autoplugged avoiding bad experience of users.
1673 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1675 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1677 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1678 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1679 libs: decoder: h264, h265: in context at least 16 reference surfaces
1680 Registering only stream's DBP size number of surfaces for decoding VA
1681 surfaces brings issues for certain streams. This change register all
1682 possible number of reference surfaces in a stream, which is 16.
1685 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1687 * gst/vaapi/gstvaapiencode_h265.c:
1688 plugins: encode: h265: Add profile,level,tier to output caps.
1689 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1691 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1693 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1694 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1695 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1697 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1699 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1700 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1701 0 is a valid value for h265 tier.
1702 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1704 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1706 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1707 libs: encoder: h265: no need to check the high compression tune.
1708 The h265 encoder just support tune mode:
1710 (3): low-power - Low power mode
1711 So, no need to check and set the high compression parameters.
1712 And by the way, the current ensure_tuning_high_compression manner
1713 of choosing the hightest profile idc as the best compression profile
1714 is not correct. Unlike h264, in h265 the higher profile idc number
1715 does not mean it has more compression tools, and so it has better
1716 compression performance. It may even be un-compatible with the lower
1717 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1718 9 is not compatible with 3D_MAIN profile with idc 8.
1719 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1721 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1726 === release 1.17.2 ===
1728 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
1733 * gstreamer-vaapi.doap:
1737 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
1739 * docs/gst_plugins_cache.json:
1740 * gst/vaapi/gstvaapiencode.c:
1741 docs: Mark parent classes as plugin API
1743 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1746 meson: mark plugins cache target as always stale
1748 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
1750 * docs/gst_plugins_cache.json:
1751 doc: Stop documenting properties from parents
1753 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
1758 === release 1.17.1 ===
1760 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
1765 * gstreamer-vaapi.doap:
1769 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
1771 * docs/gst_plugins_cache.json:
1772 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1773 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1774 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1775 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1776 Update plugin docs and add more plugins
1777 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1779 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1781 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1782 libs: wayland: display: only handle the first output
1783 Right now, all outputs are handled. The means that the registry object for
1784 all but the last are leaked. As a result the sizes are not used correctly.
1785 With two outputs, at first the mode and physical size of the second output
1786 are used. If the first output changes the mode, then the physical size of
1787 the second output is used in combination with the resolution of the first
1788 output. The resulting pixel aspect ratio is incorrect.
1789 There seems to be no way to determine on which output the window is shown,
1790 so just use the first one to get consistent results.
1791 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1793 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
1795 * gst/vaapi/gstvaapipluginbase.c:
1796 plugins: pluginbase: Do not destroy display when _close()
1797 When the element's state changes to NULL, it can still receive
1798 queries, such as the image formats. The display is needed in such
1799 queries but not well protected for MT safe.
1800 For example, ensure_allowed_raw_caps() may still use the display
1801 while it is disposed by gst_vaapi_plugin_base_close() because of
1803 We can keep the display until the element is destroyed. When the
1804 state changes to NULL, and then changes to PAUSED again, the display
1805 can be correctly set(if type changes), or leave untouched.
1807 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1809 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1811 * gst-libs/gst/vaapi/gstvaapicontext.c:
1812 libs: context: use correct printing modifier
1813 GstVaapiID is an alias of gsize, thus its modifier is platform
1815 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1817 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1819 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1820 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1821 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1822 * gst-libs/gst/vaapi/gstvaapifilter.c:
1823 * gst-libs/gst/vaapi/gstvaapivalue.c:
1824 plugins: uddate gst_type_mark_as_plugin_api() calls
1826 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
1828 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1829 libs: encoder: h265: Enable tile in VA command.
1830 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1832 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
1834 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1835 libs: encoder: h265: Add ensure_tile to calculate tiles.
1836 We need consider tiles and slices together, separate tiles uniformly
1837 and then assign slices uniformly to each tiles.
1838 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1840 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
1842 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1843 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1844 libs: display: add a quirk for iHD driver tile encoding.
1845 The iHD driver has a requirement that one slice can not span tiles
1846 when tile is enabled, which is not required by hevc spec.
1847 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1849 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
1851 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1852 libs: encoder: h265: Add tile info to bitstream.
1853 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1855 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
1857 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1858 libs: encoder: h265: promote level if tile is enabled.
1859 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1861 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
1863 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1864 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1865 libs: encoder: h265: Add num-tile-cols/rows properties.
1866 These properties are used for support of tile encoding. We just
1867 support uniform mode of tile encoding, that is, separating picture
1868 equally by (num-tile-cols X num-tile-rows).
1869 According to HEVC spec A1, the max number of tiles in column is 20
1870 and in rows is 22, so add two constant definitions.
1871 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1873 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
1875 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1876 libs: encoder: h265: extract slice creation from add_slice_headers
1877 extract slice creation details from add_slice_headers, and let the
1878 add_slice_headers just focuses on calculating slice start address
1880 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1882 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
1884 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1885 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1886 libs: encoder: Add a helper function to check the tile support.
1887 Encoding by tiles separation now is a very common feature for all
1888 relative new codecs, such as HEVC, AV1, and VP9. Just make this
1889 check as a common helper function of the encoder base class.
1890 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1892 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
1894 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1895 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1896 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1897 * gst-libs/gst/vaapi/gstvaapiutils.c:
1898 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1899 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1900 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1902 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
1904 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1905 libs: decoder: update reference list for SCC.
1906 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1908 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
1910 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1911 libs: decoder: H265: Fill picture and slice SCC parameters.
1912 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1914 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
1916 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1917 libs: util: H265: recognize the SCC profiles.
1918 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1920 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
1922 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1923 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1924 * gst-libs/gst/vaapi/gstvaapiutils.c:
1925 libs: profile: Add screen extended main/main10/main444 define.
1926 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1928 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
1930 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1931 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1932 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1933 * gst/vaapi/gstvaapiencode_h265.c:
1934 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1935 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1936 streams and using Y210 as the input of the encoder can generate main
1937 4:2:2 10 bit streams.
1938 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1940 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
1942 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1943 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1944 We need to use the chroma_format_idc as the index for getting the
1945 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1946 The wrong SubWidthC or SubHeightC make us calculate a wrong right
1947 or bottom offset for crop size and generate garbage in output.
1948 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1950 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
1952 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1953 libs: encoder: h265: Fix chrome idc for 444 10 bits
1954 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1955 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1956 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1958 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
1961 doc: Require hotdoc >= 0.11.0
1963 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
1965 * gst/vaapi/gstvaapipostproc.c:
1966 doc: Fix wrong link to GstVideoDirectionMethod
1968 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
1970 * docs/gst_plugins_cache.json:
1971 * meson_options.txt:
1972 docs: Update plugin cache with the new format
1973 And fix the default URL which should not be inside quotes.
1975 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
1977 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1978 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1979 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1980 * gst-libs/gst/vaapi/gstvaapifilter.c:
1981 * gst-libs/gst/vaapi/gstvaapivalue.c:
1982 * gst/vaapi/gstvaapipostproc.c:
1983 Use gst_type_mark_as_plugin_api() for all non-element plugin types
1985 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
1987 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1988 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1989 * gst-libs/gst/vaapi/gstvaapicontext.h:
1990 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1991 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1992 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1993 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1994 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1995 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1996 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1997 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1998 * gst-libs/gst/vaapi/gstvaapiimage.h:
1999 * gst-libs/gst/vaapi/gstvaapiobject.c:
2000 * gst-libs/gst/vaapi/gstvaapiobject.h:
2001 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
2002 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2003 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2004 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2005 * gst-libs/gst/vaapi/gstvaapisurface.h:
2006 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
2007 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2008 * gst-libs/gst/vaapi/meson.build:
2009 libs: delete all gstvaapiobject related files.
2010 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2012 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
2014 * gst-libs/gst/vaapi/gstvaapisurface.c:
2015 libs: surface: return fail immediately if can not create subpicture
2016 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2018 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
2020 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2021 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2022 * gst-libs/gst/vaapi/gstvaapisurface.c:
2023 * tests/internal/image.c:
2024 libs: subpicture: Make subpicture a standard GstMiniObject.
2025 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2027 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
2029 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2030 libs: decoder: h264: Add ref flags for splited field.
2031 When split one frame into fields, the second field should also
2032 copy the reference flags.
2033 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
2035 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2037 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2038 libs: decoder: h264: disallow multiple slice group
2039 As far as we know there are no VAAPI drivers supporting FMO, which
2040 migth be used in baseline streams.
2041 This commit is a continuation of
2042 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
2043 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
2045 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2047 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2048 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2049 * gst/vaapi/gstvaapidecode.c:
2050 * gst/vaapi/gstvaapidecode_props.c:
2051 * gst/vaapi/gstvaapidecode_props.h:
2052 vaapidecoder: h264: remove baseline as constrained property
2053 From now on always the baseline is going to be treated as constrained without
2054 need of setting a property.
2055 Since the property was added along the development cycle (1.17 / commit
2056 866a9f06) and never released, we assume that it is safe to remove it.
2058 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
2060 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2063 README: update VP9 decoder and encoder
2064 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
2066 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
2068 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2069 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
2070 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
2071 so let's align this plugin with other libraries / softwares.
2072 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
2074 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2076 * gst/vaapi/gstvaapivideobufferpool.c:
2077 vaapivideobufferpool: fix meta overwrite
2078 commit 7ac2a207 added a regression by erroneously assumed that
2079 GstVaapiVideoMeta is actually a GstMeta, which is not.
2080 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
2082 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2084 * gst/vaapi/gstvaapivideobufferpool.c:
2085 * gst/vaapi/gstvaapivideometa_texture.c:
2086 * gst/vaapi/gstvaapivideometa_texture.h:
2087 vaapivideopool: Set pooled flag to added metas.
2088 So this could hint filters how to use these metas.
2089 Had to change the return value for texutre upload meta in order
2091 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
2093 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2095 * gst-libs/gst/vaapi/gstvaapicontext.c:
2096 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2097 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2098 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
2099 * gst-libs/gst/vaapi/gstvaapisurface.c:
2100 libs: use array_unref() rather than array_free()
2101 It is more convinience and thread-safe.
2102 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
2104 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
2106 * gst/vaapi/gstvaapi.c:
2107 plugin: use register_type to replace get_type for encode init.
2108 xxx_register_type will detect the template sink caps and is needed
2109 to be called at init time.
2110 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2112 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
2114 * gst/vaapi/gstvaapiencode_vp9.c:
2115 * gst/vaapi/gstvaapiencode_vp9.h:
2116 plugins: encode: Modify sink template of vp9 encode.
2117 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2118 Also implement gst_vaapiencode_vp9_register_type, which should be
2119 called at plugin register time.
2120 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2122 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
2124 * gst/vaapi/gstvaapiencode_vp8.c:
2125 * gst/vaapi/gstvaapiencode_vp8.h:
2126 plugins: encode: Modify sink template of vp8 encode.
2127 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2128 Also implement gst_vaapiencode_vp8_register_type, which should be
2129 called at plugin register time.
2130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2132 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
2134 * gst/vaapi/gstvaapiencode_mpeg2.c:
2135 * gst/vaapi/gstvaapiencode_mpeg2.h:
2136 plugins: encode: Modify sink template of mpeg2 encode.
2137 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2138 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2139 called at plugin register time.
2140 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2142 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2144 * gst/vaapi/gstvaapiencode_h265.c:
2145 * gst/vaapi/gstvaapiencode_h265.h:
2146 plugins: encode: Modify sink template of h265 encode.
2147 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2148 Also implement gst_vaapiencode_h265_register_type, which should be
2149 called at plugin register time.
2150 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2152 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2154 * gst/vaapi/gstvaapiencode_h264.c:
2155 * gst/vaapi/gstvaapiencode_h264.h:
2156 plugins: encode: Modify sink template of h264 encode.
2157 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2158 Also implement gst_vaapiencode_h264_register_type, which should be
2159 called at plugin register time.
2160 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2162 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2164 * gst/vaapi/gstvaapiencode_jpeg.c:
2165 * gst/vaapi/gstvaapiencode_jpeg.h:
2166 plugins: encode: Modify sink template of jpeg encode.
2167 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2168 Also implement gst_vaapiencode_jpeg_register_type, which should be
2169 called at plugin register time.
2170 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2172 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2174 * gst/vaapi/gstvaapiencode.h:
2175 plugin: encode: add a helper macro to register encode type.
2176 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2178 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2180 * gst/vaapi/gstvaapipluginutil.c:
2181 * gst/vaapi/gstvaapipluginutil.h:
2182 plugins: util: Add a helper function to detect supported caps.
2183 This helper function iterate all profiles and entrypoints belong
2184 to the specified codec, query the VAConfigAttribRTFormat and list
2185 all possible video formats.
2186 This function is used by each codec to get the template sink caps
2187 (for encode) or src caps(for decode) at register time, when just
2188 all possible formats are listed and no need to be very accurate.
2189 So there is no context created for the performance reason. Most
2190 codecs just use YUV kinds of formats as the input/output, so we do
2191 not include RGB kinds of formats. User can specified more formats
2192 in extra_fmts(For example, jpeg may need BGRA) if needed.
2193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2195 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2197 * gst/vaapi/gstvaapiencode.c:
2198 * gst/vaapi/gstvaapipluginutil.c:
2199 * gst/vaapi/gstvaapipluginutil.h:
2200 plugin: encode: extract the allowed caps maker as a helper function.
2201 Extract all logic about making caps for encode's sink as a standalone
2202 helper function. It can be reused.
2203 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2205 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2207 * gst-libs/gst/vaapi/video-format.c:
2208 * gst-libs/gst/vaapi/video-format.h:
2209 libs: video-format: add a helper function of get_formats_by_chroma.
2210 The function iterates all supported video formats and returns the
2211 formats belong to the specified chroma type.
2212 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2214 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2216 * gst-libs/gst/vaapi/gstvaapitexture.c:
2217 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2218 libs: texture: remove unused headers include
2219 This is continuation of
2220 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2221 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2223 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2225 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2226 * gst-libs/gst/vaapi/gstvaapiimage.h:
2227 * gst-libs/gst/vaapi/gstvaapisurface.h:
2228 libs: removed duplicated function declarations
2229 Some headers had duplicated inlined function declaration. This was
2230 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2231 documentation is not generated. So let's remove these extra lines.
2232 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2234 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2236 * gst-libs/gst/vaapi/gstvaapitexture.c:
2237 * gst-libs/gst/vaapi/gstvaapitexture.h:
2238 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2239 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2240 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2241 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2242 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2243 * gst/vaapi/gstvaapivideometa_texture.c:
2244 * tests/internal/test-textures.c:
2245 libs: texture: Make texture a standard GstMiniObject.
2246 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2247 the qdata of miniobject and avoid extending the base texture class.
2248 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2250 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2254 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2256 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2258 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2259 libs: display: drm: use g_strcmp0 to be null safe
2260 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2262 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2264 * gst/vaapi/gstvaapipluginutil.c:
2265 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2266 We may build this plugin with window system support but run it without
2267 window system. Without this patch, the following pipeline will trigger a
2268 segfault when running it without window system.
2269 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2270 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2272 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2275 build: use join_paths() for driverdir
2277 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2280 README: Update supported hardware
2281 Added the AMD hardware list to the "Hardware Requirements" section.
2283 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2285 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2286 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2287 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2288 libs: bufferproxy: remove GstMemory reference
2289 Since bufferproxy and surface are not referenced circularly, there's
2290 no need to keep, in the buffer proxy, a reference to the GstMemory
2291 where it is held. This patch removes that handling.
2293 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2295 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2296 * gst-libs/gst/vaapi/gstvaapisurface.c:
2297 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2298 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2299 * gst/vaapi/gstvaapivideomemory.c:
2300 libs,plugin: break surface-bufferproxy circular reference
2301 The bufferproxy may reference the surface and the surface may also
2302 reference the bufferproxy, producing a circular reference, which might
2303 lead to serious resource leak problems.
2304 Now make the relationship clearer, the bufferproxy's references is
2305 transfered to surface, while bufferproxy just keeps the surface's
2306 address without increasing its reference count.
2307 The surface can be created through a bufferproxy like in
2308 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2309 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2310 both cases the surface holds a bufferproxy's reference.
2312 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2314 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2315 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2316 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2317 libs: bufferproxy: rename parent memeber as surface
2319 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2321 * gst/vaapi/gstvaapivideobufferpool.c:
2322 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2323 The old way of refer memory by bufferproxy is not a good one, since it
2324 make the logic error prone.
2325 Now it is established a map between surface-bufferproxy and its GstMemory,
2326 caching the memory bound by a surface looked for the specified surface.
2328 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2330 * gst/vaapi/gstvaapivideobufferpool.c:
2331 * gst/vaapi/gstvaapivideobufferpool.h:
2332 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2333 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2334 In fact, no one is using that flag, and all vaapi buffers should
2335 have GstVaapiVideoMeta.
2337 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2339 * gst/vaapi/gstvaapipostproc.c:
2340 * gst/vaapi/gstvaapipostproc.h:
2341 vaapipostproc: enable HDR10 tone mapping
2343 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2345 * gst-libs/gst/vaapi/gstvaapifilter.c:
2346 * gst-libs/gst/vaapi/gstvaapifilter.h:
2347 libs: filter: HDR10 tone mapping support
2348 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2350 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2352 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2353 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2354 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2355 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2356 * gst/vaapi/gstvaapiencode_h265.c:
2357 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2358 Using Y410 as the input of the encoder can generate main_444_10 bit
2361 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2363 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2364 libs: encoder: fix an inexact trace info in chroma type check.
2366 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2368 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2369 libs: encoder: make sure format array is not NULL when returning TRUE
2370 This fixed segfault when running the pipeline below with iHD driver
2371 (commit efe5e9a) on ICL
2372 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2375 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2377 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2378 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2379 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2380 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2381 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2382 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2383 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2384 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2385 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2386 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2387 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2388 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2389 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2390 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2391 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2392 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2393 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2394 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2395 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2396 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2397 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2398 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2399 * gst-libs/gst/vaapi/gstvaapifilter.h:
2400 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2401 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2402 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2403 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2404 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2405 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2406 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2407 libs: extend g_autoptr support
2409 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2411 * gst/vaapi/gstvaapivideometa.c:
2412 vaapivideometa: remove compiler warning
2414 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2417 * meson_options.txt:
2418 build: Add meson's option package-origin.
2419 This options is added to synchronize with other gstreamer packages
2420 build configuration.
2421 Though, to avoid breaking distro configuration it is set, as default,
2422 the issues gitlab's url, instead of the used string
2423 "Unkown package origin".
2424 Also, set_quoted is used for string based cdata.
2426 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2428 * gst/vaapi/gstvaapipostproc.c:
2429 vaapipostproc: deprecate format, width and size parameters
2430 Since they should only be controlled by caps negotiation.
2432 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2434 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2435 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2436 * gst/vaapi/gstvaapidecode.c:
2437 libs,plugins: decoder: Add -intra profile support for hevc.
2438 In hevc, we can consider the -intra profile a subset of the none
2439 -intra profile. The -intra profiles just contain I frames and we
2440 definitely can use the none -intra profiles's context to decode
2442 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2444 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2446 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2447 libs: encoder: h265: support ICQ/QVBR BRC
2448 Enable support for ICQ and QVBR bitrate control.
2449 The code is essentially the same for h264 ICQ/QVBR support
2450 which was added in commit 9e0c133a2403.
2452 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2454 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2455 libs: encoder: set VA HRD param before RC param
2456 This is a workaround for intel-media-driver bug
2457 https://github.com/intel/media-driver/issues/865
2458 The driver will force the RC method to CBR for HEVCe
2459 when it parses the HRD param. Thus, any RC method
2460 param submitted "prior" to the HRD param will be lost.
2461 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2462 effectively enabled if the RC method param "precedes"
2464 To work around this issue, set the HRD param before
2465 the RC method param so the driver will parse the RC
2466 method param "after" the HRD param.
2467 Afaict, other codecs in the driver (and other drivers)
2468 do not appear to be dependent on the order of HRD and
2469 RC param submission.
2471 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2473 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2474 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2475 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2476 vaapijpegenc: Add a quantization quirk for iHD driver
2477 iHD driver shifts the value by 50 when calculating quantization for JPEG
2478 encoding, so we should add 50 in this plugin for iHD driver too.
2480 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2482 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2483 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2484 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2485 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2486 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2487 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2488 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2489 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2490 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2491 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2492 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2493 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2494 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2495 * gst-libs/gst/vaapi/meson.build:
2497 * tests/internal/output.c:
2498 * tests/internal/output.h:
2499 * tests/internal/simple-decoder.c:
2500 * tests/internal/test-decode.c:
2501 libs: remove GstVaapiPixmap
2502 GstVaapiPixmap is an abstract base class which only implementation
2503 were GstVaapiPixmapX11. This class were used for a special type of
2504 rendering in the tests apps, utterly unrelated in GStreamer.
2505 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2506 we should remove this unused API.
2507 This removal drops libxrender dependency.
2509 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2511 * gst-libs/gst/vaapi/gstvaapiutils.c:
2512 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2513 HEVCMain444_10 is already a supported profile and misses the strings.
2515 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2517 * gst/vaapi/gstvaapi.c:
2518 plugin: don't error if cannot create display
2519 This might generated errors on automatic tools such as CI. Let's
2520 rather just raise a warning and let continue.
2522 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2524 * tests/check/meson.build:
2525 test: fix a ninja test failure for vaapioverlay.
2526 That test case only works with drm display, so the build such as
2527 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2529 gets a failure when run ninja test. Just enable this test when drm
2532 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2534 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2535 libs: videopool: fix a condition race for pool allocate.
2537 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2539 * gst/vaapi/gstvaapivideobufferpool.c:
2540 vaapivideobufferpool: force video meta if sizes are different
2541 The strides and offsets could be the same, but the allocation
2542 size might be different (e.g. alignment). Thus, ensure we also
2543 set the flag to copy from VA memory to system memory when alloc
2547 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2549 * gst/vaapi/gstvaapidecode.c:
2550 vaapidecode: don't set base sink caps twice
2551 Base class's sink pad caps are already set when calling set_format().
2552 There's no need to call it again in gst_vaapidecode_negotiate().
2554 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2556 * gst/vaapi/gstvaapidecode.c:
2557 vaapidecode: unlock stream if caps update fails
2558 If caps update fail a dead lock occurs since the stream mutex is not
2561 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2563 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2564 libs: decoder: h265: parser state after update dependent slice
2565 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2566 So we need check the slice type after we call populate_dependent_slice_hdr
2568 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2570 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2571 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2572 libs: display: force RGBA image format for i965 driver
2573 Since commit 32bf6f1e GLTextureUpload is broken because i965
2574 doesn't report properly RGBA support. It could be possible to use RGBx
2575 but GLTextureUpload only regotiates RGBA.
2576 The simplest fix to this regression is adding synthetically the RGBA
2577 format in the internal format map.
2579 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2581 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2582 libs: display: iterate all quirks table
2583 Instead of break at the fist foud quirk in the table, iterate all over
2584 so it would be feasible to add several quirks for one driver per
2587 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2589 * gst-libs/gst/vaapi/gstvaapifilter.c:
2590 libs: filter: handle RGB to/from YUV color primary driver quirk
2591 The intel-media-driver (iHD) can't convert output color
2592 primaries when doing YUV to/from RGB CSC. Thus, we must
2593 keep the output color primaries the same as the input
2594 color primaries for this case.
2597 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2599 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2600 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2601 libs: display: add YUV to/from RGB color primary quirk
2602 The intel-media-driver (iHD) can't convert output color
2603 primaries when doing YUV to/from RGB CSC.
2605 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2607 * gst/vaapi/gstvaapivideomemory.c:
2608 Revert "vaapivideomemory: Store surface allocation flags."
2609 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2610 it rewrites the buffer size whilst surface allocation flags are
2611 stored when allocator_params_init() is called since fab890ce.
2614 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2616 * gst/vaapi/gstvaapivideomemory.c:
2617 vaapivideomemory: Try surface with allocation flags.
2618 When a vaapi allocator is instantiated, it first try to generate a
2619 surface with the specified configuration.
2620 This patch adds, in this tried buffer, the requested allocation flags.
2622 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2624 * gst/vaapi/gstvaapivideomemory.c:
2625 vaapivideomemory: Store surface allocation flags.
2626 Store surface allocation flags passed to the vaapi allocator in
2627 GObject's qdata, because it might be used by the vaapivideobufferpool
2628 when recreating the allocator given any resolution change.
2630 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2632 * gst-libs/gst/vaapi/gstvaapisurface.c:
2633 * gst-libs/gst/vaapi/gstvaapisurface.h:
2634 libs: surface: Add hints to allocation flags.
2635 When creating surfaces it is possible to pass to VA hints of its usage,
2636 so the driver may do some optimizations.
2637 This commit adds the handling of encoding/decoding hints.
2639 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2641 * gst-libs/gst/vaapi/gstvaapicontext.c:
2642 * gst-libs/gst/vaapi/gstvaapisurface.c:
2643 * gst-libs/gst/vaapi/gstvaapisurface.h:
2644 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2645 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2646 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2647 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2648 * tests/internal/test-filter.c:
2649 * tests/internal/test-surfaces.c:
2650 libs: surface: surfacepool: Add allocation flags in constructors.
2652 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2655 build: let the build fail if none if X11, wayland or drm.
2656 In fact, gst_vaapi_create_test_display only test x11, wayland and
2657 drm, no glx and egl entries. So if none of them is enabled, no
2658 vaapi element can be detected.
2660 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2662 * tests/internal/test-display.c:
2663 test: avoid unused warning for test-display
2664 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2665 -Dwith_glx=no buildir
2666 generate unused warnings.
2668 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2671 build: fix meson build error when without x11.
2672 meson -Dwith_x11=no build_dir
2673 can not success build the project because the glx is still enabled.
2674 We need to disable GLX when X11 is disabled.
2676 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2678 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2679 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2680 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2681 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2682 other HWs if other HWs may support other values
2683 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2685 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2687 * gst/vaapi/gstvaapipostproc.c:
2688 * gst/vaapi/gstvaapipostprocutil.c:
2689 vaapipostproc: do not compensate for crop/direction if no VPP
2690 If we do not have functional VPP, then cropping and video
2691 direction is non-functional and we should avoid calling
2692 any of the gst_vaapi_filter* APIs.
2694 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2696 * gst/vaapi/gstvaapipostproc.c:
2697 vaapipostproc: only set VPP colorimetry when VPP is available
2698 If we don't have functional vpp then we should not call
2699 gst_vaapi_filter_set_colorimetry.
2701 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2703 * gst/vaapi/gstvaapivideobufferpool.c:
2704 * gst/vaapi/gstvaapivideomemory.c:
2705 * gst/vaapi/gstvaapivideomemory.h:
2706 videobufferpool: don't reset surface when created internally
2707 The bug fixing, in commit 89f202ea, just considers the case when
2708 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2709 which is typically a decoder's behavior. But vaapipostproc doesn't
2710 provide any surface when calling gst_buffer_pool_acquire_buffer(),
2711 thus a surface is created when GstMemory is allocated.
2712 If the surface proxy in buffer's meta is reset at
2713 buffer_pool_reset_buffer(), that surface will be destroyed and it
2714 won't be available anymore. But GstBuffers are cached in the buffer
2715 pool and they are reused again, hence only those images are rendered
2719 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2721 * gst-libs/gst/vaapi/gstvaapiblend.c:
2722 * gst-libs/gst/vaapi/gstvaapifilter.c:
2723 * gst/vaapi/gstvaapi.c:
2724 libs: blend: filter: handle finalize() if display isn't assigned
2725 I've just discovered iHD driver in Skylake doesn't have VideoProc
2726 entry point, hence, in this platform, when vaapioverlay is tried to be
2727 registered, critical warnings are raised because blend doesn't have a
2729 As it is possible to have drivers without EntryPointVideoProc it is
2730 required to handle it gracefully. This patch does that: only tries to
2731 register vaapioverlay if the testing display has VPP and finalize()
2732 vmethods, in filter and blend, bail out if display is NULL.
2734 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2736 * gst-libs/gst/vaapi/gstvaapifilter.c:
2737 * gst-libs/gst/vaapi/gstvaapiutils.c:
2738 libs: filter: guard all color properties to VA-API 1.2.0
2739 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2740 Thus, guard all colorimetry -> VA-API support to version
2744 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2746 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2747 libs: decoder: h265: set parser info state at decoding codec data
2748 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2749 parser info in sps array. If that parser info comes from decoding
2750 codec data, that parser info will have an undefined state which might
2752 This patch sets the parser info state, at decoding codec data, with
2753 the internal parser state. This is similar with h264 decoder apprach.
2754 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2756 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2758 * gst/vaapi/gstvaapipostproc.c:
2759 vaapipostproc: demote log message to trace level
2761 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2763 * gst-libs/gst/vaapi/video-format.c:
2764 libs: video-format: set general vaapi log category
2765 Instead of logging in an unspecified category, set the default vaapi.
2767 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2769 * gst-libs/gst/vaapi/gstvaapiutils.c:
2770 libs: utils: guard EncSliceLP for VA-API < 0.39.1
2773 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
2775 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2776 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2778 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2780 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2781 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2782 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2783 libs: remove crumbs of libva < 0.39
2784 All these guarded code seem like leftovers of commit 920b1ec7a. This
2785 patch completes that missing clean up.
2787 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2789 * gst-libs/gst/vaapi/gstvaapifilter.c:
2790 * gst-libs/gst/vaapi/gstvaapiutils.c:
2791 libs: VA explicit color standard not supported until 1.2.0
2792 VAProcColorStandardExplicit and associated VAProcColorProperties
2793 (primaries, transfer and matrix) are not supported until
2795 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2799 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2801 * gst-libs/gst/vaapi/gstvaapiutils.c:
2802 libs: utils: WA: use explicit for sRGB colorimetry
2803 Addresses #228 on iHD side. It seems iHD can't handle
2804 VAProcColorStandardSRGB in all situations for vpp. But
2805 it has no problem when we specify the sRGB parameters
2806 via VAProcColorStandardExplicit parameters.
2808 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2810 * gst-libs/gst/vaapi/gstvaapifilter.c:
2811 libs: filter: set vpp input/output color range
2812 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2813 And, the [iHD] driver essentially computes the same color
2814 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2815 cases were gstreamer computes it automatically. But,
2816 if the user wants to make it explicit, we should try
2819 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2821 * gst-libs/gst/vaapi/gstvaapiutils.c:
2822 * gst-libs/gst/vaapi/gstvaapiutils.h:
2823 libs: utils: map GstVideoColorRange to VAAPI VPP
2825 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2827 * gst/vaapi/gstvaapidecode.c:
2828 vaapidecode: don't remove chroma-site nor colorimetry
2829 Since now they can be handled by vaapipostproc.
2831 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2833 * gst/vaapi/gstvaapipostprocutil.c:
2834 vaapipostproc: use sink resolution to calculate src colorimetry
2835 The default output colorimetry is persuaded by the output
2836 resolution, which is too naive when doing VPP cropping
2837 and/or scaling. For example, scaling 4K(sink)->1080P(src)
2838 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2839 colorimetry selection and some drivers don't support that
2841 Thus, if output (i.e. downstream) does not specify a
2842 colorimetry then we use the input resolution instead of the
2843 output resolution to create the default colorimetry. Also,
2844 note that we still use the output format since it may be a
2845 different color space than the input. As in the example
2846 above, this will result in bt2020(sink)->bt2020(src)
2847 colorimetry selection and all drivers (afaik) should support
2850 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2852 * gst/vaapi/gstvaapipostprocutil.c:
2853 vaapipostproc: set srcpad colorimetry unconditionally
2854 We always need a srcpad colorimetry for VAAPI VPP
2856 Also, check the return value of _set_colorimetry.
2858 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2860 * gst/vaapi/gstvaapipostprocutil.c:
2861 vaapipostproc: do not override explicit srcpad colorimetry
2862 If colorimetry has been set by a capsfilter (e.g.
2863 vaapipostproc ! video/x-raw,colorimetry=bt709) then
2864 don't try to override it. Previously, the aforementioned
2865 capsfilter will fail to negotiate if default colorimetry
2866 is not the same as the capsfilter (e.g. 4K resolutions).
2868 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2870 * gst/vaapi/gstvaapipostproc.c:
2871 vaapipostproc: set vpp filter colorimetry
2872 Set the input and output colorimetry for vpp filter.
2874 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2876 * gst-libs/gst/vaapi/gstvaapifilter.c:
2877 * gst-libs/gst/vaapi/gstvaapifilter.h:
2878 libs: filter: support vpp input/output color standard
2879 Add API function to allow setting the input and output vpp
2880 color standard from GstVideoColorimetry.
2882 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2884 * gst-libs/gst/vaapi/gstvaapiutils.c:
2885 * gst-libs/gst/vaapi/gstvaapiutils.h:
2886 libs: utils: map GstVideoColorimetry to VAAPI VPP
2887 Fallback to VAProcColorStandardExplicit if there is no
2890 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2892 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2893 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2894 libs: display: add vpp color standard quirk for i965 driver
2895 The i965 does not properly report supported vpp color
2898 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2900 * gst/vaapi/gstvaapivideobufferpool.c:
2901 vaapivideobufferpool: dmabuf implies allocator
2902 Some code can be optimized since only if the dmabuf allocator is set,
2903 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2904 the allocator address.
2906 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2908 * gst/vaapi/gstvaapivideobufferpool.c:
2909 vaapivideobufferpool: reject configuration if allocator isn't vaapi
2910 If the requested allocator in set_config() is not a VAAPI valid one,
2911 reject the configuration, instead of lying and using a private one.
2912 This patch superseeds !254 and !24
2914 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2916 * gst/vaapi/gstvaapivideobufferpool.c:
2917 vaapivideobufferpool: add explanation for allocator reconfig
2919 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2921 * gst/vaapi/gstvaapivideobufferpool.c:
2922 vaapivideobufferpool: check for vaapi meta first
2923 If the configured meta doesn't request vaapi meta then it is not a
2924 vaapi buffer pool. Bail out as soon as possible.
2926 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2928 * gst/vaapi/gstvaapivideobufferpool.c:
2929 vaapivideobufferpool: turn errors into warnings
2930 set_config() vmethod should fail gracefully, thus upstream could
2931 negotiate another pool if possible.
2932 Instead of sending error messages to the bus, let demote the level
2935 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2937 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2938 libs: display: log out vendor string when available
2939 This is useful while asking for logs to know the used driver.
2941 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2943 * gst-libs/gst/vaapi/gstvaapisurface.c:
2944 libs: surface: initialize VASurfaceAttribExternalBuffers
2945 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2946 rather than using memset().
2948 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2950 * gst-libs/gst/vaapi/gstvaapisurface.c:
2951 libs: surface: merge two loops into one
2952 Merge two loops into one for setting offsets and strides in the
2953 external buffer descriptor.
2955 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2957 * gst-libs/gst/vaapi/gstvaapisurface.c:
2958 * gst-libs/gst/vaapi/gstvaapisurface.h:
2959 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2960 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2961 libs: surface: surfacepool: rename variable for clearity
2962 In order to be readable, the meaningless 'flags' is renamed to
2963 surface_allocation_flags, which is clearer.
2965 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2967 * gst/vaapi/gstvaapivideobufferpool.c:
2968 vaapivideobufferpool: Reuse internal allocator is possible.
2969 Instead of creating a new allocator when upstream requests a different
2970 allocator, this patch tries to reuse the internal allocator if it was
2971 already initializated.
2972 If the stream changes, then either one will be unref and a new
2973 allocator is created.
2975 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2977 * gst/vaapi/gstvaapivideobufferpool.c:
2978 vaapivideobufferpool: Log messages in proper category.
2979 The log messages where logged in the GstBufferPool category because
2980 the instance was not properly casted. This fix that situation.
2982 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2984 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2985 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2986 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2987 * gst/vaapi/gstvaapipluginbase.c:
2988 libs: display: driver quirks mechanism
2989 This mechanism comes from ffmpeg vaapi implementation, where they have
2991 A specific driver is identified by a substring present in the vendor
2992 string. If that substring is found, a set of bitwise flags are store.
2993 These flags can be accessed through the function
2994 gst_vaapi_display_has_driver_quirks().
2995 The purpose for this first quirks is to disable the put image try for
2996 AMD Gallium driver (see [1]).
2997 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
2999 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3001 * gst/vaapi/gstvaapipluginutil.c:
3002 plugins: renable Mesa Gallium driver
3004 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3006 * gst/vaapi/gstvaapivideobufferpool.c:
3007 vaapivideobufferpool: validate returned meta
3008 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
3009 the acquired buffer is not null.
3010 This situation should be very "pathological", but still it is better
3011 be safe since that meta might be used later to create a new dma
3014 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3016 * gst/vaapi/gstvaapivideobufferpool.c:
3017 vaapivideobufferpool: always update/release the underlying surface proxy
3018 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
3019 releases the last reference on an exported DMA buffer. This should
3020 release the underlying surface proxy. To avoid releasing the wrong
3021 surface due to a stale surface proxy reference in the buffer's
3022 GstVaapiVideoMeta, always update the reference to the correct surface
3023 in gst_vaapi_video_buffer_pool_acquire_buffer().
3025 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3027 * gst-libs/gst/vaapi/gstvaapicontext.c:
3028 * gst-libs/gst/vaapi/gstvaapicontext.h:
3029 * gst-libs/gst/vaapi/gstvaapisurface.c:
3030 * gst-libs/gst/vaapi/gstvaapisurface.h:
3031 libs: context: select vaCreateSurfaces version according attributes
3032 This commit tries to centralize the selection of vaCreateSurfaces
3033 version, instead of having fallbacks everywhere.
3034 These fallbacks are hacks, added because new drivers use the latest
3035 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
3036 old drivers (or profiles as JPEG decoder in i965) might rather use the
3038 In order to select which method, there's detected hack: each config
3039 context has a list of valid formats, in the case of JPEG decoder the
3040 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
3041 handled correctly by the current gstreamer-vaapi code [2].
3042 The hack consist in identify if the format list contains an arbitrary
3043 preferred format (which is suposedly well supported by
3044 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
3045 the the old version of vaCreateSurfaces is used, and the surfaces wil
3046 be mapped into a image with their own color format.
3047 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
3048 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
3050 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3052 * gst-libs/gst/vaapi/gstvaapicontext.c:
3053 libs: context: add debug category for context
3055 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3057 * gst-libs/gst/vaapi/gstvaapiblend.c:
3058 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
3060 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3062 * gst/vaapi/gstvaapiencode_h264.c:
3063 vaapiencode: promote info to warning
3064 Let's notify user about using constrained-baseline instead on
3065 requested basline profile.
3067 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3069 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3070 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3071 * gst/vaapi/gstvaapidecode.c:
3072 * gst/vaapi/gstvaapidecode_props.c:
3073 * gst/vaapi/gstvaapidecode_props.h:
3074 vaapih264dec: Add a property to assume constrained-baseline
3075 When baseline-as-constrained is set, the decoder will expose support
3076 for baseline decoding and assume that the baseline content is
3077 constrained-baseline. This can be handy to decode streams in hardware
3078 that would otherwise not be possible to decode. A lot of baseline
3079 content is in fact constrained.
3081 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3083 * gst/vaapi/gstvaapiencode_h264.c:
3084 * gst/vaapi/gstvaapipluginutil.c:
3085 vaapih264enc: accept baseline as constrained baseline compatible
3087 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3089 * gst/vaapi/gstvaapiencode_h264.c:
3090 vaapih264enc: update level in src caps
3091 And, if downstream requests a specific level, the caps are not
3092 negotiated, because there is no mechanism right now to specify a
3093 custom level in the internal encoder.
3095 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3097 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3098 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
3100 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3102 * gst/vaapi/gstvaapiencode_h264.c:
3103 vaapih264enc: force byte-stream if avc isn't supported
3104 Removing the validation in gst_vaapiencode_h264_get_caps() since that
3105 ought be handled in gst_vaapiencode_h264_set_config()
3107 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3109 * gst/vaapi/gstvaapiencode_h264.c:
3110 vaaph264enc: suppress avc if the driver does not support packed headers
3111 Do not negotiate AVC output if the driver does not support it.
3113 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3115 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3116 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3117 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
3118 AVC output requires packed header support in the driver.
3120 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3122 * gst/vaapi/gstvaapiencode_h264.c:
3123 vaapih264enc: intersect the new proposed caps
3124 Instead of just leave to keep the proposed caps, with the best profile
3125 in the allowed caps, is its intersected again.
3127 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3129 * gst/vaapi/gstvaapiencode_h264.c:
3130 vaapih264enc: propose new profile caps and fixate it
3131 When the available caps doesn't intersect with the allowed caps in the
3132 pipeline, a new caps is proposed rather than just expecting to
3134 Later, the intersected caps (profile_caps) is fixated in order to
3135 extract the configuration.
3137 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3139 * gst/vaapi/gstvaapiencode_h264.c:
3140 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3141 Add a common fail code path for gst_vaapiencode_h264_set_config().
3143 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3145 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3146 libs: encoder: unref formats array if none
3147 The formats array is always created, in order to keep the logic and
3148 to avoid broken caps, if this formats array doesn't contain any
3149 elements, it has to be unref and the function should return NULL.
3151 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3153 * gst/vaapi/gstvaapiencode_h264.c:
3154 vaapih264enc: fix log message
3155 Before the log wasn't processed because wrong instance pointer.
3157 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3159 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3160 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3161 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3162 * gst/vaapi/gstvaapiencode_h265.c:
3163 plugin: encode: Add H265 main-444 profile.
3164 Expose the main-444 profile to h265enc caps, when the upstream
3165 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3168 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3170 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3171 libs: encoder: h265: Consider main-444 profile when encoding.
3172 Add support of main-444 profile for parameter setting and packed header
3175 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3177 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3178 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3179 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3180 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3181 * gst/vaapi/gstvaapiencode.c:
3182 vaapiencode: DMABuf only if PRIME is available
3183 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3184 memory type is available in the VA surface attributes of codec
3187 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3189 * hooks/pre-commit.hook:
3190 Add hooks/pre-commit.hook
3191 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3192 Copied and pasted pre-commit.hook from other gstreamer modules to make
3193 sure gstreamer-vaapi follows the same code style
3195 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3197 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3198 libs: encoder: h265: Set encoder paramters base on entrypoint.
3199 When the tune is NONE, we now can choose entrypoint freely. So the
3200 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3202 We also delay CTU size calculation after entrypoint has been decided.
3204 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3206 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3207 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3208 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3209 * gst-libs/gst/vaapi/gstvaapicontext.c:
3210 * gst-libs/gst/vaapi/gstvaapicontext.h:
3211 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3212 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3213 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3214 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3215 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3216 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3217 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3218 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3219 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3220 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3221 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3222 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3223 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3224 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3225 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3226 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3227 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3228 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3229 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3230 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3231 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3232 * gst-libs/gst/vaapi/meson.build:
3233 * gst/vaapi/gstvaapi.c:
3234 * gst/vaapi/gstvaapiencode.c:
3235 * gst/vaapi/gstvaapiencode.h:
3236 * gst/vaapi/gstvaapiencode_h264_fei.c:
3237 * gst/vaapi/gstvaapiencode_h264_fei.h:
3238 * gst/vaapi/gstvaapifeivideometa.c:
3239 * gst/vaapi/gstvaapifeivideometa.h:
3240 * gst/vaapi/meson.build:
3242 * tests/internal/meson.build:
3243 * tests/internal/test-fei-enc-in.c:
3244 * tests/internal/test-fei-enc-out.c:
3245 Remove all FEI related
3246 FEI encoders are not actively mantained neither tested, and it is
3247 using infrastructure that is changing and FEI is stopping this
3249 Also it is required to rethink how FEI can be used in GStreamer.
3251 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3253 * gst/vaapi/gstvaapioverlay.c:
3254 vaapioverlay: ensure sinkpad has current buffer
3255 Use the gst_video_aggregator_pad_has_current_buffer API
3256 to check if the current sinkpad has a queued buffer before
3257 attempting to obtain a input buffer from the base plugin.
3258 If the sinkpad does not have a current buffer, then it is
3259 either not producing them yet (e.g. current time < sinkpad
3260 start time) or it has reached EOS.
3261 Previously, we only handled EOS case.
3263 gst-launch-1.0 videotestsrc num-buffers=100 \
3264 ! vaapipostproc ! vaapioverlay name=overlay \
3265 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3266 num-buffers=100 ! video/x-raw,width=160,height=120 \
3269 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3271 * gst/vaapi/gstvaapioverlay.c:
3272 vaapioverlay: unroll the recursive call
3273 Recursive functions are elegant but dangerous since they might
3274 overflow the stack. It is better to turn them into a list tranversal
3275 if possible, as this case.
3277 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3279 * gst-libs/gst/vaapi/gstvaapiblend.c:
3280 * gst/vaapi/gstvaapioverlay.c:
3281 vaapioverlay: add minimal documentation
3283 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3285 * gst-libs/gst/vaapi/gstvaapiblend.c:
3286 * gst-libs/gst/vaapi/gstvaapiblend.h:
3287 * gst/vaapi/gstvaapioverlay.c:
3288 libs: blend: simplify generator API
3289 Instead of using a parent structure that has to be derived by API
3290 consumers, this change propse a simplification by using the common
3291 pattern of GTK of passing a function pointer and user data which will
3292 be passed as its parameter. That user data contains the state and the
3293 function will be called to update that state.
3295 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3297 * gst-libs/gst/vaapi/gstvaapiblend.c:
3298 * gst-libs/gst/vaapi/gstvaapiblend.h:
3299 libs: blend: remove begin/render/end API
3300 This API was risky and is superseded by the surface
3301 generator (process) API.
3304 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3306 * gst/vaapi/gstvaapioverlay.c:
3307 vaapioverlay: use blend surface generator API
3310 2020-01-10 09:54:30 -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: add surface generator API
3315 This new API allows the user to call a single method (process)
3316 which handles the [display] lock/unlock logic internally for
3318 This API supersedes the risky begin, render, end API.
3319 It eliminates the need for the user to call a lock method
3320 (process_begin) before processing the input buffers
3321 (process_render) and calling an unlock method (process_end)
3325 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3327 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3328 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3329 * gst/vaapi/gstvaapiencode.c:
3330 * gst/vaapi/gstvaapiencode.h:
3331 * gst/vaapi/gstvaapiencode_h264.c:
3332 * gst/vaapi/gstvaapiencode_h265.c:
3333 plugin: encode: List all possible profiles to detect input formats.
3334 The current get_profile just return one possible profile for the encode,
3335 which is not enough. For example, if we want to support HEVC 4:4:4
3336 profile, the input of encode should be VYUA rather than NV12 in HEVC
3337 main profile. So the command line:
3338 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3339 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3340 tune=low-power init-qp=30 ! fakesink
3341 can not work because vaapih265enc just report NV12 in sink caps, we need
3342 to specify the profile obviously like:
3343 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3344 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3345 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3346 profile=main-444 ! fakesink
3347 The encode should have the ability to choose the profile based on input
3348 format automatically. If the input video format is VUYA, the main-444
3349 profile should be auto choosed.
3350 We modify to let get_allowed_profiles of each encode sub class to return
3351 an array of all supported profiles based on downstream's allowed caps, or
3352 return NULL if no valid profiles specified by downstream.
3353 If no allowed profiles found, all profiles which belong to the current
3354 encoder's codec will be the candidates.
3355 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3356 attributes for that profile list we just get.
3357 So for this case, both NV12 and VUYA should be returned.
3358 TODO: some codec like VP9, need to implement the get_profile() function.
3360 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3362 * gst/vaapi/gstvaapipluginutil.c:
3363 * gst/vaapi/gstvaapipluginutil.h:
3364 plugin: util: add helper function to detect profiles in caps.
3366 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3368 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3369 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3370 libs: encoder: add a helper function to get all supported profiles
3372 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3374 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3375 libs: decoder: Don't unref null object
3376 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3377 gst_vaapi_context_unref: assertion 'context != NULL' failed
3379 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3381 * gst/vaapi/gstvaapioverlay.c:
3382 plugins: overlay: use proper NULL check on double pointer
3383 Check the address of the variable is not NULL,
3384 not the address of the pointer.
3386 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3388 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3389 libs: codedbuf: delete a useless field.
3390 The context field in GstVaapiCodedBuffer is not inited correctly
3391 and is never used, just delete it.
3393 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3395 * gst/vaapi/gstvaapipluginutil.c:
3396 plugins: add iHD driver in whitelist
3398 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3400 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3401 libs: encoder: modify 265 SPS header's profile compatibility flag.
3402 Make the SPS profile compatibility flags more precisely conform to
3405 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3407 * tests/check/elements/vaapioverlay.c:
3408 test: vaapioverlay: bail test if not available
3409 vaapioverlay is only registered if the VA driver support the blend
3411 This patch only executes the test if vaapioverlay is available,
3412 otherwise the test is bail out without raising an error.
3414 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3416 * tests/check/elements/vaapioverlay.c:
3417 tests: vaapioverlay: force drm backend
3419 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3421 * gst-libs/gst/vaapi/gstvaapiblend.c:
3422 libs: blend: update to new mini-object API
3424 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3426 * tests/check/elements/vaapioverlay.c:
3427 * tests/check/meson.build:
3428 tests: check: add basic vaapioverlay test
3429 Add test_overlay_position test to verify sink_1 input
3430 is overlayed onto sink_0 input at the appropriate
3433 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3435 * gst/vaapi/gstvaapi.c:
3436 * gst/vaapi/gstvaapioverlay.c:
3437 * gst/vaapi/gstvaapioverlay.h:
3438 * gst/vaapi/meson.build:
3439 plugins: add vaapioverlay plugin
3440 A plugin similar to the base compositor element but
3441 uses VA-API VPP blend functions to accelerate the
3442 overlay/compositing.
3444 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3445 ! tee name=testsrc ! queue \
3446 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3447 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3449 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3451 * gst-libs/gst/vaapi/gstvaapiblend.c:
3452 * gst-libs/gst/vaapi/gstvaapiblend.h:
3453 * gst-libs/gst/vaapi/meson.build:
3454 libs: add a vaapi blend class
3455 Support for the VA-API VPP blend functions.
3457 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3459 * gst/vaapi/gstvaapipluginbase.c:
3460 * gst/vaapi/gstvaapipluginbase.h:
3461 plugins: base: add GstVideoAggregator subclass support
3463 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3465 * gst-libs/gst/vaapi/gstvaapiimage.c:
3466 libs: image: init all image fields correctly.
3468 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3470 * gst/vaapi/gstvaapipostproc.c:
3471 doc: fix pipeline typo in vaapipostproc
3473 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3475 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3476 libs: encoder: modify 265 VPS header fields.
3477 vps_base_layer_internal_flag and vps_base_layer_available_flag
3478 have been clearly defined now.
3480 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3482 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3483 libs: display: fix a resource leak in X11 pixmap format.
3485 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3487 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3488 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3489 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3491 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3493 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3494 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3495 * gst/vaapi/gstvaapiencode.c:
3496 libs: encoder: get surfaces resolution the same time with formats.
3497 We can get all the information about the video format at one shot
3498 when we create the test context for getting the supported formats.
3499 The current way to get the width and height ranges are inefficient,
3500 since it calls the function gst_vaapi_profile_caps_append_encoder()
3501 and it creates another temporal context to detect the resolution
3503 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3505 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3507 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3508 libs: encoder: vp9: fix code style
3510 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3512 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3513 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3514 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3515 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3516 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3517 libs: encoder: set entrypoint based on tune automatically
3518 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3519 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3521 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3522 every time when we need to use this kind of profile. Or we can not
3523 create the encoder context successfully.
3524 2. More seriously, we set the entrypoint to a fixed value in
3525 init_context_info() and so the create_test_context_config() can not
3526 create the test context for these profile and can not get the
3527 supported video formats, either.
3528 We now change the entrypoint setting based on the tune option of the
3529 encoder. If no tune property provided, we just choose the first
3530 available entrypoint.
3532 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3534 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3535 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3536 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3537 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3538 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3539 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3540 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3541 libs: encoder: set context info profile by encoder
3542 Instead of init_context_info() setting the passed profile, it is
3543 assumed that it has to be set by each encoder.
3544 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3546 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3548 * gst-libs/gst/vaapi/gstvaapicontext.c:
3549 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3550 libs: context: add invalid entrypoint symbol
3551 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3552 zero, which was already used as an invalid value tacitly. This patch
3553 only makes it explicit.
3554 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3556 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3558 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3559 libs: pixmap: Fix a pixmap creation crash.
3560 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3561 pixmap creation, which causes crash if we run the internal test case
3563 test-decode --pixmap
3565 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3567 * gst/vaapi/gstvaapiencode.c:
3568 plugin: encode: set allowed_sinkpad_caps to empty.
3569 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3570 surfaces formats. This causes two problem:
3571 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3572 which changes its behavior. It will use encode's sinkpad template
3573 rather than empty caps to do the clip job. So even if we fail to set
3574 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3576 2. We should just set the allowed_sinkpad_caps once. The NULL point
3577 make the ensure_allowed_sinkpad_caps function works again and again.
3579 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3581 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3582 libs: encoder: Add NULL pointer check for context when finalize.
3583 Context may be NULL if pipeline fail in early stage, and the
3584 ensure_context will not be called. Need to add a pointer protection
3587 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3589 * gst/vaapi/gstvaapipluginbase.c:
3590 plugins: base: do not reset can_dmabuf
3591 Don't reset the can_dmabuf field. This restores the
3592 close/reset logic that existed prior to commit
3593 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3595 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3596 once during startup, but may need to reset the other private
3597 fields multiple times during negotiation. Thus, can_dmabuf
3598 should be exempt from the resets.
3601 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3603 * gst/vaapi/gstvaapiencode.c:
3604 plugin: encode: Refine encode's sink caps.
3605 The old manner to get the encode's sink caps is not correct.
3606 Such as 264 encode, it gets:
3607 video/x-raw(memory:VASurface),
3608 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3609 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3610 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3611 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3612 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3613 framerate=(fraction)[ 0/1, 2147483647/1 ];
3614 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3615 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3616 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3617 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3618 input format for encoder.
3620 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3621 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3622 video/x-raw(memory:VASurface), format=(string){ NV12 },
3623 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3624 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3625 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3626 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3627 as the correct result.
3629 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3631 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3632 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3633 libs: display: code clean up
3635 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3637 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3638 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3639 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3640 libs: display: refine the profile/entrypoint map.
3641 The old way make the one config for each profile/entrypoint pair,
3642 which is not very convenient for description the relationship
3643 between them. One profile may contain more than one entrypoints
3644 to within it, so a set like data structure should be more suitable.
3646 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3648 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3649 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3650 * gst-libs/gst/vaapi/gstvaapicontext.c:
3651 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3652 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3653 * gst-libs/gst/vaapi/gstvaapifilter.c:
3654 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3655 * gst-libs/gst/vaapi/gstvaapisurface.c:
3656 * gst-libs/gst/vaapi/gstvaapisurface.h:
3657 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3658 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3659 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3660 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3661 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3662 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3663 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3664 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3665 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3666 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3667 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3668 * gst/vaapi/gstvaapipluginbase.c:
3669 * gst/vaapi/gstvaapivideomemory.c:
3670 * gst/vaapi/gstvaapivideometa.c:
3671 * gst/vaapi/gstvaapivideometa_texture.c:
3672 * tests/internal/image.c:
3673 * tests/internal/test-filter.c:
3674 * tests/internal/test-surfaces.c:
3675 * tests/internal/test-windows.c:
3676 libs: surface: port to GstMiniObject
3677 GstVaapiMiniObject and GstVaapiObject are deprecated.
3678 This is the first step to remove them by porting GstVaapiSurface as
3679 a GstMiniBuffer descendant.
3680 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3682 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3684 * gst-libs/gst/vaapi/gstvaapisurface.c:
3685 libs: surface: rename create function names to init
3686 There are several internal functions with 'create' name, but they
3687 don't create any new structure, but rather it initializes that
3688 structure. Renaming those function to reflect better their purpose.
3690 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3692 * gst-libs/gst/vaapi/gstvaapisurface.c:
3693 libs: surface: use macro accessors
3695 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3697 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3698 libs: surface: fix internal documentation
3700 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3702 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3703 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3704 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3705 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3706 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3707 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3708 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3709 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3710 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3711 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3712 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3713 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3714 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3715 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3716 libs: codedbuffer: port to GstMiniObject
3717 GstVaapiMiniObject and GstVaapiObject are deprecated.
3718 This is the first step to remove them by porting GstVaapiCodedBuffer
3719 as a GstMiniBuffer descendant.
3720 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3722 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
3724 * gst-libs/gst/vaapi/gstvaapiimage.c:
3725 * gst-libs/gst/vaapi/gstvaapiimage.h:
3726 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3727 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3728 * gst-libs/gst/vaapi/gstvaapisurface.c:
3729 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3730 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3731 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3732 * gst/vaapi/gstvaapipluginbase.c:
3733 * gst/vaapi/gstvaapivideomemory.c:
3734 * gst/vaapi/gstvaapivideometa.c:
3735 * tests/internal/image.c:
3736 * tests/internal/simple-encoder.c:
3737 * tests/internal/test-fei-enc-in.c:
3738 * tests/internal/test-filter.c:
3739 * tests/internal/test-windows.c:
3740 libs: image: port to GstMiniObject base class
3741 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3742 first step to remove them, by porting GstVaapiImage as a
3744 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3746 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
3748 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3749 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3750 * gst-libs/gst/vaapi/gstvaapicontext.c:
3751 * gst-libs/gst/vaapi/gstvaapicontext.h:
3752 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3753 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3754 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3755 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3756 libs: context: port to a plain C structure
3757 The GstVaapiMiniObject is obsolete and we need to replace it. This
3758 patch turns GstVaapiContext into a plain C structure with its own
3759 reference counting mechanism.
3760 Also this patch removes unused overlays attributes.
3761 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3763 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
3765 * gst/vaapi/gstvaapiencode_h264.c:
3766 * gst/vaapi/gstvaapiencode_h264_fei.c:
3767 * gst/vaapi/gstvaapiencode_h265.c:
3768 * gst/vaapi/gstvaapiencode_jpeg.c:
3769 * gst/vaapi/gstvaapiencode_mpeg2.c:
3770 * gst/vaapi/gstvaapiencode_vp8.c:
3771 * gst/vaapi/gstvaapiencode_vp9.c:
3772 plugin: encode: change the dmabuf caps to all supported formats.
3773 The encode's dmabuf caps definition is obsolete, it can support
3774 more formats now. Re-define it to include all supported formats
3775 in video format map.
3777 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3779 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3780 libs: encoder: h264fei: remove unnecessary check
3781 Issue detected by Coverity
3782 `info_to_pack.h264_slice_header` is always allocated by
3783 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3784 in doesn't make much sense. But it requires to be free on the error
3786 There may be a null pointer dereference, or else the comparison
3787 against null is unnecessary.
3788 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3789 pointer comparison already dereference the pointer earlier
3791 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3793 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3794 libs: encoder: h264fei: remove unnecessary assert
3795 Issue detected by Coverity
3796 An unsigned value can never be negative, so this test will always
3797 evaluate the same way.
3798 In add_slice_headers: An unsigned value can never be less than 0
3800 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3802 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3803 libs: encoder: h264fei: remove unnecessary check
3804 Issue detected by Coverity
3805 There may be a null pointer dereference, or else the comparison
3806 against null is unnecessary.
3807 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3808 pointer comparison already dereference the pointer earlier
3810 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3812 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3813 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3814 libs: encoder: h264fei: don't free memory on stack
3815 Issue detected by Coverity
3816 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3817 declared in the stack, but it is free in
3818 gst_vaapi_feienc_h264_encode() as if declared on the heap.
3819 This patch initializes the structure and removes the free.
3820 A non-heap pointer is placed on the free list, likely causing a crash
3822 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3823 expression, which can never be heap allocated.
3825 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3827 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3828 libs: encoder: h264fei: fix surface leak
3829 Issue detected by Coverity
3830 If the FEI mode is not handled the created resources should be
3831 released and return and error code.
3832 The system resource will not be reclaimed and reused, reducing the
3833 future availability of the resource.
3834 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3837 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3839 * tests/check/elements/vaapipostproc.c:
3840 tests: check return calling of gst_navigation_event_parse.*
3841 This issue was detected by Coverity.
3842 If the function returns an error value, the error value may be mistaken
3844 In cb_mouse_event: Value returned from a function is not checked for
3845 errors before being used
3847 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
3849 * gst/vaapi/gstvaapiencode_h264.c:
3850 * gst/vaapi/gstvaapiencode_h264_fei.c:
3851 * gst/vaapi/gstvaapiencode_h265.c:
3852 * gst/vaapi/gstvaapiencode_jpeg.c:
3853 * gst/vaapi/gstvaapiencode_mpeg2.c:
3854 * gst/vaapi/gstvaapiencode_vp8.c:
3855 * gst/vaapi/gstvaapiencode_vp9.c:
3856 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3857 Then encode plugin just supports raw formats declared in vaapi video
3858 format map. This modification makes the template caps more precise.
3860 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3862 * gst/vaapi/gstvaapipluginbase.c:
3863 plugins: base: add GstPad param to internal helper functions
3864 The base plugin public API function implementations determine
3865 which pad should be passed to the internal helper functions.
3866 Currently, only the base plugin static sinkpad and static
3867 srcpad are supported/used. However, this change enables future
3868 API functions to be added that can accept a pad (i.e. request pad)
3869 from an element subclass (e.g. a GstVideoAggregator subclass).
3871 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3873 * gst/vaapi/gstvaapipluginbase.c:
3874 * gst/vaapi/gstvaapipluginbase.h:
3875 plugins: base: manage pad-specific data in a single struct
3876 Define a struct (GstVaapiPadPrivate) to encapsulate the
3877 pad-specific data (i.e. buffer pool, allocator, info,
3879 Add an interface to retrieve the data struct for a given
3881 Finally, update the base plugin to use the data struct
3882 throughout the implementation.
3883 This will enable us to easily extend the base plugin in the
3884 future to allow for N-to-1 pad subclasses (e.g. overlay/
3887 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3889 * gst/vaapi/gstvaapidecode.c:
3890 * gst/vaapi/gstvaapiencode.c:
3891 * gst/vaapi/gstvaapipluginbase.h:
3892 * gst/vaapi/gstvaapipostproc.c:
3893 plugins: use plugin base macros to access pad specific data
3894 Don't access base struct fields directly since the underlying
3895 definition can change. Instead, use the accessor macros.
3897 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
3899 * gst/vaapi/gstvaapidecode.c:
3900 libs: decoder: Modify decode src's template raw formats
3901 We do not need to maintain a standalone list of decoder's output
3902 template for raw formats and that is easy to make mistake(for
3903 example, the AYVU is wrong in that list, should be VUYA).
3904 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3907 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
3909 * gst/vaapi/gstvaapipostproc.c:
3910 libs: postproc: Modify src/sink template raw formats
3911 We need to provide more precise template caps for postproc's src
3912 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3913 available which are really superfluous.
3915 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
3917 * tests/check/elements/vaapipostproc.c:
3918 Do not mix declaration and code
3920 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3922 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3923 libs: decoder: h265: skip all pictures prior the first I-frame
3924 Don't try to decode until the first I-frame is received within the
3925 currently active sequence. i965 H265 decoder don't show any artifact
3929 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3931 * gst-libs/gst/vaapi/video-format.c:
3932 libs: video-format: remove dead code
3934 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
3936 * gst-libs/gst/vaapi/video-format.c:
3937 * gst-libs/gst/vaapi/video-format.h:
3938 * gst/vaapi/gstvaapipluginutil.h:
3939 libs: video-format: add GST_VAAPI_FORMATS_ALL
3940 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3941 as a caps template string, and make them available in caps with
3942 memory:VASurface feature.
3945 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
3947 * gst-libs/gst/vaapi/video-format.c:
3948 * tests/internal/test-windows.c:
3949 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3950 We only support VUYA format in gst vaapi now, need to correct
3953 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3955 * tests/check/elements/vaapipostproc.c:
3956 tests: check: vaapipostproc test_orientation_mouse_events
3957 Test that vaapipostproc properly translates mouse events
3958 when using video-direction (orientation).
3960 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3962 * tests/check/elements/vaapipostproc.c:
3963 * tests/check/meson.build:
3964 tests: check: vaapipostproc test_crop_mouse_events
3965 Test that vaapipostproc properly translates mouse events
3968 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3971 * meson_options.txt:
3972 * tests/check/elements/vaapipostproc.c:
3973 * tests/check/meson.build:
3974 * tests/meson.build:
3975 tests: check: initial unit test support
3976 Add minimal unit test toolchain files and a simple
3977 vaapipostproc unit test.
3979 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3982 * tests/examples/meson.build:
3983 * tests/examples/test-roi.c:
3984 * tests/examples/test-vaapicontext.c:
3985 * tests/examples/test-vaapipostproc.c:
3986 * tests/examples/test-vaapisink.c:
3987 * tests/internal/codec.c:
3988 * tests/internal/codec.h:
3989 * tests/internal/decoder.c:
3990 * tests/internal/decoder.h:
3991 * tests/internal/image.c:
3992 * tests/internal/image.h:
3993 * tests/internal/meson.build:
3994 * tests/internal/output.c:
3995 * tests/internal/output.h:
3996 * tests/internal/simple-decoder.c:
3997 * tests/internal/simple-encoder.c:
3998 * tests/internal/test-decode.c:
3999 * tests/internal/test-decode.h:
4000 * tests/internal/test-display.c:
4001 * tests/internal/test-fei-enc-in.c:
4002 * tests/internal/test-fei-enc-out.c:
4003 * tests/internal/test-filter.c:
4004 * tests/internal/test-h264.c:
4005 * tests/internal/test-h264.h:
4006 * tests/internal/test-jpeg.c:
4007 * tests/internal/test-jpeg.h:
4008 * tests/internal/test-mpeg2.c:
4009 * tests/internal/test-mpeg2.h:
4010 * tests/internal/test-mpeg4.c:
4011 * tests/internal/test-mpeg4.h:
4012 * tests/internal/test-subpicture-data.c:
4013 * tests/internal/test-subpicture-data.h:
4014 * tests/internal/test-subpicture.c:
4015 * tests/internal/test-surfaces.c:
4016 * tests/internal/test-textures.c:
4017 * tests/internal/test-vc1.c:
4018 * tests/internal/test-vc1.h:
4019 * tests/internal/test-windows.c:
4020 * tests/internal/y4mreader.c:
4021 * tests/internal/y4mreader.h:
4022 * tests/meson.build:
4023 tests: move examples and tests to subfolders
4024 This makes way for adding unit (check) tests.
4026 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
4034 * gst-libs/Makefile.am:
4035 * gst-libs/gst/Makefile.am:
4036 * gst-libs/gst/vaapi/Makefile.am:
4038 * gst/vaapi/Makefile.am:
4040 * tests/Makefile.am:
4041 * tests/elements/Makefile.am:
4042 Remove autotools build
4044 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4046 * gst/vaapi/gstvaapipostproc.c:
4047 vaapipostproc: fix off-by-one coord translations
4048 When translating navigation x,y coordinates for
4049 video-direction, it is necessary to subtract 1
4050 when using the video dimensions to compute the
4051 new x,y coordinates. That is, a 100x200 image
4052 should map coordinates in x=[0-99],y=[0-199].
4053 This issue was found with unit tests provided
4056 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4058 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4059 libs: window: x11: Avoid usage of deprecated API
4061 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4064 build: halt meson configuration if no renderer API
4065 We should halt meson configuration if there is no render API
4066 installed (either DRM, Wayland or X11).
4067 That behavior was already in autotools but missed in meson. This patch
4071 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4073 * gst-libs/gst/vaapi/gstvaapifilter.c:
4074 libs: filter: fix default orientation regression
4075 Fix regression introduced in f232f87f7082
4077 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4079 * gst-libs/gst/vaapi/gstvaapifilter.c:
4080 libs: filter: use OP_DATA_DEFAULT_VALUE macro
4082 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4084 * gst-libs/gst/vaapi/gstvaapifilter.c:
4085 libs: filter: use macro for returning op default value
4086 The code is essentially the same for getting all op default
4087 values. Thus, use a macro to help minimize code duplication
4088 and [hopefully] encourage using the same mechanism for all
4091 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4093 * gst-libs/gst/vaapi/gstvaapifilter.c:
4094 libs: filter: query param spec for default scale method
4097 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4099 * gst-libs/gst/vaapi/gstvaapifilter.c:
4100 libs: filter: query param spec for default skin-tone values
4103 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4105 * gst-libs/gst/vaapi/gstvaapifilter.c:
4106 libs: filter: query param spec for default video-direction
4109 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4114 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
4116 * gst-libs/gst/vaapi/gstvaapifilter.c:
4117 * gst-libs/gst/vaapi/gstvaapifilter.h:
4118 * gst/vaapi/gstvaapipostproc.c:
4119 * gst/vaapi/gstvaapipostproc.h:
4120 vaapipostproc: Use level value for skin-tone-enhancement filter.
4121 Currently the parameter of skin-tone-enhancement filter is forced
4122 to zero. In fact it could be set different value by the user.
4123 So create a new property named as "skin-tone-enhancement-level"
4124 for accepting the used defined parameter value.
4125 At the same time, skin-tone-enhancement is marked as deprecated.
4126 When skin-tone-enhancement-level is set, skin-tone-enhancement
4129 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4131 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4132 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4133 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4134 g_return_val_fail() documentations says:
4135 If expr evaluates to FALSE, the current function should be
4136 considered to have undefined behaviour (a programmer error).
4137 The only correct solution to such an error is to change the
4138 module that is calling the current function, so that it avoids
4139 this incorrect call.
4140 So it was missused in a couple parts of the H264 and H265 internal
4141 decoders. This patch changes that to plain conditionals.
4142 Also, it was included a couple code-style fixes.
4144 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4146 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4147 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4148 * tests/simple-encoder.c:
4149 * tests/test-fei-enc-in.c:
4150 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4151 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4152 need to keep a custom ref()/unref() methods. This patch deletes them.
4154 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4156 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4157 libs: encoder: correct encoder's ref/unref function.
4158 GstVaapiEncoder now is a standard gstobject and need to use
4159 gst_object_ref/unref functions.
4161 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4163 * gst/vaapi/gstvaapiencode_h264_fei.c:
4164 gst: encode: h264_fei: remove useless comparison
4165 The expression "len >= 0" is always true since "len"
4166 is an unsigned type. And it is clear that the writers
4167 intention was not to write "len > 0" since we handle
4168 len == 0 in the ensuing "if (len < 3)" conditional
4171 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4173 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4174 libs: encoder: h264_fei: fix potential overflow before widen
4175 Found by static analysis. encoder->mb_width * encoder->mb_height
4176 is evaluated using 32-bit arithmetic before widen. Thus, cast
4177 at least one of these to guint64 to avoid overflow.
4179 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4181 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4182 libs: encoder: h264_fei: remove dead error condition
4183 Found by static analysis. The feipak is always null
4184 when we reach the error target.
4186 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4188 * gst-libs/gst/vaapi/gstvaapiutils.c:
4189 libs: utils: add missing break in switch
4191 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4193 * gst-libs/gst/vaapi/video-format.c:
4194 libs: video-format: Make all YUV format available
4195 The YUV formats have no ambiguity for drivers, so we can add them all.
4196 Some old driver(i965) does not implement full get/put image functions
4197 but can use derive image funtions for the YUV format. It does not
4198 report that kind of formats correctly in image query, but will derive
4199 that YUV format image from surface. The dynamic mapping of YUV format
4200 will block that manner.
4201 Adding more YUV format mapping has no side effect. So considering the
4202 legacy driver conformance, we add all YUV formats mapping statically
4203 and dynamic mapping RBG formats
4207 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4209 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4210 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4211 egl: Fix racyness in display thread creation
4212 Multiple different scenarios could break the display thread creation and
4213 end up blocking waiting for thread o be created. Fix them all by
4214 correctly waiting for a new boolean to become valid.
4216 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4218 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4219 egl: don't advertise a wrapped EGLContext as actually wrapped
4220 It's not actually wrapped as we create a new EGLContext from the passed
4221 in EGLContext. As a result, the created EGLContext was never destroyed.
4223 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4225 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4226 libs: h264decoder: do not return error for unhandled NAL unit.
4227 Some streams have error data introducing unknown NAL type. There are
4228 also kinds of NAL types we do not want to handle. The old manner will
4229 set a decoder error when encounter this, which cause a latent crash bug.
4230 The decoder may successfully decode the picture and insert it into DPB.
4231 But there are error NAL units after the AU which cause the post unit error
4232 and make that frame dropped. The later output of the picture still want
4233 to ref that frame and crash.
4234 No need to set decoder error when can not recognize or handle the NAL
4235 unit, just skip it and continue.
4238 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4240 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4241 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4242 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4243 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4244 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4245 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4246 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4247 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4248 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4249 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4250 * gst/vaapi/gstvaapiencode.c:
4251 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4252 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4253 param in encoders to decide which parameters to expose. Thus
4254 gstreamer-vaapi will not interfere with any change in GStreamer in the
4256 Also, the internal symbol was change to
4257 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4259 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4261 * gst-libs/gst/vaapi/gstvaapiimage.c:
4262 * gst-libs/gst/vaapi/video-format.c:
4263 libs: Add BGR10A2_LE support for color space conversion.
4266 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4268 * gst-libs/gst/vaapi/gstvaapisurface.c:
4269 libs: surface: add pointer check for surface_new_from_formats.
4271 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4272 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4273 will crash on i965 driver because of no pointer check.
4274 We now generate the video format map between GST format and VA format
4275 dynamically based on the image format returned by vaQueryImageFormats.
4276 i965 driver does to report image format of 444P and Y800 forcc, while
4277 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4278 not recognize these format and pass a NULL pointer to
4279 gst_vaapi_surface_new_from_formats.
4280 We need to add a pointer check here and let the fallback logic handle
4281 this case correctly.
4282 Other drivers work well.
4284 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4286 * gst-libs/gst/vaapi/gstvaapiutils.c:
4287 libs: utils: guard the VAEntrypointFEI symbol
4288 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4290 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4292 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4293 * gst-libs/gst/vaapi/video-format.c:
4294 * gst-libs/gst/vaapi/video-format.h:
4295 libs: video-format: Refine the video format mapping.
4296 Improve the mapping between va format and gst format. The new map
4297 will be generated dynamically, based on the query result of image
4298 format in VA driver. Also consider the ambiguity of RGB color
4301 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4303 * gst/vaapi/gstvaapipluginutil.c:
4304 pluginutil: Remove Mesa from drivers white list
4305 The Mesa Gallium driver is poorly tested currently, leading to bad user
4306 experience for AMD users. The driver can be added back to the white list at
4307 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4309 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4311 * gst/vaapi/gstvaapipostproc.c:
4312 * gst/vaapi/gstvaapipostproc.h:
4313 * gst/vaapi/gstvaapipostprocutil.c:
4314 vaapipostproc: allow cropping via properties
4315 Add crop-left, crop-right, crop-top and crop-bottom
4316 properties to vaapipostproc.
4318 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4320 * gst/vaapi/gstvaapipostproc.c:
4321 vaapipostproc: rotate outbuf and crop meta if forwarding
4322 When forwarding crop meta to downstream, the output
4323 buffer and crop meta need to be rotated, too.
4325 for i in 90r 180 90l vert horiz ul-lr ur-ll
4327 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4328 ! videocrop top=100 bottom=30 left=40 right=20 \
4329 ! vaapipostproc video-direction=$i \
4331 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4332 ! videocrop top=100 bottom=30 left=40 right=20 \
4333 ! vaapipostproc video-direction=$i \
4334 ! identity drop-allocation=true \
4338 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4340 * gst/vaapi/gstvaapipostproc.c:
4341 vaapipostproc: fix output buffer WxH for crop meta forwarding
4342 Adding crop meta x,y to w,h only compensates for left,top
4343 cropping. But we also need to compensate for right,bottom
4345 The video meta contains the appropriate w,h (uncropped)
4346 values, so use it instead.
4348 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4349 ! videocrop top=50 bottom=30 left=40 right=20 \
4350 ! vaapipostproc ! vaapisink & \
4351 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4352 ! videocrop top=50 bottom=30 left=40 right=20 \
4353 ! vaapipostproc ! identity drop-allocation=1 \
4356 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4358 * gst/vaapi/gstvaapipostproc.c:
4359 vaapipostproc: handle size and direction together in src events
4360 Mapping a pointer event needs to consider both size and
4361 video-direction operations together, not just one or the other.
4362 This fixes an issue where x,y were not being mapped correctly
4363 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4364 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4365 the first condition in the pointer event handling was entered and
4366 x,y scale factor were incorrectly computed due to srcpad WxH
4368 This also fixes all cases where both video-direction and scaling
4369 are enabled at the same time.
4370 Test that all pointer events map appropriately:
4373 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4374 ! vaapipostproc video-direction=${i} width=300 \
4376 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4377 ! vaapipostproc video-direction=${i} width=300 height=200 \
4379 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4380 ! vaapipostproc video-direction=${i} height=200 \
4382 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4383 ! vaapipostproc video-direction=${i} \
4387 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4389 * gst/vaapi/gstvaapipostproc.c:
4390 * gst/vaapi/gstvaapipostproc.h:
4391 vaapipostproc: advertise crop meta is handled
4392 Advertise to upstream that vaapipostproc can handle
4394 When used in conjunction with videocrop plugin, the
4395 videocrop plugin will only do in-place transform on the
4396 crop meta when vaapipostproc advertises the ability to
4397 handle it. This allows vaapipostproc to apply the crop
4398 meta on the output buffer using vaapi acceleration.
4399 Without this advertisement, the videocrop plugin will
4400 crop the output buffer directly via software methods,
4401 which is not what we desire.
4402 vaapipostproc will not apply the crop meta if downstream
4403 advertises crop meta handling; vaapipostproc will just
4404 forward the crop meta to downstream. If crop meta is
4405 not advertised by downstream, then vaapipostproc will
4406 apply the crop meta.
4408 1. vaapipostproc will forward crop meta to vaapisink
4409 gst-launch-1.0 videotestsrc \
4410 ! videocrop left=10 \
4413 2. vaapipostproc will do the cropping
4414 gst-launch-1.0 videotestsrc \
4415 ! videocrop left=10 \
4417 ! identity drop-allocation=1 \
4420 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4422 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4423 libs: encoder: clean two virtual func in encoder class
4424 set_property and get_default_properties functions are no longer
4425 needed for encoder class.
4427 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4429 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4430 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4431 libs: encoder: delete old set_property and property enum feienc264
4433 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4435 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4436 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4437 libs: encoder: delete old set_property and property enum in h264 fei
4439 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4441 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4442 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4443 libs: encoder: delete old set_property and property enum in vp9
4445 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4447 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4448 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4449 libs: encoder: delete old set_property and property enum in vp8
4451 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4453 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4454 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4455 libs: encoder: delete old set_property and property enum in mpeg2
4457 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4459 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4460 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4461 libs: encoder: delete old set_property and property enum in jpeg
4463 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4465 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4466 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4467 libs: encoder: delete old set_property and property enum in h265
4469 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4471 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4472 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4473 libs: encoder: delete old set_property and property enum in h264
4475 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4477 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4478 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4479 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4480 libs: encoder: delete EncoderPropInfo related functions
4482 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4484 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4485 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4486 libs: encoder: delete encoder_set_property
4487 We no longer need this obsolete set_property function now after
4488 switch to standard gobject's property manner.
4489 Also delete the old encoder's property enum in the header file.
4491 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4493 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4494 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4495 libs: encoder: delete properties_get_default for base class
4497 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4499 * gst/vaapi/gstvaapiencode.c:
4500 * gst/vaapi/gstvaapiencode.h:
4501 plugin: encode: delete useless init_properties.
4502 Also delete the get_properties function in encode class. We now
4503 use g_object_class_list_properties to get all properties for
4504 internal encoder class.
4506 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4508 * gst/vaapi/gstvaapiencode.c:
4509 * gst/vaapi/gstvaapiencode.h:
4510 plugin: encode: delete set/get_property func in encode class
4511 Use standard gobject's property functions to replace the old way.
4513 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4515 * gst/vaapi/gstvaapiencode.c:
4516 * gst/vaapi/gstvaapiencode.h:
4517 plugin: encode: delete gst_vaapiencode_init_properties
4518 No need to init the properties got by get_default_properties func
4519 now. The properties are inited correctly in internal encoder class.
4521 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4523 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4524 libs: encoder: delete 3 useless init macro
4526 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4528 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4529 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4530 libs: encoder: delete get_default_properties of feienc
4532 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4534 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4535 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4536 libs: encoder: delete get_default_properties of H264 Fei
4538 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4540 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4541 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4542 libs: encoder: delete get_default_properties of VP9
4544 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4546 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4547 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4548 libs: encoder: delete get_default_properties of VP8
4550 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4552 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4553 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4554 libs: encoder: delete get_default_properties of MPEG2
4556 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4558 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4559 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4560 libs: encoder: delete get_default_properties of JPEG
4562 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4564 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4565 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4566 libs: encoder: delete get_default_properties of H265
4568 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4570 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4571 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4572 libs: encoder: delete get_default_properties of H264
4574 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4576 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4577 libs: encoder: delete the useless constructed func for encoder.
4579 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4581 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4582 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4583 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4584 libs: encoder: implement get_view_ids for h264 encoder.
4586 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4588 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4589 * gst/vaapi/gstvaapiencode.c:
4590 * gst/vaapi/gstvaapiencode_h264.c:
4591 * gst/vaapi/gstvaapiencode_h264_fei.c:
4592 * gst/vaapi/gstvaapiencode_h265.c:
4593 * gst/vaapi/gstvaapiencode_jpeg.c:
4594 * gst/vaapi/gstvaapiencode_mpeg2.c:
4595 * gst/vaapi/gstvaapiencode_vp8.c:
4596 * gst/vaapi/gstvaapiencode_vp9.c:
4597 gst: encode: enable new type of property mechanism.
4599 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4601 * gst/vaapi/gstvaapiencode.c:
4602 * gst/vaapi/gstvaapiencode.h:
4603 gst: encode: add property help functions for encoder properties.
4604 The encoder is a true gstobject now and all the properties are using
4605 gobject's properties mechanism. Add help functions to handle the properties
4606 between encode and encoder class.
4607 The basic idea is mapping the same property between encoder and encode. All
4608 the encoder's properties will have the same name, the same type in encode.
4609 The set/get property function just forward the property setting/getting to
4610 the encoder using the same property name and value. Because the encoder is
4611 created on needed, we need to cache the property setting in encode.
4613 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4615 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4616 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4617 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4618 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4619 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4620 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4621 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4622 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4623 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4624 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4625 libs: encoder: add flags to all encoder properties.
4626 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4627 need to init the properties manually.
4628 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4629 flag, means need to expose the property to according encode class.
4631 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4633 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4634 libs: encoder: Add properties for h264 encoder fei.
4635 Install properties for h264 encoder fei class. Also set the new get/set
4636 property functions for gobject class. Still use the old properties
4637 way now and this new feature will be enabled later.
4639 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4641 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4642 libs: encoder: Add properties for h264 fei encoder.
4643 Install properties for h264 fei encoder class. Also set the new get/set
4644 property functions for gobject class. Still use the old properties
4645 way now and this new feature will be enabled later.
4647 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4649 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4650 libs: encoder: Add properties for vp9 encoder.
4651 Install properties for vp9 encoder class. Also set the new get/set
4652 property functions for gobject class. Still use the old properties
4653 way now and this new feature will be enabled later.
4655 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4657 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4658 libs: encoder: Add properties for vp8 encoder.
4659 Install properties for vp8 encoder class. Also set the new get/set
4660 property functions for gobject class. Still use the old properties
4661 way now and this new feature will be enabled later.
4663 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4665 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4666 libs: encoder: Add properties for mpeg2 encoder.
4667 Install properties for mpeg2 encoder class. Also set the new get/set
4668 property functions for gobject class. Still use the old properties
4669 way now and this new feature will be enabled later.
4671 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4673 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4674 libs: encoder: Add properties for jpeg encoder.
4675 Install properties for jpeg encoder class. Also set the new get/set
4676 property functions for gobject class. Still use the old properties
4677 way now and this new feature will be enabled later.
4679 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4681 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4682 libs: encoder: Add properties for h265 encoder.
4683 Install properties for h265 encoder class. Also set the new get/set
4684 property functions for gobject class. Still use the old properties
4685 way now and this new feature will be enabled later.
4687 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4689 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4690 libs: encoder: Add properties for h264 encoder.
4691 Install properties for h264 encoder class. Also set the new get/set
4692 property functions for gobject class. Still use the old properties
4693 way now and this new feature will be enabled later.
4695 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4697 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4698 libs: encoder: add properties and prop help functions
4699 Add all common properties to encoder base class. rate-control and
4700 tune are moved to sub class.
4702 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4704 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4705 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4706 libs: encoder: delete useless gst_vaapi_encoder_new func.
4707 GstVaapiEncoder is a abstract gobject and never be created directly.
4709 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
4711 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4712 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4713 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4714 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4715 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4716 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4717 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4718 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4719 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4720 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4721 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4722 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4723 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4724 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4725 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4726 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4727 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4728 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4729 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4730 lib: encoder: gstobjectfy all vaapi encoders.
4731 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4732 Let the gstobject common logic to handle all the init and finalize
4733 works. But the property install/set/get still use the old way, need
4734 to be improved later.
4736 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4738 * gst/vaapi/gstvaapipostproc.c:
4739 vaapipostproc: check for filter before appending caps
4740 While ensuring the allowed sink pad caps, the filter attributes set
4741 the frame size restriction, but it is not ensured, at that moment,
4742 that the filter is already instantiaded.
4743 In order to silence the glib logs, this patch add only calls
4744 gst_vaapi_filter_append_caps() if the filter is instantiated.
4746 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
4748 * gst/vaapi/gstvaapidecodebin.c:
4749 Classify vaapidecodebin as a hardware decoder
4751 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
4753 * gst/vaapi/gstvaapipostproc.c:
4754 libs: postproc: fix a memory leak point.
4755 filter_ops and filter_formats should already have valid value when
4756 the function gst_vaapipostproc_ensure_filter_caps re-enter
4758 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
4760 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4761 libs: util: Fix a memory leak in config_surface_attributes_get
4763 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
4765 * gst/vaapi/gstvaapidecode.c:
4766 vaapidecode: support transform ROI meta
4767 This will benefit the use case like:
4768 src ---> encode ---> decode ---> circle ROI ---> sink
4773 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
4775 * gst/vaapi/gstvaapidecodedoc.c:
4776 docstrings: port ulinks to markdown links
4778 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4780 * gst-libs/gst/vaapi/Makefile.am:
4781 * gst-libs/gst/vaapi/gstvaapicontext.c:
4782 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4783 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4784 * gst-libs/gst/vaapi/meson.build:
4785 libs: remove context's overlay
4786 The context overlay was an optimization to apply a video composition
4787 to all the surfaces bound to a context.
4788 But since commit 18031dc6 this optimization was disabled, so it is
4789 better just get rid of it.
4791 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4793 * gst-libs/gst/vaapi/gstvaapicontext.c:
4794 * gst-libs/gst/vaapi/gstvaapisurface.c:
4795 * gst-libs/gst/vaapi/gstvaapisurface.h:
4796 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4797 * gst/vaapi/gstvaapipluginutil.c:
4798 * tests/test-subpicture.c:
4799 libs: remove surface's parent context
4800 In commit 18031dc6 surface's parent context is not assigned because of
4801 circular references. Since then (2013), there's has no issue with
4802 subpictures attached to a context, the current only users of this API.
4803 This patch cleans up all of related code with the unused surface's
4806 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4808 * gst/vaapi/gstvaapidecode.c:
4809 vaapidecode: guard if no structure is available in caps
4811 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4813 * gst-libs/gst/vaapi/gstvaapifilter.c:
4814 * gst-libs/gst/vaapi/gstvaapifilter.h:
4815 * gst/vaapi/gstvaapipostproc.c:
4816 vaapipostproc: append frame size restrictions in caps
4818 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4820 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4821 libs: profilecaps: refactor common code
4823 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4825 * gst/vaapi/gstvaapiencode.c:
4826 vaapiencode: set frame size restrictions in caps
4829 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4831 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4832 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4833 * gst/vaapi/gstvaapiencode.c:
4834 vaapiencode: enhance how the profile is defined
4835 This code doesn't define the profile used by the internal encoder, but
4836 it used to "predict" which is going to be used and to get the caps
4838 Before the profile was predicted by checking the donwstream caps, but
4839 sometimes they are not defined, setting an unknown profile. In order
4840 to enhances this situation, the encoder asks to internal encoder if it
4841 has one. If so, it is used.
4842 To ask the internal encoder's profile a new accessor function was
4843 added: gst_vaapi_encoder_get_profile()
4845 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4847 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4848 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4849 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4850 Previously it was just a boilerplate. Now it is real implementation.
4852 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4854 * gst-libs/gst/vaapi/gstvaapiutils.c:
4855 libs: utils: treat va_rt_format as bitwise flag
4856 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4857 is a bitwise flag with *all* the supported chroma types.
4858 Previously it was assumed that the return value was a single value,
4859 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4860 simple case. But it is wrong.
4861 This patch changes the case block with a sequence of ifs testing the
4862 bitwise. For now we assume a "priority" list in the testing sequence.
4864 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4866 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4867 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4868 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4869 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4870 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4871 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4872 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4873 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4874 * tests/test-display.c:
4875 libs: profile: add gst_vaapi_profile_get_va_name()
4876 gst_vaapi_profile_get_name() returns a proper name for
4877 GstCaps. Nonetheless, there are many profiles which don't have a name
4878 representation for that realm.
4879 gst_vaapi_profile_get_va_name() returns the name of the profile
4880 according to its VAProfile name.
4881 This new funtion is used in the encoder error message.
4883 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4885 * gst-libs/gst/vaapi/Makefile.am:
4886 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4887 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4888 * gst-libs/gst/vaapi/meson.build:
4889 * gst/vaapi/gstvaapidecode.c:
4890 libs: profilecaps: move caps config into a new file
4891 Implement all the appending of frame size restrictions in caps, for
4892 encoders and decoders, in a new source file.
4894 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4896 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4897 libs: decoder: ref the caps as property
4899 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4901 * gst-libs/gst/vaapi/gstvaapicontext.c:
4902 * gst-libs/gst/vaapi/gstvaapicontext.h:
4903 libs: context: add gst_vaapi_context_get_surface_attributes()
4904 This function copies the surface attributes from the context's object
4907 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4909 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4910 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4911 * gst-libs/gst/vaapi/gstvaapiutils.c:
4912 * gst-libs/gst/vaapi/gstvaapiutils.h:
4913 libs: move memory types conversions to gstvaapiutils
4914 And add more supported memory types by current VA.
4916 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4918 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4919 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4920 libs: utils: remove unused function gst_vaapi_get_surface_formats()
4922 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4924 * gst-libs/gst/vaapi/gstvaapicontext.c:
4925 * gst-libs/gst/vaapi/gstvaapicontext.h:
4926 * gst-libs/gst/vaapi/gstvaapifilter.c:
4927 libs: context, filter: use new surface attributes API
4929 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4931 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4932 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4933 libs: utils: add gst_vaapi_config_surface_attributes_get()
4934 To extract the surface restrictions per config using a new structure:
4935 GstVaapiConfigSurfaceAttributes
4937 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4939 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4940 Split the surface attribute retrieval
4942 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4944 * gst/vaapi/gstvaapipostproc.c:
4945 vaapipostproc: handle navigation downstream event
4946 When navigation events contains coordiantes those have to be mapped
4947 to the new size and/or orientation.
4949 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4951 * tests/elements/test-vaapisink.c:
4952 test-vaapisink: also use vaapipostproc to change orientation
4954 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4956 * gst-libs/gst/vaapi/gstvaapifilter.c:
4957 * gst-libs/gst/vaapi/gstvaapifilter.h:
4958 * gst/vaapi/gstvaapipostproc.c:
4959 * gst/vaapi/gstvaapipostproc.h:
4960 * gst/vaapi/gstvaapipostprocutil.c:
4961 vaapipostproc: handle image-orientation upstream event
4962 Now that vaapipostproc can possible handle video-direction, it
4963 should also handle the image-orientation event from upstream if
4964 video-direction property is set to auto.
4966 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4968 * gst/vaapi/gstvaapipostproc.c:
4969 vaapipostproc: add missing locks when adding flags
4971 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4973 * gst/vaapi/gstvaapipostproc.c:
4974 vaapipostproc: update filter before fixate caps
4975 It is requiered to know if postproc is capable to change the video
4976 direction before fixating the source caps.
4977 In order to do it, it'ss required to know if there's a functional VPP,
4978 but that's checked at create() vmethod, which occurs after caps
4980 This patch checks for a functional VPP at fixate caps and, if so,
4981 checks for the enabled filtes and later do the caps fixations.
4983 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4985 * gst-libs/gst/vaapi/gstvaapifilter.c:
4986 * gst-libs/gst/vaapi/gstvaapivalue.c:
4987 * gst-libs/gst/vaapi/gstvaapivalue.h:
4988 * gst/vaapi/gstvaapipostproc.c:
4989 vaapipostproc: element warning if video direction is unsupported
4990 If the video direction is unsupported by the driver, an element
4991 warning is posted in the bus to notify the application.
4992 gst_vaapi_enum_type_get_nick() was added in the library thus it can
4993 be used elsewhere. It retrives the nick from an enum gtype.
4995 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4997 * gst-libs/gst/vaapi/gstvaapifilter.c:
4998 libs: filter: check mirror and rotation caps only once
4999 This patch locks the display before querying the pipeline caps and
5000 stores the mirror and rotation capabilities, thus they are not queried
5001 every time the video direction is set.
5003 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5005 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5006 libs: encoder: vp9: set VP9_0 profile as default
5007 Commit 0afc8131 introduced a regression and only NV12 format were
5008 admitted, failing in any other valid color format.
5009 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
5011 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5013 * gst-libs/gst/vaapi/gstvaapifilter.c:
5014 libs: filter: fail if first color balance value is invalid
5016 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
5018 * gst-libs/gst/vaapi/gstvaapifilter.c:
5019 * gst-libs/gst/vaapi/gstvaapiutils.c:
5020 * gst-libs/gst/vaapi/gstvaapiutils.h:
5021 libs: filter: set all color balance values
5022 When set multiple settings of color balance like hue, saturation,
5023 brightness and contrast for vaapipostproc, they should be set as
5024 parameters of color balance filter, at the same color balance
5026 Otherwise, multiple color balance filter calling will cause
5027 previous setting get reset by the last calling with default value.
5029 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
5031 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
5033 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5034 libs: h265dec: remove limitation of get iq matrix
5035 According hevc spec, scaling_list_data is not related
5036 to chroma_format_idc.
5038 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
5040 * gst-libs/gst/vaapi/gstvaapivideopool.c:
5041 libs: videopool: fix undocumented behavior and counting
5042 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
5043 because it locks twice the same mutex.
5044 Also, n had different meanings in the current code: as an increase
5045 value and as a new total of allocated surfaces.
5046 This patche removes the undocumented behavoir (usually a deadlock) and
5047 fixes the meaning of n as the new total of allocated surfaces.
5048 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5050 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
5052 * gst-libs/gst/vaapi/gstvaapiutils.c:
5053 libs: utils: Add missing entries for string_of_VAEntrypoint.
5055 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
5057 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5058 libs: encoder: Consider vp9 profiles based on input format.
5059 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
5062 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5064 * gst/vaapi/gstvaapivideomemory.c:
5065 vaapivideomemory: demote error message to info
5066 The main reason to demote the message's level is because it is not an
5067 error, it's a possible output of the trial and there's a code path
5069 Secondly, it's very annoying when using gallium driver for radeon.
5071 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
5073 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5074 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5075 * gst-libs/gst/vaapi/gstvaapitypes.h:
5076 * gst-libs/gst/vaapi/gstvaapiutils.c:
5077 * gst-libs/gst/vaapi/gstvaapivalue.c:
5078 libs: encoder: h264: support ICQ/QVBR bitrate control mode
5079 ICQ is Intelligent Constant Quality. It will use the initial QP
5080 vaule of icq-quality-factor to adjust QP at MB level intelligently
5081 to improve subjective quality.
5082 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
5083 adjust QP for each MB to get enough quality picture without waste
5086 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
5088 * gst-libs/gst/vaapi/gstvaapitypes.h:
5089 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
5090 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
5091 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
5092 deal with unsigned int. Otherwise there may be an error of out of
5093 range of integer if we define few more rate-control mode.
5095 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5097 * gst/vaapi/gstvaapidecodebin.c:
5098 vaapidecodebin: set queue's max size buffers to 1
5099 Otherwise the queue will swallow all the available decoder's surfaces
5100 reaching a dead-lock.
5101 This setting might impact the bin's peformance, but it's a trade-off.
5103 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5105 * gst/vaapi/gstvaapidecodebin.c:
5106 vaapidecodebin: set properties default values
5108 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5110 * gst/vaapi/gstvaapidecode.c:
5111 vaapidecode: don't error if can't push buffers downtream
5112 When the code path goes to push buffers downstream when no surface
5113 available in decoder context, and it fails the code bails out with a
5115 That behavior is wrong, since it shouldn't be fatal. The use case is
5116 when the video stream is disabled.
5117 This patch just ignores the errors in this situation and demotes the
5118 level of a log message.
5120 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
5122 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5123 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5124 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5125 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5126 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5127 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5128 libs: encoder: h264,h265: add new property "max-qp"
5129 Add new property "max-qp" to allow set the maximum quantisation
5132 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
5134 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5135 libs: encoder: vp9: add low power mode encode
5136 By now, this feature only support by media-driver on Ice Lake
5137 platform, more information you can reference:
5138 https://github.com/intel/media-driver
5140 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5142 * gst/vaapi/gstvaapipostprocutil.c:
5143 vaapipostproc: update PAR when rotating
5144 When rotating, swap pixel-aspect-ratio during
5148 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5150 * gst-libs/gst/vaapi/gstvaapifilter.c:
5151 * gst-libs/gst/vaapi/gstvaapiutils.c:
5152 * gst-libs/gst/vaapi/gstvaapiutils.h:
5153 * gst/vaapi/gstvaapipostprocutil.c:
5154 vaapipostproc: add rotation support
5155 Adds vpp rotation support to vaapipostproc. Uses
5156 property video-direction. Default is identity (no
5160 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5162 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5163 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5164 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5165 cu_qp_delta_enabled_flag enabled.
5168 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5170 * gst-libs/gst/vaapi/gstvaapiutils.c:
5171 libs: encoder: Add MB ratecontrol mode to get its string
5173 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5175 * gst-libs/gst/vaapi/gstvaapiutils.c:
5176 libs: encoder: refine guard of bitrate control mode
5177 Remove useless guard of all bitrate control mode's guard except MB
5178 which is define in VA-API version 0.39.1.
5180 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5182 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5183 h264: Update for parse_vui_params parameter removal.
5184 Update calls to the h264 parser lib for removal of the
5185 parse_vui_params parameter.
5187 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5189 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5190 libs: dec: vp9: do not use display size as decoded size
5191 If display size is smaller than current frame size, then the crop size
5192 will be set as display size, which either crashes the pipeline or the
5193 output MD5 does not match. Rather it should use the actual decoded size.
5194 This patch removes the cropping set. For rendering we can use aspect
5195 ratio to set display size.
5197 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5198 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5200 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5205 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5207 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5208 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5209 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5210 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5211 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5212 than 8 bits, which cause using the wrong NV12 surface as the render target
5216 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5218 * gst/vaapi/gstvaapidecode.c:
5219 vaapidecode: set initial decode format according surface chroma type
5220 For surfaces with different chroma type, it is prefer to initialize
5221 a format which chroma type should be same with surface chroma type
5222 instead of using fixed NV12.
5224 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5226 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5227 * gst-libs/gst/vaapi/gstvaapiimage.c:
5228 * gst-libs/gst/vaapi/video-format.c:
5229 * gst/vaapi/gstvaapidecode.c:
5230 * gst/vaapi/gstvaapipluginutil.h:
5231 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5232 When create vaapi surface, it is better to use the chroma type get
5233 from jpeg file instead of using fixed 420 format. And the correct
5234 chroma type can be determined by horizontal_factor/vertical_factor
5235 flags that get from jpegparse.
5237 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5239 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5240 libs: dec: h265: Fix profile_idc mapping.
5241 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5242 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5243 happened to be the correct value.
5244 We only support Annex A profile_idc (1-4).
5246 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5248 * gst/vaapi/gstvaapipluginbase.c:
5249 plugins: remove last negotiated video info if caps are same
5250 If the allocation caps and negotiated caps are the same,
5251 then ensure any previously negotiated video info is also
5252 removed. This can occur when multi-resolution video
5253 decoding returns to it's original resolution.
5256 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5258 * gst/vaapi/gstvaapivideomemory.c:
5259 vaapivideomemory: allow negotiated info to be removed
5260 Allow NULL negotiated_vinfo to be passed into
5261 gst_allocator_set_vaapi_negotiated_video_info to allow
5262 any previously set info to be removed.
5264 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5266 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5267 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5268 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5269 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5270 counter, hence the newly created frame could become a P-frame, leading to some
5271 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5272 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5273 GstVaapiEncoderVP9 implementations.
5275 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5277 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5278 libs: encoder: increase bitrate prop max value
5279 There are many profile levels that can support
5280 more than 102400 kbps. Thus, increase the max
5281 allowed bitrate property value from 102400 kbps
5282 to 2048000 kbps (same as msdk encoder plugins).
5284 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5286 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5287 libs: mpeg2 encoder: No packed header for SPS and PPS
5288 Dislable passing down packed PPS and PPS to driver if driver does
5292 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5297 meson: Bump minimal GLib version to 2.44
5298 This means we can use some newer features and get rid of some
5299 boilerplate code using the G_DECLARE_* macros.
5300 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5302 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5304 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5305 libs: dec: vp9: clear parser pointer after release
5306 Fix an use-after-release of the parser pointer in VP9 decoder.
5308 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5310 * gst/vaapi/gstvaapiencode.c:
5311 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5312 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5313 srcpad's chain function was locked waiting for available buffers. Since the
5314 coded buffers in codedbuf_queue become available after sinkpad consume the
5315 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5316 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5317 available buffers and holds the stream_lock of the srcpad.
5319 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5321 * gst-libs/gst/vaapi/gstvaapitypes.h:
5322 * gst/vaapi/gstvaapidecodebin.c:
5323 * gst/vaapi/gstvaapidecodedoc.c:
5324 * gst/vaapi/gstvaapiencode_h264.c:
5325 * gst/vaapi/gstvaapiencode_h264_fei.c:
5326 * gst/vaapi/gstvaapiencode_h265.c:
5327 * gst/vaapi/gstvaapiencode_jpeg.c:
5328 * gst/vaapi/gstvaapiencode_mpeg2.c:
5329 * gst/vaapi/gstvaapiencode_vp8.c:
5330 * gst/vaapi/gstvaapiencode_vp9.c:
5331 * gst/vaapi/gstvaapipostproc.c:
5332 * gst/vaapi/gstvaapisink.c:
5333 doc: remove xml from comments
5335 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5337 * gst-libs/gst/vaapi/gstvaapifilter.c:
5338 * gst-libs/gst/vaapi/gstvaapifilter.h:
5339 * gst-libs/gst/vaapi/gstvaapiutils.c:
5340 * gst-libs/gst/vaapi/gstvaapiutils.h:
5341 * gst/vaapi/gstvaapipostproc.c:
5342 * gst/vaapi/gstvaapipostproc.h:
5343 vaapipostproc: add mirror support
5344 Adds vpp mirroring support to vaapipostproc. Use
5345 property video-direction. Valid values are identity,
5346 horiz or vert. Default is identity (no mirror).
5348 v2: Use GstVideoOrientationMethod enum
5349 v3: Don't warn for VA_MIRROR_NONE.
5350 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5351 v4: Query VAAPI caps when setting mirror value
5352 instead of during per-frame processing.
5353 v5: Return TRUE in warning cases when setting mirror value.
5355 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5357 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5358 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5359 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5360 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5361 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5362 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5363 * gst/vaapi/gstvaapidecodebin.c:
5364 * gst/vaapi/gstvaapisink.c:
5365 doc: fix some incorrect gtk-doc links
5367 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5369 * docs/gst_plugins_cache.json:
5370 docs: Update plugin cache
5371 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5373 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5375 * gst-libs/gst/vaapi/gstvaapisurface.h:
5376 libs: surface: fix documentation format
5378 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5380 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5381 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5382 When enable low delay B, the reference list 1 will be same with
5383 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5384 to num_ref_idx_l0_active_minus1.
5387 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5390 meson: Fix call to wrong function
5392 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5397 * docs/gst_plugins_cache.json:
5400 * docs/plugins/Makefile.am:
5401 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5402 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5403 * docs/plugins/gstreamer-vaapi-plugins.types:
5404 * docs/plugins/inspect/plugin-vaapi.xml:
5405 * docs/plugins/running.xml:
5407 * docs/version.entities.in:
5408 * gst/vaapi/meson.build:
5410 * meson_options.txt:
5411 docs: Port to hotdoc
5413 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5415 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5416 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5417 libs: encoder: not call ensure_num_slices inside g_assert
5418 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5419 defined. The function inside the g_assert will take no effect and
5420 we will fail to set the correct slice number.
5422 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5424 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5425 libs: h265: dec: Add extension flags setting.
5426 Use VAPictureParameterBufferHEVCExtension&
5427 VASliceParameterBufferHEVCExtension to pass extension setting from
5428 some extension profile clips which may include these information.
5429 The hevc extension setting only supported after libva release 2.2.0
5432 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5434 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5435 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5436 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5437 libs: encoder: add target-percentage property
5438 Allow users to set the target-percentage for
5439 variable rate controls. The default value is
5440 70 (as hard-coded prior).
5441 v2: minimum allowed value changed from 0 to 1
5442 v3: target-percentage unchanged if CBR used
5445 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5447 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5448 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5450 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5452 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5453 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5454 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5455 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5456 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5457 libs: encoder: Enable trellis quantization method.
5458 The advanced trellis algorithm is supported in VA driver. We add
5459 its support as a property named "trellis" of encoder.
5460 It only works for H264 now, should be more in future.
5462 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5464 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5465 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5466 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5467 type, so we need to add subsampling_x&subsampling_y to fix it.
5468 Here is the relationship between chroma type and profile and
5469 subsampling_x&subsampling_y according to vp9 spec:
5470 ------------------------------------------
5471 Profile | Bit depth | Chroma subsampling |
5472 ------------------------------------------
5474 ------------------------------------------
5475 1 | 8 | 422,440,444 |
5476 ------------------------------------------
5478 ------------------------------------------
5479 3 | 10, 12 | 422,440,444 |
5480 ------------------------------------------
5481 -----------------------------------------------
5482 Subsampling_x | Subsampling_y | Chroma format |
5483 -----------------------------------------------
5485 -----------------------------------------------
5487 -----------------------------------------------
5489 -----------------------------------------------
5491 -----------------------------------------------
5493 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5495 * gst-libs/gst/vaapi/gstvaapiimage.c:
5496 * gst-libs/gst/vaapi/video-format.c:
5497 libs: Add packed 24 RGB format support.
5498 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5499 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5500 type. This kind of surface will just be created by new API with fourcc
5501 and no old style chrome based creation is available.
5504 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5506 * gst/vaapi/gstvaapiencode.c:
5507 * gst/vaapi/gstvaapiencode_h264.c:
5508 * gst/vaapi/gstvaapiencode_h264_fei.c:
5509 * gst/vaapi/gstvaapiencode_h265.c:
5510 * gst/vaapi/gstvaapiencode_jpeg.c:
5511 * gst/vaapi/gstvaapiencode_mpeg2.c:
5512 * gst/vaapi/gstvaapiencode_vp8.c:
5513 * gst/vaapi/gstvaapiencode_vp9.c:
5514 vaapiencode: handle DMABuf caps feature in sink pad
5515 Add DMABuff caps features in all encoders' sink pad.
5517 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5519 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5520 libs: encoder: continue if roi meta is NULL
5522 If the function actually returns a null value, a null pointer
5523 dereference will occur.
5524 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5525 function which returns null is dereferenced without checking
5527 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5529 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5530 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5531 The decoder's surface chroma type should depend on the bit depth
5532 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5533 10 bits surface as the decoder result.
5536 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5538 * gst/vaapi/gstvaapipostprocutil.c:
5539 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5540 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5541 with commit 3e992d8a
5542 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5543 from caps negotiation, different from the default one (NV12), the
5544 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5545 feature is negotiated, no color transformation shall be done.
5546 Nonetheless, with commit 3e992d8a the requested format changes
5547 firstly, because there's no video sink yet, so ANY caps are
5548 negotiated; but later, when there's a video sink and a caps
5549 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5550 format conversion still ongoing. It is required to reset that
5552 This patch force default color format when GL_TEXTURE_UPLOAD is
5553 selected as preferred, thus avoiding the color conversion.
5556 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5558 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5559 libs: surface: fix double free when dmabuf export fails
5560 Happens if vaAcquireBufferHandle fails.
5562 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5564 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5565 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5567 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5571 * docs/plugins/inspect/plugin-vaapi.xml:
5575 === release 1.16.0 ===
5577 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5583 * gstreamer-vaapi.doap:
5587 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5589 * docs/plugins/inspect/plugin-vaapi.xml:
5592 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5594 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5595 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5596 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5597 libs: encoder: h264,h265: guard VA version for max_qp property
5598 This patch fixes a regression from commit 5b1fe9c6.
5599 max_qp, in rate control configuration, appeared in libva release
5600 2.1 (API 1.1), thus it is required to guard the VA API version.
5603 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5605 * gst-libs/gst/vaapi/gstvaapiimage.c:
5606 * gst-libs/gst/vaapi/video-format.c:
5607 libs: Add RGB565 image format support.
5609 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5612 build: configure: delay USE_GTK conditional until check libva-x11
5613 libva-x11 is used for X11 applications, so it is required to build
5614 any GTK application.
5615 Later, when Wayland test is added, we should change this.
5617 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5620 build: configure: disable GLX if libva-x11 is not found
5622 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5624 * gst-libs/gst/vaapi/gstvaapiutils.c:
5625 libs: utils: avoid macro evaluation when stringify
5626 string_of_va_chroma_format() gets a wrong string format description.
5627 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5628 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5629 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5631 To avoid the macro evaluation, it is changed to show only the color
5632 format without VA_RT_FORMAT_ prefix.
5634 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5636 * gst-libs/gst/vaapi/gstvaapiutils.c:
5637 libs: utils: use glib's macros
5638 Don't reinvent the wheel.
5640 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5642 * gst/vaapi/gstvaapipluginutil.c:
5643 plugins: find the preferred format from right caps.
5644 When the downstream has any caps, then raw video feature will
5645 be used. At this situation, the preferred format should be chose
5646 from caps which contains "vide/x-raw" feature instead of from
5647 the fist allowed caps.
5650 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5652 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5653 libs: encoder: h265: fill tier in va seq param buf
5654 Now that tier is calculated in commit 58e74f9440fe (!68),
5655 ensure we fill in the general_tier_flag in the
5656 VAEncSequenceParameterBufferHEVC.
5658 === release 1.15.90 ===
5660 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5666 * gstreamer-vaapi.doap:
5670 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5672 * docs/plugins/inspect/plugin-vaapi.xml:
5675 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5677 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5678 libs: encoder: h265: Recognize the correct level and tier.
5679 The current manner can not recognize the correct level and always
5680 set the tier to main. Need to add frame rate check to recognize
5681 levels such as 4.1, 6.2, etc. We also add a logic to check main
5682 and high tier based on bitrate.
5685 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5687 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5688 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5689 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5690 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5691 media-driver currently fails to set a correct value of max_qp when
5692 min_qp is different to zero, in CBR and VBR mode, generating full
5693 quality frames, thus unexpected huge output.
5694 This patch sets max_qp to an arbitrary value to avoid this output
5698 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5700 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5701 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5702 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5703 libs: encoder: h264,h265: initial and minimal QP can be zero
5704 Currently the minimal value for either min_qp and init_qp are 1,
5705 but VA documentation specifiy that zero is also valid and means
5706 to ignore the quantiser.
5707 The default value is not changed though to avoid behaivor changes
5710 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5712 * tests/elements/meson.build:
5713 meson: build test-vaapicontext when using X11
5714 x11_dep and libva_x11_dep are optional and meson ignores these
5715 dependencies even if they are added into the dependency list.
5716 This fixes the error below when libva-x11 is not avaiblabe:
5717 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5718 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5719 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5720 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5721 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5722 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5723 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5724 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5725 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5726 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5727 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5728 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5729 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5730 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5731 -DHAVE_CONFIG_H -MD -MQ
5732 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5734 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5736 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5737 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5738 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5739 error: va/va_x11.h: No such file or directory
5740 #include <va/va_x11.h>
5742 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
5744 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5745 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5746 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5747 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5748 GValueArray is deprecated. Use GstValueArray instead.
5750 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
5752 * gst/vaapi/gstvaapipluginutil.c:
5753 vaapipluginutil: Fix #endif for USE_X11
5755 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5757 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5758 libs: encoder: h264: simplify the view-ids setting
5760 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
5762 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5763 libs: encoder: h264: Use gst_param_spec_array for view-ids
5764 GValueArray is deprecated. Use GstValueArray instead.
5765 gst_param_spec_array can be deserialized from command line using:
5766 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5767 While the g_param_spec_value_array() can not, and always get
5768 error: "gst_value_deserialize_g_value_array: unimplemented"
5769 Also fixed an out-of-range bug.
5771 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
5773 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5774 libs: Change the parameter setting order when encode picture.
5775 The order in gst_vaapi_enc_picture_encode when encoding one
5776 picture is not very correct. The misc parameters are set before
5777 the picture parameters. Some of the misc parameters such as
5778 ROI may change the current picture parameters. But the later
5779 setting of picture parameter will re-init all picture related
5780 parameters and clear the previous setting. The right order
5781 should be picture parameter first and then misc parameters.
5782 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5784 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
5786 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5787 libs: decoder: jpeg: support dynamic resolution change decode.
5788 Add size_changed flag to watch out resolution. if change, reset
5789 jpeg decoder's context.
5791 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
5793 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5794 libs: encoder: h265: add low power mode encode.
5795 By now, this feature only support by media-driver on Ice Lake
5796 platform, more information you can reference:
5797 https://github.com/intel/media-driver
5799 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
5801 * gst/vaapi/gstvaapiencode.c:
5802 vaapiencode: gobject's prop_id differ from vaapi encoder
5803 The vaapi internal encoder's property id are negative, thus they are
5804 different from GObject's property ids.
5805 gst_vaapi_encoder_set_property() should map to the internal encoder
5806 property id, assigned in gst_vaapiencode_default_set_property().
5808 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
5811 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5813 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
5816 meson: use new 'python' module instead of deprecated 'python3' one
5818 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
5821 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5822 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5824 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
5829 * docs/plugins/inspect/plugin-vaapi.xml:
5833 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
5835 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5836 libs: Fix a typo in comments.
5837 Fix a typo in function description of
5838 gst_vaapi_surface_pool_new_with_chroma_type.
5839 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5841 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5843 * gst/vaapi/gstvaapipluginutil.c:
5844 plugin: if any caps in downstream, negotiate raw video
5845 When downstream has any caps, vaapi should not shovel vaapi featured
5846 buffers, but rather plain raw video, assuming always the worst case
5847 scenario (downstream cannot handle featured video memory but raw
5848 system memory buffers).
5849 This patch query the peer caps without any filter, to know if
5850 donwstream just ask for any caps, if so jump to the color space
5851 checking, otherwise do the caps intersection and continue with the
5852 feature selection algorithm.
5855 === release 1.15.2 ===
5857 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5863 * gstreamer-vaapi.doap:
5867 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5869 * docs/plugins/inspect/plugin-vaapi.xml:
5872 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
5874 * gst/vaapi/gstvaapivideomemory.c:
5875 vaapivideomemory: Prefer same format for surface and image
5876 We prefer to use the same format between image and surface for gst
5877 vaapi allocator. The old way may choose different formats between
5878 image and surface. For example, the RGBA image may have a NV12 surface.
5879 So we need to do format conversion when we put/get image to surface.
5880 Some drivers such as iHD can not support such conversion and always
5881 cause a data flow error. There may also have some performance cost
5882 for format conversion when put/get images.
5883 So we prefer to use the same format for image and surface in the
5884 allocator. If the surface can not support that format, we then
5885 fallback to find a best one as the surface format.
5886 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5888 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
5890 * gst-libs/gst/vaapi/video-format.c:
5891 libs: Delete the duplicated ARGB video format.
5892 Two ARGB formats with the same format information.
5893 Should be verbose and delete one.
5894 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5896 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
5899 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5900 glx: Stop specifying GLX_DEPTH_SIZE
5901 This code is just confused. It's asking for at least as many bits of
5902 (z-axis) depth as the root window has bits of (color) depth. For rgb565
5903 or rgb888 this is harmless, but at 10 bits per channel this demands a
5904 30-bit or deeper Z buffer. While some hardware could in principle do a
5905 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5907 We're not actually using the Z buffer, so just stop asking for one.
5909 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
5912 * gst-libs/gst/vaapi/Makefile.am:
5913 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5914 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5915 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5916 * gst-libs/gst/vaapi/meson.build:
5917 * gst/vaapi/gstvaapisink.c:
5919 libs: wayland: add support for XDG-shell protocol
5920 [wl_shell] is officially [deprecated], so provide support for the
5921 XDG-shell protocol should be provided by all desktop-like compositors.
5922 (In case they don't, we can of course fall back to wl_shell).
5923 Note that the XML file is directly provided by the `wayland-protocols`
5924 dependency and generates the protocol marshalling code.
5925 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5926 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5928 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
5930 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5931 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5932 It will help us to distinguish from other Wayland shell surface
5933 (such as XDG-shell) later on.
5935 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
5937 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5938 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5939 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5940 libs: wayland: Prefix wl_shell field with `wl_`
5941 It will help us to distinguish from other Wayland shells (such as
5942 XDG-shell) later on.
5944 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
5946 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5947 libs: display: lock ensure_profile()
5948 Thread safety patch for ensure_profile() function
5951 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5954 meson: bump the minimum wayland version requirement to 1.11.0
5955 This was missed on commit 77bb3424
5957 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5959 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5960 * gst/vaapi/gstvaapisink.c:
5961 vaapisink: x11: trap WM_DELETE_WINDOW message
5962 Register the WM_DELETE_WINDOW message from window manager and
5963 trap it to stop the pipeline cleanly.
5964 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5966 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5968 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5969 libs: window: remove native-id property
5970 native-id property is problematic since the variable that stores it is
5971 gsize, which is platform specific, and in some is bigger than unsigned
5972 long, and there are not way to handle gsize properties.
5973 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5974 like to keep using it for this scope.
5975 This patch removes the native-id property and set it manually in
5976 gst_vaapi_window_new_internal().
5978 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5980 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5981 libs: window: use G_GSIZE_MODIFIER for window id
5982 gsize type is not equal in all platforms, then the 'l' print modifier
5983 shall not be used always.
5984 This issue was found in Debian builds.
5986 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
5988 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5989 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5990 encoder: h264/h265: set SPS cbr_flag with correct value.
5991 The flag only set as 1 when the rate-control mode is CBR.
5993 === release 1.15.1 ===
5995 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6001 * gstreamer-vaapi.doap:
6005 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6007 * docs/plugins/inspect/plugin-vaapi.xml:
6010 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6012 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6013 libs: encoder: refactor to avoid code duplication
6014 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
6015 the same code segment where the coded buffer is created, the picture
6016 encoded on it and pushed to the async queue.
6017 The function gst_vaapi_encoder_encode_and_queue() refactor this.
6019 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6021 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6022 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6023 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6024 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6025 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
6026 libs: encoder: h264/h265: flush pending ordered pictures
6027 In order to flush the pending pictures, a new internal encoder vmethod
6028 is used: get_pending_reordered()
6029 This method follows an iterator pattern which will return the next
6030 picture to encode and push.
6031 The base encoder will call this function in a loop when flush() is called.
6032 For now, only H.264 and H.265 encoders implement this flushing mechanism.
6034 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.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 libs: encoder: h264/h265: fix encode lose frame issue.
6041 Instead of dropping all remain frames in reorder_frame_list during
6042 flush, keep encoding.
6043 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
6045 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
6047 * gst/vaapi/gstvaapipostproc.c:
6048 vaapipostproc: before set surface proxy, check if it already been created and exist.
6049 Fix the deinterlace black frame when playing with glimagesink:
6050 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
6051 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
6053 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
6055 * gst-libs/gst/vaapi/gstvaapiutils.c:
6056 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
6058 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6060 * gst-libs/gst/vaapi/meson.build:
6061 * gst/vaapi/meson.build:
6063 * tests/meson.build:
6064 meson: build h264 fei encoder if possible
6066 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
6069 configure: bump the minimum wayland version requirement to 1.11.0
6071 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
6074 * gst-libs/gst/vaapi/Makefile.am:
6075 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6076 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6077 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6078 * gst-libs/gst/vaapi/gstvaapicompat.h:
6079 * gst-libs/gst/vaapi/gstvaapicontext.c:
6080 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6081 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6082 * gst-libs/gst/vaapi/gstvaapifilter.c:
6083 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6084 * gst-libs/gst/vaapi/gstvaapisurface.c:
6085 * gst-libs/gst/vaapi/gstvaapiutils.c:
6086 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6087 * gst-libs/gst/vaapi/meson.build:
6088 * gst/vaapi/Makefile.am:
6089 * gst/vaapi/gstvaapi.c:
6090 * gst/vaapi/gstvaapidecode.c:
6091 * gst/vaapi/gstvaapidecodebin.c:
6092 * gst/vaapi/gstvaapipluginbase.c:
6093 * gst/vaapi/meson.build:
6096 * tests/simple-decoder.c:
6097 vaapi: bump the minimum vaapi version requirement to 0.39.0
6098 And reduce unnecessary API version and structures check as well.
6099 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
6101 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6103 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6104 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6105 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6106 * tests/test-decode.c:
6107 * tests/test-filter.c:
6108 * tests/test-subpicture.c:
6109 * tests/test-textures.c:
6110 * tests/test-windows.c:
6111 libs: window: remove custom ref() and unref()
6112 Use gst_object_ref() and gst_object_unref() instead.
6114 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6116 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6117 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6118 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6119 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6120 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6121 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6122 libs: window: use its own debug category
6124 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6126 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6127 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6128 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6129 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6130 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6131 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6132 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6133 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6134 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6135 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6136 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6137 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6138 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6139 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6140 libs: window: refactor as gobject
6141 This is another step in the gobjectification of the internal library
6142 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6144 The idea is to minimize the changeset keeping the same design as
6146 GstVaapiWindow is defined as an abstract class with two properties:
6147 the GstVaapiDisplay and the native ID. Thus, many of the
6148 GstVaapiObject macros were copied as GstVaapiWindow macros.
6149 The function gst_vaapi_window_new_internal() is kept as a decorator
6150 of for calling gst_vaapi_window_create() and the possibility of
6152 The descendant classes, such as glx, still use the private
6153 structures, but through the gobject mechanism.
6155 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6157 * gst-libs/gst/vaapi/gstvaapifilter.c:
6158 libs: filter: use its own debug category
6160 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6162 * gst/vaapi/gstvaapidecode.c:
6163 * gst/vaapi/gstvaapipluginbase.c:
6164 * gst/vaapi/gstvaapipluginbase.h:
6165 * gst/vaapi/gstvaapipostproc.c:
6166 * gst/vaapi/gstvaapisink.c:
6167 plugins: Add more check for allowed raw caps.
6168 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6169 pad and src pad, which cause some bugs. For sink pad, we need to verify
6170 vaPutImage() while for the src pad we need to verify vaGetImage().
6171 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6172 to verify whether the decoded result(in some surface, NV12 format most
6173 of the time) can be vaGetImage to some raw image format. Add more check
6174 to fix all these problems.
6175 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6176 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6178 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6180 * gst/vaapi/gstvaapipostproc.c:
6181 vaapipostproc: fix csc fail when only change width or height.
6183 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6185 * tests/elements/meson.build:
6186 meson: Add gtk guard
6188 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6190 * gst/vaapi/gstvaapiencode_h264.c:
6191 libs: enc: h264: set max profile idc with correct profile.
6192 Use the highest rank of available profile as the max profile to
6194 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6196 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6198 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6199 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6200 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6201 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6202 This gets rid of the strange `do_init` macro and makes the intent a bit
6205 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6208 Automatic update of common submodule
6209 From ed78bee to 59cb678
6211 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6213 * gst-libs/gst/vaapi/gstvaapiimage.c:
6214 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6215 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6216 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6217 * gst-libs/gst/vaapi/video-format.c:
6218 * gst/vaapi/gstvaapidecode.c:
6219 * gst/vaapi/gstvaapipluginutil.h:
6220 libs: dec: h265: support decode for main-444 10bit streams.
6221 Add 444 10bit yuv format Y410, which can be used to decode
6222 main-444 10bit streams. Currently, this feature is only
6223 supported by media-driver in Icelake.
6225 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6227 * gst/vaapi/gstvaapidecode.c:
6228 * gst/vaapi/gstvaapisink.c:
6229 Run gst-indent through the files
6230 This is required before we enabled an indent test in the CI.
6231 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6233 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6235 * gst/vaapi/gstvaapipluginbase.c:
6236 plugins: modify image check of extract_allowed_surface_formats.
6237 The extract_allowed_surface_formats function just check whether
6238 we can support some kind of surface/image format pair. We just
6239 need to create a surface, create an image with the same video-format
6240 and putImage from image to surface. All these operations success,
6241 that kind of video-format is supported.
6242 The old manner do not work for some kind of video-format. For example,
6243 the RGBA kind of format will create a NV12 surface and RGBA image,
6244 and the putImage will fail because the format is not same. And so
6245 the RGBA format is not supported but actually it is supported.
6247 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6249 * gst/vaapi/gstvaapipostproc.c:
6250 vaapipostproc: add some missing locking
6251 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6252 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6254 This is needed when the pipeline is stopped during startup.
6256 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6258 * gst/vaapi/gstvaapivideomemory.c:
6260 Otherwise it will result in resource leak when failed to create
6263 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6265 * gst/vaapi/gstvaapiencode.c:
6266 vaapiencode: don't start src pad task in set_format
6267 Otherwise the task may be restarted during shutdown. Start the task in
6268 gst_vaapiencode_handle_frame() instead.
6270 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6272 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6273 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6274 * gst-libs/gst/vaapi/gstvaapiutils.c:
6275 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6276 * gst/vaapi/gstvaapidecode.c:
6277 * gst/vaapi/gstvaapipluginutil.h:
6278 libs: dec: h265: support decode for main-444 8bit streams.
6279 Add 444 8bit yuv format AYUV, which can be used to decode
6280 main-444 8bit streams. Currently, this feature is only
6281 supported by media-driver in Icelake.
6282 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6284 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6287 Add Gitlab CI configuration
6288 This commit adds a .gitlab-ci.yml file, which uses a feature
6289 to fetch the config from a centralized repository. The intent is
6290 to have all the gstreamer modules use the same configuration.
6291 The configuration is currently hosted at the gst-ci repository
6292 under the gitlab/ci_template.yml path.
6293 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6295 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6297 * gst-libs/gst/vaapi/gstvaapisurface.h:
6298 * gst-libs/gst/vaapi/gstvaapiutils.c:
6299 libs: Sync the GstVaapiChromaType to VA header file.
6300 Add more kinds of chrometype which will be used to describe
6301 new video formats. Sync it with 1.4.0 version header file.
6302 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6303 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6305 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6307 * gst-libs/gst/vaapi/meson.build:
6308 meson: link with -lm
6309 Fixes #117 hopefully.
6311 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6314 meson: bump meson required to 0.47 for feature options
6316 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6318 * gst-libs/gst/vaapi/video-format.c:
6319 libs: Modify the video format of endianness.
6320 We lack some video format because endianness declare.
6321 The video format should not directly relate to endianness. For example,
6322 ARGB on big endian should not be simplely seen as BGRA on little endian
6323 machine. We should provide endianess convert or format convert help
6324 functions if endianness does not match.
6325 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6326 Signed-off-by: Junyan He <junyan.he@intel.com>
6328 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6330 * gst/vaapi/gstvaapipluginutil.c:
6331 plugins: Fix build error when GL is enabled while EGL is disabled.
6332 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6333 unused-variable warning and may block build when Werror enabled.
6334 Several functions like gst_vaapi_display_egl_new_with_native_display
6335 have no prototype warning and link error when GL is enabled but EGL
6336 is disabled. Fix all these warning and link error.
6337 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6338 Signed-off-by: Junyan He <junyan.he@intel.com>
6340 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6342 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6343 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6344 libs: encoder: h264/h264fei: remove unuseless code.
6345 The variable are set twice, remove previous one.
6346 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6348 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6350 * tests/simple-encoder.c:
6351 * tests/test-fei-enc-in.c:
6352 tests: check return value when using gst_buffer_map.
6353 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6355 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6358 * meson_options.txt:
6359 * tests/elements/meson.build:
6360 * tests/meson.build:
6361 build: meson: build examples
6363 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6365 * gst-libs/gst/vaapi/meson.build:
6366 build: meson: declare headers for libgstvaapi
6367 Thus handling its recompilation if needed.
6369 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6372 Update common submodule location
6373 Remove the git directory
6375 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6378 * gstreamer-vaapi.doap:
6379 Clone the code from gitlab
6380 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6382 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6384 * gst-libs/gst/vaapi/gstvaapiimage.c:
6385 * gst-libs/gst/vaapi/gstvaapisurface.h:
6386 * gst-libs/gst/vaapi/gstvaapiutils.c:
6387 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6388 * gst-libs/gst/vaapi/video-format.c:
6389 * gst/vaapi/gstvaapidecode.c:
6390 * gst/vaapi/gstvaapipluginutil.h:
6391 libs: dec: h265: support decode for main-10-422 10bit streams.
6392 Add 422 10bit yuv format Y210, which can be used to decode
6393 main-10-422 10bit streams. Currently, this feature is only
6394 supported by media-driver in Icelake.
6395 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6397 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6399 * gst-libs/gst/vaapi/gstvaapicontext.c:
6400 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6401 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6402 rate control mode is set as CQP. In CQP mode, it shouldn't check
6403 roi_rc_qp_delta_support return value from driver backend.
6404 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6406 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6408 * gst/vaapi/gstvaapipostproc.c:
6409 vaapipostproc: fix classification string
6410 The classification string is splitted by '/' and then looks for the
6412 This patch removes the ';' by unifying all the components.
6414 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6416 * gst/vaapi/gstvaapipostproc.c:
6417 vaapipostproc: Add Hardware classifier to metadata
6419 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6421 * gst-libs/gst/vaapi/gstvaapicontext.c:
6422 libs: context: create context first before using it to create surface.
6423 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6424 sure to create it first before allocating its associated surfaces.
6425 This patch fixes a regression introduced in commit 82872f4 because
6426 the formats available in the current context now are ensured before
6427 creating the context's surfaces.
6428 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6430 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6432 * docs/plugins/inspect/plugin-vaapi.xml:
6433 * gst/vaapi/gstvaapidecode.c:
6434 * gst/vaapi/gstvaapiencode_h264.c:
6435 * gst/vaapi/gstvaapiencode_h264_fei.c:
6436 * gst/vaapi/gstvaapiencode_h265.c:
6437 * gst/vaapi/gstvaapiencode_jpeg.c:
6438 * gst/vaapi/gstvaapiencode_mpeg2.c:
6439 * gst/vaapi/gstvaapiencode_vp8.c:
6440 * gst/vaapi/gstvaapiencode_vp9.c:
6441 gst: Advertise elements interacting with hardware devices
6443 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6445 * gst-libs/gst/vaapi/gstvaapicontext.c:
6446 * gst-libs/gst/vaapi/gstvaapisurface.c:
6447 * gst-libs/gst/vaapi/gstvaapisurface.h:
6448 libs: context: query surface format before context to create surface.
6449 Before using context to create surface, the supported surface format
6450 should be checked first.
6451 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6453 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6455 * gst-libs/gst/vaapi/gstvaapiimage.c:
6456 * gst-libs/gst/vaapi/gstvaapivalue.c:
6457 libs: replace g_error with GST_ERROR
6458 And handle those errors rather than halting.
6460 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6462 * gst-libs/gst/vaapi/gstvaapiimage.c:
6463 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6464 * gst-libs/gst/vaapi/gstvaapisurface.c:
6465 libs: replace g_warning with GST_WARNING
6467 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6469 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6470 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6471 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6472 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6473 libs: Move from g_debug to GST_DEBUG.
6474 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6476 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6478 * gst/vaapi/gstvaapipostproc.c:
6479 vaapipostproc: change the way of handling deinterlace
6480 The current vaapipostproc calls driver's video processing
6481 pipeline for deinterlacing only if it is Advance deinterlacing.
6482 Modify in the way that it always tries with driver's video
6483 processing pipeline for deinterlacing, and falls back to software
6484 method of appending picture structure meta data only if it fails
6485 with driver's method.
6486 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6488 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6490 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6491 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6492 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6493 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6494 from T-REC-H.264-201704.
6495 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6497 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6499 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6500 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6501 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6502 * gst-libs/gst/vaapi/gstvaapisurface.c:
6503 * gst-libs/gst/vaapi/gstvaapiutils.c:
6504 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6505 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6506 * gst-libs/gst/vaapi/video-format.c:
6507 * gst-libs/gst/vaapi/video-format.h:
6508 * gst/vaapi/gstvaapidecode.c:
6509 * gst/vaapi/gstvaapipluginbase.c:
6510 * gst/vaapi/gstvaapipluginutil.h:
6511 libs: dec: h265: add 422 chroma format support.
6512 Add main-422-10 profile which support 422 chroma format stream.
6513 Currently, this feature is only supported by media-driver in Icelake.
6514 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6516 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6518 * tests/y4mreader.c:
6519 tests: include sysdeps.h in compilation unit
6520 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6521 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6523 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6525 * tests/y4mreader.c:
6526 * tests/y4mreader.h:
6527 tests: fix compilation
6528 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6530 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6532 * tests/y4mreader.h:
6533 tests: don's use sysdeps.h in header
6535 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6537 * gst-libs/gst/vaapi/gstvaapiutils.h:
6538 libs: utils: no need of include config.h
6540 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6544 * tests/test-decode.c:
6545 * tests/test-subpicture.c:
6546 tests: remove already include string.h
6547 Since sysdeps.h includes string.h there's no need to include it again.
6549 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6551 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6552 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6553 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6554 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6555 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6556 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6557 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6558 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6559 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6560 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6561 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6562 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6563 * gst-libs/gst/vaapi/gstvaapiimage.c:
6564 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6565 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6566 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6567 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6568 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6569 libs: remove already include string.h
6570 Since sysdeps.h includes string.h there's no need to include it again.
6572 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6574 * gst-libs/gst/vaapi/gstvaapiobject.h:
6575 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6576 * gst/vaapi/gstvaapivideometa_texture.c:
6577 libs: object: separation of internal API and plugins
6578 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6579 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6581 The purpose is readability.
6582 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6584 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6586 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6587 libs: parser_frame: change macros for inlined functions
6588 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6590 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6592 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6593 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6594 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6595 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6596 libs: videopool: remove unneeded code
6597 The removed code comes frome the bad practice of copy&paste. Better
6598 move it as internal function.
6599 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6601 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6603 * gst-libs/gst/vaapi/Makefile.am:
6604 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6605 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6606 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6607 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6608 * gst-libs/gst/vaapi/gstvaapiobject.c:
6609 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6610 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6611 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6612 * gst-libs/gst/vaapi/gstvaapitexture.c:
6613 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6614 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6615 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6616 * gst-libs/gst/vaapi/meson.build:
6617 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6618 This conditional code was when libgstvaapi was intended to be library
6619 used outside GStreamer. This not the case anymore, thus removing it.
6620 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6622 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6624 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6625 libs: dec: h265: fix the macros used for IDC profile
6626 profile_idc flag in SPS only indicate the IDC profile, which may
6627 need some other flags together to get the real profile.
6628 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6630 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6632 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6633 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6634 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6635 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6636 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6637 libs: use g_clear_pointer() when possible
6638 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6640 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6642 * gst-libs/gst/vaapi/gstvaapifilter.h:
6643 libs: filter: add gobject's cleanup function
6645 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6647 * gst-libs/gst/vaapi/gstvaapifilter.c:
6648 * gst-libs/gst/vaapi/gstvaapifilter.h:
6649 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6650 * tests/test-filter.c:
6651 libs: filter: remove custom ref() and unref()
6652 Replacing them by gst_object_ref() and gst_object_unref()
6653 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6655 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6657 * gst-libs/gst/vaapi/gstvaapifilter.c:
6658 * gst-libs/gst/vaapi/gstvaapifilter.h:
6659 libs: filter: refactor filter as gobject
6660 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6662 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6664 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6665 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6666 libs: decoder: remove destoy() and create() callbacks
6667 They were all replaced by reset()
6668 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6670 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6672 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6673 libs: decoder: vp9: implement reset() callback
6674 remove destroy() and create() callback
6675 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6677 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6679 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6680 libs: decoder: vp8: implement reset() callback
6681 remove create() and destroy() callbacks
6682 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6684 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6686 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6687 libs: decoder: vc1: implement reset() callback
6688 remove destroy() and create() callbacks
6689 use g_clear_pointer for rbdu_buffer
6691 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6693 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6695 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6696 libs: decoder: mpeg4: implement reset() callback
6697 remove destroy() and create() callback
6698 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6700 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6702 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6703 libs: decoder: mpeg2: implement reset() callback
6704 remove create() and destroy() callbacks
6705 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6707 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6709 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6710 libs: decoder: jpeg: implement reset() callback
6711 and remove create() and destroy() callbacks.
6712 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6714 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6716 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6717 libs: decoder: h265: implement reset() callback
6718 and remove create() and destroy()
6719 and use g_clear_pointer for dpb structure
6720 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6722 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6724 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6725 libs: decoder: h264: remove create() and destroy() callbacks
6726 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6728 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6730 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6731 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6732 * tests/test-decode.c:
6733 * tests/test-subpicture.c:
6734 libs: decoder: remove gst_vaapi_decoder_unref()
6735 Replaced by gst_object_unref() in tests
6736 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6738 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6740 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6741 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6742 libs: decoder: remove gst_vaapi_decoder_ref()
6743 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6745 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6747 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6748 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6749 libs: decoder: remove gst_vaapi_decoder_new()
6750 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6752 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6754 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6755 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6756 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6757 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6758 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6759 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6760 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6761 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6762 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6763 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6764 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6765 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6766 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6767 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6768 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6769 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6770 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6771 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6772 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6773 libs: decoder: refactor decoders as gobject
6774 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6776 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6778 * gst/vaapi/gstvaapidecode.c:
6779 vaapidecode: Requests upstream a key unit at parse or decode error.
6780 This is done to resume decoding after a parse error or decode error.
6781 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6783 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6785 * gst/vaapi/gstvaapidecode.c:
6786 vaapidecode: sets return value in failure case.
6787 In gst_vaapidecode_handle_frame, when there is a decode error
6788 there is a code path the returns an uninitialized value.
6789 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6791 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6793 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6794 libs: display: lock at extracting available image formates
6795 When running several vaapi elements at the concurrently, at
6796 initialization, there is a race condition when extractin the avaible
6797 formats for images and subpictures.
6798 This patch add a lock when the those arrays are filled.
6799 https://bugzilla.gnome.org/show_bug.cgi?id=797039
6801 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
6804 meson: Sync libversion and osxversion code from other repos
6805 gstreamer-vaapi does not build any libraries, only plugins, so this is
6806 not used, but sync it just in case someone does add it in the future.
6808 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6810 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6811 libs: encoder: h265: trivial documentation fix
6813 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
6815 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6816 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6817 libs: encoder: h265: add low delay B frame support.
6818 Low delay B frame provide the function of transforming
6819 P frame into low delay B frame which frame type is B, but
6820 only reference predictive frames. This can be used when P
6821 frame unsupported. Especially for P and B both unsupported,
6822 in this case, I and low delay B frame can be encoded in a
6824 https://bugzilla.gnome.org/show_bug.cgi?id=796984
6826 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6828 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6829 libs: decoder: h264: Avoid using picture after it has been free
6830 In some cases, the found_picture ended up being evicted and freed, which
6831 would lead to a use after free when accessing picture->base.poc. In this
6832 fix, we take a ref on the picture before calling dpb_evict.
6833 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6835 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6837 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6838 h264decoder: Fail decoding slice with missing inter-view reference
6839 Similarly to previous patch, we have no error concealment. As a side
6840 effect, it's better to skip slices with missing references then passing
6841 NULL pointers to the accelerator. Passing NULL pointer would lead to
6842 major visual artifact, a behaviour that is likely undefined.
6843 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6845 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
6847 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6848 libs: decoder: h264: reset context when the number of view is increased
6849 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6850 That's why it resets context without this patch.
6851 But for some media it doesn't increase dpb size. Even in this case we
6852 should reset context to deal with MVC decoding.
6853 Otherwise, it leads to assert.
6854 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6856 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6858 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6859 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6860 * gst/vaapi/gstvaapidecode.c:
6861 vaapidecode: Skip unparsable units from adapter
6862 If the unit could not be parsed, just skip this nal and keep parsing
6863 what is left in the adapter. We need to flush the broken unit in the
6864 decoder specific parser because the generic code does not know about
6865 units boundary. This increases error resilliance.
6866 Before this, the broken unit would stay in the adapter and EOS would be
6867 returned. Which stopped the streaming. Just removing the EOS would have
6868 lead to the adapter size growing indefinitely.
6869 https://bugzilla.gnome.org/show_bug.cgi?id=796863
6871 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6873 * gst/vaapi/gstvaapidecode.c:
6874 vaapidecoder: Don't error out on decode errors
6875 This is problematic on live pipeline where loosing network can
6876 cause an important amount of errors.
6877 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6879 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6881 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6882 h265decoder: Don't scan empty buffer
6883 Same as what we did for H264 decoder, this is to avoid an assertion
6885 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6887 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6889 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6890 libs: h264: renable the vaapi category for logging
6891 h264 log messages were logged in default category because a regression
6892 in code. This patch renable the usage of vaapi logging category.
6893 This regression was introduced in commit 7c365bdd.
6895 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6897 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6898 h264decoder: Fail decoding slice if modification process failed
6899 This patch chains up failure to executing the modification process. The
6900 end result is that we now fail decoding the slice if this process fails.
6901 This avoid sending a corrupted state to the accelerator. In some special
6902 cases, this could lead to unrecoverable errors.
6903 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6905 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6907 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6908 h264decoder: Don't scan empty buffer
6909 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6910 try and scan in that case. This fixes assertion that would some times
6911 happen when the stream is corrupted.
6912 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6914 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
6916 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6917 libs: encoder: jpeg: set component id and Tqi
6918 This change is due a problem encoding JPEGs with Intel's
6919 media-driver: green/black image when playback jpeg
6920 This patch sets component identifier and quantization table
6921 destination selector in frame header to support packing headers
6922 by Intel's media-driver that does not accept packed header
6924 https://bugzilla.gnome.org/show_bug.cgi?id=796705
6926 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
6928 * gst/vaapi/gstvaapipluginutil.c:
6929 pluginutil: downgrade unsupported driver logging
6930 On systems with an Nvidia card, this error is output each time
6931 the registry is rebuilt, which happens pretty often when
6932 using gst-build as a development environment.
6933 https://bugzilla.gnome.org/show_bug.cgi?id=796663
6935 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
6937 * gst/vaapi/gstvaapivideobufferpool.c:
6938 Update for g_type_class_add_private() deprecation in recent GLib
6940 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6942 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6943 h264dec: Remove false assumption about parity order
6944 The decoder was trying to detect earlier that a field was lost base
6945 on guessing the parity order. This breaks in streams were the parity
6947 This patch reverts the field order prediction code added by commit
6949 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6951 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6953 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6954 h264dec: Properly set sentinel in ref frame list
6955 This ensure that we always have sentinels set in the reference
6956 pictures arrays. The code wasn't unsafe, this simply improve the
6957 tracing, so instead of printing 32 lines of zeros, va tracer
6958 prints proper empty lists.
6959 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6961 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6963 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6964 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6965 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6966 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6967 * gst-libs/gst/vaapi/gstvaapifilter.c:
6968 * gst-libs/gst/vaapi/gstvaapiobject.c:
6969 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6970 * gst/vaapi/gstvaapipluginbase.c:
6971 * gst/vaapi/gstvaapivideometa.c:
6972 * tests/test-decode.c:
6973 libs: display: remove gst_vaapi_display_ref()
6974 Replace it with gst_object_ref()
6975 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6977 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6979 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6980 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6981 * gst/vaapi/gstvaapi.c:
6982 * gst/vaapi/gstvaapidecode.c:
6983 * gst/vaapi/gstvaapiencode.c:
6984 * gst/vaapi/gstvaapipluginbase.c:
6985 * gst/vaapi/gstvaapipluginutil.c:
6987 * tests/simple-encoder.c:
6988 * tests/test-decode.c:
6989 * tests/test-display.c:
6990 * tests/test-fei-enc-in.c:
6991 * tests/test-filter.c:
6992 * tests/test-subpicture.c:
6993 * tests/test-surfaces.c:
6994 * tests/test-textures.c:
6995 * tests/test-windows.c:
6996 libs: display: remove gst_vaapi_display_unref()
6997 Use gst_object_unref() instead.
6998 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7000 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7002 * gst/vaapi/gstvaapivideobufferpool.c:
7003 vaapibufferpool: declare parameter display as object
7004 We have neglected to update this code since GstVaapiDisplay turned
7005 into a GstObject descendant.
7006 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7008 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
7010 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7011 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7012 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7013 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
7014 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7015 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7016 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7017 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
7018 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
7019 But still something breaking GObject code convention remains, which is
7020 calling gst_vaapi_display_new() in each decendants.
7021 This patch replaces it with gst_vaapi_display_config(), defined in private
7023 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7025 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7027 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7028 libs: display: redefine gst_vaapi_display_create()
7029 The function name was gst_vaapi_display_create_unlocked(), nonetheless
7030 it wasn't called unlocked. In order to keep the semantics this patch
7031 renames the gst_vaapi_display_create_unlocked() as
7032 gst_vaapi_display_create(), removing the previous function
7033 gst_vaapi_display_create().
7034 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7036 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7039 Revert "build: meson: libva gst-uninstall friendly"
7040 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
7042 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7044 * gst/vaapi/gstvaapipluginutil.c:
7045 plugins: fix compilation
7046 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
7048 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7051 build: meson: libva gst-uninstall friendly
7052 Make gstreamer-vaapi to use libva uninstalled.
7054 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7056 * gst/vaapi/gstvaapipluginutil.c:
7057 plugins: refactor gst_vaapi_create_display_from_gl_context()
7058 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
7059 This path refactors it, in order to make the code readable and
7061 https://bugzilla.gnome.org/show_bug.cgi?id=796564
7063 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7065 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7066 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7067 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7068 libs: display: resurrect parent private member
7069 This is, practically, a revert of commit dcf135e2.
7070 The parent logic is useful for the EGL display, which is a decorator
7071 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
7072 calling vaInitialize() and vaTerminate() twice.
7073 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7075 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7077 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7078 libs: display: egl: initialize params structure
7079 Statically initialise the internal params structure.
7080 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7082 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7084 * gst/vaapi/gstvaapipluginutil.c:
7085 plugins: handle EGL when creating VAAPI display from gl
7086 If GstGL reports a EGL platform force to create a EGL display using
7087 the native EGL display.
7088 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7090 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
7092 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7093 * gst/vaapi/gstvaapipluginutil.c:
7094 display: egl: create VaapiDisplayEGL with native EGL display
7095 gst_vaapi_display_egl_new_with_native_display() has been broken since
7097 Currently it's needed to call this API to create a display providing
7098 the EGL display, so it could avoid duplicated calls to the native
7099 display (eg. eglTerminate).
7100 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
7101 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7103 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
7105 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7106 libs: decoder: release VA buffers after vaEndPicture
7107 This change is due a problem decoding JPEGs with Intel's media-driver:
7108 no image was generated.
7109 This patch relases the VA buffers after vaEndPicture() is called,
7110 and not before (after vaRenderPicture()).
7111 https://bugzilla.gnome.org/show_bug.cgi?id=796505
7113 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
7115 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7116 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
7117 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
7118 meson: fix build when xrender or xrandr are not available
7119 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
7121 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7123 * gst/vaapi/gstvaapipostproc.c:
7124 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7125 Otherwise a reference to a DMABuf input buffer is kept until the output
7127 https://bugzilla.gnome.org/show_bug.cgi?id=796399
7129 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7131 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7132 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7133 libs: display: remove unnecessary legacy code since gobjectification
7134 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7136 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7138 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7139 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7140 libs: display: remove unused code
7141 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7143 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7145 * gst/vaapi/gstvaapiencode_h264.c:
7146 vaapiencode: h264: log output caps
7148 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7150 * gst/vaapi/gstvaapiencode_h264.c:
7151 vaapiencode: h264: find profile in available and allowed caps
7152 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7153 find best profile in those available") changed the code to pick a profile
7154 that is actually supported by the hardware. Unfortunately it dropped the
7155 downstream constraints. This can cause negotiation failures under certain
7157 The fix is split in two cases:
7158 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7160 * The best allowed profile (pipeline's caps) is set as the encoding
7161 target profile (it will be adjusted later by the available profiles
7163 2\ the available VA-API caps does intersect with pipeline's allowed
7165 * The intersected caps are fixed, and its profile is set as the
7166 encoding target profile. In this case the is not the best profile,
7167 but the minimal one (if VA-API reports the profiles in order).
7168 Setting the minimal profile of the intersected caps is better for
7170 This patch fixes other tests related with caps negotiation, for
7171 example, it handles baseline profile, even when VA only supports
7172 constrained-baseline.
7173 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7174 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7176 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7178 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7179 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7180 The specification says,
7181 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7182 This patch changes the upper limit from 6 to 12.
7183 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7185 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7187 * gst/vaapi/gstvaapipluginutil.c:
7188 plugins: guard GstGL code
7190 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7192 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7193 libs: decoder: h264: use g_clear_pointer()
7195 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7197 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7198 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7199 libs: decoder: mpeg4, vc1: remove unused header
7201 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7203 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7204 libs: decoder: remove unused forward declaration
7206 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7209 fix configure.ac regression
7210 Fixes regression introduced by 77527d67abe
7211 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7213 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7215 * gst-libs/gst/Makefile.am:
7216 * gst-libs/gst/base/Makefile.am:
7217 * gst-libs/gst/base/gstbitwriter.c:
7218 * gst-libs/gst/base/gstbitwriter.h:
7219 * gst-libs/gst/base/meson.build:
7220 * gst-libs/gst/meson.build:
7221 * gst-libs/gst/vaapi/Makefile.am:
7222 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7223 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7224 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7225 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7226 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7227 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7228 * gst-libs/gst/vaapi/meson.build:
7229 libs: remove gstbitwriter
7230 Since it is deployed in gstreamer-core, there is no need to use
7232 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7234 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7236 * gst/vaapi/gstvaapidecode.c:
7237 vaapih264dec: add constrained and progressive profiles
7238 Those profiles have been added in the version 2012-01
7239 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7240 Both are supported by VAProfileH264High
7241 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7243 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7245 * gst/vaapi/gstvaapipluginbase.c:
7246 * gst/vaapi/gstvaapipluginutil.c:
7247 * gst/vaapi/gstvaapivideocontext.c:
7248 * gst/vaapi/gstvaapivideocontext.h:
7249 plugin: remove custom GstGL context handling
7250 Instead of using our own context handling for looking for GstGL
7251 parameters (display, context and other context), this patch changes
7252 the logic to use the utility function offered by GstGL.
7253 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7255 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7257 * gst/vaapi/gstvaapipluginbase.c:
7258 plugins: GstGL API must use the member variables
7259 This commit basically is a revert of commits 8092537 and fc1c415
7260 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7262 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7264 * gst/vaapi/gstvaapipluginbase.c:
7265 plugins: pass members as parameters of gst_gl_ensure_element_data()
7266 The parameters of gst_gl_ensure_element_data() have to be not
7267 local variable since they are going to be used to see if they're
7268 set in gst_element_set_context() inside the API.
7269 This is basically a revert of commit 3d56306c
7270 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7272 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7275 meson: fix USE_GLES_VERSION_MASK
7276 1. The macro in the code is USE_GLES_VERSION_MASK
7277 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7279 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7281 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7283 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7284 libs: egl: utils: mark context as wrapped when it is
7285 The returning egl context may be null, so we should check the
7287 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7289 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7291 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7292 libs: egl: utils: fix usage of GstGL macros
7293 Include gl.h for the required GstGL symbols.
7294 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7296 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7299 meson: use -Wl,-Bsymbolic-functions where supported
7300 Just like the autotools build.
7302 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7305 meson: use get_pkgconfig_variable()
7306 Use get_pkgconfig_variable() method, of dependency class, rather
7307 than using run_command().
7309 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7311 * gst-libs/gst/base/meson.build:
7312 * gst-libs/gst/vaapi/meson.build:
7314 meson: fix miscellaneous meson warnings
7315 WARNING: Passed invalid keyword argument "rqeuired".
7316 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7317 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7318 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7319 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7321 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7323 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7324 display: drm: Allow finding DRM paths out of the PCI subsystem
7325 This removes hard-coded checks on the parent subsystem of potential DRM
7326 devices. These checks were set to exlude devices that do not originate
7327 from the PCI bus, which is only a valid approach on x86 devices.
7328 Other devices may have a DRM device originating from the platform
7329 subsystem, so the checks that were previously restricted to PCI are
7330 extended to cover platform devices as well.
7331 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7332 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7334 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7336 * gst/vaapi/gstvaapivideocontext.c:
7337 videocontext: support wl-display in "gst.vaapi.app.Display"
7338 Through "gst.vaapi.app.Display" context, users can set their own
7339 VADisplay and native display of their backend.
7340 So far we support only X11 display, from now we also support Wayland
7343 - wl-display : pointer of struct wl_display .
7344 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7346 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7348 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7349 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7350 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7351 Implements new API function so that users could create GstVaapiDisplay
7352 with their own VADisplay within a native display as backend.
7353 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7355 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7357 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7358 wayland: don't poll if there are no pending frames
7359 Otherwise the following poll may not return for an arbitrary amount of
7360 time. This can happen if another wayland event queue has flushed and read
7362 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7364 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7366 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7367 libs: encoder: h265: 16 bit rounding of picture width and height
7368 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7370 In addition, codedbuf_size must be calculated according to this change.
7371 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7373 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7376 Automatic update of common submodule
7377 From 3fa2c9e to ed78bee
7379 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7381 * gst/vaapi/gstvaapiencode_h264.c:
7382 vaapiencode: h264: find best profile in those available
7383 Instead to look for the best profile in the allowed profiles by
7384 downstream, the encoder should look for the base profile in the
7385 available profile in VA-API.
7386 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7388 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7393 * docs/plugins/inspect/plugin-vaapi.xml:
7397 === release 1.14.0 ===
7399 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7404 * gstreamer-vaapi.doap:
7408 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7410 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7411 libs: decoder: h264: ensure num_ref_frames is greater than 0
7412 Even if it is the h264parse fault or bad video file, vaapih264dec
7413 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7414 as the driver might use it.
7415 Also see "info.ref_frames = dpb_size;" in
7416 gstvaapidecoder_h264.c::ensure_context
7417 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7419 === release 1.13.91 ===
7421 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7426 * gstreamer-vaapi.doap:
7430 === release 1.13.90 ===
7432 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7437 * gstreamer-vaapi.doap:
7441 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7443 * gst/vaapi/gstvaapipostproc.c:
7444 vaapipostproc: change how the metadata is copied
7445 Instead of copying the metada in prepare_output_buffer() vmethod,
7446 it is done in append_output_buffer_metadata() thus deinterlaced
7447 buffers could also have the proper metas.
7448 GstVideoCropMeta now it is copied internally and it is decided via
7449 transform_meta() vmethod.
7450 A new internal method, copy_metadata() was added to handle VPP
7451 transformation where non-GstVideoVaapiMeta metas were lost.
7453 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7455 * gst/vaapi/gstvaapipostproc.c:
7456 postproc: Copy meta data from input to output
7457 This will ensure that meta data without memory tags will be copied. This
7458 was noticed when testing ROI.
7459 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7461 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7463 * tests/elements/test-roi.c:
7464 tests: element: rewrite ROI test
7465 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7466 than injecting GstEvents. These meta are added as a pad probe in
7469 * Use of navigation messages to control de test
7470 * Use signal watch for processing messages
7471 * Change to H265 rather than H264 since current intel-vaapi-driver
7472 only supports ROI on kabylake.
7473 TODO: add a parameter to change the encoder/decoder to test.
7474 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7476 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7478 * gst-libs/gst/vaapi/gstvaapicontext.c:
7479 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7480 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7481 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7482 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7483 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7484 libs: encoder: reimplement ROI using meta
7485 Check input buffers for ROI metas and pass them to VA. Also added a
7486 new "default-roi-delta-qp" property in order to tell the encoder what
7487 delta QP should be applied to ROI by default.
7488 Enabled it for H264 and H265 encoders.
7489 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7491 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7493 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7494 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7495 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7496 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7497 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7498 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7500 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7502 * tests/simple-encoder.c:
7503 Revert "tests: simple-encoder: add an option to set ROI"
7504 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7505 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7507 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7509 * gst/vaapi/gstvaapiencode.c:
7510 * gst/vaapi/gstvaapiencode_h264.c:
7511 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7512 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7513 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7515 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7517 * gst/vaapi/gstvaapipluginbase.c:
7518 plugins: copy input buffer metas
7519 When importing buffers to a VA-base buffer, it is required to copy
7520 the metas in the original buffer, otherwise information will be
7521 lost, such as GstVideoRegionOfInterestMeta.
7522 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7524 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7526 * gst-libs/gst/vaapi/gstvaapisurface.c:
7527 libs: surface: cast to uintptr_t pointer
7528 According to Debian package auto-building, uintptr_t is not an
7529 unsigned long in i386 arch, raising an "incompatible pointer type"
7531 This patch adds a casting for compiler's satisfaction in i386.
7533 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7535 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7536 libs: encoder: add zero as valid value for periodic keyframe.
7537 Enabled zero as valid value for keyframe-period property.
7538 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7540 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7542 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7543 libs: encoder: code-style fix
7545 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7547 * gst/vaapi/gstvaapidecode.c:
7548 vaapidecode: generate system allocated buffers
7549 Generate system allocated output buffers when downstream doesn't
7550 support GstVideoMeta.
7551 The VA buffer content is copied to the new output buffer, and it
7552 replaces the VA buffer.
7553 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7555 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7557 * gst/vaapi/gstvaapipostproc.c:
7558 vaapipostproc: handle system allocated buffers when required
7559 When downstream can't handle GstVideoMeta it is required to send
7560 system allocated buffers.
7561 The system allocated buffers are produced in prepare_output_buffer()
7562 vmethod if downstream can't handl GstVideoMeta.
7563 At transform() vmethod if the buffer is a system allocated buffer,
7564 a VA buffer is instanciated and replaces the out buffer. Later
7565 the VA buffer is copied to the system allocate buffer and it
7566 replaces the output buffer.
7567 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7569 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7571 * gst/vaapi/gstvaapipluginbase.c:
7572 * gst/vaapi/gstvaapipluginbase.h:
7573 plugins: add gst_vaapi_copy_va_buffer()
7574 This helper function aims to copy buffers with VA memory to dumb
7575 buffers, when GstVideoMeta is not available dowstream.
7576 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7578 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7580 * gst/vaapi/gstvaapipluginbase.c:
7581 * gst/vaapi/gstvaapipluginbase.h:
7582 plugins: add COPY_OUTPUT_FRAME flag
7583 This patch add the member copy_output_frame and set it TRUE when
7584 when downstream didn't request GstVideoMeta API, the caps are raw
7585 and the internal allocator is the VA-API one.
7586 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7588 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7590 * gst/vaapi/gstvaapipluginbase.c:
7591 * gst/vaapi/gstvaapipluginbase.h:
7592 plugins: store the first downstream allocator if available
7593 The allocator will be required if we need to allocate a buffer
7594 to store the frame with the expected strides.
7595 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7597 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7599 * gst/vaapi/gstvaapivideobufferpool.c:
7600 * gst/vaapi/gstvaapivideobufferpool.h:
7601 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7602 This function will inform the element if it shall copy the generated
7603 buffer by the pool to a system allocated buffer before pushing it
7605 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7607 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7609 * gst/vaapi/gstvaapivideobufferpool.c:
7610 vaapibufferpool: don't change config when forcing video meta
7611 VA-API based buffer might need a video meta because of different
7612 strides. But when donwstream doesn't support video meta we need to
7613 force the usage of video meta.
7614 Before we changed the buffer pool configuration, but actually this
7615 is a hack and we cannot rely on that for downstream.
7616 This patch add a check fo raw video caps and allocator is VA-API,
7617 then the option is enabled without changing the pool configuration.
7618 In this case the element is responsible to copy the frame to a
7619 simple buffer with the expected strides.
7620 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7622 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7624 * gst/vaapi/gstvaapipostproc.c:
7625 vaapipostproc: set discont flag at vpp deinterlacing
7626 When deinterlacing with VPP the discont flag was not forwarded to
7627 the new created buffer. This patch sets the discont flag if input
7630 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7632 * gst/vaapi/gstvaapivideobufferpool.h:
7633 vaapibufferpool: remove wrong gcc annotation
7635 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7637 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7638 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7639 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7640 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7641 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7642 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7643 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7644 libs: encoder: h264,h265: extend max periodic keyframe.
7645 Increased max values of periodic key frame for h26x codecs.
7646 This allow more fine tunning of encoder that in certian scenario
7647 want higher periodic key frame.
7648 For example: it doesn't want a key frame each 10 seconds but
7650 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7652 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7658 === release 1.13.1 ===
7660 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7665 * gstreamer-vaapi.doap:
7669 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7671 * gst/vaapi/Makefile.am:
7672 vaapi: dist new header
7674 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7676 * gst/vaapi/gstvaapi.c:
7677 vaapi: register vaapisink as marginal on wayland
7678 vaapsink, when used with the Intel VA-API driver, tries to display
7679 surfaces with format NV12, which are handled correctly by
7680 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7681 pipelines on mutter.
7682 This shall be solved either by COGL or by making the driver to paint
7683 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7684 marginal when the Wayland environment is detected, no matter if it is
7686 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7688 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7690 * gst/vaapi/gstvaapipluginutil.c:
7691 plugins: update mesa's vendor string in whitelist
7692 Mesa has updated its VA-API Gallium driver vendor string:
7693 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7694 This patch tries to cover both, the old and the new one.
7695 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7697 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7700 meson: make version numbers ints and fix int/string comparison
7701 WARNING: Trying to compare values of different types (str, int).
7702 The result of this is undefined and will become a hard error
7703 in a future Meson release.
7705 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7707 * gst/vaapi/gstvaapipluginbase.c:
7708 plugins: handle vaapi allocator in allocation query
7709 In propose_allocation() if the numer of allocation params is zero, the
7710 system's allocator is added first, and lastly the native VA-API
7712 In decide_allocation(), the allocations params in query are travered,
7713 looking for a native VA-API allocator. If it is found, it is reused as
7714 src pad allocator. Otherwise, a new allocator is instantiated and
7715 appended in the query.
7716 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7718 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7720 * gst/vaapi/gstvaapivideomemory.h:
7721 vaapivideomemory: remove unused macro
7722 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7723 was never used, since the native VA-API allocator name has been
7724 GST_VAAPI_VIDEO_MEMORY_NAME.
7725 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7726 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7728 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
7730 * gst/vaapi/gstvaapisink.c:
7731 vaapisink: don't mask button events for foreign windows
7732 Don't subscribe to button press events when using a foreing window,
7733 because the user created window would trap those events, preveting the
7735 https://bugzilla.gnome.org/show_bug.cgi?id=791615
7737 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
7740 autotools: use -fno-strict-aliasing where supported
7741 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7743 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
7746 meson: use -fno-strict-aliasing where supported
7747 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7749 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
7751 * gst/vaapi/gstvaapi.c:
7752 vaapi: add NULL-sentinel to kernel_names
7753 The array needs to be NULL-terminated according to the
7754 gst_plugin_add_dependency() documentation.
7756 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7758 * gst/vaapi/gstvaapipostprocutil.c:
7759 vaapipostproc: remove spurious code
7760 This assignation is dead code, since gst_video_info_from_caps() set
7762 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7764 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7766 * gst/vaapi/gstvaapipostprocutil.c:
7767 vaapipostproc: if no p-a-r in out caps define a range
7768 Instead of copying the pixel-aspect-ratio from the sink caps, define
7769 an open range for the src caps pixel-aspect-ratio. Later it will be
7771 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7773 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7775 * gst/vaapi/gstvaapisink.c:
7776 vaapisink: check for display's color-balance properties
7777 Check for display's color-balance properties, available by the VA-API
7778 driver, before setting them.
7779 Also logs an info message of those unavailable properties.
7780 https://bugzilla.gnome.org/show_bug.cgi?id=792638
7782 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7784 * gst/vaapi/gstvaapipluginbase.c:
7785 plugins: re-using buffer pool breaks renegotiation
7786 at propose_allocation() we should not reuse the proposed buffer,
7787 because it could break renegotiation.
7788 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7790 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7792 * gst/vaapi/gstvaapipluginbase.c:
7793 plugins: use g_clear_object() to unref sinkpad_buffer_pool
7794 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7796 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7798 * gst-libs/gst/vaapi/meson.build:
7799 build: meson: add missing GstGL dependency
7801 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7803 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7804 libs: utils: egl: add missing guards for GstGL
7806 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7808 * gst/vaapi/gstvaapipluginbase.c:
7809 plugins: remove dmabuf-import hack
7810 Remove the hack to check if an upstream element has enabled the
7811 property io-mode enabled as dmabuf-import.
7812 https://bugzilla.gnome.org/show_bug.cgi?id=792034
7814 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7816 * gst-libs/gst/vaapi/Makefile.am:
7817 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7818 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7819 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7820 libs: egl: utils: use eglGetPlatformDisplay()
7821 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
7822 eglGetDisplay() is rather fragile, and it is recommended to use
7823 eglGetPlatformDisplay() when possible.
7824 In order to do that, this patch uses the helper in GstGL. If
7825 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7827 https://bugzilla.gnome.org/show_bug.cgi?id=790493
7829 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
7831 * gst/vaapi/gstvaapipostproc.c:
7832 vaapipostproc: lock ensure_filter with postproc_lock
7833 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7834 and allowed_sinkpad_caps. This can race with copying these caps in
7835 gst_vaapipostproc_transform_caps and lead to segfaults.
7836 The gst_vaapipostproc_transform_caps function already locks
7837 postproc_lock before copying the caps. Make sure that calls to
7838 gst_vaapipostproc_ensure_filter also acquire this lock.
7839 https://bugzilla.gnome.org/show_bug.cgi?id=791404
7841 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7843 * tests/test-filter.c:
7844 tests: test-filter: fix dereference before null check
7845 Null-checking op_info suggests that it may be null, but it has already
7846 been dereferenced on all paths leading to the check.
7847 There may be a null pointer dereference, or else the comparison
7848 against null is unnecessary.
7850 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7852 * tests/y4mreader.c:
7853 tests: y4mreader: fix string state checkup
7854 str cannot be null in that moment, but it may be the end of string.
7856 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7858 * tests/y4mreader.c:
7859 tests: y4mreader: use int for fgetc
7860 Assigning the return value of fgetc to char truncates its value.
7861 It will not be possible to distinguish between EOF and a valid
7864 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7866 * tests/y4mreader.c:
7867 tests: y4mreader: fix incompatible cast
7868 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7869 they are dereferenced as a wider long (64 bits, signed). This may lead
7870 to memory corruption.
7872 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7875 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7877 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
7880 Automatic update of common submodule
7881 From e8c7a71 to 3fa2c9e
7883 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7885 * gst/vaapi/gstvaapivideocontext.c:
7886 videoconvert: gst_element_post_message() is transfer full on msg
7887 For this reson we need not to unref the message, even if it failed.
7889 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7891 * gst/vaapi/gstvaapivideocontext.c:
7892 Revert "vaapivideocontext: possible memleak when no bus attached"
7893 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7895 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7897 * tests/elements/test-vaapicontext.c:
7898 test: vaapicontext: process have-context bus message
7900 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7902 * tests/elements/test-vaapicontext.c:
7903 test: vaapicontext: app context is not persistent
7905 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7907 * gst/vaapi/gstvaapipluginbase.c:
7908 * gst/vaapi/gstvaapivideocontext.c:
7909 * gst/vaapi/gstvaapivideocontext.h:
7910 vaapivideocontext: only vaapisink process app context
7911 gst.vaapi.app.Display context is made for applications that will
7912 provide the VA display and the native display to used by the
7913 pipeline, when are using vaapisink as overlay. There are no use
7914 case for encoders, decoders, neither for the postprocessor.
7915 In the case of the vaapisink, it shall query for gst.vaapi.Display
7916 upstream first, and then, if there is no reply,
7917 gst.vaapi.app.Display context will be posted in the bus for the
7918 application. If the application replies, a GstVaapiDisplay object
7919 is instantiated given the context info, otherwise a
7920 GstVaapiDisplay is created with the normal algorithm to guess the
7921 graphics platform. Either way, the instantiated GstVaapiDisplay
7922 is propagated among the pipeline and the have-message bus message.
7923 Also only vaapisink will process the gst.vaapi.app.Display, if
7924 and only if, it doesn't have a display already set. This is
7925 caused because if vaapisink is in a bin (playsink, for example)
7926 the need-context is posted twice, leading to an error state.
7927 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7929 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7931 * gst/vaapi/gstvaapivideocontext.c:
7932 vaapivideocontext: log the name of GstVaapiDisplay
7933 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7935 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7937 * gst/vaapi/gstvaapivideocontext.c:
7938 vaapivideocontext: possible memleak when no bus attached
7939 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7941 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7943 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7944 libs: window: wayland: remove unused header include
7945 Remove wayland-client.h include since there is no exposed symbols from
7948 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7950 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7951 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7952 libs: encoder: h264,h265: guard rate control's macroblock
7953 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7955 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
7958 Automatic update of common submodule
7959 From 3f4aa96 to e8c7a71
7961 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7963 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7964 libs: encoder: h264: Add Hierarchical-B encode
7965 Frames are encoded as different layers. Frame in a particular
7966 layer will use pictures in lower or same layer as references.
7967 Which means decoder can drop the frames in upper layer but still
7968 decode lower layer frames.
7969 B-frames, except the one in top most layer, are reference frames.
7970 All the base layer frames are I or P.
7971 eg: with 3 temporal layers
7975 T1, T2, T3: Temporal Layers
7978 T1: I0->P4 , P4->P8 etc..
7980 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7981 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7982 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7984 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7986 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7987 libs: encoder: h264: Add Hierarchical-P encode
7988 Frames are encoded as different layers. A frame in a particular
7989 layer will use pictures in lower or same layer as references.
7990 Which means decoder can drop the frames in upper layer but still
7991 decode lower layer frames.
7992 eg: with 3 temporal layers
7996 T1, T2, T3: Temporal Layers
7998 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
7999 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8000 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8002 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8004 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8005 libs: encoder: h264: Fix frame_num generation
8006 The frame_num generation was not correctly implemented.
8007 According to h264 spec, frame_num should get incremented
8008 for each frame if previous frame is a referece frame.
8009 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
8010 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8011 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8013 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8015 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8016 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8017 libs: encoder: h264: Add new property "prediction-type"
8018 Adds new property "prediction-type" to select different reference
8019 picture selection modes like hierarchical-p, hierarchical-b etc.
8020 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8021 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8023 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
8025 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8026 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8027 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
8028 Adds some basic building blocks to ease the implementation
8029 of hierarchical prediction modes.
8030 -- add an utility method to find temporal level of each frame
8031 -- define max_ref_frame count based on temporal level count
8032 -- add temporal_level_div[] for finding temporal level each frame
8034 -- find ip_period based on temporal level count
8035 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8036 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8038 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
8040 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8041 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8042 libs: encoder: h264: Add property "temporal-levels"
8043 Adds new property "temporal-levels" to select the number of
8044 temporal levels to be included in the encoded stream.
8045 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8046 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8048 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
8050 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8051 libs: encoder: objects: Add a reference flag
8052 We can have p-frame as non-ref and also b-frame as ref
8053 which are not supported yet. Reference flag
8054 is the first machinery needed for more advanced
8055 reference picture selection modes.
8056 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8057 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8059 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
8061 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8062 libs: surface: egl: add comment
8063 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
8064 where the creation of surfaces from GEM fd may fail.
8065 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8067 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8069 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8070 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
8071 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8072 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
8073 Adds a new function that changes the internal EGL display to the
8074 current one (eglGetCurrentDisplay()) and sets the current context
8075 too (eglGetCurrentContext()).
8076 This new function is called by gst_vaapi_texture_egl_create() updating
8077 the GstVaapiDisplayEGL with the current EGL display.
8078 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8080 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8082 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8083 libs: texture: egl: update EGL display and context
8084 It is required to use the context of the calling thread when wrapping
8085 a foreign texture. According the documentation of
8086 GstVideoGLTextureUploadMeta:
8087 "The caller of gst_video_gl_texture_upload_meta_upload() must
8088 have OpenGL set up and call this from a thread where it is valid
8089 to upload something to an OpenGL texture."
8090 This patch updates the EGL display and context in GstVaapiDisplay
8091 instance to the one used by te renderer that uploads the texture.
8092 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
8093 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8095 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8097 * gst/vaapi/gstvaapipluginbase.c:
8098 plugins: centralize assignation of GL objects
8099 Add plugin_set_gst_gl() where the GstGL objects are assigned.
8100 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8102 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8104 * gst/vaapi/gstvaapipluginbase.c:
8105 plugins: set GL objects if ensured
8106 Only set the GL display and GL other context if they are ensured.
8107 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8109 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8111 * gst/vaapi/gstvaapipluginbase.c:
8112 plugins: set GL objects if context is handled
8113 Only set the GL display and GL other context if they are extracted
8114 correctly from the gstreamer's context.
8115 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8117 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8119 * gst/vaapi/gstvaapipluginbase.c:
8120 plugins: fix memory leak when GL context is created
8121 When the GL display and context are created inside an VAAPI element
8122 the created GL context is leaked.
8123 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8125 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8127 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8128 libs: display: egl: free leaked memory
8129 The EGL VAAPI display forgot to release the egl display, context and
8130 proxied VAAPI display.
8131 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8133 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8135 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8136 libs: texture: egl: code style
8137 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8139 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8141 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8142 libs: surface: egl: error message if no extension
8143 Instead of silently fail to export the image if there is not available
8144 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8146 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8148 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8150 * gst/vaapi/gstvaapipluginbase.c:
8151 plugins: direct rendering on memory:VASurface
8152 As buffers negotiated with memory:VASurface caps feature can also be
8153 mapped, they can also be configured to use VA derived images, in other
8154 words "direct rendering".
8155 Also, because of the changes in dmabuf allocator as default allocator,
8156 the code for configuring the direct rendering was not clear.
8157 This patch cleans up the code and enables direct rendering when the
8158 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8159 even then the memory:VASurface cap feature is negotiated.
8160 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8162 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8164 * gst/vaapi/gstvaapipluginbase.c:
8165 * gst/vaapi/gstvaapipluginutil.c:
8166 plugins: only dmabuf on srcpad if downstream
8167 Set if source pad can handle dmabuf only if the GstGL context comes
8169 It is possible to know that at two moments:
8170 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8171 downstream pool reports back gst.gl.GstGLContext.
8172 2\ When GstGLContext is found as GstContext from dowstream.
8173 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8175 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8177 * gst/vaapi/gstvaapivideocontext.c:
8178 vaapivideocontext: add inline documentation
8179 Document function gst_vaapi_find_gl_local_context().
8180 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8182 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8184 * gst/vaapi/gstvaapipluginutil.c:
8185 * gst/vaapi/gstvaapivideocontext.c:
8186 * gst/vaapi/gstvaapivideocontext.h:
8187 vaapivideocontext: return the direction of gl context
8188 In function gst_vaapi_find_gl_context() add a direction parameter to
8189 return back the direction where the GstGL context was found.
8190 This is going to be useful when checking if downstream can import
8191 dmabuf-based buffers.
8192 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8194 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8196 * gst/vaapi/gstvaapipluginbase.c:
8197 * gst/vaapi/gstvaapipluginbase.h:
8198 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8199 This patch refactors the code by adding the function
8200 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8201 GstGLContext can handle dmabuf-based buffers.
8202 The function is exposed publicly since it is intended to be used later
8203 at GstVaapiDisplay instantiation.
8204 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8206 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8208 * gst/vaapi/gstvaapiencode.c:
8209 vaapiencode: allow to set property on runtime
8210 Tis patch, allows some properties that we want to be set on
8211 runtime. (eg. bitrate)
8212 Note that all properties are under control by num_codedbuf_queued.
8213 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8215 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8217 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8218 libs: encoder: allow to set bitrate on runtime
8219 In case of streaming, controlling bitrate dynamically for encoder might be
8220 important to manage quality of the streaming.
8221 This patch is to support such a scenario.
8222 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8224 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8226 * gst/vaapi/gstvaapi.c:
8227 * gst/vaapi/gstvaapi.h:
8228 * gst/vaapi/gstvaapidecodebin.c:
8229 vaapidecodebin: Register element if no VPP support is available too
8230 VPP support is only needed for advanced deinterlacing, which is not
8231 enabled by default either. Error out if it is selected but VPP is not
8232 supported, and otherwise just work without VPP support.
8233 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8235 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8237 * gst/vaapi/gstvaapipluginutil.c:
8238 Avoid infinite loop when vaapi_create_display fails
8239 Which might be the case when using, for example, xvfb.
8241 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8243 * gst-libs/gst/vaapi/gstvaapiutils.c:
8244 libs: utils: log warn if display fail
8245 gstreamer-vaapi initializes the display by trial-and-error, thus
8246 logging an error message if the display initialisation fails the user
8247 may be weary of the error message in the screen, if using VA-API 1.0
8248 This commit set the VA error log handler to GStreamer warning level
8249 while calling vaInitialize() and set it to error after that.
8250 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8252 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8254 * gst/vaapi/gstvaapipluginutil.c:
8255 plugins: try to create test display in order
8256 When creating the test display for querying capabilites, it try in
8257 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8258 since they are either composited with X11 or Wayland.
8259 The reason for this is to reduce the posibility of failure that could
8260 blacklist the plugin.
8261 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8263 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8265 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8266 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8267 libs: display: delay getting screen resolution
8268 Instead of extracting the screen resolution at GstVaapiDisplay
8269 creation, this patch delay it until the screen size is requested for
8271 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8273 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8275 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8276 libs: display: egl: avoid two vaDisplay instantiates
8277 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8278 or Wayland. Nonetheless it created another vaDisplay for it, instead
8279 of using the wrapped one.
8280 This patch enables the reuse of the wrapped vaDisplay avoiding
8282 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8284 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8286 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8287 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8288 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8289 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8290 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8291 libs: display: remove display_type from display info
8292 Since it's no required to pass the display type in the display info,
8293 the structure member is removed.
8294 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8296 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8298 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8299 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8300 libs: display: remove display_type member
8301 It is not used any more since GstVaapiDisplay was ported as a
8302 GstObject-based. This information is part of the class information.
8303 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8305 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8307 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8308 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8309 libs: display: remove parent member
8310 Parent was a crumb left from display cache.
8311 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8313 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8315 * gst/vaapi/gstvaapi.c:
8316 vaapi: Also register vaapipostproc without VPP support
8317 It can still do simple deinterlacing then.
8319 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8321 * gst/vaapi/gstvaapipostproc.c:
8322 vaapipostproc: Allow running without VPP support
8323 We returned FALSE from ::start() if VPP support is not available, but it
8324 is only really needed for complex filters and during transform we check
8325 for that. For simple deinterlacing it is not needed.
8327 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8329 * gst/vaapi/gstvaapipostproc.c:
8330 vaapipostproc: use scoped variable for return value
8331 Instead of reusing a parameter variable for the return value of
8332 gst_vaapipostproc_transform_caps(), this patch uses the function
8333 scoped pointer. Thus, the code is cleaner.
8334 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8336 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8338 * gst/vaapi/gstvaapipostproc.c:
8339 vaapipostproc: removed unused parameter
8340 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8341 helper function since the it is not used.
8342 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8344 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8346 * gst/vaapi/gstvaapipostproc.c:
8347 vaapipostproc: use scoped variable for return value
8348 Instead of reusing a parameter variable for the return value of
8349 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8350 pointer. Thus, the code is cleaner.
8351 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8353 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8355 * gst/vaapi/gstvaapipluginutil.h:
8356 plugins: memory:DMABuf only handles planar formats
8357 When glimagesink negotiates the caps feature memory:DMABuf the
8358 exported dmabufs buffers with NV12 format are not well rendered, thus
8359 setting only planar.
8360 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8362 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8364 * gst/vaapi/gstvaapiencode.c:
8365 vaapiencode: flush pending frames before set format
8366 Flush pending frames, if any, in the internal encorder, before setting
8367 the new negotiated format.
8368 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8370 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8372 * gst/vaapi/gstvaapidecode.c:
8373 vaapidecode: drain pending frames before set format
8374 Drain pending frames, if any, in the internal decoder before setting
8375 the new negotiated format.
8376 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8378 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8380 * tests/test-display.c:
8381 tests: display: use GObject getter
8382 Instead of using the gst_vaapi_display_get_property(), this patch
8383 replaces it with g_object_get_property() to dump the available VA
8385 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8387 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8389 * gst/vaapi/gstvaapisink.c:
8390 vaapisink: use GObject setter and getter
8391 Instead of using gst_vaapi_display_set_property() or
8392 gst_vaapi_display_get_property(), this patch set replace it usage
8393 with g_object_set() or g_object_get().
8394 Also the internal helper cb_set_value() is removed since it is not
8396 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8398 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8400 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8401 libs: display: initialize value if they are not yet
8402 This is a difference between the GObject API and the GstVaapi one: the
8403 GValue passed to get a property value, in GObject has to be
8404 initialized with g_value_init(), but in GstVaapi is has not.
8405 In order to overcome this mismatch, this patch call g_value_init()
8406 internally only in the passed one is not already initialized.
8407 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8409 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8411 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8412 libs: display: optimize properties setters and getters
8413 Shuffled some code to avoid to find the properties descriptor in the
8414 array twice, adding the internal functions _set_property() and
8416 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8418 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8420 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8421 libs: display: install properties in class
8422 Install the properties in the class as a normal GObject. Implement
8423 set_property() and get_property() vmethods.
8424 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8426 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8428 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8429 libs: display: remove gst_vaapi_display_properties_init()
8430 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8431 gst_vaapi_display_class_init()
8432 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8434 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8436 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8437 libs: display: remove libgstvaapi_init_once()
8438 It is not required since it can be unrolled in
8439 gst_vaapi_display_class_init()
8440 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8442 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8444 * tests/test-display.c:
8445 tests: test-display: remove display cache tests
8446 Since commit ec3e10f6, display cache was removed. This patch removes
8447 this leftovers in the display test.
8449 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8451 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8452 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8453 libs: decoder: h264/h265: decode codec data only if opened
8454 Fixes regression introduced by commit 2eb2b26a.
8455 There is a use case when the decoder set the src caps and immediatly
8456 tries to process the media codec_data, this happens before decoder is
8457 even opened, thus priv->parser is not instantiated yet.
8458 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8460 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8462 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8463 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8464 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8465 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8466 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8467 libs: encoder: change mbbrc from uint to enum
8468 Instead of handling the macroblock bitrate control as a integer, this
8469 patch changes it as a enum, which is more self documented in the
8471 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8473 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8475 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8476 Fix a typo in the prop string for compliance-mode
8478 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8480 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8481 libs: encoder: don't unref properties
8482 This patch fixes a regression introduced in commit 148f867c, since the
8483 props variable is set to object's member variable
8484 encoder->properties. And it is set in the instance initialization,
8485 thus it will not be leaked.
8486 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8488 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8490 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8491 * gst/vaapi/gstvaapiencode.c:
8492 vaapiencode/libs: encoder: fix leaks of properties
8493 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8495 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8497 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8498 libs: decoder: at update_caps() decode codec_data
8499 When updating the caps in decoder, if the caps has codec_data (avC
8500 format), it has to be parsed to update the state of the decoder.
8501 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8503 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8505 * gst-libs/gst/vaapi/gstvaapicontext.c:
8506 libs: context: fix wrong counter of the array of attributes
8507 The counter value passed to vaCreateConfig is always +1.
8508 This is a regression caused by commit e42ec3ad.
8509 The present patch fixes wrong counting of the array of attributes.
8510 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8512 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8514 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8515 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8516 libs: encoder: h265: support I/P/B QP setting seperatedly
8517 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8519 and set slice_qp_delta for each frame according to the value provided.
8520 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8522 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8524 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8525 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8526 libs: encoder: h264: support I/P/B QP setting seperatedly
8527 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8529 and set slice_qp_delta for each frame according to the value provided.
8530 In addition, remove the limitation of (<= 4) when setting
8532 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8534 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8536 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8537 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8538 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8539 Creates new variable for QP for I frame and keep it at configuration and
8540 use this for pic_init_qp and slice_qp_delta setting.
8541 Since changing min qp doesn't make sense, keep min qp as is.
8542 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8544 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8546 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8547 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8548 libs: encoder: h265: Add mbbrc property
8549 This property supports Macroblock level Bitrate Control as the
8550 following (same as h264 encoder):
8554 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8556 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8558 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8559 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8560 libs: encoder: h264: Add mbbrc property
8561 This property supports Macroblock level Bitrate Control as the
8566 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8568 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8570 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8571 libs: encoder: h265: add multi reference support
8572 This is doing the same as h264 encoder as the following:
8573 Using num_ref_frames provided and the result of the Query
8574 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8575 and perform encoding with multi reference frames as the following:
8576 1\ The num_ref_frames is being considered as the number of
8577 reference picture list0
8578 2\ Encoder adds 1 reference frame more to the reference picture list1
8579 internally if b-frame encoding.
8580 3\ If num_ref_frames is bigger than the number of refrence frames
8581 supported in the driver, it will be lowered.
8582 Also this patch includes:
8583 - Set num_negative_pics and num_positive_pics according to the number of
8585 - Set delta_poc according to the number of refs.
8586 - Increase max_dec_pic_buffering according to the number of refs
8587 - Change max_num_reorder_pics according to num of bframes
8588 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8590 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8592 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8593 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8594 libs: encoder: h265: add refs property
8595 Users can provide the number of reference frame by this property,
8596 which is exaclty same as h264.
8597 The value of the property will be considered as the number of
8598 reference picture list0 and will add 1 reference frame more to the
8599 reference picture list1 internally if b-frame encoding.
8600 If the value provided is bigger than the number of refrence frames
8601 supported in the driver, it will be lowered.
8602 The maximum value is aligned to the value of the driver supported now.
8603 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8605 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8607 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8608 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8609 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8610 Follows the specification as below:
8611 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8612 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8613 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8614 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8616 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8617 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8619 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8621 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8623 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8624 libs: encoder: h265: keep idr_period equal to keyframe period
8625 Remove FIXME code, which makes previous assignation spurious.
8626 This also means to make idr_period equal to keyframe period,
8627 which is same as h264 encoder.
8628 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8630 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8632 * gst/vaapi/gstvaapipluginbase.c:
8633 Request minimum buffer even if need_pool is FALSE
8634 When tee is used, it will not request a pool, but still it wants to
8635 know how many buffers are required.
8636 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8638 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8640 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8641 libs: encoder: h264_fei: VA-API 1.0 compat
8642 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8644 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8645 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8647 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8649 * gst/vaapi/gstvaapisink.c:
8650 vaapisink: Fix rendering in drm display
8651 Make sure vaapisink create a va surface backed buffer pool and all
8652 required attributes get assigned correctly for drm display type.
8653 This is needed to make the below pipeline working:
8654 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8655 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8656 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8658 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8660 * tests/Makefile.am:
8661 * tests/test-fei-enc-in.c:
8662 * tests/test-fei-enc-out.c:
8663 FEI: Add test applications to showcase fei use case
8664 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8666 ./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
8667 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8669 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8670 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8671 from saved files is still not working
8673 Wang, Yi <yi.a.wang@intel.com>
8674 Leilei <leilei.shang@intel.com>
8675 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8676 xiaominc <xiaomin.chen@intel.com>
8677 Li, Jing B <jing.b.li@intel.com>
8678 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8679 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8681 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8683 * gst/vaapi/Makefile.am:
8684 * gst/vaapi/gstvaapi.c:
8685 * gst/vaapi/gstvaapiencode_h264_fei.c:
8686 * gst/vaapi/gstvaapiencode_h264_fei.h:
8687 FEI: plugin: Add vaapih264feienc element
8688 A new FEI based encoder element for h264 is added: vaapih264feienc
8689 FEI is a an extension to VA-API which is providing low level
8690 advanced control over different stages of encoding.
8691 Extending vaapih264enc with fei support is possible, but it will
8692 make the code too much complicated and will be difficult
8693 to debug. So adding the new encoder element, but keeping
8694 the rank as 0 , vaapih264enc will stay as the primary
8695 encoder for normal use cases.
8696 The vaaih264feienc is mainly useful for customers who want to play
8697 with MotionVectors and Macroblock Predictions. Also user can
8698 do one stage of encoding(eg: only the Motion Vector Calculation)
8699 in software and offload trasformation/entroy-coding etc to
8700 Hardware (which is what PAK module is doing) using FEI element.
8701 vaapih264feienc can work in different modes using fei-mode properoty
8702 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8703 Important Note: ENC only mode won't produce any encoded data which is expected.
8704 But ENC alwys requires the output of PAK in order to do the inter-prediction
8705 over reconstructed frames.
8706 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8707 upstream element providing those buffers, PAK only won't work as expected.
8708 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8709 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8710 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8711 separately in vaapih264feienc.
8713 Wang, Yi <yi.a.wang@intel.com>
8714 Leilei <leilei.shang@intel.com>
8715 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8716 xiaominc <xiaomin.chen@intel.com>
8717 Li, Jing B <jing.b.li@intel.com>
8718 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8719 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8720 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8722 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
8724 * gst/vaapi/gstvaapiencode.c:
8725 * gst/vaapi/gstvaapiencode.h:
8726 FEI: plugin: Add virtual methods to base encode
8727 Two new virtual methods are added to gstvaapiencode.
8728 load_control_data(): load the FEI input buffers set by the upstream elements
8729 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8730 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8731 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8732 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8734 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
8736 * gst/vaapi/Makefile.am:
8737 * gst/vaapi/gstvaapifeivideometa.c:
8738 * gst/vaapi/gstvaapifeivideometa.h:
8739 FEI: plugin: Add fei specific video meta
8740 GstVaapiFeiVideoMeta holds the below fei codec objects:
8741 GstVaapiEncFeiMbCode
8743 GstVaapiEncFeiMvPredictor
8744 GstVaapiEncFeiMbControl
8746 GstVaapiEncFeiDistortion
8747 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8748 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8749 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8751 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8753 * gst-libs/gst/vaapi/Makefile.am:
8754 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8755 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8756 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8757 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8758 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8759 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8760 FEI: libs: Add FEI encoder
8761 Adding FEI encoder to core lib.
8762 The code is splitted into three session:
8763 1: gstvaapiencoder_h264_fei.{h,c}
8764 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8765 All the modes ENC, PAK and ENC_PAK are running based
8766 the code in these files.
8767 2: gstvaapifeienc_h264.{h,c}
8768 Abstract implementation intended for ENC (only VME) operation.
8769 3: gstvaapifeipak_h264.{h,c}
8770 Abstrct implementation intended for PAK (only the PAK module)
8771 Right now ENC_PAK, ENC and PAK are running based on code
8772 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8773 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8774 needed if user request for ENC+PAK mode operation.
8775 ENC+PAK: Here we need to invoke two sequence of
8776 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8777 first for the ENC only and the second for PAK only.
8778 Each mode associated with separate context ,but same pool of surfaces are
8779 shared between the modes.
8780 This is more useful once we have custom BRC algorithms.
8782 Wang, Yi <yi.a.wang@intel.com>
8783 Leilei <leilei.shang@intel.com>
8784 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8785 xiaominc <xiaomin.chen@intel.com>
8786 Li, Jing B <jing.b.li@intel.com>
8787 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8788 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8790 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8792 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8793 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8794 FEI: libs: Add fei codec objects to GstVaapiEncPicture
8795 All the codec objects(vaapi buffers) supposed to be
8796 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8797 for each frame, follow the same design for FEI too.
8798 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8799 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8801 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8803 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8804 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8805 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8806 FEI: libs: Add fei codec objects in codedbufferproxy
8807 MbCode, MV and Distortion buffers (fei codec objects)
8808 can be treated as output of different fei modes based user request.
8809 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8810 can be dumped as output in ENC_PAK mode for analysis purpose.
8811 So treating them as a part of CodedBufferProxy too.
8812 Here we avoided Qp, MbControl and MvPredictor codec objects since
8813 there is no practical use case of treating them as "output buffers".
8815 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8816 xiaominc <xiaomin.chen@intel.com>
8817 Leilei <leilei.shang@intel.com>
8818 Li, Jing B <jing.b.li@intel.com>
8819 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8820 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8822 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8824 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8825 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8826 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8827 FEI: libs: Add fei codec objects to surface proxy
8828 Add fei codec objects to surface proxy since handling the
8829 fei buffers(codec objects here) external to gstvaapisurfaceproxy
8830 will make the code complicated. Especially considering the behavior
8831 of encoder where the input frame order from upstream and output
8832 frame order to the downstream are not sequential.
8834 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8835 xiaominc <xiaomin.chen@intel.com>
8836 Leilei <leilei.shang@intel.com>
8837 Li, Jing B <jing.b.li@intel.com>
8838 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8839 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8841 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8843 * gst-libs/gst/vaapi/Makefile.am:
8844 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8845 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8846 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8847 FEI: Add codec objects for fei usecase
8848 There are 6 new va buffer types, each defined as a specific codec object.
8849 Borrowed the code from gstvaapicodecobject , but made a clear separation
8850 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8851 feicodecobjects can be shared between elements and also can be accessed
8852 from different thread.
8853 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8854 object is not shared between elements.So we utilize the already
8855 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8856 in gstvaapfei_objects_priv.h in order to have a better
8859 -- Probably we need _locked_map() and _unlocked_map()
8860 -- Context can be associated with PreEnc(not just Enoder)
8861 once we have the proper support inplace, but for now we don't have
8862 PreEnc support, so should be safe enough to use GstVaapiEncoder.
8863 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8864 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8866 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8868 * gst-libs/gst/vaapi/Makefile.am:
8869 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8870 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8871 FEI: libs: add H264 fei specific utility functions
8872 Added enum/flag type definitions for a number of FEI
8873 input and output parameters.
8874 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8875 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8876 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8877 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8878 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8880 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8882 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8883 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8884 FEI: libs: Add virtual method for secondary context creation.
8885 Add a new vitrual method ensure_secondary_context to the
8886 base encoder which is only required for the FEI entrypoint, that too
8887 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8888 supported directly by libva or driver, but this can be enabled
8889 from the middleware.
8890 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8891 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8892 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8893 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8894 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8895 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8897 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8899 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8900 FEI: libs: make sure the default context creation works as expected.
8901 Current code always guess the entrypoint during init phase in case
8902 if there is no entrypoint already configured in GstVaapiContextInfo.
8903 Make sure FEI Entrypoint is not messing up with this logic.
8904 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8905 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8907 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8909 * gst-libs/gst/vaapi/gstvaapicontext.c:
8910 * gst-libs/gst/vaapi/gstvaapicontext.h:
8911 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8912 FEI: libs: Add FEI functional mode configuration
8913 FEI Entrypoint can work in either one of the 3 different modes:
8914 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8915 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8916 functioal mode configuration.
8917 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8918 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8920 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8922 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8923 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8924 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8925 FEI: libs: Add FEI Entrypoint mapping
8926 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8927 for VAEntrypointFEI.
8928 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8929 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8931 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8934 FEI: Add support for FEI conditional build
8935 FEI(Flexible Encoding Infrastructure) is an extension
8936 to VA API. Define USE_H264_FEI_ENCODER based on
8937 fei header file and required structures availability.
8938 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8939 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8941 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
8943 * gst/vaapi/gstvaapidecode.c:
8944 vaapidecode: force add h264 SVC profiles in caps
8945 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8947 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8948 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8950 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
8952 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8953 libs: decoder: h264: decode SVC base layer only
8954 Drops non-base NALs when the base-only property is set to TRUE.
8955 This modifies the behavior for MVC streams with base-only too: All the
8956 non-base units are dropped before they are decoded instead of dropping
8957 the non-base frames.
8958 The relevant part from the H264 spec is:
8959 > Decoders that conform to one or more of the profiles specified in
8960 Annex A rather than the profiles specified in Annexes G or H shall
8961 ignore (remove from the bitstream and discard) the contents of all NAL
8962 units with nal_unit_type equal to 14, 15, or 20.
8963 To eliminate side effects from the offending units:
8964 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8966 - The NAL parsing is skipped and their flags are set to
8967 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8968 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8969 use them even if they are flagged to be skipped. Subset SPS's and slice
8970 extension units are not stored there either.
8971 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8972 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8974 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
8976 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8977 libs: decoder: h264: check nalu validity in parser info finalize
8978 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8979 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8981 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8983 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8984 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8985 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8986 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8987 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8988 libs: encoder: remove unused cast macro
8989 Remove internal macro to cast structure that are already declared
8992 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8994 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8995 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8996 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8997 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8998 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8999 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9000 Revert "libs: encoders: remove unused cast macros"
9001 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
9003 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9005 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9006 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9007 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9008 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9009 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9010 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9011 libs: encoders: remove unused cast macros
9012 They are only used inside the code, where another macro is defined.
9013 Thus these exported macros have no use.
9015 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9017 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9018 libs: decoder: h264: improve code-style
9019 https://bugzilla.gnome.org/show_bug.cgi?id=786173
9021 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9023 * gst-libs/gst/vaapi/gstvaapicompat.h:
9024 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9025 libs: encoder: h264: handle deprecated enum
9026 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
9027 instead VAEncPackedHeaderRawData should be used.
9028 This patch creates a compatibility symbol,
9029 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
9031 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9033 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9035 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9036 * gst-libs/gst/vaapi/gstvaapiutils.c:
9037 libs: guard deprecated symbols
9038 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
9039 guards the H.264 baseline usage. Consider this commit as a
9040 continuation of commit e0e0a474
9041 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9043 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9047 * meson_options.txt:
9048 Revert "build: check for libva-2.0"
9049 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
9050 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9052 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9054 * gst-libs/gst/vaapi/gstvaapicompat.h:
9055 * gst-libs/gst/vaapi/gstvaapicontext.c:
9056 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9057 libs: macro to get a renamed value in VA-API 1.0
9058 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
9059 renamed one member from roi_value_is_qp_delat to
9060 roi_value_is_qp_delta, which is the correct name.
9061 In order to keep back compatibility a macro has added to access this
9063 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9065 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9067 * gst/vaapi/gstvaapipluginbase.h:
9068 * gst/vaapi/gstvaapipluginutil.c:
9069 plugins: include main gstgl header
9070 Instead including particular gstgl header files in a header file
9071 that doesn't export a gstgl symbol, the main gstgl header file is
9072 included in gstvaapipluginutil.c where the symbols are used.
9073 https://bugzilla.gnome.org/show_bug.cgi?id=786597
9075 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9077 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9078 libs: encoder: h264: fix enum namespace
9080 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
9083 Automatic update of common submodule
9084 From 48a5d85 to 3f4aa96
9086 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9088 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9089 libs: encoder: h264: remove spurious assignation
9091 An assigned value that is never used may represent unnecessary
9092 computation, an incorrect algorithm, or possibly the need for cleanup
9094 ip_period is assigned first to be rewritter inmediatly after. The
9095 first assignation is spurious.
9097 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
9099 * gst/vaapi/gstvaapidecode.c:
9100 vaapidecode: fix mismatch of the return type
9101 https://bugzilla.gnome.org/show_bug.cgi?id=786307
9103 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9105 * gst-libs/gst/vaapi/Makefile.am:
9106 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
9107 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
9108 * gst-libs/gst/vaapi/gstvaapiutils.h:
9109 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
9110 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9111 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9112 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9113 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
9114 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
9115 * gst-libs/gst/vaapi/meson.build:
9116 libs: remove unused header
9117 Since libgstvaapi is not distributed, there is no need to check for
9118 private header inclusion. Thus removing it.
9119 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9121 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9123 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9124 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9125 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9126 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9127 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9128 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9129 libs: utils: move gstvaapisurface.h to private headers
9130 Since the utils don't expose API defined in gstvaapisource.h, it is
9131 moved to their private headers where they are used.
9132 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9134 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9136 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9137 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9138 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9139 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9140 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9141 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9142 libs: utils: remove va.h include in header
9143 And include gstvaapicompat.h in the C files, since the VA-API is not
9144 exposed in the headers.
9145 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9147 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9149 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9150 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9151 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9152 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9153 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9154 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9155 libs: encoder: remove va.h include
9156 Since it is already managed by gstvaapicompat.h
9157 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9159 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9161 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9162 * gst-libs/gst/vaapi/gstvaapicompat.h:
9163 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9164 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9165 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9166 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9167 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9168 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9169 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9170 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9171 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9172 * gst-libs/gst/vaapi/gstvaapifilter.c:
9173 * gst-libs/gst/vaapi/gstvaapiutils.c:
9175 build: consolidate the VA sub API includes
9176 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9177 since they are all already included in va.h after VA-API 0.38.
9178 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9180 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9184 build: check for va_vpp.h
9185 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9186 allow us to handle the inclusion of the header better.
9187 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9189 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9192 meson: don't export symbols by default
9193 Only plugin entry points should be exported.
9195 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9197 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9198 libs: decoder: h265: remove spurious code
9200 Logically dead code: The indicated dead code may have performed some
9201 action; that action will never occur.
9202 By using pointer arithmetic is impossible to get NULL.
9204 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9206 * gst-libs/gst/vaapi/gstvaapicontext.c:
9207 libs: context: use attribs index instead pointers
9209 Out-of-bounds write. This could cause an immediate crash or incorrect
9211 Coverity basically found that it is possible to assign more than 4
9212 attribs in the array.
9213 In my opinion this was produced because code pattern used pointer
9214 arithmetic, which is not readable nor maintainable.
9215 This patch refactors config_create() to use an array index rather than
9216 pointer arithmetic. Also a run-time check for index size was added.
9218 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9220 * gst/vaapi/gstvaapiencode_h264.c:
9221 vaapiencode: h264: remove spurious code
9223 An unsigned value can never be negative, so this test will always
9224 evaluate the same way.
9225 As len is guint32, there is no need to check it if it is equal or
9228 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9230 * gst/vaapi/gstvaapidecode.c:
9231 vaapidecode: initialize variable
9233 The variable will contain an arbitrary value left from earlier
9235 Variable base_only is fetched from base-only property, and it may be
9236 not assigned. It needs to be initialized.
9238 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9240 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9241 libs: windows: wayland: fail if cannot remove last frame
9243 If the function returns an error value, the error value may be
9244 mistaken for a normal value.
9245 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9246 not the last one, the function fails. Thus, logging an info message.
9248 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9250 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9251 libs: utils: glx: check return value
9253 If the function returns an error value, the error value may be
9254 mistaken for a normal value.
9255 Function sscanf returns the number of assignations done. Validate this
9256 return value with the number of expected variables to match.
9258 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9260 * gst-libs/gst/vaapi/gstvaapiobject.c:
9261 libs: vaapi: object: remove unrequired NULL check
9263 Dereference after null check: Either the check against null is
9264 unnecessary, or there may be a null pointer dereference.
9265 Variable klass has been validated as non-NULL several time before in
9266 gst_vaapi_object_new() function, so there is no need to check it
9269 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9271 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9272 libs: encoder: h265: remove spurious assignation
9274 An assigned value that is never used may represent unnecessary
9275 computation, an incorrect algorithm, or possibly the need for cleanup
9277 ip_period is assigned first to be rewritter inmediatly after. The
9278 first assignation is spurious.
9280 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9282 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9283 libs: encoder: h264: fix copy & paste error
9285 The copied code will not have its intended effect.
9286 This is a bug from commit cdaf15b2, where the intention is to
9287 initialize RefPicList1 while setting RefPicList0.
9289 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9291 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9292 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9293 libs: encoder: h265: fix possible integer overflow
9295 Unintentional integer overflow. The expression's value may not be what
9296 the programmer intended, because the expression is evaluated using a
9297 narrow (i.e. few bits) integer type.
9298 Cast operator to guint64 before computation to avoid narrowing.
9301 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9303 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9304 libs: decoder: mpeg4: fail if return value is not OK
9306 An assigned value that is never used may represent unnecessary
9307 computation, an incorrect algorithm, or possibly the need for cleanup
9309 In the return value of decode_slice() or
9310 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9311 decode_packet() function.
9313 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9315 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9316 libs: decoder: h265: check for null
9318 Dereference after null check: Either the check against null is
9319 unnecessary, or there may be a null pointer dereference.
9320 While looking for hte lowest poc, according to rest of the code, the
9321 picture in the dbp (decoded picture buffer) might be NULL, thus we
9322 could check for a NULL picture before assigned as found.
9323 Also, split a comma operator because it is considered as a bad
9324 practice because it possible side effects.
9326 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9328 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9329 libs: decoder: h265: untaint loop control variable
9331 Scalars (for example, integers) are not properly
9332 bounds-checked (sanitized) before being used as array or pointer
9333 indexes, loop boundaries, or function arguments are considered as
9335 In this case, num_nals were not checked before used as loop control.
9337 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9339 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9340 libs: decoder: h264: remove unrequired NULL check
9342 Dereference after null check: Either the check against null is
9343 unnecessary, or there may be a null pointer dereference.
9344 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9345 prev_picture could be NULL, that's why the code did a null check. But,
9346 since commit 52adebe7, the previous reference frames are tracked, thus
9347 there is no need to check null anymore.
9349 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9351 * gst/vaapi/gstvaapidecode.c:
9352 vaapidecode: fix gst_caps_new_simple call
9353 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9355 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9357 * gst/vaapi/gstvaapidecode.c:
9358 vaapidecode: force add h264 MVC profiles in caps
9359 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9361 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9363 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9365 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9366 libs: decoder: h264: decode MVC base view only
9367 If processed SPS has mvc profile and the configuration is set to
9368 base-only, the frame is drop.
9369 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9371 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9373 * gst/vaapi/gstvaapidecode.c:
9374 * gst/vaapi/gstvaapidecode_props.c:
9375 vaapidecode: set h264 base-only to decoder
9376 Set the base-only value when property is set and the internal
9377 decoder is already instantiated or when the internal decoder
9379 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9381 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9383 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9384 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9385 libs: decoder: h264: add setter for base-only mode
9386 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9388 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9390 * gst/vaapi/gstvaapidecode_props.c:
9391 * gst/vaapi/gstvaapidecode_props.h:
9392 vaapidecode_props: h264: add base-only property
9393 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9395 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9397 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9398 libs: encoder: h264: missing property enum documentation
9400 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9402 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9403 libs: encoder: h264: add multi reference support
9404 Using num_ref_frames provided and the result of the Query
9405 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9406 and perform encoding with multi reference frames as the following:
9407 1\ The num_ref_frames is being considered as the number of
9408 reference picture list0
9409 2\ Encoder adds 1 reference frame more to the reference picture list1
9410 internally if b-frame encoding.
9411 3\ If num_ref_frames is bigger than the number of refrence frames
9412 supported in the driver, it will be lowered.
9413 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9415 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9417 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9418 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9419 libs: encoder: h264: add refs property
9420 Users can provide the number of reference frame by this property.
9421 The value of the property will be considered as the number of
9422 reference picture list0 and will add 1 reference frame more to the
9423 reference picture list1 internally if b-frame encoding.
9424 If the value provided is bigger than the number of refrence frames
9425 supported in the driver, it will be lowered.
9426 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9428 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9430 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9431 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9432 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9433 This function will query VAConfigAttribEncMaxRefFrames to get the
9434 maximum number of reference frames supported in the driver.
9435 This will be used for h264/h265 encoding.
9436 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9438 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9440 * gst/vaapi/gstvaapiencode_h265.c:
9441 vaapiencode: h265: compare an unsigned int if not zero
9442 An unsigned value can never be negative, so this test (greater than
9443 zero) will always evaluate the same way. Thus change it to just if
9446 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9448 * gst/vaapi/gstvaapipluginbase.c:
9449 plugins: check gst_gl_ensure_element_data() return value
9450 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9451 the return value of gst_gl_ensure_element_data(). The result is a code
9454 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9456 * gst/vaapi/gstvaapipluginutil.c:
9457 plugins: avoid dead code detection
9458 By using #elif macro, the static code analysis would stop to detect
9459 these lines as dead code. Also it is inforced the mutually exclusive
9462 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9464 * gst/vaapi/gstvaapivideobufferpool.c:
9465 vaapivideobufferpool: don't shift by negative since it's undefined
9466 The function g_bit_nth_lsf() may return -1 if the request bit position
9467 is not avaible. Thus, this patch check if the return value is not -1
9468 in order to continue.
9470 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9472 * gst/vaapi/gstvaapisink.c:
9473 vaapisink: fix memory leak
9475 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9477 * gst/vaapi/gstvaapipostprocutil.c:
9478 vaapipostproc: fix memory leaks
9480 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9482 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9483 libs: display: when appending formats change pointers to indexes
9484 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9486 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9488 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9490 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9491 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9492 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9493 Added a new property "compliance-mode", which default is the normal
9494 strict compliant mode.
9495 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9496 allocation size to improve performance in some specific Intel
9497 platforms (there is asignificant performance improvement in parallel
9498 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9499 pre-calculating the coded-buffer size.
9500 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9502 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9504 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9505 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9506 libs: utils_h264: Extend LevelLimit table with MinCR field
9507 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9509 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9511 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9513 * gst-libs/gst/vaapi/gstvaapiutils.c:
9514 libs: utils: libva 1.0 changed the logging
9515 The logging mechanism in libva has changed it's functions
9516 signatures. This patch updates that for libva versions >= 1.0
9517 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9519 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9521 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9522 libs: decoder: h264: libva 1.0 deprecated baseline
9523 libva 1.0 deprecated H.264 baseline profile and FMO support
9525 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9527 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9531 * meson_options.txt:
9532 build: check for libva-2.0
9533 Check for libva-2.0 since libva's developers decided to increase the
9534 library's version number.
9535 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9537 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9541 build: blacklist only libva 0.99.0
9542 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9543 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9545 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9547 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9549 * gst-libs/gst/vaapi/meson.build:
9550 build: meson: remove gstvaapidisplaycache.c
9551 This is a missing bit of commit ec3e10f6
9553 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9556 configure: do not break configure if gtk+-3.0 devel missing
9557 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9558 set USE_GTK=0 if gtk+-3.0 is not available.
9559 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9560 Author: Hyunjun Ko <zzoon@igalia.com>
9561 Date: Wed Jul 5 15:59:43 2017 +0900
9562 tests: elements: add testsuite of vaapi context
9563 ...configure fails if gtk+-3.0 development files are missing.
9564 The "with_gtk" option defaults to "check" in configure.ac
9565 which implies that if it is not explicitly requested then
9566 configure will only enable it if it's available on the system.
9567 However, the PKG_CHECK_MODULES rule that get's activated on
9568 "check" condition did not provide default when gtk+-3.0 devel
9569 packages are not found on the system. Thus, it resulted in
9571 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9572 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9574 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9577 * tests/elements/Makefile.am:
9578 * tests/elements/test-vaapicontext.c:
9579 tests: elements: add testsuite of vaapi context
9580 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9581 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9583 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9585 * gst/vaapi/gstvaapisink.c:
9586 vaapisink: fail if surface display is different
9587 Replacing GstVaapiDisplay during rendering might be hiding problems
9588 at some cases, even though it's safe currently since we use cache
9590 Play safe by failing if this happens.
9591 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9593 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9595 * gst/vaapi/gstvaapivideocontext.c:
9596 * gst/vaapi/gstvaapivideocontext.h:
9597 videocontext: support "gst.vaapi.app.Display" context
9598 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9599 and native display of their backend.
9601 - display : pointer of VADisplay
9602 - x11-display : pointer of X11 display (Display *), if they're using.
9603 This patch creates GstVaapidisplayX11 if information provided through
9604 "gst.vaapi.app.Display"
9605 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9607 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9609 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9610 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9611 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9612 Implements new API function so that users could create GstVaapiDisplay
9613 with their own VADisplay within a native display as backend.
9614 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9616 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9618 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9619 libs: display: pass display info when foreign display
9620 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9621 with that display, it also requires native display of the backend.
9622 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9624 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9626 * gst-libs/gst/vaapi/Makefile.am:
9627 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9628 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9629 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9630 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9631 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9632 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9633 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9634 libs: display: remove cache
9635 Remove a bunch of code that handles the VADisplay cache, since the
9636 context sharing should be doing this correctly.
9637 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9639 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9641 * tests/elements/Makefile.am:
9642 * tests/elements/test-vaapipostproc.c:
9643 tests: elements: add test for vaapipostproc
9644 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9646 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9648 * gst/vaapi/gstvaapipostproc.c:
9649 postproc: reconfigure when width or height changes
9650 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9652 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9654 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9655 libs: encoder: vp9: array terminated in zeros
9656 There is a crash when setting ref-pic-mode since the #GEnumValue
9657 array is not terminated with a structured with all memvers being
9659 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9661 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9663 * gst/vaapi/gstvaapiencode_h264.c:
9664 vaapiencode: h264: add plugin documentation
9665 Comment how the profile is set and other parameters.
9667 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9669 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9670 libs: decoder: h264: push frames as soon as possible
9671 Push frames downstream as soon as possible instead of waiting until
9672 they are ejected from the DPB.
9673 This patch makes the decoder not comply with the H.264 specification,
9674 but it is required for some video cameras.
9675 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9676 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9678 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9680 * gst/vaapi/gstvaapidecode_props.c:
9681 vaapidecode_props: h264: set low-latency in decoder
9682 Set the low-latency property if the H264 decoder is already
9683 instantiated, thus you could change the behavior in run-time.
9684 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9686 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9688 * gst/vaapi/gstvaapidecode.c:
9689 vaapidecode: set h264 low latency to decoder
9690 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9692 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9694 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9695 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9696 libs: decoder: h264: add getter/setter for low latency mode
9697 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9699 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9701 * gst/vaapi/gstvaapidecode_props.c:
9702 * gst/vaapi/gstvaapidecode_props.h:
9703 vaapidecode_props: h264: add low latency property
9704 Adding support for private data.
9705 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9707 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9709 * gst/vaapi/Makefile.am:
9710 * gst/vaapi/gstvaapidecode.c:
9711 * gst/vaapi/gstvaapidecode_props.c:
9712 * gst/vaapi/gstvaapidecode_props.h:
9713 * gst/vaapi/meson.build:
9714 vaapidecode_props: add skeleton for h264 decoder properties
9715 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9717 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9719 * gst/vaapi/gstvaapidecode.c:
9720 vaapidecode: properties callback in decoders map
9721 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9723 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
9726 meson: find python3 via python3 module
9727 https://bugzilla.gnome.org/show_bug.cgi?id=783198
9729 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
9731 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9732 libs: encoder: h264: submit sps in case of IDR picture
9733 If the picture is IDR, also submit a SPS header.
9734 This means when frame number reaches to keyframe-period or an force
9735 key unit event arrives, we insert SPS/PPS again.
9736 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9738 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
9740 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9741 libs: encoder: h264: set the frame as IDR if forced key unit
9742 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9743 the `frame-lost` event in the case of streaming, such as RTP.
9744 In case of this event, it is needed to start new GOP rather than just
9746 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9748 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9750 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9751 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9752 libs: encoder: h264: insert AU delimiter
9753 Insert an AUD as the first NAL of each encoded frame.
9754 Some applications require Access Unit Delimiter for decoding the
9756 The AU delimeter insertion is done only when the aud parameter is
9757 TRUE (by default is disabled). The reason of this it is because this
9758 header is only available from Intel Gen9 and the VA intel driver
9759 should be 1.8 or superior. Otherwise, the output will be corrupted.
9760 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9761 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9763 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9765 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9766 libs: encoder: h264: initialize all elements of view_ids
9767 Currently when num_views is changed by multiview-mode on sink caps, it produces
9768 wrong MVC encoded stream since the array view_ids is not set properly according
9769 to changed num_views.
9770 So this patch initializes all of the array sequentially to handle this case.
9771 Side effect is not going to happen by this patch since this array is being
9772 handled by num_views.
9773 https://bugzilla.gnome.org/show_bug.cgi?id=784321
9775 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
9777 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9778 Revert "encoder: h264: Use high profile by default"
9779 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9780 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9782 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
9784 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9785 libs: encoder: h264: set profile via capsfilter
9786 Until now, the encoder ignored the profile in src caps and chose one
9787 according with the given parameters. But the encoder must honor the
9788 profile specifed in src caps.
9789 This patch do that, and if the encoder needs to choose the profile,
9790 it will do it by following these rules:
9791 1\ If given parameters are not compatible with given profile, the
9792 encoder will bail out with an error.
9793 2\ The encoder will choose the higher profile indicated in the
9795 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9797 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
9799 * gst/vaapi/gstvaapiencode_h264.c:
9800 vaapiencode: h264: set profile to src caps
9801 So far vaapi encoder does not set profile to src caps. This patch makes it
9802 setting profile to src caps, which is determined by itself.
9803 In addition, if encoder chose different profile, which is not negotiated with
9804 downstream, we should set compatible profile to make negotiation working.
9805 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9807 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9809 * gst/vaapi/gstvaapiencode_h264.c:
9810 * gst/vaapi/gstvaapiencode_h264.h:
9811 vaapiencode: h264: verify if requested profile is supported
9812 Check if the requested profile in source caps, is supported by the
9813 VA driver. If it is not, an info log message is send saying that
9814 another (compatible?) profile will be used.
9815 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9817 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9819 * gst/vaapi/gstvaapiencode_h264.c:
9820 vaapiencode: h264: improve set_config() vmethod
9821 First check if downstream requests ANY caps. If so, byte-stream is
9822 used and the profile will be choose by the encoder. If dowstream
9823 requests EMPTY caps, the negotiation will fail.
9824 Lately, byte-stream and profile are looked in the allowed caps.
9825 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9827 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9829 * gst/vaapi/gstvaapiencode_h264.c:
9830 vaapiencode: h264: check for avc in set_config()
9831 The check for avc stream format was done in the vaapi encoder's
9832 vmethod get_caps(), but that is wrong since it has to be check
9833 when encoder set_format().
9834 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9836 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
9838 * gst/vaapi/gstvaapipostprocutil.c:
9839 vaapipostproc: set multivew-mode flags to src caps
9840 vaapipostproc didn't negotiate the proper multiview caps losing
9841 downstream information.
9842 This patch enables the playing of MVC encoded stream by setting
9843 the proper multiview mode/flags and views to src caps, according
9845 https://bugzilla.gnome.org/show_bug.cgi?id=784320
9847 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
9849 * gst/vaapi/gstvaapipostproc.c:
9850 vaapipostproc: add support for DMABuf caps feature
9851 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9852 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9854 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9856 * gst/vaapi/gstvaapidecode.c:
9857 vaapidecode: add support for DMABuf caps feature
9858 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9859 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9861 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9863 * gst/vaapi/gstvaapipluginbase.c:
9864 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9865 Instantiate all dmabuf allocator for src pad buffer pool if the
9866 src caps ask for memory:DMABuf feature.
9867 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9869 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
9871 * gst/vaapi/gstvaapipluginutil.c:
9872 * gst/vaapi/gstvaapipluginutil.h:
9873 vaapipluginutil: add support for DMABuf caps feature
9874 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9875 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9876 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9877 vaapipluginutil: add support for DMABuf caps feature
9879 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9881 * gst/vaapi/gstvaapipluginbase.c:
9882 vaapipluginbase: dmabuf memory map trial for raw caps
9883 Only push dmabuf-based buffers with raw caps if gst_memory_map()
9884 succeeds. Otherwise, use the the vaapi surfaces allocator.
9885 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9886 https://bugzilla.gnome.org/show_bug.cgi?id=774649
9887 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9889 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9891 * gst/vaapi/gstvaapivideomemory.c:
9892 * gst/vaapi/gstvaapivideomemory.h:
9893 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9894 This new method checks the specified allocator can create GstMemory that can
9896 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9898 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9900 * gst/vaapi/gstvaapivideobufferpool.c:
9901 vaapivideobufferpool: fix regression with video metas
9902 There is another regression with 7a206923 when setting the video
9903 info for the video meta, it should be the one from the image's
9904 allocator rather from the allocation caps.
9906 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9907 ! tee ! videoconvert ! videoscale \
9908 ! video/x-raw, width=1920, height=1080 ! xvimagesink
9910 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9912 * gst/vaapi/gstvaapipluginbase.c:
9913 * gst/vaapi/gstvaapivideobufferpool.c:
9914 plugins: update buffer size with the one reported by allocator
9915 There is a regression in 7a206923, since the buffer pool ditches all
9916 the buffers generated by them because the pool config size is
9917 different of the buffer's size.
9919 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9920 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
9921 --gst-debug=GST_PERFORMANCE:5
9922 The allocator may update the buffer size according to the VA surface
9923 properties. In order to do this, the video info is modified when the
9924 allocator is created, which reports through the allocation info the
9925 updated size, and set it to the pool config.
9927 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
9929 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9930 libs: decoder: h264: initialize active_sps/pps in reset
9931 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9932 they introduced regression in seek.
9933 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9934 But since the commits landed, it doesn't drop P-frame and does try to
9935 decode it continuously because active_sps is still alive. See ensure_sps function.
9936 But there are prev_frames and prev_ref_frames reset already, then it
9938 So it's necessary to reset active_sps/pps also in reset method.
9939 https://bugzilla.gnome.org/show_bug.cgi?id=783726
9941 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9943 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9944 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9945 libs: encoder: fix compilation with old versions of libva
9946 There are some symbols that are not used when compiling with old
9947 version of libva and those generates a compilation error.
9948 Original-patch-by: Matt Staples <staples255@gmail.com>
9950 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9952 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9953 libs: encoder: Fix the quality level clamping
9954 Change the hard-coded range of quality-level from {1-8} to {1-7},
9955 since it is the range Intel Open source driver supports.
9956 Also perform the range clamping only if the user provided
9957 quality-level is greater than the max-range suppored by the driver,
9958 because there could be non-intel drivers giving lower value than
9959 the hard-coded max value 7.
9960 https://bugzilla.gnome.org/show_bug.cgi?id=783567
9962 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9964 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9965 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9966 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9967 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9968 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9969 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9970 libs: encoder: log out the name of the profile
9971 Instead of printing a number, it is more readable to log out, in
9972 case of error, the name of the failing profile.
9974 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
9976 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9977 libs: encoder: h264: changes raw number of profile to macro name of its
9978 Changes raw number of profile to macro name of its to improve readability.
9979 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9981 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9983 * gst/vaapi/gstvaapivideobufferpool.c:
9984 vaapivideobufferpool: remove allocation_vinfo private attribute
9985 There is no need to keep this attribute internally since it is
9986 already managed by the allocator.
9987 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9989 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9991 * gst/vaapi/gstvaapivideobufferpool.c:
9992 vaapivideobufferpool: refactor set_config()
9993 Refactor the set_config() virtual method considering a cleaner
9994 approach to allocator instanciation, if it it not set or if it is
9995 not valid for the pool.
9996 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9998 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10000 * gst/vaapi/gstvaapipluginbase.c:
10001 * gst/vaapi/gstvaapivideobufferpool.c:
10002 * gst/vaapi/gstvaapivideomemory.c:
10003 * gst/vaapi/gstvaapivideomemory.h:
10004 plugins: distinguish allocation and negotiation caps
10005 The vaapi video decoders might have different allocation caps from
10006 the negotiation caps, thus the GstVideoMeta shall use the negotiation
10007 caps, not the allocation caps.
10008 This was done before reusing gst_allocator_get_vaapi_video_info(),
10009 storing there the negotiation caps if they differ from the allocation
10010 ones, but this strategy felt short when the allocator had to be reset
10011 in the vaapi buffer pool, since we need both.
10012 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
10013 gst_allocator_get_vaapi_negotiated_video_info() to store the
10014 negotiated video info in the allocator, and distinguish it from
10015 the allocation video info.
10016 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10018 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10020 * gst/vaapi/gstvaapivideomemory.c:
10021 * gst/vaapi/gstvaapivideomemory.h:
10022 vaapivideomemory: rename qdata quarks and ids
10023 Also the parameter names were renamed to reflect their origin
10025 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10027 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10029 * gst/vaapi/gstvaapivideobufferpool.c:
10030 vaapivideobufferpool: rename local variables
10031 Renamed local video info structure names in set_config() vitual
10032 method. The purpose of their renaming is to clarify the origin
10033 of those structures, whether come from passed caps parameter
10034 (new_allocation_vinfo) or from the configured allocator
10036 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10038 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10040 * gst/vaapi/gstvaapivideobufferpool.c:
10041 vaapivideobufferpool: rename video info structures
10042 Renamed private GstVideoInfo structure video_info to allocation_vinfo
10043 and alloc_info to negotiated_vinfo.
10044 The purpose of these renaming is to clarify the origin and purpose of
10045 these private variables:
10046 video_info (now allocation_vinfo) comes from the bufferpool
10047 configuration. It describes the physical video resolution to be
10048 allocated by the allocator, which may be different from the
10050 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
10051 the pipeline. It represents how the frame is going to be mapped
10052 using the video meta.
10053 In Intel's VA-API backend, the allocation_vinfo resolution is
10054 bigger than the negotiated_info.
10055 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10057 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10059 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10060 libs: encoder: set framerate if bigger than 0/1
10061 Just set the framerate parameter if the framerate numerator and
10062 denominator are bigger than zero.
10063 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
10065 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10066 https://bugzilla.gnome.org/show_bug.cgi?id=783532
10068 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10070 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10071 libs: encoder: bitrate target percentage calculation
10072 If the rate control is set to Constant Bit Rate (CBR) the target
10073 percentage is 100%, otherwise is 70%
10075 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10077 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10078 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10079 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10080 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10081 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10082 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10083 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
10084 Centralize the common configuration for the Rate Control parameter,
10085 thus can be overloaded per each specific encoder.
10087 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10089 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10090 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10091 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10092 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10093 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10094 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10095 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
10096 Since the framerate VA parameter is calculated equally among all the
10097 encoders, it is better to handle it in the base encoder class.
10099 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10101 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10102 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
10103 libs: encoder: vp9: Adds CBR and VBR Encoding support
10104 https://bugzilla.gnome.org/show_bug.cgi?id=766832
10105 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10106 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10108 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10110 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10111 libs: encoder: vp8: Adds VBR Encoding support
10112 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10114 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
10116 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10117 libs: encoder: h265: Adds VBR Encoding support
10118 Enables Variable BitRate mode, which does set FrameRate and RateControl
10120 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10122 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
10124 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10125 libs: encoder: Describes more detail about the bitrate property
10126 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10128 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10130 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10131 libs: encoder: h265: add rate control parameter
10132 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10134 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10136 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10137 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10138 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10139 libs: encoder: h264,h265,mpeg2: add framerate parameter
10140 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10142 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10144 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10145 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10146 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10147 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10148 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10149 Instead of recalculating the miscellaneous buffer parameters for
10150 every buffer, it is only done once, when the encoder is configured.
10151 And for every buffer, the same structures are just copied.
10152 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10154 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10156 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10157 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10158 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10159 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10160 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10161 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10162 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10163 This is patch pretends to decouple the assignation of the values
10164 in the parameter structures and the VA buffer's parameters setting.
10165 It may lead to some issues since HRD, framerate or controlrate may
10166 not be handled by the specific encoder, but they are set in
10167 the VA buffer's parameters.
10168 I leave as it because this patch is just a transitional patch.
10169 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10171 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10173 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10174 libs: encoder: vp8: fix frame rate calculation
10175 According to the VA documentation:
10176 The framerate is specified as a number of frames per second,
10177 as a fraction. The denominator of the fraction is given in
10178 the top half (the high two bytes) of the framerate field, and
10179 the numerator is given in the bottom half (the low two bytes).
10180 For example, if framerate is set to (100 << 16 | 750), this is
10181 750 / 100, hence 7.5fps.
10182 If the denominator is zero (the high two bytes are both zero)
10183 then it takes the value one instead, so the framerate is just
10184 the integer in the low 2 bytes.
10185 This patch fixes the the framerate calculation in vp8 encoder
10187 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10189 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10191 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10192 libs: encoder: vp8: refactor FrameRate parameter
10193 Move frame-rate parameter from ensure_misc_params() to
10194 ensure_contro_rate_param() since it only has meaning when the
10195 control rate is either VBR or CBR.
10196 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10198 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10200 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10201 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10202 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10203 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10204 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10205 Move the Hypothetical Reference Decoder (HRD) parameter, from
10206 ensure_misc_params() to ensure_control_rate_params(), since it
10207 only shall be defined when the control rate is either VBR or CBR.
10208 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10210 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10212 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10213 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10214 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10215 libs: encoder: h264,vp8,mpeg2: refactor control rate
10216 Instead of filling the control rate param in ensure_misc_params(),
10217 this patch refactor it out, as a first step to merge the same code
10218 for all the encoders.
10219 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10221 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10223 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10224 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10225 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10226 libs: encoder: h264, h265, mpeg2: remove assert
10227 Remove spurious asserts for misc parameters. If they cannot be
10228 allocated, FALSE is already returned.
10230 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10232 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10233 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10234 libs: encoder: use VA quality level structure
10235 Instead of using a proxy to story the buffer quality level, the
10236 encoder now uses the native VA structure, which is copied to the
10237 dynamically allocated VAEncMiscParameterBuffer.
10238 This approach is computationally less expensive.
10240 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10242 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10243 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10244 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10245 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10246 libs: standardize the FIXME comment
10247 This is a trivial patch that makes homogeneous the FIXME tag in
10249 For more info about these comment style:
10250 http://wiki.c2.com/?FixmeComment
10252 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10254 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10255 libs: encoder: vp8: set quality level regardless of rate control mode
10256 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10258 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10260 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10261 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10262 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10263 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10264 libs: encoder: check for maximum number of slices
10265 Right now, H264 and HEVC can set as a property the number of slices to
10266 process. But each driver can set a maximum number of slices, depending
10267 on the supported profile & entry point.
10268 This patch verifies the current num_slices to process against the maximum
10269 permitted by the driver and the media size.
10270 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10272 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10274 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10275 libs: utils: mark functions as internals
10276 The functions in this header are internal to the library.
10278 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10280 * gst-libs/gst/vaapi/gstvaapicontext.h:
10281 libs: context: add missing documentation
10282 Document the region-of-interest configuration variables.
10284 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10286 * tests/elements/test-vaapisink.c:
10287 tests: elements: vaapisink: handle nav events
10288 The test app can now handle navigation events to rotate the
10291 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10293 * tests/elements/test-vaapisink.c:
10294 tests: elements: clean up vaapisink test
10295 - Use gst_element_send_event() instead of gst_pad_push_event()
10296 - don't zero App structure
10297 - check for pipeline parsing error
10298 - only get vaapisink for property set
10300 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10302 * gst/vaapi/gstvaapisink.c:
10303 vaapisink: keep handle_events flag except that if user want to set
10304 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10305 flag is set to FALSE, and never recovered, and then event thread is never
10307 So we should allow to set the flag only when users try it.
10308 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10310 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10312 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10313 libs: window: x11: fix src rect info when using vpp
10314 Since we started using VPP in VaapiWindowX11, we need to care about
10315 the case that src rect and window's size are different.
10316 So, once VPP has converted to other format, we should honor the
10317 size of the VPP's surface as source rect. Otherwise, it is cropped
10318 according the previous size of the source rect.
10319 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10321 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10323 * gst/vaapi/gstvaapipluginutil.c:
10324 plugins: remove par from caps negotiation
10325 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10327 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10329 * tests/elements/Makefile.am:
10330 * tests/elements/test-roi.c:
10331 tests: elements: add an example for ROI
10332 This implements a pipleint to recognize difference between ROI and non-ROI.
10333 See comments in this code in detail.
10334 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10335 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10337 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10339 * gst/vaapi/gstvaapiencode.c:
10340 * gst/vaapi/gstvaapiencode_h264.c:
10341 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10342 Handles new custom event GstVaapiEncoderRegionOfInterest
10343 to enable/disable a ROI region.
10344 Writes a way to use new event to document.
10345 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10346 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10348 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10350 * tests/simple-encoder.c:
10351 tests: simple-encoder: add an option to set ROI
10352 $ simple-encoder -r inputfile.y4m
10353 And you'll got an output file in H264 with two regions of interest.
10354 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10355 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10357 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10359 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10360 libs: encoder: h264: set ROI params during encoding
10361 Set ROI params during encoding each frame, which are set via
10362 gst_vaapi_encoder_add_roi ()
10363 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10364 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10366 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10368 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10369 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10370 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10371 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10372 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10373 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10375 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10377 * gst-libs/gst/vaapi/gstvaapicontext.c:
10378 * gst-libs/gst/vaapi/gstvaapicontext.h:
10379 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10380 libs: encoder/context: query region of interest support
10381 Queries if the driver supports "Region of Interest" (ROI) during the config
10383 This attribute conveys whether the driver supports region-of-interest (ROI)
10384 encoding, based on user provided ROI rectangles. The attribute value is
10385 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10386 If ROI encoding is supported, the ROI information is passed to the driver
10387 using VAEncMiscParameterTypeROI.
10388 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10389 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10391 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10393 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10394 libs: encoder: fix a comment
10396 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10398 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10399 libs: encoder: guard quality level configuration
10400 The quality level appeared in VA-API 0.36. So let's guard its
10403 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10405 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10406 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10407 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10408 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10409 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10410 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10411 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10412 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10413 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10414 encoders: add quality level tuning
10415 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10416 in gstreamer-vaapi encoders:
10417 The encoding quality could be set through this structure, if the
10418 implementation supports multiple quality levels. The quality level set
10419 through this structure is persistent over the entire coded sequence, or
10420 until a new structure is being sent. The quality level range can be queried
10421 through the VAConfigAttribEncQualityRange attribute. A lower value means
10422 higher quality, and a value of 1 represents the highest quality. The quality
10423 level setting is used as a trade-off between quality and speed/power
10424 consumption, with higher quality corresponds to lower speed and higher power
10426 The quality level is set by the element's parameter "quality-level" with a
10427 hard-coded range of 1 to 8.
10428 Later, when the encoder is configured in run time, just before start
10429 processing, the quality level is scaled to the codec range. If
10430 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10431 the quality level is set to zero, which means "disabled".
10432 All the available codecs now process this parameter if it is available.
10433 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10434 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10436 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10440 Back to development
10442 === release 1.12.0 ===
10444 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10449 * gstreamer-vaapi.doap:
10453 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10455 * gst/vaapi/gstvaapidecodebin.c:
10456 Revert "vaapidecodebin: fix element's classification"
10457 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10459 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10463 build: Require libva < 0.99.0
10464 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10465 fail to configure instead of failing late in the build.
10466 This libva is bundled in msdk[1] and it is ahead in time with
10467 respect the official and open source libva[2]. GStreamer-VAAPI
10468 only supports the latter for now.
10469 1. https://software.intel.com/en-us/media-sdk/download
10470 2. https://github.com/01org/libva/
10471 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10473 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10475 * gst/vaapi/gstvaapidecodebin.c:
10476 vaapidecodebin: fix element's classification
10477 This bin should have similar classification as decodebin which is
10478 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10480 Signed-off-by: Victor Toso <victortoso@redhat.com>
10481 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10483 === release 1.11.91 ===
10485 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10490 * gstreamer-vaapi.doap:
10494 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10496 * gst/vaapi/gstvaapipluginutil.c:
10497 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10498 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10500 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10502 * gst/vaapi/gstvaapipluginutil.c:
10503 plugins: reject pixel-aspect-ratio with value 0/1
10504 Do not negotiate a pixel-aspect-ratio of 0/1.
10505 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10507 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10509 * gst/vaapi/gstvaapipostprocutil.c:
10510 * gst/vaapi/gstvaapisink.c:
10511 plugins: handle pixel-aspect-ratio with value 0/1
10512 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10513 calculations for resizing and formatting in vaapipostproc and
10514 vaapisink, respectively, failed, and thus the pipeline.
10515 This patch handles this situation by converting p-a-r of 0/1 to
10516 1/1. This is how other sinks, such as glimagesink, work.
10517 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10519 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10521 * gst/vaapi/gstvaapivideobufferpool.c:
10522 vaapivideobufferpool: fix leak of created allocator
10523 Since it's created by itself, it should be unref-counted
10524 after gst_buffer_pool_config_set_allocator call. Afterwards,
10525 this allocator will be ref-counted again when assigning to priv->allocator.
10526 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10528 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10530 * gst/vaapi/gstvaapivideobufferpool.c:
10531 vaapivideobufferpool: create or reconfig allocator
10532 Sometimes a video decoder could set different buffer pool
10533 configurations, because their frame size changes. In this case we
10534 did not reconfigure the allocator.
10535 This patch enables this use case, creating a new allocator inside
10536 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10537 If so, it is just reconfigured, since it doesn't have a surface pool.
10538 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10540 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10542 * tests/elements/Makefile.am:
10543 test: elements: fix compilation flags
10544 This issue was spotten on bug #766704
10545 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10547 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10549 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10550 libs: windows: wayland: fix leak if failure of sync
10551 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10552 during destruction.
10553 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10554 This surface is not attached to anything at this moment, so we should release
10556 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10558 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10561 Automatic update of common submodule
10562 From 60aeef6 to 48a5d85
10564 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10566 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10567 libs: window: wayland: mark frames as done
10568 When the frame listener callbacks 'done', the number of pending
10569 frames are decreased. Nonetheless, there might be occasions where
10570 the buffer listener callbacks 'release', without calling previously
10571 frame's 'done'. This leads to problem with
10572 gst_vaapi_window_wayland_sync() operation.
10573 This patch marks as done those frames which were callbacked, but if
10574 the buffer callbacks 'release' and associated frame is not marked
10575 as 'done' it is so, thus the number of pending frames keeps correct.
10576 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10577 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10579 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10581 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10582 libs: window: wayland: don't sync at destroy()
10583 Don't call gst_vaapi_window_wayland_sync() when destroying the
10584 wayland window instance, since it might lead to a lock at
10585 gst_poll_wait() when more than one instances of vaapisink are
10586 rendering in the same pipeline, this is because they share the
10588 Since now all the frames are freed we don't need to freed the
10589 private last_frame, since its address is invalid now.
10590 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10591 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10593 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10595 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10596 libs: window: wayland: null buffer at destroy()
10597 Fix leakage of the last wl buffer.
10598 VAAPI wayland sink needs to send a null buffer while destruction,
10599 it assures that all the wl buffers are released. Otherwise, the last
10600 buffer's callback might be not called, which leads to leak of
10602 This was inspired by gstwaylandsink.
10603 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10604 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10606 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10608 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10609 libs: window: wayland: rt event queue at destroy()
10610 The proxy object of wl_buffer for the last frame remains in the
10611 wl_map. Even though we call wl_buffer_destroy() in
10612 frame_release_callback(), the proxy object remains without being
10613 removed, since proxy object is deleted when wayland server sees the
10614 delete request and sends 'delete_id' event.
10615 We need to call roundtrip before destroying event_queue so that the
10616 proxy object is removed. Otherwise, it would be mess up as receiving
10617 'delete_id' event from previous play, when playing in the next
10618 va/wayland window with the same wl_display connection.
10619 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10620 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10622 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10624 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10625 libs: window: wayland: cancel read at poll message
10626 Always call wl_display_cancel_read() when an errno is set, but
10627 different to EAGAIN or EINTR.
10628 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10630 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10632 * gst/vaapi/gstvaapidecodebin.c:
10633 * gst/vaapi/gstvaapidecodebin.h:
10634 vaapidecodebin: skips configuration once it's done
10635 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10636 Otherwise, it always fails when it's trying to re-start playback.
10637 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10639 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10641 * gst/vaapi/gstvaapipostprocutil.c:
10642 vaapipostproc: fixes for memory leaks
10643 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10644 requires to clear the used GValue to avoid a memory leak.
10646 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10648 * gst/vaapi/gstvaapipluginbase.c:
10649 * gst/vaapi/gstvaapipluginbase.h:
10650 plugins: enable direct rendering with envvar
10651 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10652 performance in some Intel platforms (Haswell, for example) but in others
10653 (Skylake) is the opposite.
10654 In order to have some control, the patch enables the direct rendering
10655 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10656 Also it seems to generating some problems with gallium/radeon backend.
10658 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10660 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10662 * gst/vaapi/gstvaapidecode.c:
10663 vaapidecode: Don't renegotiate on every flush
10664 If caps don't actually change, don't update the
10665 decoder and don't set the do_renego flag forcing
10666 downstream renegotiation
10667 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10669 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10671 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10672 h264 decoder: Implement reset() for faster flush
10673 Implement a custom reset() function for faster flushes
10674 that just clear the reference pictures but don't reallocate
10675 the DPB or clear out SPS/PPS
10676 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10678 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10680 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10681 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10682 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10683 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10684 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10685 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10686 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10687 * gst/vaapi/gstvaapidecode.c:
10688 Implement decoder reset on flush, rather than recreating
10689 Clear decoders out on a flush but keep the same instance,
10690 rather than completely recreating them. That avoids
10691 unecessarily freeing and recreating surface pools
10692 and contexts, which can be quite expensive
10693 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10695 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10697 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10698 libs: window: don't add an unused function
10699 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10700 a function that is never used, thus when compiling we might see
10701 this warning (clang):
10702 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10703 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10705 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10707 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10709 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10710 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10711 libs: window: remove surface_format member
10712 Since we always convert to NV12, there is no need to keep a
10713 variable for that. Let us hard code it.
10714 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10716 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10718 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10719 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10720 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10721 libs: window: x11/wayland: use new api for conversion
10722 Since gst_vaapi_window_vpp_convert_internal is created,
10723 GstVaapiWindowX11/Wayland can use it for conversion.
10724 Note that once it chooses to use vpp, it's going to use vpp
10725 until the session is finished.
10726 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10728 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
10730 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10731 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10732 libs: window: add gst_vaapi_window_vpp_convert_internal()
10733 If a backend doesn't support specific format, we can use vpp for conversion
10734 and make it playing.
10735 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10736 so that GstVaapiWindowX11 could use it.
10737 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10739 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10741 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10742 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10743 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10744 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10745 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10746 libs: window: x11/wayland: chaining up to GstVaapiWindow
10747 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10748 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10749 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10751 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10753 * gst/vaapi/gstvaapipluginutil.c:
10754 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10755 When these definitions are false, they are undef in the
10756 preprocessor, not a defined value of 0. When they are unset the
10757 compile fails with:
10758 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10759 https://bugzilla.gnome.org/show_bug.cgi?id=780948
10761 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
10764 Automatic update of common submodule
10765 From 39ac2f5 to 60aeef6
10767 === release 1.11.90 ===
10769 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
10774 * gstreamer-vaapi.doap:
10778 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10780 * gst/vaapi/gstvaapiencode_h265.c:
10781 vaapiencode: h265: add main-10 in caps template
10782 This patch adds h265's main-10 profile in encoder src caps template.
10783 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10785 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10787 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10788 libs: encoder: h265: chroma and luma with format
10789 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10790 parameter buffer, shall be the color format bit depth minus 8, 10-8
10791 which is 2. Also for bit_depth_chroma_minus8.
10792 This patch gets the negotiated sink caps format and queries its
10793 luma's depth and uses that value to fill the mentioned parameters.
10794 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10796 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10798 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10799 libs: encoder: admit YUV420_10BPP as valid chroma
10800 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10802 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10804 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10806 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10807 libs: encoder: h265: ensures profile given format
10808 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10809 configured color format is P010_10LE.
10810 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10811 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10813 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10815 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10816 libs: encode: merge all possible surface formats
10817 When the function gst_vaapi_encoder_get_surface_formats() was added
10818 it was under the assumption that any VA profile of the specific codec
10819 supported the same format colors. But it is not, for example the
10820 profiles that support 10bit formats.
10821 In other words, different VA profiles of a same codec may support
10822 different color formats in their upload surfaces.
10823 In order to expose all the possible color formats, if no profile is
10824 specified via source caps, or if the encoder doesn't have yet a
10825 context, all the possible VA profiles for the specific codec are
10826 iterated and their color formats are merged.
10827 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10829 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10831 * gst/vaapi/gstvaapiencode.c:
10832 * gst/vaapi/gstvaapiencode.h:
10833 * gst/vaapi/gstvaapiencode_h264.c:
10834 * gst/vaapi/gstvaapiencode_h265.c:
10835 vaapiencode: add get_profile() vmethod
10836 This new virtual method, get_profile(), if implemented by specific
10837 encoders, will return the VA profile potentially determined by the
10839 Also it is implemented by h264 and h265 encoders, which are the main
10840 users of this vmethod.
10841 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10843 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10845 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10846 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10847 * gst/vaapi/gstvaapiencode.c:
10848 libs: encoder: pass profile to get_surface_formats()
10849 In order to get the supported surface formats within a specific
10850 profile this patch adds the GstVaapiProfile as property to
10851 gst_vaapi_encoder_get_surface_formats().
10852 Currently the extracted formats are only those related with the
10853 default profile of the element's codec.
10854 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10856 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10858 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10859 libs: encoder: dummy context for get_surface_formats()
10860 Instead of creating (if it doesn't exist, yet) the encoder's context
10861 the method gst_vaapi_encoder_get_surface_formats() now it creates
10862 dummy contexts, unless the encoder has it already created.
10863 The purpose of this is to avoid setting a encoder's context with a
10865 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10867 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10869 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10870 libs: encoder: refactor init_context_info()
10871 In order to generate vaapi contexts iterative, the function
10872 init_context_info() is refactored to pass, as parameters the
10873 GstVaapiContextInfo and the GstVaapiProfile.
10874 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10876 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10878 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10879 * gst-libs/gst/vaapi/gstvaapiutils.c:
10880 * gst-libs/gst/vaapi/gstvaapiutils.h:
10881 libs: encoder: initialize chroma_type
10882 Instead of initialize the chroma_type with a undefined value, which
10883 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10884 this patch queries the VA config, given the received
10885 GstVaapiContextInfo's parameters, and gets the first response.
10886 In order to get the GstVaapiChromaType value, also it was needed to
10887 add a new utility function: to_GstVaapiChromaType(), which, given a
10888 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10889 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10891 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10893 * gst/vaapi/gstvaapiencode.c:
10894 vaapiencode: enhance logs of negotiated caps
10895 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10897 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10899 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10900 libs: encoder: vp9: Fix initialization of ref_list
10901 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10902 'memset' used with length equal to number of elements without
10903 multiplication by element size [-Werror=memset-elt-size]
10904 https://bugzilla.gnome.org/show_bug.cgi?id=780947
10906 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10908 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10909 encoder: h264: Fix Backward ReferencePicture flag setting
10910 This is a regression introduced by e829b62 which
10911 override the reference flags and caused issues with
10912 latest intel-vaapi-driver.
10914 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10916 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10917 libs: encoder: h265: fix code style
10918 Trivial patch to remove a double ';' as end of instruction.
10920 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10922 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10923 encoder: h264: Fix B frame encoding artifacts
10924 The current implementation is updating the POC values only
10925 in Slice parameter Buffer.But we are not filling the
10926 picture order count and reference flags in VAPictureH264
10927 while populating VA Picture/Slice structures.The latest
10928 intel-vaapi-driver is directly accessing the above fields
10929 from VAPicutreH264 provided as RefPicLists, which resulted
10930 some wrong maths and prediction errors in driver.
10931 https://bugzilla.gnome.org/show_bug.cgi?id=780620
10933 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10935 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10936 libs: encoder: h265: remove unused macro definition
10937 Since the h265 encoder doesn't use GValueArray, there is no need to
10938 disable the Glib deprecation warnings, thus removing the macro
10941 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10943 * gst/vaapi/gstvaapidecode.c:
10944 * gst/vaapi/gstvaapiencode.c:
10945 * gst/vaapi/gstvaapipostproc.c:
10946 * gst/vaapi/gstvaapisink.c:
10947 plugins: when debug disabled, default category is NULL
10948 As in gstreamer-vaapi a common base class is used, the specific
10949 default category is passed to the base-plugin initializator, thus
10950 the log messages are categorized with the used plugin.
10951 Nonetheless, when the gst-debug is disabled in compilation time,
10952 it is needed to pass NULL to the base-plugin initializator. This
10954 https://bugzilla.gnome.org/show_bug.cgi?id=780302
10956 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
10958 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10959 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10960 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10961 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10962 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10963 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10964 unit length and data to a bitwriter.
10965 Note that this helper function applies EPB (Emulation Prevention
10966 Bytes), since otherwise produced codec_data might be broken when
10967 decoder/parser considering EPB, starts parsing.
10968 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10969 describes the emulation_prevention_three_byte.
10970 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10971 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10973 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
10975 * gst-libs/gst/vaapi/Makefile.am:
10976 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10977 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10978 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10979 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10980 * gst-libs/gst/vaapi/meson.build:
10981 libs: utils: h26x: create vaapiutils_h26x
10982 Since there is duplicated code in h264/265 encoder, we could
10983 refactor it to avoid duplicated code.
10984 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10985 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10987 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10989 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10990 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10991 libs: encoder: h264/5: fix wrong return value
10992 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10994 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10996 * gst/vaapi/gstvaapiencode_h264.c:
10997 * gst/vaapi/gstvaapiencode_h265.c:
10998 docs: h264/h265: put parser to the example pipeline
10999 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11001 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11003 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11004 libs: encoder: h265: fix reserved length of bits
11005 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
11006 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11008 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11010 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11011 * tests/test-display.c:
11012 O_CLOEXEC needs _GNU_SOURCE defined
11014 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
11015 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
11016 2.12, one can obtain their definitions by defining either
11017 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
11018 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
11019 2.11 and earlier, one obtains the definitions by defining
11021 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
11022 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
11023 gstreamer-vaapi with the uClibc C library.
11024 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11025 https://bugzilla.gnome.org/show_bug.cgi?id=779953
11027 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11030 README: fix "Sources" section
11031 Update the URL where the release source tarballs can be downloaded.
11033 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11036 README: fix "Reporting bugs" section
11037 The "Reporting bugs" section gives
11038 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
11039 link to report a bug, but this link says "Sorry, entering a bug into the
11040 product gstreamer-vaapi has been disabled.".
11041 This commit fixes the URL to point to the proper location, and also
11042 removes the following paragraph that is no longer correct.
11043 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11044 https://bugzilla.gnome.org/show_bug.cgi?id=779954
11046 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11048 * gst/vaapi/gstvaapipluginutil.c:
11049 plugins: retry to create the VA display
11050 Particularly in GNOME Wayland, the negotiated or created GL context
11051 defines a GLX environment, but VAAPI fails to create a GLX VA
11052 display because there is no a DRI2 connection.
11053 This patch retries to create the VA display if VA cannot create one
11054 with the GL context parameters. Now using the old list of display
11056 This should also work in the case of systems with two GPU, when the
11057 non-VAAPI has the graphics environment, and the VAAPI-enabled one
11058 shall work headless.
11059 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11061 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11063 * gst/vaapi/gstvaapipostproc.c:
11064 vaapipostproc: texture upload if driver supports GL
11065 Removes GstVideoGLTextureUploadMeta caps feature if the driver
11066 doesn't support opengl.
11067 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11068 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11070 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11072 * gst/vaapi/gstvaapidecode.c:
11073 vaapidecode: texture upload if driver supports GL
11074 When the allowed source pad caps are generated, the GLTextureUpload caps are
11075 only inserted if the driver support OpenGL.
11076 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11078 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11081 configure: Add missing compiler flags
11082 The AC_CHECK_HEADERS macro was failing to locate some headers, in
11083 particular the va_enc_* headers due to missing compiler flags.
11084 https://bugzilla.gnome.org/show_bug.cgi?id=779101
11085 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11087 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11089 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11090 libs: window: wayland: handle more VAStatus to use vpp
11091 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
11092 we should consider more returned VAStatus to use vpp.
11093 https://bugzilla.gnome.org/show_bug.cgi?id=779400
11095 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11097 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11098 libs: encoder: ensure profile when context initialization
11099 We can't be sure that encoder's profile is assgined already or not
11100 at context initialization.
11101 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11103 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11105 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11106 libs: encoder: set rate control info only when query succeed
11107 Currently, it set rate control information even when query fails.
11108 In addition, it doesn't update any more since the flag
11109 got_rate_control_mask is set to TRUE.
11110 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11112 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
11115 meson: Update version
11117 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
11120 Back to development
11122 === release 1.11.2 ===
11124 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
11129 * gstreamer-vaapi.doap:
11132 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11134 * gst/vaapi/gstvaapiencode.c:
11135 vaapiencode: merge tags for downstream's info
11136 Add encoder and codec name and the bitrate into the output for
11137 informational purposes. Some muxers or application use it as
11139 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11141 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11143 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11144 libs: encoder: caps can change at any time
11145 The encoder should be able to change its caps even it is already
11146 processing a stream.
11147 This is suppose to happen after a flush so the codedbuf_queue should
11149 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11151 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11153 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11154 libs: encoder: h265: bail if nal unit type fails
11155 Bail out if the NAL unit type is not recognized.
11156 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11158 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11160 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11161 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11162 libs: decoder: h264,h265 avoid uninitialized variable
11163 Configuring GCC to verify possible usage of uninitialized variables,
11164 shows that found_index might be used without previous assignation.
11165 This patch assigns a initial value to found_index, also avoid a
11166 branching when returning the result value.
11167 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11169 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11172 * gst-libs/gst/vaapi/Makefile.am:
11173 * gst/vaapi/gstvaapidecode.c:
11174 * gst/vaapi/gstvaapidecodebin.c:
11175 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11176 Rename to be consistent with H.264 and also H.265 encoder. The
11177 meson build assumed this was already consistently named, and so
11178 previously was not able to actually build the H.265 decoder.
11179 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11181 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11184 meson: gstreamer-codecparsers is a required dep
11185 Just like in configure.ac.
11187 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11190 meson: dist meson build files
11191 Ship meson build files in tarballs, so people who use tarballs
11192 in their builds can start playing with meson already.
11194 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11196 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11197 libs: encoder: vp8: add CBR encoding mode
11198 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11199 Basically it adds the configuration parameters required by libva to
11201 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11202 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11204 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11206 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11207 libs: encoder: vp8: fix bitrate calculation
11208 Base encoder's unit of bitrate is in Kbps. We should honor it so
11209 we use the value of bitrate in VA, in which is expressed in bps.
11210 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11212 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11214 * gst/vaapi/gstvaapipluginbase.c:
11215 plugins: fix build when gcc
11216 In commit a8e482f9 we added a function without parameters, but gcc
11219 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11221 * gst-libs/gst/base/meson.build:
11222 * gst-libs/gst/meson.build:
11223 * gst-libs/gst/vaapi/meson.build:
11224 * gst-libs/meson.build:
11226 * gst/vaapi/meson.build:
11228 * meson_options.txt:
11229 vaapi: add meson build
11230 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11232 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11235 * gst-libs/gst/vaapi/Makefile.am:
11236 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11237 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11238 make: remove gstvaapiversion.h generation
11239 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11241 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11243 * gst/vaapi/gstvaapipluginbase.c:
11244 plugins: use linear storage if not the same device
11245 When dmabuf is negotiated downstream and decoding and rendering are
11246 not done on the same device, the layout has to be linear in order for
11247 the memory to be shared accross devices, since each device has its
11248 own way to do tiling.
11249 Right now this code is rather just a to-do comment, since we are not
11250 fetching the device ids.
11251 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11253 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11255 * gst-libs/gst/vaapi/gstvaapiutils.c:
11256 libs: utils: add HEVC profiles representation
11257 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11259 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11261 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11262 libs: decoder: h264: reduce frame number of gaps
11263 Reduce frame num gaps so that we don't have to create unnecessary
11264 dummy pictures, just throw them away.
11265 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11266 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11268 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11270 * gst/vaapi/gstvaapidecode.c:
11271 vaapidecode: don't GLTextureUpload if dmabuf
11272 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11273 element can handle dmabuf-based buffers, avoiding its negotiation.
11275 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11277 * gst/vaapi/gstvaapidecode.c:
11278 vaapidecode: make pool to export decoder's surface
11279 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11280 pass the current proxy/surface to the pool.
11281 The pool will will export thins given surface instead of exporting a
11282 brand new surface that will never be filled in with meaningfull data.
11283 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11285 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11287 * gst/vaapi/gstvaapipluginbase.c:
11288 plugins: decoder can negotiate dmabuf downstream
11290 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11292 * gst/vaapi/gstvaapivideobufferpool.c:
11293 vaapivideobufferpool: override acquire_buffer()
11294 Overriding the vmethod acquire_buffer() it is possible to attach the
11295 right GstMemory to the current acquired buffer.
11296 As a matter of fact, this acquired buffer may contain any instantiated
11297 GstFdmemory, since this buffer have been popped out from the buffer
11298 pool, which is a FIFO queue. So there is no garantee that this buffer
11299 matches with the current processed surface. Evenmore, the VA driver
11300 might not use a FIFO queue. Therefore, it is no way to guess on the
11302 In short, acquire_buffer on the VA driver and on the buffer pool return
11303 none matching data, we have to manually attach the right GstFdMemory to
11304 the acquired GstBuffer. The right GstMemory is the one associated with
11305 the current surface.
11306 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11308 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11310 * gst/vaapi/gstvaapivideobufferpool.c:
11311 * gst/vaapi/gstvaapivideomemory.c:
11312 vaapivideomemory: export surface if it is provided
11313 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11314 had to create that surface. Now it can also export an already provided
11315 surface. It is useful to export decoder's surfaces (from VA context).
11316 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11318 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11320 * gst/vaapi/gstvaapivideobufferpool.h:
11321 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11322 Useful to let the pool know the current surface proxy when calling
11323 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11324 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11326 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11328 * gst-libs/gst/vaapi/gstvaapisurface.c:
11329 * gst-libs/gst/vaapi/gstvaapisurface.h:
11330 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11331 These functions are useful when a dmabuf-based memory is instantiated in
11332 order to relate the generated buffer @proxy with the processed @surface.
11333 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11335 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11337 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11338 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11339 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11340 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11341 This patch adds a GstMemory as a variable member of the buffer proxy,
11342 because we will need to associate the buffer proxy with the memory
11343 which exposes it. Later, we will know which memory, in the video buffer
11344 pool, is attached to the processed surface.
11345 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11347 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11349 * gst/vaapi/gstvaapipostproc.c:
11350 vaapipostproc: don't GLTextureUpload if dmabuf
11351 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11352 element can handle dmabuf-based buffers, avoiding its negotiation.
11353 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11354 feature if can dmabuf"
11355 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11357 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11359 * gst/vaapi/gstvaapipluginbase.c:
11360 plugins: enable DMAbuf allocator to downstream
11361 If the negotiated caps are raw caps and downstream supports the
11362 EGL_EXT_image_dma_buf_import extension, then the created allocator
11363 is the DMAbuf, configured to downstream.
11364 At this moment, the only element which can push dmabuf-based buffers
11365 to downstream, is vaapipostproc.
11367 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11369 * gst/vaapi/gstvaapipluginbase.c:
11370 * gst/vaapi/gstvaapipluginbase.h:
11371 plugins: check if negotiate dmabuf with downstream
11372 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11373 plugin needs to check if downstream can import dmabuf buffers.
11374 This patch checks if downstream can handle dmabuf, by introspecting the
11375 shared GL context. If the GL context is EGL/GLES2 and have the extension
11376 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11377 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11379 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11381 * gst/vaapi/gstvaapivideomemory.c:
11382 vaapivideomemory: release proxy's data if downstream
11383 The surface created for downstream is going to be filled by VAAPI
11384 elements. So, the driver needs write access on that surface.
11385 This patch releases the derived image held by the proxy, thus the
11386 surface is unmarked as busy.
11387 This is how it has to be done as discussed on libva mailing list.
11388 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11390 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11392 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11393 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11394 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11395 Adds an API to request the user's data release in the buffer proxy.
11396 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11398 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11400 * gst/vaapi/gstvaapipluginbase.c:
11401 * gst/vaapi/gstvaapivideomemory.c:
11402 * gst/vaapi/gstvaapivideomemory.h:
11403 vaapivideomemory: add direction to dmabuf allocator
11404 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11405 we later could do different thing when the allocated memory is for
11406 upstream or dowstream, as required by VA-API.
11407 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11409 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11411 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11412 libs: utils: return NULL if failed to get surface formats
11413 Thus, when generating the allowed caps, the element will throw a
11414 warning and it will use its caps template.
11415 This behavior might be a bug in the VA driver.
11416 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11418 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11420 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11421 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11422 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11424 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11426 * gst/vaapi/gstvaapipostproc.c:
11427 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11428 A value of width/height property should be set to out caps,
11429 if negotiation had been going properly.
11430 So we can use srcpad_info when making decision of scaling.
11431 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11433 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11435 * gst/vaapi/gstvaapidecode.c:
11436 * gst/vaapi/gstvaapiencode.c:
11437 * gst/vaapi/gstvaapipluginutil.c:
11438 * gst/vaapi/gstvaapipluginutil.h:
11439 * gst/vaapi/gstvaapipostproc.c:
11440 * gst/vaapi/gstvaapisink.c:
11441 plugins: handle GL params through context query
11442 If the element instantiated the GL display and context, they should
11443 handle them too through the context query.
11444 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11446 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11448 * gst/vaapi/gstvaapipluginbase.c:
11449 * gst/vaapi/gstvaapipluginbase.h:
11450 * gst/vaapi/gstvaapipluginutil.c:
11451 plugins: create a GL context on certain conditions
11452 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11453 then VAAPI elements look for a local GstGLContext in gst context
11454 sharing mechanism ('gst.gl.local.context').
11455 If this GstGLContext not found either then, only the VAAPI decoders
11456 and the VAAPI post-processor, will try to instantiate a new
11458 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11459 be instantiated with the platform, API and windowing specified by the
11460 instantiated GstGLContext.
11461 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11462 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11464 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11466 * gst/vaapi/gstvaapivideocontext.c:
11467 vaapivideocontext: context type can be rejected
11468 Instead of calling g_return_val_if_fail() to check the context type, we
11469 should use a normal conditional, since it is possible that other context types
11470 can arrive and try to be assigned. Otherwise a critical log message is
11472 This happens when we use playbin3 with vaapipostproc as video-filter.
11473 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11475 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11477 * gst/vaapi/gstvaapipostprocutil.c:
11478 vaapipostproc: use sink caps par if not requested
11479 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11480 is not already set.
11481 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11483 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11485 * gst/vaapi/gstvaapipostproc.c:
11486 * gst/vaapi/gstvaapipostprocutil.c:
11487 vaapipostproc: set interlace mode
11488 if the vaapipostproc is configured to not do deinterlacing, the
11489 interlace-mode in the src caps should be the same as the input caps.
11490 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11492 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11494 * gst/vaapi/gstvaapisink.c:
11495 vaapisink: fix gcc compiler warning
11496 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11498 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11500 * gst/vaapi/gstvaapisink.c:
11501 vaapisink: don't use member variable outside lock
11502 Thus a race condition segfault is avoided.
11503 Original-patch-by: Matt Staples <staples255@gmail.com>
11504 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11506 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11508 * gst/vaapi/gstvaapipluginbase.c:
11509 * gst/vaapi/gstvaapipostproc.c:
11510 plugins: avoid log flood when activating pool
11511 Every time a new buffer is allocated, the pool is activated. This
11512 doesn't impact in performance since gst_buffer_pool_set_active()
11513 checks the current state of the pool. Nonetheless it logs out a
11514 message if the state is the same, and it floods the logging subsystem
11516 To avoid this log flooding first the pool state is checked before
11519 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11521 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11522 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11523 * gst/vaapi/gstvaapidecode.c:
11524 * gst/vaapi/gstvaapidecode.h:
11525 vaapidecode: update internal decoder sink caps
11526 When a new sink caps arrive the internal decoder state is updated
11527 and, if it is, request a downstream renegotiation.
11528 Previously, when new caps arrived the whole decoder where destroyed
11529 and recreated. Now, if the caps are compatible or has the same codec,
11530 the internal decoder is kept, but a downstream renegotiation is
11532 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11534 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11537 Back to development
11539 === release 1.11.1 ===
11541 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11546 * gstreamer-vaapi.doap:
11549 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11551 * gst-libs/gst/vaapi/gstvaapiutils.c:
11552 vaapi: bump ifdef to API 0.40.0 for log redirect
11553 vaSetInfoCallback() is not released yet. It is going to appear in
11556 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11558 * gst-libs/gst/vaapi/gstvaapiutils.c:
11559 vaapiutils: Fix compilation with latest and previous libva releases
11560 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11563 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11565 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11566 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11567 * gst-libs/gst/vaapi/gstvaapiutils.c:
11568 * gst-libs/gst/vaapi/gstvaapiutils.h:
11569 libs: display: redirect logging at initialize
11570 Redirect libva's logs to GStreamer logging mechanism. This is
11571 particularly useful when VA is initialized, because it always logs
11572 out the drivers details.
11573 In order to achieve this a new helper function was added as a wrapper
11574 for the vaInitialize() function.
11575 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11577 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11579 * gst/vaapi/gstvaapipluginbase.c:
11580 plugins: provide at least two buffers in sink pool
11581 Adds two buffers as the default value of minimum buffer.
11582 This would be used when creating and proposing vaapi bufferpool for
11583 sink pad, hence the upstream element will keep, at least, these two
11585 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11586 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11588 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11590 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11591 libs: decoder: h264: don't update cloned attributes
11592 If the frame is a cloned picture, its PTS comes from its parent
11593 picture. In addition, the base decoder doesn't set a valid PTS to
11594 the frame corresponding to the cloned picture.
11595 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11597 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11599 * gst/vaapi/gstvaapivideomemory.c:
11600 vaapivideomemory: check for display
11601 This patch fixes the check of display, rather than check for the
11602 meta, which it is known it exists.
11604 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11606 * gst/vaapi/gstvaapivideomemory.c:
11607 * gst/vaapi/gstvaapivideomemory.h:
11608 vaapivideomemory: rename dmabuf allocator parameters
11609 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11610 'surface_alloc_flags' respectively. The purpose of this change is
11611 to auto-document those parameters.
11612 Also, aligned to this patch, the local 'alloc_info' variable was
11613 renamed as 'surface_info', because it stores the possible surface's
11614 video info, not the allocate one.
11616 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11618 * gst/vaapi/gstvaapivideomemory.c:
11619 * gst/vaapi/gstvaapivideomemory.h:
11620 vaapivideomemory: rename vip to alloc_info parameter
11621 In order to auto-document the code, this patch renames the 'vip'
11622 parameter in the functions related to gst_vaapi_video_allocator_new ()
11623 to 'alloc_info', since it declares the allocation video info from
11624 the vaapi buffer pool.
11626 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11628 * gst/vaapi/gstvaapivideomemory.c:
11629 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11630 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11631 the video format string.
11633 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11635 * gst/vaapi/gstvaapivideomemory.c:
11636 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11637 gst_vaapi_surface_new_with_format() is a wrapper for
11638 gst_vaapi_surface_new_full (). In this case, the former is simpler
11639 than the first. This patch changes that.
11641 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11643 * gst/vaapi/gstvaapipostproc.c:
11644 vaapipostproc: notify if src pad caps changed
11645 If src pad caps have changed, it needs to notify it downstream. In
11646 addition, do not set passthrough if they have changed.
11647 Otherwise, transform sometimes starts processing before caps change.
11648 The passthrough value will be set in fixate later in this case.
11649 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11651 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11653 * gst/vaapi/gstvaapidecodebin.c:
11654 vaapidecodebin: capsfilter to optimize negotiation
11655 Add a capsfilter forcing the caps
11656 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11657 queue and the vaapipostproc so no renegotiation is required.
11658 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11660 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11662 * gst/vaapi/gstvaapivideomemory.c:
11663 vaapivideomemory: fail surface/image configuration
11664 To detect and handle errors during allocator_configure_surface_info()
11665 and allocator_conigure_image_info().
11666 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11667 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11669 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11671 * gst/vaapi/gstvaapisink.c:
11672 vaapisink: ensures raw caps at start()
11673 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11674 race conditions at get_caps(), especially with multiple src elements.
11675 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11677 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11679 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11680 libs: surface: fix error handling code style
11682 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11684 * gst/vaapi/gstvaapivideomemory.c:
11685 vaapivideomemory: add gst_video_info_update_from_surface()
11686 With this function is possible to refactor and remove duplicated code
11687 between dmabuf configuration and direct rendering/uploading
11690 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11692 * gst/vaapi/gstvaapivideomemory.c:
11693 vaapivideomemory: no log object at initialization
11694 When an instance of GstVaapiVideoAllocator fails at initializing, the
11695 log message should not include the allocator's object, because it is
11696 going to be unrefed.
11698 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11700 * gst/vaapi/gstvaapidecode.c:
11701 vaapidecode: lock stream when setting caps
11703 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11705 * gst/vaapi/gstvaapidecode.c:
11706 Revert "vaapidecode: implement negotiate() vmethod"
11707 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11708 videodecode's negotiate() vmethod is also called when events arrive,
11709 but this would mean that the proper configuration of sink pad might
11710 not be complete, thus we should not update the src pad.
11711 Let's keep the old non-vmethod negotitate().
11713 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11715 * gst/vaapi/gstvaapi.c:
11716 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11717 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11719 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
11721 * gst/vaapi/gstvaapiencode.c:
11722 * gst/vaapi/gstvaapiencode.h:
11723 vaapiencode: get surface formats in get_caps()
11724 Query for the supported surface formats in config at get_caps() vmethod.
11725 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11726 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11728 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
11730 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11731 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11732 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11733 This method will return the valid surface formats in the current
11734 config. If the are no VAConfig it is created with the information
11736 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11737 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11739 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
11741 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11742 libs: encoder: split set_context_info()
11743 Split set_context_info() adding init_context_info() which only
11744 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11745 required for VAConfig.
11746 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11747 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11749 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
11751 * gst-libs/gst/vaapi/gstvaapicontext.c:
11752 libs: context: skip VAContext if no frame size
11753 If GstVaapiContextInfo has just initial information, without frame's
11754 width and height, skip the creation of the VAContext, just keep the
11756 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11757 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11759 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11761 * gst-libs/gst/vaapi/gstvaapicontext.c:
11762 libs: context: split context_create()
11763 Split the funcion context_create() into context_create() and
11765 Decoupling VAConfig and VAContext during context creation, we could
11766 query the VAConfig for the supported surface's formats without creating
11768 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11770 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11772 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11773 libs: drm: find render node in hybrid system
11774 Originally the drm backend only tried to open the first render node
11775 found. But in hybrid system this first render node might not support
11776 VA-API (propietary Nvidia driver, for example).
11777 This patch tries all the available nodes until a finding one with a
11778 VA-API supported driver.
11779 https://bugzilla.gnome.org/show_bug.cgi?id=774811
11780 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11781 Reza Razavi <reza@userful.com>
11783 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11785 * gst/vaapi/gstvaapivideomemory.c:
11786 vaapivideomemory: refactor code for readability
11787 Added the inlined function allocator_configure_pools() moving out code
11788 from gst_vaapi_video_allocator_new() to make clear that it is a
11789 post-initalization of the object.
11791 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11793 * gst/vaapi/gstvaapivideomemory.c:
11794 vaapivideomemory: log error if not VA image
11795 Log an error message if the test image for surface downloading
11796 cannot be allocated or mapped.
11798 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11800 * gst/vaapi/gstvaapivideomemory.c:
11801 vaapivideomemory: remove unused macros
11802 These macros are not used. Let us remove them.
11804 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11806 * gst/vaapi/gstvaapivideomemory.c:
11807 * gst/vaapi/gstvaapivideomemory.h:
11808 vaapivideomemory: rename video for allocation_info
11809 Since video_info stores the GstVideoInfo of the allocation caps,
11810 it is clear if we rename it as allocation_info, to distinguish it
11811 later from negotiation_info.
11813 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11815 * gst/vaapi/gstvaapivideomemory.c:
11816 * gst/vaapi/gstvaapivideomemory.h:
11817 vaapivideomemory: add real GstVaapiDmaBufAllocator
11818 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11819 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11820 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11821 from GstDmaBufAllocator.
11822 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11823 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11825 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
11827 * gst/vaapi/gstvaapivideomemory.c:
11828 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11829 Add a helper function to initialize the gst_debug_vaapivideomemory,
11830 to use it either by the GstVaapiVideoAllocatorClass or
11831 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11832 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11833 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11835 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
11837 * gst/vaapi/gstvaapiencode.c:
11838 vaapiencode: release internal encoder at stop()
11839 As the internal encoder is created at start(), let's release it at
11840 stop() vmethod, to be consistent.
11841 gst_vaapiencode_destroy() is called since it also resets the input and
11842 output states, which is something that the base class does internally
11843 after calling stop() vmethod.
11844 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11845 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11847 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
11850 Automatic update of common submodule
11851 From f49c55e to 39ac2f5
11853 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
11855 * gst/vaapi/gstvaapiencode.c:
11856 vaapiencode: call ensure_encoder() at start()
11857 Currently, specific encoder is created during set_format(). This might
11858 lead to race condition when creating profiles with multiple encoders.
11859 This patch moves ensure_encoder() call to start() vmethod to ensure
11860 avoiding the race condition.
11861 https://bugzilla.gnome.org/show_bug.cgi?id=773546
11863 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11865 * gst/vaapi/gstvaapidecodebin.c:
11866 vaapidecodebin: bring back dynamic configuration
11867 In commit ca0c3fd6 we remove the dynamic configuration if the bin
11868 because we assumed that the bin will be always static as it is
11870 Nonetheless we were wrong, because it is possible to request, with a
11871 property, to avoid the use of the post-processor.
11872 Since we want to add a way to disable the post-processor through
11873 environment variables, this remove feature is required again.
11874 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11875 postprocessor inside of the vaapidecodebin is disabled, then
11876 vaapidecodebin is an alias of the old vaapidecode.
11877 https://bugzilla.gnome.org/show_bug.cgi?id=775041
11879 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11881 * gst/vaapi/gstvaapidecode.c:
11882 vaapidecode: implement negotiate() vmethod
11883 Instead of decorating the negotiate() method, let us override it,
11884 so the stream is locked while called.
11885 https://bugzilla.gnome.org/show_bug.cgi?id=775040
11887 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
11890 common: use https protocol for common submodule
11891 https://bugzilla.gnome.org/show_bug.cgi?id=775110
11893 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
11895 * gst-libs/gst/vaapi/Makefile.am:
11896 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11897 In case libva-wayland has its headers not installed in default
11898 locations (like /usr/include), the build fails to include "wayland-client.h":
11899 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
11900 In file included from gstvaapidisplay_wayland.h:27:0,
11901 from gstvaapidisplay_egl.c:35:
11902 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11903 #include <wayland-client.h>
11904 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11905 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11906 for libva-wayland.pc in configure and use this in other places as well. It is thus only
11907 correct and consequent, to do it also at this spot.
11908 https://bugzilla.gnome.org/show_bug.cgi?id=773946
11910 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11912 * gst/vaapi/gstvaapivideocontext.c:
11913 vaapivideocontext: log a message if no bus
11914 Raise a warning if there is no bus when the element tries to post a
11917 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11919 * gst/vaapi/gstvaapisink.c:
11920 vaapisink: create display at open()
11921 Instead of creating the VA display before setting the bus to the
11922 element, it is created when the element is opened.
11923 Basically, this commit is a revert of
11924 5e5d62cac79754ba60057fc2516135aad8d7de35
11925 That was done when the GStreamer's context sharing was not mature
11926 enough as now. There is no reason to keep this hack.
11928 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11930 * gst/vaapi/gstvaapidecode.c:
11931 vaapidecode: don't add video crop meta
11932 Since the differentiation of negotiation caps and allocation caps,
11933 there is no need to add a video crop meta with the negotiation caps.
11934 Hence, removing it.
11935 https://bugzilla.gnome.org/show_bug.cgi?id=773948
11937 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11939 * gst/vaapi/gstvaapivideobuffer.c:
11940 * gst/vaapi/gstvaapivideometa.c:
11941 * gst/vaapi/gstvaapivideometa.h:
11942 remove the video converter from vaapi buffer meta
11943 Since all the video converter were deprecated in gstreamer-1.2, we don't need
11944 to handle them anymore in the vaapi's buffer meta.
11945 This patch removes its usage and the buffer meta's API for that.
11946 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11948 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11950 * gst/vaapi/gstvaapipluginbase.c:
11951 plugins: destroy source pad allocator and pool
11952 First, deactivate source pad pool when the out caps change, and if so,
11953 destroy texture map, the source pad allocator and pool only if the
11954 new caps are different from the ones already set.
11956 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11958 * gst/vaapi/gstvaapipluginbase.c:
11959 plugins: don't destroy sink pad allocator
11960 Don't destroy sink pad allocator at _set_caps() because it will be done at
11961 ensure_sinkpad_buffer_pool() if it is required.
11963 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11965 * gst/vaapi/gstvaapipluginbase.c:
11966 plugins: first validate the out caps
11967 When calling _set_caps() first validate the out caps before doing
11970 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11972 * gst/vaapi/gstvaapidecode.c:
11973 vaapidecode: negotiate after destroying allocator
11974 This is related with bug 758907 when no vaapipostproc is used (no
11975 vaapidecodebin). In order to negotiate downstream we need to destroy
11976 the source pad allocator, otherwise the same allocated buffers are
11977 used, failing the mapping.
11979 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11981 * gst/vaapi/gstvaapivideomemory.c:
11982 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11983 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11984 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
11986 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11988 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11990 * gst/vaapi/gstvaapipluginbase.c:
11991 plugins: update the src pad allocator video info
11992 Update the size, stride and offset of the source pad allocator video
11993 info, so the pool could set the correct GstVideoMeta
11994 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11996 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11998 * gst/vaapi/gstvaapivideomemory.c:
11999 vaapivideomemory: add missing documentation
12000 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12002 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12004 * gst/vaapi/gstvaapipluginbase.c:
12005 plugins: use early return without goto
12006 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12008 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12010 * gst/vaapi/gstvaapipluginbase.c:
12011 * gst/vaapi/gstvaapivideomemory.c:
12012 * gst/vaapi/gstvaapivideomemory.h:
12013 plugins: add allocator to allocation query
12014 This patch adds the created allocator to the allocation query either
12015 in decide_allocation() and propose_allocation() vmehtods.
12016 With it, there's no need to set the modified allocator's size in the
12017 pool configuration.
12018 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12020 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
12022 * gst/vaapi/gstvaapivideobufferpool.c:
12023 vaapivideobufferpool: set correct buffer size
12024 We should set the correct buffer size when we are configuring the pool,
12025 otherwise the buffer will be discarded when it returns to the pool.
12026 Indeed when the ref-count of a buffer reaches zero, its pool will queue
12027 it back (and ref it) if, and only if, the buffer size matches the
12028 configured buffer size on the pool.
12029 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
12030 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12032 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12034 * gst/vaapi/gstvaapivideomemory.c:
12035 vaapivideomemory: check for memory allocator
12036 When calling gst_vaapi_video_memory_copy() the allocator of the memory
12037 to copy should be allocated by the vaapi allocator.
12038 This patch does this verification.
12040 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12042 * gst/vaapi/gstvaapivideomemory.c:
12043 vaapivideomemory: code style fixes
12044 A cosmetic commit for enhance readability of the casts and method
12047 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12049 * gst/vaapi/gstvaapivideomemory.c:
12050 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
12051 Instead of having a gst_vaapi_video_memory_free() that is only going to
12052 be called by gst_vaapi_video_allocator_free(), let's just remove the first
12053 and merged into the second.
12055 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12057 * gst/vaapi/gstvaapivideomemory.c:
12058 vaapivideomemory: avoid virtual methods casting
12059 Use the expected virtual method signatures for readability.
12061 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12063 * gst/vaapi/gstvaapivideomemory.c:
12064 vaapivideomemory: remove unimplemented methods
12065 Remove unimplemented method for allocator mem_share() and mem_is_span().
12067 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12069 * gst/vaapi/gstvaapivideomemory.c:
12070 vaapivideomemory: fail if frame map can't get plane
12071 If map() vmethod in GstVideMeta cannot get the plane data, return false,
12072 thus the caller will not try to read invalid memory.
12073 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12075 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12077 * gst/vaapi/gstvaapivideomemory.c:
12078 * gst/vaapi/gstvaapivideomemory.h:
12079 vaapivideomemory: lock map and unmap operations
12080 In order to avoid race condition when two threads call map/unmap the same
12081 VA surface, this patch mutex these operations.
12082 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12084 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12086 * gst/vaapi/gstvaapivideomemory.c:
12087 vaapivideomemory: refactor vaapi memory unmapping
12088 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
12089 gst_vaapi_video_memory_unmap() when unmapping.
12090 This patch refactors both methods adding the common function
12091 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
12092 is correctly reset.
12093 Additionally, only when mapping flag has the WRITE bit, it set the image as
12094 current, which was done in gst_video_meta_map_vaapi_memory() but no in
12095 gst_vaapi_video_memory_map().
12096 In order to make this, the mapping flags were required, so instead of
12097 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
12098 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12100 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12102 * gst/vaapi/gstvaapivideomemory.c:
12103 vaapivideomemory: refactor vaapi memory mapping
12104 There were duplicated code in gst_video_meta_map_vaapi_memory() and
12105 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
12106 This patch refactors both methods adding the common function
12107 map_vaapi_memory().
12108 Additionally, only when flag has the READ bit it calls
12109 ensure_images_is_current(), which was done in
12110 gst_video_meta_map_vaapi_memory() but no in
12111 gst_vaapi_video_memory_map().
12112 https://bugzilla.gnome.org/show_bug.cgi?id=772151
12114 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12116 * gst/vaapi/gstvaapidecode.c:
12117 vaapidecode: unref allowed_sinkpad_caps at close()
12118 The variable member allowed_sinkpad_caps is constructed querying the
12119 current VA display. Bearing that in mind, the variable shall be freed
12120 when the VA display changes or is removed.
12121 This patch moves the freeing of allowed_sinkpad_caps to close(), when
12122 the VA display is freed.
12124 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12126 * gst/vaapi/gstvaapisink.c:
12127 vaapisink: finish event thread at stop()
12128 The thread that handles window's events should be finished during
12129 pipeline's shutdown, otherwise it will remain alive during pipeline
12130 re-activation, leading to unexpected problems.
12131 This patch fixes failures of intensive_state_change scenario of
12133 https://bugzilla.gnome.org/show_bug.cgi?id=774241
12135 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12137 * gst/vaapi/gstvaapipostproc.c:
12138 vaapipostproc: enhance debug message
12139 "gst_pad_push" is not a good description of the event.
12141 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12143 * gst/vaapi/gstvaapipostproc.c:
12144 postproc: honor gst_pad_push() return value
12145 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12146 deadlock during seek.
12147 This patch returns the same error of gst_pad_push() and log out the
12149 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12151 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12153 * gst/vaapi/gstvaapidecode.c:
12154 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12155 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12156 compiled with out EGL/GLX support: it shall not support
12157 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12158 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12159 allowed src caps for vaapedecode if EGL/GLX.
12161 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12163 * gst/vaapi/gstvaapivideomemory.c:
12164 vaapivideomemory: increment map counter only if succeeded
12165 Previously the frame map counter increased independently if the map succeeded
12166 or not. This leaded to critical messages and crashes if the frame was unable
12167 to be mapped, but the counter increased.
12168 This patch increases the map counter only if the map operation occurred.
12169 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12171 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12173 * gst/vaapi/gstvaapipluginbase.c:
12174 plugins: set negotiation caps in src allocator
12175 When the allocator is created, it stores the allocation caps. But sometimes
12176 the "allocation caps" may be different from the "negotiation caps".
12177 In this case, the allocator should store the negotiation caps since they
12178 are the ones used for frame mapping with GstVideoMeta.
12179 When vaapispostproc is used, this is not a problem since the element is assume
12180 to resize. But when using a vaapi decoder only, with a software renderer, it
12181 fails in this case.
12182 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12184 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12186 * gst/vaapi/gstvaapidecode.c:
12187 * gst/vaapi/gstvaapidecode.h:
12188 vaapidecode: generate source pad caps
12189 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12190 raw formats, so, the src caps can negotiate the exact caps that the context
12193 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12195 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12196 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12197 libs: decoder: add _get_surface_formats()
12198 This function exposes the available formats of the surfaces in the the current
12199 context to the plugins.
12201 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12203 * gst-libs/gst/vaapi/gstvaapicontext.c:
12204 * gst-libs/gst/vaapi/gstvaapicontext.h:
12205 libs: context: ensure context formats
12206 This patch ensures to get the formats, as filter does, available in the
12207 decoder / encoder context.
12208 The context fills up the array as soon it is created, otherwise the pipeline
12209 could get stalled (perhaps this is a bug in my HSW backend).
12210 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12212 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12214 * gst-libs/gst/vaapi/gstvaapifilter.c:
12215 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12216 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12217 libs: move get_surface_formats to utils_core
12218 The query of all the supported formats for a VA config were only used by the
12219 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12220 negotiate a suitable raw format with downstream, we need to query these
12221 formats against the decoder's config.
12222 This patch is the first step: moves the code in filter's ensure_image() to a
12223 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12224 shared later by the decoder.
12225 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12227 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12229 * gst/vaapi/gstvaapipluginbase.c:
12230 plugins: remove set_sinkpad_dmabuf_allocator()
12231 Since when the sink pad allocator is created, it is decided if the required
12232 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12235 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12237 * gst/vaapi/gstvaapipluginbase.c:
12238 plugins: ensure display when getting raw caps
12239 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12240 meanwhile it is transforming caps. The problem is that stop() calls
12241 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12242 the va display is used in tranform_caps() when it is extracting the possible
12243 format conversions. This display disappearing generates warning messages.
12244 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12245 hence it doesn't go away meanwhile it is used, even if the
12246 gst_vaapi_plugin_base_close() is called in other thread.
12247 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12249 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12251 * gst/vaapi/gstvaapiencode_h264.c:
12252 * gst/vaapi/gstvaapiencode_h265.c:
12253 plugins: fix code style for errors
12255 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12257 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12258 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12259 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12260 * gst-libs/gst/vaapi/gstvaapicontext.c:
12261 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12262 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12263 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12264 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12265 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12266 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12267 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12268 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12269 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12270 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12271 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12272 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12273 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12274 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12275 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12276 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12277 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12278 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12279 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12280 * gst-libs/gst/vaapi/gstvaapifilter.c:
12281 * gst-libs/gst/vaapi/gstvaapiimage.c:
12282 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12283 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12284 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12285 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12286 * gst-libs/gst/vaapi/gstvaapisurface.c:
12287 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12288 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12289 * gst-libs/gst/vaapi/gstvaapitexture.c:
12290 * gst-libs/gst/vaapi/gstvaapiutils.c:
12291 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12292 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12293 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12294 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12295 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12296 libs: fix code style for errors
12298 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12300 * gst/vaapi/gstvaapipluginbase.c:
12301 * gst/vaapi/gstvaapivideocontext.c:
12302 plugins: update GstGL deprecated symbol
12303 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12305 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12307 * gst/vaapi/gstvaapipluginbase.c:
12308 plugins: direct render when raw video
12309 Enable the direct rendering with linear surfaces if the negotiated src caps
12310 are video/x-raw without features.
12311 Pass also the caps, since they are needed to know the requested caps features.
12313 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12315 * gst/vaapi/gstvaapipluginbase.c:
12316 plugins: move src allocator error to instantiator
12317 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12318 into the ensure_srcpad_allocator() from the caller,
12319 gst_vaapi_plugin_base_decide_allocation()
12321 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12323 * gst/vaapi/gstvaapipluginbase.c:
12324 plugins: enable direct upload if raw video
12325 Enable the direct upload with linear surfaces if the negotiated sink caps are
12326 video/x-raw without features.
12328 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12330 * gst/vaapi/gstvaapipluginutil.c:
12331 * gst/vaapi/gstvaapipluginutil.h:
12332 pluginutil: add gst_caps_is_video_raw()
12334 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12336 * gst/vaapi/gstvaapipluginbase.c:
12337 plugins: receive caps in ensure_sinkpad_allocator()
12338 Instead of receiving the GstVideoInfo structure as parameter, get the original
12339 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12340 which allocator instantiate.
12342 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12344 * gst/vaapi/gstvaapivideomemory.c:
12345 vaapivideomemory: destroy derived image at unmap
12346 If the allocator was configured to use direct upload or rendering, the
12347 generated derived image created at mapping needs to be destroyed after
12348 unmapping, because, in order to process the surface, it should not be marked
12349 as "busy" by the driver.
12351 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12353 * gst/vaapi/gstvaapivideomemory.c:
12354 vaapivideomemory: enhance logs for direct modes
12355 Print, conditionally, only the enabled direct mode.
12357 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12359 * gst/vaapi/gstvaapivideomemory.c:
12360 * gst/vaapi/gstvaapivideomemory.h:
12361 vaapivideomemory: add direct upload flag
12362 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12363 GstVaapiVideoMemory.
12364 It still doesn't apply any functional change.
12366 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12368 * gst/vaapi/gstvaapipluginbase.c:
12369 * gst/vaapi/gstvaapivideomemory.c:
12370 * gst/vaapi/gstvaapivideomemory.h:
12371 vaapivideomemory: set direct rendering at run-time
12372 The way to experiment with the direct rendering is through and internal
12373 compiler pre-processor flag.
12374 The current change set enables a way to specified at run-time, as a flag
12375 passed to the allocator at instanciation time.
12377 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12379 * gst/vaapi/gstvaapivideomemory.c:
12380 vaapivideomemory: log in perf category when copy
12381 Log in performance category when the derive image handling fails, falling back
12384 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12386 * gst/vaapi/gstvaapivideomemory.c:
12387 vaapivideomemory: error log is derive image fails
12388 Instead of a silently failure of the derive image, this patch log an error
12389 message according to the failure.
12391 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12393 * gst/vaapi/gstvaapivideomemory.c:
12394 vaapivideomemory: store surface alloc flags in qdata
12395 For sake of consistency, we should add the requested surface allocation flags
12396 to the object's qdata structure.
12398 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12400 * gst/vaapi/gstvaapivideomemory.c:
12401 vaapivideomemory: category init when object define
12402 Move the Gstreamer debug category initialize to the GObject definition.
12404 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12406 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12407 libs: vaapitexturemap: trivial code-style fix
12409 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12411 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12412 libs: display: egl: avoid recreate native display
12413 Instead of passing the native descriptor of the display, just pass the received
12414 GstVaapiDisplay and reuse it.
12416 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12418 * gst/vaapi/gstvaapipluginbase.c:
12419 plugins: log the GstVaapiDisplay name
12420 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12421 name. Log it instead of the memory address.
12423 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12425 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12426 libs: window: egl: pass native va display
12427 When creating a GstVaapiWindowEGL, it also creates native window by its own
12428 native display. It should pass the native display, either X11 or Wayland.
12429 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12431 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12433 * gst-libs/gst/vaapi/gstvaapidebug.h:
12434 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12435 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12436 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12437 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12438 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12439 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12440 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12441 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12442 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12443 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12444 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12445 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12446 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12447 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12448 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12449 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12450 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12451 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12452 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12453 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12454 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12455 * gst/vaapi/gstvaapivideocontext.c:
12456 libs: display: GstVaapiDisplay as GstObject descendant
12457 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12458 instead of GstVaapiMiniObject. In this way we can use all the available
12459 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12460 In addition, a new debug category for GstVaapiDisplay is created to make it
12461 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12462 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12463 This patch is a step forward to expose GstVaapiDisplay for users in a future
12465 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12466 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12468 === release 1.11.0 ===
12470 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12473 Back to development
12475 === release 1.10.0 ===
12477 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12482 * gstreamer-vaapi.doap:
12485 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12487 * gst/vaapi/gstvaapidecodebin.c:
12488 vaapidecodebin: resurrect disable-vpp property
12489 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12491 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12493 * gst/vaapi/gstvaapidecodebin.c:
12494 vaapidecodebin: name the internal queue
12495 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12497 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12499 * gst/vaapi/gstvaapidecodebin.c:
12500 * gst/vaapi/gstvaapidecodebin.h:
12501 vaapidecodebin: remove unused variables
12502 Since vaapipostproc is only registered if the driver supports it, all the
12503 support for dynamic loading were removed. Though some leftovers remained.
12504 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12506 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12508 * docs/plugins/Makefile.am:
12509 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12510 * docs/plugins/running.xml:
12511 docs: document environment variables
12512 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12514 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12516 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12517 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12518 * gst/vaapi/Makefile.am:
12519 * gst/vaapi/gstvaapidecode.c:
12520 * gst/vaapi/gstvaapidecodebin.c:
12521 * gst/vaapi/gstvaapidecodedoc.c:
12522 docs: replace vaapidecode with each codec
12523 In the spirit of the codec split, this patch removes the documentation of
12524 vaapidecode and adds a page per each possible decoder.
12525 Nonetheless, only those available in the compilation system are going to be
12526 instrospected, because the rest are not registered.
12528 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12530 * gst/vaapi/gstvaapipluginutil.c:
12531 * gst/vaapi/gstvaapivideobuffer.c:
12532 * gst/vaapi/gstvaapivideometa.c:
12533 docs: add missing long descriptions
12535 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12537 * gst/vaapi/gstvaapipostproc.c:
12538 vaapipostproc: use GST_*_OBJECT when possible
12539 Since we can have several vaapipostproc operating in a pipeline, it is useful
12540 to know which one is generating the logging message.
12541 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12543 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12545 * gst/vaapi/gstvaapidecode.c:
12546 * gst/vaapi/gstvaapidecode.h:
12547 vaapidecode: rename member to allowed_sinkpad_caps
12548 vaapidecode has a member named allowed_caps, but this name is not enough
12549 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12550 No functional changes were included.
12551 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12553 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12555 * gst/vaapi/gstvaapiencode_h264.c:
12556 * gst/vaapi/gstvaapiencode_h265.c:
12557 * gst/vaapi/gstvaapisink.c:
12558 * gst/vaapi/gstvaapivideomemory.c:
12559 * gst/vaapi/gstvaapivideometa.c:
12560 * gst/vaapi/gstvaapivideometa_texture.c:
12561 plugins: fix code style for errors
12562 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12564 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12566 * gst/vaapi/gstvaapivideomemory.c:
12567 vaapivideomemory: comment style
12568 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12570 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12572 * gst/vaapi/gstvaapivideomemory.c:
12573 * gst/vaapi/gstvaapivideomemory.h:
12574 vaapivideomemory: rename input parameter
12575 In order to clarify the use of flag as input parameter, it is renamed to
12576 surface_alloc_flag, since it is used when creating a VA surface with certain
12578 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12580 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12582 * gst/vaapi/gstvaapidecode.c:
12583 vaapidecode: rename element description
12584 So encoders and decoders have similar descriptions.
12585 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12587 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12589 * gst/vaapi/gstvaapiencode_h264.c:
12590 * gst/vaapi/gstvaapiencode_h265.c:
12591 vaapiencode: h264, h265: rename codec name
12592 So encoder and decoders have the same codec name.
12593 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12595 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12597 * gst/vaapi/gstvaapipluginbase.c:
12598 plugins: simplify code
12599 Merge two lines of variable declarations.
12600 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12602 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12604 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12605 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12606 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12607 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12608 libs: minor correction for logical consistency
12609 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12610 use its methods, even though it doesn't change functionality.
12611 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12612 GstVaapiObject, hence its methods shall be used.
12613 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12615 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12617 * gst/vaapi/gstvaapivideomemory.c:
12618 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12619 In short GstFdMemory is configured to call close when using
12621 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12623 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12626 * gst-libs/gst/vaapi/Makefile.am:
12627 build: clean up the dlopen usage
12629 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12631 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12632 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12633 encoder: h264,h265: fix regression in offset count
12634 In commit dc35dafa a bug was introduced because I assumed that
12635 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12636 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12638 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12641 docs: update README
12643 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12645 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12646 libs: display: egl: remove unused header include
12647 The header gmodule.h is not used since the library dynamic loading for EGL
12648 display was removed.
12649 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12651 === release 1.9.90 ===
12653 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12659 * gstreamer-vaapi.doap:
12662 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12664 * gst/vaapi/gstvaapidecode.c:
12665 * gst/vaapi/gstvaapidecodebin.c:
12666 * gst/vaapi/gstvaapiencode_h264.c:
12667 * gst/vaapi/gstvaapiencode_h265.c:
12668 * gst/vaapi/gstvaapiencode_jpeg.c:
12669 * gst/vaapi/gstvaapiencode_mpeg2.c:
12670 * gst/vaapi/gstvaapiencode_vp8.c:
12671 * gst/vaapi/gstvaapipostproc.c:
12672 * gst/vaapi/gstvaapisink.c:
12673 vaapi: use new gst_element_class_add_static_pad_template()
12674 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12675 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12677 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12679 * gst/vaapi/gstvaapipluginbase.c:
12680 plugins: reset textures at negotiation/shutdown
12681 When caps reconfiguration is called, the new downstream frame size might be
12682 different. Thus, if the downstream caps change,the display's texture map is
12684 In addition, during pipeline shutdown, textures in texture map have to be
12685 released, since each one have a reference to the GstVaapiDisplay object, which
12686 is a dangerous circular reference.
12687 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12688 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12690 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12692 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12693 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12694 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12695 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12696 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12697 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12698 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12699 * gst/vaapi/gstvaapivideometa_texture.c:
12700 libs: display{egl,glx}: cache GstVaapiTextures
12701 instances when created and reuse
12702 This patch improves performance when glimagesink uploads a GL texture.
12703 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12704 instance of GstVaapiTextureMap, so our internal texture structure can be found
12705 by matching the GL texture id for each frame upload process, avoiding the
12706 internal texture structure creation and its following destruction.
12707 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12708 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12710 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
12712 * gst-libs/gst/vaapi/Makefile.am:
12713 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12714 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12715 libs: vaapitexturemap: implement GstVaapiTextureMap
12716 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12717 reused. Internally it is a hash table.
12718 Note that it is GstObject based rather than GstVaapiObject, as part of the future
12719 converstion to GstObject of most of the code.
12720 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12721 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12723 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12725 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12726 encoder: vp8: Increase the allocation size for coded buffer
12727 We are not getting enough compression for some streams and
12728 encoded frame end up with more size than allocated.
12729 Assuming a compression ratio of 4, which should be good enough
12730 for holding the frames.
12731 https://bugzilla.gnome.org/show_bug.cgi?id=771528
12733 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12735 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12736 encoder: vp9: Fix refresh frame flag setting
12737 While doing the mode-1 referece picture selection,
12738 the circular buffer logic was not correctly setting the
12739 refresh frame flags as per VP9 spec.
12740 Make sure refresh_flag[0] get updated correclty after
12741 each cycle of GST_VP9_REF_FRAMES.
12742 https://bugzilla.gnome.org/show_bug.cgi?id=771507
12744 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12746 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12747 vaapidecode: codec_data minimal size is 7
12748 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12749 stream, not in the codec_data, so the size of codec_data might be 7.
12750 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12751 https://bugzilla.gnome.org/show_bug.cgi?id=771441
12753 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12755 * gst/vaapi/gstvaapidecode.c:
12756 vaapidecode: reset decoder hard when set_format()
12757 set_format() is called by upstream when the stream capabilites has changed.
12758 Before, if the new stream is compatible with the old one the VA decoder was
12759 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12760 when the upstreamer parsers gets more details of the stream, such as the
12761 framerate. Hence, when the src caps are negotiates, the further sink caps
12762 updates are ignored.
12763 This patch forces the VA decoder destroying and recreation when set_format()
12765 https://bugzilla.gnome.org/show_bug.cgi?id=770921
12767 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
12770 configure: Depend on gstreamer 1.9.2.1
12772 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12774 * gst/vaapi/gstvaapivideomemory.c:
12775 Revert "vaapivideomemory: load VA Image when mapping to write"
12776 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12778 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
12781 Automatic update of common submodule
12782 From b18d820 to f980fd9
12784 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
12787 Automatic update of common submodule
12788 From f49c55e to b18d820
12790 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12792 * gst/vaapi/gstvaapipluginbase.c:
12793 plugins: set allocator's image size to sinkpad bufferpool
12794 Otherwise the buffer is always ditched by the bufferpool, losing performance.
12795 https://bugzilla.gnome.org/show_bug.cgi?id=771035
12797 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12799 * gst-libs/gst/vaapi/gstvaapisurface.c:
12800 libs: surface: ensure composite overlay is not bigger
12801 Ensure the composition overlay rectangle (subtitles) is not bigger than
12802 the surface where it is going to be composited and rendered.
12803 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12805 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
12807 * gst/vaapi/gstvaapivideomemory.c:
12808 vaapivideomemory: load VA Image when mapping to write
12809 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12810 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12812 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12814 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12816 * gst/vaapi/gstvaapidecode.c:
12817 vaapidecode: merge vc1 and wmv3 elements
12818 This patch merges vaapivc1dec and vaapiwmv3dec into a single
12819 vaapivc1dec. Also, removed the WMVA format, since it is not
12820 supported by libva.
12821 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12823 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12825 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12826 decoder: vc1: fails only on advanced profile
12827 In commit 2eb4394 the frame coding mode was verified for progressive
12828 regardless the profile. But the FCM is only valid in the advanced
12829 profile. This patch checks for the advanced profile before verifying FCM for
12831 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12833 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12835 * gst/vaapi/gstvaapi.c:
12836 vaapi: DISPLAY envvar as dependency
12837 In a multiple video cards system, a X11 environment may have different VA
12838 capabilities. This patch tracks the DISPLAY environment variable to
12839 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12840 https://bugzilla.gnome.org/show_bug.cgi?id=770357
12842 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12844 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12845 decoder: vc1: Fail only on actual interlaced frames
12846 In the earlier patch:
12847 f31d9f3 decoder: vc1: Print error on interlaced content
12848 Decoding would error out if the interlace flag was set in the
12849 sequence bdu. This isn't quite right because a video can have this
12850 flag set and yet not have any interlaced pictures.
12851 Here instead we error out when either parsing a field bdu or
12852 decoding a frame bdu which has fcm set to anything other than
12854 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12855 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12857 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
12860 Back to development
12862 === release 1.9.2 ===
12864 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
12869 * gstreamer-vaapi.doap:
12872 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
12874 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12875 decoder: vc1: Print error on interlaced content
12876 Interlaced video is as yet unsupported in the vc1 element. Print
12877 an error to make that more obvious.
12878 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12880 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12882 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12883 encoder: h264: fix C90 mixed declarations and code
12884 Commit 4259d1a introduced this compilation error. This patch fixes it.
12886 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12888 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12889 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12890 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12891 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12892 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12893 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12894 to avoid overflows, underflows and loss of precision.
12895 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12897 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12899 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12900 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12901 vaapiencode: h264,h265: validate fps numerator
12902 Validate that fps numerator is non-zero so it can be used to calculate
12903 the duration of the B frame.
12904 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12905 order to aviod overflows, underflows and loss of precision.
12906 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12908 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
12910 * gst/vaapi/gstvaapi.c:
12911 encoders: demote to RANK_NONE since not fit for autoplugging yet
12912 Encoders claim to support a whole bunch of input formats but then
12913 just error out if the format is not actually supported, even if
12914 there's a converter in front. This means they're not fit for
12915 autoplugging in encodebin or camerabin yet and therefore should
12916 not have a rank. People can still use them in custom pipelines.
12917 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12919 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12921 * gst/vaapi/gstvaapipluginbase.c:
12922 plugins: check dmabuf-import for sink pad allocator
12923 Check earlier if upstream video source has activated the dmabuf-import
12924 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12927 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12929 * gst/vaapi/gstvaapipluginbase.c:
12930 plugins: reset allocators if video info changed
12931 If the frame size or format, change, the allocators are reset, so a new ones
12932 can be created with the new video info.
12934 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12936 * gst/vaapi/gstvaapipluginbase.c:
12937 plugins: remove sink pad allocator if caps change
12938 If the negotiated sinkpad caps change, destroy the assignated allocator,
12939 because it is not valid anymore.
12941 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12943 * gst/vaapi/gstvaapipluginutil.c:
12944 * gst/vaapi/gstvaapipluginutil.h:
12945 pluginutil: const params to gst_video_info_changed()
12946 Since they are not modified, we should mark them as const.
12948 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12950 * gst/vaapi/gstvaapipluginbase.c:
12951 * gst/vaapi/gstvaapivideomemory.c:
12952 * gst/vaapi/gstvaapivideomemory.h:
12953 gstvaapivideomemory: allocator's image size getter
12954 Add the method gst_allocator_get_vaapi_image_size() for the
12955 GstVaapiVideoAllocator, which gets the size of the allocated images with the
12956 current video info.
12957 This method replaces the direct call to the allocator's image info when the
12958 pool is configured.
12960 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
12962 * gst/vaapi/gstvaapipluginbase.c:
12963 plugins: update buffer pool size with new allocator's image size
12964 Depends on media, video size is sometimes updated with new allocator.
12965 It leads to dismatch between bufferpool's set size and real allocated buffer size.
12966 In this case, it causes every buffer is freed during release in bufferpool,
12967 which should be reused. This affects performance.
12968 https://bugzilla.gnome.org/show_bug.cgi?id=769248
12970 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12973 configure: remove gmodule-2.0 EGL dependency
12974 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12975 thus the dependency to gmodule-2.0 is not mandatory anymore.
12977 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12980 configure: Fix non-fatal PKG_CHECK_MODULES invocations
12981 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12982 the package is missing, but action-if-not-found was given as an empty
12983 string which still causes the default action to run, which halts
12985 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12986 https://bugzilla.gnome.org/show_bug.cgi?id=769237
12988 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12990 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12991 libs: egl: remove dynamic library loading code
12992 Since the upstream of gstreamer-vaapi, the library is not a public shared
12993 object anymore. But the EGL support depended on this dynamic library, so the
12994 EGL support was broken.
12995 This patch removes the dynamic library loading code and instantiates the
12996 EGL display using either X11 or Wayland if available.
12997 https://bugzilla.gnome.org/show_bug.cgi?id=767203
12999 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13001 * gst/vaapi/gstvaapi.c:
13002 * gst/vaapi/gstvaapidecode.c:
13003 * gst/vaapi/gstvaapidecode.h:
13004 vaapidecode: register only the available decoders
13005 In order to register only the available decoders, this patch queries the
13006 created test VA display, which uses the currently used back-end (X11, Wayland,
13007 DRM, …) on the used display device.
13008 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13010 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13012 * gst/vaapi/gstvaapi.c:
13013 * gst/vaapi/gstvaapipluginutil.c:
13014 * gst/vaapi/gstvaapipluginutil.h:
13015 vaapi: register only the available encoders
13016 In order to register only the available encoders, this patch queries the
13017 created test VA display, which uses the currently used back-end (X11,
13018 Wayland, DRM, …) on the used display device.
13019 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13021 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13023 * gst/vaapi/gstvaapidecode.c:
13024 * gst/vaapi/gstvaapidecodebin.c:
13025 vaapidecode: split all the codecs
13026 Split the vaapidecode to all the supported codecs with the format
13028 vaapidecode is stil registered as a GObject type, but not as a
13029 GStreamer feature, so it can be used internally by vaapidecodebin without
13030 changing its code too much.
13031 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13033 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13035 * gst/vaapi/gstvaapidecodebin.c:
13036 vaapidecodebin: simplify the code
13037 Since the elements dependant of the VA video processor are now only registered
13038 if it is available, vaapidecodebin code can be simplified a lot, removing all
13039 the code required to check if the VA video processor was available.
13040 https://bugzilla.gnome.org/show_bug.cgi?id=768899
13042 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13044 * gst/vaapi/gstvaapidecode.c:
13045 vaapidecode: delay the GstVaapiDisplay instantiating
13046 Delay the GstVaapiDisplay instantiating until when changing the state from
13047 READY to PAUSE. In this way the element has more chances to find an already
13048 created GstVaapiDisplay, or a GL context, in the pipeline.
13049 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13051 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13053 * gst/vaapi/gstvaapipluginutil.c:
13054 pluginutil: set GLX display type
13055 The function gst_vaapi_create_display_from_gl_context() cretes a
13056 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
13057 when the GL platform was GLX, but a plain X11 VA display.
13058 This patch fixes that, by querying the GL platform earlier.
13059 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13061 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13063 * gst/vaapi/gstvaapipluginbase.c:
13064 * gst/vaapi/gstvaapivideocontext.c:
13065 * gst/vaapi/gstvaapivideocontext.h:
13066 plugins: add gst_vaapi_plugin_base_find_gl_context()
13067 Using the GstContext mechanism, it is possible to find if the pipeline
13068 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
13069 meta. This is interesting because we could negotiate system memory caps
13070 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
13071 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13073 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13075 * gst/vaapi/gstvaapipluginbase.c:
13076 * gst/vaapi/gstvaapipluginbase.h:
13077 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
13078 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
13081 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13083 * gst/vaapi/gstvaapipluginbase.h:
13084 plugins: remove common change_state() vmethod
13085 Remove the common change_state() vmethod for all the plugins, since no one is
13088 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13090 * gst/vaapi/gstvaapidecode.c:
13091 vaapidecode: remove change_state() vmethod
13092 Since the driver checkup is done at registering, there is no need to do it
13093 when changing the element state from NULL to READY. This patch remove this
13094 vmethod from vaapidecode.
13096 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13098 * gst/vaapi/gstvaapi.c:
13099 vaapi: register vaapipostproc only if supported
13100 Query the GstVaapiDisplay to know if the driver supports video
13101 postprocessing. If does, then register vaapipostproc and vaapidecodebin
13103 This patch will simplify the design of vaapidecodebin.
13104 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13106 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13108 * gst/vaapi/gstvaapi.c:
13109 vaapi: don't register if VA driver is unsupported
13110 Using the test VA display, the driver name is queried, and if it is not
13111 white-listed, the plugin rejects to register any element.
13112 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13114 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13116 * gst/vaapi/gstvaapipluginbase.c:
13117 * gst/vaapi/gstvaapipluginutil.c:
13118 * gst/vaapi/gstvaapipluginutil.h:
13119 plugins: add gst_vaapi_driver_is_whitelisted()
13120 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
13121 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
13122 when registering the plugin's feature set with the test VA display.
13123 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13125 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13127 * gst/vaapi/gstvaapi.c:
13128 vaapi: instantiate a VA display when registering
13129 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13130 features, if it fails, no gstreamer-vaapi element is registering.
13131 The purpose of this patch is to avoid a situation where the user has
13132 gstreamer-vaapi installed but their VA-API setup is not functional, which may
13133 lead to unexpected behavior.
13134 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13136 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13139 * gst/vaapi/gstvaapi.c:
13140 vaapi: declare external dependencies
13141 There are two main external dependencies that define the feature set of this
13142 plugin: a) the kernel and b) the VA driver
13143 This patch tracks both dependencies, if any of them change, GStreamer will
13144 re-inspect the plugin.
13145 The kernel is tracked through the device files /dev/dri/card*
13146 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13147 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13148 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13149 since they modify the driver lookup.
13150 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13151 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13153 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13155 * gst/vaapi/gstvaapidecode.c:
13156 vaapidecode: remove unneeded initializations
13157 GObject's memory is set to zero, so there is no need to initialize to zero or
13158 NULL it's class variables.
13160 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13162 * gst/vaapi/gstvaapipluginbase.h:
13163 plugins: remove undefined macros
13165 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13167 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13168 Revert "gstvaapisurface_drm: release image when done"
13169 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13170 372a03a9e38acbf435eb80bf31d9a9844069e504.
13171 While the dmabuf handle is exported, the derive image must exist, otherwise
13172 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13173 leading into a file descriptors leak.
13175 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13177 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13178 encoder: h265: fix code-style
13180 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13182 * gst/vaapi/gstvaapipostproc.c:
13183 vaapipostproc: update filters at color balance
13184 This is a fix for a regression of previous commit, which updates the filters
13185 only when the property is set, because it is also required to update the
13186 filter when the color balance interface change its values.
13188 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13190 * gst/vaapi/gstvaapipostproc.c:
13191 * gst/vaapi/gstvaapipostproc.h:
13192 vaapipostproc: make it enable/disable pass-through mode
13193 In case that sink caps and src caps are same, and no filtering parameter set,
13194 pass-through mode is enabled.
13195 If new filtering parameter is set during playback, it makes it reconfiguring,
13196 so that pass-through mode is changed
13197 In addition, updating filter is performed during reconfiguration, if needed.
13198 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13200 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13202 * gst-libs/gst/vaapi/gstvaapifilter.c:
13203 * gst-libs/gst/vaapi/gstvaapifilter.h:
13204 * gst/vaapi/gstvaapipostproc.c:
13205 vaapipostproc: checking and updating filter parameter only when it's set
13206 This patch is to avoid checking filter value at every frame.
13207 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13209 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13211 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13212 decoder: h265: handle the SEI NAL units included in codec_data
13213 The prefix/suffix SEI nal units can appear in codec_data too
13214 which weren't handled before. Parse these SEI headers to
13216 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13218 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13220 * docs/plugins/Makefile.am:
13221 build: doc: do not redefine MAINTAINERCLEANFILES
13222 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13223 overload it, the files should be added.
13225 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13227 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13228 encoder: h264: Fix MVC encode while enabling dct8x8
13229 Pack the transform_8x8_mode_flag and other necessary rbsp data
13230 in packed_pps header for MVC encode.
13231 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13233 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13235 * gst/vaapi/gstvaapisink.c:
13236 vaapisink: demote a debug message to trace
13237 Reduces noise when debugging.
13239 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13241 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13242 wayland: Error check before using cached wl_display
13243 A planar(or some other) buffer allocation may fail on the driver, then
13244 the wayland connection becomes invalid, not able to send request or
13245 receive any event. So we need to set up a new wayland connection if
13246 there's an error detected on the cached wl_display.
13247 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13248 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13250 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13253 Automatic update of common submodule
13254 From ac2f647 to f49c55e
13256 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13258 * gst/vaapi/gstvaapiencode.c:
13259 vaapiencode: demote a log to trace level
13260 Removes noise when debugging.
13262 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13264 * gst/vaapi/gstvaapiencode.c:
13265 vaapiencode: implement flush() vmethod
13266 In order to handle correctly seek and other operations, vaapiencode should
13267 flush all the remaining data from the encoder without pushing it downstream.
13268 This patch implements the flush() vmethod, only after of pausing the
13269 source pad task, and restarting it again after the flush stop.
13270 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13271 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13273 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13275 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13276 decoder: vc1: flush dpb only if opened
13277 Flush the decode picture buffer, if and only if, the decoder is
13278 started. Otherwise the dpb structure might be NULL.
13279 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13281 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13283 * gst/vaapi/gstvaapidecode.c:
13284 * gst/vaapi/gstvaapidecode.h:
13285 vaapidecode: drop non-keyframe in reverse playback
13286 To avoid surface-exhausted situation during reverse playback,
13287 drop frames except for key frame.
13288 Also, to avoid the corruption of the parser state, flush() vmethod
13289 doesn't destroy the VA decoder when playing in reverse.
13290 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13291 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13293 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13295 * gst/vaapi/gstvaapidecode.c:
13296 vaapidecode: unref output frame earlier
13297 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13298 unref that extra reference earlier making the code simpler to follow.
13299 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13301 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13303 * gst/vaapi/gstvaapidecode.c:
13304 vaapidecode: remove gst_vaapidecode_internal_flush()
13305 As gst_vaapidecode_finish() is the only callee of
13306 gst_vaapidecode_internal_flush(), it is better to inline it.
13307 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13309 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13311 * gst/vaapi/gstvaapidecode.c:
13312 vaapidecode: flush output adapter at drain()
13313 Calling drain() vmethod means "decode any data it can at this point, but that
13314 more data may arrive after". Hence, vaapidecode should check if there is data
13315 in the output adapter and process them, without destroying the decoded picture
13317 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13318 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13319 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13321 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13323 * gst/vaapi/gstvaapidecode.c:
13324 vaapidecode: call purge at flush()
13325 Calling flush() vmethod means "to flush all remaining data from the decoder
13326 without pushing it downstream".
13327 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13328 gst_video_decoder_have_frame() if there is still something in the input
13329 adapter, which may push buffers to downstream by calling handle_frame().
13330 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13331 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13332 decoder and releases all the rest of decoded frames.
13333 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13335 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13337 * tests/elements/Makefile.am:
13338 * tests/elements/test-vaapisink.c:
13339 test: elements: remove spurious linkage
13340 Element tests only need to link against gstreamer libraries.
13342 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13345 configure: Require GLib >= 2.40 like everywhere else
13347 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13350 Back to development
13352 === release 1.9.1 ===
13354 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13360 * gstreamer-vaapi.doap:
13363 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13365 * tests/elements/test-vaapisink.c:
13366 tests: elements: rotate orientation event
13368 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13371 * tests/Makefile.am:
13372 * tests/elements/Makefile.am:
13373 * tests/elements/test-vaapisink.c:
13374 tests: elements: Add testsuite for vaapisink
13375 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13377 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13379 * gst-libs/gst/vaapi/gstvaapitypes.h:
13380 * gst-libs/gst/vaapi/gstvaapivalue.c:
13381 * gst/vaapi/gstvaapisink.c:
13382 * gst/vaapi/gstvaapisink.h:
13383 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13384 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13386 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13388 * gst/vaapi/gstvaapipostproc.c:
13389 vaapipostproc: return caps template if no display
13390 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13391 be able to return the available raw caps handled by the VA display, but that
13392 only should happen when there a VA display. If there's none, the element
13393 should use the caps template.
13394 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13396 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13398 * gst/vaapi/gstvaapipostproc.c:
13399 vaapipostproc: don't require a vaapi display for all caps queries
13400 This delays the requirement of having a GstVaapiDisplay until later
13401 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13403 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13405 * gst-libs/gst/vaapi/gstvaapiutils.c:
13406 utils: report VP9 profiles
13407 Add VP9Profile0-3 name mapping.
13409 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13411 * gst/vaapi/gstvaapi.c:
13412 vaapi: nest includes under USE_ENCODER macro
13413 This is a missed changeset from commit 1c05c53, since also header includes
13416 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13418 * gst/vaapi/gstvaapi.c:
13419 vaapi: nest encoders under USE_ENCODER macro
13420 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13421 macro, it is clearer to nest them, showing explicitly the dependency relation.
13423 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13425 * gst/vaapi/gstvaapivideocontext.c:
13426 vaapivideocontext: check if query context is NULL
13427 Under certain conditions the element might receive a positive context query
13428 but without a context instance. This situation will lead to a segmentation
13429 fault when traversing the context list in the pipeline.
13430 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13432 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13434 * gst-libs/gst/vaapi/Makefile.am:
13435 * gst-libs/gst/vaapi/glibcompat.h:
13436 * gst-libs/gst/vaapi/sysdeps.h:
13437 remove unused glibcompat.h
13438 glibcompat.h is no longer doing anything. Remove it.
13439 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13440 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13442 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13444 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13445 encoder: h264: Use high profile by default
13446 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13447 by default. This will cause the default profile to be high instead
13448 of baseline. In most situations this is the right decision, and
13449 the profile can still be lowered in the case of caps restrictions.
13450 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13451 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13453 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13455 * gst/vaapi/gstvaapidecodebin.c:
13456 vaapidecodebin: element warning if missing element
13457 Raise an element warning if a required element is not available, thus the
13458 pipeline will post a warning message and the application will be informed.
13460 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13462 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13463 decoder: h265: fix to release all dpb pictures
13464 Without this, all dpb pictures are not released during flush,
13465 because we used the global dpb_count variable for checking the
13466 dpb fullness which get decremented in dpb_remove_index()
13467 routine during each loop iteration.
13468 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13470 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13473 Automatic update of common submodule
13474 From ac2f647 to f363b32
13476 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13478 * gst/vaapi/gstvaapidecode.c:
13479 * gst/vaapi/gstvaapipostproc.c:
13480 vaapi: fix minor leaks
13481 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13483 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13485 * gst/vaapi/gstvaapi.c:
13486 vaapi: remove an already included header
13487 gst/gst.h is already included in gstcompat.h
13489 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13491 * gst/vaapi/gstvaapidecodebin.c:
13492 vaapidecodebin: add vp9 in sink pad template
13494 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13496 * gst/vaapi/gstvaapisink.c:
13497 vaapisink: return caps template if no display
13498 If vaapisink received a caps query before getting a VA display, it returned
13499 only the surfaces related caps. This behavior broke the autovideosink
13501 This patch returns the pad's template caps if no VA display, otherwise the
13502 caps are crafted as before.
13503 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13505 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13507 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13508 decoder: vp9: Update comment about context resets
13509 Clarify that vaapi context resets are never needed for vp9, but
13510 that ensure_context() needs called when the size increases so that
13511 new surfaces can be allocated.
13512 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13513 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13515 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13517 * gst-libs/gst/vaapi/gstvaapicontext.c:
13518 * gst-libs/gst/vaapi/gstvaapicontext.h:
13519 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13520 gstvaapicontext: control reset_on_resize with option
13521 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13522 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13524 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13526 * gst/vaapi/gstvaapivideobufferpool.c:
13527 vaapivideobufferpool: add video meta to config when needed
13528 In cases where we know the video meta must be present, add it to
13529 the pool configuration.
13530 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13531 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13533 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13535 * gst/vaapi/gstvaapipluginbase.c:
13536 plugins: retry pool config
13537 if gst_buffer_pool_set_config returns FALSE, check the modified
13538 config and retry set_config if the config is still acceptable.
13539 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13540 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13542 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13544 * gst/vaapi/gstvaapivideomemory.h:
13545 vaapivideomemory: internal attributes to methods
13546 Mark as internal the functions used by VA-API dmabuf allocator.
13548 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13550 * gst/vaapi/gstvaapipluginbase.c:
13551 plugins: remove precondition for decide_allocation()
13552 There's no need to check for the display in the plugin object when
13553 decide_allocation() vmethod is called, because the display will created or
13554 re-created along the method execution.
13556 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13558 * gst/vaapi/gstvaapipluginbase.c:
13559 plugins: avoid possible memory leaks
13560 Get the pool config just before use it, to avoid a memory leak if the
13561 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13562 cannot be set, avoid keep a not used allocator in the pool.
13564 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13566 * gst/vaapi/gstvaapipluginbase.c:
13567 plugins: use GstParentBufferMeta
13568 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13569 use the GStreamer's GstParentBufferMeta.
13570 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13572 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13574 * gst/vaapi/gstvaapipluginbase.c:
13575 plugins: cache VASurfaces from dmabufs
13576 This patch avoids the creation of a VASurface each time a new input buffer is
13577 processed, caching them in the input buffer itself.
13578 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13580 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13582 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13583 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13584 * gst/vaapi/gstvaapipluginbase.c:
13585 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13586 Instead of passing the data already in GstVideoInfo, let's just pass the
13587 GstVideoInfo structure.
13588 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13590 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13592 * gst/vaapi/gstvaapipluginbase.c:
13593 * gst/vaapi/gstvaapipluginbase.h:
13594 plugins: use an unique allocator per pad
13595 Instead of instantiating an allocator per vaapivideobufferpool, only one
13596 allocator is instantiated per element's pad and shared among future pools.
13597 If the pad's caps changes, the allocator is reset.
13598 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13600 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13602 * gst/vaapi/gstvaapipluginbase.c:
13603 * gst/vaapi/gstvaapivideobufferpool.c:
13604 * gst/vaapi/gstvaapivideobufferpool.h:
13605 vaapivideobufferpool: share options flag with pluginbase
13606 Originally, vaapivideobufferpool has a set of boolean variables for the
13607 buffer configuration options.
13608 This pach changes these boolean variables for a single bitwise, just as
13609 it is used in pluginbase. Hence, the internal enum was moved to
13610 vaapivideobufferpool header.
13611 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13613 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13615 * gst/vaapi/gstvaapipluginbase.c:
13616 plugins: add gst_vaapi_plugin_base_create_pool()
13617 This patch refactors the code in pluginbase in order to centralize the buffer
13618 pool instantiation. As the buffer pool config may have different options, these
13619 are gathered using a bitwise flag.
13620 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13622 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13624 pluginbase negotiates allocator with bufferpool
13625 Originally vaapivideobufferpool instantiates its own allocator regardless the
13626 received configuration, and it relies in custom configuration options to
13627 choose which kind of allocator instantiate.
13628 This patch transfers the responsibility of the allocator instantiate to
13629 vaapipluginbase and pass it to the vaapivideobufferpool through its
13631 * gst/vaapi/gstvaapipluginbase.c
13632 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13633 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13634 bufferpool configuration
13635 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13637 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13638 allocator in bufferpool configuration
13639 * gst/vaapi/gstvaapivideobufferpool.c
13640 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13641 allocator, process the received one through its configuration.
13642 * gst/vaapi/gstvaapivideobufferpool.h: removed
13643 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13644 * gst/vaapi/gstvaapivideomemory.c
13645 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13646 allocator with the vaapi qdata.
13647 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13649 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13651 * gst/vaapi/gstvaapivideobufferpool.c:
13652 vaapivideobufferpool: keep only current video info
13653 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13654 the current one, the negotiated. The old one is not needed at all.
13655 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13657 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13659 * gst/vaapi/gstvaapipluginbase.c:
13660 * gst/vaapi/gstvaapipluginutil.c:
13661 * gst/vaapi/gstvaapipluginutil.h:
13662 * gst/vaapi/gstvaapivideomemory.c:
13663 pluginutil: add gst_video_info_force_nv12_if_encoded()
13664 This lines repeat a couple times in the code, so it would be better to put it
13666 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13668 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13670 * gst/vaapi/gstvaapipluginutil.c:
13671 * gst/vaapi/gstvaapipluginutil.h:
13672 * gst/vaapi/gstvaapipostproc.c:
13673 * gst/vaapi/gstvaapivideobufferpool.c:
13674 pluginutil: add gst_video_info_changed() helper
13675 This function is shared among different elements, so let factorized it.
13676 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13678 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13680 * gst/vaapi/gstvaapipostprocutil.c:
13681 vaapipostproc: Add colorimetry attributes to src caps
13682 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13684 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13686 * gst/vaapi/gstvaapidecode.c:
13687 vaapidecode: remove chroma-site and colorimetry from src caps
13688 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13690 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13692 * gst/vaapi/gstvaapipostproc.c:
13693 * gst/vaapi/gstvaapipostproc.h:
13694 vaapipostproc: add postproc_lock to protect data members
13695 Add a mutex to postproc to protect concurrent access to data members.
13696 Previously set_caps() could release the allowed_srcpad_caps while
13697 transform_caps was in the middle of using it.
13698 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13699 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13701 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13703 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13704 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13705 encoder: vp9: Add simple algorithms for reference picture selection
13706 Added two modes(as properties) for reference picture selection:
13707 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13708 and LastRef is pointing to the previous frame.
13709 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13710 and n-2 th frame as AltRef
13711 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13713 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13715 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13716 encoder: vp9: Define Max frame width and height
13717 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13719 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13721 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13722 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13723 encoder: vp9: Add more propertis for tuning encode quality
13724 Added three tuning properties:
13727 3: luma ac quant-table index
13728 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13730 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13732 * gst/vaapi/Makefile.am:
13733 * gst/vaapi/gstvaapi.c:
13734 * gst/vaapi/gstvaapiencode_vp9.c:
13735 * gst/vaapi/gstvaapiencode_vp9.h:
13736 Add vp9 encode element to "vaapi" plugin
13737 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13739 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13741 * gst-libs/gst/vaapi/Makefile.am:
13742 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13743 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13744 Add vp9 encoder support in libgstvaapi
13745 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13747 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13750 build: Add check for VP9 encode API support in libva
13751 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13753 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13755 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13756 gstvaapisurface_drm: fix internal documentation
13758 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13760 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13761 gstvaapisurface_drm: fix code-style
13763 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13765 * gst/vaapi/gstvaapipluginbase.c:
13766 plugins: remove unused header
13767 Remove the include of gst/allocators/allocators.h since it is not used.
13769 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13771 * gst/vaapi/gstvaapivideobufferpool.h:
13772 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13773 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13774 keep compatibility definition.
13775 This patch removes the definition of
13776 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13777 gst-plugins-base version 1.2.2
13779 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13781 * gst/vaapi/gstvaapipluginbase.c:
13782 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13783 This is a helper function to improve the readability of
13784 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13787 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13789 * gst/vaapi/gstvaapipluginbase.c:
13790 plugins: deactivate buffer pool before unref
13791 This buffer pool may still be processing buffers when a caps renegotiation is
13792 done. This one-liner patch deactivates the pool to drain it before it
13795 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13797 * gst/vaapi/gstvaapipluginbase.c:
13798 plugins: no sinkpad bufferpool when decoder
13799 Right now, the decoders create a buffer pool for their sink pad which is not
13800 used at all, because the decoders have never proposed it to upstream.
13801 This patch avoids the buffer pool instantiating when the element inherits from
13802 the GstVideoDecoder class.
13804 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13806 * gst/vaapi/gstvaapipluginbase.c:
13807 plugins: avoid to get/set pool config twice
13808 This patch is a bit of optimization, since the bufferpool configuration is get
13809 when the pool is created. Hence, we only need to request it when the pool from
13810 the allocation query is reused.
13812 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13814 * gst/vaapi/gstvaapipluginbase.c:
13815 plugins: destroy pool earlier if non-vaapi
13816 If the offered pool in decide_allocation() vmethod doesn't have the
13817 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13818 so it could be created later.
13820 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13822 * gst/vaapi/gstvaapivideobufferpool.c:
13823 vaapivideobufferpool: split caps validation
13824 When validating the caps from bufferpool config, this patch distinguishes the
13825 error from no caps received (NULL) from the invalid caps (cannot be converted
13826 into GstVideoInfo structure).
13828 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13830 * gst/vaapi/gstvaapidecode.c:
13831 * gst/vaapi/gstvaapipluginbase.c:
13832 plugins: check for caps in query earlier
13833 Check for caps as soon gst_query_parse_allocation() returns.
13835 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13837 * gst/vaapi/gstvaapipluginbase.c:
13838 * gst/vaapi/gstvaapipluginbase.h:
13839 plugins: remove unused variables
13840 This variables stopped to be used since commit 001a5c63, which removed the
13843 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13845 * gst/vaapi/gstvaapipluginbase.c:
13846 plugins: fix potential memleak from commit 9159328
13847 If gst_video_info_from_caps() fails it is required to unref the instantiated
13850 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13852 * gst/vaapi/gstvaapipostproc.c:
13853 vaapipostproc: handle if gst_video_info_from_caps() fails
13854 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13857 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13859 * gst/vaapi/gstvaapipluginbase.c:
13860 plugins: handle if gst_video_info_from_caps() fails
13861 Let's play safe and return error if, somehow, the received caps are wrong.
13863 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13865 * gst/vaapi/gstvaapipluginbase.c:
13866 plugins: relate errors to instance
13867 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13868 will show the name of the vaapipluginbase instance that failed.
13869 Also, the code-style is fixed, where some error labels need to be surrounded
13872 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13874 * gst/vaapi/gstvaapipluginbase.c:
13875 * gst/vaapi/gstvaapipluginutil.c:
13876 * gst/vaapi/gstvaapisink.c:
13877 plugins: use GstVideoInfo accessors
13878 Instead of access to GstVideInfo members directly, use their accessors
13879 macros. This patch makes more resistance to future changes in GStreamer core.
13881 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13883 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13884 * gst/vaapi/gstvaapipluginbase.c:
13885 * gst/vaapi/gstvaapipostproc.c:
13886 * tests/simple-encoder.c:
13887 remove spurious gst_video_info_init()
13888 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13889 gst_video_info_init(), hence it is not required to call it before them. This
13890 patch removes these spurious calls.
13892 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13894 * gst/vaapi/gstvaapipluginbase.c:
13895 vaapipluginbase: code-style: rename goto label
13896 The error labels have error_ prefix, but this one.
13898 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13900 * gst/vaapi/gstvaapivideomemory.c:
13901 vaapivideomemory: use allocator custom alloc flag
13902 Instead of a dummy alloc() vmethod, the allocator instance set the flag
13903 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13904 gst_allocator_alloc() on the allocator.
13906 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13908 * gst/vaapi/gstvaapivideobufferpool.c:
13909 vaapivideobufferpool: relate errors to instance
13910 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13911 the vaapivideobufferpool instance that failed.
13913 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13915 * gst/vaapi/gstvaapipluginbase.c:
13916 plugins: remove gst_vaapi_plugin_base_set_pool_config()
13917 This function helper make sense for GStreamer 1.2, but it is not helpful for
13918 greater version since the validation is already done in the API implementation.
13919 Thus, it is removed.
13921 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13923 * gst/vaapi/gstvaapipluginbase.c:
13924 gstvaapipluginbase: Fix typo in doc
13926 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13928 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13929 encoder : h264: Disable b-frame encode in low-power mode
13930 This is a workaround since vaapi-intel-driver doesn't have
13931 support for B-frame encode when utilizing low-power-enc
13933 Fixme :We should query the VAConfigAttribEncMaxRefFrames
13934 instead of blindly disabling b-frame support and set b/p frame count,
13935 buffer pool size etc based on the query result.
13936 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13938 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13940 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13941 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13942 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13943 Remove the duplicate property "low-power-enc" and use the
13944 tune property for enabling low power encoding mode.
13945 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13947 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13949 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13950 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13951 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13953 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13955 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13956 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13957 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13958 encoder: h264: Add support of low power/high performance encoding mode
13959 Added a new property "low-power-enc" for enabling low power
13960 encoding mode. Certain encoding tools may not be available
13961 with the VAEntrypointEncSliceLP.
13962 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13964 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13966 * gst-libs/gst/vaapi/gstvaapitypes.h:
13967 * gst-libs/gst/vaapi/gstvaapiutils.c:
13968 * gst-libs/gst/vaapi/gstvaapivalue.c:
13969 Add mapping for Macroblock level rate control (VA_RC_MB)
13971 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13973 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13974 gstvaapidisplay: Add VAEntrypointEncSliceLP support
13975 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13977 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13979 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13980 * gst-libs/gst/vaapi/gstvaapiprofile.h:
13981 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13982 This is for implementations that supports low_power/high_performance
13983 variant for slice level encode.
13984 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13986 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13988 * gst/vaapi/gstvaapipostprocutil.c:
13989 vaapipostproc: negotiate frame size fixation
13990 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
13991 using the sink caps, also it use the next capsfilter.
13992 This code is a shameless copy of gst_video_scale_fixate_caps() from
13993 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
13994 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13996 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13998 * gst/vaapi/gstvaapipostprocutil.c:
13999 vaapipostproc: don't use GstVideoInfo for src caps
14000 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
14001 this patch enables the first step for caps negotiation with a possible
14002 following caps filter.
14003 _get_preferred_caps() will traverse the possible src caps looking for the one
14004 wit the preferred feature and the preferred color format. Then the color
14005 format, the frame size and the frame rate are fixated.
14006 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14008 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14010 * gst/vaapi/gstvaapipostproc.c:
14011 * gst/vaapi/gstvaapipostprocutil.c:
14012 * gst/vaapi/gstvaapipostprocutil.h:
14013 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
14014 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
14015 No functional changes.
14016 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14018 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14020 * gst/vaapi/gstvaapipostproc.c:
14021 vaapipostproc: simplify code
14022 Change a convoluted snippet to find the preferred color format in the peer
14024 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14026 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14028 * gst/vaapi/gstvaapipostproc.c:
14029 vaapipostproc: use othercaps for preferred caps
14030 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
14031 from fixate_caps() vmethod to find the preferred caps feature and color
14033 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14035 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14037 * gst/vaapi/gstvaapipostproc.c:
14038 vaapipostproc: add fixate_caps() vmethod
14039 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
14040 implements the fixate_caps() vmethod and moves code around.
14041 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14043 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14045 * gst/vaapi/Makefile.am:
14046 * gst/vaapi/gstvaapipostproc.c:
14047 * gst/vaapi/gstvaapipostprocutil.c:
14048 * gst/vaapi/gstvaapipostprocutil.h:
14049 vaapipostproc: set early properties restrictions
14050 When running transform_caps() vmethod, returning the srcpad caps, the caps are
14051 early restricted to the element properties set: width, height, format and
14053 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
14055 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14057 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14059 * gst/vaapi/gstvaapipostproc.c:
14060 vaapipostproc: log the caps transformation
14061 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14063 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14065 * gst/vaapi/gstvaapipostproc.c:
14066 vaapipostproc: no GLTextureUpload in sinkpad
14067 As the vaapipostproc does not process frames with the VideoGLTextureUpload
14068 meta, the feature is removed from the sink pad template.
14069 https://bugzilla.gnome.org/show_bug.cgi?id=765931
14071 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
14073 * gst/vaapi/gstvaapivideobufferpool.c:
14074 vaapibufferpool: do not create texture upload meta if dmabuf
14075 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14077 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14080 build: update git.mk
14082 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14084 * gst/vaapi/gstvaapipluginbase.h:
14085 plugin: fix macro processor check
14086 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
14087 defined in config.h, but it would be 0 or 1 depending on the configure output.
14088 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14090 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14092 * tests/test-display.c:
14093 tests: display: guard possible unused variables
14094 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14096 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14102 * tests/simple-decoder.c:
14103 * tests/test-decode.c:
14104 * tests/test-display.c:
14105 * tests/test-filter.c:
14106 * tests/test-h264.c:
14107 * tests/test-jpeg.c:
14108 * tests/test-mpeg2.c:
14109 * tests/test-mpeg4.c:
14110 * tests/test-subpicture-data.c:
14111 * tests/test-subpicture.c:
14112 * tests/test-surfaces.c:
14113 * tests/test-textures.c:
14114 * tests/test-vc1.c:
14115 * tests/test-windows.c:
14116 tests: inforce gstreamer code-style
14118 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14120 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14121 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
14122 It seems driver requires enablement of cu_qp_delta_enabled_flag
14123 for modifying QP values to controll the CBR mode bitrate.
14124 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14126 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14128 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14129 encoder: h265: Add CBR Encoding support
14130 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14132 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
14134 * gst-libs/gst/vaapi/gstvaapisurface.c:
14135 gstvaapisurface: explicitely clear TILING flag if dmabuf
14136 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14138 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14140 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14141 gstvaapisurface_drm: release image when done
14142 Otherwise intel-vaapi-driver will fail to process the exported surface because
14143 it will find it is currently derived, so considered as busy.
14144 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14146 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14148 * gst/vaapi/gstvaapipostproc.c:
14149 vaapipostproc: already have a surface proxy if dmabuf
14150 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14152 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14154 * gst/vaapi/gstvaapipostproc.c:
14157 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14159 * gst/vaapi/gstvaapidecode.c:
14160 * gst/vaapi/gstvaapipluginbase.c:
14161 * gst/vaapi/gstvaapipluginbase.h:
14162 vaapidecode: search driver in whitelist
14163 If the backend driver vendor string is not in a white-list, and the
14164 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14165 change it state from NULL to READY, hence the auto-plug mechanism will look
14166 for another decoder.
14167 This patch assumes the GstContext has already being shared along the pipeline
14168 and the element has a valid GstVaapiDisplay instance.
14169 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14171 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14173 * gst/vaapi/gstvaapidecode.c:
14174 * gst/vaapi/gstvaapiencode.c:
14175 * gst/vaapi/gstvaapipluginbase.c:
14176 * gst/vaapi/gstvaapipluginbase.h:
14177 * gst/vaapi/gstvaapipostproc.c:
14178 * gst/vaapi/gstvaapisink.c:
14179 plugins: rework set_context() vmethod definition
14180 In bug 757598 was added the set_context() vmethod chain up in
14181 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14182 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14183 No error has shown up since none of the element's base classes redefined
14184 set_context() vmethod from GstElement, so always the correct function was
14185 called. Still this code is wrong and this patch make it right.
14186 Since set_context() is the same code, a macro is used to implement that code
14187 in all the gst-vaapi elements.
14188 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14190 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14192 * gst/vaapi/gstvaapipostproc.c:
14193 vaapipostproc: resize if negotiated and allocation caps are different
14194 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14195 the negotiated caps.
14196 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14197 resize the frame to the negotiated, if and only if, some other parameter is
14198 activated to avoid the passthrough. If it is not, the surface won't be mapped
14199 into a image. If not, the image won't be resized and the output buffer would be
14201 This patch will break the passthrough if the allocation query is different
14202 from the negotiation caps, forcing the resizing.
14203 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14205 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14207 * gst/vaapi/gstvaapidecode.c:
14208 vaapidecode: improve code readability
14209 No functional changes.
14211 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14213 * gst/vaapi/gstvaapidecode.c:
14214 vaapidecode: move GstCapsFeatures near to its use
14215 Move the handling of the GstCapsFeatures just after it is used, in order to
14216 avoid handling its memory.
14218 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14220 * gst/vaapi/gstvaapidecode.c:
14221 vaapidecode: caps negotiation checks
14222 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14223 compiled with GL support.
14225 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14227 * gst/vaapi/gstvaapidecode.c:
14228 * gst/vaapi/gstvaapipluginbase.c:
14229 * gst/vaapi/gstvaapipluginbase.h:
14230 * gst/vaapi/gstvaapipostproc.c:
14231 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14233 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14235 * gst/vaapi/gstvaapidecode.c:
14236 vaapidecode: bail early if not caps in decide_allocation()
14238 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14240 * gst/vaapi/gstvaapidecode.c:
14241 * gst/vaapi/gstvaapipluginbase.c:
14242 * gst/vaapi/gstvaapipluginutil.c:
14243 * gst/vaapi/gstvaapipluginutil.h:
14244 * gst/vaapi/gstvaapipostproc.c:
14245 plugin: use allowed caps filter from element
14246 Instead of using the srcpad template caps for filtering the peer caps, the
14247 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14248 for the element's allowed caps.
14249 With this modification, the vaapipostproc element simplifies a bit its code.
14250 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14252 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14254 * gst/vaapi/gstvaapidecode.c:
14255 * gst/vaapi/gstvaapipluginbase.c:
14256 * gst/vaapi/gstvaapipluginutil.c:
14257 * gst/vaapi/gstvaapipluginutil.h:
14258 * gst/vaapi/gstvaapipostproc.c:
14259 plugin: remove function parameter
14260 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14261 saved if the out format is used for both: in and out. Thus the code is more
14263 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14265 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14267 * gst/vaapi/gstvaapidecode.c:
14268 vaapidecode: warns if driver will do color conversions
14269 If the downstream feature is system memory, the surface has to be mapped,
14270 hence a warning message is logged saying that the driver has to do color
14271 conversions. This might be troublesome because not all the color conversion
14272 combinations are supported by the VA-API drivers, and there is not a reliable
14273 way to know them before hand.
14274 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14276 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14278 * gst/vaapi/gstvaapipluginutil.c:
14279 plugin: honour negotiated format
14280 Instead of setting the requested format by the caller, the function
14281 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14282 the negotiated format.
14283 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14284 given the format list from the negotiated caps, will choose the best one, if
14285 possible, given the native format.
14286 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14288 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14290 * gst/vaapi/gstvaapipluginutil.c:
14291 plugin: simplify caps feature selection
14292 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14293 Instead of intersecting custom caps to find the preferred feature, the peer
14294 caps are traversed in order to find the preferred feature, according to an
14295 ordered feature priority list.
14296 In the case of GLTextureUploadMeta, the colour format is computed using
14297 GstVideoInfo of the selected fixed caps.
14298 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14300 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14302 * gst/vaapi/gstvaapidecode.c:
14303 vaapidecode: use macros for GstVideoInfo
14304 Instead of accessing directly to the members of the structure, use the macros.
14306 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14308 * gst/vaapi/gstvaapidecode.c:
14309 vaapidecode: refactor is_display_resolution_changed()
14310 Make the comparisons more readable and simple.
14311 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14313 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14315 * gst/vaapi/gstvaapidecode.c:
14316 * gst/vaapi/gstvaapidecode.h:
14317 vaapidecode: keep only display_{width,height}
14318 Instead of keeping the structure GstVideoInfo when we are using its width and
14319 height, we only keep these two guints.
14320 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14322 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14324 * gst/vaapi/gstvaapidecode.c:
14325 vaapidecode: decoded_info is valid at src caps update
14326 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14327 is called, then we don't need to verify or replace it with the sinkpad info
14329 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14331 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14333 * gst/vaapi/gstvaapidecode.c:
14334 vaapidecode: always a valid format in decoded_info
14335 Always set a valid format in decoded_info class variable.
14336 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14338 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14340 * gst/vaapi/gstvaapidecode.c:
14341 vaapidecode: code style fixes
14342 No functional changes.
14343 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14345 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14347 * gst/vaapi/gstvaapidecode.c:
14348 vaapidecode: init {decoded,display}_info at open()
14349 It is required to initialize {decoded,display}_info variables when the decoder
14350 is open, not only at instance initialization.
14351 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14353 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14355 * gst/vaapi/gstvaapidecode.c:
14356 * gst/vaapi/gstvaapidecode.h:
14357 vaapidecode: remove spurious class variables
14358 active, do_pool_renego and do_outstate_renego class variables were used to
14359 indicate when negotiate downstream once, but now that each time a new surface
14360 resolution is pop out a renegotation verified, these variable are not required
14362 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14364 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14366 * gst/vaapi/gstvaapidecode.c:
14367 * gst/vaapi/gstvaapipluginbase.c:
14368 * gst/vaapi/gstvaapipluginbase.h:
14369 * gst/vaapi/gstvaapipostproc.c:
14370 remove custom allocation query
14371 When resolving bug 753914, a custom allocation query was added, overlapping
14372 the responsibilities of GstVideoDecoder.
14373 But with the merge of the patches from bug 764421 this overlapping was not
14374 required anymore. This patch restores this situation setting the
14375 allocation_caps in the GstVideoCodecState when needed.
14376 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14378 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14381 Automatic update of common submodule
14382 From 6f2d209 to ac2f647
14384 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14386 * gst/vaapi/gstvaapidecode.c:
14387 * gst/vaapi/gstvaapidecodebin.c:
14388 * gst/vaapi/gstvaapipostproc.c:
14389 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14390 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14391 their caps templates if they were not compiled either with GLX or EGL support.
14393 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14395 * gst/vaapi/gstvaapipluginutil.c:
14396 plugins: fix compilation when EGL/GLX is disabled
14397 The compiler might complain of gst_vaapi_create_display_from_handle() being
14398 unused if both EGL and GLX are disabled. This patch avoid that compilation
14401 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14403 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14404 libs: fix deleting a GstVaapiCodedBufferPool object
14405 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14406 Otherwise it is not called when the pool is destroyed and all objects
14407 referenced by the GstVaapiVideoPool are never released.
14408 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14410 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14412 * gst-libs/gst/vaapi/gstvaapisurface.c:
14413 surface: destroy derived image
14414 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14415 destroyed, otherwise the surface cannot be processed because is being used.
14416 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14418 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14420 * gst/vaapi/gstvaapidecode.c:
14421 vaapidecode: add stop function
14422 Clear any status on the current stream:
14423 stored frames, caps and decoder configuration
14424 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14426 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14428 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14429 decoder: vp9: Align with the ABI changes in vp9 codecparser
14430 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14431 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14432 These fields are only present in keyframe or intra-only frame, no need to
14433 duplicate them for inter-frames.
14434 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14436 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14438 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14439 decoder: vp9 : Add 10bit decoding support (Profile2)
14440 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14442 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14444 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14445 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14446 gstvaapiporfile: Add more VP9 profile definitions
14447 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14449 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14453 build: possibility to disable tests
14454 The configuration option --disable-examples will disable the compilation of
14455 the sample apps in tests/ directory.
14457 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14459 * gst/vaapi/gstvaapiencode_h264.c:
14460 * gst/vaapi/gstvaapiencode_h265.c:
14461 * gst/vaapi/gstvaapiencode_jpeg.c:
14462 * gst/vaapi/gstvaapiencode_mpeg2.c:
14463 * gst/vaapi/gstvaapiencode_vp8.c:
14464 * gst/vaapi/gstvaapipluginutil.h:
14465 * gst/vaapi/gstvaapisink.c:
14466 unify caps template for VAAPI encoders and decoders
14467 There is no difference in VAAPI surface caps between encoders and decoders.
14468 Thus, the patch makes a simplification by removing encoders specific caps and
14469 shares the same definition of VAAPI surfaces caps for all the elements.
14471 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14473 * gst/vaapi/gstvaapidecode.c:
14474 vaapidecode: move gst_vaapidecode_negotiate() code
14475 With it we can remove a function declaration, making the code a bit
14477 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14479 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14481 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14482 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14483 * gst/vaapi/gstvaapidecode.c:
14484 docs: generate vaapijpegdec documentation
14485 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14487 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14489 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14490 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14491 The array_completeness, reserved bit and num_nal_units fields
14492 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14493 but not for each occurance of similar headers.
14494 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14496 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14498 * gst-libs/gst/vaapi/video-format.c:
14499 video-format: Keep the HW order preference while mapping to GstVideoFormats
14501 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14503 * gst/vaapi/gstvaapidecode.c:
14504 * gst/vaapi/gstvaapipluginbase.c:
14505 * gst/vaapi/gstvaapipluginutil.c:
14506 * gst/vaapi/gstvaapipluginutil.h:
14507 * gst/vaapi/gstvaapivideomemory.c:
14508 gst/vaapi: keep precedence for NV12 over I420
14509 Use NV12 as default "assumption" format all over.
14510 NV12 is the default high priority format used my most of the
14513 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14515 * gst/vaapi/gstvaapidecode.c:
14516 vaapidecode: Use video format derived from decoded surface as default src pad format
14517 Use the surface format derived from first decoded surface
14518 to negotiate the downstream video format capabilities.
14519 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14521 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14523 * gst-libs/gst/vaapi/gstvaapiimage.c:
14524 * gst-libs/gst/vaapi/video-format.c:
14525 * gst/vaapi/gstvaapidecode.c:
14526 * gst/vaapi/gstvaapipluginutil.h:
14527 * gst/vaapi/gstvaapisink.c:
14528 Add P010 video format support
14529 The P010 video format is the native format used by the vaapi intel driver
14530 for HEVCMain10 decode . Add support for planes and images of this video format.
14531 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14533 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14535 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14536 libs: x11: allows 30-bit colour depth
14537 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14538 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14539 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14541 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14543 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14545 * gst/vaapi/gstvaapivideometa_texture.c:
14546 gltextureupload: use an array for texture type
14547 Instead of using a single value for the texture type, use an array with 4
14548 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14550 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14552 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14554 * gst/vaapi/gstvaapidecode.c:
14555 * gst/vaapi/gstvaapipluginbase.c:
14556 vaapidecode: Fix decide_allocation handling
14557 Set the already configured pool in decide_allocation query
14558 in cases where pool renegotiation is not required.
14559 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14561 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14563 * gst/vaapi/gstvaapidecode.c:
14564 vaapidecode: Derive and save the decoded surface format
14565 After the decoding of first frame, try to extract the exact
14566 decoded surface format using vaDeriveImage and keep this
14567 as the format in decoded_info.
14568 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14570 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14572 * gst/vaapi/gstvaapidecode.c:
14573 * gst/vaapi/gstvaapidecode.h:
14574 * gst/vaapi/gstvaapipluginbase.c:
14575 * gst/vaapi/gstvaapipluginbase.h:
14576 * gst/vaapi/gstvaapipostproc.c:
14577 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14578 -- Maintaing decoded surface resoluton and actual display resoultion separately
14579 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14580 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14581 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14582 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14583 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14584 This is slight overhead, but safe enough. Optimization could be possible though.
14585 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14587 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14589 * gst/vaapi/gstvaapidecode.c:
14590 vaapidecode: Delay the output format setting until we have a decoded surface
14591 This will help to consoidate the out caps negotiation to a single place,
14592 which will make the code simpler, allows to get the exact decoded format
14593 if needed and the selected chroma type too.
14594 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14596 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14598 * gst/vaapi/gstvaapidecode.h:
14599 vaapidecode: GST_VAAPIDECODE macro is a cast
14600 This patch is the continuation of commit 1e1d3b1d because the function
14601 gst_vaapidecode_get_type() got undefined since then.
14602 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14603 structure. The rest of the GObject handling macros were deleted too.
14605 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14608 Back to development
14610 === release 1.8.0 ===
14612 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14617 * gstreamer-vaapi.doap:
14620 === release 1.7.91 ===
14622 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14627 * gstreamer-vaapi.doap:
14630 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14632 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14633 decoder: h265: Fix offset calculation in codec_data parsing
14634 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14636 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14638 * gst/vaapi/gstvaapidecodebin.c:
14639 vaapidecodebin: don't handle jpeg decoding
14640 As JPEG decoder has been split and demoted, it cannot be handled by
14642 Added a fixme comment regarding the future removal of vaapidecode.
14643 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14645 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14647 * gst/vaapi/gstvaapidecode.c:
14648 vaapidecode: split out jpeg decoder
14649 Split, as a different element, the JPEG decoder.
14650 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14652 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14654 * gst/vaapi/gstvaapi.c:
14655 * gst/vaapi/gstvaapidecode.c:
14656 * gst/vaapi/gstvaapidecode.h:
14657 vaapidecode: register decoder with internal GType
14658 Don't expose the the vaapidecode GType, instead expose a function
14659 which will register element.
14660 This is the first step to split the decoder by codecs.
14661 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14663 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14665 * gst/vaapi/gstvaapidecode.c:
14666 vaapidecode: remove unused function declaration
14667 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14668 code-style of the other pre-declared functions.
14670 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14672 * docs/plugins/Makefile.am:
14673 build: git ignore gtkdoc generated files
14675 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14678 build: handle git ignore in m4 directory
14680 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14682 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14683 vaapidecoder_h265: plug leak of h265 parsing info
14684 If something goes wrong while parsing, the info object is
14686 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14688 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14690 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14691 vaapidecoder_h264: plug leak of h264 parsing info
14692 If something goes wrong while parsing, the info object is
14694 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14696 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14698 * gst/vaapi/gstvaapipluginutil.c:
14699 plugins: fix gstgl and vaapi memory leaks
14700 1\ Unref gl_display and gl_window as soon they are not needed.
14701 2\ Remove an unneeded display type check, since is handled by
14702 gst_vaapi_created_display_from_handle()
14703 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14704 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14705 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14707 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
14709 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14710 vaapidisplay: Fix uninitialized value error for VA attribute
14711 https://bugzilla.gnome.org/show_bug.cgi?id=763362
14713 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14715 * gst/vaapi/gstvaapidecode.c:
14716 * gst/vaapi/gstvaapiencode.c:
14717 plugins: proxy information from downstream caps
14718 Propagate to upstream the downstream information, such as fps, par, etc.
14719 This will fix several "getcaps" critical warnings in gst-validate.
14720 https://bugzilla.gnome.org/show_bug.cgi?id=763300
14722 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14724 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14725 decoder: vp9: Assign values for profile and bit_depth from frame header
14726 bit_depth field has added only in VA-API 0.39.0, added version check.
14728 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
14731 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14732 https://bugzilla.gnome.org/show_bug.cgi?id=763067
14734 === release 1.7.90 ===
14736 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
14741 * gstreamer-vaapi.doap:
14744 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
14747 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14749 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14751 * gst/vaapi/gstvaapidecode.c:
14752 vaapidecode: intersect with filter in getcaps()
14753 In commit 6034734d I forgot to add the caps filter intersection in the
14754 getcaps() vmethod generating a regression when a capsfilter is set in the
14756 This commit adds the caps filter intersection.
14758 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14760 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14761 Add memset to initialize value for VAEncSliceParameterBufferJPEG
14762 https://bugzilla.gnome.org/show_bug.cgi?id=762850
14764 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
14767 Automatic update of common submodule
14768 From b64f03f to 6f2d209
14770 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14775 build: add m4 directory
14776 Instead of rely on the automatic creation of m4 directory by aclocal, we
14777 already control it. Later we could create our own m4 scripts in order to
14778 unclutter configure.ac
14779 https://bugzilla.gnome.org/show_bug.cgi?id=762528
14781 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14783 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14784 decoder: hevc: Fill dependent slice segment headers while parsing
14785 Copy the data into the dependent slice segment header from the
14786 corresponding independent slice segment header during parsing.
14787 Previously the reference to the "previous" independent header was
14788 held through the parsing phase and then dereferenced during the
14789 decoding phase. This caused all dependent headers to be populated
14790 with the data of the AU's last independent header instead of the
14791 proper corresponding header.
14792 https://bugzilla.gnome.org/show_bug.cgi?id=762352
14794 - Reworded commit message
14796 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14798 * gst/vaapi/gstvaapidecode.c:
14799 vaapidecode: use video decoder getcaps()
14800 The usage of getcaps() vmethod is preferred than to handle manually the sink's
14802 In order to avoid function declarations, this patch moves the class_init()
14803 method to the end of the file.
14805 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14807 * gst/vaapi/gstvaapipluginbase.c:
14808 plugins: remove deprecated code
14809 Since we are only supporting current GStreamer version, since 1.3
14810 gst_buffer_pool_config_add_option() checks if the option to add is
14811 already set. There is no need to do it ourselves.
14813 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14815 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14816 vaapidecoder_h265: fix parsing of NALU aligned data
14817 Don't assume the whole buffer is a single NAL, instead look for the
14818 next start code in case there are multiple NALs per buffer.
14819 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14821 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14823 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14824 vaapidecoder_h264: fix parsing of NALU aligned data
14825 Don't assume the whole buffer is a single NAL, instead look for the
14826 next start code in case there are multiple NALs per buffer.
14827 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14829 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
14831 * gst/vaapi/gstvaapisink.c:
14832 vaapisink: Fix event,pad,structure memory leaks
14833 https://bugzilla.gnome.org/show_bug.cgi?id=762229
14835 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14837 * gst/vaapi/gstvaapipluginbase.c:
14838 Add icamerasrc as dmabuf capable peer element
14839 icamerasrc is another gstreamer plugin using to capture RAW
14840 frames from camera device. It is based on libcamhal library.
14841 There are some properties available to control icamera behavior.
14842 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14843 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14844 https://bugzilla.gnome.org/show_bug.cgi?id=759481
14845 Fixme: This is the similar workaround we done for v4l2src.
14846 The workaround will be removed once we fix #755072
14848 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14850 * gst/vaapi/gstvaapipluginbase.c:
14851 vaapipluginbase: Fix structure memory leak
14852 config structure is not being freed in all cases
14853 https://bugzilla.gnome.org/show_bug.cgi?id=762172
14855 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
14857 * gst/vaapi/gstvaapidecode.c:
14858 vaapidecode: Fix videocodec state memory leak
14859 When state is not NULL and either width/height of video info is 0, then state leaks
14860 https://bugzilla.gnome.org/show_bug.cgi?id=762173
14862 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
14864 * gst/vaapi/gstvaapisink.c:
14865 vaapisink: post message for application for unhandled keyboard/mouse events
14866 Makes (most) keyboard shortcuts work in gst-play-1.0 when
14867 the video window has focus.
14869 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
14871 * gst/vaapi/gstvaapidecode.c:
14872 vaapidecode: Fix capsfeature memory leak
14873 https://bugzilla.gnome.org/show_bug.cgi?id=762116
14875 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
14877 * gst/vaapi/gstvaapisink.c:
14878 vaapisink: Fix capsfeature memory leak
14879 caps feature allocated is not being freeing in some cases
14880 https://bugzilla.gnome.org/show_bug.cgi?id=762111
14882 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
14885 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14886 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14887 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14888 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14889 * gst-libs/gst/vaapi/gstvaapifilter.c:
14890 * gst/vaapi/gstvaapidecodebin.c:
14891 * gst/vaapi/gstvaapipluginutil.c:
14892 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14894 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
14897 configure: Fix setting of extra compiler warning flags
14899 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14901 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14902 libs: fix build error
14903 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14904 functions are used only when libva's API version is greater than 0.36.0
14905 This patch guards those functions completely rather than just their
14906 content. The patch is a continuation of commit 38f8fea4
14907 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14908 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14910 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
14912 * tests/simple-encoder.c:
14913 tests: simple-encoder: fix build error
14914 argument mismatch of gsize with 'long unsigned int'
14915 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14917 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14919 * gst/vaapi/gstvaapisink.c:
14920 vaapisink: Fix wrong caps advertising
14921 The get_caps() should only report the supported formats.
14922 https://bugzilla.gnome.org/show_bug.cgi?id=761147
14924 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14927 Automatic update of common submodule
14928 From e97c9bb to b64f03f
14930 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14932 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14933 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14934 * gst/vaapi/gstvaapi.c:
14935 * gst/vaapi/gstvaapiencode_h264.c:
14936 * gst/vaapi/gstvaapiencode_h265.c:
14937 * gst/vaapi/gstvaapiencode_jpeg.c:
14938 * gst/vaapi/gstvaapiencode_mpeg2.c:
14939 * gst/vaapi/gstvaapiencode_vp8.c:
14940 rename encoders to vaapi{codec}enc
14941 Trying to comply with GStreamer's element names, this patch renames the
14942 encoders using the name format vaapi{codec}enc.
14943 In this way, the plugin documentation is linked correctly.
14944 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14946 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14949 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14950 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14952 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14955 build: remove vp9 parser check
14956 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14957 the check of the parser, as we did for the others.
14958 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14960 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14964 Back to development
14965 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14967 === release 1.6.0 ===
14969 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14974 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14976 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14977 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14978 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14979 libs: fix compiler warnings
14980 After setting the release flags, the compiler warns about a couple
14981 initialized variables.
14982 Also marked a couple of set variables as unused, because they are only
14983 used for assertion.
14984 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14986 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14988 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14989 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14990 * gst/vaapi/gstvaapidecode.c:
14991 * gst/vaapi/gstvaapidecodebin.c:
14992 * gst/vaapi/gstvaapiencode_h264.c:
14993 * gst/vaapi/gstvaapiencode_h265.c:
14994 * gst/vaapi/gstvaapiencode_jpeg.c:
14995 * gst/vaapi/gstvaapiencode_mpeg2.c:
14996 * gst/vaapi/gstvaapiencode_vp8.c:
14997 * gst/vaapi/gstvaapipostproc.c:
14998 * gst/vaapi/gstvaapisink.c:
14999 docs: update plugin documentation
15000 Update all the documentation of elements of the vaapi plugin.
15001 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15003 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15007 * docs/Makefile.am:
15008 * docs/plugins/Makefile.am:
15009 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15010 * docs/plugins/gstreamer-vaapi-plugins.types:
15011 * docs/reference/Makefile.am:
15012 * docs/reference/plugins/Makefile.am:
15013 * docs/reference/plugins/plugins-sections.txt:
15014 * docs/reference/plugins/plugins.types:
15015 * docs/version.entities.in:
15016 resurrect gtk-doc machinery
15017 Our auto-generated documentation has been a bit neglected. This patch replaces
15018 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
15019 plugins, elements and libraries.
15020 This patch also re-enables documentation generation.
15021 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15023 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15029 use gst-common submodule
15030 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
15031 GStreamer common submodule.
15032 The documentation generation has been disable temporarily since it needs a
15033 major rework, which will be done in the following commit.
15034 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15036 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15040 add gst-common submodule
15041 Pointing to branch 1.6
15042 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15044 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15046 * gstreamer-vaapi.doap:
15047 add doap descriptor
15048 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
15049 describe software projects, in particular free and open source software.
15050 The description is used in GStreamer as in many other open source projects.
15051 This patch adds the doap description of this project.
15052 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15054 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15056 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
15057 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15058 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15059 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15060 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15061 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
15062 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15063 * gst-libs/gst/vaapi/gstvaapiimage.c:
15064 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
15065 * gst-libs/gst/vaapi/gstvaapipixmap.c:
15066 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15067 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15068 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
15069 libs: humongous code style fix
15070 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
15071 umbrella, we need to comply with the project's code style. This meant to
15072 change a lot of code.
15073 It was decided to use a single massive patch to update the code style.
15074 I would like to apologize with the original developers of this code because of
15075 the history breakage.
15076 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15078 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15080 * gst-libs/gst/vaapi/gstvaapicontext.c:
15081 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15082 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
15083 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15084 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15085 * gst/vaapi/gstvaapivideomemory.c:
15086 libs: small refactors to enhance the code style
15087 As gst-indent generated ugly code in these cases, this patch changes the used
15088 idiomatic into other one.
15089 No functional changes were introduced.
15090 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15092 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15094 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15095 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15096 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
15097 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15098 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15099 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15100 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15101 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15102 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15103 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15104 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15105 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15106 * gst-libs/gst/vaapi/gstvaapifilter.c:
15107 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15108 * gst-libs/gst/vaapi/gstvaapisurface.c:
15109 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15110 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
15111 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15112 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15113 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
15114 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15115 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15116 libs: small code style fixes
15117 This a set of small code style fixes detected as-is by gst-indent.
15118 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15120 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15122 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15123 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15124 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15125 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15126 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15127 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15128 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15129 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15130 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15131 libs: trivial comment style fixes
15132 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15134 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15136 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15137 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15138 libs: avoid gst-indent mess up
15139 Guard pieces of code to avoid gst-ident to mess up the following code.
15140 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15142 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15144 * gst/vaapi/gstvaapidecode.c:
15145 * gst/vaapi/gstvaapidecodebin.c:
15146 * gst/vaapi/gstvaapipluginutil.c:
15147 * gst/vaapi/gstvaapisink.c:
15148 * gst/vaapi/gstvaapivideomemory.c:
15149 plugins: fix code style
15150 Minor code style changes by executing gst-indent in gst/vaapi directory.
15151 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15153 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15155 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15156 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15157 Fix some more compiler warning
15158 Two (false) compiler warnings about variables potentially
15159 being used uninitialized, and one about a variable being
15161 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15163 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15165 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15166 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15167 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15168 * gst-libs/gst/vaapi/gstvaapifilter.c:
15169 * gst/vaapi/gstvaapidecode.c:
15170 * gst/vaapi/gstvaapipluginbase.c:
15171 * gst/vaapi/gstvaapipluginutil.c:
15172 * gst/vaapi/gstvaapipostproc.c:
15173 * tests/simple-encoder.c:
15174 * tests/test-filter.c:
15175 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15176 Declare variables at the beginning of a code block, which
15177 is how it's done in GStreamer.
15178 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15180 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15182 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15183 decoder: vp9: Fix crop rectangle setting
15184 Align with software vp9dec behaviour: Add crop rectangle
15185 only if display_width/display_height is less than the
15186 frame_hdr->width/frame_hdr->height
15188 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15190 * gst/vaapi/gstvaapidecode.c:
15191 vaapidecode: Fix renegotiation for resolution change
15192 Always renegotiate the pool if the immediate frame which going
15193 to be pushed has a different un-cropped resolution than the already
15196 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15198 * gst/vaapi/gstvaapipluginbase.h:
15199 plugins: use the same pre-processor macro
15200 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15201 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15202 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15203 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15204 in the header file.
15205 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15207 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15209 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15210 decoder: update a deprecated function
15211 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15212 deprecated since GStreamer 1.0.
15213 This patch replace it with gst_adapter_prev_pts()
15214 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15216 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15219 build: honor configure's cache
15220 The user might enable --config-cache when calling configure script. If so, our
15221 configuration variables will not be correctly calculated.
15222 This patch extracts the value of our variables either from the cache or from
15223 the operation result.
15224 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15226 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15229 build: use common version variables
15230 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15232 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15235 build: hard-code an unneeded macro
15236 That macro is required for EGL's dynamic module loading, but since
15237 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15238 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15239 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15241 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15244 build: refactorization of dependency tracking
15245 This patch tries to avoid branching in configure.ac using a more functional
15246 approach in macros usage.
15247 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15249 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15252 build: check for OpenGL either GLX or EGL are requested
15253 Refactor some code in configure.ac to centralize $enable_opengl definition.
15254 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15256 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15259 build: indent and add square braces
15260 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15262 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15265 build: upgrade autotools version dependency
15266 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15268 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15271 build: enhance string comparisons
15272 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15273 the string is empty or undefined.
15274 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15276 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15279 build: remove unused variables
15280 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15282 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15285 build: remove check for old version of gstreamer
15286 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15288 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15291 build: remove GStreamer's parsers checks
15292 This patch removes almost all the parsers check since they are already in place,
15293 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15294 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15296 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15299 * gst/vaapi/Makefile.am:
15300 build: add gstreamer-pbutils dependency
15301 This dependency was added in gstvaapidecodebin with the call
15302 gst_missing_element_message_new().
15303 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15305 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15308 build: fix variable declaration
15309 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15311 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15313 * gst-libs/gst/vaapi/Makefile.am:
15314 build: fix when HEVC decoder is disabled
15315 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15317 The encoder needs functions that are only available when the decoder is
15319 This patch moves the utils functions into the generic sources, such as the
15321 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15323 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15325 * gst/vaapi/Makefile.am:
15326 build: remove unused EGL specific sources
15327 These Makefile variables are not used at all.
15328 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15330 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15332 * gst/vaapi/Makefile.am:
15333 build: remove check for GStreamer 1.2
15334 Since we are working for current stable GStreamer 1.6
15335 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15337 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15339 * gst/vaapi/gstvaapiparse.h:
15340 Remove more video parser crufts
15341 This header is not used anymore since it declares parsers that are
15342 already in GStreamer 1.6
15343 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15345 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15348 * docs/reference/Makefile.am:
15349 * docs/reference/libs/Makefile.am:
15350 * docs/reference/libs/libs-docs.xml.in:
15351 * docs/reference/libs/libs-overrides.txt:
15352 * docs/reference/libs/libs-sections.txt:
15353 docs: remove library documentation which is non-public now
15354 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15356 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15360 * debian.upstream/Makefile.am:
15361 * debian.upstream/changelog.in:
15362 * debian.upstream/compat:
15363 * debian.upstream/control.in:
15364 * debian.upstream/copyright:
15365 * debian.upstream/gstreamer-vaapi-doc.install.in:
15366 * debian.upstream/gstreamer-vaapi.install.in:
15367 * debian.upstream/rules:
15368 Remove debian.upstream packaging
15369 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15371 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15373 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15374 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15375 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15376 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15377 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15378 * gst/vaapi/gstcompat.h:
15379 * gst/vaapi/gstvaapi.c:
15380 * gst/vaapi/gstvaapidecode.c:
15381 * gst/vaapi/gstvaapiencode.c:
15382 * gst/vaapi/gstvaapipluginbase.c:
15383 * gst/vaapi/gstvaapipluginbase.h:
15384 * gst/vaapi/gstvaapipluginutil.c:
15385 * gst/vaapi/gstvaapisink.c:
15386 Remove old gst version guards
15387 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15388 all the old GStreamer version guards.
15389 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15391 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15393 * gst/vaapi/gstvaapiparse.c:
15394 Remove video parser crufts
15395 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15397 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15399 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15401 * docs/reference/libs/Makefile.am:
15402 * docs/reference/plugins/Makefile.am:
15403 * gst-libs/gst/vaapi/Makefile.am:
15404 * gst/vaapi/Makefile.am:
15405 * tests/Makefile.am:
15406 libs: remove versioning
15407 Since we don't install libraries anymore, it makes no sense to keep
15408 versioning them according to the gstreamer's version.
15409 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15411 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15414 * debian.upstream/Makefile.am:
15415 * debian.upstream/control.in:
15416 * debian.upstream/libgstvaapi-dev.install.in:
15417 * debian.upstream/libgstvaapi-drm.install.in:
15418 * debian.upstream/libgstvaapi-glx.install.in:
15419 * debian.upstream/libgstvaapi-wayland.install.in:
15420 * debian.upstream/libgstvaapi-x11.install.in:
15421 * debian.upstream/libgstvaapi.install.in:
15422 * gst-libs/gst/vaapi/Makefile.am:
15423 * tests/Makefile.am:
15424 libs: make libraries no installables
15425 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15427 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15429 * debian.upstream/libgstvaapi-dev.install.in:
15430 * gst-libs/gst/vaapi/Makefile.am:
15431 Do not install libgstvaapi headers
15432 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15434 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15438 * patches/Makefile.am:
15439 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15440 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15441 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15442 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15443 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15444 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15445 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15446 * patches/videoparsers/Makefile.am:
15447 * patches/videoparsers/series.frag:
15448 Remove videoparser patches
15450 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15454 * debian.upstream/libgstvaapi-dev.install.in:
15455 * pkgconfig/Makefile.am:
15456 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15457 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15458 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15459 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15460 * pkgconfig/gstreamer-vaapi.pc.in:
15461 Remove pkg-config files
15462 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15464 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15470 * ext/codecparsers:
15471 * gst-libs/gst/Makefile.am:
15472 * gst-libs/gst/codecparsers/Makefile.am:
15473 * gst-libs/gst/vaapi/Makefile.am:
15474 * gst/vaapi/Makefile.am:
15475 Remove codecparsers submodule
15476 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15478 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15483 * debian.upstream/libgstvaapi.install.in:
15485 * ext/libvpx/Makefile.am:
15486 * ext/libvpx/gstlibvpx.c:
15487 * ext/libvpx/gstlibvpx.h:
15488 * ext/libvpx/libgstcodecparsers_vpx.vers:
15489 * ext/libvpx/sources.frag:
15490 * ext/libvpx/upstream:
15491 * gst-libs/gst/codecparsers/Makefile.am:
15492 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15493 Remove libvpx submodule
15494 We will be using upstream codecparsers always.
15495 No more internal libvpx !
15497 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15500 build: fix check for GstJpegParser
15501 Right now the local JPEG parser is always compiled because the check for the
15502 upstreamed version is broken: it looks for an non existent symbol:
15504 This patch changes that check for< GstJpegFrameHdr.
15505 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15507 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15509 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15510 wayland: free the frame in frame_release_callback()
15511 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15512 decouple wl_buffer from frame).
15513 Otherwise the frame may be overwritten while it is still used by the
15515 The frame done callback (frame_done_callback()) is called, when the
15516 compositor is done processing the frame and hands it to the hardware.
15517 The buffer release callback (frame_release_callback()) is called when the
15518 buffer memory is no longer used.
15519 This can be quite some time later: E.g. if weston (with the DRM backend)
15520 puts the buffer on a hardware plane, then then buffer release callback is
15521 called when the kernel is done with the buffer. This is usually when the
15522 next frame is shown, so most likely after the frame done callback for the
15524 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15525 destroy()" the mentioned possible leak should no longer be a problem, so
15526 reverting this change should cause no leaking buffers.
15527 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15528 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15529 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15531 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15533 * gst/vaapi/gstvaapipostproc.c:
15534 vaapipostproc: check ANY caps at transform_caps()
15535 When transforming downstream caps we should check for ANY caps from peer pad,
15536 otherwise we get a segmentation fault.
15537 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15538 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15540 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15542 * gst/vaapi/gstvaapisink.c:
15543 vaapisink: ignore frame if its upload failed
15544 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15545 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15546 ignored by the vaapisink, leading to a segmentation fault.
15547 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15548 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15549 segmentation fault, but doing and effort to continue rendering. This is
15550 the same behavior of ximagesink.
15551 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15552 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15554 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15557 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15558 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15560 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15562 * gst-libs/gst/vaapi/gstvaapicontext.c:
15563 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15564 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15565 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15566 Add 10 HEVC 10 bit decoding support
15567 Only supporting vaapidecode ! vaapisink combination for now.
15568 Missing dependencies:
15569 1: No support for P010 video format in GStreamer
15570 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15571 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15572 through GstVideoMeta.
15573 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15574 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15575 of the surfaces is implementation (driver) defined, which is P010.
15577 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15579 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15580 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15581 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15582 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15583 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15584 chroam type and dimensions. The underlying format of the surfaces is
15585 implementation (driver) defined.
15587 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15589 * gst-libs/gst/vaapi/gstvaapisurface.h:
15590 * gst-libs/gst/vaapi/gstvaapiutils.c:
15591 Add definitions for YUV420 with more than 8 bits per channel
15593 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15595 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15596 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15598 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15601 Bump version for development
15603 === release 0.7.0 ===
15605 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15610 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15615 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15620 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15625 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15627 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15628 texture: detect GL version and use the proper API
15629 When receiving the texture from the application or the video sink, we must
15630 know it size and border. To query the texture the API has changed according to
15631 the OpenGL version used in the GL context of the application/vsink.
15632 This patch checks the current context API type and queries the texture
15633 according to this detected API.
15634 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15635 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15637 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15639 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15640 texture: check for expected target and format
15641 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15642 formats GL_RGBA or GL_BGRA.
15643 This patch adds a debugging verification of those values.
15644 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15645 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15647 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15649 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15650 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15651 libs: add gl3_bind_texture_2d()
15652 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15653 needed. In particular, the Intel's Mesa implementation complains if it is
15655 This patch add a new binding function for 2D textures, without enabling
15656 gl3_bind_texture_2d()[2].
15657 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15658 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
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:14:45 +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 gl_get_current_api()
15667 In order to know which OpenGL API use, we must detect the API type of current
15668 context. This patch adds the function gl_get_current_api() which returns the
15670 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15672 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15673 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15675 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15678 * gst-libs/gst/vaapi/Makefile.am:
15679 build: Add gmodule dependency for libgstvaapi_egl
15680 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15682 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15684 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15685 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15686 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15687 * patches/videoparsers/series.frag:
15688 patches/videoparsers: h264: Disable passthorugh mode enabling
15689 This is a quick fix for regression introduced by the upstream
15690 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15691 The patch is disabling the passthrough mode, otherwise it will
15692 break multi-layer mvc stream parsing.
15693 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15695 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15697 * gst/vaapi/Makefile.am:
15698 * patches/videoparsers/Makefile.am:
15699 * patches/videoparsers/series.frag:
15700 build: add gsth265parse patches conditionally
15701 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15702 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15704 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15705 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15707 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15709 * gst/vaapi/Makefile.am:
15710 build: declare correctly parse lib built files
15711 This is a continuation of commit fc8a0d12
15712 When declaring BUILT_SOURCES, those files should not be distributed. This
15713 patch avoids the distribution of the generated source code.
15714 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15715 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15717 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15719 * ext/libvpx/sources.frag:
15720 build: libvpx: Add missing source file
15722 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15724 * gst/vaapi/gstvaapipostproc.c:
15725 vaapipostproc: Correctly detect the caps change
15726 This is a quick fix for regression introuduced by the
15727 commit 757833230bc73b8e3b4e31649e4618ba802bea51
15728 With out this, the gst_vaapipostproc_create() will
15730 https://bugzilla.gnome.org/show_bug.cgi?id=758543
15732 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15734 * ext/libvpx/Makefile.am:
15735 * ext/libvpx/sources.frag:
15736 build: libvpx: update the sources lists
15737 `make dist` broke since commit f06798 (libvpx: Update the submodule to
15738 libvpx-1.4.0) because the sources.frag does not contain all the module
15740 This patch updates thoroughly the sources.
15741 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15742 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15744 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15746 * gst/vaapi/gstvaapipostproc.c:
15747 vaapipostproc: don't set caps change at first set
15748 When the source caps change, the filter is destroyed and recreated.
15749 Nonetheless, this happens every time the vaapipostproc starts, since the caps
15750 change detection algorithm does not take in consideration when the caps are
15752 This patch intents to be an optimization, to avoid a useless filter
15753 destroy-creation cycle when the sources caps are set for first time.
15754 The new helper function video_info_update() is a refactorization to avoid
15756 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15757 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15759 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15761 * gst/vaapi/gstvaapipostproc.c:
15762 vaapipostproc: params video_info_changed() callers
15763 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15764 swapped the the order. This didn't raise problems since the comparison of both
15765 structures were not affected by its semantics.
15766 But still it would be better to fix this to keep the coherence of the code.
15767 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15768 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15770 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15772 * gst/vaapi/Makefile.am:
15773 build: declare real built files
15774 When runnig the `make dist` target from a clean tree, it fails because
15775 if could not find the copied files from codecparsers submodule.
15776 They weren't copied because they weren't declared as built sources.
15777 This patch removes the stamp mechanism and use the actual file list to copy
15778 as the built sources. Also it fixes the duplication of the parser files.
15779 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15780 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15782 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15784 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15785 decoder: vp9: Fix last/golden/altref frame index setting
15786 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15787 based on what ever reference frame indices encoded in frame header.
15789 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15791 * debian.upstream/rules:
15792 debian: remove custom parallel compilation
15793 In order to build a debian package with upstream source, the user should
15796 cp -a debian.upstream debian
15797 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15798 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15799 way to make a parallel build (-j8 in this case).
15800 This commit removes the script in debian/rules that detects the number of
15801 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15802 official in debian.
15803 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15804 https://bugzilla.gnome.org/show_bug.cgi?id=754087
15806 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15808 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15809 decoder: vp9: Fix PTS calculation of cloned frames
15811 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15813 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15814 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15815 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15816 gstvaapidecoder base calss is reponsible for handling those frames later on.
15817 No need for explicit verification of frame header's show_frame in order to
15818 do picture outputing.
15820 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15822 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15823 decoder: vp9: Fix ref picture update while doing repeat frame
15824 Don't try to do frame decoding and reference picture update
15825 while receiving a vp9 frame having show_existing_frame flag
15828 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15830 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15831 decoder: vp9: Add repeat-frame display handling
15832 If vp9 frame header come up with show_existing_frame flag set,
15833 we should duplicate the existing decoded frame as current frame to
15836 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15838 * gst/vaapi/gstvaapidecodebin.c:
15839 vaapidecodebin: add me as element co-author
15840 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15841 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15843 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15845 * gst/vaapi/gstvaapidecodebin.c:
15846 vaapidecodebin: try to get display from decoder
15847 Rather than create a dummy display, if none has propagated as a context, we
15848 should try to get the one from vaapidecode.
15849 As the bin is already in READY state, the vaapidecode should be also in that
15850 state. That means that the contexts have been negotiated, and it should have
15852 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15853 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15855 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15857 * gst/vaapi/gstvaapidecodebin.c:
15858 * gst/vaapi/gstvaapidecodebin.h:
15859 vaapidecodebin: add postprocessor dynamically
15860 The former approach to left the bin unfinished has some problems: the context
15861 cannot be shared because the vaapidecode is unlinked in many cases, leading to
15862 creating a VADisplay twice.
15863 Initially the bin is fully functional, constructed as
15864 (-----------------------------------)
15866 | (-------------) (-------) |
15867 |<--| vaapidecode |--->| queue |--->|
15868 | (-------------) (-------) |
15869 (-----------------------------------)
15870 When the context is shared and the VADisplay has VPP capabilities, before
15871 changing to READY state, the bin is reconfigured dynamically, adding the
15872 vaapipostproc element afeter the queue:
15873 (--------------------------------------------------------)
15875 | (-------------) (-------) (---------------) |
15876 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15877 | (-------------) (-------) (---------------) |
15878 (--------------------------------------------------------)
15879 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15880 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15882 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15884 * gst/vaapi/gstvaapidecodebin.c:
15885 vaapidecodebin: delay the bin configuration
15886 Delay the bin configuration until changing to READY state. This is because we
15887 should add the vaapipostproc element until the vaapidecode has emitted the
15888 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15890 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15891 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15893 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15895 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15896 decoder: vp9: Add crop rectangle support.
15897 Set crop rectange if:
15898 There is display_width and display_height which is different from actual width/height
15900 The changed resolution is less than the actual configured dimension of surfaces
15902 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15904 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15905 decoder: vp9: Fix the context and surface pool reset for multi resolution video
15906 Unlike other decoders, vp9 decoder doesn't need to reset the
15907 whole context and surfaces for each resolution change. Context
15908 reset only needed if resolution of any frame is greater than
15909 what actullay configured. There are streams where a bigger
15910 resolution set in ivf header or webm header but actual resolution
15911 of all frames are less. Also it is possible to have inter-prediction
15912 between these multi resolution frames.
15914 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15916 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15917 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15918 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15919 Preliminary fix for supproting multi resolution video decode.
15921 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15923 * gst/vaapi/gstvaapidecode.c:
15924 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15926 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15928 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15929 decoder: vp9: Set lossless flag from frame header
15931 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15933 * ext/codecparsers:
15934 codecparsers: Update to gst-vaapi-branch d9f25
15935 d9f2527: codecparsers: vp9: Set lossless flag in frame header
15937 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15939 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15940 libs: vp9: remove unused symbols
15941 clang complains about a couple variables and one label which were not
15942 used. This patch removes them.
15943 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15944 https://bugzilla.gnome.org/show_bug.cgi?id=757958
15946 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15948 * ext/codecparsers:
15949 codecparsers: Update to gst-vaapi-branch da251bb
15950 da251bb: codecparsers: vp9: Optimize the memory allocation
15951 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15953 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15955 * gst/vaapi/gstvaapipluginbase.c:
15956 * gst/vaapi/gstvaapipluginbase.h:
15957 plugin: guard pointers to pad query functions
15958 Since gstreamer 1.4 is not required to have pad query functions if the query
15960 This patch guards out the pad query functions for gstreamer < 1.4
15961 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15962 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15964 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15966 * gst/vaapi/gstvaapiencode.c:
15967 vaapiencode: use pad query vmethods
15968 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15969 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15970 while keeps support for previous versions of gstreamer.
15971 This patch is relevant since GstVideoEncoder takes care of other queries that
15972 we are currently ignoring.
15973 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15974 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15976 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15978 * gst/vaapi/gstvaapidecode.c:
15979 vaapidecode: return pad's template caps if no display
15980 A caps query can occur before the element has a display. In that case, the
15981 element can return its pad's template. But when the element already has a
15982 display, and the caps probe fails, the element shall return an empty caps, so
15983 the auto-plug could try with another decoder.
15984 If the element has a display and the caps probe works, then the computed caps
15985 should be returned.
15986 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15987 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15989 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15991 * gst/vaapi/gstvaapidecode.c:
15992 * gst/vaapi/gstvaapisink.c:
15993 plugins: don't create display at caps query
15994 Caps query can happen before the element has a bus. The display creation should
15995 be should occur on the context negotiation, when the bus is already configured.
15996 Then at caps query no display should be created.
15997 Instead of force the display creation, we graciously fail the allowed_caps()
15999 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
16000 basetransform descendant, seems to be not affected by this, nor the encoders.
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-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16006 * gst/vaapi/gstvaapidecode.c:
16007 * gst/vaapi/gstvaapiencode.c:
16008 * gst/vaapi/gstvaapipluginutil.c:
16009 * gst/vaapi/gstvaapipluginutil.h:
16010 * gst/vaapi/gstvaapipostproc.c:
16011 * gst/vaapi/gstvaapisink.c:
16012 plugins: fix context query handling
16013 The current context query handling design is flawed: the function
16014 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
16015 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
16016 pad query function should handle differently each case.
16017 This patch changes the gst_vaapi_reply_to_query() for
16018 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
16019 to match the correct context query handling.
16020 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16021 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16023 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16025 * gst/vaapi/gstvaapipluginutil.c:
16026 plugin: don't lose previous context at query
16027 When processing the GST_CONTEXT_QUERY we should not lose the previous
16028 context in the query, we should only add our display structure.
16029 This patch copies the old context, if it is there, and stamp our display on
16030 it. Otherwise, a new context is created.
16031 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16032 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16034 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16036 * gst/vaapi/gstvaapivideocontext.c:
16037 * gst/vaapi/gstvaapivideocontext.h:
16038 vaapivideocontext: add gst_vaapi_video_context_set_display()
16039 This function set the display to an already created context. This function is
16040 going to be used later.
16041 Also, gst_vaapi_video_context_new_with_display() now uses this function.
16042 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16043 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16045 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16047 * gst/vaapi/gstvaapipluginutil.c:
16048 * gst/vaapi/gstvaapivideocontext.c:
16049 * gst/vaapi/gstvaapivideocontext.h:
16050 plugins: check if display is set in sync
16051 Since the context messages are sync'ed, the display assignation happens in the
16052 same thread, hence we can know if the display was found or not as soon we call
16054 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
16055 as a new parameter, the address of the plugin's display, and reports back if
16056 the display was found and set.
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:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16062 * gst/vaapi/gstvaapipluginutil.c:
16063 * gst/vaapi/gstvaapivideocontext.c:
16064 plugins: set display through context
16065 Instead of setting the display to the plugin directly after its creation, do
16066 it through the gstreamer's context mechanism, avoiding double assignations.
16067 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16068 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16070 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16072 * gst/vaapi/gstvaapivideocontext.c:
16073 vaapivideocontext: rename context structure
16074 The context structure is named "display" which is too generic. The contrary
16075 happens, for example, with GstGL, what uses the same name as the context, and
16076 its logs make more sense.
16077 This patch renames the context structure with the same name as the
16078 context, thus GST_PTR_FORMAT can pretty print it.
16079 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16081 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16083 * gst/vaapi/gstvaapivideocontext.c:
16084 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
16085 First, refactorized run_context_query() into _gst_context_run_query(), adding
16086 a new parameter: the pad direction, in order to simplify the code.
16087 Second, added a new helper function: _gst_context_query(), which is a generic
16088 context query function. It isolates the operation of running the query and
16089 sets the context if found, also it enhances the logs.
16090 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
16091 future this helper function will be merged into the core libraries of
16093 Finally, gst_vaapi_video_context_prepare() was rewritten to use
16094 _gst_context_query().
16095 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16096 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16098 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16100 * gst/vaapi/gstvaapivideocontext.c:
16101 vaapivideocontext: refactor context category debug
16102 Refactor the extraction GST_CAT_CONTEXT logging using a only once
16103 initializator, so we could get the debug category from different code
16105 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16106 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16108 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16110 * gst/vaapi/gstvaapivideocontext.c:
16111 gstvaapivideocontext: fix indentation
16112 gst-indent does not handle correctly some expression like function
16113 declaration with attributes, breaking the following expressions.
16114 This patch makes gst-indent to ignore the attributed function
16115 declartion so the followed function definition is not mangled, such
16116 as happened in commit b4154a
16117 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16118 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16120 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16122 * gst/vaapi/gstvaapipluginbase.c:
16123 plugin: chain up set_context() vmethod
16124 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16125 the parent class in order to broadcast all its contexts when the element
16126 is added into a bin:
16127 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16128 There is no need to guard the call, because before GStreamer 1.7, the
16129 set_context() vmethod was NULL in the element class, hence the conditional
16131 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16132 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16134 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16136 * tests/simple-encoder.c:
16137 tests: simple-encoder: remove dead code
16138 The caps creation for codec state configuration is not used. Let's remove it.
16139 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16141 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16143 * gst/vaapi/gstvaapidecodebin.c:
16144 vaapidecodebin: fix a leaked display instance
16145 The display returned by gst_vaapi_video_context_get_display() increments the
16146 references. Thus, we have to unref the returned display.
16147 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16148 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16150 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16152 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16153 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16154 libs: remove unneeded headers
16155 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16156 required to include them in the header. It is not also required to include
16157 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16158 exposes their structures (e.g. GLXPixmap).
16159 Nonetheless, glext.h neither glxext.h are required to include, they are
16160 already included conditionally by gl.h and glx.h, respectively.
16161 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16162 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16164 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16166 * ext/codecparsers:
16167 codecparsers: Update to gst-vaapi-branch 0ea6792
16168 0ea6792: codecparsers: vp9: Add header comments
16169 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16171 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16173 * gst/vaapi/gstvaapidecode.c:
16174 VP9: plugins: Add VP9 decoder
16176 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16178 * gst-libs/gst/vaapi/Makefile.am:
16179 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16180 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16181 VP9: libgstvaapi: Add VP9 decoder
16183 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16185 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16186 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16187 VP9: gstvaapiprofile: Add profile definitions
16189 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16192 VP9: build: Check availability of vp9 decoder APIs
16194 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16198 * gst-libs/gst/codecparsers/Makefile.am:
16199 VP9: Allow building vp9 codecparser internally
16201 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16203 * ext/codecparsers:
16204 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16205 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16206 e7d9217: codecparser: h264: initialize parsing structures
16207 403d400: codecparser: h265: initialize parsing structures
16209 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16212 configure.ac: don't use an undefined variable
16213 If the environment lacks of gstreamer development packages, this error will
16214 be reported to the user: "gstreamer- was not found"
16215 This is because we are using an undefined variable in the printed message. The
16216 fix simple changes the variable for the hard-coded string "1.0".
16217 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16218 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16220 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16222 * gst/vaapi/gstvaapidecode.c:
16223 vaapidecode: relax guards for memory:VASurface capsfeature
16224 Though caps features are supported since GStreamer 1.2, there are some
16225 issues with the features caps negotiation in that version. Nonetheless,
16226 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16227 feature negotiation is relaxed for GStreamer 1.4.
16228 The guard is the same as in vaapisink's caps template.
16229 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16230 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16232 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16234 * gst/vaapi/gstvaapidecode.c:
16235 vaapidecode: decide allocation doesn't update srccaps
16236 The received caps query will bring the already negotiated caps, so they are
16237 not expected to change.
16238 This patch removes this verification which is dead code path.
16239 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16240 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16242 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16244 * gst/vaapi/gstvaapidecode.c:
16245 * gst/vaapi/gstvaapipluginutil.c:
16246 * gst/vaapi/gstvaapipluginutil.h:
16247 vaapidecode: use caps to check the features
16248 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16249 expensive, we check the caps from the allocation query, to check the
16250 negotiated feature.
16251 In order to do this verification a new utility function has been implemented:
16252 gst_vaapi_caps_feature_contains().
16253 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16254 have been refactorized.
16255 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16256 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16258 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16260 * gst/vaapi/gstvaapidecode.c:
16261 vaapidecode: set format before decide allocation
16262 There is a regression from commit 3d8e5e. It was expected the buffer pool
16263 allocation occur before the caps negotiation, but it is not.
16264 This patch fixes this regression: the caps negotiation is done regardless the
16265 allocation query from downstream.
16266 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16267 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16269 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16272 build: check for patch and fix yasm check
16273 Add configure checking for GNU patch tools and fixed configure
16274 checking YASM to correct sequence.
16275 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16276 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16278 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16280 * ext/libvpx/Makefile.am:
16281 build: Remove disable-md5 option for libvpx build
16282 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16283 has been removed in 1.4.0.
16285 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16287 * ext/libvpx/upstream:
16288 libvpx: Update the submodule to libvpx-1.4.0
16289 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16291 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16294 configure: mark support for GStreamer 1.2 as obsolete.
16295 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16296 Our goal is to support the last two stable versions of GStreamer which
16297 are 1.4 and 1.6 at the moment.
16298 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16299 release and will get rid of those in 0.8.
16301 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16303 * gst/vaapi/gstvaapidecode.c:
16304 vaapidecode: Fix buffer copy assertion
16305 Don't try to copy the NULL buffer-codec_data.
16307 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16310 build: allow builds against GStreamer 1.7.x
16311 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16313 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16315 * gst/vaapi/gstcompat.h:
16316 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16317 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16318 add an implementation if gstreamer-vaapi is linked to previous versions.
16319 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16321 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16323 * gst/vaapi/gstvaapidecode.c:
16324 vaapidecode: simplify copy of GstVideoCodecState
16325 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16327 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16329 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16330 * patches/videoparsers/series.frag:
16331 patches/videoparsers: h265parser: more API fences
16332 Add more API fences according with its version and refresh the patch.
16333 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16334 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16336 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16338 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16339 * patches/videoparsers/series.frag:
16340 patches/videoparsers: h265parser: rename patch keeping number
16341 Refresh the patch and rename it in order to keep the patch number.
16342 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16343 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16345 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16347 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16348 patches/videoparsers: h264parser: more API fences and refresh
16349 Add more API fences according with its version and refresh the patch.
16350 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16351 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16353 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16355 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16356 * patches/videoparsers/series.frag:
16357 patches/videoparsers: h264parser: fix description and refresh
16358 Fix a typo in the patch description and refresh it in order to avoid the
16359 creation of .orig files and break the distcheck target.
16360 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16361 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16363 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16365 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16366 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16367 patches/videoparsers: h264parser: refresh patches
16368 In order to avoid the creation of .orig files and break the distcheck target.
16369 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16370 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16372 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16374 * gst/vaapi/Makefile.am:
16375 build: link libgstvaapi_parse against codec parser
16376 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16377 when running configure.
16378 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16379 need it if builtin codec parsers are disabled.
16380 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16381 compilation. If builtin codec parsers are enable, this variable is null, so it
16382 should work using libgstvaapi, as normal.
16383 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16384 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16386 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16389 build: verify for H264 MVC and H265 SPS
16390 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16391 the required symbols for those were added in GStreamer 1.5
16392 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16393 parsers, the compilation fails, because the lack of those symbols.
16394 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16395 they do not, the specific built in codec parsers are enabled and used.
16396 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16397 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16399 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16401 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16402 decoder: h264: initialize PPS's slice_group_id
16403 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16404 so it contains random data.
16405 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16406 pointer uninitialized, leading to a segmentation fault when the memory is
16408 This patch prevents this by initializing the slice_group_id before the PPS
16410 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16411 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16413 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16415 * gst/vaapi/gstvaapidecode.c:
16416 vaapidecode: proper numerator and denominator for forced latency framerate
16417 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16419 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16421 * ext/codecparsers:
16422 codecparsers: Update to gst-vaapi-branch commit f9e284b
16423 dae1a84: h264parse/h265parse: Fix negotiation crash
16424 45a9f8a: codecparsers: h265 : Fix default scaling list values
16425 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16426 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16428 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16430 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16431 decoder: hevc: Don't flush dpb for EOS/EOB nal
16432 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16433 the dpb_add() itself will handle the flusing(if needed) of dpb
16434 for end of sequence and end of bitstream.
16435 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16437 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16439 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16440 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16441 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16442 just after the PicLatencyCnt setting of existing dpb frames.
16443 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16445 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16447 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16448 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16449 This fix is based on the V3 vesion of spec which was missing in older versions.
16450 When the current picture has PicOutputFlag equal to 1, for each picture in the
16451 DPB that is marked as "needed for output" and follows the current picture in output order,
16452 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16453 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16455 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16457 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16458 decoder: h265: Fix indentation
16460 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16462 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16463 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16464 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16465 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16466 * gst/vaapi/gstvaapidecode.c:
16467 * gst/vaapi/gstvaapipluginutil.c:
16468 multiview: initial attempt at stereo/multiview support
16469 Add support for marking caps and buffers for multiview or
16470 stereoscopic output.
16471 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16473 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16475 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16476 decoder: hevc: remove unused functions
16477 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16478 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16480 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16482 * gst/vaapi/gstvaapidecode.c:
16483 vaapidecode: remove (another) unused variable
16484 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16486 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16488 * gst/vaapi/gstvaapidecode.c:
16489 vaapidecode: remove unused variable
16490 Thus silence the compilation warnings.
16492 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16494 * gst/vaapi/gstvaapidecode.c:
16495 vaapidecode: compilation fix
16496 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16497 compilation where the toolchain uses restrictive flags as clang.
16498 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16500 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16502 * gst/vaapi/gstvaapidecode.c:
16503 vaapidecode: renegotiate if caps are not equal
16504 The use of gst_caps_is_always_compatible() for this optimization may lead to
16505 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16506 if it is required a re-negotiation.
16507 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16508 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16510 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16512 * gst/vaapi/gstvaapidecode.c:
16513 * gst/vaapi/gstvaapidecode.h:
16514 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16515 Delaying the pool re-negotiation untill we push all decoded (and queued)
16516 frames downstream. Otherwise for the multi-resolution videos, the
16517 GstVideoVideoMemory will be having wrong resolution and which leads
16518 to nasty behaviours, especially when using software renderers.
16519 sample media file: RAP_B_Bossen_1.bin
16521 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16522 get the final resoultion 416x240.
16523 Starting from 25 th frame, the resolution will change to 416x240. But parser
16524 elements won't report this since the effective croped resolution is same in
16525 both cases. Here the core libgstvaapi will detect this through it's internal
16526 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16527 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16528 immediately, this will not sync with the resolution of already decoded and queued
16529 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16530 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16531 untill we push all decoded frames downstream.
16532 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16534 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16536 * gst/vaapi/gstvaapidecode.c:
16537 vaapidecode: Always keep a copy of input codec state
16538 Currently we are sharing the input GstVideoCodecState with
16539 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16540 each caps change. This is troublesome in many cases, for eg: if
16541 resoultion changes with in a singe stream. Because, when ever there
16542 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16543 fields with new resolution, but since we are using the same codecstate (ref)
16544 in gstvaapidecode.c, the caps check for input caps change will always fail.
16545 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16547 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16549 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16550 decoder: hevc: Fix the scaling list scan order
16551 The default scan order of scaling lists are up-right-diagonal
16552 as per hevc specification. Use the newly implemented
16553 uprightdiagonal_to_raster conversion codecparser APIs to
16554 get the the scaling_list values in raster order, which is
16555 what the VA intel driver requires.
16557 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16559 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16560 decoder: hevc: sync with the codecparser changes
16561 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16562 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16564 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16566 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16567 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16569 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16571 * ext/codecparsers:
16572 codecparsers: Update to gst-vaapi-branch commit 69550f1
16573 c207c6d: codecparsers: h265: Fix tile row and column parsing
16574 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16575 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16576 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16577 2f0932b: h264parse: Clear SPS info after processing
16578 f57d6b0: videoparsers: enable accept-template flag
16580 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16582 * debian.upstream/control.in:
16583 debian: add yasm as build dependency
16584 As the compilation of libvpx (for vp8 parser) is enabled by default,
16585 yasm is required by default too.
16586 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16588 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16590 * debian.upstream/rules:
16591 debian: remove --with-gstreamer-api option
16592 It is no longer valid in gstreamer-vaapi.
16593 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16594 [removed unused GST_API_VERSION variable]
16595 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16596 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16598 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16600 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16601 wayland: rename is_cancelled to sync_failed
16602 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16603 sense. This commit renames this variable to sync_failed.
16605 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16607 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16608 wayland: Don't return GST_FLOW_ERROR on flushing
16609 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16610 return FALSE which makes gst_vaapi_window_wayland_render() return
16611 FALSE which ends up posting an ERROR message in
16612 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16614 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16616 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16618 * gst/vaapi/gstvaapi.c:
16619 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16620 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16622 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16624 * gst/vaapi/gstvaapidecodebin.c:
16625 vaapidecodebin: check for postproc instance
16626 If the VPP's deinterlace-method is set, first we should check if the postproc
16627 is already instanced to set it. Otherwise we just store it until the VPP is
16628 added into the bin.
16629 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16630 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16632 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16634 * gst/vaapi/gstvaapidecodebin.c:
16635 * gst/vaapi/gstvaapipluginutil.c:
16636 * gst/vaapi/gstvaapipluginutil.h:
16637 vaapidecodebin: ensure VPP before going to READY
16638 There are sometimes that the VA-API display context is not shared among the
16639 pipeline, but it is important to know it before going to READY state (when the
16640 pipeline is already linked).
16641 One instance of this case is this:
16642 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16643 This patch adds a new function in gstvaapipluginutil called
16644 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16645 display, which only will be used for verify if the VAEntrypointVideoProc is
16646 available by the hardware. Afterwards, it should be unrefed.
16647 If the vaapidecodebin is going to READY state, and the element still doesn't
16648 know if VPP is available, the last resort is to create a new instance of the
16649 VA-API display and test for it.
16650 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16652 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16654 * gst/vaapi/gstvaapidecodebin.c:
16655 vaapidecodebin: post an error message if fails
16656 If the construction of the bin fails, post an error message in the bus.
16657 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16658 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16660 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16662 * gst/vaapi/gstvaapidecodebin.c:
16663 * gst/vaapi/gstvaapidecodebin.h:
16664 vaapidecodebin: has_vpp as a tri-state variable
16665 has_vpp can be UNKNOWN while the context message hasn't being received.
16666 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16667 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16669 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16671 * gst/vaapi/gstvaapivideomemory.c:
16672 gstvaapivideomemory: native format with no derived image
16673 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16674 info based on the derived image configuration.
16675 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16676 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16678 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16680 * gst-libs/gst/vaapi/video-format.c:
16681 * gst-libs/gst/vaapi/video-format.h:
16682 * gst/vaapi/gstvaapivideomemory.c:
16683 surface pool config based on video info
16684 First added the function gst_vaapi_video_format_get_best_native(), which
16685 returns the best native format that matches a particular chroma type:
16686 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16687 RGB32 chroma and encoded format map to NV12 too.
16688 That format is used to configure, initially, the surface's pool for the
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 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16695 * gst/vaapi/gstvaapivideomemory.c:
16696 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16697 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16698 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16700 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16702 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16703 gstvaapiencoder: validate chroma according to the VA's RT format
16704 Before, only YUV420 color space where supported. With this patch, the
16705 encoder is queried to know the supported formats and admits YUV422
16706 color space if its available.
16707 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16708 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16710 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16712 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16713 decoder: hevc: Add calculation of WpOffsetHalfRangeC
16714 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16715 prediction weight table values with out using any hard coding.
16716 Fixme: We don't have parser API for sps_range_extension, so
16717 assumed zero value for high_precision_offsets_enabled_flag.
16718 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16720 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16722 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16723 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16724 Based on ITU-T rec H265(4/2015): 7-56
16725 This was a wrong equation in rec H265 (4/2013): 7-44...
16726 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16728 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16730 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16731 decoder: hevc: Fix default value assignment of pred_weight_table
16733 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16735 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16736 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16737 Assign only if ChromaArrayType != 0..
16738 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16740 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16742 * ext/codecparsers:
16743 codecparsers: Update to gst-vaapi-branch commit 1c70432
16744 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16745 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16746 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16748 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16750 * ext/codecparsers:
16751 codecparsers: Update to gst-vaapi-branch commit c18b8ad
16752 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16753 a033083: videoparsers: h265: Fix the frame start detection code
16754 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16756 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16758 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16759 decoder: hevc: Add SEI parsing
16760 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16762 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16764 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16765 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16766 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16767 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16768 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16769 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16770 is TRUE. Assuming them as MAIN profile for now.
16771 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16772 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16774 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16776 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16777 patches/videoparsers: Fix the wrong source file path
16778 This is something wrongly typed in commit 6d7b631
16780 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16782 * ext/codecparsers:
16783 codecparsers: Update to gst-vaapi-branch commit b8d8be4
16784 ee7e81b: h264parse: Don't discard first AU delimiter
16785 3690fb9: h264parse: Add more NAL types for debugging output
16786 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16787 ace61048: h265parse: expose compatible profiles to downstream
16788 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16790 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16792 * gst/vaapi/gstvaapipluginutil.c:
16793 * gst/vaapi/gstvaapivideocontext.c:
16794 * gst/vaapi/gstvaapivideocontext.h:
16795 gstvaapivideocontext: remove unused parameter
16796 gst_vaapi_video_context_prepare() received an unused parameter. This patch
16797 removes it and the structure passed by the caller.
16798 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16799 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16801 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16803 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16804 decoder: hevc: Fix decoding of stream when it has temporal sublayers
16805 We are calculating the dpb size based on max_dec_pic_buffering.
16806 But if there are more than one temporal sublayers, we are supposed
16807 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16808 size calculation (Assuming HighestTid as max_sub_layers_minus).
16809 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16810 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16811 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16813 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16815 * gst/vaapi/gstvaapidecode.c:
16816 * gst/vaapi/gstvaapidecodebin.c:
16817 * gst/vaapi/gstvaapiencode_h264.c:
16818 * gst/vaapi/gstvaapiencode_h265.c:
16819 * gst/vaapi/gstvaapiencode_jpeg.c:
16820 * gst/vaapi/gstvaapiencode_mpeg2.c:
16821 * gst/vaapi/gstvaapiencode_vp8.c:
16822 * gst/vaapi/gstvaapipluginutil.h:
16823 * gst/vaapi/gstvaapipostproc.c:
16824 * gst/vaapi/gstvaapisink.c:
16825 refactor vaapi caps strings for pad templates
16826 Refactor the main vaapi caps strings into three macros:
16827 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16828 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16829 Those are in gstvaapipluginutil.h so all the elements could use them, instead
16830 of re-declaring them every time.
16831 No functional changes.
16832 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16834 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16836 * gst/vaapi/gstvaapipostproc.c:
16837 gstvaapipostproc: fix code style
16838 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16840 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16842 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16843 decoder: hevc: Fix the decoding of dependent slice segment
16844 Decoding process for reference picture list construction needs to be
16845 invoked only for P and B slice and the value for slice_type of dependent slice
16846 segment should be taken from the previous independent slice segment header
16848 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16849 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16851 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
16853 * gst/vaapi/gstvaapipluginbase.c:
16854 plugins: reduce the noise of warnings
16855 Those messagse should be attached to the object, also the lack of
16856 caps is not an error, in particular in the case of JPEG encoding.
16857 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16858 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16860 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16862 * gst-libs/gst/vaapi/gstvaapicontext.c:
16863 gstvaapicontext: fix the JPEG encoder attribs value
16864 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16865 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16866 assigns the returned value to the attribute.
16867 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16868 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16870 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
16872 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16873 gstvaapiencoder: framerate 0/1 is valid too
16874 Framerate 0/1 is valid, and it is particularly useful for picture
16875 encoding, such as jpeg. This patch makes the encoder to admit that
16877 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16878 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16880 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16882 * gst/vaapi/gstvaapipostproc.c:
16883 vaapipostroc: GLTextureUploadMeta in sink template
16884 Advertise GLTextureUploadMeta in sink caps template.
16885 https://bugzilla.gnome.org/show_bug.cgi?id=752130
16887 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16889 * gst/vaapi/Makefile.am:
16890 * gst/vaapi/gstvaapiencode.c:
16891 * gst/vaapi/gstvaapipluginbase.c:
16892 * gst/vaapi/gstvaapipluginbase.h:
16893 * gst/vaapi/gstvaapipostproc.c:
16894 * gst/vaapi/gstvaapisink.c:
16895 * gst/vaapi/gstvaapiuploader.c:
16896 * gst/vaapi/gstvaapiuploader.h:
16897 remove gstvaapiuploader
16898 Working on bug #744042 I realized that the gstvaapiuploader is practically not
16900 This patch removes the gstvaapiuploader and add the method
16901 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16902 the system can handle, which is used by vaapisink and vaapipostproc.
16903 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16904 https://bugzilla.gnome.org/show_bug.cgi?id=752777
16906 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16908 * gst/vaapi/gstvaapidecode.c:
16909 vaapidecode: don't lost GLTextureUpload on seek
16910 When seeking, the decoder is reset, but the buffer pool is not
16911 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16912 pool has the GLTextureUpload meta.
16913 The decoder knows that GLTextureUpload meta was negotiated in
16914 decide_allocation(), but this method is not called when seeking.
16915 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16916 https://bugzilla.gnome.org/show_bug.cgi?id=752929
16918 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16920 * gst/vaapi/gstvaapipluginutil.c:
16921 plugins: don't use gst_pad_get_allowed_caps()
16922 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16923 decoders, that is OK, but in the case of the postproc might lead loops,
16924 since the gst_base_transform_query_caps() forwards the query upstream
16926 Instead of gst_pad_get_allowed_caps() we only query the peer with
16927 gst_pad_peer_query_caps() using the pad's template as filter.
16928 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16929 https://bugzilla.gnome.org/show_bug.cgi?id=752558
16931 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16936 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16938 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16939 * patches/videoparsers/series.frag:
16940 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16941 All API/ABI changes for S3D/MVC are added in 1.5, backporting
16942 them to older verison is not recommended.
16943 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16945 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16947 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16948 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16950 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16952 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16953 decoder: jpeg: Align with new API/ABI changes in codecparser
16954 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16956 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16958 * ext/codecparsers:
16959 codecparsers: Update to gst-vaapi-branch commit 800bdb2
16960 ed13220: mpegvideometa: add meta transform function
16961 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16962 7a51722: codecparsers: jpeg: fix docs for table parsing functions
16963 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16964 387a39d: codecparsers: jpeg: fix up API
16965 db9d6a9: codecparsers: jpeg: tweak API a little
16966 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16967 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16968 4658c30: codecparsers: jpeg: fix calculation of segment size
16969 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16970 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16971 9422464: h264parse: fix typo in log message
16972 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16973 77704ce: nalutils: trivial patch to check if
16974 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16975 7862f95: Revert "codecparsers: remove ignored increment of return"
16976 54017b1: h264parse: Add support for passing stereoscopic/multiview info
16977 8667ee4: h264parse: Don't switch to passthrough on set_caps()
16978 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16980 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16982 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16983 decoder: h264: track previous reference frames.
16984 Improve closure of gaps in frame_num by strictly following and trying
16985 to fill them with previous reference frames. So, they are now tracked
16986 thus avoiding insertion of dummy ("greenish") frames.
16988 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16990 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16991 decoder: h264: fix integration of second field into the DPB.
16992 If the new picture to be added to the DPB is not a first field, then
16993 it shall be the second field of the previous picture that was added
16995 This removes the need for dpb_find_picture() now that we track the
16996 immediately preceding decoded picture, in decode order.
16998 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17000 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17001 decoder: h264: fix closure of "other-field" gap.
17002 When a dummy "other-field" is inserted, it is assumed to inherit the
17003 reference flags from the first field, and the sliding window decoded
17004 reference picture marking process is also executed so that corrupted
17005 frames are moved out as early as possible.
17006 While doing so, we also try to output frames that now contain a single
17007 valid field picture, prior to inserting any other picture into the DPB.
17008 Note: this may be superfluous currently based on the fact that dpb_add()
17009 combines the two most recent pairable fields, but this process would be
17010 further simplified later on.
17012 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17014 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17015 decoder: h264: track corrupted frames.
17016 Mark the picture as "corrupted" if it is reconstructed from corrupted
17017 references or if those references are fake, e.g. resulting from lost
17019 This is useful for notifying the upper layer, or downstream elements,
17020 that the decoded frame may contain artefacts.
17021 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17023 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17025 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17026 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17027 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17028 * gst/vaapi/gstvaapidecode.c:
17029 decoder: add initial infrastructure for marking corrupted output.
17030 Add initial infrastructure in core codec library and vaapidecode to mark
17031 corrupted frames as such. A corrupted frame is such a frame that was
17032 reconstructed from invalid references for instance.
17033 https://bugzilla.gnome.org/show_bug.cgi?id=751434
17034 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17036 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17039 Bump version for development
17041 === release 0.6.0 ===
17043 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17048 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17053 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17055 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17056 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
17057 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
17058 Right now there is not a primary ranked parser for vc1 and the demuxers
17059 delivers caps without specifying the profile. This situation is not an issue
17060 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
17061 explicit profile defined in the negotiated caps.
17062 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
17063 negotiation admits caps subsets try outs.
17064 This patch solves the issue ignoring the profile negotiation in the caps. For
17065 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
17066 done without the vc1 parser, such as happens in gstreamer 1.5.
17067 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17069 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17071 * gst/vaapi/gstvaapi.c:
17072 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
17073 Unfortunately vaapidecodebin element is not seems to be stable
17074 enough for autoplugging ahead of vaapidecode.
17075 Lowering the rank for now (cosidering the immediate 0.6 release).
17076 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
17077 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17079 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17081 * gst-libs/gst/vaapi/Makefile.am:
17082 build: Add missing CFLAGS to Makefile.am
17084 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17086 * gst-libs/gst/vaapi/gstvaapifilter.c:
17087 gstvaapifilter: Only register STE property if it supported by corresponding VA library
17088 Fix the regression introduced in commit eb465fb.
17089 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17090 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17092 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17094 * gst/vaapi/gstvaapipostproc.c:
17095 vaapipostproc: no format convert on GL tex upload meta
17096 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
17097 color format of the buffer.
17098 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17100 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17102 * gst-libs/gst/vaapi/gstvaapifilter.c:
17103 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
17104 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17105 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17107 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17109 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17110 encoder:h265: Fix the check for packed-header support
17111 Use VA_ENC_PACKED_HEADER_* definition for checking.
17112 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17114 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17116 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17117 encoder:h264: Fix the check for packed-header support
17118 Use VA_ENC_PACKED_HEADER_* definition for checking.
17119 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17121 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17123 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17124 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17125 One buffering_period() SEI message shall be present in every IDR access unit
17126 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17127 use a non-CQP mode, e.g. CBR. In other words, when
17128 nal_hrd_parameters_present_flag is set to 1.
17129 One picture_timing() SEI messages shall be present in every access unit
17130 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17131 https://bugzilla.gnome.org/show_bug.cgi?id=722734
17132 https://bugzilla.gnome.org/show_bug.cgi?id=751831
17133 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17135 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17137 * gst/vaapi/gstvaapidecodebin.c:
17138 vaapidecodebin: notify if vpp is disabled
17139 When the system is aware that VPP is not available by the VA driver,
17140 it would be useful to notify to the user that the disable-vpp property
17142 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17144 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17146 * gst/vaapi/gstvaapidecodebin.c:
17147 * gst/vaapi/gstvaapidecodebin.h:
17148 vaapidecodebin: enable vpp if it is available
17149 Instead of creating and adding VPP into the bin at setup, we wait until
17150 we are sure the VA driver supports it. We know that when the VA video
17151 context is received by the bin. Afterwards, it is decided to instanciate
17152 and link the VPP or not.
17153 This is more efficient and safer than waiting the VPP to fail and then
17155 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17157 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17159 * tests/test-display.c:
17160 * tests/test-windows.c:
17161 tests: Fix compilation while enabling egl as the only renderer in build
17162 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17164 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17167 configure: fix the build while enabling egl as the only renderer
17169 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17172 libs: Bump library major version
17174 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17176 * gst/vaapi/gstvaapi.c:
17177 * gst/vaapi/gstvaapidecodebin.c:
17178 * gst/vaapi/gstvaapiencode.c:
17179 * gst/vaapi/gstvaapiencode_jpeg.c:
17180 * gst/vaapi/gstvaapipluginbase.c:
17181 * gst/vaapi/gstvaapipluginutil.c:
17182 * gst/vaapi/gstvaapipostproc.c:
17183 * gst/vaapi/gstvaapivideobufferpool.c:
17184 * gst/vaapi/gstvaapivideocontext.c:
17185 * gst/vaapi/gstvaapivideomemory.c:
17186 * gst/vaapi/gstvaapivideometa.c:
17187 gst/vaapi: Switch to upstreram like indentation.
17188 gst-indent for all gst/vaapi/*.c source files
17190 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17192 * gst/vaapi/gstvaapidecodebin.c:
17193 * gst/vaapi/gstvaapidecodebin.h:
17194 vaapidecodebin: Add property to disable VPP
17195 Adding a new propery "disable-vpp", enabling it will prevent
17196 the insertion of vaapipostproc child element.
17197 This is helpful in debugging, specifically to narrow-down the
17198 vaapidecodebin/vaapipostproc related negotiation issues.
17199 No support for run-time disabling for now.
17200 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17202 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17204 * gst/vaapi/gstvaapipostproc.c:
17205 vaapipostproc: Fix wrong selection of passthrough mode.
17206 The Current code path is falling back to passthorugh mode if there is no
17207 vpp property set by the user explictily. But we should not use the
17208 passthrough mode if the negotiated src pad caps have a differnt color space
17209 format than sink pad caps (Even though the user didn't set the format property
17211 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17212 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17214 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17216 * gst/vaapi/gstvaapipostproc.c:
17217 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17218 This is a workaround to deal with the va-intel-driver for non-native
17219 formats while doing advanced deinterlacing. The format of reference surfaces must
17220 be same as the format used by the driver internally for motion adaptive
17221 deinterlacing and motion compensated deinterlacing.
17222 A permanent solution could be to do the color space conversion internally
17223 for reference surfaces.
17224 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17225 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17227 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17229 * gst/vaapi/gstvaapisink.c:
17230 Work around ABBA deadlock between vaapisink and vaapipostproc
17231 vaapisink takes the display lock, then does a gst_buffer_replace which can
17232 take the lock on the gst_vaapi_video_pool.
17233 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17234 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17235 surfaces, which means that gst_vaapi_surface_create is
17236 called. gst_vaapi_surface_create takes the display lock.
17237 If vaapisink and vaapipostproc are in different threads, and this happens,
17238 you get a deadlock. vaapisink holds the display lock, and wants the
17239 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17240 and wants the display lock.
17241 Work around this by releasing the display lock in vaapisink around the
17242 gst_buffer_replace.
17243 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17244 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17245 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17247 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17249 * gst/vaapi/gstvaapidecodebin.c:
17250 * gst/vaapi/gstvaapidecodebin.h:
17251 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17252 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17254 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17256 * gst/vaapi/gstvaapipostproc.c:
17257 vaapipostproc: log negotiated caps
17259 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17261 * gst/vaapi/gstvaapipostproc.c:
17262 vaapipostproc: remove useless debug message
17264 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17266 * gst/vaapi/gstvaapidecode.c:
17267 vaapidecode: log negotiated src/sink caps
17269 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17271 * gst/vaapi/gstvaapisink.c:
17272 vaapisink: error handling if rendering fails
17273 This patch enhance the code path when an error is found when rendering a
17275 If the video meta doesn't contain a surface proxy or a surface, a warning
17276 message is printed.
17277 If the rendering backend fails, a error message is posted in the bus.
17278 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17280 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17282 * gst/vaapi/gstvaapisink.c:
17283 vaapisink: Fix the conditional pad template creation.
17285 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17287 * tests/Makefile.am:
17288 build: Don't build simple-encoder test program if there is no VA Encoding support
17289 This will fix the build error against older VA-APIs <= 0.32
17291 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17293 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17294 * gst-libs/gst/vaapi/gstvaapicompat.h:
17295 Fix build error for older VA-API versions
17296 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17297 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17300 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17302 * gst/vaapi/gstvaapisink.c:
17303 vaapisink: Fix the capsfeature advertisement in padtemplate
17304 This fixes the regression introduced in 64acc74.
17305 If a pad supports multiple set of capsfeatures, it needs to add
17306 multiple equal structures with different feature sets to the caps.
17307 Because caps structures with the same name but with a non-equal
17308 set of caps features are not compatible.
17309 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17310 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17312 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17314 * gst/vaapi/gstvaapisink.c:
17315 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17316 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17317 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17318 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17320 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17322 * gst/vaapi/gstvaapipluginbase.c:
17323 vaapipluginbase: Override downstream allocation reply if no pool
17324 If the downstream replied without a pool, then override it.
17325 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17327 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17329 * gst/vaapi/gstvaapipostproc.c:
17330 * gst/vaapi/gstvaapipostproc.h:
17331 vaapipostproc: add color balance interface
17332 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17334 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17336 * gst-libs/gst/vaapi/gstvaapifilter.c:
17337 * gst-libs/gst/vaapi/gstvaapifilter.h:
17338 * gst/vaapi/gstvaapipostproc.c:
17339 * gst/vaapi/gstvaapipostproc.h:
17340 vaapipostproc: add skin tone enhancement
17341 Added the 'skin-tone-enhancement' property to vaapostproc.
17342 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17344 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17346 * docs/reference/libs/libs-docs.xml.in:
17347 doc: add VA-API reference in freedesktop
17349 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17351 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17352 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17353 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17354 patches/videoparsers: rebase all the h264parse patches
17355 In order to avoid the creation of .orig files and break the distcheck target
17357 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17359 * ext/libvpx/Makefile.am:
17360 build: don't build in parallel libvpx
17361 This fixes the distcheck -j XX target.
17363 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17365 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17366 encoder: jpeg: Fix the packed header generation
17367 This is a work-around to satisfy the va-intel-driver.
17368 Normalize the quality factor and scale QM values (only for packed header
17369 generation) similar to what VA-Intel driver is doing . Otherwise the
17370 generated packed headers will be wrong, since the driver itself is
17371 scaling the QM values using the normalized quality factor.
17372 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17373 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17375 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17377 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17378 decoder: h264: fix uninitialized variables in avcC mode.
17379 Fix uninitialized variables when decoding SPS and PPS NAL units from
17380 "codec-data" buffers. This is particularly important when seeking ops
17381 are involved, and the new persistent states are used more often.
17382 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17384 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17386 * gst/vaapi/gstvaapidecode.c:
17387 vaapidecode: remove unneeded casting
17388 And a code-style fix
17390 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17392 * gst/vaapi/gstvaapidecode.c:
17393 vaapidecode: calculate decoding latency
17394 This is a naïve approach to the calculation of the VA-API decoding latency. It
17395 takes into consideration when the frame-rate has some insane value.
17396 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17398 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17401 configure: Compiling against libgstgl requires libgstvideo
17402 Fix detection of the GstGL helper headers in uninstalled
17405 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17407 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17408 encoder: hevc: Fix the size over-flow for encoded buffer.
17409 The approximation of 6 times compression ratio migh not
17410 work in all cases. Especially when enabling I frames.
17411 Provide large enough size for coded-buffer creation.
17413 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17415 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17416 encoder: vp8: Fix the size over-flow for encoded buffer.
17417 The approximation of 4 times compression ratio will not
17418 work in all cases. Especially when enabling I frames.
17419 Provide large enough size for coded-buffer creation.
17421 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17423 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17424 encoder: hevc: fix bug in multi slice encoding.
17425 This is a work-around for satisfying the VA-Intel driver.
17426 The driver only support slices begin from CTU row start address.
17427 Multi-Slice encoding also requires a fix in va-intel-driver:
17428 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17429 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17430 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17432 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17434 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17435 decoder: h264: add initial support for loss of pictures.
17436 Implement decoding process for gaps in frame_num (8.5.2). This
17437 also somewhat supports unintentional loss of pictures.
17438 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17439 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17440 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17441 [fixed derivation of POC, ensured clone is valid for reference,
17442 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17443 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17445 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17447 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17448 decoder: h264: add support for missing first field.
17449 Try to identify missing first fields too, thus disregarding any
17450 intermediate gaps in frames. We also assume that we keep the same
17451 field sequence, i.e. if previous frames were in top-field-first
17452 (TFF) order, then so are subsequent frames.
17453 Note that insertion of dummy first fields need to operate in two
17454 steps: (i) create the original first field that the current field
17455 will inherit from, and (ii) submit that field into the DPB prior
17456 to initializing the current (other) field POC values but after any
17457 reference flag was set. i.e. copy reference flags from the child
17458 (other field) to the parent (first field).
17459 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17461 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17463 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17464 decoder: h264: add support for missing second field.
17465 Interlaced H.264 video frames always have two fields to decode and
17466 display. However, in some cases, e.g. packet loss, one of the field
17467 can be missing. This perturbs the reference picture marking process,
17468 whereby the number of references available in DPB no longer matches
17469 the expected value.
17470 This patch adds initial support for missing field within a decoded
17471 frame. The current strategy taken is to find out the nearest field,
17472 by POC value, and with the same parity.
17473 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17475 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17477 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17478 decoder: h264: improve tracking of "top-field-first" flag.
17479 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17480 does not mandate it. This will be useful for tracking missing fields, and
17481 also for more correct _split_fields() implementation for frames in the DPB.
17483 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17485 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17486 decoder: h264: skip all pictures prior the first I-frame.
17487 Don't try to decode pictures until the first I-frame is received within
17488 the currently active sequence. There is no point is decoding and then
17489 displaying frames with artifacts.
17491 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17493 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17494 decoder: h264: fix processing of EOSEQ NAL.
17495 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17496 picture for decoding again. This is pretty vintage code that dates back
17497 before the existing of the whole decoder units machinery.
17498 One issue that could be arising if that code was kept is that we could
17499 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17500 Once without the decode_only flag set, and once with that flag set. The
17501 end result is that the GstVideoDecoder would release the codec frame
17502 twice, thus releasing stale data.
17503 In short, the piece of code that is removed by this patch is for once
17504 completely obsolete for a while, and secondly error-prone in corner
17507 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17509 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17510 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17511 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17512 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17513 decoder: add utility function to clone picture objects.
17514 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17515 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17516 [added cosmetic changes, fixed propagation of "one-field" flag to
17517 children, fixed per-codec clone modes (h264)]
17518 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17520 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17522 * gst/vaapi/Makefile.am:
17523 build: don't compile HEVC encoder if not supported
17525 (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
17526 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17527 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17528 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17530 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17532 * gst-libs/gst/vaapi/gstvaapicompat.h:
17533 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17534 HEVC: decode: add missing va_dec_hevc header
17535 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17536 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17537 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17539 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17541 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17542 mpeg2: fix PTS cache for GOP start.
17543 If the GOP temporal sequence number (TSN) is interpolated from a valid
17544 PTS, then we need to compensate that PTS corresponding to the start of
17545 GOP with the next picture to be decoded, which shall be an I-frame,
17546 based on its sequence number.
17547 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17549 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17551 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17552 mpeg2: avoid crash when seeking with debug logs
17553 Move down the debug message when the state of the decoder is verified
17554 so the slice header is not NULL.
17556 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17558 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17559 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17560 Reset state and add some checks for safe state to avoid a crash and
17561 a warning after the decoder is destroyed/recreated during a seek.
17563 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17565 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17566 * patches/videoparsers/series.frag:
17567 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17568 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17570 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17572 * ext/codecparsers:
17573 codecparsers: Update to gst-vaapi-branch commit 20ee952
17574 b7dded3: h264parse: don't consider unknown stream-format as avc
17575 5110ad9: h264parse: fix up handling of input caps corner cases
17576 e51db3e: h264parse: Remove dead code
17577 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17578 8482957: h265parse: Fix profile, tier and level setting in caps
17579 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17580 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17581 6886a31: h264parse: Fix profile and level setting in caps
17582 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17583 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17584 53074fc: build: Upgrade GStreamer dependency to 1.0
17585 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17587 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17589 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17590 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17591 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17593 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17595 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17596 HEVC: decode: Update Cropping Rectangle
17597 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17599 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17601 * gst/vaapi/Makefile.am:
17602 * gst/vaapi/gstvaapi.c:
17603 * gst/vaapi/gstvaapiencode_h265.c:
17604 * gst/vaapi/gstvaapiencode_h265.h:
17605 HEVC_Encode: Add HEVC(h265) Encoder plugin
17606 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17607 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17609 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17611 * gst-libs/gst/vaapi/Makefile.am:
17612 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17613 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17614 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17615 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17616 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17618 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17621 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17622 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17623 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17625 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17627 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17628 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17629 gstvaapiutils_h265: Add H265 Tier specific utility functions
17630 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17631 -- New API: gst_vaapi_utils_h265_get_tier_string()
17632 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17633 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17635 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17637 * docs/reference/plugins/Makefile.am:
17638 doc: conditional linking for scanner
17639 Add x11 library only if it is enabled.
17640 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17642 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17644 * docs/reference/plugins/plugins.types:
17645 doc: fix scanner compilation warning
17646 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17648 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17650 * docs/reference/libs/libs-docs.xml.in:
17651 * docs/reference/libs/libs-sections.txt:
17652 doc: update sections and symbols
17653 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17655 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17659 * debian.upstream/Makefile.am:
17660 * docs/Makefile.am:
17661 * docs/reference/Makefile.am:
17662 * docs/reference/libs/Makefile.am:
17663 * docs/reference/plugins/Makefile.am:
17665 * ext/libvpx/Makefile.am:
17667 * gst-libs/Makefile.am:
17668 * gst-libs/gst/Makefile.am:
17669 * gst-libs/gst/base/Makefile.am:
17670 * gst-libs/gst/codecparsers/Makefile.am:
17671 * gst-libs/gst/vaapi/Makefile.am:
17673 * gst/vaapi/Makefile.am:
17674 * patches/Makefile.am:
17675 * patches/videoparsers/Makefile.am:
17676 * pkgconfig/Makefile.am:
17677 * tests/Makefile.am:
17679 This patch handles dinamically the gitignore files with git.mk[1].
17680 Removed the automake variable MAINTAINERCLANFILES in most of the
17681 Makefile.am files since now it is handled by the top one.
17682 1. https://github.com/behdad/git.mk/blob/master/git.mk
17683 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17685 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17687 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17688 wayland: sync() when destroy()
17689 Before pushing a the new frame, the render() method calls sync() to flush the
17690 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17691 to a memory leak too.
17692 This patch calls sync() in the destroy() to flush the pending frames before
17693 destroying the window.
17694 Also a is_cancelled flag is added. This flag tells to not flush the event
17695 queue again since the method failed previously or were cancelled by the user.
17696 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17698 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17700 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17701 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17702 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17703 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17704 * gst/vaapi/gstvaapisink.c:
17705 vaapisink: implement unlock/unlock_stop for wayland
17706 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17707 shutting down. This can happen e.g. if the wayland compositor exits while
17708 the pipeline is running.
17710 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17711 * splitted the patch removing wl_display_dispatch_queue()
17712 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17713 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17714 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17716 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17719 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17720 wayland: wl_display_dispatch_queue() can block forever.
17721 wl_display_dispatch_queue() might prevent the pipeline from shutting
17722 down. This can happen e.g. if the wayland compositor exits while the
17723 pipeline is running.
17724 This patch replaces it with these steps:
17725 - With wl_display_prepare_read() all threads announce their intention
17727 - wl_display_read_events() is thread save. On threads reads, the other
17728 wait for it to finish.
17729 - With wl_display_dispatch_queue_pending() each thread dispatches its
17731 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17732 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17733 * stripped out the unlock() unlock_stop() logic
17734 * stripped out the poll handling
17735 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17736 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17737 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17739 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17741 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17742 wayland: rename frame for last_frame
17743 Since frame in the private data means the last frame sent, it would
17744 semantically better use last_frame.
17745 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17747 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17749 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17751 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17752 wayland: use a counter as sync flag
17753 Wayland window has a pointer to the last pushed frame and use it to set the
17754 flag for stopping the queue dispatch loop. This may lead to memory leaks,
17755 since we are not keeping track of all the queued frames structures.
17756 This patch removes the last pushed frame pointer and change the binary flag
17757 for an atomic counter, keeping track of number of queued frames and use it for
17758 the queue dispatch loop.
17759 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17761 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17763 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17764 wayland: decouple wl_buffer from frame
17765 This patch takes out the wayland's buffer from the the frame structure. The
17766 buffer is queued to wayland and destroyed in the "release" callback. The
17767 frame is freed in the surface's "done" callback.
17768 In this way a buffer may be leaked but not the whole frame structure.
17769 - surface 'done' callback is used to throttle the rendering operation and to
17770 unallocate the frame, but not the buffer.
17771 - buffer 'release' callback is used to destroy wl_buffer.
17772 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17774 * kept the the event_queue for buffer's proxy
17775 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17776 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17778 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17780 * gst/vaapi/gstvaapisink.c:
17781 vaapisink: fix indentation
17783 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17785 * debian.upstream/Makefile.am:
17786 * ext/libvpx/Makefile.am:
17787 * gst-libs/gst/vaapi/Makefile.am:
17788 * gst/vaapi/Makefile.am:
17789 * tests/Makefile.am:
17790 build: fix make distcheck
17791 This patch fixes several issues found when running the `make distcheck`
17793 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17795 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17797 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17798 - The make target distcleancheck failed because some autogenerated files
17799 were not handled with the DISTCLEANFILES variable.
17800 Note: `make distcheck -jXX` is not currently supported.
17802 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17804 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17805 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17806 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17807 h264parse: update patches with upstream
17808 These patches didn't applied cleanly, breaking the `make distcleancheck`
17809 target. Re-sync'ed the patches against the current git's submodule.
17811 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17813 * tests/simple-encoder.c:
17814 tests: simple-encoder: fix build warnings on 64-bit platforms.
17815 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17816 importantly fix warnings spitted out during build on 64-bit platforms.
17817 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17818 g_warning ("Invalid VAAPI buffer size (%d)", size);
17820 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17821 g_warning ("Failed to create output buffer of size %d", size);
17824 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17826 * gst/vaapi/gstvaapipluginbase.c:
17827 * gst/vaapi/gstvaapipluginutil.c:
17828 * gst/vaapi/gstvaapipluginutil.h:
17829 * gst/vaapi/gstvaapivideocontext.h:
17830 plugins: remove gstreamer-0.10 crumbs
17831 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17832 Still, its definition was still in the code. This patch removes it.
17833 https://bugzilla.gnome.org/show_bug.cgi?id=749113
17835 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17837 * tests/Makefile.am:
17838 * tests/simple-encoder.c:
17839 * tests/y4mreader.c:
17840 * tests/y4mreader.h:
17841 tests: add simple-encoder program
17842 This patch adds a simple-encoder test program that uses libgstvaapi for video
17843 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17844 format. That can be from a regular file or standard input when the input
17846 Usage: simple-encoder [options]* <source>
17848 --output|-o output file name
17849 --codec|-c codec to use for video encoding
17850 --bitrate|-b desired bitrate (kbps)
17851 By default, and as an initial patch, the encoded stream shall conform to the
17852 minimally supported profile. That is "Constrained Baseline Profile" for H.264
17853 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17854 generated by libgstvaapi.
17855 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17856 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17857 * general code clean-up
17858 * removed the yuv reader thread
17859 * re-wrote the y4m file parser
17860 * updated used API fixed some wrong usage
17861 * fixed a lot of memory leaks
17862 * added the bitrate setting
17863 * keep fps' numerator and denominator
17864 * simplified the thread control
17865 * removed custom logging and use glib
17866 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17867 https://bugzilla.gnome.org/show_bug.cgi?id=719528
17869 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17871 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17872 libs: trivial documentation fix
17873 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17874 are not errors, so they do not have the ERROR namespace.
17875 This patch fixes this typo in documentation.
17877 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
17879 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17880 window: Correct prototype to match implementation
17881 On s390x, guintptr and GstVaapiID are not compatible types. The
17882 implementation of gst_vaapi_window_new_internal() and all its callers
17883 seem to assume that its third argument is a GstVaapiID, while the
17884 header gives it guintptr type.
17885 https://bugzilla.gnome.org/show_bug.cgi?id=744559
17887 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17889 * gst/vaapi/gstvaapidecode.c:
17890 * gst/vaapi/gstvaapidecodebin.c:
17891 vaapidecode: add guards for disabled codecs.
17892 Fix link when building plugin elements without HEVC support. e.g. don't
17893 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17894 support HEVC enabled in libgstvaapi.
17895 Also, drop disabled codecs from static template caps. Add the missing
17896 HEVC static template caps into vaapidecodebin too.
17898 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17901 * gst-libs/gst/vaapi/glibcompat.h:
17902 build: upgrade glib dependency to 2.32
17903 Since bug #745728 was fixed the oldest supported version of GStreamer is
17904 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17906 This patch changes the required version of glib in configure.ac and removes
17907 the hacks in glibcompat.h
17908 https://bugzilla.gnome.org/show_bug.cgi?id=748698
17910 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17912 * gst/vaapi/gstvaapipluginbase.c:
17913 plugins: check if the pool config is already set
17914 In commit 97b768, a regression for GStreamer 1.2 was introduced:
17915 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17916 config option is already set. This patch adds an inline function to
17917 first verify if the option is not in the pool config berfore add it.
17919 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17921 * gst/vaapi/gstvaapipostproc.c:
17922 vaapipostproc: tune up a couple of log messages
17923 In order to reduce the noise, the query type log was downgrade from INFO to
17924 DEBUG, and the shared display address log message is assigned to the object.
17926 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17928 * gst/vaapi/gstvaapipluginbase.c:
17929 plugins: check gst_buffer_pool_set_config()
17930 Check the return value of gst_buffer_pool_set_config(). If it fails an error
17931 message is posted in the bus.
17933 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17935 * gst/vaapi/gstvaapipluginbase.c:
17936 plugins: more specific log message
17937 Be more specific in the log message about the reason of creating a new pool.
17939 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17941 * gst/vaapi/gstvaapipluginbase.c:
17942 plugins: delete unused variable
17943 need_pool is a boolean variable extracted from the allocation query, but it is
17944 not used afterwards.
17946 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17948 * gst/vaapi/gstvaapipluginbase.c:
17949 vaapipluginbase: Update the pool if there was no pool in the downstream reply
17950 Fix regression introduced by bd866479, the query after decide_allocation()
17951 always needs a pool in the first slot.
17952 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17953 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17955 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
17957 * gst/vaapi/gstvaapivideobufferpool.c:
17958 videopool: Free members before chaining up finalize
17959 The finalize function in GObject frees the object memory, so
17960 everything else needs to have been freed before.
17961 https://bugzilla.gnome.org/show_bug.cgi?id=748563
17963 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
17965 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17966 wayland: don't leak the registry proxy
17967 Release the registry proxy when closing the display.
17968 https://bugzilla.gnome.org/show_bug.cgi?id=748564
17970 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17972 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17973 wayland: refactor _sync() method and rename callback
17974 This patch only intends to improve readability: in the method
17975 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17977 Also renames the frame_redraw_callback() callback into frame_done_callback(),
17978 which is a bit more aligned to Wayland API.
17980 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
17982 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17983 wayland: free frame in buffer release callback
17984 The Wayland compositor may still use the buffer when the frame done
17985 callback is called.
17986 This patch destroys the frame (which contains the buffer) until the
17987 release callback is called. The draw termination callback only controls
17988 the display queue dispatching.
17989 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17990 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17992 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17994 * gst/vaapi/gstvaapidecode.c:
17995 vaapidecode: refactor gst_vaapidecode_internal_flush()
17996 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
17997 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
17998 shares the same error message of gst_vaapidecode_internal_flush() when flush
18001 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18003 * gst/vaapi/gstvaapidecode.c:
18004 vaapidecode: refactor gst_vaapidecode_destroy()
18005 Add the method gst_vaapidecode_purge(). This method releases the
18006 flushed frames from the decoder.
18007 This new method add more readablity to gst_vaapidecode_destroy()
18009 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
18011 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18012 * gst/vaapi/gstvaapidecode.c:
18013 vaapidecode: Tell the base class about released frames on close
18014 The base class needs to be informed about frames that were still queued
18015 in the decoder on release, otherwise they are leaked.
18016 https://bugzilla.gnome.org/show_bug.cgi?id=747999
18018 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18020 * gst/vaapi/gstvaapidecode.c:
18021 vaapidecode: reduce logging noise
18022 When a frame is rejected by downstream, the message is logged twice. This
18023 patch removes one of those logging messages.
18024 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
18025 the log message from error to info.
18027 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
18029 * gst/vaapi/gstvaapidecode.c:
18030 vaapidecode: Use the GstVideoDecoder error reporting function
18031 This way, the decoder won't stop on the first decoding error,
18032 in most cases it can recover after some glitchiness.
18033 https://bugzilla.gnome.org/show_bug.cgi?id=744620
18035 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
18037 * gst/vaapi/gstvaapipluginbase.c:
18038 vaapipluginbase: The allocation query can return without a pool
18039 It is possible to return the min/max/size without actually providing
18040 a pool. This way the source knows how many buffers downstream needs.
18041 https://bugzilla.gnome.org/show_bug.cgi?id=748076
18043 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18046 * gst/vaapi/Makefile.am:
18047 * gst/vaapi/gstvaapiparse.c:
18048 * gst/vaapi/gstvaapiparse.h:
18049 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
18050 * patches/videoparsers/series.frag:
18051 plugins: Add h265 videoparser element "vaapiparse_h265"
18052 This is a mirror of h265parse element in upstream gst-plugins-bad.
18053 There could be additional patches but all should go to upstream.
18054 This is for making development faster.
18055 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
18057 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18059 * ext/codecparsers:
18060 codecparsers: Update to gst-vaapi-branch commit 43a0368
18061 45f1c28: codecparser: h265: Fix nal unit size checking
18062 f25987b: codecparser: h265: Calculate crop rectangle dimensions
18063 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
18064 4c8ec41: Add h265 videoparser plugin source files
18066 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18069 autogen: drop videoutils submodule.
18071 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18073 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18074 decoder: hevc: cosmetics.
18075 Mostly coding style updates. Avoid integer signess inconsistencies.
18076 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
18078 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18080 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18081 decoder: hevc: Add Support for tiled video decoding
18082 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
18083 the tile column width and tile row height should be calculated.
18084 Equations: 6-1, 6-2
18085 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
18087 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18089 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18090 decoder: hevc: Fix decoding when there are RASL pictures present.
18091 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
18092 -- Fix PicOutputFlag setting for RASL picture
18093 -- Fix prev_poc_lsb/prev_poc_msb calculation
18094 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
18095 -- Fixed couple of crashes and added cosmetics
18097 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
18099 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18100 display: drm: fix race condition setting device type
18101 There is a race condition where g_drm_device_type can be left set to
18102 DRM_DEVICE_RENDERNODES when it shouldn't.
18103 If thread 1 comes in and falls into the last else statement setting up both
18104 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
18105 it sets g_drm_device_type = RENDERNODES.
18106 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
18107 up that type to be tried but then encounters the lock and has to wait until the
18108 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
18109 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
18110 attempts will only try RENDERNODES.
18111 So to avoid this situation I have simply moved the acquisition of the lock higher
18112 up in the attached patch.
18113 https://bugzilla.gnome.org/show_bug.cgi?id=747914
18115 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18117 * gst/vaapi/gstvaapipostproc.c:
18118 vaapipostproc: Don't create filter on caps query
18119 The problem with this is that creating the filter causes the display to
18120 be selected, and the caps query happens while linking the element. So,
18121 if the downstream or upstream element is using a specific display
18122 object, it won't be propagated correctly to the postproc as it already
18123 has a display at this point.
18124 https://bugzilla.gnome.org/show_bug.cgi?id=747945
18126 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
18128 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18129 videopool: Release lock while allocating new object
18130 The video pool can be accessed with the display lock held, for example,
18131 when releasing a buffer from inside vaapisink_render, but allocating
18132 a new object can may also take the display lock. Which means a possible
18134 https://bugzilla.gnome.org/show_bug.cgi?id=747944
18136 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18138 * gst/vaapi/gstvaapisink.c:
18139 vaapisink: use GstVideoSink vmethod show_frame()
18140 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18141 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18142 rather than call ourselves render() and preroll().
18144 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18146 * gst/vaapi/gstvaapisink.c:
18147 * gst/vaapi/gstvaapisink.h:
18148 vaapisink: add 'handoff' signal
18149 This patch adds the signal ::handoff and the property signal-handoffs. If the
18150 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18152 Based on Zhao Halley <halley.zhao@intel.com>
18153 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18155 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18157 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18158 HEVC: silence the compiler
18159 Fixed a couple of clang complains.
18161 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18163 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18164 wayland: destroy vpp buffer pool on resize
18165 Otherwise the old buffers with the old size are used.
18166 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18168 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18171 * gst-libs/gst/vaapi/Makefile.am:
18172 build: don't compile HEVC if not supported
18173 HEVC decoding was added recently libva-1.5.
18174 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18175 in the installed libva.
18176 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18178 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18180 * gst/vaapi/gstvaapidecode.c:
18181 vaapidecode: Update Author name in plugin metadata
18183 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18185 * gst/vaapi/gstvaapidecode.c:
18186 plugins: Add HEVC decoder
18187 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18189 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18191 * gst-libs/gst/vaapi/Makefile.am:
18192 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18193 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18194 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18195 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18197 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18199 * gst-libs/gst/vaapi/Makefile.am:
18200 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18201 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18202 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18203 HEVC: Add codec utility methods to core libgstvaapi
18204 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18206 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18208 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18209 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18210 HEVC: gstvaapiprofile: Add profile definitions
18211 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18213 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18216 HEVC: build: Check availability of h265 decoder APIs
18217 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18219 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18223 * gst-libs/gst/codecparsers/Makefile.am:
18224 HEVC: Allow to build h265 codecparser internally
18225 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18227 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18229 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18230 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18231 * gst-libs/gst/vaapi/gstvaapisurface.c:
18232 guard buffer export API if not available
18233 The support for buffer exports in VA-API was added in version 0.36. These
18234 interfaces are for interop with EGL, OpenCL, etc.
18235 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18236 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18237 This patch guards all the buffer exports handling (and dmabuf allocator) if
18238 the detected VA-API version is below 0.36.
18239 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18241 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18243 * ext/codecparsers:
18244 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18245 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18246 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18247 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18248 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18249 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18251 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18253 * gst/vaapi/gstvaapidecode.c:
18254 vaapidecode: unref video codec frame twice
18255 We get one reference when the frame is passed to decode_handle_frame()
18256 and create another one in gst_vaapi_decoder_push_frame().
18257 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18258 Here the frame is always released twice:
18259 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18260 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18261 In gst_vaapidecode_reset_full() both references to the frame must be
18263 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18264 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18266 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18268 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18269 libs: remove unused variables
18270 clang reports these unused variables. Let's get rid of them.
18271 This patch is a missing part of commit c82e5173
18272 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18274 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18276 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18277 decoder: mpeg4: remove an spurious comparison
18278 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18279 less than zero. Hence this pre-condition test is a no-op. This patch removes
18281 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18283 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18285 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18286 encoder: h264: casts slice_param->slice_type
18287 slice_type in slice_param is defined as (char *), but it is compared against a
18288 signed integer. clang complains about this comparison.
18289 This patch casts the variable.
18290 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18292 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18294 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18295 encoder: avoid GstVaapiCodedBuffer redefinition
18296 The symbol GstVaapiCodedBuffer is already defined in
18297 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18298 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18299 This patch removes that redefinition.
18300 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18302 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18304 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18305 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18306 libs: remove unused variables
18307 clang reports these unused variables. Let's get rid of them.
18308 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18310 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18312 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18313 encoder: mpeg2: use fabsf() instead of abs()
18314 The member value in frame_rate_tab is float, the result of the abs() function
18315 should be float too. But abs() only manages integers.
18316 This patch replaces abs() with fabsf() to handle correctly the possible floats
18318 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18320 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18322 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18324 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18325 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18326 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18327 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18328 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18329 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18330 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18332 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18337 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18341 Changing source code download links from https://gitorious to https://github
18342 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18343 -- README: Change the gstreamer-vaapi webpage link
18345 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18347 * ext/codecparsers:
18348 codecparsers: update to gst-vaapi-branch commit 1f792e4
18349 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18350 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18351 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18352 2b92a67: h264parse: reset the parser information when caps changes
18353 05eee86: codecparsers: Indent file
18354 e27a38b: codecparsers: Add READ_UE_MAX macro
18355 2036471: Constify some static arrays everywhere
18357 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18359 * gst/vaapi/gstvaapivideoconverter_glx.c:
18360 * gst/vaapi/gstvaapivideoconverter_x11.c:
18361 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18363 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18365 * gst/vaapi/gstvaapidecode.c:
18366 * gst/vaapi/gstvaapidecodebin.c:
18367 * gst/vaapi/gstvaapiencode_h264.c:
18368 * gst/vaapi/gstvaapiencode_jpeg.c:
18369 * gst/vaapi/gstvaapiencode_mpeg2.c:
18370 * gst/vaapi/gstvaapiencode_vp8.c:
18371 * gst/vaapi/gstvaapipluginbase.c:
18372 * gst/vaapi/gstvaapipluginutil.c:
18373 * gst/vaapi/gstvaapipluginutil.h:
18374 * gst/vaapi/gstvaapipostproc.c:
18375 * gst/vaapi/gstvaapisink.c:
18376 * gst/vaapi/gstvaapivideobuffer.c:
18377 * gst/vaapi/gstvaapivideobufferpool.c:
18378 * gst/vaapi/gstvaapivideocontext.c:
18379 * gst/vaapi/gstvaapivideocontext.h:
18380 * gst/vaapi/gstvaapivideoconverter_glx.h:
18381 * gst/vaapi/gstvaapivideoconverter_x11.h:
18382 * gst/vaapi/gstvaapivideomemory.h:
18383 * gst/vaapi/gstvaapivideometa_texture.c:
18384 Removal of gstreamer-1.0 support
18385 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18386 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18387 This patch removes all the pre-processor conditional code compilation guarded
18389 Thus, all the video converters were removed too.
18390 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18391 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18392 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18394 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18396 * gst-libs/gst/vaapi/gstcompat.h:
18397 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18398 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18399 * gst-libs/gst/vaapi/sysdeps.h:
18400 * gst/vaapi/gstcompat.h:
18401 * gst/vaapi/gstvaapi.c:
18402 * gst/vaapi/gstvaapidecode.c:
18403 * gst/vaapi/gstvaapidecodebin.c:
18404 * gst/vaapi/gstvaapiencode.c:
18405 * gst/vaapi/gstvaapiencode_h264.c:
18406 * gst/vaapi/gstvaapiencode_jpeg.c:
18407 * gst/vaapi/gstvaapiencode_mpeg2.c:
18408 * gst/vaapi/gstvaapiencode_vp8.c:
18409 * gst/vaapi/gstvaapiparse.c:
18410 * gst/vaapi/gstvaapipluginbase.c:
18411 * gst/vaapi/gstvaapipluginutil.c:
18412 * gst/vaapi/gstvaapipostproc.c:
18413 * gst/vaapi/gstvaapisink.c:
18414 * gst/vaapi/gstvaapiuploader.c:
18415 * gst/vaapi/gstvaapivideobuffer.c:
18416 * gst/vaapi/gstvaapivideobufferpool.c:
18417 * gst/vaapi/gstvaapivideocontext.c:
18418 * gst/vaapi/gstvaapivideoconverter_glx.c:
18419 * gst/vaapi/gstvaapivideoconverter_x11.c:
18420 * gst/vaapi/gstvaapivideomemory.c:
18421 * gst/vaapi/gstvaapivideometa.c:
18422 * gst/vaapi/gstvaapivideometa_texture.c:
18424 update and move gstcompat.h
18425 The purpose of gstcompat.h is to couple the API differences among
18426 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18427 in this compatibility layer shall be removed.
18428 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18429 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18430 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18431 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18432 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18433 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18434 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18435 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18437 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18440 * gst/vaapi/Makefile.am:
18441 autotools: remove gstreamer-1.0 support
18442 This patch only removes the support of gstreamer-1.0 in the autotools
18443 scripts. No other files are touched.
18444 In the automake file all the converters were deprecated.
18445 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18446 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18447 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18449 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18454 Remove the gstreamer-videoutils submodule
18456 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18459 * gst-libs/gst/Makefile.am:
18460 * gst-libs/gst/vaapi/Makefile.am:
18461 * gst-libs/gst/video/Makefile.am:
18462 * gst/vaapi/Makefile.am:
18463 * tests/Makefile.am:
18464 Remove libgstvaapi-videoutils.so
18465 This library was intended to add the base classes for video decoders which
18466 where not included in gstreamer-0.10.
18467 Since the support of gstreamer-0.10 is deprecated those classes are not
18468 required, thus the whole library is removed.
18469 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18470 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18471 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18473 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18476 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18477 * gst-libs/gst/vaapi/gstvaapiutils.c:
18478 * tests/test-subpicture.c:
18479 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18480 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18481 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18482 deprecated these guards are not required.
18483 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18484 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18485 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18487 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18489 * gst-libs/gst/vaapi/gstcompat.h:
18490 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18491 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18492 * gst-libs/gst/vaapi/gstvaapiimage.c:
18493 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18494 * gst-libs/gst/vaapi/video-format.c:
18495 * gst-libs/gst/vaapi/video-format.h:
18496 * gst/vaapi/gstvaapi.c:
18497 * gst/vaapi/gstvaapidecode.c:
18498 * gst/vaapi/gstvaapidecodebin.c:
18499 * gst/vaapi/gstvaapidownload.c:
18500 * gst/vaapi/gstvaapidownload.h:
18501 * gst/vaapi/gstvaapiencode.c:
18502 * gst/vaapi/gstvaapiencode_h264.c:
18503 * gst/vaapi/gstvaapiencode_jpeg.c:
18504 * gst/vaapi/gstvaapiencode_mpeg2.c:
18505 * gst/vaapi/gstvaapiencode_vp8.c:
18506 * gst/vaapi/gstvaapiparse.c:
18507 * gst/vaapi/gstvaapipluginbase.c:
18508 * gst/vaapi/gstvaapipluginbase.h:
18509 * gst/vaapi/gstvaapipluginutil.c:
18510 * gst/vaapi/gstvaapipluginutil.h:
18511 * gst/vaapi/gstvaapipostproc.c:
18512 * gst/vaapi/gstvaapisink.c:
18513 * gst/vaapi/gstvaapiupload.c:
18514 * gst/vaapi/gstvaapiupload.h:
18515 * gst/vaapi/gstvaapiuploader.c:
18516 * gst/vaapi/gstvaapivideobuffer.c:
18517 * gst/vaapi/gstvaapivideoconverter_glx.c:
18518 * gst/vaapi/gstvaapivideoconverter_x11.c:
18519 * gst/vaapi/gstvaapivideometa.c:
18520 * gst/vaapi/gstvaapivideometa.h:
18521 * tests/test-filter.c:
18522 * tests/test-subpicture.c:
18523 Removal of gstreamer-0.10 support
18524 This patch removes all the pre-processor conditional code compilation guarded
18525 for gstreamer-0.10.
18526 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18527 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18528 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18530 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18533 * debian.upstream/control.in:
18534 * gst-libs/gst/video/Makefile.am:
18535 * gst/vaapi/Makefile.am:
18536 autotools: remove gstreamer-0.10 support
18537 This patch only removes the support of gstreamer-0.10 in the autotools
18538 scripts. No other files are touched.
18539 The configuration parameter --gstreamer-api was deleted since now it is always
18541 The verification of vmethod query in GstBaseSinkClass was removed since it was
18542 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18544 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18546 The automake files were changed accordingly.
18547 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18548 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18549 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18550 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18552 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18554 * gst/vaapi/gstvaapidecode.c:
18555 vaapidecode: add drain() vmethod
18556 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18557 class. This patch implements this new method.
18558 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18559 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18560 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18562 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18564 * gst/vaapi/gstvaapidecode.c:
18565 vaapidecode: remove vmethod reset()
18566 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18567 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18568 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18569 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18570 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18572 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18574 * gst/vaapi/gstvaapidecode.c:
18575 vaapidecode: handle flush() vmethod
18576 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18577 and flush() was added.
18578 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18579 superior. Otherwise, reset() is set.
18580 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18581 was renamed to gst_vaapidecode_internal_flush().
18582 2) The new vmethod flush() always do a hard full reset.
18583 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18584 gather all collected data with gst_video_decoder_have_frame()
18585 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18586 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18587 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18589 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18591 * gst/vaapi/gstvaapidecode.c:
18592 vaapidecode: call the correct query function
18593 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18594 a bug was introduced: when calling the parent's query function of the
18595 src pad, the one of the sink pad is called instead. This patch fixes
18597 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18599 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18602 gitmodules: Use https:// url instead of git:// for submodules.
18603 Gitorious is failing to clone repositories over git:// url.
18605 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18607 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18608 vaapidisplay: mark X11 display as compatible with EGL
18609 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18610 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18611 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18612 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18614 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18616 * gst/vaapi/gstvaapidecode.c:
18617 vaapidecode: Don't crash if a buffer outlives the decoder
18618 Sometimes, for example, when switching video streams but keeping
18619 the same sink, the surface will be released after the decoder is
18620 stopped and replaced. This caused a crash because the release
18621 callback was called on an invalid pointer.
18622 The patch adding an additional reference to the decoder object in the buffer.
18623 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18624 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18625 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18627 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18629 * gst/vaapi/gstvaapidecode.c:
18630 vaapidecode: clean-ups (indentation, drop unused variables)
18632 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18634 * gst/vaapi/gstvaapidecode.c:
18635 vaapidecode: use the query virtual methods in 1.4
18636 GstVideoDecoder, the base class of vaapidecode, added support for
18637 pad queries as virtual methods. This patch enables the use of that
18638 support, while keeping support for lower versions of gstreamer.
18639 This patch is important because GstVideoDecoder takes care of other
18640 queries that might be important in the pipeline managing.
18641 v2: 1) rebase to current master
18642 2) fix indentation with gst-indent
18643 3) simplify the patch layout
18644 4) fix the context query
18645 5) initialise the filter to NULL
18646 6) improve the query log message for gst-1.2
18647 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18649 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18651 * gst/vaapi/gstvaapipostproc.c:
18652 * gst/vaapi/gstvaapipostproc.h:
18653 vaapipostproc: always activate buffer pool
18654 The vaapipostproc has a proxy flag to know if the the buffer pool is
18655 already active. But this fails in some situations where it is needed
18656 to renegotiate the buffer pool.
18657 This patch removes that flag so the renegotiation is done whenever is
18659 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18661 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18663 * gst/vaapi/gstvaapisink.c:
18664 vaapisink: fix minor memory leak in debug mode.
18665 The gst_video_colorimetry_to_string() function returns a newly created
18666 string that represents the GstVideoColorimetry value. So, that needs
18667 to be released after usage, in e.g. GST_DEBUG().
18669 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18671 * gst/vaapi/gstvaapidecodebin.h:
18672 vaapidecodebin: Avoid usage of "__" prefix in macro names
18673 Avoiding "__" prefix usage in Header File Guards as per
18674 C standard recommendation.
18676 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18678 * gst/vaapi/gstvaapi.c:
18679 plugins: Disable vaapidecodebin for GStreamer < 1.4
18680 There are autoplugging issues in GStreamer-1.2.
18681 Lets disable vaapidecodebin untill we get some workarounds for this.
18683 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18685 * gst/vaapi/Makefile.am:
18686 * gst/vaapi/gstvaapi.c:
18687 * gst/vaapi/gstvaapidecodebin.c:
18688 * gst/vaapi/gstvaapidecodebin.h:
18689 plugins: Add a vaapidecodebin element
18690 Add a "vaapidecodebin" element to vaapi plugins.
18691 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18692 The Reasons for implementing a new bin element:
18693 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18694 with out any dependency to upstream gstreamer.
18695 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18696 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18697 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18698 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18699 -- Help to maintain a single thread implementation in vaapidecode.
18700 This will result a dead-lock free vaapidecode in most of the cases.
18701 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18702 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18704 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18706 * gst/vaapi/gstvaapidecode.c:
18707 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18709 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18711 * gst/vaapi/gstvaapidecode.c:
18712 * gst/vaapi/gstvaapidecode.h:
18713 vaapidecode: Switch back to Single thread implementation
18714 Because the decoder uses the thread from handle_frame() to decode a frame,
18715 the src pad task creates an unsolveable AB-BA deadlock between
18716 handle_frame() waiting for a free surface and decode_loop() pushing
18717 decoded frames out.
18718 Instead, have handle_frame() take responsibility for pushing surfaces,
18719 and remove the deadlock completely. If you need a separate thread
18720 downstream, you can insert a queue between vaapidecode and its downstream
18722 Another justification for the single thread implementation is,
18723 there are two many point of locking in gstreamer-vaapi's current
18724 implementation which can lead to deadlocks.
18725 https://bugzilla.gnome.org/show_bug.cgi?id=742605
18726 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18727 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18728 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18730 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18732 * gst/vaapi/gstvaapipluginbase.c:
18733 plugins: fix detection of upstream v4l2src element.
18734 Improve check for upstream element that requires DMABUF buffer pool,
18735 e.g. v4l2src element. In particular, make sure to traverse through
18736 any additional capsfilter for instance.
18737 Note: the traversal to the top-most upstream element could be made
18738 more generic, but we are insofar only interested in supporting pipes
18739 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18740 specification for a desired video camera format, or resolution.
18742 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18744 * gst/vaapi/gstvaapivideomemory.c:
18745 plugins: fix allocation of DMABUF memory.
18746 The dmabuf allocator would close the DMABUF handle passed in the init
18747 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18748 to avoid a double close, ultimately in the underlying driver that owns
18751 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18753 * gst/vaapi/gstvaapidecode.c:
18754 vaapidecode: keep src caps and output state in sync
18755 vaapidecode keeps an output state that use the format
18756 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18757 for a correct negotiation.
18758 I don't see the rational behind this decoupling, it looks like
18759 unnecessary complexity. This patch simplify this logic keeping
18760 in sync the output state and the src caps.
18761 This patch improves the readability of the function
18762 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18763 the patch validates if the buffer pool has the configuration for
18764 the GL texture upload meta, in order to set the caps feature
18765 meta:GLTextureUpload. Otherwise, the I420 format is set back.
18766 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18767 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18768 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18770 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18772 * gst/vaapi/gstvaapidecode.c:
18773 vaapidecode: upload meta only if feature and allocation
18774 When vaapidecode finishes the decoding of a frame and pushes it,
18775 if, in the decide_allocation() method, it is determined if the
18776 next element supports the GL texture upload meta feature, the
18777 decoder adds the buffer's meta.
18778 Nonetheless, in the same spirit of the commit 71d3ce4d, the
18779 determination if the next element supports the GL texture upload
18780 meta needs to check both the preferred caps feature *and* if the
18781 allocation query request the API type.
18782 This patch, first removes the unused variable need_pool, and
18783 determines the attribute has_texture_upload_meta using the
18784 preferred caps feature *and* the allocation query.
18785 Also, the feature passed to GstVaapPluginBase is not longer
18786 determined by has_texture_upload_meta, but by the computed
18788 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18789 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18790 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18792 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18794 * gst/vaapi/gstvaapidecode.c:
18795 * gst/vaapi/gstvaapidecode.h:
18796 * gst/vaapi/gstvaapipluginutil.c:
18797 * gst/vaapi/gstvaapipluginutil.h:
18798 vaapidecode: delayed src caps negotiation
18799 Currently the src caps are set immediately after the sink caps are set, but in
18800 that moment the pipeline might not fully constructed and the video sink has
18801 not negotiated its supported caps and features. As a consequence, in many cases
18802 of playback, the least optimized caps feature is forced. This is partially the
18803 responsible of bug #744039.
18804 Also, vaapidecode doesn't attend the reconfigure events from downstream,
18805 which is a problem too, since the video sink can be changed with different
18807 This patch delays the src caps, setting them until the first frame arrives to
18808 the decoder, assuming until that very moment the whole pipeline is already
18809 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18810 as a consequence of a reconfiguration event from downstream.
18811 A key part of this patch is the new GstVaapiCapsFeature
18812 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18813 doesn't have a peer yet. Also, for a better report of the caps allowed
18814 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18815 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18816 v3: move the input_state unref to close(), since videodecoder resets at
18817 some events such as navigation.
18818 v4: a) the state_changed() callback replaces the input_state if the media
18819 changed, so this case is also handled.
18820 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18821 always the input_state, the parameter were removed.
18822 c) there were a lot of repeated code handling the input_state, so I
18823 refactored it with the function gst_vaapi_decode_input_state_replace().
18824 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18825 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18826 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18828 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18830 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18831 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18832 encoder: h264: add support for more than 2 views
18833 Add support for H.264 MVC Multiview High profile encoding with
18834 more than 2 views. All views within the same accesss unit are
18835 provided in increasing order of view order index (VOIdx).
18836 Upto 10 view are supported for now.
18837 A new property "view-ids" has been provided for the plugins to
18838 set the view ids (which is an array of guint values) to be used
18840 https://bugzilla.gnome.org/show_bug.cgi?id=732453
18842 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18844 * gst/vaapi/gstvaapipluginbase.c:
18845 plugins: upload meta only if feature and allocation
18846 Working on bug #743687, I realized that vaapidecode always adds to its buffer
18847 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18848 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18849 Nevertheless, there are occasions where the query has the API type, but the
18850 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18851 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18852 buffer pool configuration, and adds its buffer's meta to each output buffer,
18853 even if the negotiated caps feature is memory:SystemMemory with I420 color
18855 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18856 that relates caps <-> GL upload method. If it receives a buffer with color
18857 format I420, it assumes that it doesn't have a texture upload meta, because
18858 only those with RGB color format has it. Our buffers, with I420 format, say
18859 that they have the upload meta too. In that case the mapped method is a dummy
18860 one which does nothing. I reported this issue in bug #744039 (the patch,
18861 obviously, was rejected).
18862 This patch workarounds the problem: the buffer pool's configuration option
18863 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18864 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18865 caps feature is meta:GstVideoGLTextureUploadMeta.
18866 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18867 in all they seem to work correctly.
18868 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18869 [adapted to fit current EGL changes]
18870 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18872 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18874 * gst-libs/gst/vaapi/gstvaapitexture.c:
18875 * gst-libs/gst/vaapi/gstvaapitexture.h:
18876 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18877 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18878 * gst/vaapi/gstvaapivideometa_texture.c:
18879 plugins: add support for GstVideoGLTextureOrientation.
18880 Add support for GstVideoGLTextureOrientation modes. In particular,
18881 add orientation flags to the GstVaapiTexture wrapper and the GLX
18882 implementations. Default mode is that texture memory is laid out
18883 with top lines first, left row first. Flags indicate whether the
18884 X or Y axis need to be inverted.
18886 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18888 * gst/vaapi/gstvaapidecode.c:
18889 * gst/vaapi/gstvaapipluginbase.c:
18890 * gst/vaapi/gstvaapipluginutil.c:
18891 * gst/vaapi/gstvaapipluginutil.h:
18892 * gst/vaapi/gstvaapipostproc.c:
18893 * gst/vaapi/gstvaapivideometa_texture.c:
18894 plugins: add support for BGRA textures.
18895 Some frameworks (EFL) expect BGRA textures for storage. However,
18896 adding support for that broadly into GStreamer framework implies
18897 two kinds of hacks: (i) libgstgl helpers currently do not support
18898 BGRA textures correctly, (ii) we need to better parse downstream
18899 suggested caps and intersect them with what the VA plugin elements
18900 can offer to them for GL texturing.
18902 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18904 * gst/vaapi/gstvaapipluginutil.c:
18905 plugins: fix support for Wayland/EGL running alongside X11.
18906 When multiple display servers are available, the glimagesink element
18907 (from GStreamer 1.4) may not be able to derive a global display in
18908 Wayland. Rather, a "window"-specific display is created. In this case,
18909 the GstGLDisplay handle available through GstGLContext is invalid.
18910 So, try to improve heuristics for display server characterisation in
18911 those particular situations.
18913 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18916 * gst/vaapi/Makefile.am:
18917 * gst/vaapi/gstvaapidecode.c:
18918 * gst/vaapi/gstvaapipluginbase.c:
18919 * gst/vaapi/gstvaapipluginutil.c:
18920 * gst/vaapi/gstvaapivideobufferpool.c:
18921 * gst/vaapi/gstvaapivideometa_texture.c:
18922 plugins: add initial support for EGL.
18923 Add initial support for EGL through GstVideoGLTextureUploadMeta.
18924 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18925 downstream supplied GstGLContext configuration, i.e. use its native
18926 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18927 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18929 https://bugzilla.gnome.org/show_bug.cgi?id=741079
18931 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18933 * gst/vaapi/gstvaapivideometa_texture.c:
18934 plugins: track video texture size changes.
18935 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18936 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18937 now update the texture size from the GstVideoMeta, if any, or reset
18938 to some defaults otherwise.
18940 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18942 * gst/vaapi/gstvaapipluginbase.c:
18943 * gst/vaapi/gstvaapipluginbase.h:
18944 * gst/vaapi/gstvaapipluginutil.c:
18945 plugins: ensure VA display matches GL context expectations.
18946 If a GstGLContext is supplied by the downstream element, then make
18947 sure that the VA plugin element gets a compatible display to what
18948 is requested by the GL context. e.g. re-allocate a VA/GLX display
18949 when a GLX context is provided by the downstream element.
18951 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18954 * gst/vaapi/Makefile.am:
18955 * gst/vaapi/gstvaapipluginbase.c:
18956 * gst/vaapi/gstvaapipluginbase.h:
18957 plugins: record downstream GstGLContext.
18958 Record GL context supplied by downstream elements. This can be useful,
18959 and further needed, to enforce run-time check that the GL context is
18960 compatible for use by libgstvaapi. e.g. check that we don't create a
18961 VA/GLX display for EGL/X11 contexts.
18962 https://bugzilla.gnome.org/show_bug.cgi?id=725643
18963 Original-path-by: Matthew Waters <ystreet00@gmail.com>
18965 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18967 * tests/Makefile.am:
18970 Add initial support for EGL to tests. The new EGL backend can be selected
18971 through the --egl command line option. The OpenGL|ES version can further
18972 be selected with the --gles-version command line option, where the default
18973 of 0 means "desktop" OpenGL.
18975 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18977 * gst-libs/gst/vaapi/Makefile.am:
18978 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18979 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18980 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18981 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18982 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18983 egl: add windowing support.
18984 This provides for some basic EGL window abstraction.
18986 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18988 * gst-libs/gst/vaapi/Makefile.am:
18989 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18990 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
18991 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
18992 egl: add texture abstraction.
18993 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
18994 or import a foreign allocated one, while still allowing updates from a
18997 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18999 * gst-libs/gst/vaapi/Makefile.am:
19000 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
19001 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
19002 egl: allow for EGLImage imports into VA Surfaces.
19003 Add helpers to import EGLImage objects into VA surfaces. There are
19004 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
19005 which allows for implicit conversion from EGLImage to a VA surface
19006 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
19007 which exactly wraps the source EGLImage, typically in RGBA format
19008 with linear storage.
19009 Note: in case of (i), the EGLImage can be disposed right after the
19010 VA surface creation call, unlike in (ii) where the user shall ensure
19011 that the EGLImage is live until the associated VA surface is no longer
19013 https://bugzilla.gnome.org/show_bug.cgi?id=743847
19015 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19018 * gst-libs/gst/vaapi/Makefile.am:
19019 * gst-libs/gst/vaapi/egl_compat.h:
19020 * gst-libs/gst/vaapi/egl_vtable.h:
19021 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19022 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19023 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19024 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
19025 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
19026 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19027 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19028 * gst-libs/gst/vaapi/ogl_compat.h:
19029 Add initial support for EGL.
19030 Add initial support for EGL to libgstvaapi core library. The target
19031 display server and the desired OpenGL API can be programmatically
19032 selected at run-time.
19033 A comprehensive set of EGL utilities are provided to support those
19034 dynamic selection needs, but also most importantly to ensure that
19035 the GL command stream is executed from within a single thread.
19036 https://bugzilla.gnome.org/show_bug.cgi?id=743846
19038 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19040 * gst-libs/gst/vaapi/gstvaapivalue.c:
19041 libs: initialize GValues in a thread-safe manner.
19043 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19045 * gst-libs/gst/vaapi/gstvaapivalue.c:
19046 libs: re-indent all GValue related source code.
19048 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19050 * gst/vaapi/gstvaapidecode.c:
19051 vaapidecode: partially revert 0777f35.
19052 Reset the VA decoder after updating the base plugin caps, and most
19053 importantly, after GstVideoDecoder negotiation. The reason behind
19054 this is that the negotiation could trigger a last decide_allocation()
19055 where we could actually derive a new GstVaapiDisplay to use from the
19056 downstream element. e.g. GLX backend.
19058 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19060 * gst/vaapi/gstvaapidecode.c:
19061 vaapidecode: Caps query should return the list of all supported caps.
19062 Query caps filtering should be always done on top of allowed caps instead
19063 of existing fixed caps on a particular pad.
19064 This fixes the mvc stream decoding when there is a base view(high profile)
19065 and non-base view(stereo-high profile).
19067 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19069 * gst/vaapi/gstvaapidecode.c:
19070 vaapidecode: intersect filter from query caps
19071 According to documentation[1] when receiving a GST_QUERY_CAPS
19072 the return value should be all formats that this elements supports,
19073 taking into account limitations of peer elements further downstream
19074 or upstream, sorted by order of preference, highest preference first.
19075 This patch add those limitations intersecting with the received
19076 filter in the query. Also takes into account the already negotiated
19077 caps. Also adds the processing of the query on the SRC pad.
19078 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
19079 https://bugzilla.gnome.org/show_bug.cgi?id=744406
19081 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19083 * gst-libs/gst/vaapi/Makefile.am:
19084 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19085 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19086 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19087 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19088 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19089 * gst/vaapi/gstvaapivideomemory.c:
19090 Fix compiler warnings
19091 This patch fixes some warnings that gcc 4.9 reports.
19092 https://bugzilla.gnome.org/show_bug.cgi?id=744411
19094 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19096 * gst/vaapi/gstvaapidecode.c:
19097 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
19098 Hence the function name is shown in the gst-inspect-1.0 information
19099 rather than the memory address.
19100 https://bugzilla.gnome.org/show_bug.cgi?id=744330
19102 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19104 * gst/vaapi/gstvaapidecode.c:
19105 vaapidecode: log flow error name
19106 https://bugzilla.gnome.org/show_bug.cgi?id=744387
19108 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19110 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19111 VC1: decoder: Ignore VC1 user BDU's
19112 Don't return error if the processed BDU is a user one, just ignore them.
19113 https://bugzilla.gnome.org/show_bug.cgi?id=741237
19114 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19116 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
19118 * gst/vaapi/gstvaapidecode.c:
19119 * gst/vaapi/gstvaapipluginbase.c:
19120 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
19121 This is required in GStreamer, elements should never return
19122 GST_FLOW_ERROR without posting an ERROR message on the bus.
19123 https://bugzilla.gnome.org/show_bug.cgi?id=744620
19125 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19127 * gst/vaapi/Makefile.am:
19128 * gst/vaapi/gstvaapi.c:
19129 * gst/vaapi/gstvaapiencode_vp8.c:
19130 * gst/vaapi/gstvaapiencode_vp8.h:
19131 plugins: Add VP8 Encoder
19133 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19135 * gst-libs/gst/vaapi/Makefile.am:
19136 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19137 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19138 Add VP8 Encoder to core libgstvaapi.
19140 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19143 configure: Add Check for VP8 Encoding API
19145 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19147 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19148 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19149 Added rounding control handling for VC1 simple and Main profile
19150 based on VC1 standard spec: section 8.3.7
19151 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19152 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19153 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19155 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19157 * gst/vaapi/Makefile.am:
19158 build: fix make dist when certain conditionals not met.
19159 Fix typo which was preventing the inclusion of jpeg encoder
19160 source files from make dist (when there is no jpeg encoder
19161 API support in libva).
19163 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19165 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19166 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19167 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19168 use native YUV420 format (which is i420) as default.
19170 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19172 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19173 encoder: Only support YUV420 native format as input for now
19174 Practically we should be able to support more formats, for eg:
19175 JPEG Encoder can support YUV422, RGBA and all.
19176 But this is causing more issues which need proper fix here and there.
19178 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19180 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19181 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19182 * gst/vaapi/gstvaapidecode.c:
19183 vaapidecode: Check the condition after taking the lock
19184 Otherwise the condition could become true before the lock
19185 is taken and the g_cond_signal() could be called
19186 before the g_cond_wait(), so the g_cond_wait() is never
19188 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19190 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19192 * gst/vaapi/Makefile.am:
19193 * gst/vaapi/gstvaapi.c:
19194 * gst/vaapi/gstvaapiencode_jpeg.c:
19195 * gst/vaapi/gstvaapiencode_jpeg.h:
19196 plugins: Add JPEG encoder element
19198 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19200 * gst-libs/gst/vaapi/gstvaapicontext.c:
19201 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19203 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19205 * gst-libs/gst/vaapi/gstvaapicontext.c:
19206 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19207 Don't add the VAConfigAttribRateControl to the attribute list using
19208 for the vaCreateConfig if it is not supported by the driver.
19210 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19212 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19213 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19215 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19217 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19218 gstvaapiencoder: Fix crash when handling rate control mask
19219 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19220 might not be supporting any kind of rate control mechanisms.
19223 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19225 * gst-libs/gst/vaapi/Makefile.am:
19226 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19227 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19228 encoder: Add JPEG Encoder
19230 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19232 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19233 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19234 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19236 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19238 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19239 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19240 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19241 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19242 Encode: Add support for Picture level Entrypoint
19243 This is useful for JPEG encoding which is utilizing picture level
19244 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19246 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19249 configure: Add Check for JPEG encoding API
19251 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19256 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19259 Bump version for development.
19261 === release 0.5.10 ===
19263 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19268 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19273 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19275 * gst/vaapi/gstvaapivideometa_texture.c:
19276 Fix compilation error if there is no GL/gl.h header file installed
19278 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19280 * gst/vaapi/gstvaapivideomemory.h:
19281 plugins: drop leftover declaration.
19282 GstVaapiVideoMemory quark is not needed any more, and the actual
19283 implementation was already removed bfore the merge. i.e. this is
19284 an oversight for a hunk that was not meant to be pushed.
19286 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19288 * gst/vaapi/gstvaapipluginbase.c:
19289 * gst/vaapi/gstvaapivideobufferpool.c:
19290 * gst/vaapi/gstvaapivideobufferpool.h:
19291 * gst/vaapi/gstvaapivideomemory.c:
19292 * gst/vaapi/gstvaapivideomemory.h:
19293 plugins: add support for dma_buf exports (v4l2src).
19294 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19295 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19296 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19297 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19298 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19299 with --without-libv4l2.
19300 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19302 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19305 * gst/vaapi/Makefile.am:
19306 * gst/vaapi/gstvaapipluginbase.c:
19307 plugins: add support for dma_buf imports.
19308 Allow imports of v4l2 buffers into VA surfaces for further operation
19309 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19310 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19311 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19312 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19314 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19316 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19317 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19318 surface: add support for GEM buffer imports.
19319 Add support for GEM buffer imports. This is useful for VA/EGL interop
19320 with legacy Mesa implementations, or when it is desired or required to
19321 support outbound textures for instance.
19322 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19324 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19326 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19327 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19328 surface: add support for dma_buf imports.
19329 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19330 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19331 resulting VA surface owns the supplied buffer handle.
19332 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19334 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19336 * gst-libs/gst/vaapi/gstvaapisurface.c:
19337 * gst-libs/gst/vaapi/gstvaapisurface.h:
19338 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19339 surface: add initial support for foreign buffer imports.
19340 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19341 create a VA surface from an external buffer provided throug the
19342 new GstVaapiBufferProxy object.
19344 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19346 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19347 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19348 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19349 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19350 surface: add support for GEM buffer exports.
19351 Add support for GEM buffer exports. This will only work with VA drivers
19352 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19353 to support interop with EGL and the "Desktop" GL specification. Indeed,
19354 the EXT_image_dma_buf_import extension is not going to be supported in
19355 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19357 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19358 in Desktop OpenGL context.
19359 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19361 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19363 * gst-libs/gst/vaapi/Makefile.am:
19364 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19365 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19366 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19367 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19368 surface: add support for dma_buf exports.
19369 Use the new VA buffer export APIs to allow for a VA surface to be
19370 exposed as a plain PRIME fd. This is in view to simplifying interop
19371 with EGL or OpenCL for instance.
19372 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19374 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19376 * gst-libs/gst/vaapi/Makefile.am:
19377 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19378 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19379 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19380 Add abstraction for exported VA buffers.
19381 The VA buffer export APIs work for a particular lifetime starting from
19382 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19383 it could be much more convenient to support implicit releases by simply
19384 having a refcount reaching zero.
19385 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19387 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19389 * gst-libs/gst/vaapi/Makefile.am:
19390 Add missing header file to Makefile
19391 Add gstvaapitexture_glx.h to Makefile.am
19393 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19395 * gst-libs/gst/vaapi/gstvaapicontext.c:
19396 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19397 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19398 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19399 * gst/vaapi/gstvaapipostproc.c:
19400 * gst/vaapi/gstvaapiuploader.c:
19401 * gst/vaapi/gstvaapivideobufferpool.c:
19402 * gst/vaapi/gstvaapivideomemory.c:
19403 * gst/vaapi/gstvaapivideomemory.h:
19404 * tests/test-surfaces.c:
19405 videopool: add optional flags for surface pool allocation.
19406 Reword surface pool allocation helpers so that to allow for a simple
19407 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19408 somewhat more elaborated/flexible form with optional allocation flags
19409 and precise GstVideoInfo specification.
19410 This is an API/ABI change, and SONAME version needs to be bumped.
19412 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19414 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19415 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19416 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19417 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19418 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19419 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19420 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19421 videopool: re-indent all GstVaapiVideoPool related source code.
19423 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19425 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19426 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19427 window: add toplevel display indirection for visualid and colormap.
19428 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19429 the best suitable window visual id and colormap. This is an indirection in
19430 view to supporting EGL and custom/generic replacements.
19432 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19434 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19435 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19436 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19437 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19438 window: add toplevel API to determine the colormap.
19439 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19440 currently active colormap bound to the supplied window, or actually
19441 create it if it does not already exist yet.
19443 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19445 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19446 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19447 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19448 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19449 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19450 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19451 window: add toplevel API to determine a visual id.
19452 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19453 the best suitable visual id for the supplied window. While doing so,
19454 also simplify the process by which an X11 window is created with a
19455 desired Visual, i.e. now use a visual id instead of a Visual object.
19457 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19459 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19460 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19461 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19462 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19463 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19464 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19465 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19466 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19467 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19468 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19469 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19470 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19471 window: add generic helper to create windows.
19472 Add a new generic helper function gst_vaapi_window_new() to create
19473 a window without having the caller to check for the display type
19474 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19475 to create windows, and the actual backend implementation fills it in.
19476 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19477 This is a simplification in view to supporting EGL.
19479 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19481 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19482 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19483 * gst-libs/gst/vaapi/gstvaapitexture.c:
19484 * gst/vaapi/gstvaapivideometa_texture.c:
19485 display: add utility function to check for OpenGL rendering.
19486 Add gst_vaapi_display_has_opengl() helper function to help determining
19487 whether the display can support OpenGL context to be bound to it, i.e.
19488 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19490 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19492 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19493 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19494 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19495 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19496 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19497 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19498 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19499 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19500 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19501 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19502 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19503 * gst/vaapi/gstvaapipluginutil.c:
19504 * gst/vaapi/gstvaapivideobuffer.c:
19505 * gst/vaapi/gstvaapivideometa_texture.c:
19506 display: refine the meaning of display type.
19507 Make gst_vaapi_display_get_display_type() return the actual VA display
19508 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19509 return the type of the GstVaapiDisplay instance. The former is used to
19510 identify the display server onto which the application is running, and
19511 the latter to identify the original object class.
19513 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19515 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19516 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19517 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19518 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19519 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19520 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19521 display: cosmetics (helper macros, new internal API names).
19522 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19523 Rename a few others used internally for improved consistency.
19525 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19527 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19528 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19529 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19530 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19531 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19532 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19533 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19534 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19535 display: record native display object.
19536 Record the underlying native display instance into the toplevel
19537 GstVaapiDisplay object. This is useful for fast lookups to the
19538 underlying native display, e.g. for creating an EGL display.
19540 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19542 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19543 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19544 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19545 display: use a recursive mutex for the display cache.
19546 Use a recursive mutex for the display cache so that a 3rdparty display
19547 object could be initialized during the initialization of the parent
19550 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19552 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19553 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19554 * gst-libs/gst/vaapi/gstvaapitexture.c:
19555 * gst-libs/gst/vaapi/gstvaapitexture.h:
19556 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19557 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19558 texture: add generic helper to create textures.
19559 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19560 and gst_vaapi_texture_new() to create a texture without having
19561 the caller to uselessly check for the display type himself. i.e.
19562 internally, there is now a GstVaapiDisplayClass hook to create
19563 textures, and the actual backend implementation fills it in.
19564 This is a simplification in view to supporting EGL.
19566 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19568 * gst-libs/gst/vaapi/Makefile.am:
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_glx.h:
19573 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19574 * gst/vaapi/gstvaapivideoconverter_glx.c:
19575 * gst/vaapi/gstvaapivideometa_texture.c:
19576 * tests/test-textures.c:
19577 texture: move to core libgstvaapi base library.
19578 GstVaapiTexture is a generic abstraction that could be moved to the
19579 core libgstvaapi library. While doing this, no extra dependency needs
19580 to be added. This means that a GstVaapitextureClass is now available
19581 for any specific code that needs to be added, e.g. creation of the
19582 underlying GL texture objects, or backend dependent ways to upload
19583 a surface to the texture object.
19584 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19586 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19588 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19591 * gst-libs/gst/vaapi/Makefile.am:
19592 * gst-libs/gst/vaapi/gstvaapicompat.h:
19593 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19594 * gst-libs/gst/vaapi/gstvaapitexture.c:
19595 texture: drop support for VA/GLX interfaces.
19596 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19597 ease of use, but they had other caveats to deal with. It's now better
19598 to move on to legacy mode, whereby VA/GLX interop is two be provided
19599 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19600 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19602 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19604 * gst-libs/gst/vaapi/gstvaapitexture.c:
19605 * gst-libs/gst/vaapi/gstvaapitexture.h:
19606 * gst/vaapi/gstvaapivideoconverter_glx.c:
19607 * gst/vaapi/gstvaapivideometa_texture.c:
19608 * tests/test-textures.c:
19609 texture: add support for cropping rectangle during transfer.
19610 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19611 argument that would be used during transfer for cropping the source
19612 surface to the desired dimensions.
19613 Note: from a user point-of-view, he should create the GstVaapiTexture
19614 object with the cropped size. That's the default behaviour in software
19615 decoding pipelines that we need to cope with.
19616 This is an API/ABI change, and SONAME version needs to be bumped.
19617 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19619 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19621 * gst-libs/gst/vaapi/gstvaapitexture.c:
19622 * gst-libs/gst/vaapi/gstvaapitexture.h:
19623 texture: re-indent all GstVaapiTexture related source code.
19625 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19627 * gst-libs/gst/vaapi/gstvaapisurface.c:
19628 * gst-libs/gst/vaapi/gstvaapisurface.h:
19629 surface: add more fine-grained allocation helper.
19630 Add new gst_vaapi_surface_new_full() helper function that allocates
19631 VA surface from a GstVideoInfo template in argument. Additional flags
19632 may include ways to
19633 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19634 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19635 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19637 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19639 * gst-libs/gst/vaapi/gstvaapisurface.c:
19640 * gst-libs/gst/vaapi/gstvaapisurface.h:
19641 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19642 surface: re-indent all GstVaapiSurface related source code.
19644 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19646 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19647 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19648 surfaceproxy: add helper to create a wrapped surface object.
19649 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19650 a proxy. The main use case for that is to convey additional information
19651 at the proxy level that would not be suitable to the plain surface.
19653 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19655 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19656 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19657 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19658 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19660 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19663 libs: bump library major version.
19665 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19667 * gst-libs/gst/vaapi/gstvaapitypes.h:
19668 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19669 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19670 a non-zero and invalid id. This is useful to have a value
19671 that is still invalid for cases where zero could actually
19674 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19676 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19677 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19678 libs: expose GstVaapiMiniObject APIs to all backends.
19679 Make it possible to have all libgstvaapi backends (libs) access to a
19680 common GstVaapiMiniObject API and implementation. This is a minor step
19681 towards full exposure when needed, but restrict it to libgstvaapi at
19684 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19686 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19687 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19688 * gst-libs/gst/vaapi/gstvaapiobject.c:
19689 * gst-libs/gst/vaapi/gstvaapiobject.h:
19690 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19691 libs: re-indent all GstVaapiObject related source code.
19692 Re-indent and provide additional minor cosmetical changes to the
19693 GstVaapiMiniObject and GstVaapiObject source files.
19695 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19697 * gst/vaapi/gstvaapipluginutil.c:
19698 pluginutil: Fix clearing of subtitle overlay
19699 dvbsuboverlay signals no subtitles present by not setting
19700 GstVideoOverlayCompositionMeta on a buffer.
19701 Detect this, and remove subtitles whenever we have no overlay composition to
19703 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19705 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19707 * gst/vaapi/gstvaapipostproc.c:
19708 vaapipostproc: clear state on stop
19709 Otherwise restarting may fail because the state of vaapipluginbase and
19710 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19711 initailization and not call gst_vaapi_plugin_base_set_caps()
19713 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19715 * gst/vaapi/gstvaapidecode.c:
19716 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19718 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19720 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19721 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19722 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19723 since the vaaapi context creation (gstvaapicontext.c) can still use the
19724 default chroma type which is YUV420.
19725 https://bugzilla.gnome.org/show_bug.cgi?id=743567
19726 https://bugzilla.gnome.org/show_bug.cgi?id=743035
19728 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19730 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19731 * patches/videoparsers/series.frag:
19732 h264parse: drop patches merged upstream.
19733 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19735 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19737 * ext/codecparsers:
19738 codecparsers: update to gst-vaapi-branch commit d3b5c1b
19739 8194cac: h264parse: parse SPS subset
19740 64b7f52: h264parse: expose stereo-high profile
19741 774360a: h264parse: add initial support for MVC NAL units
19742 258478f: h264parser: fix stack smashing
19744 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19746 * gst/vaapi/gstvaapivideometa_texture.c:
19747 Fix compilation error if there is no GL/gl.h header file installed
19749 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19751 * gst/vaapi/gstvaapidecode.c:
19752 vaapidecode: commit updated srcpad caps to base plugin.
19753 Make sure that the GstVaapiPluginBase instance receives the new src
19754 pad caps whenever they get updated from within the GstVaapiDecoder
19756 This also ensures that downstream elements receive correctly sized
19757 SW decoded buffers if needed.
19758 https://bugs.tizen.org/jira/browse/TC-114
19760 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19762 * gst/vaapi/gstvaapidecode.c:
19763 vaapidecode: always reset decoder on ::set_format().
19764 Split GstVideoDecoder::set_format() handler to first update the sink
19765 pad caps and reset the active VA decoder instance based on those, and
19766 then update the src pad caps whenever possible, e.g. when the caps
19767 specify a valid video resolution.
19769 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19771 * gst/vaapi/gstvaapivideomemory.c:
19772 vaapivideomemory: don't crash when trying to allocate 0x0 images.
19773 In some occasions, a buffer pool is created for pre-initialization
19774 purposes regardless of whether a valid image size is available or
19775 not. However, during actual decode stage, the vaapidecode element
19776 is expected to update the srcpad caps with the new dimensions, thus
19777 also triggering a reset of the underlying bufferpool.
19779 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19781 * ext/codecparsers:
19782 codecparsers: update to gst-vaapi-branch commit 191cb2f
19783 347605a: h264parse: expose compatible profiles to downstream
19784 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19785 24a3126: Revert "h264parse: expose compatible profiles to downstream"
19786 8661740: h264parse: expose compatible profiles to downstream
19787 8b7ef3f: codecparsers: fix some compiler warnings
19789 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19791 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19792 encoder: h264: Fix the period between I/P frames
19793 If the key-frame period is set as one, then ip_period shuld be zero
19794 https://bugzilla.gnome.org/show_bug.cgi?id=734992
19796 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19798 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19799 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19800 https://bugzilla.gnome.org/show_bug.cgi?id=734993
19802 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19804 * gst/vaapi/gstvaapisink.c:
19805 vaapisink: Protect the X11 API invokations with proper locking
19806 https://bugzilla.gnome.org/show_bug.cgi?id=739808
19808 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19810 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19811 encoder: h264: fix pixel-aspect-ratio in encoded stream.
19812 Really report sample aspect ratio (SAR) as present, and make it match
19813 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19814 really make sure VUI parameter aspect_ratio_info_present_flag is set
19815 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19816 This is a leftover from git commit a12662f.
19817 https://bugzilla.gnome.org/show_bug.cgi?id=740360
19819 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19821 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19822 decoder: mpeg4: fix uninitialized variables.
19823 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19824 GST_MPEG4_USER_DATA so that a parse error would result in skipping
19825 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19826 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19828 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19830 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19831 encoder: h264: fix profile limits.
19832 Fix ensure_profile_limits() to lower profile to the desired limits,
19833 only if the latter are actually known and the profile needed to be
19836 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19838 * gst/vaapi/gstvaapipostproc.c:
19839 vaapipostproc: fix out caps for GLMemory.
19840 If the best downstream capsfeature turns out to be GLMemory, then make
19841 sure to propagate RGBA video format in caps to that element. This fixes
19842 the following pipeline: ... ! vaapipostproc ! glimagesink.
19844 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19846 * gst/vaapi/gstvaapipostproc.c:
19847 vaapipostproc: fix check for compatible src pad capsfilters.
19848 When an explicit output video format is selected, from an src pad
19849 capsfilter, make sure that the downstream element actually supports
19850 that format. In particular, fix crash with the following pipelines:
19851 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19852 XXX is a format not supported by xvimagesink.
19853 While doing so, also reduce the set of src pad filter caps to the
19854 actual set of allowed src pad caps.
19856 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19858 * gst/vaapi/gstvaapipostproc.c:
19859 * gst/vaapi/gstvaapipostproc.h:
19860 * gst/vaapi/gstvaapiuploader.c:
19861 * gst/vaapi/gstvaapiuploader.h:
19862 plugins: re-indent all video processing related source code.
19864 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19866 * gst/vaapi/gstvaapivideomemory.c:
19867 plugins: further fixes to the new "current" storage tracker.
19868 The ensure_surface() and ensure_image() functions shall only relate
19869 to the underlying backing store. The actual current flags are to be
19870 updated only through ensure_{surface,image}_is_current() or very other
19871 particular cases in GstMemory hooks.
19873 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19875 * gst/vaapi/gstvaapivideomemory.c:
19876 plugins: fix "current" video memory flags.
19877 If the surface proxy is updated into the GstVaapiVideoMemory, then
19878 it is assumed it is the most current representation of the current
19879 video frame. Likewise, make a few more arrangements to have the
19880 "current " flags set more consistently.
19882 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19884 * gst/vaapi/gstvaapivideomemory.c:
19885 * gst/vaapi/gstvaapivideomemory.h:
19886 * gst/vaapi/gstvaapivideometa.c:
19887 plugins: ensure VA surface is current prior to using it.
19888 When interacting with SW elements, the buffers and underlying video
19889 memory could be mapped as read/write. However, we need to use those
19890 buffers again as plain VA surfaces, we have to make sure the VA image
19891 is thus committed back to VA surface memory.
19892 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19894 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19896 * gst/vaapi/gstvaapivideomemory.c:
19897 plugins: enable memory maps for read & write.
19898 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19899 buffers can be further processed in-place, e.g. with a textoverlay.
19900 https://bugzilla.gnome.org/show_bug.cgi?id=704078
19901 [ported to current git master branch, amended commit message]
19902 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19904 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19906 * gst/vaapi/gstvaapidecode.c:
19907 * gst/vaapi/gstvaapipluginutil.c:
19908 * gst/vaapi/gstvaapipluginutil.h:
19909 * gst/vaapi/gstvaapipostproc.c:
19910 plugins: preserve framerate when updating src caps video format.
19911 In the current implementation, gst_video_info_set_format() would reset
19912 the whole GstVideoInfo structure first, prior to setting video format
19913 and size. So, coleteral information like framerate or pixel-aspect-
19915 Provide and use a unique gst_video_info_change_format() for overcome
19916 this issue, i.e. only have it change the format and video size, and
19917 copy over the rest of the fields.
19918 https://bugzilla.gnome.org/show_bug.cgi?id=734665
19920 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19922 * gst/vaapi/gstvaapi.c:
19923 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19924 This is for helping decodebin to autoplug the vaapidecode element.
19925 Decodebin is selecting decoder elements only based on rank and caps.
19926 Without overriding the autoplug-* signals there is no way to autoplug
19927 HW decoders inside decodebin. An easier soulution is to raise the
19928 rank of vaapidecode, so that it gets selected first.
19929 https://bugzilla.gnome.org/show_bug.cgi?id=739332
19931 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19933 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19934 * gst/vaapi/gstvaapidecode.c:
19935 vaapidecode: only expose supported profiles when needed.
19936 JPEG and VP8 codecs do not really support the concept of "profile". So,
19937 don't try to expose any set that wouldn't be supported by jpegparse, or
19938 ivfparse for instance.
19939 https://bugzilla.gnome.org/show_bug.cgi?id=739713
19940 https://bugzilla.gnome.org/show_bug.cgi?id=739714
19942 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19944 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19945 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19946 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19947 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19948 decoder: h264: add initial support for repeat-first-field (RFF) flag.
19949 Use the SEI pic_timing() message to track and propagate down the repeat
19950 first field (RFF) flag. This is only initial support as there is one
19951 other condition that could induce the RFF flag, which is not handled
19954 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19956 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19957 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19958 Fix the decoding process for picture order count type 0 when the previous
19959 picture had a memory_management_control_operation = 5. In particular, fix
19960 the actual variable type for prev_pic_structure to hold the full bits of
19961 the picture structure.
19962 In practice, this used to work though, due to the underlying type used to
19963 express a gboolean.
19965 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19967 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19968 decoder: h264: fix detection of top-field-first (TFF) flag.
19969 Use the SEI pic_timing() message to track the pic_struct variable when
19970 present, or infer it from the regular slice header flags field_pic_flag
19971 and bottom_field_flag. This fixes temporal sequence ordering when the
19972 output pictures are to be displayed.
19973 https://bugzilla.gnome.org/show_bug.cgi?id=739291
19975 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19977 * ext/codecparsers:
19978 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19979 1241840 h264: fix derivation of MaxPicNum variable
19980 3bd718e h264: fix GstH264ParserResult documentation typo
19981 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19982 b08e4be h264parse: don't unnecesarily set src_caps
19984 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19986 * gst/vaapi/gstvaapipostproc.c:
19987 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
19988 Added the same Klass specifications used in other upstream
19989 video postprocessing elements like videoconvert, videoscale,
19990 videobalance and deinterlace.
19991 An example use case is for this is to help the playsink
19992 to autoplug the hardware accelerated deinterlacer.
19994 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19996 * gst/vaapi/gstvaapipostproc.c:
19997 vaapipostproc: Tweak the output video format setting to enable the autoplugging
19998 This is a workaround until auto-plugging is fixed when
19999 format=ENCODED + memory:VASurface caps feature are provided.
20000 Use the downstream negotiated video format as the output video format
20001 if the user didn't ask for the colorspace conversion explicitly.
20002 Usecase: This will help to connect elements like videoscale, videorate etc
20004 https://bugzilla.gnome.org/show_bug.cgi?id=739443
20006 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20008 * gst/vaapi/gstvaapipostproc.c:
20009 * gst/vaapi/gstvaapipostproc.h:
20010 vaapipostproc: allow user defined scaling mode.
20011 Add new "scale-method" property to expose the scaling mode to use during
20012 video processing. Note that this is only a hint, and the actual behaviour
20013 may differ from implementation (VA driver) to implementation.
20015 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20017 * gst-libs/gst/vaapi/gstvaapifilter.c:
20018 * gst-libs/gst/vaapi/gstvaapifilter.h:
20019 * gst-libs/gst/vaapi/gstvaapiutils.c:
20020 * gst-libs/gst/vaapi/gstvaapiutils.h:
20021 filter: add initial support for high quality scaling.
20022 Add support for video scaling options in VPP pipelines. Only the
20023 DEFAULT mode is bound to exist. Others might be folded into that
20026 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20028 * gst-libs/gst/vaapi/gstvaapifilter.c:
20029 * gst-libs/gst/vaapi/gstvaapifilter.h:
20030 filter: re-indent all GstVaapiFilter related source code.
20032 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20034 * ext/codecparsers:
20035 codecparsers: update to gst-vaapi-branch commit f9d3bde.
20036 2218b02 h264parse: expose parsed profile and level to downstream
20037 3dbfab4 h264parse: return flushing if we get chained while being set to READY
20038 d40fa8b h264: fix frame packing SEI parsing
20039 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
20040 b3e022e h264: initialize some fields of pic_timing structure
20041 a70661d vc1: fix expected level in sequence-layer parsing unit test
20042 6cee88d vc1: fix level values for simple/main profile
20043 356c189 vc1: add unit test for sequence-layer parsing
20044 ab9f641 vc1: take care of endianness when parsing sequence-layer
20045 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
20047 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20049 * gst/vaapi/gstvaapidecode.c:
20050 vaapidecode: Expose the supported profiles as caps to upstream
20051 This will allows the playbin to fallback to Software Decoder
20052 if the Hardware Decoder does not support a particular profile.
20053 https://bugzilla.gnome.org/show_bug.cgi?id=730997
20055 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20057 * gst/vaapi/gstvaapiencode.c:
20058 * gst/vaapi/gstvaapiencode.h:
20059 * gst/vaapi/gstvaapiencode_h264.c:
20060 encode: Attach the codec-data to out caps only based on negotiated caps
20061 Attach the codec_data to out_caps only if downstream needed.
20062 For eg: h264 encoder doesn't need to stuff codec_data to the
20063 src caps if the negotiated caps has a stream format of byte-stream.
20064 https://bugzilla.gnome.org/show_bug.cgi?id=734902
20066 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20069 configure: echoing installation prefix path
20071 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20073 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20074 display: add support for DRM Render-Nodes.
20075 Add support for DRM Render-Nodes. This is a new feature that appeared
20076 in kernel 3.12 for experimentation purposes, but was later declared
20077 stable enough in kernel 3.15 for getting enabled by default.
20078 This allows headless usages without authentication at all, i.e. usages
20079 through plain ssh connections is possible.
20081 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20083 * gst/vaapi/gstvaapisink.c:
20084 vaapisink: clean-ups (indentation, drop unused variables).
20086 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20089 * gst/vaapi/gstvaapisink.c:
20090 vaapisink: fix GstNavigation "key-press" / "key-release" events.
20091 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
20092 to a KeySym. In particular, there is no such Window argument. Also
20093 make sure to check for, and use, the correct <X11/XKBlib.h> header
20094 where that new function is defined. Otherwise, default to the older
20095 XKeycodeToKeysym() function.
20097 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20099 * gst/vaapi/gstvaapisink.c:
20100 vaapisink: fix GstNavigation "mouse-move" event.
20101 Really use the motion event coordinates to propagate the "mouse-move"
20102 event to upper layer, instead of those from a button event. Those are
20103 technically the same though.
20105 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20107 * gst/vaapi/gstvaapisink.c:
20108 vaapisink: implement the GstNavigation interface
20109 This is useful for things like DVD menus, where key/mouse events
20110 would need to be forwarded from the upstream sink element.
20111 https://bugzilla.gnome.org/show_bug.cgi?id=711479
20113 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20115 * gst/vaapi/gstvaapipluginbase.c:
20116 vaapipostproc: fix deinterlacing from non VA memory buffers.
20117 When we copy a buffer because we're moving it into VA-API memory, we
20118 need to copy flags. Otherwise, interlaced YUV buffers from a capture
20119 source (e.g. V4L2) don't get flagged as interlaced.
20120 https://bugzilla.gnome.org/show_bug.cgi?id=726270
20121 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20122 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
20123 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20125 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20127 * gst/vaapi/gstvaapipostproc.c:
20128 vaapipostproc: add support for GLTextureUploadMeta output.
20129 This allows for vaapipostproc to be chained to the glimagesink element
20131 https://bugzilla.gnome.org/show_bug.cgi?id=735231
20133 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20135 * gst/vaapi/gstvaapipluginutil.c:
20136 * gst/vaapi/gstvaapipluginutil.h:
20137 * gst/vaapi/gstvaapipostproc.c:
20138 vaapipostproc: add support for "download" capability.
20139 Allow implicit conversions to raw video formats, while still keeping
20140 VA surfaces underneath. This allows for chaining the vaapipostproc
20141 element to a software-only element that takes care of maps/unmaps.
20143 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20145 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20147 * gst/vaapi/gstvaapipostproc.c:
20148 * gst/vaapi/gstvaapipostproc.h:
20149 vaapipostproc: use pooled vaapi video meta.
20150 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20151 video buffer allocation. Also optimize copy of additional metadata info
20152 into the resulting video buffer: only copy the video cropping info and
20153 the source surface proxy.
20154 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20155 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20156 [fixed proxy leak, fixed double free on error, optimized meta copy]
20157 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20159 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20161 * gst/vaapi/gstvaapipostproc.c:
20162 vaapipostproc: fix passthrough mode.
20163 If no explicit output surface format is supplied try to keep the one
20164 supplied through the sink pad caps. This avoids a useless copy, even
20165 if things are kept in GPU memory.
20166 This is a performance regression from git commit dfa70b9.
20168 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20170 * gst/vaapi/gstvaapipostproc.c:
20171 * gst/vaapi/gstvaapipostproc.h:
20172 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20173 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20174 [used new infrastructure through base decide_allocation() impl]
20175 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20177 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20179 * gst/vaapi/gstvaapipostproc.c:
20180 vaapipostproc: enable advanced deinterlacing with same format.
20181 If only advanced deinterlacing is requested, i.e. deinterlacing is
20182 the only active algorithm to apply with source and output surface
20183 formats being the same, then make sure to enable VPP processing.
20184 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20187 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20189 * gst/vaapi/gstvaapivideomemory.c:
20190 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20191 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20193 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20195 * gst/vaapi/gstvaapipluginbase.c:
20196 * gst/vaapi/gstvaapipluginutil.c:
20197 plugins: fix memory leaks.
20199 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20201 * gst/vaapi/gstvaapidecode.c:
20202 * gst/vaapi/gstvaapipluginbase.c:
20203 * gst/vaapi/gstvaapipluginbase.h:
20204 plugins: factor out decide_allocation() hook.
20205 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20206 feature argument can be used to force a bufferpool with a specific kind
20209 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20211 * gst/vaapi/gstvaapivideobufferpool.c:
20212 * gst/vaapi/gstvaapivideobufferpool.h:
20213 * gst/vaapi/gstvaapivideomemory.c:
20214 plugins: allow bufferpool to not allocate vaapi video meta.
20215 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20216 can be used to disable early allocations of vaapi video metas on buffers,
20217 thus delagating that to the bufferpool user.
20219 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20221 * gst/vaapi/gstvaapivideobuffer.c:
20222 * gst/vaapi/gstvaapivideobuffer.h:
20223 * gst/vaapi/gstvaapivideobufferpool.c:
20224 * gst/vaapi/gstvaapivideobufferpool.h:
20225 * gst/vaapi/gstvaapivideocontext.c:
20226 * gst/vaapi/gstvaapivideocontext.h:
20227 * gst/vaapi/gstvaapivideoconverter_glx.c:
20228 * gst/vaapi/gstvaapivideoconverter_glx.h:
20229 * gst/vaapi/gstvaapivideoconverter_x11.c:
20230 * gst/vaapi/gstvaapivideoconverter_x11.h:
20231 * gst/vaapi/gstvaapivideomemory.c:
20232 * gst/vaapi/gstvaapivideomemory.h:
20233 * gst/vaapi/gstvaapivideometa.c:
20234 * gst/vaapi/gstvaapivideometa.h:
20235 * gst/vaapi/gstvaapivideometa_texture.c:
20236 * gst/vaapi/gstvaapivideometa_texture.h:
20237 plugins: re-indent all GstVaapiVideo* related source code.
20239 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20241 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20242 surfaceproxy: fix copy to propagate view_id.
20243 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20244 fixing random frames skipped when vaapipostproc element is used in
20245 passthrough mode. In that mode, GstMemory is copied, thus including
20246 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20248 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20250 * gst/vaapi/gstvaapipostproc.c:
20251 vaapipostproc: fix detection of output surface format changes.
20252 Default to I420 format for output surfaces so that to match the usual
20253 GStreamer pipelines. Though, internally, we could still opt for NV12
20254 surface formats, i.e. default format=ENCODED is a hint for that, thus
20255 delegating the decision to the VA driver.
20257 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20259 * gst/vaapi/gstvaapipostproc.c:
20260 vaapipostproc: fix construction of allowed sink pad caps.
20261 Fix construction of the set of caps allowed on the sink pad to filter
20262 out unsupported raw video caps with GStreamer >= 1.2.
20264 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20266 * gst/vaapi/gstvaapipostproc.c:
20267 * gst/vaapi/gstvaapipostproc.h:
20268 vaapipostproc: improve heuristics for detecting native VA surfaces.
20269 Use the new gst_caps_has_vaapi_surface() helper function to detect
20270 whether the sink pad caps contain native VA surfaces, or not, i.e.
20272 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20273 explicit as we just want a way to differentiate raw video caps from
20274 VA surfaces actually.
20276 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20278 * gst/vaapi/gstvaapipostproc.c:
20279 vaapipostproc: disable discontinuity detection code.
20280 The "discontinuity" tracking code, whereby lost frames are tentatively
20281 detected, is inoperant if the sink pad buffer timestamps are not right
20283 This is a temporary workaround until the following bug is fixed:
20284 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20286 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20288 * gst/vaapi/gstvaapipostproc.c:
20289 vaapipostproc: fix heuristic for detecting discontinuity.
20290 In order to make the discontinuity detection code useful, we need to
20291 detect the lost frames in the history as early as the previous frame.
20292 This is because some VA implementations only support one reference
20293 frame for advanced deinterlacing.
20294 In practice, turn the condition for detecting new frame that is beyond
20295 the previous frame from field_duration*2 to field_duration*3, i.e.
20296 nothing received for the past frame and a half because of possible
20297 rounding errors when calculating the field-duration either in this
20298 element (vaapipostproc), or from the upstream element (parser element).
20299 This is a regression introduced with commit faefd62.
20300 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20302 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20304 * gst/vaapi/gstvaapipluginbase.c:
20305 * gst/vaapi/gstvaapipluginbase.h:
20306 plugins: fix detection of raw video caps.
20307 Use the new gst_caps_has_vaapi_surface() helper function to better
20308 detect raw video caps, and in particular those from RGB colorspace.
20309 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20311 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20313 * gst/vaapi/gstvaapipluginutil.c:
20314 * gst/vaapi/gstvaapipluginutil.h:
20315 plugins: add helper for detecting VA surfaces in caps.
20316 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20317 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20318 implies a check for memory:VASurface caps features, and format=ENCODED
20319 for earlier versions of GStreamer.
20321 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20323 * gst/vaapi/gstvaapidecode.c:
20324 vaapidecode: start the decoder task again after finishing
20325 This allows the element to accept data again after draining without
20326 a hard reset or caps change happening in between.
20327 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20329 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20331 * gst/vaapi/gstvaapidecode.c:
20332 vaapidecode: unlock condition variables before shutting down the element
20333 Otherwise threads might wait for them, causing the shutdown of the element
20334 to deadlock on the streaming thread.
20335 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20337 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20339 * gst/vaapi/gstvaapidecode.c:
20340 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20341 Otherwise the element is not usable again after draining/EOS.
20342 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20344 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20346 * gst/vaapi/gstvaapidecode.c:
20347 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20348 This otherwise results in unnecessary error messages.
20349 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20351 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20353 * gst-libs/gst/vaapi/Makefile.am:
20354 * gst/vaapi/Makefile.am:
20355 build: fix with --no-undefined linker flags.
20356 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20358 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20360 * gst/vaapi/gstvaapisink.c:
20361 * gst/vaapi/gstvaapisink.h:
20362 vaapisink: add support for GstColorBalance interface.
20363 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20364 [fixed channel names, simplified range factor, fixed memory leak]
20365 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20367 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20369 * gst/vaapi/gstvaapisink.c:
20370 * gst/vaapi/gstvaapisink.h:
20371 vaapisink: add support for colorbalance adjustment.
20372 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20373 [fixed and simplified tracking of colorbalance value changes]
20374 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20376 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20378 * gst/vaapi/gstvaapisink.c:
20379 vaapisink: improve installation of properties.
20380 Simplify the creation and installation process of properties, by first
20381 accumulating them into a g_properties[] array, and next calling into
20382 g_object_class_install_properties().
20383 Also add missing docs and flags to some properties.
20385 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20387 * gst/vaapi/gstvaapisink.c:
20388 * gst/vaapi/gstvaapisink.h:
20389 vaapisink: code clean-ups.
20390 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20391 helper macro and use it wherever we know the object is a GstBaseSink or
20392 any base class. Drop explicit initializers for values that have defaults
20395 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20397 * gst/vaapi/gstvaapisink.c:
20398 * gst/vaapi/gstvaapisink.h:
20399 vaapisink: re-indent all GstVaapiSink related source code.
20401 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20403 * gst/vaapi/gstvaapisink.c:
20404 * gst/vaapi/gstvaapisink.h:
20405 vaapisink: introduce separate backends.
20406 Introduce new backends vtable so that to have clean separation between
20407 display dependent code and common base code. That's a "soft" separation,
20408 we don't really need dedicated objects.
20409 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20411 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20413 * gst/vaapi/gstvaapisink.c:
20414 * gst/vaapi/gstvaapisink.h:
20415 vaapisink: drop unused "synchronous" mode.
20416 Support for X11 "synchronous" mode was never implemented, and was only
20417 to be useful for debugging. Drop that altogether, that's not going to
20418 be useful in practice.
20419 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20421 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20423 * gst/vaapi/gstvaapisink.c:
20424 * gst/vaapi/gstvaapisink.h:
20425 vaapisink: drop unused variables.
20426 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20427 variables. They got merged into the GstVaapiPluginBase object.
20429 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20431 * gst/vaapi/gstvaapisink.c:
20432 * gst/vaapi/gstvaapisink.h:
20433 vaapisink: drop GLX rendering and fancy effects.
20434 Rendering with GLX in vaapisink is kind of useless nowadays, including
20435 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20436 deprecated in favor of EGL, or more direct buffer sharing with actual
20438 Should testing of interop with GLX be needed, one could still be using
20439 the modern cluttersink or glimagesink elements.
20440 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20442 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20444 * gst/vaapi/gstvaapisink.c:
20445 * gst/vaapi/gstvaapisink.h:
20446 vaapisink: listen to window size changes on X11.
20447 Allow dynamic changes to the window, e.g. performed by the user, and
20448 make sure to refresh its contents, while preserving aspect ratio.
20449 In practice, Expose and ConfigureNotify events are tracked in X11
20450 display mode by default. This occurs in a separte event thread, and
20451 this is similar to what xvimagesink does. Any of those events will
20452 trigger a reconfiguration of the window "soft" size, subsequently
20453 the render-rect when necessary, and finally _expose() the result.
20454 The default of handle_events=true can be changed programatically via
20455 gst_x_overlay_handle_events().
20456 Thanks to Fabrice Bellet for rebasing the patch.
20457 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20458 [dropped XInitThreads(), cleaned up the code a little]
20459 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20461 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20463 * gst/vaapi/gstvaapidecode.c:
20464 vaapidecode: decode and output all pending frames on normal EOS.
20465 The gst_vaapidecode_decode_loop() function is called within a separate
20466 task to fetch and output all frames that were decoded so far. So, if
20467 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20468 then we are bound to exist the task without submitting the pending
20470 If the downstream element error'ed out, then the gst_pad_push() would
20471 propagate up an error and so we will get it right for cutting off
20472 _finish() early in that case.
20473 This is a regression from 6003596.
20474 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20476 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20479 Bump version for development.
20481 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20486 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20491 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20493 * gst/vaapi/gstvaapidecode.c:
20494 vaapidecode: properly return from decode loop on downstream errors.
20495 Fixes a hang/race on shutdown where _decode_loop() had already completed
20496 its execution and _finish() was waiting on a GCond for decode_loop()
20497 to complete. Also fixes the possible race where _finish() is called
20498 but _decode_loop() endlessly returns before signalling completion
20499 iff the decoder instance returns GST_FLOW_OK.
20500 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20501 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20502 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20503 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20505 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20511 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20513 * gst/vaapi/gstvaapisink.c:
20514 vaapisink: fix GstVideoOverlay::expose() implementation.
20515 Now that we always track the currently active video buffer, it is
20516 not necessary to automatically increase its reference since this is
20517 implicitly performed in ::show_frame() through the get_input_buffer()
20518 helper from GstVaapiPluginBase class.
20519 This is a regression from a26df80.
20521 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20523 * gst/vaapi/gstvaapidecode.c:
20524 * gst/vaapi/gstvaapipluginutil.c:
20525 vaapidecode: simplify bufferpool configuration.
20526 Rework the logics behind the configuration of an adequate bufferpool,
20527 especially when OpenGL meta or additional capsfeatures are needed.
20528 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20529 and that is not system memory, is now selected by default.
20531 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20533 * gst/vaapi/gstvaapidecode.c:
20534 vaapidecode: fix auto-plugging of vaapisink element.
20535 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20536 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20537 core currently miss additional patches available in 1.5-git (1.6).
20538 This is a temporary workaround.
20540 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20543 configure: allow builds against GStreamer git (1.5.x).
20544 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20546 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20549 configure: fix build with GStreamer 1.4.0 release.
20551 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20554 * debian.upstream/Makefile.am:
20555 * debian.upstream/control.in:
20556 debian: fix packaging for new naming scheme.
20558 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20563 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20566 configure: mark support for GStreamer < 1.2 as deprecated.
20567 Supporting anything thing below GStreamer 1.2 is asking for trouble
20568 for keeping up with the required facilities to make efficient pipelines.
20569 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20572 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20575 configure: mark support for GStreamer 0.10 as obsolete.
20576 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20577 and may actually be removed altogether for a future release. There is
20578 no real point to maintain a build for such an ancient GStreamer version
20579 that is not even supported upstream.
20581 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20583 * gst/vaapi/gstvaapisink.c:
20584 * gst/vaapi/gstvaapisink.h:
20585 vaapisink: allow a specific view component to be displayed.
20586 If a multiview stream is decoded, multiple view components are submitted
20587 as is downstream. It is the responsibility of the sink element to display
20588 the required view components. By default, always select the frame buffer
20589 that matches the view-id of the very first frame to be displayed.
20590 However, introduce a "view-id" property to allow the selection of a
20591 specific view component of interest to display.
20593 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20595 * gst/vaapi/gstvaapisink.c:
20596 vaapisink: always keep the last displayed buffer around.
20597 Always record the VA surface that is currently being rendered, no matter
20598 the fact we are using texturedblit or overlay. That's because in some
20599 occasions, we need to refresh or resize the displayed contents based on
20600 new events. e.g. user-resized window.
20601 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20602 through the base sink "last-sample".
20604 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20606 * gst/vaapi/gstvaapipluginbase.c:
20607 * gst/vaapi/gstvaapipluginbase.h:
20608 * gst/vaapi/gstvaapipluginutil.c:
20609 * gst/vaapi/gstvaapisink.c:
20610 vaapisink: add support for "display-name" property.
20611 Add a "display-name" property to vaapisink so that the end user could
20612 select the desired output. Keep "display-name" in-line with the existing
20613 "display" (GstVaapiDisplayXXX type).
20614 So, for X11 or GLX, the "display-name" is the usual display name as we
20615 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20616 for wl_display_connect(); and for DRM, the "display-name" is actually the
20618 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20620 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20622 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20623 window: make gst_vaapi_window_reconfigure() thread-safe.
20624 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20625 thread-safe by default, so that upper layer users don't need to handle
20628 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20630 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20631 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20632 window: allow for updating size from current geometry.
20633 Add gst_vaapi_window_reconfigure() interface to force an update of
20634 the GstVaapiWindow "soft" size, based on the current geometry of the
20635 underlying native window.
20636 This can be useful for instance to synchronize the window size when
20637 the user changed it.
20638 Thanks to Fabrice Bellet for rebasing the patch.
20639 [changed interface to gst_vaapi_window_reconfigure()]
20640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20642 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20644 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20645 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20646 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20647 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20648 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20649 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20650 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20651 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20652 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20653 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20654 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20655 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20656 window: re-indent all GstVaapiWindow related source code.
20658 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20660 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20661 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20662 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20663 display: add interface to retrieve the display name.
20664 Add gst_vaapi_display_get_display_name() helper function to determine
20665 the name associated with the underlying native display. Note that for
20666 raw DRM backends, the display name is actually the device path.
20668 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20670 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20671 display: fix comparison of X11 display names.
20672 Make sure to not only compare display host names, but also the actual
20673 display number. The screen number does not need to be checked at this
20676 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20678 * gst/vaapi/gstvaapidecode.c:
20679 * gst/vaapi/gstvaapivideobufferpool.c:
20680 vaapidecode: add support for VideoAlignment bufferpool option.
20681 Always add VideoAlignment bufferpool option if the downstream element
20682 expects its own pool to be used but does not offer it through a proper
20683 propose_allocation() implementation for instance, and that the ALLOCATION
20684 query does not expose the availability of the Video Meta API.
20685 This fixes propagation of video buffer stride information to Firefox.
20687 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20689 * gst/vaapi/gstvaapivideomemory.c:
20690 vaapivideomemory: always prefer native VA surface formats.
20691 Make sure to always prefer native internal formats for the VA surfaces
20692 that get allocated. Also disable "direct-rendering" mode in this case.
20693 This is needed so that to make sure that anything that gets out of the
20694 decoder, or anything that gets into the encoder, is in native format
20695 for the hardware, and thus the driver doesn't need to perform implicit
20696 conversions in there. Interop with SW elements is still available with
20697 fast implementations of VA imaging APIs.
20699 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20701 * gst/vaapi/gstvaapivideomemory.c:
20702 vaapivideomemory: disallow memory shares across buffers, use a copy.
20703 Forbid shares of GstMemory instances, and rather make copy of it. This
20704 effectively copies the GstMemory structure and enclosed metadata, but
20705 this does not copy the VA surface contents itself. It should though.
20706 This fixes preroll and makes sure to not download garbage for the first
20707 frame when a SW rendering sink is used.
20709 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20711 * gst/vaapi/gstvaapivideomemory.c:
20712 * gst/vaapi/gstvaapivideomemory.h:
20713 vaapivideomemory: use an image pool to cache objects.
20714 Use an image pool to hold VA images to be used for downloads/uploads
20715 of contents for the associated surface.
20716 This is an optmization for size. So, instead of creating as many VA
20717 images as there are buffers (then VA surfaces) allocated, we only
20718 maintain a minimal set of live VA images, thus preserving memory
20721 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20723 * gst/vaapi/gstvaapivideomemory.c:
20724 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20725 Disable read-write mappings if "direct-rendering" is not supported.
20726 Since the ordering of read and write operations is not specified,
20727 this would require to always download the VA surface on _map(), then
20728 commit the temporary VA image back to the VA surface on _unmap().
20729 Some SW decoding plug-in elements still use R/W mappings though.
20730 https://bugzilla.gnome.org/show_bug.cgi?id=733242
20732 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20734 * gst/vaapi/gstvaapivideomemory.c:
20735 vaapivideomemory: minor code clean-ups.
20736 Fix error messages introduced in the previous commit for the _map()
20737 imaplementation. Also use the new get_image_data() helper function
20738 to determine the base pixels data buffer from a GstVaapiImage when
20739 updating the video info structure from it.
20741 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20743 * gst/vaapi/gstvaapivideomemory.c:
20744 * gst/vaapi/gstvaapivideomemory.h:
20745 vaapivideomemory: add support for raw pixels mappings.
20746 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20747 cases where the buffer pool is allocated without VideoMeta API, thus
20748 individual planes cannot be mapped.
20749 This is initial support for Firefox >= 30.
20750 https://bugzilla.gnome.org/show_bug.cgi?id=731886
20752 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20754 * gst/vaapi/gstvaapivideomemory.c:
20755 vaapivideomemory: fix determination of the surface pool format.
20756 While creating the vaapi video allocator, make sure the associated
20757 surface pool has correct format instead of defaulting to NV12 video
20758 format even though there is no direct rendering support.
20759 https://bugzilla.gnome.org/show_bug.cgi?id=732691
20761 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20763 * gst/vaapi/gstvaapivideomemory.c:
20764 vaapivideomemory: fix association of surface to proxy.
20765 Make sure to always update the VA surface pointer whenever the proxy
20766 changes. This used to only work when the VA surface is written to, in
20767 interop with SW element ("upload" feature), and this now fixes cases
20768 when the VA surface is needed for reading, in interop with SW element
20769 ("download" feature).
20771 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20773 * gst/vaapi/gstvaapidecode.c:
20774 * gst/vaapi/gstvaapipluginutil.c:
20775 * gst/vaapi/gstvaapivideomemory.c:
20776 plugins: expose I420 format for interop with SW elements.
20777 Always expose I420 format by default when the VA surface could be
20778 mapped for interoperability with non harware accelerated elements.
20779 However, the default behaviour remains the auto-plugging of vaapi
20780 elements, down to the sink.
20781 Side effect: "direct-rendering" mode is also disabled most of the
20782 times as plain memcpy() from uncached speculative write combining
20783 memory is not going to be efficient enough.
20785 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20787 * gst/vaapi/gstvaapidecode.c:
20788 * gst/vaapi/gstvaapivideomemory.c:
20789 plugins: allow download capability to vaapidecode element.
20790 Fix support for VA surface download capability in vaapidecode element
20791 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20792 but also the libva-intel-driver while performing hardware accelerated
20793 conversions from the native VA surface format (NV12) to the desired
20794 output VA image format.
20795 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20796 https://bugzilla.gnome.org/show_bug.cgi?id=733243
20798 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
20800 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20801 decoder: mpeg4: fix picture decoder return value for skipped frames.
20802 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20803 when a frame should be skipped, so the stream processing is not stalled.
20804 https://bugzilla.gnome.org/show_bug.cgi?id=733324
20806 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
20808 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20809 decoder: mpeg2: respect any input PTS provided for a frame.
20810 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20811 frame timestamps within a GOP, even when it's been fed input PTS for
20813 That leads to incorrect output timestamps in some situations - for example
20814 live playback where input timestamps have been scaled based on arrival time
20815 from the network and don't exactly match the framerate.
20816 https://bugzilla.gnome.org/show_bug.cgi?id=732719
20818 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20820 * gst-libs/gst/vaapi/gstvaapiobject.c:
20821 GstVaapiObject: make gst_vaapi_object_new() more robust.
20822 Forbid GstVaapiObject to be created without an associated klass spec.
20823 It is mandatory that the subclass implements an adequate .finalize()
20824 hook, so it shall provide a valid GstVaapiObjectClass.
20825 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20826 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20827 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20829 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20831 * gst-libs/gst/vaapi/gstvaapiobject.c:
20832 GstVaapiObject: initialize the derived object data with init() hook.
20833 Call the subclass .init() function in gst_vaapi_object_new(), if
20834 needed. The default behaviour is to zero initialize the subclass
20835 object data, then the .init() function can be used to initialize
20836 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20837 Also fix the gst_vaapi_object_new() description, which was merely
20838 copied from GstVaapiMiniObject.
20839 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20840 [changed to always zero initialize the subclass]
20841 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20843 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
20845 * gst/vaapi/gstvaapidecode.c:
20846 vaapidecode: make decoder work with playbin
20847 When playbin/decodebin builds the pipeline, it puts decoders and sinks
20848 into different bins and forwards the queries from bins to bins. So in
20849 the initials steps the pipeline is built iteratively by playbin and
20852 [filesrc] -> [typefind]
20853 [filesrc] -> [typefind] -> [demuxer]
20854 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20855 At this point the decoder is asked for its SRC caps and it will make a
20856 choice based on what gst_pad_peer_query_caps() returns. The problem is
20857 that the caps returns at that point includes caps features like ANY,
20858 essentially because playbin can plug in additional elements like
20859 videoscale, videoconv or deinterlace.
20860 This patch adds a another call to
20861 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20862 allocation, to make sure we asks the downstream elements when the
20863 entire pipeline has been built.
20864 https://bugzilla.gnome.org/show_bug.cgi?id=731645
20866 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20868 * gst/vaapi/gstvaapipostproc.c:
20869 vaapipostproc: don't let tmp_rect go out of scope.
20870 A compiler change showed me that tmp_rect went out of scope before
20871 it was used. Move it to the beginning of the function instead.
20872 https://bugzilla.gnome.org/show_bug.cgi?id=726363
20873 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20874 [added guards for GStreamer 0.10 builds]
20875 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20877 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20882 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20886 Drop references to deprecated plugins (vaapiupload, vaapidownload),
20887 mention that support for GStreamer 0.10 is deprecated, make overview
20888 more descriptive in certain aspects.
20890 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20895 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20899 build: mention that support for GStreamer 0.10 is deprecated.
20901 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20904 * gst/vaapi/gstvaapidecode.c:
20905 build: fix for GStreamer 0.10.
20907 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20909 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20910 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20911 * patches/videoparsers/series.frag:
20912 build: fix for GStreamer 1.0.x.
20914 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20916 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20917 decoder: h264: detect incorrectly paired fields in frames.
20918 When a DPB flush is required, e.g. at a natural and of stream or issued
20919 explicitly through an IDR, try to detect any frame left in the DPB that
20920 is interlaced but does not contain two decoded fields. In that case, mark
20921 the picture as having a single field only.
20922 This avoids a hang while decoding tv_cut.mkv.
20924 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20926 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20927 decoder: h264: simplify the DPB output process.
20928 Simplify the dpb_output() function to exclusively rely on the frame store
20929 buffer to output, since this is now always provided. Besides, also fix
20930 cases where split fields would not be displayed.
20931 This is a regression from f48b1e0.
20933 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20935 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20936 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20937 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20938 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20939 * patches/videoparsers/series.frag:
20940 h264parse: drop patches merged upstream.
20941 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20942 0005-h264parse-introduce-new-state-tracking-variables.patch
20943 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20944 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20946 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20948 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20949 decoder: h264: fix memory leak in PPS.
20950 Cope with latest changes from codecparsers/h264. It is now required
20951 to explicitly clear the GstH264PPS structure as it could contain
20952 additional allocations (slice_group_ids).
20954 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20956 * ext/codecparsers:
20957 codecparsers: update to gst-vaapi-branch commit 2d53b69.
20958 c4ace00 h264parse: fix collection of access units to preserve config headers
20959 0f9f7c9 h264parse: improve conditions for skipping NAL units
20960 9ffb25c h264parse: introduce new state tracking variables
20961 64955d3 h264parse: fix and optimize NAL collection function
20962 13cd2a3 h264: clarifications and documentation fixes
20963 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20964 18f0de0 h264: fix memory leak in GstH264PPS
20965 fdcb54c h264: fix typo in GstH264VUIParams description
20966 fd4dae9 vp8: move up built-in range decoder private data
20968 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20970 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20971 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20972 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20973 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20974 decoder: propagate MVC metadata ("view-id", head of multiview set).
20975 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20976 bundle", and really expresses the first view component of a multi
20977 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20979 Likewise, new API is exposed to retrieve the associated "view-id".
20981 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20983 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20984 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20985 decoder: propagate "one-field" flags.
20986 Allow decoders to set the "one-field" attribute when the decoded frame
20987 genuinely has a single field, or if the second field was mis-decoded but
20988 we still want to display the first field.
20990 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20992 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20993 decoder: output decoded frames only once.
20994 Make sure to output the decoded picture, and push the associated
20995 GstVideoCodecFrame, only once. The frame fully represents what needs
20996 to be output, included for interlaced streams. Otherwise, the base
20997 GstVideoDecoder class would release the frame twice.
20998 Anyway, the general process is to output decoded frames only when
20999 they are complete. By complete, we mean a full frame was decoded or
21000 both fields of a frame were decoded.
21002 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21004 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21005 decoder: h264: decode current picture earlier.
21006 Slightly optimize decoding process by submitting the current VA surface
21007 for decoding earlier to the hardware, and perform the reference picture
21008 marking process and DPB update process afterwards.
21009 This is a minor optimization to let the video decode engine kick in work
21010 earlier, thus improving parallel resources utilization.
21012 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21014 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21015 decoder: h264: fix output of second field when first field is not in DPB.
21016 Fix decoding of interlaced streams where a first field (e.g. B-slice)
21017 was immediately output and the current decoded field is to be paired
21018 with that former frame, which is no longer in DPB.
21019 https://bugzilla.gnome.org/show_bug.cgi?id=701340
21021 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21023 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21024 decoder: h264: slightly optimize the process to detect new pictures.
21025 Optimize the process to detect new pictures or start of new access
21026 units by checking if the previous NAL unit was the end of a picture,
21027 or the end of the previous access unit.
21029 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21031 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21032 decoder: h264: handle access unit ("au") optimization.
21033 Optimize parsing when buffers are supplied with access unit alignment.
21034 This helps determining faster when the end of an access unit is reached.
21036 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21038 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21039 decoder: h264: fix tracking of DPB size changes.
21040 Add support for MVC streams with multiple SPS and subset SPS headers
21041 emitted regularly, e.g. at around every I-frame. Track the maximum
21042 number of views in ensure_context() and really reset the DPB size to
21043 the expected value, always. i.e. even if it decreased. dpb_reset()
21044 only cares of ensuring the DPB allocation.
21046 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21048 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21049 decoder: h264: fix the DPB compaction process.
21050 Fix the compaction process when the DPB is cleared for a specific
21051 view, i.e. fix the process of filling in the holes resulting from
21052 removing frame buffers matching the current picture.
21054 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21056 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21057 encoder: h264: generate new SPS only when codec config changed.
21058 It is not necessary to periodically send SPS or subset SPS headers.
21059 This is up to the upper layer (e.g. transport layer) to decide on
21060 if/how to periodically submit those. For now, only generate new SPS
21061 or subset SPS headers when the codec config changed.
21062 Note: the upper layer could readily determine the config headers
21063 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
21064 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21065 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21067 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21069 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21070 encoder: h264: track encoder config changes.
21071 Track and report when encoder configuration changed. For now, this covers
21072 resolution, profile/level and bitrate changes.
21074 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21076 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21077 encoder: h264: add pixel-aspect-ratio to VUI parameters.
21078 Report sample aspect ratio (SAR) as present, and make it match what
21079 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
21080 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
21082 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21084 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21085 encoder: h264: fix number of anchor and non-anchor reference pictures.
21086 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
21087 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
21090 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21092 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21093 encoder: h264: fix timing_info_present_flag value in subset SPS.
21094 When the seq_parameter_set_data() syntax structure is present in a subset
21095 sequence parameter set and vui_parameters_present_flag is equal to 1, then
21096 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
21098 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21100 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21101 encoder: h264: add cpbBrNalFactor values for MVC profiles.
21103 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21105 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21106 h264parse: fix detection of access unit boundaries for MVC.
21107 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
21108 this function is used to determine access unit boundaries, i.e. that
21109 is the key function for alignment=au output format generation.
21111 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21113 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21114 * patches/videoparsers/series.frag:
21115 h264parse: fix collection of access units to preserve config headers.
21116 Always use a GstAdapter when collecting access units (alignment="au")
21117 in either byte-stream or avcC format. This is required to properly
21118 preserve config headers like SPS and PPS when invalid or broken NAL
21119 units are subsequently parsed.
21120 More precisely, this fixes scenario like:
21121 <SPS> <PPS> <invalid-NAL> <slice>
21122 where we used to reset the output frame buffer when an invalid or
21123 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21124 preventing the next slice unit to be decoded, should this also
21125 represent any valid data.
21126 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21128 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21130 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21131 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21132 * patches/videoparsers/series.frag:
21133 h264parse: improve conditions for skipping NAL units.
21134 Carefully track cases when skipping broken or invalid NAL units is
21135 necessary. In particular, always allow NAL units to be processed
21136 and let that gst_h264_parse_process_nal() function decide on whether
21137 the current NAL needs to be dropped or not.
21138 This fixes parsing of streams with SEI NAL buffering_period() message
21139 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21140 SPS NAL unit, among other cases too.
21141 Practical examples from the H.264 AVC conformance suite include
21142 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21143 when parsing in stream-format=byte-stream,alignment=au mode.
21144 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21146 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21148 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21149 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21150 * patches/videoparsers/series.frag:
21151 h264parse: introduce new state tracking variables.
21152 Improve parser state tracking by introducing new flags reflecting
21153 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21154 robustness purposes.
21155 Older have_sps and have_pps variables are kept because they have
21156 a different meaning. i.e. they are used for deciding on when to
21157 submit updated caps or not, and rather mean "have new SPS/PPS to
21160 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21162 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21163 * patches/videoparsers/series.frag:
21164 h264parse: default to byte-stream/nalu format (Annex B).
21165 Always default to stream-format=byte-stream,alignment=nalu if avcC
21166 format was not detected. This is the natural stream format specified
21167 in the standard (Annex.B): a series of NAL units prefixed with the
21169 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21171 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21173 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21174 * patches/videoparsers/series.frag:
21175 h264parse: fix and optimize NAL collection function.
21176 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21177 NAL unit. We don't want to parse the full NAL unit, but only the
21178 header bytes and possibly the first RBSP byte for identifying the
21179 first_mb_in_slice syntax element.
21180 Also fix check for failure when returning from that function. The
21181 only success condition for that is GST_H264_PARSER_OK, so use it.
21182 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21184 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21186 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21187 encoder: h264: fix NAL unit types in packed headers.
21188 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21189 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21190 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21191 is required, with an appropriate nal_unit_header_mvc_extension() in
21192 the NAL header bytes.
21193 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21195 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21197 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21198 encoder: h264: add missing field in packed Subset SPS header.
21199 Write the missing num_level_values_signalled_minus1 syntax element
21200 into the packed header for subset sequence parameter set.
21201 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21203 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21205 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21206 decoder: h264: fix marking of non-reference picture into DPB.
21207 Fix search for a picture in the DPB that has a lower POC value than
21208 the current picture. The dpb_find_lowest_poc() function will return
21209 a picture with the lowest POC in DPB and that is marked as "needed
21210 for output", but an additional check against the actual POC value
21211 of the current picture is needed.
21212 This is a regression from 1c46990.
21213 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21215 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21217 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21218 decoder: h264: fix DPB clear when no decoding actually started.
21219 Fix dpb_clear() to clear previous frame buffers only if they actually
21220 exist to begin with. If the decoder bailed out early, e.g. when it
21221 does not support a specific profile, that array of previous frames
21222 might not be allocated beforehand.
21224 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21226 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21227 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21228 * gst/vaapi/gstvaapidecode.c:
21229 decoder: h264: add support for NALU "alignment" optimization.
21230 We can avoid scanning for start codes again if the bitstream is fed
21231 in NALU chunks. Currently, we always scan for start codes, and keep
21232 track of remaining bits in a GstAdapter, even if, in practice, we
21233 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21235 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21236 [use gst_adapter_available_fast() to determine the top buffer size]
21237 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21239 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21241 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21242 decoder: h264: fix caps to report interlace-mode accordingly.
21243 The `vaapipostproc' element could never determine if the H.264 stream
21244 was interlaced, and thus always assumed it to be progressive. Fix the
21245 H.264 decoder to report interlace-mode accordingly, thus allowing the
21246 vaapipostproc element to automatically enable deinterlacing.
21248 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21250 * gst/vaapi/gstvaapipostproc.c:
21251 vaapipostproc: don't crash with dynamic framerate (0/1).
21252 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21253 way to solve this problem is to just stick field_duration to zero.
21254 However, this means that, in presence of interlaced streams, the
21255 very first field will never be displayed if precise presentation
21256 timestamps are honoured.
21257 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21259 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21261 * gst/vaapi/gstvaapipostproc.c:
21262 vaapipostproc: create filter surface pool if it does not exist yet.
21263 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21264 recreating filter_pool. Unfortunately, this also meant it didn't create
21265 it if it did not exist.
21266 Fix it to always create the buffer pool if it does not exist.
21267 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21268 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21270 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21272 * gst/vaapi/gstvaapipostproc.c:
21273 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21274 Reset deinterlacer state, i.e. past reference frames used for advanced
21275 deinterlacing, when there is some discontinuity detected in the course
21276 of processing source buffers.
21277 This fixes support for advanced deinterlacing when a seek occurred.
21278 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21279 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21280 history buffer, reduce heuristic for detecting discontinuity]
21281 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21283 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21285 * gst/vaapi/gstvaapipostproc.c:
21286 vaapipostproc: add support for crop regions in VPP mode.
21287 Apply video cropping regions stored in GstVideoCropMeta, or in older
21288 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21289 the crop meta are already propagated to the output buffers.
21290 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21292 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21294 * gst/vaapi/gstvaapipostproc.c:
21295 vaapipostproc: make deinterlace-mode behave as expected.
21296 deinterlace-mode didn't behave in the way you'd expect if you have
21297 past experience of the deinterlace element. There were two bugs:
21298 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21299 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21300 Fix these up, and add assertions and error messages to detect cases that
21302 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21303 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21304 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21306 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21308 * gst/vaapi/gstvaapidecode.c:
21309 vaapidecode: do not discard video info props when the format changed.
21310 gst_video_info_set_format() does not preserve video info properties. In
21311 order to keep important information in the caps such as interlace mode,
21312 framerate, pixel aspect ratio, ... we need to manually copy back those
21313 properties after setting the new video format.
21314 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21316 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21318 * gst/vaapi/gstvaapidecode.c:
21319 vaapidecode: plug a memory leak.
21320 It can happen that there is a pool provided that does not advertise
21321 the vappivideometa. We should unref that pool before using our own.
21322 Discovered with vaapidecode ! {glimagesink,cluttersink}
21323 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21324 [fixed compilation by adding the missing semi-colon]
21325 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21327 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21329 * gst/vaapi/gstvaapidecode.c:
21330 vaapidecode: parse source data until a frame is obtained.
21331 Parse any pending data until a complete frame is obtained. This is a
21332 memory optimization to avoid expansion of video packets stuffed into
21333 the GstAdapter, and a fix to EOS condition to detect there is actually
21334 pending data that needs to be decoded, and subsequently output.
21335 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21337 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21339 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21340 encoder: h264: fix multiple slices support in packed headers mode.
21341 Handle packedi slice headers and packed raw data on a per-slice basis,
21342 which is necessary for multi slice encoding.
21344 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21346 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21347 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21348 encoder: add infrastructure for per-slice handling of packed headers.
21349 The packed slice header and packed raw data need to be paired with
21350 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21351 on a per-slice basis insted of a per-picture basis.
21352 [removed useless initializer]
21353 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21355 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21357 * gst/vaapi/gstvaapisink.c:
21358 vaapisink: fix initialization with "drm" display type.
21359 Force early initializatin of the GstVaapiDisplay so that to make sure
21360 that the sink element display object is presented first to upstream
21361 elements, as it will be correctly featuring the requested display type
21363 Otherwise, we might end up in situations where a VA/X11 display is
21364 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21365 (as requested by the "display" property), but this would cause a failure
21366 because we cannot acquire a DRM display that was previously acquired
21367 through another backend (e.g. VA/X11).
21369 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21371 * gst/vaapi/gstvaapipluginbase.c:
21372 plugins: fix initialization with foreign context.
21373 When a new display is settled through GstElement::set_context() (>= 1.2),
21374 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21375 associated display type.
21377 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21382 * gst/vaapi/Makefile.am:
21383 * gst/vaapi/gstvaapiparse.c:
21384 * gst/vaapi/gstvaapiparse.h:
21385 * patches/Makefile.am:
21386 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21387 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21388 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21389 * patches/videoparsers/Makefile.am:
21390 * patches/videoparsers/series.frag:
21391 plugins: add built-in video parsers as "vaapiparse" element.
21392 The built-in video parsers elements are built into a single DSO named
21393 libgstvaapi_parse.so. The various video parsers could be accessed as
21395 For now, this only includes a modified version of h264parse so that to
21396 support H.264 MVC encoded streams.
21398 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21400 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21401 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21402 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21403 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21405 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21407 * ext/codecparsers:
21408 codecparsers: update to gst-vaapi-branch commit d6325ac.
21409 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21410 d2f965a h264parse: set field_pic_flag when parsing a slice header
21411 24c15b8 Import h264parse
21412 a9283e5 bytereader: Use concistant derefence method
21413 a8252c6 bytereader: Use pointer instead of index access
21414 b1bebfc Import GstBitReader and GstByteReader
21415 2f58788 h264: recognize SVC NAL units
21416 4335da5 h264: fix SPS copy code for MVC
21417 cf9b6dc h264: fix quantization matrix conversion routine names
21418 b11ce2a h264: add gst_h264_video_calculate_framerate()
21419 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21421 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21423 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21424 decoder: h264: factor out DPB pruning for MVC.
21425 Factor out the removal process of unused inter-view only reference
21426 pictures from the DPB, prior to the possible insertion of the current
21428 Ideally, the compiler could still opt for generating two loops. But
21429 at least, the code is now clearer for maintenance.
21431 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21433 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21434 decoder: h264: clean-ups.
21435 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21436 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21438 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21440 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21441 decoder: h264: improve pruning of unused MVC inter-view frames.
21442 Improve process for the removal of pictures from DPB before possible
21443 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21444 reference components. In particular, handle cases where picture to be
21445 inserted is not the last one of the access unit and if it was already
21446 output and is no longer marked as used for reference, including for
21447 decoding next view components within the same access unit.
21449 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21451 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21452 decoder: h264: improve DPB bumping process for MVC.
21453 While invoking the DPB bumping process in presence of many views,
21454 it could be necessary to output previous pictures that are ready,
21455 in a whole. i.e. emitting all view components from the very first
21456 view order index zero to the very last one in its original access
21457 unit; and not starting from the view order index of the picture
21458 that caused the DPB bumping process to be invoked.
21459 As a reminder, the maximum number of frames in DPB for MultiView
21460 High profile with more than 2 views is not necessarily a multiple
21461 of the number of views.
21462 This fixes decoding of MVCNV-4.264.
21464 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21466 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21467 decoder: h264: fix inter-view references array growth.
21468 Let the utility layer handle dynamic growth of the inter-view pictures
21469 array. By definition, setting a new size to the array will effectively
21470 grow the array, but would also fill in the newly created elements with
21471 empty entries (NULL), thus also increasing the reported length, which
21474 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21476 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21477 decoder: h264: reduce ReferenceFrames entries to the essential set.
21478 When decoding Multiview High profile streams with a large number of
21479 views, it is not possible to make the VAPictureParameterBufferH264.
21480 ReferenceFrames[] array hold the complete DPB, with all possibly
21481 active pictures to be used for inter-view prediction in the current
21483 So reduce the scope of the ReferenceFrames[] array to only include
21484 the set of reference pictures that are going to be used for decoding
21485 the current picture. Basically, this is a union of all RefPicListX[]
21486 array, for all slices constituting the decoded picture.
21488 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21490 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21491 decoder: h264: fix MVC inter-view prediction process.
21492 The inter-view reference components and inter-view only reference
21493 components that are included in the reference picture lists shall
21494 be considered as not being marked as "used for short-term reference"
21495 or "used for long-term reference". This means that reference flags
21496 should all be removed from VAPictureH264.flags.
21497 This fixes decoding of MVCNV-2.264.
21499 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21501 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21502 decoder: h264: fix detection of profile changes for MVC.
21503 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21504 be careful to detect profiles changes and not reset the underlying
21505 VA context erroneously. In MVC situations, we could indeed get a
21506 profile_idc change for every SPS that gets activated, alternatively
21507 (base-view -> non-base view -> base-view, etc.).
21508 An improved fix would be to characterize the exact profile to use
21509 once and for all when SPS NAL units are parsed. This would also
21510 allow for fallbacks to a base-view decoding only mode.
21512 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21514 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21515 encoder: h264: drop extraneous definitions.
21516 Re-use definitions from the codecparser headers instead of duplicating
21517 them here again. That covers NALU definitions and slice types.
21519 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21521 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21522 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21523 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21525 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21527 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21528 encoder: h264: don't allow CABAC with Extended profile.
21529 The H.264 specification does not support CABAC entropy coding for the
21531 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21533 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21535 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21536 encoder: h264: use packed headers mode for MVC encoding.
21537 Exclusively use VA drivers that support raw packed headers for encoding.
21538 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21539 provides for better compatibility accross the various VA drivers and HW
21540 generations since no particular API is needed beyond what readily exists.
21542 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21544 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21545 encoder: h264: add support for packed slice headers.
21546 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21548 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21550 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21551 encoder: h264: store subset sps to generate the codec-data
21552 Store the SubsetSPS nal unit which we need for MVC specific
21553 codec_data generation.
21555 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21557 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21558 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21559 Since we are encoding each view independently from each other, we
21560 need a higher number of pre-allocated surfaces to be used as the
21561 reconstructed frames. For Stereo High profile encoding, this means
21562 to effectively double the number of frames to be stored in the DPB.
21564 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21566 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21567 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21568 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21569 * gst/vaapi/gstvaapiencode_h264.c:
21570 encoder: h264: add initial support for H.264 Stereo High profile.
21571 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21572 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21573 NALs for base-view encoding.
21574 The H.264 Stereo High profile encoding mode will be turned on when the
21575 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21576 considered as Left/Right view, alternatively.
21577 Each of the two views has its own frames reordering pool and reference
21578 frames list management system. Inter-view references are not supported
21579 yet, so the views are encoded independently from each other.
21580 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21581 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21582 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21584 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21586 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21587 encoder: h264: wrap pools for refs and frames reordering.
21588 Create structures to maintain the reference frames list (RefPool) and
21589 frames reordering (ReorderPool) logic.
21590 This is a prerequisite for H.264 MVC support.
21591 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21593 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21595 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21596 encoder: h264: add provisional support for subset SPS headers.
21597 Add provisions to write subset SPS headers to the bitstream in view
21598 to supporting the H.264 MVC specification.
21599 This assumes the libva "staging" branch is in use.
21600 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21602 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21604 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21605 * gst-libs/gst/vaapi/gstvaapiutils.c:
21606 utils: add H.264 MVC profiles.
21607 Add "MultiView High" and "Stereo High" definitions.
21608 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21609 [require VA-API >= 0.35.2 for MVC profiles]
21610 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21612 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21614 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21615 * gst-libs/gst/vaapi/gstvaapiutils.c:
21616 utils: only enable VP8 profiles for newer VA-API versions.
21617 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21618 involving VP8 codec on earlier versions of the API.
21620 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21622 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21623 decoder: h264: compute view ids only once per slice.
21624 Optimize lookups of view ids / view order indices by caching the result
21625 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21626 terribly simplifies is_new_access_unit() and find_first_field() functions.
21628 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21630 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21631 decoder: h264: add support for MVC interlaced streams.
21632 Fix support for MVC Stereo High profile streams with interlaced frames.
21633 Also improve the detection logic of the first field.
21635 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21638 decoder: h264: add MVC profiles compatibility logic.
21639 Add safe fallbacks for MVC profiles:
21640 - all MultiView High profile streams with 2 views at most can be decoded
21641 with a Stereo High profile compliant decoder ;
21642 - all Stereo High profile streams with only progressive views can be
21643 decoded with a MultiView High profile compliant decoder ;
21644 - all drivers that support slice-level decoding could normally support
21645 MVC profiles when the DPB holds at most 16 frames.
21647 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21649 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21650 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21651 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21652 decoder: h264: add initial support for MVC.
21653 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21655 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21657 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21658 decoder: h264: dynamically allocate the DPB.
21659 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21660 for supporting the MVC allocation requirements.
21662 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21664 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21665 decoder: h264: fix detection of access unit boundaries.
21666 In order to have a stricter conforming implementation, we need to carefully
21667 detect access unit boundaries. Additional operations could be necessary to
21668 perform at those boundaries.
21670 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21672 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21673 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21674 Detect the first VCL NAL unit of a picture for MVC, based on the
21675 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21677 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21679 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21681 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21682 decoder: h264: properly handle Prefix NAL units.
21683 Always cache the previous NAL unit so that we could check whether
21684 there is a Prefix NAL unit immediately preceding the current slice
21685 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21686 the current NAL unit. Otherwise, some default values are inferred,
21687 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21688 [infer default values for slice if previous NAL was not a Prefix]
21689 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21691 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21693 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21694 decoder: h264: add support for MVC base views.
21695 Allow decoding for base views of MVC encoded streams. For now, just skip
21696 the slice extension and prefix NAL units, and skip non-base view frames.
21697 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21698 [fixed memory leak, improved check for MVC NAL units]
21699 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21701 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21703 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21704 decoder: h264: simplify storage of decoded picture into DPB.
21705 Factor out process by which the decoded picture with the lowest POC
21706 is found, and possibly output. Likewise, the storage and marking of
21707 a reference decoded, or non-reference decoded picture, into the DPB
21708 could also be simplified as they mostly share the same operations.
21710 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21712 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21713 decoder: h264: minor clean-ups.
21714 Make init_picture_ref_lists() more consistent with other functions
21715 related to the reference marking process by supplying the current
21716 picture as argument.
21718 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21720 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21721 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21722 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21723 display: add utility function to query VA driver name.
21724 Add gst_vaapi_display_get_vendor_string() helper function to query
21725 the underlying VA driver name. The display object owns the resulting
21726 string, so it shall not be deallocated.
21727 That function is thread-safe. It could be used for debugging purposes,
21730 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21732 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21733 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21734 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21735 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21736 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21737 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21738 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21739 display: make cache maintenance really MT-safe.
21740 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21741 environments. This makes sure the display cache is also consistent
21742 during the whole display creation process. In the former implementation,
21743 there were risks that display cache got updated in another thread.
21745 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21747 * gst-libs/gst/vaapi/gstvaapicontext.c:
21748 context: allow dynamic growth of VA surfaces pool.
21749 Add support for dynamic growth of the VA surfaces pool. For decoding,
21750 this implies the recreation of the underlying VA context, as per the
21751 requirement from VA-API. Besides, only increases are supported, not
21754 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21756 * gst-libs/gst/vaapi/gstvaapicontext.c:
21757 context: reset VA context if VA surfaces set changed.
21758 It is a requirement from VA-API specification that the VA context got
21759 from vaCreateContext(), for decoding purposes, binds the supplied set
21760 of VA surfaces. This means that if the set of VA surfaces is to be
21761 changed for the current decode session, then the VA context needs to
21762 be recreated with the new set of VA surfaces.
21764 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21766 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21767 decoder: h264: fix assignment of LongTermFrameIdx.
21768 Complement fix committed as e95a42e.
21769 The H.264 AVC standard has to say: if the field is part of a reference
21770 frame or a complementary reference field pair, and the other field of
21771 the same reference frame or complementary reference field pair is also
21772 marked as "used for long-term reference", the reference frame or
21773 complementary reference field pair is also marked as "used for long-term
21774 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21775 This fixes decoding of MR9_BT_B in strict mode.
21776 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21777 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21779 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21781 * gst-libs/gst/vaapi/gstvaapicontext.c:
21782 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21783 * gst-libs/gst/vaapi/gstvaapiutils.c:
21784 * gst-libs/gst/vaapi/gstvaapiutils.h:
21785 decoder: h264: properly support grayscale formats.
21786 Request the correct chroma format for decoding grayscale streams.
21787 i.e. make lookups of the VA chroma format more generic, thus possibly
21788 supporting more formats in the future.
21789 This means that, if a VA driver doesn't support grayscale formats,
21790 it is now going to fail. We cannot safely assume that maybe grayscale
21791 was implemented on top of some YUV 4:2:0 with the chroma components
21794 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21796 * gst-libs/gst/vaapi/gstvaapifilter.c:
21797 * gst-libs/gst/vaapi/gstvaapifilter.h:
21798 * tests/test-filter.c:
21799 build: fix source file modes.
21800 A few source files are marked executable in error - fix them
21801 https://bugzilla.gnome.org/show_bug.cgi?id=723748
21802 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21804 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21807 * gst-libs/gst/vaapi/Makefile.am:
21808 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21809 * gst/vaapi/gstvaapidecode.c:
21810 build: fix conditional compilation of VP8 decoder.
21811 https://bugzilla.gnome.org/show_bug.cgi?id=729170
21812 [added check for VASliceParameterBufferBase fields]
21813 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21815 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21817 * gst-libs/gst/codecparsers/Makefile.am:
21818 build: fix make dist for codecparsers.
21820 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21822 * ext/codecparsers:
21823 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21824 h264: fix parsing of slice groups for map type = 2
21826 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21828 * ext/codecparsers:
21829 codecparsers: update to gst-vaapi branch commit f44edfc.
21830 h264: fix derivation of default scaling lists
21832 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
21834 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21835 decoder: h264: fix long-term reference picture marking process.
21836 Fix reference picture marking process with memory_management_control_op
21837 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21838 picture, or the current picture.
21839 This fixes decoding of FRExt_MMCO4_Sony_B.
21840 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21841 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21842 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21843 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21845 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21847 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21848 decoder: h264: fix initialization of RefPicLists for multiple slices.
21849 The initialization of reference picture lists (8.2.4.2) applies to all
21850 slices. So, the RefPicList0/1 lists need to be constructed prior to
21851 each slice submission to the HW decoder.
21852 This fixes decoding of video sequences where frames are encoded with
21853 multiple slices of different types, e.g. 4 slices in this order I, P,
21854 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21855 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21857 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
21859 * ext/codecparsers:
21860 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21861 decoder: h264: skip SPS extension and auxiliary slice NALs.
21862 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21863 are present in a video, decoders shall perform the (optional) decoding
21864 process specified for these NAL units or shall ignore them (7.4.1).
21865 Implement option 2 (skip) for now, as alpha composition is not
21866 supported yet during the decoding process.
21867 This fixes decoding of the primary coded video in alphaconformanceG.
21868 https://bugzilla.gnome.org/show_bug.cgi?id=703928
21869 https://bugzilla.gnome.org/show_bug.cgi?id=728869
21870 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21871 [skip NAL units earlier, i.e. at parsing time]
21872 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21874 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21876 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21877 decoder: h264: fix slice data bit offset with MVC NAL units.
21878 When MVC slice NAL units (coded slice extension and prefix NAL) are
21879 present, the number of NAL header bytes is 3, not 1 as usual.
21880 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21881 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21883 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21885 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21886 decoder: h264: fix activation of picture and sequence parameters.
21887 At the time the first VCL NAL unit of a primary coded picture is found,
21888 and if that NAL unit was parsed to be an SPS or PPS, then the entries
21889 in the parser may have been overriden. This means that, when the picture
21890 is to be decoded, slice_hdr->pps could point to an invalid (the next)
21892 So, one way to solve this problem is to not use the parser PPS and
21893 SPS info but rather maintain our own activation chain in the decoder.
21894 https://bugzilla.gnome.org/show_bug.cgi?id=724519
21895 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21897 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21899 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21900 decoder: h264: retain SEI messages until the end of frame.
21901 Retain the SEI messages that were parsed from the access unit until we
21902 have completely decoded the current frame. This is done so that we can
21903 peek at that data whenever necessary during decoding. e.g. for exposing
21904 3D stereoscopic information at a later stage.
21906 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21908 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21909 decoder: h264: add support for grayscale encoded clips.
21910 Fix support for grayscale encoded video clips, and possibly others if
21911 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21912 the decision that a surface with the desired chroma format is not
21913 supported to the actual VA driver implementation.
21914 https://bugzilla.gnome.org/show_bug.cgi?id=728144
21916 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21918 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21919 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21920 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21921 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21922 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21923 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21924 decoder: default to YUV 4:2:0 VA surfaces.
21925 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21926 make sure all codecs use YUV 4:2:0 output format for now, by default.
21928 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21930 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21931 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21932 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21933 decoder: re-indent GstVaapiDecoder base object.
21935 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21937 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21938 encoder: derive chroma type from video format.
21939 Cope with previous VA context change to derive the correct surface chroma
21940 type from the input video format.
21942 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21944 * gst-libs/gst/vaapi/gstvaapicontext.c:
21945 * gst-libs/gst/vaapi/gstvaapicontext.h:
21946 context: add support for non-YUV 4:2:0 formats.
21947 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21948 for the upper layer to specify the desired chroma type. If the chroma
21949 type field is not set (or yields zero), then YUV 4:2:0 format is used
21952 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21954 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21955 vp8: fix per-segment deblocking filter level in relative mode.
21956 Fix possible bug when a per-segment deblocking filter level value
21957 needs to be set in non-absolute mode, i.e. when the loop filter update
21958 value is negative in delta mode.
21959 Also clamp the resulting filter level value to 0..63 range.
21961 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21963 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21964 vp8: fix check for disabling the loop filter (again).
21965 Improve condition to disable the loop filter. The previous heuristic
21966 used to check all filter levels, for all segments. It turns out that
21967 only the base filter_level value defined in the frame header needs
21969 This fixes 00-comprehensive-013.
21971 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21973 * gst-libs/gst/codecparsers/Makefile.am:
21974 * gst/vaapi/Makefile.am:
21975 build: fix make dist with certain conditionals not met.
21976 Fix generation of source tarballs when certain conditionals are not
21977 met. e.g. always include all buildable codecparsers sources in the
21978 distribution tarball, fix plug-in element sources set to include X11
21981 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21984 build: add missing files for GStreamer 0.10.
21985 Add missing GstVideoEncoder implementation files to fix build with ancient
21986 GStreamer 0.10 stack.
21987 https://bugzilla.gnome.org/show_bug.cgi?id=723964
21989 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21992 build: add missing files for VP8 bitstream parser.
21993 Fix make dist for building the VP8 bitstream parser.
21995 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21998 * ext/libvpx/Makefile.am:
21999 * gst-libs/gst/codecparsers/Makefile.am:
22000 vp8: allow compilation without the built-in libvpx.
22001 The built-in libvpx serves multiple purposes, among which the most
22002 important ones could be: track the most up-to-date, and optimized,
22003 range decoder; allow for future hybrid implementations (non-VLD);
22004 and have a completely independent range decoder implementation.
22006 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22008 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22009 vp8: propagate PTS from demux frame.
22010 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
22011 or parser would already have determined the PTS from a previous stage.
22013 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22016 * debian.upstream/libgstvaapi.install.in:
22017 * ext/libvpx/Makefile.am:
22018 * ext/libvpx/sources.frag:
22019 * gst-libs/gst/codecparsers/Makefile.am:
22020 vp8: fix compilation with built-in libvpx.
22021 Apply correct patch from fd.o #722760 to fix several issues: update the
22022 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
22025 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22031 * ext/libvpx/Makefile.am:
22032 * ext/libvpx/gstlibvpx.c:
22033 * ext/libvpx/gstlibvpx.h:
22034 * ext/libvpx/libgstcodecparsers_vpx.vers:
22035 * ext/libvpx/sources.frag:
22036 * ext/libvpx/upstream:
22037 * gst-libs/gst/codecparsers/Makefile.am:
22038 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
22039 vp8: use range decoder from libvpx.
22040 Add libvpx submodule that tracks the upstream version 1.3.0. This is
22041 needed to build a libgstcodecparsers_vpx.so library with all symbols
22042 placed into the GSTREAMER namespace.
22044 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22046 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22047 vp8: fix check for disabling the loop filter.
22049 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
22053 * gst-libs/gst/codecparsers/Makefile.am:
22054 * gst-libs/gst/vaapi/Makefile.am:
22055 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22056 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22057 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22058 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22059 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22060 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
22061 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22062 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22063 * gst/vaapi/gstvaapidecode.c:
22064 Add initial VP8 decoder.
22065 https://bugzilla.gnome.org/show_bug.cgi?id=722761
22066 [complete overhaul, fixed support for resolution changes]
22067 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22069 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22071 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22072 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
22073 The gst_h264_parse_parse_sei() function now returns an array of SEI
22074 messages, instead of a single SEI message. Reason: it is allowed to
22075 have several SEI messages packed into a single SEI NAL unit, instead
22076 of multiple NAL units.
22078 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22080 * ext/codecparsers:
22081 codecparsers: update to gst-vaapi-branch commit a454f86.
22082 b2eb5f6 vp8: rename dboolhuff symbols
22083 b74a881 vp8: add GStreamer native utilities
22084 2940ac6 add VP8 bitstream parser
22086 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22088 * ext/codecparsers:
22089 codecparsers: update to gst-vaapi-branch commit d459bc5.
22090 d459bc5 h264: set framerate even for interlaced videos
22091 c78b82c h264: add support for Recovery Point SEI message
22092 7693bac h264: add support for Frame Packing Arrangement SEI message
22093 31fafa7 h264: add support for Stereo Video Information SEI message
22094 8b113a6 h264: parse seq_parameter_set_mvc_extension()
22095 040f9b8 h264: parse MVC syntax elements
22096 cc18ef3 h264: add nal_reader_skip_long() helper
22097 7e76a48 h264: fix slice_header() parsing for MVC
22098 caf46d8 h264: add gst_h264_parse_nalu_header() helper
22099 f75074e h264: add gst_h264_parse_sps_data() helper
22100 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
22101 4e36737 h264: fix skipping of unsupported SEI messages
22102 5300766 h264: fix SEI buffering_period() parsing
22104 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22106 * ext/codecparsers:
22107 * gst-libs/gst/codecparsers/Makefile.am:
22108 codecparsers: update to gst-vaapi-branch commit 8fadf40.
22109 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
22110 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
22111 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
22112 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
22113 8ec5816 h265: Fix segfault when parsing HRD parameter
22114 5b1730f h265: Fix segfault when parsing VPS
22115 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
22116 7ba641d h265: Fix debug output
22117 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
22119 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22121 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22122 decoder: h264: fix robustness patch for bytestream format.
22123 Fix parser and decoder state to sync at the right locations. This is
22124 because we could reset the parser state, while the decoder state was
22125 not copied yet, e.g. when parsing several NAL units from multiple frames
22126 whereas the current frame was not decoded yet.
22127 This is a regression brought in by commit 6fe5496.
22129 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22132 * pkgconfig/Makefile.am:
22133 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22134 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22135 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22136 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22137 build: fix pkgconfig file names (again).
22138 It turns out it is more convenient to have only pkgconfig files named
22139 after the installed GStreamer API version (1.0) instead of using all
22140 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22141 altogether anyway, so align pkgconfig file names to that.
22143 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22145 * debian.upstream/libgstvaapi-dev.install.in:
22146 * gst-libs/gst/vaapi/Makefile.am:
22147 * pkgconfig/gstreamer-vaapi.pc.in:
22148 build: fix packaging for GStreamer 1.2.
22149 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22150 the pkgconfig version (1.0) instead of the intended API version (1.2).
22151 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22152 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22154 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22157 Bump version for development.
22159 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22161 * debian.upstream/control.in:
22162 debian: fix trailing whitespace in description.
22164 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22166 * debian.upstream/control.in:
22167 * debian.upstream/copyright:
22168 debian: fix package description.
22169 Try to improve package description for the compiled plug-in elements
22170 available in there. e.g. only display vaapidownload and vaapiupload
22171 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22172 encoding is enabled, etc.
22173 Also increase the copyright notice date.
22175 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22177 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22178 build: fix warnings on 64-bit platforms.
22180 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22182 * gst-libs/gst/vaapi/gstvaapicontext.c:
22183 * gst-libs/gst/vaapi/gstvaapiutils.c:
22184 build: fix for older versions of VA-API (< 0.34.0).
22185 Fix build with older versions of VA-API (< 0.34.0), or versions without
22186 good enough headers for encoding support for instance.
22188 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22194 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22198 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22199 support. Update copyright years, list of supported Intel HD Graphics
22202 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22207 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22209 * tests/test-filter.c:
22210 tests: test-filter: fix "deinterlace" option parse.
22211 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22212 string was provided, i.e. if it remained set to NULL.
22214 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22216 * gst-libs/gst/vaapi/Makefile.am:
22217 * gst-libs/gst/vaapi/gstvaapicontext.c:
22218 * gst-libs/gst/vaapi/gstvaapicontext.h:
22219 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22220 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22221 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22222 libs: factor out usages of vaGetConfigAttributes().
22223 Add gst_vaapi_get_config_attribute() helper function that takes a
22224 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22225 is to have thread-safe VA helpers by default.
22227 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22229 * gst-libs/gst/vaapi/gstvaapiutils.c:
22230 * gst-libs/gst/vaapi/gstvaapiutils.h:
22231 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22232 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22233 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22234 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22235 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22236 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22237 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22238 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22239 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22240 libs: re-indent all source code related to VA utilities.
22242 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22244 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22245 libs: add missing file (libgstvaapi_priv_check.h).
22247 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22249 * gst-libs/gst/vaapi/gstvaapicontext.c:
22250 * gst-libs/gst/vaapi/gstvaapicontext.h:
22251 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22252 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22253 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22254 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22255 encoder: notify the encoder of the submitted packed headers.
22256 Make sure to configure the encoder with the set of packed headers we
22257 intend to generate and submit. i.e. make selection of packed headers
22258 to submit more robust.
22260 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22262 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22263 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22264 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22265 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22266 encoder: fix and factor out check for supported rate-control modes.
22267 Cache the first compatible GstVaapiProfile found if the encoder is not
22268 configured yet. Next, factor out the code to check for the supported
22269 rate-control modes by moving out vaGetConfigAttributes() to a separate
22270 function, while also making sure that the attribute type is actually
22271 supported by the encoder.
22272 Also fix the default set of supported rate control modes to not the
22273 "none" variant. It's totally useless to expose it at this point.
22275 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22277 * gst-libs/gst/vaapi/gstvaapicontext.c:
22278 * gst-libs/gst/vaapi/gstvaapicontext.h:
22279 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22280 context: move rate-control mode to encoder specific config.
22281 Move usage-specific config out of the common GstVaapiContextInfo.
22282 Create a specialized config for encoding and move rate-control mode
22285 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22287 * gst-libs/gst/vaapi/gstvaapicontext.c:
22288 * gst-libs/gst/vaapi/gstvaapicontext.h:
22289 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22290 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22291 context: introduce concept of usage.
22292 Introduce GstVaapiContextUsage so that to explicitly determine the
22293 usage of a VA context. This is useful in view to simplifying the
22294 creation of VA context for VPP too.
22296 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22298 * gst-libs/gst/vaapi/gstvaapicontext.c:
22299 context: fix get_attribute() value result.
22300 Unknown attributes, or attributes that are not supported for the given
22301 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22302 So, return failure in this case.
22304 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22306 * gst-libs/gst/vaapi/Makefile.am:
22307 * gst-libs/gst/vaapi/gstvaapicontext.c:
22308 * gst-libs/gst/vaapi/gstvaapicontext.h:
22309 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22310 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22311 * gst-libs/gst/vaapi/gstvaapisurface.c:
22312 context: move overlay composition to separate files.
22313 Move GstVideoOverlayComposition handling to separate source files.
22314 This helps keeing GstVaapiContext core implementation to the bare
22315 minimal, i.e. simpy helpers to create a VA context and handle pool
22316 of associated VA surfaces.
22318 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22320 * gst-libs/gst/vaapi/gstvaapicontext.c:
22321 * gst-libs/gst/vaapi/gstvaapicontext.h:
22322 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22323 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22324 context: clean-ups. Strip down APIs.
22325 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22326 them down to the minimal set of interfaces. They are private, so no
22327 need expose getters for instance.
22329 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22331 * gst-libs/gst/vaapi/gstvaapicontext.c:
22332 * gst-libs/gst/vaapi/gstvaapicontext.h:
22333 context: re-indent all GstVaapiContext related source code.
22335 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22337 * gst-libs/gst/vaapi/Makefile.am:
22338 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22339 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22340 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22341 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22342 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22343 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22344 * gst-libs/gst/vaapi/gstvaapiutils.h:
22345 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22346 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22347 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22348 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22349 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22350 libs: check that private headers remain private.
22351 Make sure that libgstvaapi private headers remain internally used to
22352 build libgstvaapi libraries only. All header dependencies were reviewed
22353 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22354 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22357 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22360 Bump library major version.
22361 Bump the library major version due to API/ABI changes that occurred in
22362 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22363 expose any GstCaps but provide GArray based ones e.g. to determine the
22364 set of supported decode/encode profiles.
22366 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22368 * gst-libs/gst/vaapi/glibcompat.h:
22369 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22370 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22371 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22372 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22373 * gst-libs/gst/vaapi/gstvaapicontext.c:
22374 * gst-libs/gst/vaapi/gstvaapicontext.h:
22375 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22376 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22377 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22378 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22379 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22380 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22381 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22382 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22383 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22384 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22385 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22386 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22387 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22388 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22389 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22390 * gst-libs/gst/vaapi/gstvaapifilter.c:
22391 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22392 * gst-libs/gst/vaapi/gstvaapisurface.c:
22393 * gst-libs/gst/vaapi/gstvaapisurface.h:
22394 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22395 * gst-libs/gst/vaapi/gstvaapitypes.h:
22396 * gst-libs/gst/vaapi/gstvaapiutils.c:
22397 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22398 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22399 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22400 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22401 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22402 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22403 * gst-libs/gst/vaapi/gstvaapivalue.c:
22404 * gst-libs/gst/vaapi/gstvaapivalue.h:
22405 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22406 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22407 * gst/vaapi/gstvaapidecode.c:
22408 * gst/vaapi/gstvaapiencode.c:
22409 * gst/vaapi/gstvaapiencode.h:
22410 * gst/vaapi/gstvaapiencode_h264.c:
22411 * gst/vaapi/gstvaapiencode_h264.h:
22412 * gst/vaapi/gstvaapiencode_mpeg2.c:
22413 * gst/vaapi/gstvaapiencode_mpeg2.h:
22414 * gst/vaapi/gstvaapipluginbase.c:
22415 * gst/vaapi/gstvaapipluginutil.c:
22416 * gst/vaapi/gstvaapipluginutil.h:
22417 * gst/vaapi/gstvaapipostproc.c:
22418 * gst/vaapi/gstvaapipostproc.h:
22419 * gst/vaapi/gstvaapisink.c:
22420 * gst/vaapi/gstvaapisink.h:
22421 * gst/vaapi/gstvaapivideometa_texture.c:
22422 * tests/simple-decoder.c:
22423 legal: update copyright notice dates.
22425 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22427 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22428 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22429 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22430 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22431 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22432 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22433 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22434 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22435 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22436 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22437 * gst/vaapi/gstvaapiencode.c:
22438 * gst/vaapi/gstvaapiencode.h:
22439 * gst/vaapi/gstvaapiencode_h264.c:
22440 * gst/vaapi/gstvaapiencode_h264.h:
22441 * gst/vaapi/gstvaapiencode_mpeg2.c:
22442 * gst/vaapi/gstvaapiencode_mpeg2.h:
22443 legal: add per-file authorship information.
22445 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22447 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22448 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22449 decoder: fix video codec frame number in standalone mode.
22450 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22451 stream in standalone mode. While we are at it, improve the debugging
22452 messages to also include that frame number.
22454 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22456 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22457 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22458 decoder: fix crash on invalid pointer for GST_DEBUG().
22459 When decoding failed, or that the frame was dropped, the associated
22460 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22461 message needs to check whether the proxy is actually present or not.
22462 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22463 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22464 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22466 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22468 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22469 encoder: h264: disable NAL HRD parameters for now.
22470 Don't emit NAL HRD parameters for now in the SPS headers because the
22471 SEI buffering_period() and picture_timing() messages are not handled
22472 yet. Some additional changes are necessary to get it right.
22473 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22475 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22477 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22478 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22479 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22480 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22481 encoder: h264: fix default CPB buffer size.
22482 Fix default CPB buffer size to something more reasonable (1500 ms)
22483 and that still fits the level limits. This is a non configurable
22484 property for now. The initial CPB removal delay is also fixed to
22486 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22488 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22490 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22491 encoder: h264: fix bitrate encoding for HRD conformance.
22492 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22493 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22494 that to have less losses in precision. Likewise, don't round up because
22495 that could be a strict constraint imposed by the user.
22497 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22499 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22500 encoder: h264: fix level lookup constraints wrt. bitrate.
22501 Fix the level calculation involving bitrate limits. Since we are
22502 targetting NAL HRD conformance, the check against MaxBR from the
22503 Table A-1 limits shall involve cpbBrNalFactor depending on the
22506 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22508 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22509 encoder: h264: submit sequence parameter only once.
22510 Submit sequence parameter buffers only once, or when the bitstream
22511 was reconfigured in a way that requires such. Always submit packed
22512 sequence parameter buffers at I-frame period, if the VA driver needs
22514 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22516 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22518 * gst-libs/gst/vaapi/gstvaapicontext.c:
22519 * gst-libs/gst/vaapi/gstvaapicontext.h:
22520 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22521 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22522 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22523 encoder: h264: only submit packed headers when required.
22524 Make sure to submit the packed headers only if the underlying VA driver
22525 requires those. Currently, only handle packed sequence and picture
22527 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22529 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22531 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22532 encoder: h264: fix ip_period value in sequence parameter.
22533 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22534 between the I-frame and the next P-frame. So, this also accounts for
22535 any additional B-frame in the middle of it.
22536 This fixes rate control heuristics for certain VA drivers.
22537 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22539 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22541 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22542 encoder: h264: fix level when bitrate is automatically computed.
22543 Fix level characterisation when the bitrate is automatically computed
22544 from the active coding tools. i.e. ensure the bitrate once the profile
22545 is completely characterized but before the level calculation process.
22547 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22549 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22550 encoder: h264: clean-ups.
22551 Document and rename a few functions here and there. Drop code that
22552 caps num_bframes variable in reset_properties() since they shall
22553 have been checked beforehand, during properties initialization.
22555 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22557 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22558 encoder: h264: clean-up bitwriter related utilities.
22559 Clean-up GstBitWriter related utility functions and simplify notations.
22560 While we are at it, also make bitstream writing more robust should an
22561 overflow occur. We could later optimize for writing headers capped to
22562 their maximum possible size by using the _unchecked() helper variants.
22564 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22566 * gst-libs/gst/vaapi/Makefile.am:
22567 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22568 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22569 encoder: h264: completely remove private headers.
22570 Drop private header since it was originally used to expose internals
22571 to the plugin element. The proper interface is now the properties API,
22572 thus rendering private headers totally obsolete.
22574 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22576 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22577 encoder: h264: fix PPS header packing with profile < high.
22578 Fix PPS header packing when profile is below High since 8x8 transform
22579 mode and scaling lists are High Profile features.
22581 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22583 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22584 encoder: h264: always emit VUI parameters for framerate.
22585 Always emit VUI parameters for timing_info, which includes framerate
22588 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22590 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22591 encoder: h264: really fix frame cropping rectangle calculation.
22592 Make frame cropping rectangle calculation future proof, i.e. exactly
22593 follow the specification (7-18) to (7-21), and subsampling definitions
22595 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22596 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22598 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22600 * gst/vaapi/gstvaapisink.c:
22601 * gst/vaapi/gstvaapisink.h:
22602 vaapisink: set csc render flags from sinkpad caps.
22603 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22604 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22606 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22607 [factored out code, added SMPTE240M, handle per-buffer flags]
22608 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22610 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22612 * gst-libs/gst/vaapi/gstvaapisurface.h:
22613 * gst-libs/gst/vaapi/gstvaapiutils.c:
22614 * gst/vaapi/gstvaapipostproc.c:
22615 surface: rework render flags.
22616 Pack render flags per category and provide more flags into the color
22617 standard category. In particular, cover for SMPTE-240M.
22619 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22621 * gst-libs/gst/vaapi/gstvaapifilter.c:
22622 * gst/vaapi/gstvaapipostproc.c:
22623 * gst/vaapi/gstvaapipostproc.h:
22624 vaapipostproc: add support for colorbalance filters.
22625 Add support for hue, saturation, brightness and constrat adjustments.
22626 Also fix cap info local copy to match the really expected cap subtype
22628 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22629 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22631 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22633 * gst/vaapi/gstvaapipostproc.c:
22634 vaapipostproc: fix support for "sharpen" filter.
22635 Fix copy/paste error when submitting the "sharpen" value to the
22636 GstVaapiFilter instance.
22637 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22638 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22640 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22643 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22644 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22645 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22646 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22647 * pkgconfig/gstreamer-vaapi.pc.in:
22648 pkgconfig: plugin dir should use PKG version not API version.
22649 Fix the pluginsdir and includedir variables in the generated pkgconfig
22650 (.pc) files. The location needs to be built with the PKG version in
22651 mind instead of the API version.
22652 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22653 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22654 [additional fixes for includedir and pkg requirements]
22655 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22657 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22659 * gst/vaapi/gstvaapisink.c:
22660 vaapisink: fix display initialization in GstVideoOverlay implementation.
22661 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22662 before the pipeline has been set to PLAYING, the display has not yet
22663 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22664 up-to-date. For this reason the foreign XID is not attached.
22665 Now _ensure_display() is called earlier.
22666 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22667 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22669 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22671 * gst/vaapi/gstvaapisink.c:
22672 vaapisink: expose the raw video formats in static caps template.
22673 Expose all raw video formats in the static caps template since the
22674 vaapisink is supporting raw data. We will get the exact set of formats
22675 supported by the driver dynamically through the _get_caps() routine.
22676 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22677 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22678 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22680 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22682 * gst/vaapi/gstvaapidecode.c:
22683 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22684 Fix vaapidecode to correctly report caps features downstream, when
22685 a custom pipeline is built manually.
22686 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22687 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22689 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22691 * gst/vaapi/gstvaapidecode.c:
22692 vaapidecode: add system memory caps to template caps.
22693 Since vaapidecode provides buffer that can be mapped as regular memory,
22694 those caps should be added to the template caps. That only applies to
22696 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22697 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22699 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22701 * gst/vaapi/gstvaapidecode.c:
22702 vaapidecode: fix hang on SIGINT.
22703 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22704 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22705 locked. This fixes a deadlock on state change from PAUSED to READY.
22706 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22707 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22709 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
22711 * gst/vaapi/gstvaapiencode.c:
22712 vaapiencode: fix possible hang on SIGINT.
22713 vaapiencode might hang when the pipeline is stopped without any EOS,
22714 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22715 running and locked. This fixes a possible deadlock on state change
22716 from PAUSED to READY.
22717 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22718 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22720 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22722 * gst/vaapi/gstvaapiencode.c:
22723 vaapiencode: fix typo in error message.
22724 Fix incomplete error message in gst_vaapiencode_push_frame().
22726 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22728 * gst/vaapi/gstvaapipluginutil.c:
22729 * gst/vaapi/gstvaapipluginutil.h:
22730 plugins: add helpers to create video caps with features.
22731 Add gst_vaapi_video_format_new_template_caps_with_features() helper
22732 function to add the supplied caps feature string on GStreamer >= 1.2.
22733 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22734 the "best" caps feature to use for the supplied pad. In practice, we
22735 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22736 and finally the system memory caps.
22737 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22739 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22741 * gst/vaapi/gstvaapivideometa_texture.c:
22742 plugins: don't apply overlay composition in GLTextureUpload function.
22743 The GLTextureUpload function is not in charge of doing the overlay
22744 composition if any.
22745 https://bugzilla.gnome.org/show_bug.cgi?id=721859
22746 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22748 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22750 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22751 encoder: re-order submission of VA objects.
22752 Change the submission order of VA objects so that to make that process
22753 more logical. i.e. submit sequence parameter first, if any; next the
22754 packed headers associated to sequece, picture or slices; and finally
22755 the actual picture and associated slices.
22757 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22759 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22760 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22761 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22762 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22763 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22764 encoder: clean-up objects.
22765 Various clean-ups to improve consistency and readability: rename some
22766 variables, drop unused macro definitions, drop initialization of vars
22767 that are zero-initialized from the base class, drop un-necessary casts,
22768 allocate GPtrArrays with a destroy function.
22770 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22772 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22773 encoder: h264: fix frame cropping rectangle calculation.
22774 Fix frame cropping rectangle calculation to handle horizontal resolutions
22775 that don't match a multiple of 16 pixels, but also the vertical resolution
22776 that was incorrectly computed for progressive sequences too.
22777 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22779 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22781 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22782 encoder: h264: improve automatic bitrate calculation.
22783 For non "Constant-QP" modes, we could provide more reasonable heuristics
22784 for the target bitrate. In general, 48 bits per macroblock with all the
22785 useful coding tools enable looks safe enough. Then, this rate is raised
22786 by +10% to +15% for each coding tool that is disabled.
22787 https://bugzilla.gnome.org/show_bug.cgi?id=719699
22789 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22791 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22792 encoder: h264: support "high-compression" tuning option.
22793 Add support for "high-compression" tuning option. First, determine the
22794 largest supported profile by the hardware. Next, check any target limit
22795 set by the user. Then, enable each individual coding tool based on the
22796 resulting profile_idc value to use.
22797 https://bugzilla.gnome.org/show_bug.cgi?id=719696
22799 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22801 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22802 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22803 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22804 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22805 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22806 * gst/vaapi/gstvaapiencode_h264.c:
22807 encoder: h264: allow target decoder constraints.
22808 Allow user to precise the largest profile to use for encoding due
22809 to target decoder constraints. For instance, if CABAC entropy coding
22810 mode is requested by "constrained-baseline" profile only is desired,
22811 then an error is returned during codec configuration.
22812 Also make sure that the suitable profile we derived actually matches
22813 what the HW can cope with.
22814 https://bugzilla.gnome.org/show_bug.cgi?id=719694
22816 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22818 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22819 encoder: h264: refine size of coded buffer.
22820 Refine the heuristic to determine the maximum size of a coded buffer
22821 to account for the exact number of slices. set_context_info() is the
22822 last step during codec reconfiguration, no additional change is done
22823 afterwards, so re-using the num_slices field here is fine.
22824 https://bugzilla.gnome.org/show_bug.cgi?id=719953
22826 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
22828 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22829 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22830 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22831 encoder: h264: expose more coding tools.
22832 Add new H.264 coding tools to improve compression:
22833 - "cabac": enable CABAC entropy coding (default: FALSE);
22834 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22835 https://bugzilla.gnome.org/show_bug.cgi?id=719693
22836 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22838 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22840 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22841 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22842 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22843 encoder: h264: derive profile and level from active coding tools.
22844 Automatically derive the minimum profile and level to be used for
22845 encoding, based on the activated coding tools. The encoder will
22846 be trying to generate a bitstream that has the best chances to be
22847 decoded on most platforms by default.
22848 Also change the default profile to "constrained-baseline" so that
22849 to ensure maximum compatibility when the stream is decoded.
22850 https://bugzilla.gnome.org/show_bug.cgi?id=719691
22852 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22854 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22855 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22856 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22857 encoder: h264: fix hardware profile lookup.
22858 Fix lookup for a suitable HW profile, as to be used by the underlying
22859 hardware, based on heuristics that lead to characterize the SW profile,
22860 i.e. the one used by the SW level encoding logic.
22861 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22862 as they should respectively match the baseline and main profile.
22863 https://bugzilla.gnome.org/show_bug.cgi?id=719827
22865 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22867 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22868 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22869 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22870 encoder: h264: support only the byte-stream format.
22871 The libgstvaapi core encoders are meant to support raw bitstreams only.
22872 Henceforth, we are always producing a stream in "byte-stream" format.
22873 However, the "codec-data" buffer which holds SPS and PPS headers is
22874 always available. The "lengthSizeMinusOne" field is always set to 3
22875 so that in-place "byte-stream" format to "avc" format conversion could
22878 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22880 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22881 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22882 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22883 * gst/vaapi/gstvaapiencode_h264.c:
22884 encoder: h264: clean-ups.
22885 Various clean-ups to improve consistency and readability: rename some
22886 variables, drop unused macro definitions, drop initialization of vars
22887 that are zero-initialized from the base class, drop un-necessary casts.
22889 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22891 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22892 encoder: mpeg2: fix hardware profile lookup.
22893 Fix lookup for a suitable HW profile, as to be used by the underlying
22894 hardware, based on heuristics that lead to characterize the SW profile,
22895 i.e. the one used by the SW level encoding logic.
22897 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22899 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22900 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22901 encoder: mpeg2: derive profile and level from active coding tools.
22902 Automatically derive the minimum profile and level to be used for
22903 encoding, based on the activated coding tools. Improve lookup for
22904 the best suitable level with the new MPEG-2 helper functions.
22905 Also change the default profile to "simple" so that to ensure maximum
22906 compatibility when the stream is decoded.
22907 https://bugzilla.gnome.org/show_bug.cgi?id=719703
22909 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22911 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22912 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22913 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22914 encoder: mpeg2: clean-ups.
22915 Various clean-ups to improve consistency and readability: drop unused
22916 macro definitions, drop initialization of vars that are zero-initialized
22917 from the base class, drop un-necessary casts.
22919 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22921 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22922 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22923 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22924 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22925 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22926 encoder: add tuning options API.
22927 Add encoder "tune" option to override the default behaviour that is to
22928 favor maximum decoder compatibility at the expense of lower compression
22930 Expected tuning options to be developed are:
22931 - "high-compression": improve compression, target best-in-class decoders;
22932 - "low-latency": tune for low-latency decoding;
22933 - "low-power": tune for encoding in low power / resources conditions.
22935 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22937 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22938 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22939 encoder: fix bitrate units to match kbps.
22940 Bitrate is expressed in kilobits per second (kbps). So, this exactly
22941 means in multiple of 1000 bits, not 1024 bits.
22942 https://bugzilla.gnome.org/show_bug.cgi?id=722086
22944 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22946 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22947 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22948 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22949 encoder: clean-ups.
22950 Drop obsolete and unused macros. Add a few doc comments. Slightly
22951 improve indentation of a few leftovers.
22953 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22955 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22956 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22957 * gst-libs/gst/vaapi/gstvaapivalue.c:
22958 * gst-libs/gst/vaapi/gstvaapivalue.h:
22959 encoder: filter out the supported set of rate-control properties.
22960 Only expose the exact static set of supported rate-control properties
22961 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22962 only support CQP rate control, then only add it the the exposed enum
22964 Add helper macros and functions to build a GType for an enum subset.
22966 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22968 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22969 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22970 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22971 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22972 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22973 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22974 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22975 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22976 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22977 encoder: add keyframe period API.
22978 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22979 user control the maximum distance between two keyframes. This new
22980 property can only be set prior to gst_vaapi_encoder_set_codec_state().
22981 A value of zero for "keyframe-period" gets it re-evaluated to the
22982 actual framerate during encoder reconfiguration.
22984 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22986 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22987 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22988 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22989 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22990 encoder: improve codec reconfiguration.
22991 Improve codec reconfiguration to be performed only through a single
22992 function. That is, remove the _set_context_info() hook as subclass
22993 should not alter the parent GstVaapiContextInfo itself. Besides, the
22994 VA context is constructed only at the final stages of reconfigure().
22996 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22998 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22999 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
23000 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23001 encoder: fix possible memory leak of coded buffer pools.
23002 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
23003 buffer pool only if the coded buffer size actually changed.
23005 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23007 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23008 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23009 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23010 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23011 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23012 * gst/vaapi/gstvaapiencode.c:
23013 * gst/vaapi/gstvaapiencode.h:
23014 encoder: add video codec-state API.
23015 Add interface to communicate the encoder resolution and related info
23016 like framerate, interlaced vs. progressive, etc. This new interface
23017 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
23018 but rather use GstVideoCodecState.
23019 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
23020 point for codec config. This means that the encoder is reconfigured
23021 there to match the latest properties.
23023 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23025 * gst/vaapi/gstvaapiencode.c:
23026 vaapiencode: don't crash on NULL encoder on _finish().
23027 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
23028 if it was not created in the first place. Return "not-negotiated" error
23029 since this means we did not even reach GstVideoEncoder::set_format(),
23030 where the encoder could have been created.
23031 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
23032 and that we failed to negotiate either pad.
23033 https://bugzilla.gnome.org/show_bug.cgi?id=719704
23035 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23037 * gst/vaapi/gstvaapiencode.c:
23038 * gst/vaapi/gstvaapiencode.h:
23039 * gst/vaapi/gstvaapiencode_h264.c:
23040 vaapiencode: use more GstVaapiPluginBase facilities.
23041 Avoid duplication of pad references or query functions since they are
23042 provided through the GstVaapiPluginBase object.
23044 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23046 * gst/vaapi/gstvaapiencode.c:
23047 * gst/vaapi/gstvaapiencode.h:
23048 * gst/vaapi/gstvaapiencode_h264.c:
23049 * gst/vaapi/gstvaapiencode_h264.h:
23050 * gst/vaapi/gstvaapiencode_mpeg2.c:
23051 vaapiencode: fix negotiation process of output caps.
23052 The specified caps in gst_video_encoder_set_output_state() function
23053 arguments should not contain any resolution, pixel-aspect-ratio,
23054 framerate, codec-data et al. Those rather should be set through the
23055 returned GstVideoCodecState. This means that output caps creation
23056 could be delayed until before gst_video_encoder_finish_frame() is
23058 This greatly simplifies the GstVideoEncoder::set_format() callback
23061 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23063 * gst/vaapi/gstvaapiencode.c:
23064 vaapiencode: make GstVaapiEncode an abstract type.
23065 Make base GstVaapiEncode class an abstract type so that we cannot
23066 create an instance from it without going through any of the codec
23067 specific derived class.
23069 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23071 * gst/vaapi/gstvaapiencode.c:
23072 * gst/vaapi/gstvaapiencode.h:
23073 * gst/vaapi/gstvaapiencode_h264.c:
23074 * gst/vaapi/gstvaapiencode_mpeg2.c:
23075 vaapiencode: rename a few member functions.
23076 Rename a few member functions to make them more consistent:
23077 - alloc_encoder(): now reduced to allocate the encoder object only;
23078 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
23080 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23082 * gst/vaapi/gstvaapiencode.c:
23083 * gst/vaapi/gstvaapiencode.h:
23084 * gst/vaapi/gstvaapiencode_h264.c:
23085 * gst/vaapi/gstvaapiencode_h264.h:
23086 * gst/vaapi/gstvaapiencode_mpeg2.c:
23087 vaapiencode: update for new properties API.
23088 Update MPEG-2 and H.264 encode elements to cope with the new core
23089 libgstvaapi properties API. i.e. all configurable properties are now
23090 directly handled at the GstVaapiEncoder level.
23091 Besides, this also makes sure to not use or modify the GstVaapiEncoder
23092 private definitions directly. Private data need to remain private.
23093 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23095 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23097 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23098 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23099 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23100 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23101 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23102 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23103 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23104 encoder: add properties API.
23105 Add interface to communicate configurable properties to the encoder.
23106 This covers both the common ones (rate-control, bitrate), and the
23107 codec specific properties.
23108 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23110 2014-01-06 18:01:33 +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_priv.h:
23116 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23117 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23118 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23119 * gst/vaapi/gstvaapiencode.c:
23120 * gst/vaapi/gstvaapiencode_h264.c:
23121 * gst/vaapi/gstvaapiencode_mpeg2.c:
23122 encoder: add bitrate API.
23123 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23124 the bitrate for encoding. Currently, changing this parameter is only
23125 valid before the first frame is encoded. Should the value be modified
23126 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23128 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23130 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23132 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23133 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23134 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23135 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23136 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23137 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23138 * gst-libs/gst/vaapi/gstvaapitypes.h:
23139 * gst/vaapi/gstvaapiencode.c:
23140 * gst/vaapi/gstvaapiencode.h:
23141 * gst/vaapi/gstvaapiencode_h264.c:
23142 * gst/vaapi/gstvaapiencode_mpeg2.c:
23143 encoder: add rate control API.
23144 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23145 rate control mode for encoding. Changing the rate control mode is
23146 only valid prior to encoding the very first frame. Afterwards, an
23147 error ("operation-failed") is issued.
23148 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23150 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23152 * gst/vaapi/gstvaapiencode.c:
23153 * gst/vaapi/gstvaapiencode_h264.c:
23154 * gst/vaapi/gstvaapiencode_mpeg2.c:
23155 vaapiencode: fix indentation.
23157 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23159 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23160 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23161 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23162 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23163 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23164 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23165 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23166 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23167 * gst/vaapi/gstvaapiencode.h:
23168 encoder: fix indentation.
23170 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23172 * gst-libs/gst/vaapi/Makefile.am:
23173 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23174 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23175 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23176 utils: add new MPEG-2 helper functions.
23177 Add various helper functions to convert profile, level, chroma formats
23178 from gstreamer-vaapi world and the MPEG-2 specification world.
23180 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23182 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23183 utils: h264: don't use fatal asserts.
23184 Replace g_assert() with a g_debug() so that to not make the program
23185 abort when an unsupported value is supplied.
23187 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23189 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23190 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23191 utils: h264: add helpers for profile and level string mappings.
23192 Add profile and level helper functions to convert to/from strings.
23194 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23196 * gst-libs/gst/vaapi/Makefile.am:
23197 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23198 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23199 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23200 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23201 utils: h264: expose levels in public header.
23202 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23203 H.264 levels in there. The additional helper functions are meant
23204 to be private for now.
23206 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23208 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23209 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23210 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23211 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23212 codec: add helper macros to maintain object refcount.
23213 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23214 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23216 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23218 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23219 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23220 codec: re-indent decoder objects.
23222 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23224 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23225 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23226 codec: re-indent base codec objects.
23228 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23230 * gst/vaapi/gstvaapipluginbase.c:
23231 plugins: do not free debug category in finalize method.
23232 Fixes a crash when multiple vaapidecode elements are finalized since
23233 the debug category is created once in the class init method.
23234 This is a regression from git commit 7e58d60.
23235 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23236 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23238 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23240 * gst-libs/gst/vaapi/glibcompat.h:
23241 * tests/simple-decoder.c:
23242 tests: simple-decoder: don't use deprecated g_thread_create().
23243 Use g_thread_try_new() instead of the deprecated g_thread_create()
23244 function. Provide compatibility glue for any GLib version < 2.31.2.
23246 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23248 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23249 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23250 * gst-libs/gst/vaapi/gstvaapisurface.c:
23251 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23252 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23253 * gst/vaapi/gstvaapiencode.c:
23254 Fix printf()-like formats.
23255 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23256 make size_t arguments use the %zu format specifier accordingly; force
23257 XID formats to be a 32-bit unsigned integer; and fix the format used
23258 for gst_vaapi_create_surface_with_format() error cases since we have
23259 been using strings nowadays.
23261 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23263 * gst-libs/gst/vaapi/video-format.c:
23264 * gst-libs/gst/vaapi/video-format.h:
23265 utils: format: drop unused helper functions.
23266 The following helper functions are no longer used, thus are removed:
23267 - gst_vaapi_video_format_from_structure()
23268 - gst_vaapi_video_format_from_caps()
23269 - gst_vaapi_video_format_to_caps()
23271 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23273 * gst-libs/gst/vaapi/video-format.c:
23274 * gst-libs/gst/vaapi/video-format.h:
23275 utils: re-indent GstVideoFormat related helpers.
23277 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23279 * gst/vaapi/gstvaapidownload.c:
23280 download: use GstVideoInfo facilities to build output caps.
23281 Use standard GstVideoInfo related functions to build the output caps,
23282 thus directly preserving additional fields as needed, instead of
23283 manually copying them over through gst_vaapi_append_surface_caps().
23284 Also ensure that the input caps are fixated first.
23286 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23288 * gst/vaapi/gstvaapidownload.c:
23289 * gst/vaapi/gstvaapipluginutil.c:
23290 * gst/vaapi/gstvaapipluginutil.h:
23291 * gst/vaapi/gstvaapiuploader.c:
23292 plugins: factor out construction of template caps.
23293 Add new helper functions to build video template caps.
23294 - gst_vaapi_video_format_new_template_caps():
23295 create GstCaps with size, frame rate and PAR to full range
23296 - gst_vaapi_video_format_new_template_caps_from_list():
23297 try to create a "simplified" list from the supplied formats
23299 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23301 * gst/vaapi/gstvaapipluginutil.c:
23302 * gst/vaapi/gstvaapipluginutil.h:
23303 * gst/vaapi/gstvaapipostproc.c:
23304 plugins: factor out construction of GValue from GstVideoFormat.
23305 Add new helper functions to build GValues from GstVideoFormat:
23306 - gst_vaapi_value_set_format():
23307 build a GValue from the supplied video format
23308 - gst_vaapi_value_set_format_list():
23309 build a GValue list from the supplied array of video formats
23311 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23313 * gst/vaapi/gstvaapipluginutil.c:
23314 * gst/vaapi/gstvaapipluginutil.h:
23315 * gst/vaapi/gstvaapivideocontext.c:
23316 * gst/vaapi/gstvaapivideocontext.h:
23317 plugins: re-indent common and video context creation utils.
23319 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23321 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23322 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23323 * gst/vaapi/gstvaapidecode.c:
23324 * tests/test-display.c:
23325 display: don't use GstCaps for decode or encode profiles list.
23326 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23327 more convenient APIs that return an array of GstVaapiProfile instead
23328 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23330 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23332 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23333 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23334 * gst/vaapi/gstvaapidownload.c:
23335 * gst/vaapi/gstvaapiuploader.c:
23336 * tests/test-display.c:
23337 display: don't use GstCaps for image or subpicture formats list.
23338 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23339 returned GstCaps, with more convenient APIs that return an array of
23340 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23342 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23344 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23345 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23346 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23347 display: allocate queried resources on-demand.
23348 Allocate the set of decoders or encoders on-demand, when they are
23349 queried. Likewise for VA display attributes, image and subpicture
23352 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23354 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23355 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23356 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23357 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23358 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23359 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23360 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23361 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23362 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23363 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23364 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23365 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23366 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23367 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23368 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23369 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23370 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23371 display: re-indent all GstVaapiDisplay related source code.
23373 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23375 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23376 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23377 utils: add helper functions to get codec or profile name.
23379 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23381 * gst/vaapi/gstvaapipostproc.c:
23382 * gst/vaapi/gstvaapipostproc.h:
23383 * gst/vaapi/gstvaapiuploader.c:
23384 plugins: fix permissions for certain files.
23385 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23388 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23390 * gst/vaapi/gstvaapivideometa_texture.c:
23391 plugins: implement GLTextureUploadMeta user data copy.
23392 Makes the copies of a buffer reference their own GLTextureUploadMeta
23393 user data and prevent the original buffer accessing already freed
23394 memory if its copies has been released and freed.
23395 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23396 [Propagate the original meta texture to the copy too]
23397 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23399 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23401 * gst/vaapi/gstvaapiencode.c:
23402 * gst/vaapi/gstvaapiencode.h:
23403 * gst/vaapi/gstvaapipluginbase.c:
23404 * gst/vaapi/gstvaapipluginbase.h:
23405 * gst/vaapi/gstvaapipostproc.c:
23406 * gst/vaapi/gstvaapipostproc.h:
23407 * gst/vaapi/gstvaapisink.c:
23408 * gst/vaapi/gstvaapisink.h:
23409 plugins: factor out support for raw YUV buffers on sink pads.
23410 Factor out propose_allocation() hooks, creation of video buffer pool
23411 for the sink pad, conversion from raw YUV buffers to VA surface backed
23412 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23413 with the new GstVaapiPluginBase abilities.
23415 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23417 * gst-libs/gst/vaapi/gstcompat.h:
23418 * gst/vaapi/gstvaapidecode.c:
23419 * gst/vaapi/gstvaapidecode.h:
23420 * gst/vaapi/gstvaapidownload.c:
23421 * gst/vaapi/gstvaapipluginbase.c:
23422 * gst/vaapi/gstvaapipluginbase.h:
23423 * gst/vaapi/gstvaapipostproc.c:
23424 * gst/vaapi/gstvaapipostproc.h:
23425 * gst/vaapi/gstvaapisink.c:
23426 * gst/vaapi/gstvaapiupload.c:
23427 plugins: factor out pad caps.
23429 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23431 * gst/vaapi/gstvaapidecode.c:
23432 * gst/vaapi/gstvaapidownload.c:
23433 * gst/vaapi/gstvaapiencode.c:
23434 * gst/vaapi/gstvaapipluginbase.c:
23435 * gst/vaapi/gstvaapipostproc.c:
23436 * gst/vaapi/gstvaapisink.c:
23437 * gst/vaapi/gstvaapiupload.c:
23438 plugins: factor out video context sharing code.
23440 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23442 * gst/vaapi/gstvaapidecode.c:
23443 * gst/vaapi/gstvaapidownload.c:
23444 * gst/vaapi/gstvaapiencode.c:
23445 * gst/vaapi/gstvaapipluginbase.c:
23446 * gst/vaapi/gstvaapipluginbase.h:
23447 * gst/vaapi/gstvaapipostproc.c:
23448 * gst/vaapi/gstvaapisink.c:
23449 * gst/vaapi/gstvaapiupload.c:
23450 plugins: factor out GstImplementsInterface.
23452 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23454 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23455 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23456 * gst/vaapi/gstvaapipluginbase.c:
23457 * gst/vaapi/gstvaapipluginutil.c:
23458 plugins: check type of display obtained from neighbours.
23459 Fix display creation code to check that any display obtained from a
23460 neighbour actually has the type we expect. Note: if display type is
23461 set to "any", we can then accept any VA display type.
23463 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23465 * gst/vaapi/gstvaapidecode.c:
23466 * gst/vaapi/gstvaapidownload.c:
23467 * gst/vaapi/gstvaapiencode.c:
23468 * gst/vaapi/gstvaapipluginbase.c:
23469 * gst/vaapi/gstvaapipluginbase.h:
23470 * gst/vaapi/gstvaapipluginutil.c:
23471 * gst/vaapi/gstvaapipluginutil.h:
23472 * gst/vaapi/gstvaapipostproc.c:
23473 * gst/vaapi/gstvaapisink.c:
23474 * gst/vaapi/gstvaapisink.h:
23475 * gst/vaapi/gstvaapiupload.c:
23476 plugins: factor out display creation process.
23477 Move common VA display creation code to GstVaapiPluginBase, with the
23478 default display type remaining "any". Also add a "display-changed"
23479 hook so that subclasses could perform additional tasks when/if the
23480 VA display changed, due to a new display type request for instance.
23481 All plug-ins are updated to cope with the new internal APIs.
23483 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23485 * gst/vaapi/Makefile.am:
23486 * gst/vaapi/gstvaapidecode.c:
23487 * gst/vaapi/gstvaapidecode.h:
23488 * gst/vaapi/gstvaapidownload.c:
23489 * gst/vaapi/gstvaapidownload.h:
23490 * gst/vaapi/gstvaapiencode.c:
23491 * gst/vaapi/gstvaapiencode.h:
23492 * gst/vaapi/gstvaapipluginbase.c:
23493 * gst/vaapi/gstvaapipluginbase.h:
23494 * gst/vaapi/gstvaapipostproc.c:
23495 * gst/vaapi/gstvaapipostproc.h:
23496 * gst/vaapi/gstvaapisink.c:
23497 * gst/vaapi/gstvaapisink.h:
23498 * gst/vaapi/gstvaapiupload.c:
23499 * gst/vaapi/gstvaapiupload.h:
23500 plugins: add new base object, store display in there.
23501 Introduce a new GstVaapiPluginBase object that will contain all common
23502 data structures and perform all common tasks. First step is to have a
23503 single place to hold VA displays.
23504 While we are at it, also make sure to store and subsequently release
23505 the appropriate debug category for the subclasses.
23507 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23509 * gst-libs/gst/vaapi/gstvaapiobject.h:
23510 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23511 * gst/vaapi/gstvaapivideometa_texture.c:
23512 * gst/vaapi/gstvaapivideometa_texture.h:
23513 plugins: fix GLTextureUploadMeta to work with different texture ids.
23514 The GLTextureUploadMeta implementation assumed that for each upload()
23515 sequence, the supplied texture id is always the same as the one that
23516 was previously cached into the underlying GstVaapiTexture. Cope with
23517 any texture id change the expense to recreate the underlying VA/GLX
23519 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23521 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23523 * gst/vaapi/gstvaapidecode.c:
23524 * gst/vaapi/gstvaapivideobufferpool.c:
23525 * gst/vaapi/gstvaapivideometa_texture.c:
23526 plugins: allow builds without GLX enabled for GStreamer 1.2.
23527 Don't try to build GLTextureUploadMeta related code if GLX is not
23528 enabled during GStreamer >= 1.2 builds.
23530 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23532 * gst/vaapi/gstvaapidecode.c:
23533 * gst/vaapi/gstvaapivideobufferpool.c:
23534 * gst/vaapi/gstvaapivideobufferpool.h:
23535 * gst/vaapi/gstvaapivideometa_texture.c:
23536 * gst/vaapi/gstvaapivideometa_texture.h:
23537 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23538 Requesting the GLTextureUpload meta on buffers in the bufferpool
23539 prevents such metas from being de-allocated when buffers are released
23541 This is particulary useful in terms of performance when using the
23542 GLTextureUploadMeta API since the GstVaapiTexture associated with
23543 the target texture is stored in the meta.
23544 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23545 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23547 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23549 * gst/vaapi/gstvaapivideometa_texture.c:
23550 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23551 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23552 when the GstVaapiTexture associated with the supplied texture id could
23555 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23557 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23558 h264: improve robustness when packets are missing.
23559 Improve robustness when some expected packets where not received yet
23560 or that were not correctly decoded. For example, don't try to decode
23561 a picture if there was no valid frame headers parsed so far.
23562 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23564 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23566 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23567 decoder: h264: fix decoding of BA3_SVA_C.264.
23568 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23569 extended profile specifications. However, the SPS header has the
23570 constraint_set1_flag syntax element set to 1. This means that, if
23571 a Main profile compliant decoder is available, then it should be
23572 able to decode this stream.
23573 This changes makes it possible to fall-back from Extended profile
23574 to Main profile if constraint_set1_flag is set to 1.
23575 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23577 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23579 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23580 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23581 utils: h264: add more profiles.
23582 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23583 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23584 multiview profiles (H.10.1.1, H.10.1.2).
23585 Document "Constrained Baseline" and "High 10" profiles.
23587 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23589 * ext/codecparsers:
23590 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23591 e7d0e18 h264: complete set of NAL unit types
23593 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23595 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23596 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23597 decoder: h264: add support for constrained baseline profile.
23598 Recognize streams marked as conforming to the "Constrained Baseline
23599 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23600 to baseline, main or high profile.
23601 Constrained Baseline Profile conveys coding tools that are common
23602 to baseline profile and main profile.
23603 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23604 [Added fallbacks to main and high profiles]
23605 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23607 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23609 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23610 decoder: h264: fix decoding of scaling lists.
23611 The GStreamer codecparser layer now parses the scaling lists in zigzag
23612 scan order, as expected, so that to match the original bitstream layout
23613 and specification. However, further convert the scaling lists into
23614 raster scan order to fit the existing practice in most VA drivers.
23615 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23617 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23619 * ext/codecparsers:
23620 codecparsers: update to gst-vaapi-branch commit 177c73b.
23621 a7e3255 add H.265 (HEVC) bitstream parser
23622 177c73b h264: fix picture level scaling lists derivation (rule B)
23623 14733f1 h264: fix parsing of VCL HRD parameters
23624 59a0b47 h264: store quantization matrices in zig-zag order
23625 ffb6e26 h264: add helpers to convert quantization matrices
23626 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23627 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23628 5241d8e all: remove some unused functions
23629 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23630 963c04a all: make warnings more meaningful
23632 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23634 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23635 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23636 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23637 utils: add helpers for H.264 levels.
23638 - gst_vaapi_utils_h264_get_level():
23639 Returns GstVaapiLevelH264 from H.264 level_idc value
23640 - gst_vaapi_utils_h264_get_level_idc():
23641 Returns H.264 level_idc value from GstVaapiLevelH264
23642 - gst_vaapi_utils_h264_get_level_limits():
23643 Returns level limits as specified in Table A-1 of the H.264 standard
23644 - gst_vaapi_utils_h264_get_level_limits_table():
23645 Returns the Table A-1 specification
23647 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23649 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23650 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23651 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23652 utils: add new H.264 profiles.
23653 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23654 and helper functiions.
23656 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23658 utils: add new H.264 helper functions.
23660 - gst_vaapi_utils_h264_get_profile():
23661 Returns GstVaapiProfile from H.264 profile_idc value
23662 - gst_vaapi_utils_h264_get_profile_idc():
23663 Returns H.264 profile_idc value from GstVaapiProfile
23665 - gst_vaapi_utils_h264_get_chroma_type():
23666 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23667 - gst_vaapi_utils_h264_get_chroma_format_idc():
23668 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23670 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23672 * gst-libs/gst/base/Makefile.am:
23673 * gst-libs/gst/vaapi/Makefile.am:
23674 Fix missing files in distribution tarball.
23675 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23676 [Additional fixes and clean-ups]
23677 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23679 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23681 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23682 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23683 encoder: fix computation of max coded buffer size (again).
23684 The previous fix was only valid to express the maximum size of the
23685 macroblock layer, i.e. without any headers. Now, also account for
23686 the slice headers and top picture header, but also any other header
23687 we might stuff into the VA coded buffer, e.g. sequence headers.
23689 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23691 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23692 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23693 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23694 encoder: fix computation of max coded buffer size.
23695 Fix coded buffer size for each codec. A generic issue was that the
23696 number of macroblocks was incorrectly computed. The second issue was
23697 specific to MPEG-2 were the max number of bits per macroblock, and
23698 as defined by the standard, was incorrectly mapped to the (lower)
23699 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23701 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23703 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23704 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23705 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23706 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23707 encoder: simplify VA context initialization process.
23708 Change get_context_info() into a set_context_info() function that
23709 initializes common defaults into the base class, thus allowing the
23710 subclasses to specialize the context info further on.
23711 The set_context_info() hook is also the location where additional
23712 context specific data could be initialized. At this point, we are
23713 guaranteed to have valid video resolution size and framerate. i.e.
23714 gst_vaapi_encoder_set_format() was called beforehand.
23716 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
23718 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23719 encoder: fix mpeg2 compilation error.
23720 https://bugzilla.gnome.org/show_bug.cgi?id=719746
23721 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23723 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23725 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23726 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23727 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23728 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23729 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23730 * gst/vaapi/gstvaapiencode.c:
23731 encoder: clean-ups and document public APIs.
23732 Clean public APIs up so that to better align with the decoder APIs.
23733 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23734 return the VA coded buffer proxy. Also provide useful documentation
23735 for the public APIs.
23737 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23739 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23740 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23741 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23742 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23743 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23744 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23745 through GstVaapiCodedBufferProxy user-data facility.
23746 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23748 Partial fix for the following report:
23749 https://bugzilla.gnome.org/show_bug.cgi?id=719530
23751 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23753 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23754 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23755 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23756 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23757 * gst/vaapi/gstvaapiencode.c:
23758 encoder: refactor status codes.
23759 Drop obsolete or unused status codes. Align some status codes with the
23760 decoder counterparts.
23762 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23764 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23765 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23766 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23767 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23768 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23769 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23770 encoder: fix subclassing process.
23771 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23772 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23773 thus avoiding useless run-time checks. Also simplify the subclass
23774 initialization process to be less error prone.
23776 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23778 encoder: rework GstVaapiCodedBuffer and related proxy.
23779 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23780 public and private interfaces. Besides, the map/unmap APIs should not
23781 be exposed as is but appropriate accessors should be provided instead.
23782 * GstVaapiCodedBuffer: VA coded buffer abstraction
23783 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23784 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23785 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23786 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23787 the specified max size, and bound to the supplied encoder
23788 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23789 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23790 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23791 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23792 Rationale: more optimized transfer functions might be provided in the
23793 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23794 https://bugzilla.gnome.org/show_bug.cgi?id=719775
23796 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23798 * gst/vaapi/gstvaapidecode.c:
23799 * gst/vaapi/gstvaapiencode.c:
23800 * gst/vaapi/gstvaapipostproc.c:
23801 * gst/vaapi/gstvaapisink.c:
23802 plugins: fix reference leaks of VA display objects.
23803 Fix GstElement::set_context() implementation for all plug-in elements
23804 to avoid leaking an extra reference to the VA display, thus preventing
23805 correct cleanup of VA resources in GStreamer 1.2 builds.
23807 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23809 * gst/vaapi/gstvaapipluginutil.c:
23810 * gst/vaapi/gstvaapivideocontext.c:
23811 plugins: simplify gst_vaapi_ensure_display().
23812 Return earlier if the creation of a VA display failed. Likewise, simplify
23813 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23816 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23818 * gst/vaapi/gstvaapivideomemory.c:
23819 plugins: fix memory leaks through GstVideoMeta maps.
23820 When GstVideoMeta maps were used, the supporting functions incorrectly
23821 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23822 always increasing the associated GstMemory reference count and giving
23823 zero chance to actually release that, and subsequently the VA display.
23825 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23827 * gst-libs/gst/vaapi/gstvaapifilter.c:
23828 * gst/vaapi/gstvaapiencode_h264.c:
23829 * gst/vaapi/gstvaapiencode_mpeg2.c:
23830 * gst/vaapi/gstvaapipostproc.c:
23831 * gst/vaapi/gstvaapisink.c:
23832 * gst/vaapi/gstvaapiuploader.c:
23833 plugins: use G_PARAM_STATIC_STRINGS.
23834 This avoids a few string copies during initialization.
23836 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23838 * gst/vaapi/gstvaapivideometa.c:
23839 plugins: simplify VA video meta to only reference surface proxies.
23840 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23841 now allocated from a surface pool. This also means that the local
23842 reference to the VA surface is also gone, as it could be extracted
23843 from the associated surface proxy.
23845 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23847 * gst/vaapi/gstvaapivideobuffer.c:
23848 * gst/vaapi/gstvaapivideobuffer.h:
23849 * gst/vaapi/gstvaapivideometa.c:
23850 * gst/vaapi/gstvaapivideometa.h:
23851 plugins: drop obsolete functions.
23852 Drop the following functions that are not longer used:
23853 - gst_vaapi_video_buffer_new_with_surface()
23854 - gst_vaapi_video_meta_new_with_surface()
23855 - gst_vaapi_video_meta_set_surface()
23856 - gst_vaapi_video_meta_set_surface_from_pool()
23858 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23860 * gst/vaapi/gstvaapivideometa.c:
23861 plugins: allow VA video meta to be allocated from surface proxy pools.
23862 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23863 from surface pools instead of plain VA surfaces. This is to simplify
23864 allocations now that surface proxies are created from a surface pool.
23866 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23868 * docs/reference/libs/libs-sections.txt:
23869 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23870 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23871 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23872 surfaceproxy: add copy function.
23873 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23874 proxy with the same information from the parent proxy, except that the
23875 user-defined destroy notify function is not copied over.
23876 The underlying VA surface is pushed back to the video pool only when
23877 the last reference to the parent surface proxy is released.
23879 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23881 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23882 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23883 * gst/vaapi/gstvaapiencode.c:
23884 vaapiencode: optimize _handle_frame() to avoid extra allocation.
23885 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23886 and in particular the GstVaapiEncObjUserData object. i.e. directly use
23887 the VA surface proxy from the source buffer. This also makes the user
23888 data attached to the GstVideoCodecFrame more consistent between both
23889 the decoder and encoder plug-in elements.
23891 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23893 * gst/vaapi/gstvaapiencode.c:
23894 vaapiencode: fix memory leaks in _push_frame() on error.
23895 Simplify gst_vaapiencode_push_frame(), while also removing the call
23896 to gst_video_encoder_negotiate() since this is implicit in _finish()
23897 if caps changed. Also fixed memory leaks that occured on error.
23899 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23901 * gst/vaapi/gstvaapiencode.c:
23902 * gst/vaapi/gstvaapiencode.h:
23903 * gst/vaapi/gstvaapiencode_h264.c:
23904 * gst/vaapi/gstvaapiencode_h264.h:
23905 * gst/vaapi/gstvaapiencode_mpeg2.c:
23906 vaapiencode: additional clean-ups.
23907 Constify pointers wherever possible. Drop unused variables, and use
23908 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23909 to correctly report errors, especially when in-place conversion from
23910 bytestream to avcC format failed.
23912 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23914 * gst/vaapi/gstvaapiencode.c:
23915 * gst/vaapi/gstvaapiencode.h:
23916 * gst/vaapi/gstvaapiencode_h264.c:
23917 * gst/vaapi/gstvaapiencode_h264.h:
23918 * gst/vaapi/gstvaapiencode_mpeg2.c:
23919 * gst/vaapi/gstvaapiencode_mpeg2.h:
23920 vaapiencode: move common properties to base class.
23921 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23922 base class. The actual range of supported rate control modes is currently
23923 implemented as a plug-in element hook. This ought to be determined from
23924 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23926 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23928 * gst/vaapi/gstvaapiencode_h264.c:
23929 * gst/vaapi/gstvaapiencode_mpeg2.c:
23930 vaapiencode: fix plugin description and debug name.
23931 Align the plug-in debug category to its actual name. i.e. enable debug
23932 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23933 the plug-in element description to make it more consistent with other
23936 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23939 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23940 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23941 * gst-libs/gst/video/Makefile.am:
23942 * gst/vaapi/gstvaapiencode.c:
23943 * gst/vaapi/gstvaapiencode.h:
23944 * gst/vaapi/gstvaapiencode_h264.c:
23945 * gst/vaapi/gstvaapiencode_mpeg2.c:
23946 vaapiencode: add initial support for GStreamer 0.10.
23948 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23950 * gst-libs/gst/vaapi/gstcompat.h:
23951 libs: add more GstBuffer compat glue for GStreamer 0.10.
23952 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23953 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23956 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23959 * gst-libs/gst/video/Makefile.am:
23960 libs: always use built-in videoutils for GStreamer 0.10.
23961 GStreamer 0.10.36 is the latest and ultimate version to be released
23962 from the GStreamer 0.10 branch. i.e. no further releases are to be
23963 made. So, we can safely enable the built-in videoutils replacement
23964 now that they are in sync with the 0.10 branch.
23966 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23969 videoutils: update to master commit d4a15a5.
23970 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23971 86096cc videodecoder: minor cosmetic changes to align a bit more with master
23972 b4b8b52 videodecoder: allow parse function to not use all data on adapter
23973 2145495 videodecoder: warn if frame list gets long
23974 36c3753 videodecoder: Also use the object lock to protect the output_state
23975 518c93d videodecoder: fix seeking again
23976 185fb63 video: Correct usage of the base class stream lock
23977 170e944 videodecoder: Expose _negotiate function
23979 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23982 * gst-libs/gst/vaapi/Makefile.am:
23983 * tests/Makefile.am:
23984 Fix build with GStreamer >= 1.3.
23985 http://bugzilla.gnome.org/show_bug.cgi?id=715183
23986 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23988 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23991 configure: disable encoders with GStreamer 0.10.
23992 Don't try to build video encoders for GStreamer 0.10. Support code is
23993 not there yet, and probably will never for such an ancient version.
23995 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23997 * gst/vaapi/gstvaapiencode.c:
23998 vaapiencode: fix error handling while allocating output buffers.
23999 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
24000 unmap the coded buffer prior to returning an error.
24002 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24004 * gst/vaapi/gstvaapiencode.c:
24005 vaapiencode: fix error handling in _finish() hook.
24006 Fix GstVideoEncoder::finish() implementation to really return possible
24007 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
24009 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24011 * gst/vaapi/gstvaapiencode.c:
24012 * gst/vaapi/gstvaapiencode.h:
24013 * gst/vaapi/gstvaapiencode_h264.c:
24014 * gst/vaapi/gstvaapiencode_h264.h:
24015 * gst/vaapi/gstvaapiencode_mpeg2.c:
24016 * gst/vaapi/gstvaapiencode_mpeg2.h:
24017 vaapiencode: minor clean-ups.
24018 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
24019 the GObject type system. We are guaranteed to only deal with the same
24020 plug-in element object.
24022 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24024 * gst/vaapi/gstvaapiencode.c:
24025 * gst/vaapi/gstvaapiencode_h264.c:
24026 * gst/vaapi/gstvaapiencode_mpeg2.c:
24027 vaapiencode: fix support for raw YUV sink buffers.
24028 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
24029 The most efficient way to do so is to let the vaapiencode elements
24030 allocate a buffer pool, and subsequently buffers from it. This means
24031 that upstream elements are expected to honour downstream pools.
24032 If upstream elements insist on providing their own allocated buffers
24033 to the vaapiencode elements, then it possibly would be more efficient
24034 to insert a vaapipostproc element before the vaapiencode element.
24035 This is because vaapipostproc currently has better support than other
24036 elements for "foreign" raw YUV buffers.
24038 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24040 * gst/vaapi/gstvaapiencode.c:
24041 vaapiencode: fix support for GStreamer 1.2.
24043 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
24045 * gst/vaapi/gstvaapiencode.c:
24046 * gst/vaapi/gstvaapiencode_h264.c:
24047 * gst/vaapi/gstvaapiencode_mpeg2.c:
24048 vaapiencode: initial port to GStreamer 1.2.
24049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24051 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
24053 * gst/vaapi/Makefile.am:
24054 * gst/vaapi/gstvaapi.c:
24055 * gst/vaapi/gstvaapiencode_mpeg2.c:
24056 * gst/vaapi/gstvaapiencode_mpeg2.h:
24057 plugins: add mpeg2 encoder element.
24058 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
24059 is called "vaapiencode_mpeg2".
24061 - rate-control: rate control mode (default: cqp - constant QP)
24062 - bitrate: desired bitrate in kbps (default: auto-calculated)
24063 - key-period: maximal distance between two key frames (default: 30)
24064 - max-bframes: number of B-frames between I and P (default: 2)
24065 - quantizer: constant quantizer (default: 8)
24066 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24068 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
24070 * gst/vaapi/Makefile.am:
24071 * gst/vaapi/gstvaapi.c:
24072 * gst/vaapi/gstvaapiencode_h264.c:
24073 * gst/vaapi/gstvaapiencode_h264.h:
24074 plugins: add h264 encoder element.
24075 Add GstVaapiEncodeH264 element object. The actual plug-in element
24076 is called "vaapiencode_h264".
24078 - rate-control: rate control mode (default: none)
24079 - bitrate: desired bitrate in kbps (default: auto-calculated)
24080 - key-period: maximal distance between two key frames (default: 30)
24081 - num-slices: number of slices per frame (default: 1)
24082 - max-bframes: number of B-frames between I and P (default: 0)
24083 - min-qp: minimal quantizer (default: 1)
24084 - init-qp: initial quantizer (default: 26)
24085 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24087 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
24089 * gst/vaapi/Makefile.am:
24090 * gst/vaapi/gstvaapiencode.c:
24091 * gst/vaapi/gstvaapiencode.h:
24092 plugins: add base encoder element.
24093 vaapiencode element is based on GstVideoEncoder APIs.
24094 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24096 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
24098 * gst-libs/gst/vaapi/Makefile.am:
24099 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24100 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
24101 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24102 encoder: add mpeg2 encoder.
24103 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
24104 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24106 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
24108 * gst-libs/gst/vaapi/Makefile.am:
24109 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24110 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
24111 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24112 encoder: add h264 encoder.
24113 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24115 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
24118 * gst-libs/gst/vaapi/Makefile.am:
24119 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24120 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24121 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24122 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24123 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24124 Add initial infrastructure for video encoding.
24125 Add initial API for video encoding: only basic interfaces and small
24126 encoder objects are implemented so far.
24127 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24129 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
24132 * gst-libs/gst/Makefile.am:
24133 * gst-libs/gst/base/Makefile.am:
24134 * gst-libs/gst/base/gstbitwriter.c:
24135 * gst-libs/gst/base/gstbitwriter.h:
24136 * gst-libs/gst/vaapi/Makefile.am:
24137 libs: add generic bitstream writer.
24138 GstBitWriter provides a bit writer that can write any number of bits
24139 to a pre-allocated memory buffer. Helper functions are also provided
24140 to write any number of bits from 8, 16, 32 and 64 bit variables.
24141 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24143 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24145 * gst-libs/gst/vaapi/gstvaapicontext.c:
24146 * gst-libs/gst/vaapi/gstvaapicontext.h:
24147 libs: add support for rate-control to GstVaapiContext.
24148 Extend GstVaapiContextInfo structure to hold the desired rate control
24149 mode for encoding purposes. For decoding purposes, this field is not
24150 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24153 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24155 * gst-libs/gst/vaapi/gstvaapitypes.h:
24156 * gst-libs/gst/vaapi/gstvaapiutils.c:
24157 * gst-libs/gst/vaapi/gstvaapiutils.h:
24158 * gst-libs/gst/vaapi/gstvaapivalue.c:
24159 * gst-libs/gst/vaapi/gstvaapivalue.h:
24160 libs: add rate-control attributes.
24161 Add GstVaapiRateControl types and GType values in view to supporting
24162 rate controls for encoding. This is meant to be used for instance in
24164 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24166 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24169 Bump version for development.
24171 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24173 * gst/vaapi/Makefile.am:
24174 build: fix for Wayland headers not in standard include dirs.
24175 Fix build when Wayland headers don't live in plain system include dirs
24176 like /usr/include but rather in /usr/include/wayland for instance.
24177 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24178 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24180 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24182 * gst-libs/gst/vaapi/Makefile.am:
24183 build: link libgstvaapi-wayland against videoutils.
24184 This library is using symbols that don't exist in GStreamer 0.10 so
24185 it needs to link to built-in implementation (libgstvaapi-videoutils).
24186 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24187 Signed-off-by: Ross Burton <ross.burton@intel.com>
24188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24190 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24192 * gst-libs/gst/vaapi/gstvaapifilter.c:
24193 * gst/vaapi/gstvaapipostproc.c:
24194 vaapostproc: fix memory leaks.
24195 Destroy VPP output surface pool on exit. Also avoid a possible crash
24196 in double-free situation caused by insufficiently reference counted
24197 array of formats returned during initialization.
24199 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24201 * gst/vaapi/gstvaapipostproc.c:
24202 * gst/vaapi/gstvaapipostproc.h:
24203 vaapipostproc: fix and optimize advanced deinterlacing mode.
24204 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24205 reference buffers. This used to be 3 past reference buffers but this
24206 doesn't fit with the existing decode pipeline that only has 4 extra
24208 Also optimize references tracking to be only enabled when needed, i.e.
24209 when advanced deinterlacing mode is used. This means that we don't
24210 need to track past references for basic bob or weave deinterlacing.
24212 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24214 * gst/vaapi/gstvaapipostproc.c:
24215 vaapipostproc: fix "mixed" mode deinterlacing.
24216 In "mixed" interlaced streams, the buffer contains additional flags that
24217 specify whether the frame contained herein is interlaced or not. This means
24218 that we can alternatively get progressive or interlaced frames. Make sure
24219 to disable deinterlacing at the VPP level when the source buffer is no longer
24222 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24224 * gst/vaapi/gstvaapipostproc.c:
24225 vaapipostproc: fix memory leaks with advanced deinterlacing.
24226 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24227 of past buffers. Completely reset the deinterlace state, thus destroying
24228 any buffer currently held, on _start(), _stop() and _destroy().
24230 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24234 - GStreamer 1.2 APIs are supported ;
24235 - Video Processing (VA/VPP) features.
24237 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24240 README: update for GStreamer >= 1.0.x and VPP features.
24242 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24244 * gst-libs/gst/vaapi/glibcompat.h:
24245 * gst-libs/gst/vaapi/gstvaapicontext.h:
24246 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24247 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24248 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24249 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24250 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24251 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24252 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24253 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24254 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24255 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24256 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24257 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24258 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24259 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24260 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24261 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24262 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24263 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24264 * gst-libs/gst/vaapi/gstvaapiimage.c:
24265 * gst-libs/gst/vaapi/gstvaapiimage.h:
24266 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24267 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24268 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24269 * gst-libs/gst/vaapi/gstvaapiobject.c:
24270 * gst-libs/gst/vaapi/gstvaapiobject.h:
24271 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24272 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24273 * gst-libs/gst/vaapi/gstvaapisurface.h:
24274 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24275 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24276 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24277 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24278 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24279 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24280 * gst-libs/gst/vaapi/gstvaapitexture.c:
24281 * gst-libs/gst/vaapi/gstvaapitexture.h:
24282 * gst-libs/gst/vaapi/gstvaapitypes.h:
24283 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24284 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24285 * gst-libs/gst/vaapi/gstvaapivalue.c:
24286 * gst-libs/gst/vaapi/gstvaapivalue.h:
24287 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24288 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24289 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24290 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24291 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24292 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24293 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24294 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24295 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24296 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24297 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24298 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24299 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24300 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24301 * gst/vaapi/gstvaapi.c:
24302 * gst/vaapi/gstvaapidecode.h:
24303 * gst/vaapi/gstvaapidownload.h:
24304 * gst/vaapi/gstvaapipluginutil.c:
24305 * gst/vaapi/gstvaapipluginutil.h:
24306 * gst/vaapi/gstvaapipostproc.h:
24307 * gst/vaapi/gstvaapisink.h:
24308 * gst/vaapi/gstvaapivideoconverter_glx.h:
24312 * tests/test-display.c:
24313 * tests/test-jpeg.c:
24314 * tests/test-jpeg.h:
24315 * tests/test-mpeg4.c:
24316 * tests/test-mpeg4.h:
24317 * tests/test-surfaces.c:
24318 * tests/test-windows.c:
24319 legal: update copyright notice dates.
24321 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24323 * gst-libs/gst/vaapi/glibcompat.h:
24324 * gst-libs/gst/vaapi/gstcompat.h:
24325 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24326 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24327 * gst-libs/gst/vaapi/gstvaapicompat.h:
24328 * gst-libs/gst/vaapi/gstvaapicontext.c:
24329 * gst-libs/gst/vaapi/gstvaapicontext.h:
24330 * gst-libs/gst/vaapi/gstvaapidebug.h:
24331 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24332 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24333 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24334 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24335 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24336 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24337 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24338 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24339 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24340 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24341 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24342 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24343 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24344 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24345 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24346 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24347 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24348 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24349 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24350 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24351 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24352 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24353 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24354 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24355 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24356 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24357 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24358 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24359 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24360 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24361 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24362 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24363 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24364 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24365 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24366 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24367 * gst-libs/gst/vaapi/gstvaapifilter.c:
24368 * gst-libs/gst/vaapi/gstvaapifilter.h:
24369 * gst-libs/gst/vaapi/gstvaapiimage.c:
24370 * gst-libs/gst/vaapi/gstvaapiimage.h:
24371 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24372 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24373 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24374 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24375 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24376 * gst-libs/gst/vaapi/gstvaapiobject.c:
24377 * gst-libs/gst/vaapi/gstvaapiobject.h:
24378 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24379 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24380 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24381 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24382 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24383 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24384 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24385 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24386 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24387 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24388 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24389 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24390 * gst-libs/gst/vaapi/gstvaapisurface.c:
24391 * gst-libs/gst/vaapi/gstvaapisurface.h:
24392 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24393 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24394 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24395 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24396 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24397 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24398 * gst-libs/gst/vaapi/gstvaapitexture.c:
24399 * gst-libs/gst/vaapi/gstvaapitexture.h:
24400 * gst-libs/gst/vaapi/gstvaapitypes.h:
24401 * gst-libs/gst/vaapi/gstvaapiutils.c:
24402 * gst-libs/gst/vaapi/gstvaapiutils.h:
24403 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24404 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24405 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24406 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24407 * gst-libs/gst/vaapi/gstvaapivalue.c:
24408 * gst-libs/gst/vaapi/gstvaapivalue.h:
24409 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24410 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24411 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24412 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24413 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24414 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24415 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24416 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24417 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24418 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24419 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24420 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24421 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24422 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24423 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24424 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24425 * gst-libs/gst/vaapi/sysdeps.h:
24426 * gst-libs/gst/vaapi/video-format.c:
24427 * gst-libs/gst/vaapi/video-format.h:
24428 * gst/vaapi/gstvaapi.c:
24429 * gst/vaapi/gstvaapidecode.c:
24430 * gst/vaapi/gstvaapidecode.h:
24431 * gst/vaapi/gstvaapidownload.c:
24432 * gst/vaapi/gstvaapidownload.h:
24433 * gst/vaapi/gstvaapipluginutil.c:
24434 * gst/vaapi/gstvaapipluginutil.h:
24435 * gst/vaapi/gstvaapipostproc.c:
24436 * gst/vaapi/gstvaapipostproc.h:
24437 * gst/vaapi/gstvaapisink.c:
24438 * gst/vaapi/gstvaapisink.h:
24439 * gst/vaapi/gstvaapiupload.c:
24440 * gst/vaapi/gstvaapiupload.h:
24441 * gst/vaapi/gstvaapiuploader.c:
24442 * gst/vaapi/gstvaapiuploader.h:
24443 * gst/vaapi/gstvaapivideobuffer.c:
24444 * gst/vaapi/gstvaapivideobuffer.h:
24445 * gst/vaapi/gstvaapivideobufferpool.c:
24446 * gst/vaapi/gstvaapivideobufferpool.h:
24447 * gst/vaapi/gstvaapivideocontext.c:
24448 * gst/vaapi/gstvaapivideocontext.h:
24449 * gst/vaapi/gstvaapivideoconverter_glx.c:
24450 * gst/vaapi/gstvaapivideoconverter_glx.h:
24451 * gst/vaapi/gstvaapivideoconverter_x11.c:
24452 * gst/vaapi/gstvaapivideoconverter_x11.h:
24453 * gst/vaapi/gstvaapivideomemory.c:
24454 * gst/vaapi/gstvaapivideomemory.h:
24455 * gst/vaapi/gstvaapivideometa.c:
24456 * gst/vaapi/gstvaapivideometa.h:
24457 * gst/vaapi/gstvaapivideometa_texture.c:
24458 * gst/vaapi/gstvaapivideometa_texture.h:
24467 * tests/simple-decoder.c:
24468 * tests/test-decode.c:
24469 * tests/test-decode.h:
24470 * tests/test-display.c:
24471 * tests/test-filter.c:
24472 * tests/test-h264.c:
24473 * tests/test-h264.h:
24474 * tests/test-jpeg.c:
24475 * tests/test-jpeg.h:
24476 * tests/test-mpeg2.c:
24477 * tests/test-mpeg2.h:
24478 * tests/test-mpeg4.c:
24479 * tests/test-mpeg4.h:
24480 * tests/test-surfaces.c:
24481 * tests/test-textures.c:
24482 * tests/test-vc1.c:
24483 * tests/test-vc1.h:
24484 * tests/test-windows.c:
24485 legal: add per-file authorship information.
24486 Credit original authors on a per-file basis as we cannot expect people
24487 to know all country-specific rules, or bother browsing through the git
24490 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24496 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24501 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24503 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24504 decoder: don't include obsolete headers.
24505 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24506 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24509 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24511 * gst/vaapi/Makefile.am:
24512 * gst/vaapi/gstvaapi.c:
24513 * gst/vaapi/gstvaapipostproc.c:
24514 vaapipostproc: add initial support for GStreamer 1.2.
24515 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24516 right now so that to cope with auto-plugging issues/regressions. e.g.
24517 this happens when the correct set of expected caps are being exposed.
24518 This means that, currently, the proposed caps are not fully accurate.
24520 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24522 * gst/vaapi/gstvaapipostproc.c:
24523 * gst/vaapi/gstvaapipostproc.h:
24524 vaapipostproc: add support for denoise and sharpen filters.
24525 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24527 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24529 * gst/vaapi/gstvaapipostproc.c:
24530 * gst/vaapi/gstvaapipostproc.h:
24531 vaapipostproc: add support for advanced deinterlacing.
24532 Add initial support for advanced deinterlacing. The history buffer
24533 size is arbitrarily set to 3 references for now.
24535 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24537 * gst/vaapi/gstvaapipostproc.c:
24538 vaapipostproc: fix deinterlacing with VPP.
24539 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24540 for the first field. Render flags were supplied instead of the actual
24541 deinterlacing flags (deint_flags).
24543 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24545 * gst/vaapi/gstvaapipostproc.c:
24546 vaapipostproc: fix transform caps.
24547 Fix GstBaseTransform::transform_caps() implementation to always return
24548 the complete set of allowed sink pad caps (unfixated) even if the src
24549 pad caps we are getting are fixated. Rationale: there are just so many
24550 possible combinations, and it was wrong to provide a unique set anyway.
24551 As a side effect, this greatly simplifies the ability to derive src pad
24552 caps from fixated sink pad caps.
24554 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24556 * docs/reference/libs/libs-sections.txt:
24557 * gst-libs/gst/vaapi/gstvaapifilter.c:
24558 * gst-libs/gst/vaapi/gstvaapifilter.h:
24559 filter: add helper to specify references for deinterlacing.
24560 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24561 list of surfaces used for forward or backward reference in advanced
24562 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24563 The list of surfaces used as deinterlacing references shall be live
24564 until the next call to gst_vaapi_filter_process().
24565 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24567 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24569 * gst-libs/gst/vaapi/gstvaapifilter.c:
24570 * gst-libs/gst/vaapi/gstvaapifilter.h:
24571 * gst-libs/gst/vaapi/gstvaapiutils.c:
24572 * gst/vaapi/gstvaapipostproc.c:
24573 * tests/test-filter.c:
24574 filter: fix semantics of deinterlacing flags.
24575 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24576 flag is meant to specify the organization of reference frames used in
24577 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24578 to specify that the top-field of the supplied input surface is to be
24579 used for deinterlacing. Conversely, if not set, this means that the
24580 bottom field of the supplied input surface will be used instead.
24582 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24584 * docs/reference/libs/libs-sections.txt:
24585 * gst-libs/gst/vaapi/gstvaapifilter.c:
24586 * gst-libs/gst/vaapi/gstvaapifilter.h:
24587 filter: add helpers to check for supported/active operation.
24588 Add a couple of helper functions:
24589 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24590 advertises support for the supplied operation ;
24591 - gst_vaapi_filter_use_operation(): checks whether the supplied
24592 operation was already enabled to its non-default value.
24594 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24596 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24597 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24598 The user-defined destroy notify function is meant to be called only when
24599 the surface proxy was fully released, i.e. once it actually released the
24600 VA surface back to the underlying pool.
24602 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24604 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24605 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24606 libs: make GstVaapiVideoPool thread-safe.
24607 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24608 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24610 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24612 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24613 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24614 libs: robustify decoder objects and surface proxy initialization.
24615 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24616 sequences to have the expected default values set beforehand in case of an
24617 error raising up further during creation. i.e. make it possible to cleanly
24618 destroy those partially initialized objects.
24619 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24620 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24622 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24624 * gst/vaapi/gstvaapidecode.c:
24625 vaapidecode: fix decoder flush.
24626 There are situations where gst_video_decoder_flush() is called, and
24627 this subsequently produces a gst_video_decoder_reset() that kills the
24628 currently active GstVideoCodecFrame. This means that it no longer
24629 exists by the time we reach GstVideoDecoder::finish() callback, thus
24630 possibly resulting in a crash if we assumed spare data was still
24631 available for decode (current_frame_size > 0).
24632 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24633 that means a flush, thus performing the actual operations there like
24634 calling gst_video_decoder_have_frame() if pending data is available.
24636 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24638 * gst/vaapi/gstvaapidecode.c:
24639 * gst/vaapi/gstvaapidecode.h:
24640 vaapidecode: fix dead-locks with decoder task.
24641 Review all interactions between the main video decoder stream thread
24642 and the decode task to derive a correct sequence of operations for
24643 decoding. Also avoid extra atomic operations that become implicit under
24644 the GstVideoDecoder stream lock.
24646 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24648 * gst/vaapi/gstvaapidecode.c:
24649 vaapidecode: fix hard reset for seek cases.
24650 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24651 and completely purge any decoded output frame that may come out from
24652 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24653 state to start decoding over new buffers.
24654 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24656 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24658 * gst/vaapi/gstvaapidecode.c:
24659 * gst/vaapi/gstvaapidecode.h:
24660 vaapidecode: drop decode timeout, always wait for a free surface.
24661 vaapidecode used to wait up to one second past the expected time of
24662 presentation for the last decoded frame. This is not realistic in
24663 practice when it comes to video pause/resume. Changed behaviour to
24664 unconditionnally wait for a free VA surface prior to continuing the
24665 decoding. The decode task will continue pushing the output frames to
24666 the downstream element while also reporting errors at the same time
24667 to the main thread.
24668 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24669 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24671 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24673 * gst/vaapi/gstvaapidecode.c:
24674 vaapidecode: fix srcpad caps for GStreamer 1.2.
24675 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24676 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24677 that it relied on possibly un-initialized data. Fix srcpad caps to be
24678 initialized from a sanitized copy of GstVideoDecoder output state caps.
24679 Note: the correct way to expose the srcpad caps triggers an additional
24680 issue in core GStreamer auto-plugging capabilities as the correct caps
24681 to be exposed should be format=ENCODED with memory:VASurface caps feature
24682 at the minimum. In some situations, we could determine the underlying
24683 VA surface format, but this is not always possible. e.g. cases where it
24684 is not allowed to expose the underlying VA surface data, or when the
24685 VA driver implementation cannot actually provide such information.
24687 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24689 * gst/vaapi/gstvaapidecode.c:
24690 * gst/vaapi/gstvaapisink.c:
24691 plugins: streamline VA formats exposed in caps to a realistic set.
24692 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24693 output formats for GStreamer 1.2 in caps to a realistic subset. This
24694 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24695 underlying VA surface format, or if it is actually not allowed to get
24696 access to the surface contents.
24698 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24700 * gst/vaapi/gstvaapidecode.c:
24701 * gst/vaapi/gstvaapisink.c:
24702 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24703 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24704 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24705 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24706 we really don't support that for rendering.
24707 https://bugzilla.gnome.org/show_bug.cgi?id=711828
24709 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24712 configure: automatically detect GStreamer API version.
24713 Automatically detect GStreamer API version. The --with-gstreamer-api
24714 configure option now defaults to "autodetect" and configure then tries
24715 to derive the GStreamer API version from the highest version based on
24716 what pkg-config --modversion would report.
24717 https://bugzilla.gnome.org/show_bug.cgi?id=711657
24719 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
24721 * gst/vaapi/gstvaapipostproc.c:
24722 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24723 Fix raw YUV data uploaded as in the following pipeline:
24724 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24725 The main reason why it failed was that the videoparse element simply
24726 allocates GstBuffer with raw data chunk'ed off the sink pad without
24727 any prior knowledge of the actual frame info. i.e. it basically just
24728 calls gst_adapter_take_buffer().
24729 We could avoid the extra copy performed in vaapipostproc if the videoparse
24730 element was aware of the downstream pool and bothers copying line by
24731 line, for each plane. This means that, for a single frame per buffer,
24732 the optimizatin will be to allocate the video buffer downstream, map
24733 it, and copy each line that is coming through until we need to fills
24734 in the successive planes.
24735 Still, optimized raw YUV uploads already worked with the following:
24736 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24737 https://bugzilla.gnome.org/show_bug.cgi?id=711250
24738 [clean-ups, fixed error cases to unmap and unref outbuf]
24739 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24741 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24743 * gst/vaapi/gstvaapipostproc.c:
24744 vaapipostproc: try to downgrade deinterlace-method when needed.
24745 If the currently selected deinterlacing method is not supported by the
24746 underlying hardware, then try to downgrade the method to a supported one.
24747 At the minimum, basic bob-deinterlacing shall always be supported.
24749 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24751 * gst/vaapi/gstvaapipostproc.c:
24752 vaapipostproc: add initial support for deinterlacing with VPP.
24753 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24754 this only covers bob-deinterlacing when the output pixel format is
24757 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24759 * gst/vaapi/gstvaapipostproc.c:
24760 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24761 The size argument for GstBaseTransform::transform_size() hook is a
24762 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24764 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24766 * gst/vaapi/gstvaapipostproc.c:
24767 * gst/vaapi/gstvaapipostproc.h:
24768 vaapipostproc: add initial support for scaling.
24769 Add initial support for basic scaling with size specified through the
24770 "width" and "height" properties. If either user-provided dimension is
24771 zero and "force-aspect-ratio" is set to true (the default), then the
24772 other dimension is scaled to preserve the aspect ratio.
24774 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24776 * gst/vaapi/gstvaapipostproc.c:
24777 * gst/vaapi/gstvaapipostproc.h:
24778 vaapipostproc: add initial support for color conversion.
24779 If VPP is available, we always try to implicitly convert the source
24780 buffer to the "native" surface format for the underlying accelerator.
24781 This means that no optimization is performed yet to propagate raw YUV
24782 buffers to the downstream element as is, if VPP is available. i.e. it
24783 will always cause a color conversion.
24785 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24787 * gst/vaapi/gstvaapipostproc.c:
24788 vaapipostproc: fix bug when user disabled deinterlacing.
24789 Fix pipeline error / hang when the user disabled deinterlacing through
24790 the deinterlace-mode=disabled property setting.
24792 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24794 * gst/vaapi/gstvaapipostproc.c:
24795 * gst/vaapi/gstvaapipostproc.h:
24796 vaapipostproc: factor out operations to be applied into flags.
24797 Even if we only support deinterlacing for now, use flags to specify
24798 which filters are to be applied to each frame we receive in transform().
24799 This is preparatory work for integrating new filters.
24801 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24803 * gst/vaapi/gstvaapipostproc.c:
24804 * gst/vaapi/gstvaapipostproc.h:
24805 vaapipostproc: add support for raw YUV video source buffers.
24806 Allow video processing from raw YUV buffers coming from the sink pad,
24807 while still producing a VA surface for the downstream elements.
24809 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24811 * gst/vaapi/gstvaapipluginutil.c:
24812 * gst/vaapi/gstvaapipluginutil.h:
24813 * gst/vaapi/gstvaapipostproc.c:
24814 vaapipostproc: add support for "mixed" interlace mode.
24815 Add support for "mixed" interlace-mode, whereby the video frame buffer
24816 shall be deinterlaced only if its flags mention that's actually an
24817 interlaced frame buffer.
24819 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24821 * gst-libs/gst/vaapi/gstcompat.h:
24822 * gst/vaapi/gstvaapipostproc.c:
24823 * gst/vaapi/gstvaapipostproc.h:
24824 * gst/vaapi/gstvaapivideobuffer.c:
24825 * gst/vaapi/gstvaapivideobuffer.h:
24826 vaapipostproc: rework plug-in element.
24827 Rewrite the vaapipostproc plug-in element so that it derives from
24828 GstBaseTransform, thus simplifying the caps negotiation process.
24830 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24832 * gst/vaapi/gstvaapivideobufferpool.c:
24833 * gst/vaapi/gstvaapivideomemory.c:
24834 * gst/vaapi/gstvaapivideomemory.h:
24835 plugins: fix and optimize check for buffer pool allocator params.
24836 Reset the buffer pool allocator only if the config caps changed in a
24837 sensible way: format or resolution change. i.e. don't bother with
24838 other caps like colorimetry et al. as this doesn't affect the way to
24839 allocate VA surfaces or images.
24841 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24843 * gst/vaapi/gstvaapivideomemory.c:
24844 plugins: enable memory maps for read & write with direct-rendering.
24845 Enable read and write mappings only if direct-rendering is supported.
24846 Otherwise, this means that we may need to download data from the VA
24847 surface first for correctness, even if the VA surface doesn't need to
24848 be read at all. i.e. sometimes, READWRITE mappings are meant for
24849 surfaces that are written to first, and read afterwards for further
24851 https://bugzilla.gnome.org/show_bug.cgi?id=704078
24853 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24855 * gst/vaapi/gstvaapivideomemory.c:
24856 plugins: fix check for direct-rendering support.
24857 Fix check for direct-rendering if the creation of VA surfaces with
24858 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24859 that we tried to allocate a VA surface based on the corresponding
24860 chroma type. i.e. in that particular case, we have to make sure that
24861 the derived image has actually the expected format.
24863 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24865 * gst/vaapi/gstvaapivideobufferpool.c:
24866 * gst/vaapi/gstvaapivideomemory.c:
24867 * gst/vaapi/gstvaapivideomemory.h:
24868 plugins: fix buffer pool reset_buffer() to reset memory resources.
24869 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24870 memory resources, and more particularly the VA surface proxy. Most
24871 importantly, the GstVaapiVideoMeta is retained. Cached surface in
24872 memory are released, thus triggering a new allocation the next time
24873 we need to map the buffer.
24875 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24877 * gst/vaapi/gstvaapivideomemory.c:
24878 * gst/vaapi/gstvaapivideomemory.h:
24879 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24880 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24881 pool stored in the parent VA memory allocator.
24882 This fixes the following scenario:
24883 - VA video buffer 1 is allocated from a buffer pool
24884 - Another video buffer is created, and inherits info from buffer 1
24885 - Buffer 1 is released, thus pushing it back to the buffer pool
24886 - New buffer alloc request comes it, this yields buffer 1 back
24887 - At this stage, buffers 1 and 2 still share the same underlying VA
24888 surface, but buffer 2 was already submitted downstream for further
24889 processing, thus conflicting with additional processing we were
24890 about to perform on buffer 1.
24891 Maybe the core GstBufferPool implementation should have been fixed
24892 instead to actually make sure that the returned GstBuffer memory we
24893 found from the pool is writable?
24895 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24897 * gst/vaapi/gstvaapiuploader.c:
24898 plugins: create a proxy for GstVaapiUploader allocated buffers.
24899 Always make sure to allocate a VA surface proxy for GstVaapiUploader
24900 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24902 This fixes cases where we want to retain the underlying surface longer,
24903 instead of releasing it back to the surface pool right away.
24905 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24907 * gst/vaapi/gstvaapidecode.c:
24908 * gst/vaapi/gstvaapipluginutil.c:
24909 * gst/vaapi/gstvaapipluginutil.h:
24910 * gst/vaapi/gstvaapipostproc.c:
24911 plugins: add helper function to disable deinterlacing in caps.
24912 Add gst_caps_set_interlaced() helper function that would reset the
24913 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24914 interlaced field to "false" for GStreamer 0.10.
24916 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24918 * gst-libs/gst/vaapi/gstvaapifilter.c:
24919 filter: fix memory leak of VPP operations.
24920 Fix ensure_operations() to release the VPP operations array if non
24921 NULL, prior to returning to the caller. The former function was also
24922 renamed to a more meaningful get_operations() since the caller owns
24923 the returned array that needs to be released.
24925 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24927 * gst-libs/gst/vaapi/gstvaapifilter.c:
24928 filter: fix first-time operation lookup.
24929 Fix first-time operation lookup through find_operation() if the set
24930 of supported operations was not initially determined through the
24931 gst_vaapi_filter_get_operations() helper function.
24932 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24934 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24936 * gst-libs/gst/vaapi/gstvaapifilter.c:
24937 filter: fix colorbalance related subtypes.
24938 Fix intiialization of GstVaapiFilterOpData for colorbalance related
24939 operations. In particular, fill in the va_subtype field accordingly.
24940 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24942 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24944 * gst-libs/gst/vaapi/gstvaapifilter.c:
24945 filter: fix VA-API 0.34.0 symbol guards.
24946 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24947 that need to be guarded for libva 0.34 and 0.33, respectively.
24948 https://bugzilla.gnome.org/show_bug.cgi?id=709102
24949 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24951 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24953 * gst/vaapi/gstvaapidecode.c:
24954 * gst/vaapi/gstvaapipluginutil.c:
24955 * gst/vaapi/gstvaapisink.c:
24956 plugins: hanle the context query in any pad.
24957 Also this patch simplifies the code, since now the query is common for the
24958 decoder and the sink.
24959 https://bugzilla.gnome.org/show_bug.cgi?id=709200
24961 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24963 * gst/vaapi/gstvaapivideocontext.c:
24964 plugins: query upstream element for a GstContext.
24965 Fix gst_vaapi_video_context_prepare() to also query upstream elements
24966 for a valid GstContext. Improve comments regarding the steps used to
24967 lookup or build that context, thus conforming to the GstContext API
24969 https://bugzilla.gnome.org/show_bug.cgi?id=709112
24970 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24972 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24975 * debian.upstream/control.in:
24976 Fix detection and packaging of GStreamer 1.2.x builds.
24977 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24978 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24979 purposes, update the versioning to -1.2 suffix instead.
24981 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24983 * gst/vaapi/Makefile.am:
24984 * gst/vaapi/gstvaapidecode.c:
24985 * gst/vaapi/gstvaapidecode.h:
24986 * gst/vaapi/gstvaapisink.c:
24987 * gst/vaapi/gstvaapivideometa_texture.c:
24988 * gst/vaapi/gstvaapivideometa_texture.h:
24989 plugins: add support for GstVideoGLTextureUploadMeta.
24990 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
24991 requested, and more specifically under a GLX configuration, then add
24992 the GstVideoGLTextureUploadMeta to the output buffer.
24993 https://bugzilla.gnome.org/show_bug.cgi?id=703236
24994 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24996 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24998 * gst/vaapi/gstvaapidecode.c:
24999 * gst/vaapi/gstvaapisink.c:
25000 * gst/vaapi/gstvaapivideomemory.h:
25001 plugins: add support for GstCaps features.
25002 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
25003 as expressed in caps, to the more standard use of caps features. i.e.
25004 add "memory:VASurface" feature attribute to the associated caps.
25005 https://bugzilla.gnome.org/show_bug.cgi?id=703271
25006 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25008 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25010 * gst/vaapi/gstvaapidecode.c:
25011 * gst/vaapi/gstvaapisink.c:
25012 plugins: improve ::query() debugging messages.
25013 Fix gst_vaapidecode_query() to correctly display the query type name,
25014 instead of randomly displaying that we shared the underlying display.
25015 Also add debug info for the GstVaapiSink::query() handler, i.e. the
25016 supplied query type name actually.
25017 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25019 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25021 * gst/vaapi/gstvaapidecode.c:
25022 * gst/vaapi/gstvaapisink.c:
25023 plugins: add support for GstContext API.
25024 Add support for the new GstContext API from GStreamer 1.2.x.
25025 - implement the GstElement::set_context() hook ;
25026 - reply to the `context' query from downstream elements.
25027 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25028 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25030 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25032 * gst/vaapi/Makefile.am:
25033 * gst/vaapi/gstvaapipluginutil.c:
25034 * gst/vaapi/gstvaapivideocontext.c:
25035 * gst/vaapi/gstvaapivideocontext.h:
25036 plugins: add compat layer for GstVideoContext.
25037 Add thin compatibility layer for the deprecated GstVideoContext API.
25038 For GStreamer API >= 1.2, this involves the following two functions:
25039 - gst_vaapi_video_context_prepare(): queries if a context is already
25040 set in the pipeline ;
25041 - gst_vaapi_video_context_propagate(): propagates the newly-created
25042 context to the rest of the pipeline.
25043 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25044 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25046 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25049 * gst/vaapi/Makefile.am:
25050 * gst/vaapi/gstvaapi.c:
25051 * gst/vaapi/gstvaapidecode.c:
25052 * gst/vaapi/gstvaapipluginutil.c:
25053 * gst/vaapi/gstvaapisink.c:
25054 * gst/vaapi/gstvaapivideobuffer.c:
25055 plugins: initial port to GStreamer 1.2.
25056 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
25057 is rather minimalistic so that to test the basic functionality.
25058 Disable vaapipostproc plugin for now as further polishing is needed.
25059 Also disable GstVideoContext interface support since this API is now
25060 gone in 1.2.x. This is preparatory work for GstContext support.
25061 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25062 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25064 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25066 * tests/simple-decoder.c:
25067 tests: simple-decoder: fix for non-X11 backends.
25068 Don't try to create pixmaps if we have not requested that feature. This
25069 fixes execution for non-X11 backends, and most specifically DRM video
25072 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25074 * ext/codecparsers:
25075 codecparsers: update to gst-vaapi-branch commit b33bd32.
25076 b33bd32 jpeg: fix and optimize scan for next marker code
25078 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25080 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25081 jpeg: fix calculation of MCU count.
25082 Fix calculation of MCU count for image sizes that are not a multiple
25083 of 8 pixels in either dimension, but also for non-common sampling
25084 factors like 4:2:2 in non-interleaved mode.
25086 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25088 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25089 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25090 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25091 jpeg: add support for multiscan images.
25092 Add support for images with multiple scans per frame. The Huffman table
25093 can be updated before SOS, and thus possibly requiring multiple uploads
25094 of Huffman tables to the VA driver. So, the latter must be able to cope
25095 with multiple VA buffers of type 'huffman-table' and with the correct
25098 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25100 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25101 jpeg: improve robustness when packets are missing.
25102 Improve robustness when some expected packets where not received yet
25103 or that were not correctly decoded. For example, don't try to decode
25104 a picture if there was no valid frame headers.
25106 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25108 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25109 jpeg: minor clean-ups.
25110 Improve debugging and error messages. Rename a few variables to fit the
25111 existing naming conventions. Change some fatal asserts to non-fatal
25114 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25116 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25117 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25118 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25119 jpeg: rework and optimize parser.
25120 Split the input buffer data into decoder units that represent a JPEG
25121 segment. Handle scan decoder unit specifically so that it can include
25122 both the scan header (SOS) but also any other ECS or RSTi segment.
25123 That way, we parse the input buffer stream only once at the gst-vaapi
25124 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25125 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25126 determine segment boundaries and decode them.
25127 In practice, this is a +15 to +25% performance improvement.
25129 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25131 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25132 jpeg: handle comment segments.
25133 Fix decode_buffer() function to gracefully skip comment (COM) segments.
25134 This fixes decoding of streams generated by certain cameras, e.g. like
25135 the Logitech Pro C920.
25136 https://bugzilla.gnome.org/show_bug.cgi?id=708208
25137 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25139 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25141 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25142 jpeg: fix determination of image bounds.
25143 Look for the exact image bounds characterised by the <SOI> and <EOI>
25144 markers. Use the gst_jpeg_parse() codec parser utility function to
25145 optimize the lookup for the next marker segment.
25146 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25148 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25150 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25151 jpeg: fix calculation of offset to next marker segment.
25152 Fix calculation of the offset to the next marker segment since the
25153 correction of the codecparser part to match the API specification.
25154 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25155 of the segment minus any marker prefix.
25156 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25157 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25159 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25161 * ext/codecparsers:
25162 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25163 23c7dde jpeg: fix calculation of segment size
25165 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25168 Bump version for development.
25170 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25176 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25181 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25184 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25185 configure: fix detection of VA/JPEG decoding API.
25186 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25187 More precisely, some packages were shipping with a <va/va.h> header that
25188 did not include <va/va_dec_jpeg.h>.
25189 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25190 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25192 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25194 * gst/vaapi/gstvaapisink.c:
25195 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25196 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25197 is setup in case upstream elements allocate buffers themselves without
25198 honouring our GstVaapiSink::bufer_alloc() hook.
25199 In particular, this fixes support for OGG video streams with WebKit.
25200 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25201 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25203 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25205 * gst/vaapi/gstvaapisink.c:
25206 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25207 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25210 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25212 * gst/vaapi/gstvaapisink.c:
25213 * gst/vaapi/gstvaapisink.h:
25214 vaapisink: handle raw buffers not created from VA video buffer pool.
25215 Handle raw video buffers that were not created from a VA video buffer
25216 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25217 builds instead of the GstVaapiUploader.
25218 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25220 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25222 * gst/vaapi/gstvaapidecode.c:
25223 vaapidecode: remove extraneous size information from allowed caps.
25224 Fix _getcaps() implementation to not report codecs with size information
25225 filled in the returned caps. That's totally useless nowadays. Ideally,
25226 this is a hint to insert a video parser element, thus allowing future
25227 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25228 which is able to parse the elementary bitstreams itself.
25229 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25231 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25233 * gst/vaapi/gstvaapidecode.c:
25234 * gst/vaapi/gstvaapidecode.h:
25235 vaapidecode: submit the last frame from output adapter to decoder.
25236 If there is no frame delimiter at the end of the stream, e.g. no
25237 end-of-stream or end-of-sequence marker, and that the current frame
25238 was fully parsed correctly, then assume that last frame is complete
25239 and submit it to the decoder.
25240 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25241 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25242 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25244 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25246 * gst/vaapi/gstvaapidecode.c:
25247 * gst/vaapi/gstvaapidecode.h:
25248 vaapidecode: push all decoded frames from within the task.
25249 Make sure to push all decoded frames from the task so that the unlying
25250 VA surfaces could all be rendered from the same thread.
25252 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25254 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25255 wayland: render the raw surface if VPP failed.
25256 As a last resort, if video processing capabilities (VPP) are not available,
25257 or they did not produce anything conclusive enough, then try to fallback to
25258 the original rendering code path whereby the whole VA surface is rendered
25259 as is, no matter of video cropping or deinterlacing requests.
25260 Note: under those conditions, the visual outcome won't be correct but at
25261 least, something gets displayed instead of bailing out.
25263 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25265 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25266 wayland: add supporting for video processing.
25267 Try to use VA/VPP processing capabilities to handle video cropping and
25268 additional rendering flags that may not be directly supported by the
25269 underlying hardware when exposing a suitable Wayland buffer for the
25270 supplied VA surface. e.g. deinterlacing, different color primaries than
25273 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25275 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25276 wayland: add new frame redraw infrastructure.
25277 Update the frame redraw infrastructure with a new FrameState stucture
25278 holds all the necessary information used to display the next pending
25280 While we are at it, delay the sync operation down to when it is actually
25281 needed. That way, we keep performing additional tasks meanwhile.
25283 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25285 * docs/reference/libs/libs-sections.txt:
25286 * gst-libs/gst/vaapi/gstvaapifilter.c:
25287 * gst-libs/gst/vaapi/gstvaapifilter.h:
25288 filter: allow specification of render target regions.
25289 Add support for rendering the source surface to a particular region within
25290 the supplied target surface. The default background color is black.
25292 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25294 * gst/vaapi/gstvaapivideobuffer.c:
25295 decode: fix creation of GLX video buffers for GStreamer 0.10.
25296 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25297 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25299 This fixes support for cluttersink with GStreamer 0.10 builds.
25301 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25303 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25304 mpeg2: disable video cropping as picture_display_extension() is missing.
25305 Disable video cropping in MPEG-2 codec because it is partially implemented
25306 and actually because nobody implements it that way, and the standard spec
25307 does not specify the display process either anyway.
25308 Most notably, there are two possible use cases for sequence_display_extension()
25309 horizontal_display_size & vertical_display_size: (i) guesstimating the
25310 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25311 in conjunction with picture_display_extension() information.
25312 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25314 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25316 * gst/vaapi/gstvaapisink.c:
25317 * gst/vaapi/gstvaapisink.h:
25318 vaapisink: allow scaling to ignore aspect ratio.
25319 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25320 which allows you to say that you don't want the sink to respect aspect
25321 ratio. Add the same property to vaapisink.
25322 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25323 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25325 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25327 * gst/vaapi/gstvaapisink.c:
25328 vaapisink: fix memory leak of GstVaapiUploader instance.
25329 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25330 of a former GstVaapiUploader instance prior to forcibly creating a
25332 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25334 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25336 * gst/vaapi/gstvaapisink.c:
25337 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25338 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25339 by honouring the filter caps argument. More precisely, this fixes the
25340 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25341 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25342 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25343 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25345 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25347 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25348 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25349 This fixes the following issue:
25350 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25351 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25352 'GstVaapiDecoderMpeg4Class'
25353 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25354 'GstVaapiDecoderMpeg4Class' was here
25355 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25356 make[5]: Leaving directory
25357 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25358 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25360 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25362 * tests/test-filter.c:
25363 tests: filter: add support for deinterlacing.
25364 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25365 deinterlacing filter. However, if --deinterlace option is not set but the
25366 --deinterlace-flags option is set with "top-field-first", then the very
25367 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25369 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25371 * tests/test-filter.c:
25372 tests: filter: add support for denoising and sharpening.
25373 Add --denoise option to enable noise reduction with the level specified
25374 as the option value (float). Likewise, add --sharpen option to enable
25376 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25378 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25380 * tests/test-filter.c:
25381 tests: filter: add support for frame cropping.
25382 Add support for frame cropping through the --crop-rect|-c argument.
25383 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25384 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25386 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25388 * tests/test-filter.c:
25389 tests: filter: dump supported operations and formats.
25391 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25393 * tests/Makefile.am:
25394 * tests/test-filter.c:
25395 tests: add initial test for video processing.
25396 Add minimal test case for video processing: scaling and color format
25398 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25400 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25402 * docs/reference/libs/libs-sections.txt:
25403 * gst-libs/gst/vaapi/gstvaapifilter.c:
25404 * gst-libs/gst/vaapi/gstvaapifilter.h:
25405 * gst-libs/gst/vaapi/gstvaapiutils.c:
25406 * gst-libs/gst/vaapi/gstvaapiutils.h:
25407 * gst/vaapi/gstvaapipostproc.c:
25408 * gst/vaapi/gstvaapipostproc.h:
25409 filter: add initial support for deinterlacing.
25410 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25411 the selected field from the input surface is kept for the target surface.
25412 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25413 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25414 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25415 to libgstvaapi core library.
25416 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25418 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25420 * docs/reference/libs/libs-sections.txt:
25421 * gst-libs/gst/vaapi/gstvaapifilter.c:
25422 * gst-libs/gst/vaapi/gstvaapifilter.h:
25423 filter: add support for color balance adjustment.
25424 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25425 and contrast. The respective range for each filter shall be the same as
25426 for the VA display attributes.
25427 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25429 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25431 * docs/reference/libs/libs-sections.txt:
25432 * gst-libs/gst/vaapi/gstvaapifilter.c:
25433 * gst-libs/gst/vaapi/gstvaapifilter.h:
25434 filter: add support for sharpening.
25435 Sharpening is configured with a float value. The supported range is
25436 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25438 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25440 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25442 * docs/reference/libs/libs-sections.txt:
25443 * gst-libs/gst/vaapi/gstvaapifilter.c:
25444 * gst-libs/gst/vaapi/gstvaapifilter.h:
25445 filter: add support for denoising.
25446 Noise reduction is configured with a float value. The supported range
25447 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25449 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25451 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25453 * docs/reference/libs/libs-sections.txt:
25454 * gst-libs/gst/vaapi/gstvaapifilter.c:
25455 * gst-libs/gst/vaapi/gstvaapifilter.h:
25456 filter: add support for frame cropping.
25457 Frame cropping is defined with a GstVaapiRectangle value. The default
25458 behaviour is to treat the source surface as a whole
25460 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25462 * gst-libs/gst/vaapi/gstvaapifilter.c:
25463 filter: add helper functions.
25464 Add helper functions to ensure an operation VA buffer is allocated to
25465 the right size; that filter caps get parsed and assigned to the right
25466 operation too; and that float parameters are correctly scaled to fit
25467 the reported range from the VA driver.
25469 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25472 * docs/reference/libs/libs-docs.xml.in:
25473 * docs/reference/libs/libs-sections.txt:
25474 * gst-libs/gst/vaapi/Makefile.am:
25475 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25476 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25477 * gst-libs/gst/vaapi/gstvaapifilter.c:
25478 * gst-libs/gst/vaapi/gstvaapifilter.h:
25479 Add initial infrastructure for video processing.
25480 Add initial API for video processing: only scaling and color format
25481 conversion operations are supported.
25483 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25485 * gst-libs/gst/vaapi/video-format.c:
25486 * gst-libs/gst/vaapi/video-format.h:
25487 libs: add gst_vaapi_video_format_from_string() helper.
25488 Add gst_vaapi_video_format_from_string() helper function to convert from
25489 a video format string representation to a suitable GstVideoFormat. This
25490 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25491 builds, and a proper iteration over all GstVideoFormat string representations
25492 otherwise for earlier GStreamer 0.10.x builds.
25494 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25496 * gst-libs/gst/vaapi/video-format.c:
25497 * gst-libs/gst/vaapi/video-format.h:
25498 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25499 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25500 VA fourcc value to a suitable GstVideoFormat.
25502 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25504 * gst-libs/gst/vaapi/gstvaapivalue.c:
25505 * gst-libs/gst/vaapi/gstvaapivalue.h:
25506 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25507 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25508 structures as a standard GType. This could be useful to have them
25509 described as a GValue later on.
25511 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25513 * docs/reference/libs/libs-docs.xml.in:
25514 * docs/reference/libs/libs-sections.txt:
25515 * gst-libs/gst/vaapi/Makefile.am:
25516 * gst-libs/gst/vaapi/gstvaapicontext.h:
25517 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25518 libs: drop some public APIs.
25519 Don't expose GstVaapiContext APIs and make them totally private to
25520 libgstvaapi core library. That API would also tend to disappear in
25521 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25522 but keep symbols visible so that the various render backends could
25523 share a common display cache implementation in libgstvaapi.
25524 Try to clean-up the documentation from any stale entry too.
25526 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25530 tests: image: allow creation of images with interleaved patterns.
25531 Add image_generate_full() function to create interleaved color rectangles.
25532 If flags is zero, the whole frame is generated with a unique pattern. If
25533 flags is non-zero, then each field is handled individually.
25535 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25538 tests: image: fix conversion from RGB to YUV.
25539 Fix RGB to YUV conversion to preserve full data range.
25541 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25544 tests: image: try to upload images through vaDeriveImage() too.
25545 On some platforms, vaPutImage() would fail even if it does not involve
25546 color format conversion or scaling, whereas copying raw pixels through
25547 vaDeriveImage() could work instead.
25549 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25552 tests: image: add support for packed YUV formats.
25553 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25555 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25558 tests: image: fix generation of I420/YV12 images.
25559 U/V planes were reversed, thus producing invalid images.
25561 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25564 tests: image: fix string representation for GstVideoFormat.
25566 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25568 * docs/reference/libs/libs-sections.txt:
25569 * gst-libs/gst/vaapi/Makefile.am:
25570 * gst-libs/gst/vaapi/gstvaapiimage.c:
25571 * gst-libs/gst/vaapi/gstvaapiimage.h:
25572 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25573 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25574 * gst-libs/gst/vaapi/gstvaapisurface.c:
25575 image: clean image API up.
25576 Don't expose functions that reference a GstVaapiImageRaw, those are
25577 meant to be internal only for implementing subpictures sync. Also add
25578 a few private definitions to avoid functions calls for retrieving
25579 image size and format information.
25581 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25583 * docs/reference/libs/libs-sections.txt:
25584 * gst-libs/gst/vaapi/gstvaapiimage.c:
25585 * gst-libs/gst/vaapi/gstvaapiimage.h:
25586 image: add gst_vaapi_image_copy() helper.
25587 Add gst_vaapi_image_copy() helper function to copy images of same format
25590 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25592 * gst/vaapi/gstvaapivideoconverter_x11.c:
25593 plugins: handle video cropping in X11 pixmap converter.
25594 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25595 we could decode from the stream.
25597 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25599 * gst/vaapi/Makefile.am:
25600 * gst/vaapi/gstvaapivideobuffer.c:
25601 * gst/vaapi/gstvaapivideoconverter_glx.c:
25602 * gst/vaapi/gstvaapivideoconverter_x11.c:
25603 * gst/vaapi/gstvaapivideoconverter_x11.h:
25604 plugins: add support for "x11-pixmap" video converter type.
25605 Install a new video converter that supports X11 pixmap targets for X11
25606 backends only, or make the GLX converter creation function chain up to
25607 the X11 converter whenever requested.
25609 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25611 * tests/simple-decoder.c:
25612 tests: simple-decoder: add support for pixmap API.
25613 Add support for the new render-to-pixmap API. Avoid flickering on
25614 platforms supporting video overlay by keeping up to 2 intermediate
25617 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25619 * tests/simple-decoder.c:
25620 tests: simple-decoder: add support for video cropping.
25621 Handle video cropping information attached to a VA surface proxy.
25623 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25627 * tests/test-decode.c:
25628 tests: add support for render-to-pixmap.
25629 Add --pixmap option to test-decode so that to allow copies of VA
25630 surface to an intermediate pixmap and rendering from that pixmap.
25631 Only X11 backends are supported for now.
25633 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25636 * gst-libs/gst/vaapi/Makefile.am:
25637 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25638 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25639 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25640 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25641 x11: implement pixmap rendering with RENDER extension.
25642 Use hardware accelerated XRenderComposite() function, from the RENDER
25643 extension, to blit a pixmap to screen. Besides, this can also support
25644 cropping and scaling.
25646 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25648 * docs/reference/libs/libs-docs.xml.in:
25649 * docs/reference/libs/libs-sections.txt:
25650 * gst-libs/gst/vaapi/Makefile.am:
25651 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25652 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25653 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25654 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25655 x11: implement pixmap API.
25656 Implement the new render-to-pixmap API. The only supported pixmap format
25657 that will work is xRGB, with native byte ordering. Others might work but
25658 they were not tested.
25660 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25662 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25663 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25664 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25665 x11: update x11_get_geometry() helper function with depth output.
25666 Allow x11_get_geometry() utility function to also return the depth
25667 assigned to the X drawable.
25669 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25671 * docs/reference/libs/libs-docs.xml.in:
25672 * docs/reference/libs/libs-sections.txt:
25673 * gst-libs/gst/vaapi/Makefile.am:
25674 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25675 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25676 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25677 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25678 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25679 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25680 Add initial Pixmap API.
25681 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25682 render a native pixmap, for completeness. In general, rendering to
25683 pixmap would only be useful to certain VA drivers and use cases on
25684 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25687 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25689 * docs/reference/libs/libs-sections.txt:
25690 * gst-libs/gst/vaapi/gstvaapiimage.c:
25691 * gst-libs/gst/vaapi/gstvaapisurface.c:
25692 * gst-libs/gst/vaapi/video-format.c:
25693 * gst-libs/gst/vaapi/video-format.h:
25694 libs: add and expose gst_vaapi_video_format_to_string() helper.
25695 This is just a wrapper over gst_video_format_to_string() for older
25696 GStreamer 0.10 builds.
25698 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25700 * gst/vaapi/gstvaapipluginutil.c:
25701 plugins: fix display type comparison in gst_vaapi_create_display().
25702 After the code got moved to create the gst_vaapi_create_display() helper,
25703 this comparison was not updated to dereference the newly-created
25704 pointer, so the code was comparing the pointer itself to the type, and
25705 therefore failing to retrieve the VA display.
25706 This fixes the following error (and gets gst-vaapi decoding again):
25707 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25708 https://bugzilla.gnome.org/show_bug.cgi?id=704410
25709 Signed-off-by: Emilio López <emilio@elopez.com.ar>
25711 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25714 Bump version for development.
25716 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25718 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25719 mpeg2: don't output dummy pictures.
25720 Mark dummy pictures as output already so that we don't try to submit
25721 them to the upper layer since this is purely internal / temporary
25722 picture for helping the decoder.
25724 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25726 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25727 decoder: dispose GstVideoCodecFrame earlier.
25728 Once the picture was output, it is no longer necessary to keep an extra
25729 reference to the underlying GstVideoCodecFrame. So, we can release it
25730 earlier, and maybe subsequently release the associate surface proxy
25733 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25739 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25741 * docs/reference/libs/libs-sections.txt:
25742 * gst-libs/gst/vaapi/Makefile.am:
25743 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25744 * gst-libs/gst/vaapi/gstvaapiimage.c:
25745 * gst-libs/gst/vaapi/gstvaapisurface.c:
25746 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25747 * gst-libs/gst/vaapi/video-format.c:
25748 * gst-libs/gst/vaapi/video-format.h:
25749 * gst/vaapi/gstvaapidownload.c:
25750 * gst/vaapi/gstvaapiuploader.c:
25752 * tests/test-display.c:
25753 Fix new video format API.
25754 Fix new internal video format API, based on GstVideoFormat, to not
25755 clobber with system symbols. So replace the gst_video_format_* prefix
25756 with gst_vaapi_video_format_ prefix, even if the format type remains
25759 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25762 Bump library major version.
25763 Bump the library major version due to API/ABI changes that occurred in
25764 the imaging API. In particular, GstVaapiImageFormat type was replaced
25765 with the standard GstVideoFormat type. All dependent APIs were updated
25766 to match this change.
25768 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25773 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25775 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25776 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25777 decoder: fix memory leak when processing interlaced pictures.
25778 Fix memory leak when processing interlaced pictures and that occurs
25779 because the first field, represented as a GstVideoCodecFrame, never
25780 gets released. i.e. when the picture is completed, this is generally
25781 the case when the second field is successfully decoded, we need to
25782 propagate the GstVideoCodecFrame of the first field to the original
25783 GstVideoDecoder so that it could reclaim memory.
25784 Otherwise, we keep accumulating the first fields into GstVideoDecoder
25785 private frames list until the end-of-stream is reached. The frames
25786 are eventually released there, but too late, i.e. too much memory
25787 may have been consumed.
25788 https://bugzilla.gnome.org/show_bug.cgi?id=701257
25790 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25792 * gst/vaapi/gstvaapipluginutil.c:
25793 plugins: simlpify gst_vaapi_create_display() helper.
25794 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25795 performs the necessary validation checks for the underlying VA display
25796 prior to returning to the caller. So, if an error occurred, then NULL is
25797 really returned in that case.
25799 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25801 * gst/vaapi/gstvaapipluginutil.c:
25802 plugins: add gst_vaapi_create_display() helper.
25803 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25804 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25806 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25808 * gst/vaapi/gstvaapivideobufferpool.c:
25809 plugins: don't reallocate pool allocator for the same caps.
25810 If the video buffer pool config doesn't have new caps, then it's not
25811 necessary to reinstantiate the allocator. That could be a costly
25812 operation as we could do some extra heavy checking in there.
25814 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25816 * gst/vaapi/gstvaapivideomemory.c:
25817 plugins: fix ref counting of GstVaapiVideoMemory allocator.
25818 Fix reference counting issue whereby gst_memory_init() does not hold
25819 an extra reference to the GstAllocator. So, there could be situations
25820 where the last instance of GstVaapiVideoAllocator gets released before
25821 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25823 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25825 * gst/vaapi/gstvaapiuploader.c:
25826 vaapiupload: use implicit color conversion to NV12.
25827 Always perform conversion of sources buffers to NV12 since this is
25828 the way we tested for this capability in ensure_allowed_caps(). This
25829 also saves memory bandwidth for further rendering. However, this may
25830 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25832 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25834 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25835 pool: fix deallocation of video pools.
25836 The queue of free objects to used was deallocated with g_queue_free_full().
25837 However, this convenience function shall only be used if the original queue
25838 was allocated with g_queue_new(). This caused memory corruption, eventually
25839 leading to a crash.
25840 The correct solution is to pair the g_queue_init() with the corresponding
25841 g_queue_clear(), while iterating over all free objects to deallocate them.
25843 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
25845 * gst/vaapi/gstvaapidownload.c:
25846 vaapidownload: fix src caps format error.
25847 This fixes direct linking of vaapidownload element to xvimagesink with
25848 VA drivers supporting vaGetImage() from the native VA surface format to
25849 a different VA image format. i.e. color conversion during download.
25850 http://bugzilla.gnome.org/show_bug.cgi?id=703937
25851 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25853 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25855 * gst/vaapi/gstvaapidownload.c:
25856 vaapidownload: fix debug string for image formats.
25857 The image is now expressed as a standard GstVideoFormat, which is not
25858 a FOURCC but rather a regular enum value.
25859 This is a regression introduced in commit 09397fa.
25861 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
25863 * gst-libs/gst/vaapi/gstvaapiimage.c:
25864 image: add support for raw YUY2/UYVY image copies.
25865 Implement raw image copies for YUY2 format. Add support for UYVY format
25866 too, with the same copy function as for YUY2. Even though components
25867 ordering differs, copying line strides is essentially the same.
25868 https://bugzilla.gnome.org/show_bug.cgi?id=703939
25869 https://bugzilla.gnome.org/show_bug.cgi?id=703940
25870 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25872 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25874 * gst/vaapi/gstvaapiuploader.c:
25875 plugins: clean-up video uploader helper.
25876 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25877 were already negotiated beforehand, and they are not used from the
25878 buffer in upstream elements.
25879 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25880 represented as a GstVideoInfo.
25882 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25884 * gst/vaapi/gstvaapiuploader.c:
25885 plugins: use GstVideoInfo in video uploader helper.
25887 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25889 * gst/vaapi/gstvaapivideomemory.c:
25890 plugins: allow creation of VA surfaces with explicit pixel format.
25891 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25892 with an explicit pixel format. This allows for direct rendering to
25893 VA surface memory from a software decoder.
25895 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25897 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25898 surface: fix surface pool creation with an explicit pixel format.
25899 Fix creation of surface pool objects to honour explicit pixel format
25900 specification. If this operation is not supported, then fallback to
25901 the older interface with chroma format.
25903 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25905 * gst-libs/gst/vaapi/gstvaapisurface.c:
25906 surface: try to determine the underlying VA surface format.
25907 If a VA surface was allocated with the chroma-format interface, try to
25908 determine the underlying pixel format on gst_vaapi_surface_get_format(),
25909 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25911 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25913 * docs/reference/libs/libs-sections.txt:
25914 * gst-libs/gst/vaapi/gstvaapisurface.c:
25915 * gst-libs/gst/vaapi/gstvaapisurface.h:
25916 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25917 surface: allow creation with explicit pixel format.
25918 Make it possible to create VA surfaces with a specific pixel format.
25919 This is a new capability brought in by VA-API >= 0.34.0. If that
25920 capability is not built-in (e.g. using VA-API < 0.34.0), then
25921 gst_vaapi_surface_new_with_format() will return NULL.
25923 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25925 * docs/reference/libs/libs-sections.txt:
25926 * gst-libs/gst/vaapi/video-format.c:
25927 * gst-libs/gst/vaapi/video-format.h:
25928 surface: add helper function to get chroma type from GstVideoFormat.
25929 Add gst_video_format_get_chroma_type() helper function to determine
25930 the GstVaapiChromaType from a standard GStreamer video format. It is
25931 possible to reconstruct that from GstVideoFormatInfo but it is much
25932 simpler (and faster?) to use the local GstVideoFormatMap table.
25934 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25936 * gst-libs/gst/vaapi/gstvaapisurface.c:
25937 * gst-libs/gst/vaapi/gstvaapisurface.h:
25938 * gst-libs/gst/vaapi/gstvaapiutils.c:
25939 * gst-libs/gst/vaapi/gstvaapiutils.h:
25940 surface: add new chroma formats.
25941 Add new chroma formats available with VA-API >= 0.34.0. In particular,
25942 this includes "RGB" chroma formats, and more YUV subsampled formats.
25943 Also add a new from_GstVaapiChromaType() helper function to convert
25944 libgstvaapi chroma type to VA chroma format.
25946 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25948 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25949 pool: fix image pool to check for the video format to use.
25950 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25951 image pool object, only if the underlying VA display does support the
25952 requested VA image format.
25954 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25956 * gst-libs/gst/vaapi/gstvaapicontext.c:
25957 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25958 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25959 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25960 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25961 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25962 * gst/vaapi/gstvaapidownload.c:
25963 * gst/vaapi/gstvaapiuploader.c:
25964 * tests/Makefile.am:
25965 * tests/test-surfaces.c:
25966 Use GstVideoInfo for video pools.
25967 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25968 structures instead. Those are smaller, and allows for streamlining
25971 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25973 * gst-libs/gst/vaapi/gstvaapiimage.c:
25974 * gst-libs/gst/vaapi/video-format.c:
25975 Add more video formats.
25976 Add new video format mappings to VA image formats:
25977 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25978 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25980 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25982 * gst-libs/gst/vaapi/gstvaapiimage.c:
25983 image: fix debug message with video format.
25984 Fix debug message string with image format expressed with GstVideoFormat
25985 instead of the obsolete format that turned out to be a fourcc.
25986 This is a regression from git commit e61c5fc.
25988 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25992 * tests/test-display.c:
25993 * tests/test-textures.c:
25994 * tests/test-windows.c:
25995 tests: port to new video format API.
25997 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25999 * gst/vaapi/gstvaapidownload.c:
26000 * gst/vaapi/gstvaapiuploader.c:
26001 * gst/vaapi/gstvaapivideomemory.c:
26002 plugins: port to new video format API.
26004 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26006 * gst-libs/gst/vaapi/gstvaapiimage.c:
26007 libs: use GstVideoInfo wherever possible.
26008 In particular, use gst_video_info_from_caps() helper function in VA image
26009 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
26010 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
26012 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26014 * docs/reference/libs/libs-docs.xml.in:
26015 * docs/reference/libs/libs-sections.txt:
26016 * gst-libs/gst/vaapi/Makefile.am:
26017 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26018 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26019 libs: drop GstVaapiImageFormat helpers.
26020 Drop GstVaapiImageFormat helpers since everything was moved to the new
26021 GstVideoFormat based API. Don't bother with backwards compatibility and
26022 just bump the library major version afterwards.
26024 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26026 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26027 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26028 * gst-libs/gst/vaapi/gstvaapiimage.c:
26029 * gst-libs/gst/vaapi/gstvaapiimage.h:
26030 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26031 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26032 libs: port to new video format API.
26034 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26036 * docs/reference/libs/libs-docs.xml.in:
26037 * docs/reference/libs/libs-sections.txt:
26038 * gst-libs/gst/vaapi/Makefile.am:
26039 * gst-libs/gst/vaapi/video-format.c:
26040 * gst-libs/gst/vaapi/video-format.h:
26041 Add new video format API.
26042 Leverage GstVideoFormat utilities from core GStreamer to provide an
26043 adaptation layer to VA image formats.
26045 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26050 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26052 * gst/vaapi/gstvaapisink.c:
26053 vaapisink: fix creation of GLX texture.
26054 Fix creation of GLX texture, to not depend on the GstCaps video size that
26055 could be wrong, especially in presence of frame cropping. So, use the size
26056 from the source VA surfaces.
26057 An optimization could be to reduce the texture size to the actual visible
26058 size on screen. i.e. scale down the texture size to match the screen dimensions,
26059 while preserving the VA surface aspect ratio. However, some VA drivers don't
26062 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26064 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26065 mpeg2: add support for video cropping.
26066 If the stream has a sequence_display_extenion, then attach the
26067 display_horizontal/display_vertical dimension as the cropping
26068 rectangle width/height to the GstVaapiPicture.
26069 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26071 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26073 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26074 vc1: add support for video cropping.
26075 If the Advanced profile has display_extension fields, then set the display
26076 width/height dimension as cropping rectangle to the GstVaapiPicture.
26077 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26079 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26081 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26082 h264: add support for video cropping.
26083 If the encoded stream has the frame_cropping_flag set, then associate
26084 the cropping rectangle to GstVaapiPicture.
26085 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26087 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26091 * tests/test-decode.c:
26092 * tests/test-subpicture.c:
26093 tests: add basic support for video cropping.
26094 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
26095 instead of a plain GstVaapiSurface. This means that we can now retrieve
26096 the frame cropping rectangle from the surface proxy, along with additional
26097 information if ever needed.
26099 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26101 * gst/vaapi/gstvaapidecode.c:
26102 * gst/vaapi/gstvaapisink.c:
26103 * gst/vaapi/gstvaapivideometa.c:
26104 plugins: add support for video cropping.
26105 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
26106 specific meta information to hold video cropping details. Make the sink
26107 support video cropping in X11 and GLX modes.
26109 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26111 * gst/vaapi/gstvaapivideometa.c:
26112 * gst/vaapi/gstvaapivideometa.h:
26113 plugins: add helper functions to set the render rectangle.
26114 Some video clips may have a clipping region that needs to propogate to
26115 the renderer. These helper functions make it possible to attach that
26116 clipping region, as a GstVaapiRectangle, the the video meta associated
26118 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26119 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26121 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26123 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26124 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26125 surfaceproxy: allow for NULL cropping rectangle.
26126 Make it possible associate an empty cropping rectangle to the surface
26127 proxy, thus resetting any cropping rectangle that was previously set.
26128 This allows for returning plain NULL when no cropping rectangle was
26129 initially set up to the surface proxy, or if it was reset to defaults.
26131 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26133 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26134 surfaceproxy: clean-up helper macros.
26135 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26136 proxy macro argument to a GstVaapiSurfaceProxy pointer.
26138 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26140 * gst-libs/gst/vaapi/gstvaapisurface.c:
26141 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26142 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26143 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26144 surface: add simple surface info accessors as helper macros.
26145 Add helper macros to retrieve the VA surface information like size
26146 (width, height) or chroma type. This is a micro-optimization to avoid
26147 useless function calls and NULL pointer re-checks in internal routines.
26149 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26151 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26152 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26153 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26154 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26155 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26156 decoder: add support for video cropping.
26157 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26158 cropping information from raw bitstreams to each picture being decoded.
26159 Also add helper function to surface proxy to propagate that information
26160 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26161 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26162 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26164 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26166 * ext/codecparsers:
26167 codecparsers: update to gst-vaapi-branch commit f90de0a.
26168 f90de0a h264: fix calculation of the frame cropping rectangle
26169 535515c h264: parse the cropping rectangle separately
26171 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26173 * ext/codecparsers:
26174 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26175 0f68a71 mpeg2: fix video packet header size checks
26177 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26179 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26180 mpeg2: reset quantization matrices on new sequence headers.
26181 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26182 shall be reset to their default values when a Sequence_Header() is
26184 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26186 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26189 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26190 mpeg2: cope with latest codecparser changes.
26191 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26192 used in individual header parsers. Also use the new slice parsing API.
26194 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26196 * ext/codecparsers:
26197 codecparsers: update to gst-vaapi-branch commit dddd182.
26198 dddd182 mpeg2: add slice header parsing API
26199 94e6228 mpeg2: add sequence scalable extension parsing API
26200 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26201 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26203 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26205 * gst/vaapi/gstvaapisink.c:
26206 vaapisink: expose the raw video formats in static caps template.
26207 Expose all raw video formats in the static caps template since the
26208 vaapisink is supporting raw data. We will get the exact set of formats
26209 supported by the driver dynamically through the _get_caps() routine.
26210 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26211 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26212 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26214 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26216 * gst/vaapi/gstvaapisink.c:
26217 * gst/vaapi/gstvaapisink.h:
26218 vaapisink: add "use-glx" property for OpenGL rendering.
26219 Now that VA/GLX capable buffers are generated by default on X11, thus
26220 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26221 rendering since it is faster.
26222 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26223 enabling "fancy" effects to play with. This has no real value. So,
26224 disable OpenGL rendering by default.
26226 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26228 * gst/vaapi/gstvaapipluginutil.c:
26229 plugins: try to allocate a GLX display first over an X11 one.
26230 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26231 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26233 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26235 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26238 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26239 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26240 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26243 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26245 * gst-libs/gst/vaapi/gstvaapiimage.c:
26246 image: fix wrong check for rect bounds in copy_image().
26248 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26251 Bump version for development.
26253 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26259 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26264 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26267 * gst-libs/gst/codecparsers/Makefile.am:
26268 configure: always build the MPEG-4 parser.
26269 Always build the MPEG-4 parser for now as there are also core fixes
26270 included in the parser that cannot be tested for with API checks.
26272 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26275 configure: add --enable-builtin-codecparsers [default="yes"] option.
26276 Add flag to have all codecparsers built-in, thus ensuring that the
26277 resulting binaries have all the necessary bug fixes and this is what
26278 the QA has been testing anyway.
26279 Of course, for a completely up-to-date Linux distribution, you could
26280 also opt for --disable-builtin-codecparsers and use the system ones.
26281 Though, some core fixes could be missing, and those cannot be tested
26282 for with API checks.
26284 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26286 * ext/codecparsers:
26287 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26288 843ce3e jpeg: fix default Huffman tables generation.
26289 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26290 21099dc mpeg2: actually store video bitrate values
26291 dd02087 mpeg2: fix picture packet extension size check
26292 25948e9 mpeg2: increase min size for picture coding ext
26293 f1f5a40 ensure the debug category is properly initialized
26295 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26297 * debian.upstream/Makefile.am:
26298 debian: fix list of generated files for .deb packaging.
26300 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26303 * debian.upstream/Makefile.am:
26304 * debian.upstream/control.in:
26305 debian: fix libgstvaapi -dev package name.
26306 Fix libgstvaapi -dev package name so that to allow installation of both
26307 GStreamer 0.10 and 1.0.x based packages.
26309 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26314 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26316 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26317 wayland: fix memory leak of display resources.
26319 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26321 * gst/vaapi/gstvaapisink.c:
26322 vaapisink: fix build without VA/GLX support.
26324 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26326 * gst/vaapi/gstvaapivideomemory.c:
26327 * gst/vaapi/gstvaapivideomemory.h:
26328 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26329 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26330 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26331 caller. This is the only sensible enough thing to do in this mode as
26332 the underlying surface pixels need to be extracted through an explicit
26333 call to the gst_video_frame_map() function instead.
26334 A possible use-case of this is to implement a "handoff" signal handler
26335 to fakesink or identity element for further processing.
26337 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26339 * gst/vaapi/gstvaapivideomemory.c:
26340 plugins: silence check for direct-rendering mode in video memory.
26341 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26342 mode support, and not trigger fatal-criticals if either test surface or
26343 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26344 supported by most hardware vs. I420 supported by most software decoders.
26346 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26348 * gst/vaapi/gstvaapivideomemory.c:
26349 plugins: improve video memory flags safety checks.
26350 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26351 support for now. Likewise, on unmap, make sure that the VA image is
26352 unmapped for either read or write, while still committing it to the
26353 VA surface if write was requested.
26355 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26357 * gst-libs/gst/vaapi/gstvaapisurface.c:
26358 surface: fix memory leak through unreleased parent context.
26359 Break the circular references between GstVaapiContext and its children
26360 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26361 context, which holds a reference to its VA surfaces, then none of those
26363 How does this impact support for subpictures?
26364 The only situation when the parent context needs to disappear is when
26365 it is replaced with another one because of a resolution change in the
26366 video stream for instance, or a normal destroy. In this case, it does
26367 not really matter to apply subpictures to the peer surfaces since they
26368 are either gone, or those that are left in the pipe can probably bear
26369 a reinstantiation of the subpictures for it.
26370 So, parent_context is set to NULL when the parent context is destroyed,
26371 other VA surfaces can still get subpictures attached to them, individually
26372 not as a whole. i.e. subpictures for surface S1 will be created from
26373 active composition buffers and associated to S1, subpictures for S2 will
26374 be created from the next active composition buffers, etc. We don't try
26375 to cache the subpictures in those cases (pending surfaces until EOS
26376 is reached, or pending surfaces until new surfaces matching new VA context
26377 get to be used instead).
26379 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26381 * gst/vaapi/gstvaapisink.c:
26382 vaapisink: fix one-time initialization when display property is set.
26383 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26384 tasks even if the `display' property was explicitly set.
26386 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26388 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26389 window: fix GLX window initialization.
26390 Make sure to create the GLX context once the window object has completed
26391 its creation. Since gl_resize() relies on the newly created window size,
26392 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26393 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26394 window object is created in the gst_vaapi_window_glx_new*() functions.
26396 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26398 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26399 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26400 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26401 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26402 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26403 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26404 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26405 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26406 * gst-libs/gst/vaapi/gstvaapitexture.c:
26407 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26408 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26409 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26410 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26411 display: validate display types.
26413 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26415 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26416 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26417 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26418 display: drop internal NAME_PREFIX, store the real display name.
26419 Always store a valid display name/device path, instead of adding a
26420 particular prefix. i.e. make it simply a strdup(), or "" if it was
26423 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26425 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26426 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26427 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26428 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26429 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26430 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26431 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26432 display: make it possible to lookup the display cache by type.
26433 Make it possible to add extra an extra filter to most of display cache
26434 lookup functions so that the GstVaapiDisplay instance can really match
26435 a compatible and existing display by type, instead of relying on extra
26436 string tags (e.g. "X11:" prefix, etc.).
26438 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26440 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26441 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26442 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26443 display: cope with new display cache API.
26445 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26447 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26448 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26449 display: rework display cache API.
26450 Simplify display cache API, while making it more flexible. We can now create
26451 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26453 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26455 * tests/test-display.c:
26456 tests: improve check for display cache.
26457 Improve check for display cache infrastructure. In particular, for X11 and
26458 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26459 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26460 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26461 already exists will have to generate different VA displays.
26463 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26465 * gst/vaapi/gstvaapiuploader.c:
26466 uploader: fix memory leak in GStreamer 0.10 builds.
26467 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26468 but it exhibited a memory leak because the surface generated for the
26469 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26470 possible to release that surface back to the parent pool when the meta
26471 gets released, and the memory consumption kept growing.
26472 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26474 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26476 * gst/vaapi/gstvaapivideometa.c:
26477 plugins: fix gst_vaapi_video_meta_new_from_pool().
26478 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26479 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26480 was hereby totally broken. Fixed this regression by using the newly
26481 provided gst_vaapi_video_pool_get_object_type() function.
26483 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26485 * gst/vaapi/gstvaapiuploader.c:
26486 * gst/vaapi/gstvaapivideomemory.c:
26487 * gst/vaapi/gstvaapivideometa.c:
26488 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26490 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26493 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26495 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26497 * docs/reference/libs/libs-sections.txt:
26498 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26499 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26500 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26501 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26502 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26503 libs: add query for GstVaapiVideoPool object types.
26504 Add API to identify the underlying GstVaapiVideoPool object type.
26506 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26508 * docs/reference/libs/libs-sections.txt:
26509 * gst-libs/gst/vaapi/gstvaapicontext.c:
26510 * gst-libs/gst/vaapi/gstvaapicontext.h:
26511 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26512 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26513 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26514 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26515 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26516 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26517 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26518 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26519 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26520 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26521 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26522 * gst-libs/gst/vaapi/gstvaapiimage.c:
26523 * gst-libs/gst/vaapi/gstvaapiimage.h:
26524 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26525 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26526 * gst-libs/gst/vaapi/gstvaapiobject.c:
26527 * gst-libs/gst/vaapi/gstvaapiobject.h:
26528 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26529 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26530 * gst-libs/gst/vaapi/gstvaapisurface.c:
26531 * gst-libs/gst/vaapi/gstvaapisurface.h:
26532 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26533 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26534 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26535 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26536 * gst-libs/gst/vaapi/gstvaapitexture.c:
26537 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26538 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26539 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26540 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26541 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26542 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26543 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26544 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26545 libs: drop GST_VAAPI_IS_xxx() helper macros.
26546 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26547 deriving from GObject and so those were only checking for whether the
26548 argument was NULL or not. This is now irrelevant, and even confusing
26549 to some extent, because we no longer have type checking.
26550 Note: this incurs more type checking (review) but the libgstvaapi is
26551 rather small, so this is manageable.
26553 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26556 Bump library major version.
26557 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26558 This is a fundamental change that requires a new SONAME. More changes are
26559 underway to streamline the core libraries.
26560 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26561 On one particular test (sintel HD trailer), the total number of executed
26562 instruction was reduced by 8%.
26564 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26566 * docs/reference/libs/Makefile.am:
26567 * docs/reference/libs/libs-docs.xml.in:
26568 * docs/reference/libs/libs-sections.txt:
26569 * docs/reference/libs/libs.core.types:
26570 * docs/reference/libs/libs.glx.types:
26571 * docs/reference/libs/libs.x11.types:
26572 docs: cope with removed APIs.
26573 Some APIs are dead because they are no longer based on GObject.
26575 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26577 * gst/vaapi/gstvaapidecode.c:
26578 * gst/vaapi/gstvaapidownload.c:
26579 * gst/vaapi/gstvaapipluginutil.c:
26580 * gst/vaapi/gstvaapipostproc.c:
26581 * gst/vaapi/gstvaapisink.c:
26582 * gst/vaapi/gstvaapiupload.c:
26583 * gst/vaapi/gstvaapiuploader.c:
26584 * gst/vaapi/gstvaapivideobufferpool.c:
26585 * gst/vaapi/gstvaapivideoconverter_glx.c:
26586 * gst/vaapi/gstvaapivideomemory.c:
26587 * gst/vaapi/gstvaapivideometa.c:
26588 plugins: cope with new GstVaapiMiniObject objects.
26590 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26595 * tests/simple-decoder.c:
26596 * tests/test-decode.c:
26597 * tests/test-display.c:
26598 * tests/test-subpicture.c:
26599 * tests/test-surfaces.c:
26600 * tests/test-textures.c:
26601 * tests/test-windows.c:
26602 tests: cope with new GstVaapiMiniObject objects.
26604 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26606 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26607 display: fix set_synchronous() to lock display.
26609 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26611 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26612 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26613 videopool: simplify creation of video objects pool.
26615 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26617 * gst-libs/gst/vaapi/gstvaapiobject.c:
26618 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26619 * gst-libs/gst/vaapi/gstvaapitypes.h:
26620 libs: simplify GstVaapiID definitions.
26621 Make GstVaapiID a gsize instead of guessing an underlying integer large
26622 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26623 this is plain zero and that it is no longer passed as varargs.
26625 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26627 * gst-libs/gst/vaapi/Makefile.am:
26628 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26629 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26630 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26631 * gst-libs/gst/vaapi/gstvaapivalue.c:
26632 * gst-libs/gst/vaapi/gstvaapivalue.h:
26633 libs: drop obsolete function helpers and objects.
26634 Drop obsolete GstVaapiID related function helpers for passing them as
26637 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26639 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26640 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26641 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26642 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26643 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26644 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26645 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26646 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26647 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26648 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26649 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26650 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26651 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26652 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26653 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26654 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26655 * gst-libs/gst/vaapi/gstvaapiobject.c:
26656 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26657 libs: use GstVaapiMiniObject for display objects.
26659 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26661 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26662 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26663 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26664 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26665 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26666 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26667 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26668 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26670 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26671 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26672 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26673 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26674 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26675 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26676 libs: use GstVaapiMiniObject for video decoders.
26677 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26678 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26679 helper function to let the user add a callback to a function triggered
26680 whenever the codec state (e.g. caps) changes.
26682 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26684 * docs/reference/libs/libs-sections.txt:
26685 * gst-libs/gst/vaapi/Makefile.am:
26686 * gst-libs/gst/vaapi/gstvaapicontext.c:
26687 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26688 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26689 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26690 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26691 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26692 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26693 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26694 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26695 libs: use GstVaapiMiniObject for video object pools.
26696 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26697 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26698 no longer used for a long time. Make object allocators static, i.e.
26699 local to the shared library.
26701 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26703 * gst-libs/gst/vaapi/gstvaapitexture.c:
26704 * gst-libs/gst/vaapi/gstvaapitexture.h:
26705 libs: use GstVaapiObject for texture objects.
26707 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26709 * gst-libs/gst/vaapi/Makefile.am:
26710 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26711 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26712 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26713 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26714 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26715 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26716 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26717 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26718 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26719 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26720 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26721 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26722 libs: use GstVaapiObject for window objects.
26724 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26726 * gst-libs/gst/vaapi/gstvaapicontext.c:
26727 * gst-libs/gst/vaapi/gstvaapicontext.h:
26728 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26729 * gst-libs/gst/vaapi/gstvaapiimage.c:
26730 * gst-libs/gst/vaapi/gstvaapiimage.h:
26731 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26732 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26733 * gst-libs/gst/vaapi/gstvaapisurface.c:
26734 * gst-libs/gst/vaapi/gstvaapisurface.h:
26735 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26736 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26737 libs: use GstVaapiObject for VA objects.
26739 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26741 * gst-libs/gst/vaapi/Makefile.am:
26742 * gst-libs/gst/vaapi/gstvaapiobject.c:
26743 * gst-libs/gst/vaapi/gstvaapiobject.h:
26744 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26745 Port GstVaapiObject to GstVaapiMiniObject.
26747 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26749 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26750 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26751 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26752 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26753 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26754 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26755 libs: refine GstVaapiMiniObject.
26756 Drop support for user-defined data since this capability was not used
26757 so far and GstVaapiMiniObject represents the smallest reference counted
26758 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26759 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26760 is also possible to further simplify the layout of the object. i.e. merge
26761 GstVaapiMiniObjectBase into GstVaapiMiniObject.
26763 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26765 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26766 decoder: update picture size from the bitstream.
26767 Propagate the picture size from the bitstream to the GstVaapiDecoder,
26768 and subsequent user who installed a signal on notify::caps. This fixes
26769 decoding of TS streams when the demuxer failed to extract the required
26772 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26774 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26775 decoder: fix raw decoding mode.
26776 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26777 surface proxy to the caller.
26779 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26781 * docs/reference/libs/libs-sections.txt:
26782 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26783 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26784 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26785 * gst/vaapi/gstvaapidecode.c:
26786 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26787 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26788 wait for a frame to be decoded, until the specified timeout in microseconds,
26789 prior to returning to the caller.
26790 This is a fix to performance regression from 851cc0, whereby the vaapidecode
26791 loop executed on the srcpad task was called to often, thus starving all CPU
26794 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26797 Bump version for development.
26799 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26805 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26810 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26812 * gst/vaapi/gstvaapidecode.c:
26813 vaapidecode: rework heuristics to detect decode timeout.
26814 Rework heuristics to detect when downstream element ran into errors,
26815 and thus failing to release any VA surface in due time for the current
26816 frame to get decoded. In particular, recalibrate the render time base
26817 when the first frame gets submitted downstream, or when there is no
26818 timestamp that could be inferred.
26820 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26822 * gst-libs/gst/vaapi/gstcompat.h:
26823 * gst/vaapi/gstvaapidecode.c:
26824 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26825 Rework GstVideoDecoder::handle_frame() to decode the current frame,
26826 while possibly waiting for a free surface, and separately submit all
26827 decoded frames from a task. This makes it possible to pop and render
26828 decoded frames as soon as possible.
26830 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26832 * gst/vaapi/gstvaapidecode.c:
26833 * gst/vaapi/gstvaapidownload.c:
26834 * gst/vaapi/gstvaapisink.c:
26835 * gst/vaapi/gstvaapiupload.c:
26836 plugins: use gst_object_unref() wherever applicable.
26837 Use gst_object_unref() wherever applicable, e.g. objects derived from
26838 GstElement, GstVideoPool, etc.
26840 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26842 * docs/reference/plugins/plugins-docs.xml.in:
26843 * docs/reference/plugins/plugins-sections.txt:
26844 * docs/reference/plugins/plugins.types:
26845 docs: drop obsolete plug-ins.
26846 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26847 i.e. vaapiupload and vaapidownload are no longer the recommended
26850 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26852 * debian.upstream/rules:
26853 debian: fix build of GStreamer 0.10 packages.
26854 Fix build of Debian packages to scan the actual GStreamer API version
26855 from the generated changelog file.
26857 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26859 * gst/vaapi/gstvaapipostproc.c:
26860 vaapipostproc: minor clean-ups.
26861 Use g_clear_object() wherever appropriate and remove dead-code.
26863 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26865 * gst/vaapi/gstvaapipostproc.c:
26866 vaapipostproc: fix reference counting buf for passthrough mode.
26867 Fix reference counting bug for passthrough mode, whereby the input buffer
26868 was propagated as is downstream through gst_pad_push() without increasing
26869 its reference count before. The was a problem when gst_pad_push() returns
26870 an error and we further decrease the reference count of the input buffer.
26872 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26874 * gst-libs/gst/vaapi/gstcompat.h:
26875 * gst/vaapi/Makefile.am:
26876 * gst/vaapi/gstvaapi.c:
26877 * gst/vaapi/gstvaapidecode.c:
26878 * gst/vaapi/gstvaapipluginutil.h:
26879 * gst/vaapi/gstvaapipostproc.c:
26880 vaapipostproc: port to GStreamer 1.0.
26881 Add support for interlaced streams with GStreamer 1.0 too. Basically,
26882 this enables vaapipostproc, though it is not auto-plugged yet. We also
26883 make sure to reply to CAPS queries, and happily handle CAPS events.
26885 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26887 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26888 decoder: fix GstVideoCodecFrame flags for interlaced contents.
26889 Fix support for interlaced contents with GStreamer 0.10. In particular,
26890 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26892 This is a regression from commit 87e5717.
26894 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26896 * gst-libs/gst/vaapi/Makefile.am:
26897 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26898 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26899 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26900 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26901 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26902 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26903 structure was only useful to parsing and a proper GstvaapiDecoderFrame
26904 instance will be created instead.
26906 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26908 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26909 decoder: export presentation timestamp for raw decoding mode.
26910 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26911 held any information about the expected presentation timestamp, frame
26912 duration or additional flags like interlaced or top-field-first.
26914 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26916 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26917 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26918 decoder: use new GstVaapiSurfaceProxy utility functions.
26919 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26920 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26921 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26922 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26923 than gst_vaapi_picture_output().
26925 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26927 * docs/reference/libs/libs-sections.txt:
26928 * gst-libs/gst/vaapi/Makefile.am:
26929 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26930 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26931 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26932 surfaceproxy: add more attributes for raw decoding modes.
26933 Add more attributes for raw decoding modes, i.e. directly through the
26934 libgstvaapi helper library. In particular, add presentation timestamp,
26935 duration and a couple of flags (interlaced, TFF, RFF, one-field).
26937 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26939 * docs/reference/libs/libs-sections.txt:
26940 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26941 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26942 * gst/vaapi/gstvaapidecode.c:
26943 * tests/simple-decoder.c:
26944 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26945 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26946 to call some user-provided function when the surface proxy is released.
26948 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26951 * gst-libs/gst/vaapi/Makefile.am:
26952 build: link libgstvaapi-glx-1.0.so against libdl.
26953 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26954 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26956 https://bugzilla.gnome.org/show_bug.cgi?id=698046
26957 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26959 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26961 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26962 decoder: fix gst_vaapi_decoder_get_codec_state().
26963 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26964 supposed to make GstVaapiDecoder own the return GstVideoCodecState
26965 object. Only comment was updated, not the actual code.
26967 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26969 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26970 * gst/vaapi/gstvaapidecode.c:
26971 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26972 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26973 i.e. make the GstVaapiDecoder object own the return state so that callers
26974 that want an extra reference to it would just gst_video_codec_state_ref()
26975 it before usage. This aligns the behaviour with what we had before with
26976 gst_vaapi_decoder_get_caps().
26977 This is an ABI incompatible change, library major version was bumped from
26978 previous release (0.5.2).
26980 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26982 * gst/vaapi/gstvaapivideobufferpool.h:
26983 * gst/vaapi/gstvaapivideoconverter_glx.h:
26984 plugins: mark a few more functions as internal.
26985 Mark the following functions are internal, i.e. private to the vaapi plug-in:
26986 - gst_vaapi_video_buffer_pool_get_type()
26987 - gst_vaapi_video_converter_glx_get_type()
26988 - gst_vaapi_video_converter_glx_new()
26990 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26992 * gst/vaapi/gstvaapivideobuffer.c:
26993 plugins: implement GstSurfaceMeta API.
26994 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
26995 an unstable/deprecated API, this makes it possible to support Clutter
26996 sink with minimal changes. Tested against clutter-gst 1.9.92.
26998 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27000 * gst/vaapi/gstvaapisink.c:
27001 vaapisink: optimize GstVideoOverlayInterface::expose().
27002 When render-mode is "overlay", then it is not really useful to peek into
27003 the GstBaseSink::last_buffer, since we have our own video_buffer already
27004 recorded and maintained into GstVaapiSink.
27006 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27008 * gst/vaapi/gstvaapisink.c:
27009 vaapisink: fix memory leak of GstSample objects.
27010 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
27011 This also fixes extra unreferencing of the underlying GstBuffer in the common
27012 path afterwards (for both 0.10 or 1.0).
27014 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27016 * gst-libs/gst/vaapi/gstcompat.h:
27017 * gst/vaapi/gstvaapi.c:
27018 plugins: fix description for gst-inspect.
27019 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
27020 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
27021 incorrectly uses #name for creating the plug-in name, instead of using macro
27022 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
27024 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27028 Update build requirements for GStreamer 1.0.x support. Add section for
27029 ways to report bugs.
27031 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27036 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27038 * gst-libs/gst/vaapi/Makefile.am:
27039 * gst/vaapi/Makefile.am:
27040 Fix make dist to include all source files, in any case.
27041 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
27042 sure to include all source files in either case while generating source
27045 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27048 Bump library major version.
27049 Bump library major version, while preserving a major version of 0 for
27050 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
27051 0.10 based librarieS.
27053 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27055 * gst/vaapi/gstvaapivideomemory.c:
27056 * gst/vaapi/gstvaapivideomemory.h:
27057 plugins: implement direct-rendering mode for raw YUV buffer uploads.
27058 Allow direct-rendering (writes) into target VA surfaces.
27060 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27062 * gst/vaapi/gstvaapivideobufferpool.c:
27063 * gst/vaapi/gstvaapivideomemory.c:
27064 * gst/vaapi/gstvaapivideomemory.h:
27065 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
27066 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
27067 the last component is unmapped. Downloads are not supported yet. The aim
27068 was to first support SW decoding + HW accelerated rendering (vaapisink).
27071 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27073 * gst/vaapi/gstvaapidecode.c:
27074 vaapidecode: submit all decoded frames before decoding a new one.
27075 Make sure to purge all pending frames that were already decoded prior
27076 to decoding a new one. This helps release VA surfaces as early as
27079 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27081 * gst/vaapi/gstvaapidecode.c:
27082 vaapidecode: reply to CAPS queries.
27083 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
27084 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
27085 This fixes fallback to SW decoding if no HW decoder is available.
27087 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27089 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27090 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27091 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27092 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27093 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27094 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27095 decoder: fix unpaired GstBuffer map/unmaps.
27096 This possibly fixes a few memory leaks along the way.
27098 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27101 * gst-libs/gst/vaapi/gstcompat.h:
27102 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27103 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27104 * gst/vaapi/Makefile.am:
27105 * gst/vaapi/gstvaapi.c:
27106 * gst/vaapi/gstvaapidecode.c:
27107 * gst/vaapi/gstvaapisink.c:
27108 * gst/vaapi/gstvaapisink.h:
27109 * gst/vaapi/gstvaapiuploader.c:
27111 Allow build against either GStreamer API (0.10 or 1.0).
27112 Introduce a new configure option --with-gstreamer-api that determines
27113 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
27114 Also integrate more compatibility glue into gstcompat.h and plugins.
27116 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27118 * gst/vaapi/gstvaapidecode.c:
27119 * gst/vaapi/gstvaapisink.c:
27120 * gst/vaapi/gstvaapisink.h:
27121 plugins: use new video buffer pools.
27122 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
27123 GstBaseSink::propose_allocation() to expose that pool to upstream
27124 elements; and also implement GstVideoDecoder::decide_allocation() to
27125 actually use that pool (from downstream), if any, or create one.
27126 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27128 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27130 * gst/vaapi/Makefile.am:
27131 * gst/vaapi/gstvaapivideobufferpool.c:
27132 * gst/vaapi/gstvaapivideobufferpool.h:
27133 * gst/vaapi/gstvaapivideomemory.c:
27134 * gst/vaapi/gstvaapivideomemory.h:
27135 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27136 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27137 object currently holds a reference to GstVaapiVideoMeta.
27138 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27140 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27142 * gst/vaapi/gstvaapivideometa.c:
27143 * gst/vaapi/gstvaapivideometa.h:
27144 plugins: allow copies of GstVaapiVideoMeta objects.
27145 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27146 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27147 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27150 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27152 * gst/vaapi/gstvaapivideometa.c:
27153 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27154 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27155 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27156 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27159 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27161 * gst/vaapi/Makefile.am:
27162 * gst/vaapi/gstvaapi.c:
27163 * gst/vaapi/gstvaapidecode.c:
27164 * gst/vaapi/gstvaapidownload.c:
27165 * gst/vaapi/gstvaapipluginutil.c:
27166 * gst/vaapi/gstvaapipostproc.c:
27167 * gst/vaapi/gstvaapisink.c:
27168 * gst/vaapi/gstvaapiupload.c:
27169 * gst/vaapi/gstvaapiuploader.c:
27170 * gst/vaapi/gstvaapivideobuffer.c:
27171 * gst/vaapi/gstvaapivideoconverter_glx.c:
27172 * gst/vaapi/gstvaapivideometa.c:
27173 * gst/vaapi/gstvaapivideometa.h:
27174 plugins: initial port to GStreamer 1.0.
27175 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27176 is rather minimalistic so that to test the basic functionality.
27177 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27178 needs polishing wrt. to GStreamer 1.x functionality and the former are
27179 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27180 which are yet to be implemented.
27181 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27183 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27185 * gst-libs/gst/vaapi/gstcompat.h:
27188 * tests/simple-decoder.c:
27189 * tests/test-subpicture.c:
27190 tests: add support for GStreamer 1.0.
27192 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27195 * gst-libs/gst/vaapi/gstcompat.h:
27196 * gst-libs/gst/vaapi/gstvaapicontext.c:
27197 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27198 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27199 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27200 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27201 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27202 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27203 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27204 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27205 * gst-libs/gst/vaapi/gstvaapiimage.c:
27206 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27207 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27208 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27209 * gst-libs/gst/vaapi/gstvaapisurface.h:
27210 Add initial support for GStreamer 1.0.
27211 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27212 core decoding library. The changes are kept rather minimal here so that
27213 the library retains as little dependency as possible on core GStreamer
27215 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27217 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27219 * gst/vaapi/gstvaapisink.c:
27220 vaapisink: improve check for raw YUV format mode.
27221 Improve check for raw YUV format modes by avoiding checks against strings
27222 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27223 GstBaseSink::set_caps() is called first and if VA surface format mode is
27224 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27225 called before set_caps(), then we just make a full check. This one is
27226 pretty rare though, e.g. it usually happens once for custom pipelines.
27228 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27230 * gst/vaapi/gstvaapipluginutil.c:
27231 plugins: don't fail if there is no overlay composition to apply.
27232 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27233 was found. i.e. return success (TRUE). This was harmless though extra
27234 debug messages are not nice.
27235 This is a regression introduced by commit 95b8659.
27237 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27239 * gst/vaapi/gstvaapidecode.c:
27240 * gst/vaapi/gstvaapidecode.h:
27241 vaapidecode: expose the exact set of supported HW decoders.
27242 Don't return static caps that don't mean anything for the underlying codecs
27243 that are actually supported for decoding. i.e. always allocate a VA display
27244 and retrieve the exact set of HW decoders available. That VA display may be
27245 re-used later on during negotiation through GstVideoContext "prepare-context".
27246 This fixes fallback to SW decoding if no HW decoder is available.
27248 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27250 * docs/reference/libs/libs-sections.txt:
27251 * gst-libs/gst/vaapi/gstvaapicontext.c:
27252 * gst-libs/gst/vaapi/gstvaapicontext.h:
27253 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27254 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27255 decoder: drop obsolete functions.
27256 Drop the following functions that are now obsolete:
27257 - gst_vaapi_context_get_surface()
27258 - gst_vaapi_context_put_surface()
27259 - gst_vaapi_context_find_surface_by_id()
27260 - gst_vaapi_surface_proxy_new()
27261 - gst_vaapi_surface_proxy_get_context()
27262 - gst_vaapi_surface_proxy_set_context()
27263 - gst_vaapi_surface_proxy_set_surface()
27264 This is an API change.
27266 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27268 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27269 decoder: delegate surface size check to VA context reset.
27270 Now that the surface pool is reference counted in the surface proxy wrapper,
27271 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27272 Besides, this check is already performed in gst_vaapi_context_reset_full().
27274 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27276 * docs/reference/libs/libs-sections.txt:
27277 * gst-libs/gst/vaapi/gstvaapicontext.c:
27278 * gst-libs/gst/vaapi/gstvaapicontext.h:
27279 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27280 * gst-libs/gst/vaapi/gstvaapisurface.h:
27281 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27282 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27283 decoder: simplify acquisition/release of spare surface.
27284 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27285 proxy from the context surface pool. This change also makes sure to retain
27286 the parent surface pool in the proxy.
27287 Besides, it was also totally useless to attach/detach parent context to
27288 VA surface each time we acquire/release it. Since the whole context owns
27289 all associated VA surfaces, we can mark this as such only once and for all.
27291 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27294 Bump version for development.
27296 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27302 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27307 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27309 * gst/vaapi/gstvaapipluginutil.c:
27310 * gst/vaapi/gstvaapisink.c:
27311 plugins: fix usage of gst_vaapi_reply_to_query().
27312 Make gst_vaapi_reply_to_query() first check whether the query argument
27313 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27314 Then, make sure vaapisink propagates the query to the parent class if
27315 it is not a video-context query.
27317 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27319 * gst/vaapi/gstvaapivideobuffer.c:
27320 * gst/vaapi/gstvaapivideobuffer.h:
27321 plugins: streamline video buffers.
27322 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27323 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27324 gst_vaapi_video_buffer_get_meta().
27326 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27328 * docs/reference/libs/libs-sections.txt:
27329 * gst-libs/gst/vaapi/Makefile.am:
27330 * gst/vaapi/Makefile.am:
27331 * gst/vaapi/gstvaapidecode.c:
27332 * gst/vaapi/gstvaapidownload.c:
27333 * gst/vaapi/gstvaapipostproc.c:
27334 * gst/vaapi/gstvaapisink.c:
27335 * gst/vaapi/gstvaapiupload.c:
27336 * gst/vaapi/gstvaapiuploader.c:
27337 * gst/vaapi/gstvaapivideobuffer.h:
27338 * gst/vaapi/gstvaapivideoconverter_glx.c:
27339 * gst/vaapi/gstvaapivideometa.c:
27340 * gst/vaapi/gstvaapivideometa.h:
27341 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27342 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27343 actual plugin elements. That's only useful there. Also inline reference
27344 counting code from GstVaapiMiniObject.
27346 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27348 * gst/vaapi/Makefile.am:
27349 * gst/vaapi/gstvaapidecode.c:
27350 * gst/vaapi/gstvaapidownload.c:
27351 * gst/vaapi/gstvaapipluginbuffer.c:
27352 * gst/vaapi/gstvaapipluginbuffer.h:
27353 * gst/vaapi/gstvaapipostproc.c:
27354 * gst/vaapi/gstvaapiupload.c:
27355 * gst/vaapi/gstvaapiuploader.c:
27356 * gst/vaapi/gstvaapivideobuffer.c:
27357 * gst/vaapi/gstvaapivideobuffer.h:
27358 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27359 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27360 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27362 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27364 * docs/reference/libs/libs-sections.txt:
27365 * docs/reference/libs/libs.core.types:
27366 * gst-libs/gst/vaapi/Makefile.am:
27367 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27368 * gst/vaapi/Makefile.am:
27369 * gst/vaapi/gstvaapidownload.h:
27370 * gst/vaapi/gstvaapipluginbuffer.c:
27371 * gst/vaapi/gstvaapipostproc.h:
27372 * gst/vaapi/gstvaapivideobuffer.c:
27373 * gst/vaapi/gstvaapivideobuffer.h:
27374 * gst/vaapi/gstvaapivideoconverter_glx.h:
27375 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27376 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27377 actual plugin elements. That's only useful there.
27379 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27381 * gst/vaapi/gstvaapipluginutil.c:
27382 * gst/vaapi/gstvaapipluginutil.h:
27383 * gst/vaapi/gstvaapisink.c:
27384 * gst/vaapi/gstvaapivideoconverter_glx.c:
27385 plugins: use common helper function to apply compositions.
27386 Use common gst_vaapi_apply_composition() helper function to apply compositions
27387 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27389 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27391 * gst-libs/gst/vaapi/Makefile.am:
27392 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27393 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27394 * gst/vaapi/Makefile.am:
27395 * gst/vaapi/gstvaapipluginbuffer.c:
27396 * gst/vaapi/gstvaapivideoconverter_glx.c:
27397 * gst/vaapi/gstvaapivideoconverter_glx.h:
27398 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27399 Make sure libgstvaapi core decoding library doesn't include un-needed
27400 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27401 Besides, even if the vaapisink element is not used, we are bound to have
27402 a correctly populated GstSurfaceBuffer from vaapidecode.
27403 Also clean-up the file along the way.
27405 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27407 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27408 vc1: fix use of possibly uninitialized variable.
27409 In decode_codec_data(), force initialization of format to zero so that
27410 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27411 fields, thus making it possible to gracefully fail in this case.
27413 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27415 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27416 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27418 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27420 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27421 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27422 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27423 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27424 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27425 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27426 decoder: sanitize codec-data decoding.
27427 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27428 codec-data in the decoder sub-class. Provide a common shared helper
27429 function to do the actual work and delegating further to the sub-class.
27431 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27433 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27434 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27435 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27436 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27437 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27438 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27439 useless nowadays as creating sub-buffers doesn't bring any value. It
27440 actually means more memory allocations. We can't do without that in
27441 JPEG and MPEG-4:2 decoders.
27443 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27445 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27446 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27447 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27448 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27449 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27450 decoder: sanitize uses of codec frame input buffer (cosmetics).
27451 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27454 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27456 * gst/vaapi/gstvaapisink.c:
27457 vaapisink: add helper function to apply a composition buffer.
27458 Simplify application of a composition buffer to a GstVaapiSurface, and
27459 all its peers, until that function is eventually promoted to libgstvaapi.
27461 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27463 * gst/vaapi/gstvaapisink.c:
27464 vaapisink: fix support for raw YUV buffers.
27465 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27466 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27467 However, we previously assumed in that case that it was a "native" VA buffer,
27468 thus not calling into GstVaapiUploader::process().
27470 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27472 * gst-libs/gst/vaapi/gstcompat.h:
27473 * gst/vaapi/gstvaapidecode.c:
27474 * gst/vaapi/gstvaapidownload.c:
27475 * gst/vaapi/gstvaapipostproc.c:
27476 * gst/vaapi/gstvaapisink.c:
27477 * gst/vaapi/gstvaapiupload.c:
27478 plugins: use modern GstElement metadata information.
27479 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27480 basically is the same as gst_element_class_set_details_simple() in
27481 GStreamer 0.10 context.
27483 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27485 * gst/vaapi/gstvaapidecode.c:
27486 * gst/vaapi/gstvaapidownload.c:
27487 * gst/vaapi/gstvaapipostproc.c:
27488 * gst/vaapi/gstvaapisink.c:
27489 * gst/vaapi/gstvaapiupload.c:
27490 plugins: move up interfaces (cosmetics).
27491 Move GstImplementsInterface and GstVideoContext support functions up
27492 so that to keep a clear separation between the plugin element and its
27495 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27497 * gst/vaapi/gstvaapisink.c:
27498 * gst/vaapi/gstvaapiuploader.c:
27499 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27500 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27501 Also use the newly added gst_vaapi_image_format_from_structure() helper
27502 in GstVaapiUploader::ensure_allowed_caps().
27504 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27506 * gst/vaapi/gstvaapipluginbuffer.c:
27507 plugins: fix creation of video buffer from another source buffer.
27508 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27509 buffer video meta since it would be unreference'd from the get_buffer()
27510 helper function. For other cases, we still use (steal) the newly created
27513 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27515 * gst/vaapi/gstvaapipluginbuffer.c:
27516 * gst/vaapi/gstvaapipluginutil.c:
27517 plugins: include "sysdeps.h" header instead of "config.h".
27519 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27521 * gst-libs/gst/vaapi/gstcompat.h:
27523 tests: modernize GstTypeFind functions.
27524 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27525 exactly correspond to the expected behaviour.
27527 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27531 * tests/test-decode.c:
27532 * tests/test-display.c:
27533 * tests/test-h264.c:
27534 * tests/test-h264.h:
27535 * tests/test-jpeg.c:
27536 * tests/test-jpeg.h:
27537 * tests/test-mpeg2.c:
27538 * tests/test-mpeg2.h:
27539 * tests/test-mpeg4.c:
27540 * tests/test-mpeg4.h:
27541 * tests/test-textures.c:
27542 * tests/test-vc1.c:
27543 * tests/test-vc1.h:
27544 * tests/test-windows.c:
27545 tests: fix license templates.
27547 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27549 * tests/test-display.c:
27550 tests: use gst_vaapi_image_format_from_structure() in test-display.
27551 Use gst_vaapi_image_format_from_structure() helper in test-display and
27552 then extract a VAImageFormat from it instead of relying on GstCaps for
27553 YUV and RGB formats.
27555 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27560 * tests/test-decode.c:
27561 * tests/test-display.c:
27562 * tests/test-subpicture.c:
27563 * tests/test-textures.c:
27564 * tests/test-windows.c:
27565 tests: include "sysdeps.h" header instead of "config.h".
27567 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27569 * gst-libs/gst/vaapi/gstcompat.h:
27570 * gst-libs/gst/vaapi/gstvaapicontext.c:
27571 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27572 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27573 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27574 function with GStreamer 0.10 compatible semantics, or that tries to
27575 approach the current meaning. Basically, this is also just about moving
27576 the helper to gstcompat.h.
27578 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27580 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27581 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27582 image: add gst_vaapi_image_format_from_structure() helper.
27583 Add helper function to convert video formats from a GstStructure to a
27584 plain GstVaapiImageFormat.
27586 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27588 * gst-libs/gst/vaapi/Makefile.am:
27589 * gst-libs/gst/vaapi/gstcompat.h:
27590 * gst-libs/gst/vaapi/sysdeps.h:
27591 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27593 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27595 * gst-libs/gst/vaapi/sysdeps.h:
27596 sysdeps: add more standard includes by default.
27598 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27601 configure: improve GStreamer API version checks.
27603 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27606 * debian.upstream/Makefile.am:
27607 * debian.upstream/changelog.in:
27608 * debian.upstream/control.in:
27609 * debian.upstream/gstreamer-vaapi-doc.install.in:
27610 * debian.upstream/libgstvaapi-dev.install.in:
27611 * debian.upstream/libgstvaapi-drm.install.in:
27612 * debian.upstream/libgstvaapi-glx.install.in:
27613 * debian.upstream/libgstvaapi-wayland.install.in:
27614 * debian.upstream/libgstvaapi-x11.install.in:
27615 * debian.upstream/libgstvaapi.install.in:
27616 * docs/reference/libs/Makefile.am:
27617 * docs/reference/libs/libs-docs.xml.in:
27618 * docs/reference/plugins/Makefile.am:
27619 * docs/reference/plugins/plugins-docs.xml.in:
27620 * gst-libs/gst/vaapi/Makefile.am:
27621 * gst/vaapi/Makefile.am:
27622 * pkgconfig/Makefile.am:
27623 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27624 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27625 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27626 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27627 * pkgconfig/gstreamer-vaapi.pc.in:
27628 * tests/Makefile.am:
27629 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27631 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27634 configure: improve check for H.264 codecparser.
27636 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27638 * gst/vaapi/gstvaapiuploader.c:
27639 vaapiupload: fix illegal write in ensure_image().
27640 Fix ensure_image() to only zero-initialize the first line of each plane.
27641 Properly initializing each plane to their full vertical resolution would
27642 require to actually compute it based on the image format.
27643 In particular, for NV12 images, the UV plane has half vertical resolution
27644 vs. the Y plane. So using the full image height to initialize the UV plane
27645 will obviously lead to a buffer overflow. Likewise for other YUV format.
27646 Since ensure_image() is only a helper function to initialize something,
27647 and not necessarily the whole thing, it is fine to initializ the first
27648 line only. Besides, the target surface is not rendered either.
27649 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27651 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27653 * gst-libs/gst/codecparsers/Makefile.am:
27654 * gst-libs/gst/video/Makefile.am:
27655 build: fix compiling of local GstVideoDecoder and codecparsers.
27656 Generated source files were missing a dependency on the complete set of
27657 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27658 to build and almost every codec parser source depends on parserutils.h.
27659 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27660 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27661 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27663 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27665 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27666 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27667 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27668 there is no pred_weight_table() that was parsed.
27669 This is a workaround for the VA intel-driver on Ivy Bridge.
27671 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27673 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27674 h264: use new profile definitions from codecparsers.
27676 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27678 * ext/codecparsers:
27679 codecparsers: update to gst-vaapi-branch commit 500bc02.
27680 500bc02 h264: add profile enums
27682 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27687 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27689 * ext/codecparsers:
27690 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27691 8957fb7 mpeg2: add helpers to convert quantization matrices
27692 07c4034 mpeg2: store quantization matrices in zigzag scan order
27694 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27696 * tests/simple-decoder.c:
27697 tests: simple-decoder: fix build on older platforms.
27698 Make simple-decoder build and execute correctly on older platforms,
27699 and more precisely older versions of glib.
27701 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27703 * gst-libs/gst/vaapi/glibcompat.h:
27704 glibcompat: add replacement for g_async_queue_timeout_pop().
27705 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27706 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27707 new data to arrive in the queue.
27709 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27711 * gst-libs/gst/vaapi/glibcompat.h:
27712 glibcompat: add replacement for g_cond_wait().
27714 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27716 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27717 mpeg2: fix decoding of 4K videos.
27718 Account for slice_vertical_position_extension when vertical_size > 2800.
27720 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27722 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27723 mpeg2: fix decoding of sequence_end().
27724 There shall be only one place to call decode_current_picture(), and this
27725 is in the end_frame() hook. The EOS unit is processed after end_frame()
27726 so this means we cannot have a valid picture to decode/output at this
27729 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27731 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27732 mpeg2: improve robustness when packets are missing.
27733 Improve robustness when some expected packets where not received yet
27734 or that were not correctly decoded. For example, don't try to decode
27735 a picture if there was no valid sequence or picture headers.
27737 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27739 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27740 decoder: handle decode-only frames in raw API mode.
27741 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27742 surface proxy, i.e. with a valid VA surface. This means that any frame
27743 marked as decode-only is simply skipped.
27745 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27747 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27748 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27749 decoder: allow frames to be dropped.
27750 If the decoder was not able to decode a frame because insufficient
27751 information was available, e.g. missing sequence or picture header,
27752 then allow the frame to be gracefully dropped without generating
27754 It is also possible that a frame is not meant to be displayed but
27755 only used as a reference, so dropping that frame is also a valid
27756 operation since GstVideoDecoder base class has extra references to
27757 that GstVideoCodecFrame that needs to be released.
27759 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27761 * gst/vaapi/gstvaapidecode.c:
27762 vaapidecode: handle decode-only frames.
27763 Decode-only frames may not have a valid surface proxy. So, simply discard
27764 them gracefully, i.e. don't create meta data information. GstVideoDecoder
27765 base class will properly handle this case and won't try to push any buffer
27766 to downstream elements.
27768 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27770 * gst/vaapi/gstvaapidecode.c:
27771 vaapidecode: add support for post-seek semantics reset.
27772 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27773 and the creation of a new VA decoder.
27774 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27776 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27779 Bump version for development.
27781 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27787 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27789 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27790 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27792 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27794 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27795 decoder: fix documentation for GstVaapiDecoderFrame.
27796 Drop superfluous reference to prev_slice member.
27798 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27800 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27801 decoder: assume current frame is complete at end-of-stream.
27802 Assume we got a complete frame when the end-of-stream is reached and that
27803 the current codec frame contains at least one slice data unit.
27805 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27809 * debian.upstream/copyright:
27810 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27811 * gst-libs/gst/vaapi/gstvaapicontext.c:
27812 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27813 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27814 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27815 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27816 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27817 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27818 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27819 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27820 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27821 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27822 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27823 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27824 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27825 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27826 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27827 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27828 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27829 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27830 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27831 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27832 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27833 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27834 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27835 * gst-libs/gst/vaapi/gstvaapisurface.c:
27836 * gst-libs/gst/vaapi/gstvaapiutils.c:
27837 * gst-libs/gst/vaapi/gstvaapiutils.h:
27838 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27839 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27840 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27841 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27842 * gst-libs/gst/vaapi/sysdeps.h:
27843 * gst/vaapi/gstvaapidecode.c:
27844 * gst/vaapi/gstvaapidownload.c:
27845 * gst/vaapi/gstvaapipluginbuffer.c:
27846 * gst/vaapi/gstvaapipluginbuffer.h:
27847 * gst/vaapi/gstvaapipostproc.c:
27848 * gst/vaapi/gstvaapisink.c:
27849 * gst/vaapi/gstvaapiupload.c:
27850 * gst/vaapi/gstvaapiuploader.c:
27852 * tests/test-decode.c:
27853 * tests/test-subpicture.c:
27854 legal: fix year for some copyright notices (2013).
27856 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27858 * gst-libs/gst/vaapi/gstvaapicontext.h:
27859 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27860 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27861 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27862 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27863 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27864 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27865 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27866 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27867 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27868 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27869 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27870 * gst-libs/gst/vaapi/gstvaapisurface.c:
27871 * gst-libs/gst/vaapi/gstvaapisurface.h:
27872 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27873 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27874 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27875 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27876 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27877 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27878 * gst/vaapi/gstvaapidecode.h:
27879 * gst/vaapi/gstvaapisink.h:
27880 * tests/test-subpicture.c:
27881 legal: fix year for some copyright notices (2012).
27883 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27885 * gst-libs/gst/vaapi/gstvaapicompat.h:
27886 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27887 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27888 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27889 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27890 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27891 * gst-libs/gst/vaapi/gstvaapiobject.c:
27892 * gst-libs/gst/vaapi/gstvaapiobject.h:
27893 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27894 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27895 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27896 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27897 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27898 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27899 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27900 * gst-libs/gst/vaapi/gstvaapitexture.c:
27901 * gst-libs/gst/vaapi/gstvaapitexture.h:
27902 * gst-libs/gst/vaapi/gstvaapitypes.h:
27903 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27904 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27905 * gst-libs/gst/vaapi/gstvaapivalue.c:
27906 * gst-libs/gst/vaapi/gstvaapivalue.h:
27907 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27908 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27909 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27910 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27911 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27912 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27913 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27914 * tests/test-display.c:
27915 * tests/test-surfaces.c:
27916 * tests/test-windows.c:
27917 legal: add Intel copyright on modified files.
27919 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27924 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27926 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27927 wayland: use a local event queue to avoid lock contention.
27928 This improves performance when rendering several surfaces from within
27929 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27931 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27933 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27934 wayland: fix thread-safe issues.
27935 The Wayland API is not fully thread-safe and client applications shall
27936 perform locking themselves on key functions. Besides, make sure to
27937 release the lock if the _render() function fails.
27939 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27941 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27942 wayland: really wait until the pending redraw completed.
27943 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27944 the completion of the redraw request. Use it in _render() function to
27945 actually block until the previous draw request is completed.
27947 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27949 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27950 wayland: fix frame_redraw callback.
27951 The redraw callback needs to be attached to the surface prior to the
27952 commit. Otherwise, the callback notifies the next surface repaint,
27953 which is not the desired behaviour. i.e. we want to be notified for
27954 the surface we have just filled.
27955 Another isse was the redraw_pending was reset before the actual completion
27956 of the frame redraw callback function, thus causing concurrency issues.
27957 e.g. the callback could have been called again, but with a NULL buffer.
27959 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27961 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27962 wayland: fix display sharing.
27963 When the Wayland display is shared, we still have to create our own local
27964 shell and compositor objects, since they are not propagated from the cache.
27965 Likewise, we also need to determine the display size or vaapisink would
27966 fail to account for the display aspect ratio, and will try to create a 0x0
27969 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27971 * ext/codecparsers:
27972 codecparsers: update to gst-vaapi-branch commit 21a098e.
27973 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27974 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27976 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27978 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27979 vc1: handle frames with multiple slices.
27981 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27983 * ext/codecparsers:
27984 codecparsers: update to gst-vaapi-branch commit 3fba492.
27985 3fba492 vc1: add API to parse slice headers
27987 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27989 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27990 vc1: handle CLOSED_ENTRY.
27991 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
27992 lack a reference anchor picture, these B pictures shall be discarded.
27993 https://bugs.freedesktop.org/show_bug.cgi?id=59505
27995 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27997 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27998 vc1: cope with latest codecparser changes.
27999 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
28000 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
28001 the actual value of DQPROFILE.
28003 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28005 * ext/codecparsers:
28006 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
28007 3d2c67c vc1: simplify GstVC1VopDquant structure
28009 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28011 * ext/codecparsers:
28012 codecparsers: update to gst-vaapi-branch commit 5d33da8.
28013 5d33da8 vc1: fix bitplanes decoding
28014 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
28015 0b13d2b vc1: fix calculation of ALTPQUANT
28016 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
28018 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28020 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28021 vc1: fix size of encapsulated BDU.
28022 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
28023 the size of the BDU data, starting from offset, i.e. after any start
28025 This fixes a buffer overflow during the unescaping process.
28027 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
28029 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28030 vc1: fix decoding of WMV3 videos in AVI format.
28031 The AVI demuxer (avidemux) does not set a proper "format" attribute
28032 to the generated caps. So, try to recover the video codec format from
28033 the "wmvversion" property instead.
28034 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28036 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28038 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28039 vc1: review and report errors accordingly.
28040 Use GST_ERROR() to report real errors instead of hiding them into
28043 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28045 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28046 vc1: don't create GstBuffers for all decoder units.
28047 Don't create temporary GstBuffers for all decoder units, even if they
28048 are lightweight "sub-buffers", since it is not really necessary to keep
28049 the buffer data around.
28051 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28053 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28054 vc1: implement flush() hook.
28055 Make it a simple DPB flush.
28057 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28059 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28060 vc1: implement {start,end}_frame() hooks.
28061 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28062 that to create new VA context earlier and submit VA pictures to the
28063 HW for decoding as soon as possible. i.e. don't wait for the next
28064 frame to start decoding the previous one.
28066 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28068 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28069 vc1: fix next POC for new sequence layers.
28070 Fix next POC when a new sequence layer is reached. At this point, we
28071 need to reset any previous reference picture, i.e. non B-frame.
28073 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28075 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28076 vc1: port to common GstVaapiDpb interface.
28077 Use GstVaapiDpb interface instead of maintaining our own prev and next
28078 picture pointers. While doing so, try to derive a sensible POC value.
28079 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28081 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28083 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28084 vc1: fix decode_sequence_end() to return success, not EOS.
28086 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28088 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28089 decoder: simplify gst_vaapi_decoder_get_surface().
28090 Avoid extraenous branches, i.e. immediately return with success once we
28091 have a decoded frame available.
28093 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28095 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28096 decoder: optimize and clean decode_step() up.
28097 Avoid usage of goto. Simplify decode_step() process to first accumulate all
28098 pending buffers into the GstAdapter, and then parse and decode units from
28099 that input adapter. Stop the process once a frame is fully decoded or an
28102 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28104 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28105 display: move "vaapi" debug init to libgstvaapi_init_once().
28107 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28110 * gst-libs/gst/vaapi/Makefile.am:
28111 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28112 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
28113 display: dump gstreamer-vaapi version for debugging purposes.
28115 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28117 * tests/Makefile.am:
28118 tests: simple-decoder: fix build with built-in videoutils.
28119 Fix build with built-in videoutils, i.e. when system GStreamer installation
28120 does not know about GstVideoDecoder API.
28122 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28124 * tests/simple-decoder.c:
28125 tests: simple-decoder: flush decoded frames at EOS.
28126 Flush the remaining decoded frames when an end-of-stream is reached.
28128 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28130 * tests/simple-decoder.c:
28131 tests: simple-decoder: drop use of GstVaapiVideoMeta.
28132 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28133 in libgstvaapi forever. Rather, that'd move to plugin elements at some
28136 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28138 * tests/simple-decoder.c:
28139 tests: simple-decoder: add benchmark mode.
28140 Add --benchmark option to enable benchmark mode where rendering is not
28141 synchronized with presentation timestamps of the decoded surfaces.
28143 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28145 * tests/Makefile.am:
28146 * tests/simple-decoder.c:
28147 tests: simple-decoder: honour framerate from the bitstream.
28148 Try to honour the framerate from the bitstream, or cap the playback to
28151 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28153 * tests/simple-decoder.c:
28154 tests: simple-decoder: set window size to the surface dimensions.
28155 Set the window size to the decoded surface dimensions, if the user has
28156 not requested the application to run in full-screen mode. Besides, no
28157 effort is made to preserve aspect ratio or to center the video within
28160 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28162 * tests/Makefile.am:
28163 * tests/simple-decoder.c:
28164 tests: add simple decoder application.
28165 Add simple decoder application to show off decoding capabilities from
28166 raw bitstreams, for debugging or performance evaluation purposes.
28168 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28170 * tests/Makefile.am:
28173 tests: add codec helper utils.
28174 Add helper functions to determine the codec type from a specific file
28175 or utility functions to convert from codec type to GstCaps or from
28176 codec name to codec type.
28178 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28181 tests: allow fullscreen mode.
28182 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28184 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28186 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28187 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28189 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28191 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28192 h264: handle end-of-stream NALU.
28193 Handle <end-of-stream> NAL unit to actually flush any pending picture
28196 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28198 * gst/vaapi/gstvaapidecode.c:
28199 vaapidecode: handle EOS events.
28200 Flush all decoded frames to downstream when EOS is received. This is
28201 performed by implementing GstVideoDecoder::finish() hook.
28203 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28205 * gst/vaapi/gstvaapidecode.c:
28206 vaapidecode: split gvd_handle_frame() into decode/push frames.
28207 Split GstVideoDecoder::handle_frame() implementation into two functions:
28208 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28209 for purging all decoded frames and submit them downstream.
28211 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28213 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28214 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28215 decoder: add GstVaapiDecoder::flush() hook.
28217 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28219 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28220 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28221 decoder: fix check for end-of-stream in raw API mode.
28222 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28223 if the end-of-stream was already reached at the previous iteration.
28225 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28227 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28228 decoder: make decode_step() return once the frame is decoded.
28229 Make sure we always have a free surface left to use for decoding the
28230 current frame. This means that decode_step() has to return once a frame
28231 gets decoded. If the current adapter contains more buffers with valid
28232 frames, they will get parsed and decoded on subsequent iterations.
28234 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28236 * ext/codecparsers:
28237 codecparsers: update to gst-vaapi-branch commit b47983a.
28238 8840c2d h264: zero-initialize SPS VUI parameters
28240 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28243 Bump version for development.
28245 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28251 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28253 * docs/reference/libs/libs-docs.xml.in:
28254 * docs/reference/libs/libs-sections.txt:
28255 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28256 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28257 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28258 docs: expose new interfaces.
28260 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28265 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28267 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28268 dpb: cosmetics (clean-ups).
28270 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28272 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28273 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28274 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28275 dpb: port to GstVaapiMiniObject.
28277 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28279 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28280 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28281 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28282 dpb: drop GstVaapiDpb2 interface, keep only one class.
28283 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28284 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28285 around the specified picture POC.
28287 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28289 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28290 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28291 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28292 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28293 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28294 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28295 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28297 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28300 Bump version for pre-release.
28302 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28307 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28310 * gst-libs/gst/vaapi/gstvaapicontext.c:
28311 * gst-libs/gst/vaapi/gstvaapiutils.c:
28312 * gst-libs/gst/vaapi/sysdeps.h:
28313 * tests/test-subpicture.c:
28314 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28315 Check for global-alpha support in GstVideoOverlayComposition API.
28316 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28318 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28320 * tests/test-subpicture.c:
28321 tests: add support for global-alpha subpictures.
28322 Add --global-alpha option to test-subpicture.
28324 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28326 * tests/Makefile.am:
28327 * tests/test-subpicture.c:
28328 tests: use GstVideoOverlayComposition API for subpicture test.
28330 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28332 * tests/Makefile.am:
28333 * tests/test-subpicture.c:
28334 tests: use common decoder helpers for subpicture test.
28335 Use common decoder helpers for subpicture test, thus allowing to decode
28336 sample images in an alternate format.
28338 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28340 * tests/Makefile.am:
28343 * tests/test-decode.c:
28344 tests: add decoder helpers.
28346 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28348 * gst-libs/gst/vaapi/gstvaapicontext.c:
28349 overlay: fix ordering of composition layers.
28350 Make sure to maintain the association order of composition layers when
28351 GstVideoOverlayRectangle objects are kept around (cached).
28353 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28355 * gst-libs/gst/vaapi/gstvaapicontext.c:
28356 overlay: fix support for global-alpha.
28357 Fix support for global-alpha subpictures. The previous changes brought
28358 the ability to check for GstVideoOverlayRectangle changes by comparing
28359 the underlying pixel buffer pointers. If sequence number and pixel data
28360 did not change, then this is an indication that only the global-alpha
28361 value changed. Now, try to update the underlying VA subpicture global-alpha
28363 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28365 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28367 * gst-libs/gst/vaapi/gstvaapicontext.c:
28368 overlay: detect render-rect changes.
28369 Don't re-upload VA subpicture if only the render rectangle changed.
28370 Rather deassociate the subpicture and re-associate it with the new
28373 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28375 * gst-libs/gst/vaapi/gstvaapicontext.c:
28376 overlay: fix check for pixels buffer change.
28377 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28378 change. However, when global-alpha is supported, it is possible to re-use
28379 the same GstVideoOverlayRectangle but with a change to the global-alpha
28380 value. This process causes a change of sequence number, so we can no longer
28382 Still, if sequence numbers did not change, then there was no change in
28383 global-alpha either. So, we need a way to compare the underlying GstBuffer
28384 pointers. There is no API to retrieve the original pixels buffer from
28385 a GstVideoOverlayRectangle. So, we use the following heuristics:
28386 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28387 format flags from which the GstVideoOverlayRectangle was created. This
28388 will work if there was no prior consumer of the GstVideoOverlayRectangle
28389 with alternate (non-"native") format flags.
28390 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28391 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28392 with flags that match the subpicture. This is needed to cope with
28393 platforms that don't support global-alpha in HW, so the gst-video
28394 layer takes care of that and fixes this up with a possibly new
28395 GstBuffer, and hence pixels data (or) in-place by caching the current
28396 global-alpha value applied. So we have to determine the rectangle
28397 was previously used, based on what previous flags were used to
28398 retrieve the ARGB pixels buffer.
28400 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28402 * gst-libs/gst/vaapi/gstvaapicontext.c:
28403 overlay: optimize cache at the GstVideoOverlayRectangle level.
28404 We previously assumed that an overlay composition changed if the number
28405 of overlay rectangles in there actually changed, or that the rectangle
28406 was updated, and thus its seqnum was also updated.
28407 Now, we can cope with cases where the GstVideoOverlayComposition grew
28408 by one or a few more overlay rectangles, and the initial overlay rectangles
28411 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28413 * gst-libs/gst/vaapi/gstvaapicontext.c:
28414 overlay: simplify caching of GstVideoOverlayComposition objects.
28415 Create the GPtrArray once in the _init() function and destroy it only
28416 in the _finalize() function. Then use overlay_clear() to remove all
28417 subpicture associations for intermediate updates, don't recreate the
28419 Make GstVaapiOverlayRectangle a reference counted object. Also make
28420 sure that overlay_rectangle_new() actually creates and associates the
28423 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28425 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28426 * gst-libs/gst/vaapi/gstvaapiutils.c:
28427 * gst-libs/gst/vaapi/gstvaapiutils.h:
28428 overlay: add support for global-alpha.
28429 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28430 the same code path could also work for premultiplied-alpha but this
28432 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28434 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28436 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28437 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28438 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28439 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28440 * gst-libs/gst/vaapi/gstvaapisurface.c:
28442 * tests/test-subpicture.c:
28443 subpicture: add support for global-alpha.
28444 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28445 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28446 to address this feature.
28447 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28449 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28451 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28452 * gst-libs/gst/vaapi/gstvaapiutils.c:
28453 * gst-libs/gst/vaapi/gstvaapiutils.h:
28454 subpicture: add premultiplied-alpha and global-alpha feature flags.
28455 Add premultiplied-alpha and global-alpha feature flags, along with converters
28456 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28457 also necessary for GstVideoOverlayComposition API.
28459 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28461 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28462 display: allow image/subpicture formats with additional flags.
28463 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28464 and any additional flags needed. Currently, all flags are set to zero.
28466 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28468 * gst-libs/gst/codecparsers/Makefile.am:
28469 * gst-libs/gst/video/Makefile.am:
28470 * tests/Makefile.am:
28471 libs: fix build of submodule wrappers.
28472 Make sure to build codecparsers/ and videoutils/ sources against the
28473 newly generated headers when out-of-source builds are used.
28475 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28478 configure: fix checks for packages installed in non-standard roots.
28480 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28482 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28483 decoder: fix mini object implementation on 64-bit systems.
28484 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28485 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28486 Only a gsize can hold all bits of a pointer.
28487 Thanks to Ouping Zhang for spotting this error.
28489 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28491 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28492 mpeg2: optimize scan for the end of the frame.
28493 Heuristic: if the second start-code is available, check whether that
28494 one marks the start of a new frame because e.g. this is a sequence
28495 or picture header. This doesn't save much, since we already cache the
28498 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28500 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28501 mpeg2: optimize scan for start codes.
28502 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28503 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28504 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28505 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28506 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28507 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28508 4. xx == 00, yy == 00, zz == 1, we have match!
28509 This algorithm requires to peek bytes from the adapter. This increases the
28510 amount of bytes copied to a temporary buffer, but this process is much faster
28511 than scanning for all the bytes and using shift/masks. So, overall, this is
28514 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28516 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28517 mpeg2: drop useless gst_adapter_peek().
28518 Drop useless gst_adapter_peek() since the returned buffer was not used
28519 and this could incur superfluous memcpy().
28521 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28523 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28524 mpeg2: cosmetics: move parse_slice() down.
28526 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28528 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28529 mpeg2: avoid too many allocations of parser info objects.
28530 Move parsing back to decoding step, but keep functions separate for now.
28531 This is needed for future optimizations that may introduce some meta data
28532 for parsed info attached to codec frames.
28534 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28536 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28537 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28538 decoder: decoder units are no longer dynamically allocated objects.
28540 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28542 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28543 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28544 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28545 decoder: optimize pre-allocation of decoder units.
28546 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28547 memory reallocations. The heuristic used is that we could have around
28548 one slice unit per macroblock line.
28550 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28552 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28553 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28554 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28555 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28556 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28557 decoder: use an array of units instead of a single-linked list.
28558 Use a GArray to hold decoder units in a frame, instead of a single-linked
28559 list. This makes 'append' calls faster, but not that much. At least, this
28560 makes things clearer.
28562 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28564 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28565 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28566 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28567 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28568 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28569 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28570 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28571 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28572 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28573 decoder: refactor decoder unit API.
28574 Allocate decoder unit earlier in the main parse() function and don't
28575 delegate this task to derived classes. The ultimate purpose is to get
28576 rid of dynamic allocation of decoder units.
28578 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28580 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28581 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28582 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28583 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28585 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28587 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28588 h264: introduce parser info instead of H.264 specific decoder unit.
28589 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28590 from GstVaapiDecoderUnit for H.264 specific parser information.
28592 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28594 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28595 h264: set default values for some header fields.
28596 The SPS, PPS and slice headers are not fully zero-initialized in the
28597 codecparsers/ library. Rather, the standard upstream behaviour is to
28598 initialize only certain syntax elements with some inferred values if
28599 they are not present in the bitstream.
28600 At the gstreamer-vaapi decoder level, we need to further initialize
28601 certain syntax elements with some sensible default values so that to
28602 not complicate VA drivers that just pass those verbatim to the HW,
28603 and also avoid an memset() of the whole decoder unit.
28604 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28605 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28607 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28609 * ext/codecparsers:
28610 codecparsers: update to gst-vaapi-rebased commit b47983a.
28611 b47983a h264: add inferred value for slice_beta_offset_div2
28613 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28615 * gst/vaapi/gstvaapidecode.c:
28616 * gst/vaapi/gstvaapidownload.c:
28617 * gst/vaapi/gstvaapipluginbuffer.c:
28618 * gst/vaapi/gstvaapipluginbuffer.h:
28619 * gst/vaapi/gstvaapipostproc.c:
28620 * gst/vaapi/gstvaapisink.c:
28621 * gst/vaapi/gstvaapiupload.c:
28622 * gst/vaapi/gstvaapiuploader.c:
28623 plugins: cope with new GstVaapiVideoMeta API.
28624 Update plugin elements with the new GstVaapiVideoMeta API.
28625 This also fixes support for subpictures/overlay because GstVideoDecoder
28626 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28627 is marked as read-only. However, when comes in the textoverlay element
28628 for example, it checks whether the input buffer is writable. Since that
28629 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28630 does not preserve the parent field, the generated buffer in textoverlay
28631 is not exploitable because we lost all VA specific information.
28632 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28633 all information are preserved through gst_buffer_copy() since the latter
28634 does copy metadata (qdata in this case).
28636 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28638 * gst-libs/gst/vaapi/Makefile.am:
28639 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28640 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28641 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28642 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28643 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28644 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28645 videobuffer: wrap video meta into a surface buffer.
28646 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28647 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28648 expecting a GstSurfaceBuffer like Clutter.
28650 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28652 * gst-libs/gst/vaapi/Makefile.am:
28653 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28654 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28655 videobuffer: add video meta information.
28656 Add new GstVaapiVideoMeta object that holds all information needed to
28657 convey gst-vaapi specific data as a GstBuffer.
28659 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28661 * gst/vaapi/gstvaapidecode.c:
28662 vaapidecode: fix calculation of the time-out value.
28663 Fix calculation of the time-out value for cases where no VA surface is
28664 available for decoding. In this case, we need to wait until downstream
28665 sink consumed at least one surface. The time-out was miscalculated as
28666 it was always set to <current-time> + one second, which is not suitable
28667 for streams with larger gaps.
28669 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28671 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28672 decoder: always use the calculated presentation timestamp.
28673 Use PTS value computed by the decoder, which could also be derived from
28674 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28675 the original one was miscomputed or only represented a DTS instead.
28677 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28679 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28680 h264: don't create sub-buffer for slice data.
28682 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28684 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28685 decoder: create new context when encoded resolution changes.
28686 Create a new VA context if the encoded surface size changes because we
28687 need to keep the underlying surface pool until the last one was released.
28688 Otherwise, either of the following cases could have happened: (i) release
28689 a VA surface to an inexistent pool, or (ii) release VA surface to an
28690 existing surface pool, but with different size.
28692 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28694 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28695 mpeg2: don't create sub-buffer for slice data.
28696 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28697 frame input buffer data. This is possible because the codec frame is valid
28698 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28699 slice data buffer is copied into the VA buffer when it is created.
28701 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28703 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28704 mpeg2: minor clean-ups.
28705 Drop explicit initialization of most fields that are implicitly set to
28706 zero. Remove some useless checks for NULL pointers.
28708 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28710 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28711 mpeg2: optimize scan for the second start code.
28712 Optimize scan for the second start code, on the next parse() call so that
28713 to avoid scanning again earlier bytes where we didn't find any start code.
28715 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28717 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28718 mpeg2: use sequence_display_extension() to compute PAR.
28719 Also compute pixel-aspect-ratio from sequence_display_extension(),
28720 should it exist in the bitstream.
28722 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28724 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28725 mpeg2: handle sequence_display_extension().
28727 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28729 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28730 mpeg2: implement {start,end}_frame() hooks.
28731 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28732 that to create new VA context earlier and submit VA pictures to the
28733 HW for decoding as soon as possible. i.e. don't wait for the next
28734 frame to start decoding the previous one.
28736 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28738 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28739 mpeg2: parse slice() header earlier.
28740 Parse slice() header and first macroblock position earlier in _parse()
28741 function instead of waiting for the _decode() stage. This doesn't change
28742 anything but readability.
28744 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28746 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28747 mpeg2: add codec specific decoder unit.
28748 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28749 GstMpegVideoPacket and additional parsed header info. Besides, we now
28750 parse as early as in the _parse() function so that to avoid un-necessary
28751 creation of sub-buffers in _decode() for video packets that are not slices.
28753 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28755 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28756 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28757 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28758 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28759 decoder: introduce lists of units to decode before/after frame.
28760 Theory of operations: all units marked as "slice" are moved to the "units"
28761 list. Since this list only contains slice data units, the prev_slice pointer
28762 was removed. Besides, we now maintain two extra lists of units to be decoded
28763 before or after slice data units.
28764 In particular, all units in the "pre_units" list will be decoded before
28765 GstVaapiDecoder::start_frame() is called and units in the "post_units"
28766 list will be decoded after GstVaapiDecoder::end_frame() is called.
28768 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28770 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28771 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28772 decoder: drop useless checks for codec objects.
28773 Codec objects are used internally only and they are bound to be created
28774 with a valid GstVaapiDecoder object.
28776 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28778 * gst/vaapi/gstvaapidecode.c:
28779 vaapidecode: use GST_ERROR to print error messages.
28781 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28783 * gst/vaapi/gstvaapidecode.c:
28784 vaapidecode: avoid double release of frame on error.
28785 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28786 was already called before and it returned an error. In that case, we were
28787 releasing the frame again, thus leading to a "double-free" condition.
28789 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28796 * gst-libs/gst/Makefile.am:
28797 * gst-libs/gst/vaapi/Makefile.am:
28798 * gst-libs/gst/video/Makefile.am:
28799 * gst/vaapi/Makefile.am:
28800 Add videoutils submodule for GstVideoDecoder APIs.
28802 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28805 configure: check for GstVideoDecoder API.
28806 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28807 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28808 parties may either use upstream git 0.10 branch or backport the necessary support
28809 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28811 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28813 * docs/reference/libs/libs.core.types:
28814 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28815 GstVaapiSurfaceProxy is no longer based on the GType system.
28817 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28819 * docs/reference/libs/libs-sections.txt:
28820 docs: fix entries for GstVaapiSurfaceProxy.
28822 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28827 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28830 * gst-libs/gst/vaapi/Makefile.am:
28831 Bump library major version.
28832 Increase library major so that to cope with API/ABI incompatible changes
28833 since 0.4.x series and avoid user issues.
28835 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28837 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28838 surfaceproxy: minor clean-ups.
28840 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28842 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28843 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28844 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28845 surfaceproxy: drop accessors to obsolete attributes.
28846 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28847 VA surface. i.e. drop any other attribute like timestamp, duration,
28848 interlaced or top-field-first.
28850 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28852 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28853 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28854 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28855 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28856 * gst/vaapi/gstvaapidecode.c:
28857 decoder: maintain decoded frames as GstVideoCodecFrame objects.
28858 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28859 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28860 the strict minimum: a context and a surface.
28862 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28864 * gst/vaapi/gstvaapidecode.c:
28865 vaapidecode: output all decoded frames as soon as possible.
28866 Make sure to push all decoded frames downstream as soon as possible.
28867 This makes sure we don't need to wait for a new frame to be ready to
28868 be decoded before receiving new decoded frames.
28869 This also separates the decode process and the output process. The latter
28870 could be moved to a specific GstTask later on.
28872 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28874 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28875 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28876 decoder: add gst_vaapi_decoder_get_frame() API.
28877 Add new gst_vaapi_decoder_get_frame() function meant to be used with
28878 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28879 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28880 as the user-data object.
28882 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28884 * gst/vaapi/gstvaapipostproc.c:
28885 vaapipostproc: use GstBuffer flags for TFF.
28886 Determine whether the buffer represents the top-field only by checking for
28887 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28888 flag. Also trust "interlaced" caps to determine whether the input frame
28889 is interleaved or not.
28891 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28893 * gst/vaapi/gstvaapipostproc.c:
28894 vaapipostproc: handle video sub-buffers.
28895 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28896 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28898 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28900 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28901 h264: optimize initialization process of decoder units.
28902 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28903 The latter don't require zero-initialization since the codecparsers/ lib
28904 will do so for key variables already. This is not a great value per se but
28905 at least it makes it possible to check whether the default initialization
28906 decisions made in the codecparsers/ lib were right or not.
28907 This can be reverted if this exposes too many issues.
28909 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28911 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28912 h264: minor clean-ups.
28913 Drop explicit initialization of most fields that are implicitly set to
28914 zero. Drop helper macros for casting to GstVaapiPictureH264 or
28915 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28917 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28919 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28920 h264: drop GstVaapiSliceH264 object.
28921 Use standard GstVaapiSlice object from now on since we already have
28922 parsed and recorded the slice headers (GstH264SliceHdr decode units).
28924 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28926 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28927 h264: detect new pictures from decode-units.
28928 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28929 of assuming frame boundaries when first_mb_in_slice is zero.
28931 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28933 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28934 h264: implement {start,end}_frame() hooks.
28935 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28936 that to create new VA context earlier and submit VA pictures to the
28937 HW for decoding as soon as possible. i.e. don't wait for the next
28938 frame to start decoding the previous one.
28940 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28942 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28943 h264: optimize scan for the second start code.
28944 Optimize scan for the second start code, on the next parse() call so that
28945 to avoid scanning again earlier bytes where we didn't find any start code.
28947 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28949 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28950 h264: add codec specific decoder unit.
28951 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28952 NAL unit header (GstH264NalUnit) and additional parsed header info.
28953 Besides, we now parse headers as early as in the _parse() function so
28954 that to avoid un-necessary creation of sub-buffers in _decode() for
28955 NAL units that are not slices.
28956 This is a performance win by ~+1.1% only.
28958 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28960 * gst/vaapi/gstvaapisink.c:
28961 vaapisink: handle sub video-buffers.
28962 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28963 for non raw YUV cases. Make sure vaapisink now understands those buffers.
28965 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28967 * gst/vaapi/gstvaapidecode.c:
28968 vaapidecode: use gst_vaapi_decoder_get_codec_state().
28969 Directly use the GstVideoCodecState associated with the VA decoder
28970 instead of parsing caps again.
28971 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28972 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28974 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28976 * gst/vaapi/gstvaapidecode.c:
28977 vaapidecode: use more standard helpers.
28978 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28981 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28983 * gst/vaapi/gstvaapidecode.c:
28984 * gst/vaapi/gstvaapidecode.h:
28985 vaapidecode: move to GstVideoDecoder base class.
28986 Make vaapidecode derive from the standard GstVideoDecoder base element
28987 class. This simplifies the code to the strict minimum for the decoder
28988 element and makes it easier to port to GStreamer 1.x API.
28989 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28990 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28992 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28994 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28995 jpeg: initial port to new GstVaapiDecoder API
28997 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28999 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29000 vc1: initial port to new GstVaapiDecoder API
29002 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29004 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29005 h264: initial port to new GstVaapiDecoder API
29007 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29009 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29010 mpeg4: initial port to new GstVaapiDecoder API
29012 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29014 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29015 mpeg2: initial port to new GstVaapiDecoder API.
29017 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29019 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29020 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29021 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29022 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29023 * gst-libs/gst/vaapi/gstvaapiprofile.c:
29024 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29025 decoder: use GstVideoCodecState.
29026 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
29027 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
29028 it possible to drop picture size (width, height) information, framerate
29029 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
29030 and interlace mode (is_interlaced field).
29031 This is a new API with backwards compatibility maintained. In particular,
29032 gst_vaapi_decoder_get_caps() is still available.
29033 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29034 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29036 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29038 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29039 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29040 * tests/test-decode.c:
29041 * tests/test-subpicture.c:
29042 decoder: update gst_vaapi_decoder_get_surface() semantics.
29043 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
29044 API. That is, return a GstVaapiDecoderStatus and the decoded surface
29045 as a handle to GstVaapiSurfaceProxy in parameter.
29046 This is an API/ABI change.
29048 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29050 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29051 decoder: use standard helper functions.
29052 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
29053 whenever necessary.
29055 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29057 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29058 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29059 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29060 decoder: expose new parse/decode API.
29061 Introduce new decoding process whereby a GstVideoCodecFrame is created
29062 first. Next, input stream buffers are accumulated into a GstAdapter,
29063 that is then passed to the _parse() function. The GstVaapiDecoder object
29064 accumulates all parsed units and when a complete frame or field is
29065 detected, that GstVideoCodecFrame is passed to the _decode() function.
29066 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
29067 process was successful.
29069 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29071 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29072 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29073 decoder: add {start,end}_frame() hooks.
29074 The start_frame() hook is called prior to traversing all decode-units
29075 for decoding. The unit argument represents the first slice in the frame.
29076 Some codecs (e.g. H.264) need to wait for the first slice in order to
29077 determine the actual VA context parameters.
29079 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29081 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29082 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29083 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29084 decoder: add new GstVaapiDecoder API.
29085 Split decoding process into two steps: (i) parse incoming bitstreams
29086 into simple decoder-units until the frame or field is complete; and
29087 (ii) decode the whole frame or field at once.
29088 This is an ABI change.
29090 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29092 * gst-libs/gst/vaapi/Makefile.am:
29093 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29094 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29095 decoder: add new "decoder-frame" object.
29096 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
29097 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
29098 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
29099 as the user-data member element.
29100 This is a libgstvaapi internal object.
29102 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29104 * gst-libs/gst/vaapi/Makefile.am:
29105 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
29106 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29107 decoder: add new "decoder-unit" object.
29108 Introduce GstVaapiDecoderUnit which represents a fragment of the source
29109 stream to be decoded. For instance, a decode-unit will be a NAL unit for
29110 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
29112 This is a libgstvaapi internal object.
29114 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29116 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29117 Port GstVaapiFrameStore to GstVaapiMiniObject.
29119 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29121 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29122 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29123 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29124 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29125 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29126 Port codec objects to GstVaapiMiniObject.
29128 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29130 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29131 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29132 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29133 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29134 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29135 * gst/vaapi/gstvaapidecode.c:
29136 * gst/vaapi/gstvaapipluginbuffer.c:
29137 * tests/test-decode.c:
29138 * tests/test-subpicture.c:
29139 surfaceproxy: port to GstVaapiMiniObject.
29140 GstVaapiSurfaceProxy does not use any particular functionality from
29141 GObject. Actually, it only needs a basic object type with reference
29143 This is an API and ABI change.
29145 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29147 * gst-libs/gst/vaapi/Makefile.am:
29148 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29149 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29150 Add GstVaapiMiniObject.
29151 Introduce a new reference counted object that is very lightweight and
29152 also provides flags and user-data functionalities. Initialization and
29153 finalization times are reduced by up to a factor 5x vs GstMiniObject
29154 from GStreamer 0.10 stack.
29155 This is a libgstvaapi internal object.
29157 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29159 * tests/Makefile.am:
29160 * tests/test-decode.c:
29161 * tests/test-mpeg4.c:
29162 * tests/test-mpeg4.h:
29163 tests: add test for MPEG-4:2 decoding.
29165 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29167 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29168 h264: initialize VA context before allocating the first slice.
29169 Fix decode_slice() to ensure a VA context exists prior to creating a
29170 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29171 context ID. i.e. the latter was not initialized, thus causing failures
29172 on Cedar Trail for example.
29174 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29177 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29178 If GST_PLUGIN_PATH environment variable exists and points to a valid
29179 directory, then use it as the system installation path for gst-vaapi
29181 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29183 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29186 configure: downgrade glib required version to 2.28.
29188 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29190 * gst-libs/gst/vaapi/glibcompat.h:
29191 * gst/vaapi/gstvaapi.c:
29192 libs: fix compatibility with glib 2.28.
29193 Always prefer non deprecated APIs by default and provide compatibility
29194 glue for older glib versions when necessary.
29196 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29198 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29199 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29200 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29201 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29202 libs: use glib >= 2.32 semantics for mutexes.
29203 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29204 and termination. Basically, the new mutex objects can be used as static
29205 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29207 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29209 * gst-libs/gst/vaapi/Makefile.am:
29210 libs: only export gst_vaapi_*() symbols.
29211 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29212 library and the system-provided one, mainly used by videoparses/. Now,
29213 only symbols with the gst_vaapi_* prefix will be exported, if they are
29214 not marked as "hidden" to libgstvaapi.
29216 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29218 * gst/vaapi/gstvaapiuploader.c:
29219 vaapiupload: reset direct-rendering to zero when changing caps.
29220 Make sure to reset direct-rendering flag to zero when caps are changed,
29221 and only derive it to one when the next checks succeed.
29223 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29225 * gst/vaapi/gstvaapiupload.c:
29226 vaapiupload: fix sink caps to report the supported set of YUV caps.
29227 Try to allocate the GstVaapiUploader helper object prior to listing the
29228 supported image formats. Otherwise, only a single generic caps is output
29229 with no particular pixel format referenced in there.
29231 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29233 * gst/vaapi/gstvaapiupload.c:
29234 * gst/vaapi/gstvaapiupload.h:
29235 vaapiupload: use new GstVaapiUploader helper.
29236 Use GstVaapiUploader helper that automatically handles direct rendering
29237 mode, thus making the "direct-rendering" property obsolete and hence it
29239 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29240 really well supported and it could actually trigger degraded performance.
29241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29243 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29245 * gst/vaapi/gstvaapisink.c:
29246 * gst/vaapi/gstvaapiuploader.c:
29247 * gst/vaapi/gstvaapiuploader.h:
29248 vaapisink: compute and expose the supported set of YUV caps.
29249 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29250 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29251 of supported YUV caps as source (for images). This function actually
29252 tries to zero and upload each image to a 64x64 test surface. Of course,
29253 this relies on VA drivers to not claim success if vaPutImage() is not
29254 correctly supported.
29256 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29259 * gst/vaapi/Makefile.am:
29260 * gst/vaapi/gstvaapisink.c:
29261 * gst/vaapi/gstvaapisink.h:
29262 * gst/vaapi/gstvaapiuploader.c:
29263 * gst/vaapi/gstvaapiuploader.h:
29264 vaapisink: add support for raw YUV buffers.
29265 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29266 It is up to the caller to negotiate source caps (for images) and output
29267 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29268 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29269 GstBuffer on sink pads.
29270 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29271 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29273 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29275 * gst-libs/gst/vaapi/gstvaapiimage.c:
29276 image: fix GstVaapiImage map and unmap.
29277 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29278 structure correctly filled in if the image was already mapped.
29279 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29280 was already unmapped.
29282 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29285 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29286 videobuffer: fix memory leak for surface and image.
29287 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29288 thus resulting on actual memory leak of GstVaapiImage when using them
29289 for downloads/uploads from VA surfaces and more specifically surfaces
29290 when the pipeline is shutdown. i.e. vaTerminate() was never called
29291 because the resources were not unreferenced, and thus not deallocated
29293 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29295 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29300 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29302 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29303 h264: fix picture size in macroblocks.
29304 The picture size signalled by sps->{width,height} is the actual size with
29305 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29306 and pic_height_in_map_units_minus1. VA driver expects that original size,
29308 There is another issue pending: frame cropping information needs to be
29311 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29313 * gst-libs/gst/codecparsers/Makefile.am:
29314 codecparsers: always build parserutils first.
29315 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29316 This is needed since that's the common dependency for actual codec
29317 parsers (gstvc1parser.c for instance).
29319 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29321 * gst-libs/gst/codecparsers/Makefile.am:
29322 codecparsers: always build the VC-1 parser library.
29323 ... this is useful to make sure pixel-aspect-ratio and framerate
29324 information are correctly parsed since we have no means to detect
29325 that at configure time.
29327 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29330 * gst-libs/gst/codecparsers/Makefile.am:
29331 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29332 mpeg2: fix PAR calculation from commit bd11bae.
29333 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29334 correct PAR values. While doing so, require a newer version of the
29335 bitstream parser library.
29336 Note: it may be necessary to also parse the Sequence_Display_Extension()
29338 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29339 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29341 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29343 * gst-libs/gst/vaapi/Makefile.am:
29344 Fix build with the GNU gold linker.
29345 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29346 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29348 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29351 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29352 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29353 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29354 wayland: port to 1.0 version of the protocol.
29355 This patch updates to relect the 1.0 version of the protocol. The main
29356 changes are the switch to wl_registry for global object notifications
29357 and the way that the event queue and file descriptor is processed.
29358 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29360 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29362 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29363 h264: fix incorrect integration of previous commit (4d31e1e).
29364 git am got confused somehow, though the end result doesn't change at
29365 all since we require both SPS and PPS to be parsed prior to decoding
29368 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29370 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29371 h264: start decoding slices after first SPS/PPS activation.
29372 Only start decoding slices when at least one SPS and PPS got activated.
29373 This fixes cases when a source represents a substream of another stream
29374 and no SPS and PPS was inserted before the first slice of the generated
29377 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29379 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29380 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29381 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29382 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29383 16 reference frames, thus including both fields.
29385 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29387 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29388 h264: fix interlaced stream decoding with MMCO.
29389 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29390 is equal to 1, i.e. when memory management control operations are used. In
29391 particular, when field_pic_flag is set to 0, the new reference flags shall
29392 be applied to both fields.
29394 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29396 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29397 h264: add initial support for interlaced streams.
29398 Decoded frames are only output when they are complete, i.e. when both
29399 fields are decoded. This also means that the "interlaced" caps is not
29400 propagated to vaapipostproc or vaapisink elements. Another limitation
29401 is that interlaced bitstreams with MMCO are unlikely to work.
29403 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29405 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29406 h264: split remove_reference_at() into finer units.
29407 Split remove_reference_at() into a function that actually removes the
29408 specified entry from the short-term or long-term reference picture array,
29409 and a function that sets reference flags to the desired value, possibly
29410 zero. The latters marks the picture as "unused for reference".
29412 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29414 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29415 decoder: fix gst_vaapi_picture_new_field() object type.
29416 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29417 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29418 shall generate a GstVaapiPictureH264 object.
29420 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29422 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29423 h264: add picture structure for reference picture marking process.
29424 Introduce new `structure' field to the H.264 specific picture structure
29425 so that to simplify the reference picture marking process. That local
29426 picture structure is derived from the original picture structure, as
29427 defined by the syntax elements field_pic_flag and bottom_field_flag.
29429 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29431 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29432 h264: introduce new frame store structure.
29433 The frame store represents a Decoded Picture Buffer entry, which can
29434 hold up to two fields. So far, the frame store is only used to hold
29437 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29439 * ext/codecparsers:
29440 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29441 73d6aab h264: fix rbsp_more_data() implementation
29442 25d04cf h264: fix error code for invalid size parsed in SPS
29443 84798e5 fix FSF address
29445 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29447 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29448 h264: minor clean-ups.
29449 Move DPB flush up if the current picture to decode is an IDR. Besides,
29450 don't bother to check for IDR pictures in dpb_add() function since an
29451 explicit DPB flush was already performed in this case.
29453 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29455 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29456 h264: simplify reference picture marking process.
29457 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29458 of maintaining them separately. This avoids refs/unrefs while making it
29459 possible to generate the list based on the actual picture structure.
29460 This also ensures that the list of generated ReferenceFrames[] actually
29461 matches what reference frames are available in the DPB. i.e. short_ref[]
29462 and long_ref[] entries are implied from the DPB, so there is no risk of
29463 having "dangling" references.
29465 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29467 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29468 h264: introduce per-field POC in GstVaapiPictureH264.
29469 Use the POC member available in the GstVaapiPicture base class and
29470 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29471 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29472 initialized to INT_MAX, so that to simplify picture POC calculation
29473 for non frame pictures.
29475 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29477 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29478 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29479 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29480 reference bits, thus simplifying the reference picture marking process
29481 to only track a single set of reference flags. Also introduce a new
29482 long_term_frame_idx member.
29484 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29486 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29487 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29489 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29491 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29492 h264: fill in GstVaapiPicture structure.
29493 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29495 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29497 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29498 h264: add vaapi_fill_picture() helper.
29499 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29500 to VAPictureH264 structure. This is preparatory work to get rid of the
29501 local VAPictureH264 member in GstVaapiPictureH264.
29503 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29505 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29506 h264: fix activation order of picture and sequence parameters.
29507 Delay ensure_context() until we actually need a VA context for allocating
29508 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29509 of a new picture parameter set occurs, thus also implying an activation
29510 of the related sequence parameter set.
29511 The most important thing was to drop the global pps and sps pointers since
29512 they may not have matched the currently activated picture parameter or
29513 sequence parameter sets at the specified decode point.
29514 Anoter positive side-effect is that this cleans up all occurrences of
29515 decode_current_picture() to only keep those useful in decode_picture(),
29516 before a new picture is allocated, or in decode_sequence_end() when
29517 an end-of-stream or end-of-sequence condition occurred.
29519 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29521 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29522 h264: fix scaling list generation.
29523 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29524 array was partially copied to the VAIQMatrixBufferH264. While we are
29525 at it, also improve bounds checking and avoid copying 8x8 scaling
29526 lists if transform_8x8_mode_flag is set to 0.
29528 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29530 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29531 h264: fix detection of picture boundaries.
29532 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29533 unit of a primary coded picture.
29535 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29537 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29538 h264: optimize handling of scaling lists.
29539 Don't copy scaling lists twice to an intermediate state. Rather, directly
29540 use the scaling lists from GstH264PPS since they would match those provided
29541 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29542 available in the bitstream.
29544 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29546 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29547 h264: simplify code when MMCO is 5.
29548 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29549 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29550 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29552 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29554 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29555 h264: fix MMCO-based reference picture marking process.
29556 Fix adaptive memory control decoded reference picture marking process
29557 implementation for operations 2 to 6, thus also fixing support for
29558 long-term reference pictures.
29560 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29562 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29563 h264: move MMCO handlers out of the loop (cosmetics).
29564 This change only splits each individual MMCO handler into several functions
29565 dedicated for each operation. This is needed to perform further work later
29568 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29571 debian: fix make dist for packaging.
29572 bzip2 tarballs are now used, so update the deb.upstream dependencies
29573 to include dist-bzip2 instead of plain old dist, and use the correct
29574 tar extract options to handle that format.
29576 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29579 configure: generate bzip2 tarballs in ustar format by default.
29581 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29584 configure: bump glib required version to 2.31.2.
29585 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29586 rather than g_mutex_new() and g_cond_new() respectively.
29588 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29590 * gst/vaapi/gstvaapidecode.c:
29591 * gst/vaapi/gstvaapidecode.h:
29592 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29593 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29594 inside the structure they are locking.
29595 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29596 allocation functions.
29597 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29598 initialise inside the GObject _init function and clear inside the _finalize
29599 which is guaranteed to only be called once and after the object is no longer
29602 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29604 * gst/vaapi/gstvaapidecode.c:
29605 vaapidecode: fix compiler warnings.
29606 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29607 during destruction of the element. Don't print out (uninitialised)
29608 error code when allocation of video buffer failed.
29610 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29612 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29613 h264: add flag to compile with strict DPB ordering mode.
29614 Allow build with strict DPB ordering mode whereby evicted entries
29615 are replaced by the next entries, in order instead of optimizing
29616 it away with the last entry in the DPB.
29617 This is only useful for debugging purpose, against a reference SW
29618 decoder for example.
29620 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29622 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29623 h264: drop extra code covered by built-in codecparsers.
29624 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29625 a newer version of codecparsers/ are used if the system provided one is
29626 now recent enough to have those required extensions.
29628 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29630 * gst-libs/gst/codecparsers/Makefile.am:
29631 codecparsers: fix generation of symlinks.
29632 Try to improve dependencies while generating symlinks to externally
29633 maintained copy of codecparsers (derived from upstream git master
29636 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29638 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29639 vc1: use framerate information from bitstream parser.
29641 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29643 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29644 vc1: use pixel-aspect-ratio from bitstream parser.
29645 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29646 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29648 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29650 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29651 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29652 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29653 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29655 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29658 * gst-libs/gst/codecparsers/Makefile.am:
29659 codecparsers: h264: use submodule sources.
29660 Use newer sources from the codecparsers/ submodule for
29661 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29662 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29664 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29668 * gst-libs/gst/codecparsers/Makefile.am:
29669 * gst-libs/gst/codecparsers/gstjpegparser.c:
29670 * gst-libs/gst/codecparsers/gstjpegparser.h:
29671 * gst-libs/gst/vaapi/Makefile.am:
29672 codecparsers: jpeg: use submodule sources.
29674 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29681 * ext/codecparsers:
29682 Add codecparsers submodule.
29684 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29687 .gitignore: updates.
29689 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29692 autogen: fix check for gtkdocize and autoreconf.
29693 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29694 script would fail to report that correctly because test -z was not passed
29695 any argument (empty string "" in this case).
29697 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29699 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29700 h264: use pixel-aspect-ratio from SPS header.
29701 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29702 from the sequence headers.
29703 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29704 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29706 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29709 h264: add decode_nalu() helper function.
29710 Split decode_buffer() into the core infrastructure that determines
29711 the NAL units contained in the adapter and the actual function that
29712 decodes the NAL unit.
29714 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29716 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29717 h264: fix end-of-stream conditions (flush).
29718 Decode pending data in the adapter prior to processing the actual
29719 code for end-of-stream.
29721 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29723 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29724 mpeg2: add decode_packet() helper function.
29725 Split decode_buffer() into the core infrastructure that determines
29726 the packets contained in the adapter and the actual function that
29727 decodes the packet data.
29729 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29731 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29732 mpeg2: fix end-of-stream conditions (flush).
29733 Decode pending data in the adapter prior to processing the actual
29734 code for end-of-stream. Initial code from Feng Yuan.
29736 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29738 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29739 mpeg2: fix memory leak of empty packets.
29740 Fix memory leakage of empty packets, i.e. packets that only contain
29741 the start code prefix. In particular, free empty user-data packets.
29742 Besides, the codec parser will already fail gracefully if the packet
29743 to parse does not have the minimum required size. So, we can also
29744 completely drop the block of code that used to handle packets of size 4
29745 (including the start code).
29747 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29749 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29750 mpeg2: fix return value for "no-data" conditions.
29751 Fix return value when the second scan for start code fails. This means
29752 there is not enough data to determine the full extents of the current
29753 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29754 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29756 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29758 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29759 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29760 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29761 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29762 or with a size equals to zero. In this case, that buffer is simply
29763 skipped and the function returns TRUE. A NULL buffer argument still
29764 marks the end-of-stream.
29766 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29768 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29769 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29770 decoder: drop unused functions.
29772 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
29774 * gst/vaapi/gstvaapidecode.c:
29775 vaapidecode: flush buffers when receiving EOS.
29776 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29778 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29780 * debian.upstream/Makefile.am:
29781 debian: fix make dist for packaging.
29783 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29785 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29786 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29787 wayland: cosmetics (remove tabs).
29789 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
29791 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29792 wayland: add support for windowed mode.
29793 Rather than always making the surface fullscreen instead implement the
29794 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29795 fullscreen on not depending on that.
29796 Reviewed-by: Joe Konno <joe.konno@intel.com>
29797 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29799 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29802 Bump version for development.
29804 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29808 Fix and document build dependencies better.
29810 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29812 * debian.upstream/control.in:
29813 debian: fix GStreamer build dependencies.
29815 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29818 * debian.upstream/control.in:
29819 debian: fix Wayland build dependencies.
29821 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29823 * debian.upstream/control.in:
29824 debian: fix conditional build of packages.
29825 Make it still possible to build package even if one of the build dependencies
29826 for a specific video backend is not available.
29828 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29830 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29831 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29832 utils: drop unused GLX helpers.
29833 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29834 extensions since they are not used throughout gstreamer-vaapi.
29836 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29838 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29839 utils: fix build with <GL/glext.h> version >= 85.
29840 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29841 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29842 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29843 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29844 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29845 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29846 newer versions of the <GL/glext.h> header.
29848 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29851 configure: update VA-API version requirements.
29852 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29854 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29856 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29857 h264: review and report errors accordingly.
29858 Use GST_ERROR() to report real errors instead of hiding them into
29861 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29863 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29864 h264: exclusively use GstAdapter, drop sub-buffer hack.
29865 Maintaining the sub-buffer is rather suboptimal especially since we
29866 were also maintaining a GstAdapter. Now, we only use the GstAdapter
29867 thus requiring minor extra parsing when receiving avcC buffers.
29869 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29874 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29879 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29881 * debian.upstream/gstreamer-vaapi.install.in:
29882 debian: fix packaging on recent Ubuntu platforms.
29883 Use explicit GStreamer plugins path.
29885 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29887 * docs/reference/libs/libs-docs.xml.in:
29888 * docs/reference/libs/libs.core.types:
29889 docs: fix build for make dist.
29891 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
29893 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29894 wayland: set opaque region for YUV surface.
29895 This allows the compositor to optimize redraws and cull away changes
29896 obscured by the video surface.
29897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29899 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29902 configure: fix check for libva-glx and libva-drm.
29904 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29906 * gst-libs/gst/vaapi/glibcompat.h:
29907 glibcompat: add replacement for g_cond_wait_until().
29909 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29911 * gst/vaapi/gstvaapidecode.c:
29912 * gst/vaapi/gstvaapidownload.c:
29913 * gst/vaapi/gstvaapipostproc.c:
29914 * gst/vaapi/gstvaapisink.c:
29915 * gst/vaapi/gstvaapiupload.c:
29916 plugins: include "sysdeps.h" instead of "config.h".
29918 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29920 * gst-libs/gst/codecparsers/gstjpegparser.c:
29921 codecparsers: jpeg: add missing includes.
29923 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29925 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29926 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29927 * gst/vaapi/gstvaapidecode.c:
29928 vaapidecode: don't reset decoder if codec type is the same.
29929 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29930 if the underlying codec type actually changed. This makes it possible
29931 to be more tolerant with certain MPEG-2 streams that get parsed to
29932 form caps that are compatible with the previous state but minor changes
29935 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29937 * gst/vaapi/gstvaapidecode.c:
29938 vaapidecode: simplify codec lookup from caps.
29939 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29940 the specified caps. Don't globally expose this function since this is
29941 really trivial and only used in the vaapidecode element.
29943 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29945 * gst/vaapi/gstvaapidecode.c:
29946 * gst/vaapi/gstvaapidecode.h:
29947 vaapidecode: improve "no free surface" conditions.
29948 Previously, vaapidecode would wait up to one second until a free surface
29949 is available, or it aborts decoding. Now, vaapidecode waits until the
29950 last decoded surface was to be presented, plus one second. Besides, end
29951 times are now expressed relative to the monotonic clock.
29953 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29955 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29956 * gst/vaapi/gstvaapidecode.c:
29957 decoder: propagate buffer duration downstream.
29959 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29961 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29962 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29963 surfaceproxy: add "duration" property.
29965 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29967 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29968 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29969 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29970 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29971 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29972 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29973 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29974 decoder: cope with new GstVaapiContextInfo based API.
29975 Update decoders to report the maximum number of reference frames to use.
29977 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29979 * gst-libs/gst/vaapi/gstvaapicontext.c:
29980 context: JPEG codec does not need any reference frame.
29982 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29984 * gst-libs/gst/vaapi/gstvaapicontext.c:
29985 * gst-libs/gst/vaapi/gstvaapicontext.h:
29986 context: allow number of reference frames to be set.
29987 Make it possible to specify the maximum number of references to use within
29988 a single VA context. This helps reducing GPU memory allocations to the useful
29989 number of references to be used.
29991 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29993 * gst/vaapi/gstvaapipostproc.c:
29994 vaapipostproc: fix deinterlace-{mode,method} types definition.
29996 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29998 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29999 mpeg4: fix debug info for unsupported profile.
30001 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30003 * gst-libs/gst/vaapi/gstvaapicontext.c:
30004 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30005 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30006 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30007 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30008 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30009 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30010 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30011 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30012 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30013 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30014 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30015 * gst-libs/gst/vaapi/gstvaapiimage.c:
30016 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30017 * gst-libs/gst/vaapi/gstvaapiobject.c:
30018 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30019 * gst-libs/gst/vaapi/gstvaapisurface.c:
30020 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30021 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30022 * gst-libs/gst/vaapi/gstvaapitexture.c:
30023 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30024 * gst-libs/gst/vaapi/gstvaapivalue.c:
30025 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30026 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30027 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30028 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30029 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30030 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30031 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30032 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30033 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30034 libs: fix build in strict ISO C mode.
30036 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30038 * gst/vaapi/gstvaapi.c:
30039 * gst/vaapi/gstvaapidecode.c:
30040 * gst/vaapi/gstvaapidownload.c:
30041 * gst/vaapi/gstvaapipostproc.c:
30042 * gst/vaapi/gstvaapisink.c:
30043 * gst/vaapi/gstvaapiupload.c:
30044 plugins: fix build in strict ISO C mode.
30046 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30048 * pkgconfig/gstreamer-vaapi-glx.pc.in:
30049 * pkgconfig/gstreamer-vaapi-x11.pc.in:
30050 * pkgconfig/gstreamer-vaapi.pc.in:
30051 pkgconfig: fix dependencies and slightly improve description.
30052 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
30053 descriptions with clearer renderer names.
30055 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
30057 * gst/vaapi/gstvaapidecode.c:
30058 vaapidecode: acquire lock only if the mutex exists.
30059 When playback stops the GstVaapiDecode object is reset into a clean
30060 state. However, surfaces may still be referenced by library users and
30061 unreferencing them after the reset triggers an access to an unset mutex.
30062 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30064 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30066 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30067 decoder: drop extraneous return for void function.
30069 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30071 * gst-libs/gst/vaapi/gstvaapiimage.c:
30072 image: don't use (void *) pointer arithmetic.
30074 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
30076 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30077 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30078 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30079 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30080 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30081 * gst-libs/gst/vaapi/gstvaapiprofile.h:
30082 * gst-libs/gst/vaapi/gstvaapisurface.h:
30083 * gst-libs/gst/vaapi/gstvaapitypes.h:
30084 * gst/vaapi/gstvaapipostproc.h:
30085 Do not forward declare enums.
30086 Forward declaring enums is not allowed by the C standard and aborts
30087 compilation if the header file is included in a C++ project.
30088 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30090 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30093 configure: fix check for VA/DRM API.
30095 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30097 * gst/vaapi/gstvaapisink.c:
30098 vaapisink: fix calculation of window size.
30099 If either dimension is out-of-bounds, then scale window to fit the
30100 display size, even if the output is to be rotated. Use the standard
30101 gst_video_sink_center_rect() function to center and scale the window
30102 wrt. the outer (display) bounds.
30104 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
30106 * gst/vaapi/gstvaapisink.c:
30107 * gst/vaapi/gstvaapisink.h:
30108 vaapisink: add video rotation support.
30109 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30111 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30113 * gst/vaapi/gstvaapipluginutil.h:
30114 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
30115 This macro helps swapping variables while maintaining the correct underlying
30116 and primitive type.
30118 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30120 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30121 display: fix display aspect ratio when display is rotated.
30123 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30126 * gst-libs/gst/vaapi/Makefile.am:
30127 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30128 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30129 display: fix physical display size when display is rotated.
30131 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30133 * gst-libs/gst/vaapi/gstvaapivalue.c:
30134 display: fix GstVaapiRotation enumeration of values.
30136 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30138 * docs/reference/libs/libs-docs.xml.in:
30139 * docs/reference/libs/libs-sections.txt:
30140 * gst-libs/gst/vaapi/Makefile.am:
30141 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30142 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30143 * gst/vaapi/gstvaapidecode.c:
30144 * gst/vaapi/gstvaapidownload.c:
30145 * gst/vaapi/gstvaapipostproc.c:
30146 * gst/vaapi/gstvaapisink.c:
30147 * gst/vaapi/gstvaapiupload.c:
30148 vaapisink: drop obsolete GstVaapiVideoSink interface.
30149 This interface was deprecated since 0.3.x series when the GstVideoContext
30150 interface was added to the main GStreamer APIs.
30152 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30154 * gst/vaapi/gstvaapisink.c:
30155 * gst/vaapi/gstvaapisink.h:
30156 vaapisink: automatically detect overlay rendering mode.
30157 Retain the VA surface until another surface is to be displayed only
30158 if VA display rendering mode is determined to be "overlay" mode.
30160 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30162 * gst/vaapi/gstvaapisink.c:
30163 * gst/vaapi/gstvaapisink.h:
30164 vaapisink: retain VA surface until another one is displayed.
30165 Keep VA surface proxy associated with the surface that is currently
30166 being displayed. This makes sure that surface is not released back
30167 to the pool of surfaces free to use for decoding. This is necessary
30168 with VA driver implementations that support rendering to an overlay
30169 pipe. Otherwise, there could be cases where we are decoding into a
30170 surface that is being displayed, hence some flickering.
30172 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30174 * gst/vaapi/gstvaapisink.h:
30175 vaapisink: fix build with older toolchains.
30176 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30178 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30180 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30181 display: partially revert 8ebe4d6.
30182 Don't try to fix up the initial values, this could make things worse.
30183 Simply assume the driver does not support the capability in this case.
30185 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30187 * tests/test-display.c:
30188 tests: dump VA display properties.
30190 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30192 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30193 display: fix validation process of properties during discovery.
30194 Some VA drivers (e.g. EMGD) can have completely random values for initial
30195 display attributes. So, try to improve the discovery process to check the
30196 initial display attribute values actually fall within valid bounds. If not,
30197 try to reset those to some sensible values like the default value reported
30198 through vaQueryDisplayAttributes().
30200 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30202 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30203 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30204 display: add color balance properties.
30205 Add support for hue, saturation, brightness and contrast attributes.
30207 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30209 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30210 display: initialize default attribute values.
30211 Ensure the display attribute is actually supported by trying to retrieve
30212 its current value during GstVaapiDisplay creation.
30214 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30216 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30217 display: raise "notify" for property changes.
30219 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30221 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30222 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30223 display: expose display attributes as GObject properties.
30224 Expose VA display "render-mode" and "rotation" attributes as standard
30225 GObject properties.
30227 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30229 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30230 display: install properties in batch.
30231 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30232 It is useful to maintain properties as GParamSpec so that to be able to raise
30233 "notify" signals by id instead of by name in the future.
30235 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30237 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30238 display: fix gst_vaapi_display_has_property().
30239 Append the "render-mode" and "rotation" properties, should they be supported
30240 by the underlying VA driver.
30242 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30244 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30245 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30246 * gst-libs/gst/vaapi/gstvaapitypes.h:
30247 * gst-libs/gst/vaapi/gstvaapiutils.c:
30248 * gst-libs/gst/vaapi/gstvaapiutils.h:
30249 * gst-libs/gst/vaapi/gstvaapivalue.c:
30250 * gst-libs/gst/vaapi/gstvaapivalue.h:
30251 display: add support for rotation modes.
30252 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30254 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30256 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30257 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30258 * gst-libs/gst/vaapi/gstvaapitypes.h:
30259 * gst-libs/gst/vaapi/gstvaapivalue.c:
30260 * gst-libs/gst/vaapi/gstvaapivalue.h:
30261 display: add support for rendering modes.
30262 A rendering mode can be "overlay" or "texture"'ed blit.
30263 The former mode implies that a VA surface used for rendering can't be
30264 re-used right away for decoding, so the sink shall make provisions to
30265 retain the associated surface proxy until the next surface is to be
30267 The latter mode implies that the VA surface is implicitly copied to an
30268 intermediate backing store, or back buffer of a frame buffer, so the
30269 associated surface proxy can be disposed right away.
30271 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30273 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30274 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30275 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30276 display: add initial support for display attributes.
30277 The VA display attributes are mapped to properties so that to maintain the
30278 GStreamer terminology. Properties are to be identified by name, but internal
30279 functions are available to lookup the property by the actual VA display
30282 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30284 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30285 jpeg: fix end-of-image (EOI) handler.
30286 decode_current_picture() was converted to return a gboolean instead
30287 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30288 loop as expected, or could cause an error instead.
30289 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30291 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30293 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30294 mpeg2: include start code into VA slice data buffer.
30295 Integrate the start code prefix in the slice data buffer that is submitted
30296 to the hardware. VA-API specifies that slice_data_offset is the offset to
30297 the first byte of slice data. And, for MPEG-2, slice() data begins with
30298 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30300 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30303 autogen: fix configure script generation when srcdir != builddir.
30304 This patch allows for regenerating the configure script from a build
30305 directory that is not the actual source directory.
30306 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30308 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30311 configure: use new libtool syntax.
30312 This now requires libtool >= 2.2 to regenerate the configure script.
30313 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30315 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30317 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30318 decoder: use g_object_notify_by_pspec().
30319 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30320 avoid a property name lookup. i.e. this makes notifications faster to
30321 the `vaapidecode' element.
30322 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30324 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30326 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30327 wayland: handle de-interlacing flags.
30328 VA/Wayland API was updated to allow flags for bob deinterlacing.
30329 More elaborated filters will require a complete VA/VPP pipeline.
30331 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30333 * gst-libs/gst/codecparsers/gstjpegparser.c:
30334 jpeg: fix default quantization tables.
30335 Two elements in the luminance quantization table were wrong. So,
30336 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30337 in zig-zag order from the standard ones (Tables K.1 and K.2).
30339 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30341 * gst-libs/gst/codecparsers/gstjpegparser.c:
30342 jpeg: compute default Huffman tables.
30343 ... instead of having them pre-calculated. This saves around 1.5 KB
30344 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30345 to do more work. Though, the client application may have to call that
30346 function at most once, only.
30348 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30350 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30351 display: drop VAProfileNone entries from debug messages.
30353 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30355 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30356 display: query for supported display attributes.
30357 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30359 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30361 * gst-libs/gst/vaapi/gstvaapiutils.c:
30362 * gst-libs/gst/vaapi/gstvaapiutils.h:
30363 utils: add string_of_VADisplayAttributeType() helper.
30364 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30366 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30368 * gst/vaapi/gstvaapisink.c:
30369 vaapisink: handle VA/DRM API.
30370 This is not useful in practice but for raw performance evaluation when
30371 the sink is invoked with display=drm sync=false. fakesink could also be
30374 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30376 * gst/vaapi/Makefile.am:
30377 * gst/vaapi/gstvaapipluginutil.c:
30378 plugins: add support for headless pipelines.
30380 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30382 * tests/Makefile.am:
30384 * tests/test-display.c:
30385 * tests/test-windows.c:
30386 tests: add support for headless decoding.
30388 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30392 * debian.upstream/Makefile.am:
30393 * debian.upstream/control.in:
30394 * debian.upstream/libgstvaapi-drm.install.in:
30395 * gst-libs/gst/vaapi/Makefile.am:
30396 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30397 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30398 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30399 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30400 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30401 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30402 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30403 * pkgconfig/Makefile.am:
30404 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30405 Add initial support for VA/DRM.
30407 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30410 * gst-libs/gst/vaapi/Makefile.am:
30411 Fix build without X11 (again).
30412 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30413 files list wrt. x11, glx and wayland backends.
30415 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30418 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30419 * gst-libs/gst/vaapi/gstvaapicompat.h:
30420 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30421 jpeg: update to the latest VA-API changes (0.32.1+).
30423 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30425 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30426 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30427 * gst/vaapi/gstvaapisink.c:
30428 wayland: implement display ::get_size*() hooks.
30430 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30432 * gst/vaapi/gstvaapipluginutil.c:
30433 plugins: prefer X11 rendering over GLX.
30434 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30435 for rendering instead of texturing.
30437 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30439 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30440 wayland: use scale fullscreen method.
30441 This makes the compositor scale the surface to fit and preserves aspect
30443 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30445 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30447 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30448 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30449 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30451 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30453 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30454 wayland: fix double disconnect of display.
30456 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30458 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30459 wayland: mangle display name for cache lookups.
30461 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30464 * debian.upstream/Makefile.am:
30465 * debian.upstream/control.in:
30466 * debian.upstream/libgstvaapi-wayland.install.in:
30467 * pkgconfig/Makefile.am:
30468 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30469 wayland: add packaging files.
30471 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30473 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30474 * gst/vaapi/gstvaapipluginutil.c:
30475 * gst/vaapi/gstvaapisink.c:
30476 * pkgconfig/Makefile.am:
30477 Fix build without X11.
30479 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30481 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30482 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30483 * gst/vaapi/Makefile.am:
30484 * gst/vaapi/gstvaapipluginutil.c:
30485 * gst/vaapi/gstvaapisink.c:
30486 plugins: add support for Wayland.
30488 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30490 * tests/Makefile.am:
30492 * tests/test-display.c:
30493 * tests/test-windows.c:
30494 tests: add support for Wayland.
30496 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30500 * gst-libs/gst/vaapi/Makefile.am:
30501 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30502 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30503 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30504 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30505 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30506 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30507 Add initial support for VA/Wayland.
30508 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30510 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30512 * gst/vaapi/gstvaapipluginbuffer.c:
30513 plugins: fix creation of video buffer from surface proxy.
30514 Fix a regression introduced with commit 8ef490a.
30516 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30518 * gst/vaapi/gstvaapipluginbuffer.c:
30519 * gst/vaapi/gstvaapipluginutil.c:
30520 plugins: use new display types more.
30521 In particular, simplify gst_vaapi_reply_to_query() with display types.
30522 Likewise for creating new video buffers.
30524 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30526 * gst/vaapi/gstvaapidecode.c:
30527 * gst/vaapi/gstvaapidownload.c:
30528 * gst/vaapi/gstvaapipluginutil.c:
30529 * gst/vaapi/gstvaapipluginutil.h:
30530 * gst/vaapi/gstvaapipostproc.c:
30531 * gst/vaapi/gstvaapisink.c:
30532 * gst/vaapi/gstvaapiupload.c:
30533 plugins: fix display type selection and propagation.
30534 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30535 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30536 queries from vaapidecode shall get a valid answer from vaapisink.
30538 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30540 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30541 display: fix destruction of mutex.
30543 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30545 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30546 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30547 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30548 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30549 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30550 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30551 * gst/vaapi/gstvaapipluginutil.c:
30552 * gst/vaapi/gstvaapipluginutil.h:
30553 * gst/vaapi/gstvaapisink.c:
30554 display: add display types.
30555 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30556 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30557 type to "any", and add a "display-type" attribute.
30559 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30561 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30562 display: use prefixed display names for cache lookups.
30563 This improves display name comparisons by always allocating a valid display
30564 name. This also helps to disambiguate lookups by name in the global display
30565 cache, should a new backend be implemented.
30567 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30569 * gst/vaapi/gstvaapipluginutil.h:
30570 plugins: declare helper functions as internal.
30572 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30574 * docs/reference/libs/libs-sections.txt:
30575 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30576 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30577 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30578 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30579 * gst/vaapi/Makefile.am:
30580 * gst/vaapi/gstvaapidecode.c:
30581 * gst/vaapi/gstvaapidownload.c:
30582 * gst/vaapi/gstvaapipluginbuffer.c:
30583 * gst/vaapi/gstvaapipluginbuffer.h:
30584 * gst/vaapi/gstvaapipostproc.c:
30585 * gst/vaapi/gstvaapiupload.c:
30586 videobuffer: drop deprecated functions.
30587 Move video buffer creation routines to plugin elements. That exclusively
30588 uses *_typed_new*() variants.
30590 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30592 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30593 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30594 videobuffer: mark video buffer creation routines as deprecated.
30595 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30596 plugin elements. So deprecate any explicit creation routines that are not the
30597 new *_typed_new*() variants.
30599 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30601 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30602 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30603 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30604 videobuffer: factor out base and GLX implementations.
30605 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30606 This avoids duplication of code, and makes it possible to further implement
30607 generic video buffer creation routines that automatically map to base or GLX
30610 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30612 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30613 utils: fix gl_create_context() with parent context set.
30614 If GLX window was created from a foreign Display, then that same Display shall
30615 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30616 will now use the same Display that the parent, if available.
30617 This fixes cluttersink with the Intel GenX VA driver.
30619 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30621 * gst/vaapi/gstvaapidecode.c:
30622 * gst/vaapi/gstvaapidownload.c:
30623 * gst/vaapi/gstvaapipluginutil.c:
30624 * gst/vaapi/gstvaapipluginutil.h:
30625 * gst/vaapi/gstvaapipostproc.c:
30626 * gst/vaapi/gstvaapisink.c:
30627 * gst/vaapi/gstvaapiupload.c:
30628 pluginutils: improve automatic display type selection.
30630 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30632 * gst/vaapi/gstvaapipluginutil.c:
30633 * gst/vaapi/gstvaapipluginutil.h:
30634 pluginutils: cosmetics (indentation fixes).
30636 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30639 configure: simplify video outputs summary.
30641 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30644 * gst/vaapi/gstvaapipluginutil.c:
30645 * gst/vaapi/gstvaapipluginutil.h:
30646 * gst/vaapi/gstvaapisink.c:
30647 * gst/vaapi/gstvaapisink.h:
30648 configure: drop check for --enable-vaapisink-glx.
30649 vaapisink is now built with support for multiple display types, whenever
30650 they are enabled. The new "display" attribute is used to select a particular
30653 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30656 * gst-libs/gst/vaapi/gstvaapicompat.h:
30657 * gst/vaapi/Makefile.am:
30658 * gst/vaapi/gstvaapidecode.c:
30659 * gst/vaapi/gstvaapidownload.c:
30660 * gst/vaapi/gstvaapipluginutil.c:
30661 * gst/vaapi/gstvaapipostproc.c:
30662 * gst/vaapi/gstvaapiupload.c:
30663 * tests/test-display.c:
30664 configure: drop check for --enable-vaapi-glx.
30665 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30666 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30667 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30668 we now default to use TFP+FBO.
30669 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30670 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30671 API shall be used as it covers most usages. e.g. AMD driver can't render to
30674 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30677 tests: allow GLX output, if available and selected.
30679 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30681 * tests/Makefile.am:
30684 * tests/test-decode.c:
30685 * tests/test-subpicture.c:
30686 * tests/test-surfaces.c:
30687 tests: use common display and window creation routines.
30688 Add new --output option to select the renderer. Use --list-outputs to
30689 print a list of supported renderers.
30691 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30693 * tests/Makefile.am:
30694 tests: move encoded bitstreams to libutils.la.
30696 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30698 * tests/Makefile.am:
30699 tests: build convenience library for common utilities.
30701 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30703 * tests/Makefile.am:
30704 * tests/test-display.c:
30705 tests: simplify build with various display options.
30707 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30710 configure: improve checks for X11.
30712 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30714 * tests/Makefile.am:
30715 configure: fix previous commit for GLX deps.
30717 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30720 * gst-libs/gst/vaapi/Makefile.am:
30721 configure: improve checks for GLX.
30723 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30726 * gst-libs/gst/vaapi/gstvaapicompat.h:
30727 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30728 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30729 * gst-libs/gst/vaapi/gstvaapiutils.h:
30730 Drop support for obsolete VA-API versions < 0.30.4.
30732 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30735 * gst-libs/gst/Makefile.am:
30736 * gst-libs/gst/gstutils_version.h.in:
30737 * gst/vaapi/gstvaapisink.c:
30738 vaapisink: drop checks for new APIs used by default.
30739 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30740 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30741 are no longer necessary.
30743 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30746 configure: cosmetics and some minor changes.
30747 - Better grouping of feature checks
30748 - Sort list of config files to generate
30750 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30753 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30754 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30755 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30756 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30757 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30758 * gst-libs/gst/vaapi/gstvaapiutils.h:
30759 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30760 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30761 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30763 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30765 * gst-libs/gst/vaapi/Makefile.am:
30766 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30767 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30768 Drop obsolete GstVaapiTSB.
30769 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30771 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30773 * docs/reference/libs/libs-sections.txt:
30774 docs: add missing entries for the JPEG decoder.
30776 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30779 * gst-libs/gst/vaapi/Makefile.am:
30780 * gst/vaapi/gstvaapidecode.c:
30781 * tests/test-decode.c:
30782 * tests/test-subpicture.c:
30783 Drop all references to USE_CODEC_PARSERS.
30785 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30789 * docs/reference/libs/libs-sections.txt:
30790 * docs/reference/libs/libs.core.types:
30791 * gst-libs/gst/vaapi/Makefile.am:
30792 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30793 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30794 * gst/vaapi/gstvaapidecode.c:
30795 * gst/vaapi/gstvaapidecode.h:
30796 * tests/test-decode.c:
30797 * tests/test-subpicture.c:
30798 Drop FFmpeg-based decoders.
30799 GStreamer codecparsers-based decoders are the only supported decoders now.
30800 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30802 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
30805 * debian.upstream/control.in:
30806 configure: bump glib required version to 2.28.
30807 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30809 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
30811 * gst/vaapi/gstvaapidecode.h:
30812 * gst/vaapi/gstvaapidownload.h:
30813 * gst/vaapi/gstvaapipostproc.h:
30814 * gst/vaapi/gstvaapisink.h:
30815 * gst/vaapi/gstvaapiupload.h:
30816 plugins: declare _get_type() functions as const.
30817 Declaring a function as const enables better optimization of calls to
30819 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30821 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
30823 * gst/vaapi/gstvaapidecode.c:
30824 * gst/vaapi/gstvaapidownload.c:
30825 * gst/vaapi/gstvaapipostproc.c:
30826 * gst/vaapi/gstvaapisink.c:
30827 * gst/vaapi/gstvaapiupload.c:
30828 plugins: use g_clear_object() wherever applicable.
30829 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30831 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
30833 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30834 * gst-libs/gst/vaapi/gstvaapicontext.h:
30835 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30836 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30837 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30838 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30839 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30840 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30841 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30842 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30843 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30844 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30845 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30846 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30847 * gst-libs/gst/vaapi/gstvaapiimage.h:
30848 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30849 * gst-libs/gst/vaapi/gstvaapiobject.h:
30850 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30851 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30852 * gst-libs/gst/vaapi/gstvaapisurface.h:
30853 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30854 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30855 * gst-libs/gst/vaapi/gstvaapitexture.h:
30856 * gst-libs/gst/vaapi/gstvaapivalue.h:
30857 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30858 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30859 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30860 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30861 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30862 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30863 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30864 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30865 libs: declare _get_type() functions as const.
30866 Declaring a function as const enables better optimization of calls
30868 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30870 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
30872 * gst-libs/gst/vaapi/glibcompat.h:
30873 * gst-libs/gst/vaapi/gstvaapicontext.c:
30874 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30875 * gst-libs/gst/vaapi/gstvaapiobject.c:
30876 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30877 * gst-libs/gst/vaapi/gstvaapisurface.c:
30878 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30879 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30880 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30881 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30882 libs: use g_clear_object() wherever applicable.
30883 This is a preferred thread-safe version. Also add an inline version of
30884 g_clear_object() if compiling with glib < 2.28.
30885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30887 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
30891 * docs/reference/libs/Makefile.am:
30892 * gst-libs/gst/vaapi/Makefile.am:
30893 * gst-libs/gst/vaapi/gstvaapimarshal.list:
30894 * gst-libs/gst/vaapi/gstvaapiobject.c:
30895 libs: use generic g_cclosure_marshal_VOID__VOID().
30896 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30898 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30901 * gst-libs/gst/vaapi/glibcompat.h:
30902 glibcompat: drop explicit check for g_list_free_full().
30904 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30907 Bump version for development.
30909 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30911 * gst-libs/gst/codecparsers/Makefile.am:
30912 jpeg: fix make dist.
30914 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
30918 * docs/Makefile.am:
30919 configure: fix build without gtk-doc support.
30920 Also do not generate tamplate files as all the documentation is inline.
30921 Drop un-needed code in autogen.sh as well.
30922 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30924 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
30929 configure: put m4 macros and autogenerated files into m4/ directory.
30930 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30932 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
30935 configure: drop deprecated autoconf macros.
30936 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30937 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30939 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
30942 configure: don't use AC_SUBST for some variables.
30943 PKG_CHECK_MODULES already does this for us.
30944 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30946 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30948 * gst/vaapi/gstvaapidecode.c:
30949 * gst/vaapi/gstvaapidownload.c:
30950 * gst/vaapi/gstvaapipostproc.c:
30951 * gst/vaapi/gstvaapiupload.c:
30952 plugins: add support for GstImplementsInterface.
30954 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
30957 * gst/vaapi/gstvaapidecode.c:
30958 * gst/vaapi/gstvaapidownload.c:
30959 * gst/vaapi/gstvaapipostproc.c:
30960 * gst/vaapi/gstvaapisink.c:
30961 * gst/vaapi/gstvaapiupload.c:
30962 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30963 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30965 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30968 * gst/vaapi/gstvaapisink.c:
30969 plugins: do not use deprecated GStreamer -base symbols.
30970 Bump GStreamer plugins -base required version to 0.10.31, needed for
30971 gst_x_overlay_got_window_handle().
30972 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30974 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30977 * gst/vaapi/gstvaapidecode.c:
30978 * gst/vaapi/gstvaapidownload.c:
30979 * gst/vaapi/gstvaapipostproc.c:
30980 * gst/vaapi/gstvaapisink.c:
30981 * gst/vaapi/gstvaapiupload.c:
30982 plugins: do not use deprecated core GStreamer symbols.
30983 Bump GStreamer required version to 0.10.14, needed for
30984 gst_element_class_set_details_simple().
30985 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30987 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30989 * tests/test-decode.c:
30990 tests: fix build without JPEG decoder support.
30992 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30994 * tests/Makefile.am:
30995 * tests/test-decode.c:
30996 * tests/test-jpeg.c:
30997 * tests/test-jpeg.h:
30998 tests: add test for JPEG decoding.
31000 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31002 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31003 jpeg: update to match latest parser API.
31005 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31007 * gst-libs/gst/codecparsers/gstjpegparser.c:
31008 * gst-libs/gst/codecparsers/gstjpegparser.h:
31009 codecparsers: jpeg: tweak parser API.
31010 ... to allow for more consistent parsing API among various codec parsers.
31011 In particular, drop use of GList.
31013 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31016 jpeg: fix configure check for VA/JPEG decoding API.
31018 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31020 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31021 jpeg: fix build with VA-API < 0.32.0.
31023 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31028 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31031 Bump version for development.
31033 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31039 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31044 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
31046 * gst/vaapi/gstvaapipluginutil.c:
31047 vaapiplugin: fix build when compiling without GLX.
31048 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31050 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31053 configure: disable FFmpeg-based decoders.
31054 FFmpeg decoders are still available through the --enable-ffmpeg option
31055 but are no longer maintained.
31057 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31059 * gst-libs/gst/vaapi/Makefile.am:
31060 Fix build with recent GStreamer stack.
31062 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31065 * gst-libs/gst/vaapi/gstvaapicompat.h:
31066 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31067 jpeg: update to current VA/JPEG decoding API.
31069 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31071 * gst-libs/gst/codecparsers/gstjpegparser.c:
31072 * gst-libs/gst/codecparsers/gstjpegparser.h:
31073 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31074 codecparsers: jpeg: track valid quantization and Huffman tables.
31075 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
31076 to determine whether a table actually changed since the last user
31077 synchronization point. That way, this makes it possible for some
31078 hardware accelerated decoding solution to upload only those tables
31081 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
31083 * gst-libs/gst/codecparsers/gstjpegparser.c:
31084 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
31085 Use GstByteReader *_unchecked() variants as much as possible.
31086 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31088 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
31090 * gst-libs/gst/codecparsers/gstjpegparser.c:
31091 * gst-libs/gst/codecparsers/gstjpegparser.h:
31092 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31093 jpeg: add new GstJpegHuffmanTables structure.
31094 Add new GstJpegHuffmanTables helper structure to hold all possible
31095 AC/DC Huffman tables available to all components.
31096 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31098 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
31100 * gst-libs/gst/codecparsers/gstjpegparser.c:
31101 * gst-libs/gst/codecparsers/gstjpegparser.h:
31102 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31103 jpeg: make gst_jpeg_parse() support multiple scans.
31104 gst_jpeg_parse() now gathers all scans available in the supplied
31105 buffer. A scan comprises of the scan header and any entropy-coded
31106 segments or restart marker following it. The size and offset to
31107 the associated data (ECS + RST segments) are append to a new
31108 GstJpegScanOffsetSize structure.
31109 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31111 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
31113 * gst-libs/gst/codecparsers/gstjpegparser.c:
31114 * gst-libs/gst/codecparsers/gstjpegparser.h:
31115 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31116 jpeg: update to match latest parser API.
31117 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31119 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31121 * gst-libs/gst/codecparsers/gstjpegparser.h:
31122 jpeg: simplify and optimize parser API.
31124 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
31126 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31127 mpeg: fix picture used to determine backward_reference_vop_coding_type.
31128 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31129 but Gwenole did not apply all the bits.
31130 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31132 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
31134 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31135 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31136 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31138 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31140 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31141 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31142 Gracefully skip non VOP coded frames.
31143 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31145 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31147 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31148 mpeg4: fix timestamp issues on too fast playback.
31149 Improve generation of presentation timestamps to be less sensitive
31150 to input stream errors. In practise, GOP is also a synchronization
31151 point for PTS calculation.
31152 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31154 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31156 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31157 Fix build without JPEG decoder.
31159 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31161 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31162 mpeg4: fix VOP coding type of backward reference pictures.
31163 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31165 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31167 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31168 mpeg4: fix handling of temporal reference distances.
31169 TRD and TRB fields are not large enough to hold the difference of PTS
31170 expressed with nanosecond resolution. So, compute them from the original
31172 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31174 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31176 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31177 dpb: mpeg2: cosmetics.
31178 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31180 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31183 * gst-libs/gst/vaapi/Makefile.am:
31184 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31185 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31186 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31187 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31188 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31189 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31190 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31191 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31192 * gst/vaapi/gstvaapidecode.c:
31193 Add initial JPEG decoder.
31194 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31196 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31199 * gst-libs/gst/Makefile.am:
31200 * gst-libs/gst/codecparsers/Makefile.am:
31201 * gst-libs/gst/codecparsers/gstjpegparser.c:
31202 * gst-libs/gst/codecparsers/gstjpegparser.h:
31203 * gst-libs/gst/vaapi/Makefile.am:
31204 codecparsers: add JPEG parser.
31205 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31207 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31209 * gst/vaapi/gstvaapidecode.c:
31210 vaapidecode: fix VA display type.
31211 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31213 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31215 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31217 * gst/vaapi/gstvaapidecode.c:
31218 vaapidecode: fix includes when compiling for a single API.
31220 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31223 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31224 mpeg2: fix calculation of macroblock_offset.
31225 Fix decoding of streams with extra slice() information before the first
31226 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31228 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31230 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31231 mpeg2: fix interpolation of GOP TSN from new PTS.
31232 New GOP TSN base could be mis-calculated. In particular, this fixes
31233 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31235 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31238 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31239 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31240 mpeg2: fix decoding of high profile streams.
31241 Allow MPEG-2 High profile streams only if the HW supports that profile
31242 or no High profile specific bits are used, and thus Main profile could
31243 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31244 set to 11 and no sequence_scalable_extension() was parsed.
31246 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31249 * gst/vaapi/gstvaapidecode.c:
31250 vaapidecode: report unsupported codec profiles.
31251 Try to gracefully abort when the HW does not support the requested
31252 profile. There is no fallback unless profiles are correctly parsed
31253 and matched through caps beforehand.
31255 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31258 * gst/vaapi/gstvaapisink.c:
31259 vaapisink: don't resize a 'foreign' X-window.
31260 Don't forcibly resize foreign X windows. The user is responsible for
31261 their size and vaapisink shall not change this.
31262 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31264 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31267 * gst/vaapi/gstvaapisink.c:
31268 * gst/vaapi/gstvaapisink.h:
31269 vaapisink: recalculate render rect only if caps are negotiated.
31270 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31271 caps got negotiated. Besides, when a foreign window is provided by the
31272 user, so should the render rect.
31273 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31275 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31278 Bump version for development.
31280 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31285 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31287 * docs/reference/libs/libs-docs.xml.in:
31288 * docs/reference/libs/libs-sections.txt:
31289 * docs/reference/plugins/plugins-docs.xml.in:
31290 * docs/reference/plugins/plugins-sections.txt:
31291 * docs/reference/plugins/plugins.types:
31292 * gst-libs/gst/vaapi/gstvaapiimage.c:
31293 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31294 * gst/vaapi/gstvaapipostproc.c:
31295 Fix a few documentation issues.
31297 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31301 Update introduction and changelog.
31303 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31305 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31306 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31307 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31308 mpeg2: allocate dummy picture for first field based I-frame.
31309 In P-pictures, prediction shall be made from the two most recently
31310 decoded reference fields. However, when the first I-frame is a field,
31311 the next field of the current picture could be a P-picture but only a
31312 single field was decoded so far. In this case, create a dummy picture
31313 with POC = -1 that will be used as reference.
31314 Some VA drivers would error out if P-pictures don't have a forward
31315 reference picture. This is true in general but not in this very specific
31318 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31320 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31321 mpeg2: fix simple to main profile fallback.
31322 Allow fallback from simple to main profile when the HW decoder does
31323 not support the former profile and that no sequence_header_extension()
31324 is available to point out this.
31326 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31328 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31329 mpeg4: improve error checking while decoding packets.
31330 decode_picture() could return an error when an MPEG-4 profile is not
31331 supported for example. In this case, the underlying VA context is not
31332 allocated and no other proper action can be taken. Likewise on exit
31333 from decode_slice().
31334 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31336 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31338 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31339 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31340 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31341 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31342 decoder: use POC to maintain the DPB.
31343 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31344 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31345 video streaming at 60 Hz.
31346 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31347 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31349 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31351 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31352 mpeg2: rework generation of presentation timestamps.
31353 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31354 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31355 max PTS from past pictures, then try to fix it up based on the duration of
31357 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31358 reconstruct a current time. Also now handle wrapped TSN correctly.
31360 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31362 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31363 mpeg2: ignore empty user-data packets.
31364 Fix tcela-8.bits conformance test.
31366 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31368 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31369 mpeg2: review and report errors accordingly.
31370 Use GST_ERROR() to report real errors instead of hiding them into
31373 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31375 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31376 mpeg2: fix invalid interlaced frame in progressive sequence.
31377 Some streams, badly constructed, could have signaled an interlaced
31378 frame while the sequence was meant to be progressive. Warn and force
31379 frame to be progressive in this case.
31381 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31383 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31384 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31385 mpeg2: add support for interlaced streams.
31386 Pictures are submitted to the HW for rendering only when both fields
31387 are decoded or current picture is a full frame.
31389 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31391 * gst-libs/gst/vaapi/Makefile.am:
31392 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31393 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31394 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31395 mpeg2: add new decoded picture buffer infrastructure.
31396 Decoded pictures are now maintained into DPB, similarly to H.264.
31397 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31399 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31401 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31402 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31403 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31404 decoder: add first-field flag to picture.
31405 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31406 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31407 as the first field. Any subsequent allocated field will become the second field.
31409 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31411 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31412 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31413 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31414 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31415 decoder: allow pictures to be cloned for field decoding.
31416 Add gst_vaapi_picture_new_field() function that clones a picture, while
31417 preserving the parent picture surface. i.e. the surface proxy reference
31418 count is increased and other fields copied as is. Besides, the picture
31419 is reset into a "non-output" mode.
31421 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31423 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31424 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31425 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31426 decoder: rework picture field flags.
31427 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31428 could be propagated to the surface proxy when it is pushed for rendering.
31429 Besides, top and bottom fields are now expressed with picture structure flags
31430 from GstVaapiSurfaceRenderFlags.
31432 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31434 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31435 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31436 decoder: add OUTPUT flag to pictures.
31437 Allow pictures to be marked as output gst_vaapi_picture_output().
31439 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31441 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31442 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31443 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31444 decoder: fix semantics of SKIPPED pictures.
31445 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31446 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31447 has nothing to do with rendering. This only means that the currently decoded
31448 picture is just a copy of its reference picture.
31450 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31452 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31453 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31454 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31455 * gst/vaapi/gstvaapipostproc.c:
31456 vaapipostproc: get "interlaced" attribute from surface proxy.
31457 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31458 vaapipostproc so that to handles cases where bitstream is interlaced
31459 but almost only frame pictures are generated. In this case, we should
31460 not be alternating between top/bottom fields.
31462 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31465 * debian.upstream/control.in:
31466 * gst/vaapi/Makefile.am:
31467 * gst/vaapi/gstvaapi.c:
31468 * gst/vaapi/gstvaapipostproc.c:
31469 * gst/vaapi/gstvaapipostproc.h:
31470 vaapipostproc: add new element for video postprocessing.
31471 Add vaapipostproc element for video postprocessing. So far, only basic
31472 bob deinterlacing is implemented. Interlaced mode is automatically
31473 detected based on sink caps ("interlaced" field).
31475 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31477 * docs/reference/libs/libs-sections.txt:
31478 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31479 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31480 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31481 * gst/vaapi/gstvaapisink.c:
31482 videobuffer: add surface render flags.
31483 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31484 to be set to the video buffer. In particular, this is mostly useful for
31485 basic deinterlacing.
31487 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31489 * gst-libs/gst/vaapi/gstvaapicompat.h:
31490 compat: add compatibility glue with VA-API 0.34+ (WIP).
31492 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31494 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31495 h264: skip all Filler Data NALs.
31497 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31499 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31500 mpeg4: check for decoder status prior to decoding packet.
31501 Make sure there is a VA surface free prior to decoding the current frame.
31502 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31504 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31506 * gst/vaapi/gstvaapidecode.c:
31507 * gst/vaapi/gstvaapidecode.h:
31508 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31509 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31510 is created and a NEWSEGMENT event arrives, downstream element may not
31511 be ready yet. So, delay this event until next element is chained in,
31512 otherwise basesink could output "Received buffer without a new-segment.
31513 Assuming timestamps start from 0".
31514 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31516 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31518 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31519 mpeg2: fix GOP timestamps when incorrect data is received.
31520 Some streams have incorrect GOP timestamps, or nothing set at all.
31521 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31522 from demuxer timestamps, which are monotonic.
31523 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31525 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31527 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31528 mpeg2: don't decode anything before the first sequence_header().
31529 Skip all pictures prior to the first sequence_header(). Besides,
31530 skip all picture_data() if there was no prior picture_header().
31531 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31533 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31535 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31536 ffmpeg: add support for interlaced streams.
31537 Evaluate interlaced stream properties.
31538 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31540 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31542 * gst/vaapi/gstvaapidecode.c:
31543 vaapidecode: propagate interlaced and TFF properties downstream.
31544 Propagate "interlaced" caps downstream and set "tff" buffer flag
31545 appropriately to output buffers for interlaced pictures.
31546 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31548 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31550 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31551 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31552 decoder: maintain caps for interlaced streams.
31553 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31555 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31557 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31559 * docs/reference/libs/libs-sections.txt:
31560 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31561 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31562 surfaceproxy: add TFF property.
31563 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31564 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31566 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31569 AUTHORS: update to match current authors.
31571 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31573 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31574 mpeg2: fix is_first_field calculation.
31575 Reset is_first_field for frame pictures. Factor out locations where
31576 the flag is updated.
31578 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31580 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31581 mpeg2: catch incorrect picture_structure from bitstreams.
31582 Assume "frame" picture structure if the syntax element was zero or if
31583 progressive_frame is set.
31585 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31587 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31588 mpeg2: fix slice_vertical_position calculation (again).
31589 VA-API expects slice_vertical_position as the initial position from the
31590 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31593 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31595 * gst/vaapi/gstvaapidecode.c:
31596 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31597 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31598 For gst_element_class_get_pad_template(), no unreferencing is necessary
31599 according to the GStreamer documentation.
31601 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31604 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31605 h264: fix slice_data_bit_offset calculation.
31606 Unlike what VA-API documentation defines, the slice_data_bit_offset
31607 represents the offset to the first macroblock in the slice data, minus
31608 any emulation prevention bytes in the slice_header().
31609 This fix copes with binary-only VA drivers that won't be fixed any
31610 time soon. Besides, this aligns with the current FFmpeg behaviour
31611 that was based on those proprietary drivers implementing the API
31614 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31616 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31617 h264: skip all Access Unit (AU) NALs.
31618 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31620 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31622 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31623 h264: fix modification process of reference picture lists.
31624 Construction of RefPicList0/1 could be off by one element.
31625 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31627 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31629 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31630 mpeg2: fix size calculation from sequence_extension().
31631 Original values from sequence_header() are 12-bit and the remaining
31632 2 most significant bits are coming from sequence_extension().
31633 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31635 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31637 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31638 mpeg2: fix slice_vertical_position calculation.
31639 Make sure to adjust slice_vertical_position if picture structure
31640 is a top or bottom field.
31642 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31644 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31645 decoder: add picture structure flags.
31647 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31649 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31650 mpeg2: fix decoding at end-of-sequence.
31652 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31654 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31655 mpeg2: fix slice_horizontal_position calculation.
31657 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31659 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31660 mpeg2: drop useless mb_y and mb_height members.
31662 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31664 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31665 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31666 6.3.15 says that "some slices may have the same slice_vertical_position,
31667 since slices may start and finish anywhere". So, we can't submit the current
31668 picture to the HW right away since subsequent slices would be missing.
31670 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31672 * gst-libs/gst/vaapi/gstvaapiimage.c:
31673 image: fix source stride in picture copy.
31675 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31677 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31678 decoder: fix double buffer free with some VA drivers.
31679 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31680 push the VA buffer object into a list of free buffers to be re-used. However,
31681 reference pictures (and data) that was kept would explicitly release the VA
31682 buffer object later on, thus possibly destroying a valid (re-used) object.
31683 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31684 semantics for VA buffers disposal and would leak memory if there is no explicit
31685 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31686 right after vaRenderPicture(). All VA drivers need to be aligned.
31688 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31690 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31691 h264: complete any current picture decoder before SPS / PPS change.
31692 This ensures the VA context is clear when the encoded resolution
31693 changes. i.e. make sure older picture is decoded with the older
31694 VA context before it changes.
31696 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31698 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31699 h264: create VA context earlier when SPS is parsed.
31701 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31703 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31704 h264: don't allocate too big data structures on stack.
31706 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31708 * gst-libs/gst/vaapi/glibcompat.h:
31709 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31710 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31711 glib: map deprecated API to glib >= 2.32 equivalents.
31712 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31713 GRecMutex, which no longer require any prior call to g_thread_init().
31715 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31717 * gst-libs/gst/vaapi/gstvaapiutils.h:
31718 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31719 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31720 glib: fix includes.
31722 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31724 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31725 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31726 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31727 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31728 cosmetics: fix warnings (drop unused variables).
31730 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31732 * gst/vaapi/gstvaapidecode.c:
31733 vaapidecode: fix another pad template ref leak.
31735 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31737 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31738 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31739 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31740 mpeg2: fix crash when there is no free surface to decode into.
31742 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
31744 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31745 display: skip profiles which have no entrypoints.
31746 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31748 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31750 * gst/vaapi/gstvaapiupload.c:
31751 vaapiupload: use g_object_unref() for GstVaapiImage.
31753 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31755 * gst/vaapi/gstvaapidecode.c:
31756 * gst/vaapi/gstvaapidownload.c:
31757 * gst/vaapi/gstvaapisink.c:
31758 * gst/vaapi/gstvaapiupload.c:
31759 plugins: fix pad template ref leaks.
31761 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31764 Bump version for development.
31766 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31772 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31776 Mention codecparsers-based decoders, FFmpeg is now optional. Update
31777 list of support HW.
31779 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31784 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31786 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31787 decoder: allocate proxy surface earlier.
31788 This simplifies gst_vaapi_picture_output() to only update the presentation
31789 timestamp and submit the proxy to the decoder for output.
31791 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31793 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31794 decoder: fix memory leak of VA objects on exit.
31795 On sequence end, if the last decoded picture is not output for rendering,
31796 then the proxy surface is not created. In this case, the original surface
31797 must be released explicitly to the context.
31799 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31801 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31802 mpeg2: use GstAdapter to track input sequence.
31803 This fixes possible memory leaks and improves performance by removing
31806 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31809 * gst-libs/gst/vaapi/Makefile.am:
31810 * gst-libs/gst/vaapi/glibcompat.h:
31811 * gst-libs/gst/vaapi/sysdeps.h:
31812 Add glib compatibility glue for older versions.
31814 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31816 * gst-libs/gst/vaapi/Makefile.am:
31817 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31818 * gst-libs/gst/vaapi/gstvaapicontext.c:
31819 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31820 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31821 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31822 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31823 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31824 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31825 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31826 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31827 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31828 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31829 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31830 * gst-libs/gst/vaapi/gstvaapiimage.c:
31831 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31832 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31833 * gst-libs/gst/vaapi/gstvaapiobject.c:
31834 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31835 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31836 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31837 * gst-libs/gst/vaapi/gstvaapisurface.c:
31838 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31839 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31840 * gst-libs/gst/vaapi/gstvaapitexture.c:
31841 * gst-libs/gst/vaapi/gstvaapiutils.c:
31842 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31843 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31844 * gst-libs/gst/vaapi/gstvaapivalue.c:
31845 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31846 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31847 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31848 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31849 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31850 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31851 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31852 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31853 * gst-libs/gst/vaapi/sysdeps.h:
31854 Add header for system-dependent definitions.
31856 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31858 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31859 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31860 * gst-libs/gst/vaapi/gstvaapiutils.c:
31861 * gst-libs/gst/vaapi/gstvaapiutils.h:
31862 decoder: optimize slice data buffers initialization.
31863 VA drivers may have a faster means to transfer user buffers to GPU
31864 buffers than using memcpy(). In particular, on Intel Gen graphics, we
31865 can use pwrite(). This provides for faster upload of bitstream and can
31866 help higher bitrates.
31867 vaapi_create_buffer() helper function was also updated to allow for
31868 un-mapped buffers and pre-initialized data for buffers.
31870 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31872 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31873 h264: simplify RefPicList reconstruction.
31875 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31877 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31878 h264: flush DPB when the end of the sequence is reached.
31880 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31882 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31883 h264: handle Decoded Picture Buffer (DPB).
31885 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31887 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31888 h264: fix pred_weight_table() reconstruction.
31889 Only the explicit pred_weight_table(), possibly with the inferred default
31890 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31891 is not set for P/SP slices.
31893 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31895 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31896 h264: execute reference picture marking process (MMCO).
31898 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31900 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31901 h264: fix presentation timestamps.
31903 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31905 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31906 h264: execute reference picture marking process (sliding window).
31908 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31910 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31911 h264: handle avcC format for decoding buffers.
31913 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31915 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31916 h264: handle codec-data.
31917 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31919 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31921 * gst-libs/gst/vaapi/Makefile.am:
31922 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31923 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31924 * gst/vaapi/gstvaapidecode.c:
31925 * tests/test-decode.c:
31926 Add initial H.264 decoder.
31928 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31930 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31931 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31932 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31933 Keep a valid reference to the proxy in GstVaapiPicture so that frames
31934 marked as "used for reference" could be kept during the lifetime of the
31935 picture. i.e. don't release them too soon as they could be re-used right
31938 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31940 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31941 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31942 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31943 decoder: properly reference count pictures.
31944 This fixes cases where a GstVaapiPicture would be destroyed whereas
31945 there is still a valid instance of it in either prev, current or
31948 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31950 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31951 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31952 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31953 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31954 decoder: simplify output of decoded frames.
31955 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31956 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31957 is already set correctly and reference count increased, if necessary.
31959 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31961 * gst-libs/gst/vaapi/Makefile.am:
31962 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31963 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31964 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31965 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31966 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31967 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31968 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31969 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31970 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31971 decoder: rework the internal VA objects API.
31972 The new API simplifies a lot reference counting and makes it more
31973 flexible for future additions/changes. The GstVaapiCodecInfo is
31974 also gone. Rather, new helper macros are provided to allocate
31975 picture, slice and quantization matrix parameter buffers.
31977 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31979 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31980 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31981 decoder: allow slices to be attached to pictures later.
31983 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31985 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31986 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31987 decoder: add ref_count to GstVaapiPicture.
31989 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31991 * gst/vaapi/gstvaapisink.c:
31992 vaapisink: cap window size to the maximum display size.
31994 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
31996 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31997 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31998 profile: match video/x-h263 as H.263 Baseline profile.
31999 HACK: qtdemux does not report profiles for H.263. So, assume plain
32000 "video/x-h263" is H.263 Baseline profile.
32001 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32003 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32005 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32006 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32007 display: report H.263 Baseline profile.
32008 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
32009 profile (VAProfileMPEG4Simple) is supported.
32011 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32013 * gst-libs/gst/vaapi/Makefile.am:
32014 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32015 Add template for workarounds.
32017 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32019 * tests/test-decode.c:
32020 tests: error out if FFmpeg|codecparsers are not supported.
32022 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32024 * docs/reference/libs/libs-sections.txt:
32025 * gst-libs/gst/vaapi/gstvaapisurface.h:
32026 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32027 surface: don't expose gst_vaapi_surface_get_parent_context().
32028 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
32029 It's just an internal helper function. However, it's still possible to get
32030 the parent context through the "parent-context" property.
32032 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32034 * tests/Makefile.am:
32035 * tests/test-subpicture.c:
32036 tests: fix build without FFmpeg.
32038 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32041 Bump version for development.
32043 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32049 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32052 * debian.upstream/copyright:
32053 * gst-libs/gst/vaapi/gstvaapicontext.c:
32054 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32055 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32056 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32057 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32058 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32059 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32060 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32061 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32062 * gst-libs/gst/vaapi/gstvaapiimage.c:
32063 * gst-libs/gst/vaapi/gstvaapiimage.h:
32064 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32065 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32066 * gst-libs/gst/vaapi/gstvaapiutils.c:
32067 * gst-libs/gst/vaapi/gstvaapiutils.h:
32068 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32069 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32070 * gst/vaapi/gstvaapi.c:
32071 * gst/vaapi/gstvaapidecode.c:
32072 * gst/vaapi/gstvaapidownload.c:
32073 * gst/vaapi/gstvaapidownload.h:
32074 * gst/vaapi/gstvaapipluginutil.c:
32075 * gst/vaapi/gstvaapipluginutil.h:
32076 * gst/vaapi/gstvaapisink.c:
32077 * gst/vaapi/gstvaapiupload.c:
32078 * gst/vaapi/gstvaapiupload.h:
32079 * tests/test-decode.c:
32080 legal: fix year for some copyright notices.
32082 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32084 * gst-libs/gst/vaapi/gstvaapicontext.c:
32085 * gst-libs/gst/vaapi/gstvaapicontext.h:
32086 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32087 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32088 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32089 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32090 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32091 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32092 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32093 * gst-libs/gst/vaapi/gstvaapiimage.c:
32094 * gst-libs/gst/vaapi/gstvaapiimage.h:
32095 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32096 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32097 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32098 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32099 * gst-libs/gst/vaapi/gstvaapisurface.c:
32100 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32101 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32102 * gst-libs/gst/vaapi/gstvaapiutils.c:
32103 * gst-libs/gst/vaapi/gstvaapiutils.h:
32104 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32105 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32106 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32107 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32108 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32109 * gst/vaapi/gstvaapidownload.h:
32110 * gst/vaapi/gstvaapisink.h:
32111 * gst/vaapi/gstvaapiupload.h:
32112 * tests/test-decode.c:
32113 legal: add Intel copyright on modified files.
32115 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32117 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32118 * gst-libs/gst/vaapi/gstvaapicompat.h:
32119 * gst-libs/gst/vaapi/gstvaapicontext.c:
32120 * gst-libs/gst/vaapi/gstvaapicontext.h:
32121 * gst-libs/gst/vaapi/gstvaapidebug.h:
32122 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32123 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32124 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32125 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32126 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32127 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32128 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32129 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32130 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32131 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32132 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32133 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32134 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32135 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32136 * gst-libs/gst/vaapi/gstvaapiimage.c:
32137 * gst-libs/gst/vaapi/gstvaapiimage.h:
32138 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32139 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32140 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32141 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32142 * gst-libs/gst/vaapi/gstvaapiobject.c:
32143 * gst-libs/gst/vaapi/gstvaapiobject.h:
32144 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32145 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32146 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32147 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32148 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32149 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32150 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32151 * gst-libs/gst/vaapi/gstvaapisurface.c:
32152 * gst-libs/gst/vaapi/gstvaapisurface.h:
32153 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32154 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32155 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32156 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32157 * gst-libs/gst/vaapi/gstvaapitexture.c:
32158 * gst-libs/gst/vaapi/gstvaapitexture.h:
32159 * gst-libs/gst/vaapi/gstvaapitypes.h:
32160 * gst-libs/gst/vaapi/gstvaapiutils.c:
32161 * gst-libs/gst/vaapi/gstvaapiutils.h:
32162 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32163 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32164 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32165 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32166 * gst-libs/gst/vaapi/gstvaapivalue.c:
32167 * gst-libs/gst/vaapi/gstvaapivalue.h:
32168 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32169 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32170 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32171 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32172 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32173 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32174 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32175 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32176 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32177 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32178 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32179 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32180 * gst/vaapi/gstvaapidecode.c:
32181 * gst/vaapi/gstvaapidecode.h:
32182 * gst/vaapi/gstvaapidownload.c:
32183 * gst/vaapi/gstvaapidownload.h:
32184 * gst/vaapi/gstvaapisink.c:
32185 * gst/vaapi/gstvaapisink.h:
32186 * gst/vaapi/gstvaapiupload.c:
32187 * gst/vaapi/gstvaapiupload.h:
32190 * tests/test-decode.c:
32191 * tests/test-decode.h:
32192 * tests/test-display.c:
32193 * tests/test-h264.c:
32194 * tests/test-h264.h:
32195 * tests/test-mpeg2.c:
32196 * tests/test-mpeg2.h:
32197 * tests/test-surfaces.c:
32198 * tests/test-textures.c:
32199 * tests/test-vc1.c:
32200 * tests/test-vc1.h:
32201 * tests/test-windows.c:
32202 legal: fix copyright notices to include "Copyright" term.
32204 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32206 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32207 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32208 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32209 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32211 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32213 * gst-libs/gst/vaapi/Makefile.am:
32214 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32215 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32216 * gst/vaapi/gstvaapidecode.c:
32217 Add initial MPEG-4 decoder.
32218 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32220 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32222 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32223 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32224 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32225 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32227 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32229 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32230 vc1: fix codec-data decoding for WMV3 format.
32232 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32234 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32235 vc1: fix presentation timestamps.
32237 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32239 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32240 vc1: fix MV mode packing.
32242 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32244 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32245 vc1: handle codec-data.
32247 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32249 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32250 vc1: handle encapsulated bitstreams.
32252 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32254 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32255 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32256 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32257 vc1: fix bitplanes decoding.
32259 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32261 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32262 vc1: fix BFRACTION reconstruction.
32264 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32266 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32267 vc1: fix framerate calculation.
32269 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32271 * gst-libs/gst/vaapi/Makefile.am:
32272 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32273 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32274 * gst/vaapi/gstvaapidecode.c:
32275 * tests/test-decode.c:
32276 Add initial VC-1 decoder.
32278 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32280 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32281 mpeg2: fix first field detection.
32282 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32284 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32286 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32287 mpeg2: fix quantisation matrix construction.
32289 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32291 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32292 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32293 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32294 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32296 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32298 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32299 mpeg2: fix packets spanning over two buffers.
32301 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32303 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32304 mpeg2: ignore system start codes (PES headers).
32306 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32308 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32309 mpeg2: handle closed_gop.
32311 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32313 * gst-libs/gst/vaapi/Makefile.am:
32314 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32315 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32316 * gst/vaapi/gstvaapidecode.c:
32317 * tests/test-decode.c:
32318 Add initial MPEG-2 decoder.
32320 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32323 * gst-libs/gst/vaapi/Makefile.am:
32324 * gst/vaapi/gstvaapidecode.c:
32325 * tests/test-decode.c:
32326 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32328 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32330 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32331 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32332 Add VA decoder helpers.
32334 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32336 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32337 decoder: add new error codes.
32338 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32339 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32341 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32343 * gst-libs/gst/vaapi/Makefile.am:
32344 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32345 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32346 Add timestamp buffer store helper utils.
32348 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32350 * gst-libs/gst/vaapi/gstvaapiutils.c:
32351 * gst-libs/gst/vaapi/gstvaapiutils.h:
32352 Add VA buffer helpers.
32354 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32356 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32357 utils: slight improvements to gl_bind_texture().
32359 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32361 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32362 utils: pretty-print output of gl_get_error_string().
32364 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32366 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32367 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32369 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32371 * gst-libs/gst/vaapi/gstvaapiutils.c:
32372 utils: simplify string of VAProfile/VAEntrypoint.
32374 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32376 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32377 * gst-libs/gst/vaapi/gstvaapiutils.c:
32378 * gst-libs/gst/vaapi/gstvaapiutils.h:
32379 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32381 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32386 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32388 * tests/test-decode.c:
32389 tests: check for shared VA displays (display cache).
32391 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32393 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32394 display: always free VA display cache if it is empty.
32396 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32398 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32399 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32400 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32401 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32402 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32403 display: use VA display cache for X11 and GLX winsys.
32405 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32407 * gst-libs/gst/vaapi/Makefile.am:
32408 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32409 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32410 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32411 display: implement a VA display cache.
32413 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32415 * gst/vaapi/gstvaapipluginutil.c:
32416 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32417 This ensures the display name provided to gst_vaapi_display_*_new()
32418 maps to the system defaults, instead of forcing "" that could be different
32419 from the current DISPLAY name.
32421 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32423 * gst/vaapi/gstvaapiupload.c:
32424 vaapiupload: only set caps on newly created buffers.
32425 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32427 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32429 * gst/vaapi/gstvaapisink.c:
32430 vaapisink: ensure VA display in GstBaseSink::start() hook.
32431 This ensures a VA display is ready by the time upstream elements request
32434 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32436 * gst/vaapi/gstvaapisink.c:
32437 vaapisink: don't leak GL texture.
32438 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32440 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32442 * gst/vaapi/gstvaapisink.c:
32443 vaapisink: fix calculation of render region.
32445 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32447 * gst/vaapi/gstvaapisink.c:
32448 vaapisink: automatically fit video to window.
32450 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32452 * gst/vaapi/gstvaapisink.c:
32453 vaapisink: implement GstXOverlay::set_render_rectangle().
32455 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32457 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32458 window: always check geometry when the window is mapped.
32460 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32462 * gst-libs/gst/vaapi/gstvaapiutils.c:
32463 Add missing profiles from VA-API 0.32.0.
32464 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32466 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32469 .gitignore: add test-subpicture.
32471 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32474 Bump version for development.
32476 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32482 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32484 * tests/Makefile.am:
32485 tests: fix make dist (ship with test-subpicture-data.h).
32487 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32492 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32494 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32495 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32496 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32497 decoder: fix possible leak of VA surfaces.
32498 Under some circumstances, we could have leaked a surface, thus not
32499 releasing it to the pool of available surfaces in the VA context.
32500 The strategy is now to use a proxy earlier and automatically ref/unref
32501 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32503 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32505 * docs/reference/libs/libs-sections.txt:
32506 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32507 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32508 surfaceproxy: add helper to retrieve the VA surface ID.
32510 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32512 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32513 surfaceproxy: simplify destruction.
32514 Also make sure to always make sure to release the surface back to the
32515 pool of surfaces in the associated VA context, if any.
32517 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32519 * gst/vaapi/gstvaapidecode.c:
32520 vaapidecode: fix deinitialization order.
32522 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32524 * gst-libs/gst/vaapi/gstvaapicontext.c:
32525 context: avoid self reference loops with surfaces.
32527 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32529 * debian.upstream/control.in:
32530 debian: update control.in description for new plugins.
32532 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32534 * gst/vaapi/gstvaapiupload.c:
32535 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32536 This also fixes extra structures, beyond the one at index 0, to hold
32537 the right additional values.
32539 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32541 * gst/vaapi/gstvaapiupload.c:
32542 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32544 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32547 * docs/reference/plugins/plugins-docs.xml.in:
32548 * docs/reference/plugins/plugins-sections.txt:
32549 * docs/reference/plugins/plugins.types:
32550 * gst/vaapi/Makefile.am:
32551 * gst/vaapi/gstvaapi.c:
32552 * gst/vaapi/gstvaapidownload.c:
32553 * gst/vaapi/gstvaapidownload.h:
32554 vaapidownload: add new plugin to download pixels from VA surfaces.
32556 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32558 * gst/vaapi/gstvaapipluginutil.c:
32559 * gst/vaapi/gstvaapipluginutil.h:
32560 vaapipluingutils: add helper to append surface caps to YUV caps.
32562 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32564 * docs/reference/libs/libs-sections.txt:
32565 * gst-libs/gst/vaapi/gstvaapiimage.c:
32566 * gst-libs/gst/vaapi/gstvaapiimage.h:
32567 image: add helpers to extract pixels to user buffers.
32569 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32571 * gst-libs/gst/vaapi/gstvaapiimage.c:
32572 image: simplify initialization of raw images from video buffers.
32574 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32576 * gst-libs/gst/vaapi/gstvaapiimage.c:
32577 image: fix update from NV12 buffers.
32579 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32581 * gst/vaapi/gstvaapiupload.c:
32582 vaapiupload: fix memory leak in _init() function.
32584 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32588 * debian.upstream/control.in:
32589 * docs/reference/plugins/plugins-docs.xml.in:
32590 * docs/reference/plugins/plugins-sections.txt:
32591 * docs/reference/plugins/plugins.types:
32592 * gst/vaapi/Makefile.am:
32593 * gst/vaapi/gstvaapi.c:
32594 * gst/vaapi/gstvaapiupload.c:
32595 * gst/vaapi/gstvaapiupload.h:
32596 Rename vaapiconvert element to vaapiupload.
32598 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32601 Bump version for development.
32603 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32609 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32614 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32616 * gst-libs/gst/vaapi/gstvaapisurface.c:
32617 * gst-libs/gst/vaapi/gstvaapisurface.h:
32618 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32619 * gst/vaapi/gstvaapisink.c:
32620 surface: apply composition to the parent context, if requested.
32622 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32624 * docs/reference/libs/libs-sections.txt:
32625 * gst-libs/gst/vaapi/gstvaapicontext.c:
32626 * gst-libs/gst/vaapi/gstvaapicontext.h:
32627 context: make it possible to apply composition globally.
32629 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32631 * gst-libs/gst/vaapi/gstvaapisurface.c:
32632 surface: fix associate subpicture to not report deassociation errors.
32634 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32636 * gst-libs/gst/vaapi/gstvaapisurface.c:
32637 surface: fix typo in debug message.
32639 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32641 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32642 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32643 * gst-libs/gst/vaapi/gstvaapisurface.c:
32644 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32646 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32648 * docs/reference/libs/libs-sections.txt:
32649 * gst-libs/gst/vaapi/Makefile.am:
32650 * gst-libs/gst/vaapi/gstvaapicontext.c:
32651 * gst-libs/gst/vaapi/gstvaapisurface.c:
32652 * gst-libs/gst/vaapi/gstvaapisurface.h:
32653 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32654 surface: record parent context.
32656 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32658 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32659 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32660 * gst/vaapi/gstvaapidecode.c:
32661 * gst/vaapi/gstvaapisink.c:
32664 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32666 * gst-libs/gst/vaapi/gstvaapisurface.c:
32667 * gst-libs/gst/vaapi/gstvaapisurface.h:
32668 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32669 * gst/vaapi/gstvaapisink.c:
32670 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32672 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32675 configure: check for GstVideoOverlayComposition.
32677 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32682 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32684 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32685 converter: add support for GstVideoOverlayComposition planes.
32686 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32688 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32690 * gst/vaapi/gstvaapisink.c:
32691 vaapisink: handle GstVideoOverlayComposition planes.
32692 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32694 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32696 * gst-libs/gst/vaapi/gstvaapisurface.c:
32697 surface: use unscaled overlay rectangle for blending.
32699 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32701 * gst-libs/gst/vaapi/gstvaapisurface.c:
32702 surface: fix VA image leak when an error occurred.
32704 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32706 * gst-libs/gst/vaapi/gstvaapisurface.c:
32707 * gst-libs/gst/vaapi/gstvaapisurface.h:
32708 surface: add helper to handle GstVideoOverlayComposition.
32709 This helper resets the subpictures to reflect the current composition
32710 layers provided with the buffers.
32711 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32713 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32715 * docs/reference/libs/libs-sections.txt:
32716 * gst-libs/gst/vaapi/Makefile.am:
32717 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32718 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32719 * gst/vaapi/gstvaapiconvert.c:
32720 image: add gst_vaapi_image_format_from_video() helper.
32722 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32724 * gst-libs/gst/vaapi/gstvaapiimage.c:
32725 * gst-libs/gst/vaapi/gstvaapiimage.h:
32726 image: allow updates from GstVaapiImageRaw.
32728 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32730 * gst-libs/gst/vaapi/gstvaapiimage.c:
32731 * gst-libs/gst/vaapi/gstvaapiimage.h:
32732 * gst/vaapi/gstvaapiconvert.c:
32733 * tests/test-subpicture.c:
32734 image: allow partial updates.
32736 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32738 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32739 subpicture: fix doc for gst_vaapi_subpicture_set_image().
32741 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32743 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32744 display: fix has_image_format() to check against subpicture formats.
32746 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32748 * tests/test-subpicture.c:
32749 tests: fix subpicture test.
32751 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32753 * tests/Makefile.am:
32754 * tests/test-subpicture-data.c:
32755 * tests/test-subpicture-data.h:
32756 * tests/test-subpicture.c:
32757 tests: add test for subpictures.
32758 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32760 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32762 * gst/vaapi/gstvaapiconvert.c:
32763 * gst/vaapi/gstvaapidecode.c:
32764 Add missing video context queries.
32765 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32767 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32770 Bump version for development.
32772 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32774 * gst-libs/gst/video/Makefile.am:
32775 * gst-libs/gst/video/gstbasevideocodec.c:
32776 * gst-libs/gst/video/gstbasevideocodec.h:
32777 * gst-libs/gst/video/gstbasevideodecoder.c:
32778 * gst-libs/gst/video/gstbasevideodecoder.h:
32779 * gst-libs/gst/video/gstbasevideoutils.c:
32780 * gst-libs/gst/video/gstbasevideoutils.h:
32781 Drop unused copy of GstBaseVideoDecoder.
32783 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32789 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32792 README: update dependencies.
32794 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32799 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32802 configure: check for GstBaseSink 'query' vfunc.
32804 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32806 * gst/vaapi/Makefile.am:
32807 vaapiplugin: include local build dir to CFLAGS for generated files.
32809 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32812 autogen: don't configure if NO_CONFIGURE variable is set.
32814 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32816 * gst/vaapi/gstvaapidecode.c:
32817 * gst/vaapi/gstvaapidecode.h:
32818 vaapidecode: return sink caps template if decoder is in NULL state.
32819 Otherwise, the decoder would always create its own X display instead
32820 of probing it from the downstream element, which is not reliable.
32821 e.g. DISPLAY is not :0 or when running on Wayland.
32822 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32824 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32826 * gst/vaapi/gstvaapiconvert.c:
32827 * gst/vaapi/gstvaapidecode.c:
32828 vaapiplugin: properly set surface type to "vaapi" in caps.
32830 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32832 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32833 decoder: drop unused headers.
32835 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32837 * gst/vaapi/gstvaapiconvert.c:
32838 * gst/vaapi/gstvaapidecode.c:
32839 vaapiplugin: properly set opengl support in caps.
32840 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32842 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32844 * gst/vaapi/gstvaapiconvert.c:
32845 * gst/vaapi/gstvaapidecode.c:
32846 vaapiplugin: allocate GLX buffers when supported.
32847 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32849 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32851 * gst-libs/gst/vaapi/Makefile.am:
32852 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32853 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32854 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32855 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32856 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32857 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32858 videobuffer: add GLX buffer support.
32859 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32861 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32863 * gst-libs/gst/vaapi/Makefile.am:
32864 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32865 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32866 Port to GstSurfaceBuffer interface.
32867 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32869 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32871 * gst/vaapi/gstvaapidecode.c:
32872 * gst/vaapi/gstvaapisink.c:
32873 Don't use downstream buffer allocation.
32874 With the new video/x-surface abstraction, we can't rely on having a VA
32875 specific sink downstream. Also, there was no particular reason to do that.
32876 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32878 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32880 * gst-libs/gst/vaapi/Makefile.am:
32881 * gst-libs/gst/vaapi/gstvaapicontext.c:
32882 * gst-libs/gst/vaapi/gstvaapisurface.h:
32883 * gst/vaapi/gstvaapiconvert.c:
32884 * gst/vaapi/gstvaapisink.c:
32885 * tests/Makefile.am:
32886 * tests/test-surfaces.c:
32887 Change caps to use new video/x-surface generic type.
32888 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32890 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32893 * gst-libs/gst/vaapi/Makefile.am:
32894 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32895 * gst/vaapi/Makefile.am:
32896 * gst/vaapi/gstvaapiconvert.c:
32897 * gst/vaapi/gstvaapidecode.c:
32898 * gst/vaapi/gstvaapipluginutil.c:
32899 * gst/vaapi/gstvaapipluginutil.h:
32900 * gst/vaapi/gstvaapisink.c:
32901 * gst/vaapi/gstvaapisink.h:
32902 Port to GstVideoContext interface.
32903 This new interface allows for upstream and downstream display sharing
32904 that works in both static and dynamic pipelines.
32905 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32907 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32909 * gst/vaapi/gstvaapisink.c:
32910 vaapisink: use GST_ERROR to print error messages.
32912 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32914 * gst/vaapi/Makefile.am:
32915 vaapiplugin: link against VA/GLX when enabled.
32917 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32919 * gst/vaapi/gstvaapiconvert.c:
32920 * gst/vaapi/gstvaapisink.c:
32921 Add Intel copyright information.
32923 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32925 * gst/vaapi/gstvaapisink.c:
32926 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32928 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32932 * gst-libs/gst/Makefile.am:
32933 * gst-libs/gst/gstutils_version.h.in:
32934 Add new GStreamer version check utilities.
32936 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32938 * gst/vaapi/gstvaapisink.c:
32939 vaapisink: replace the deprecated xoverlay API with the new one.
32940 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32942 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32945 configure: allow for pre-releases.
32947 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32949 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32950 display: destroy display on creation failure.
32951 This allows element to detect that the display creation has actually
32953 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32955 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32957 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32958 display: don't crash when config is empty.
32959 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32961 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32964 * debian.upstream/copyright:
32965 doc: mention Collabora copyrights.
32967 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32970 .gitignore: refine for generated docs.
32972 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32975 * docs/reference/plugins/Makefile.am:
32977 * gst/vaapi/Makefile.am:
32978 * gst/vaapi/gstvaapi.c:
32979 * gst/vaapi/gstvaapiconvert.c:
32980 * gst/vaapi/gstvaapiconvert.h:
32981 * gst/vaapi/gstvaapidecode.c:
32982 * gst/vaapi/gstvaapidecode.h:
32983 * gst/vaapi/gstvaapisink.c:
32984 * gst/vaapi/gstvaapisink.h:
32985 * gst/vaapiconvert/Makefile.am:
32986 * gst/vaapidecode/Makefile.am:
32987 Group all plugins into the same bundle
32988 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32990 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32993 Bump version for development.
32995 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32998 * debian.upstream/control.in:
32999 debian: build against upstream libva packages.
33001 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33003 * docs/reference/libs/Makefile.am:
33004 * docs/reference/plugins/Makefile.am:
33005 * tests/Makefile.am:
33006 Fix build on Ubuntu 11.10 (Oneric).
33008 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33013 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33017 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33019 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33021 * gst/vaapiconvert/gstvaapiconvert.c:
33022 * gst/vaapidecode/gstvaapidecode.c:
33023 * gst/vaapisink/gstvaapisink.c:
33024 Update license in plugin definition
33025 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33027 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33030 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33031 decoder: fix use of invalid data at the end-of-stream.
33033 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33035 * gst/vaapiconvert/gstvaapiconvert.c:
33036 vaapiconvert: fix some warnings.
33038 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33041 * debian.upstream/changelog.in:
33042 * debian.upstream/control.in:
33043 * debian.upstream/copyright:
33044 * gst/vaapiconvert/gstvaapiconvert.c:
33045 * gst/vaapidecode/gstvaapidecode.c:
33046 * gst/vaapisink/gstvaapisink.c:
33047 Update with my current e-mail address.
33049 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33053 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
33055 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
33059 * tests/test-decode.c:
33060 * tests/test-decode.h:
33061 * tests/test-display.c:
33062 * tests/test-h264.c:
33063 * tests/test-h264.h:
33064 * tests/test-mpeg2.c:
33065 * tests/test-mpeg2.h:
33066 * tests/test-surfaces.c:
33067 * tests/test-textures.c:
33068 * tests/test-vc1.c:
33069 * tests/test-vc1.h:
33070 * tests/test-windows.c:
33071 switch tests licence to LGPL v2.1+
33073 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
33077 * debian.upstream/copyright:
33078 * gst/vaapiconvert/gstvaapiconvert.c:
33079 * gst/vaapiconvert/gstvaapiconvert.h:
33080 * gst/vaapidecode/gstvaapidecode.c:
33081 * gst/vaapidecode/gstvaapidecode.h:
33082 * gst/vaapisink/gstvaapisink.c:
33083 * gst/vaapisink/gstvaapisink.h:
33084 move plugins to LGPL v2.1+
33086 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33088 * gst/vaapidecode/gstvaapidecode.c:
33089 vaapidecode: fix sink caps to not expose size information.
33090 This fixes this particular issue:
33091 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
33092 a real subset of its template caps
33094 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33097 * gst/vaapidecode/gstvaapidecode.c:
33098 vaapidecode: fix decoding of MPEG-2 PS files.
33100 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33102 * gst-libs/gst/vaapi/Makefile.am:
33103 Cosmetics (sort source files).
33105 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33107 * gst/vaapiconvert/gstvaapiconvert.c:
33108 * gst/vaapiconvert/gstvaapiconvert.h:
33109 vaapiconvert: fix direct-rendering caps detection.
33111 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33113 * gst-libs/gst/vaapi/gstvaapiimage.c:
33114 Fix gst_vaapi_image_new_with_image().
33116 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33118 * gst/vaapiconvert/gstvaapiconvert.c:
33119 vaapiconvert: warn when surface failed to be updated with image.
33121 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33123 * gst/vaapiconvert/gstvaapiconvert.c:
33124 vaapiconvert: fix autodetection for vaDeriveImage() support.
33126 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33128 * gst/vaapiconvert/gstvaapiconvert.c:
33129 vaapiconvert: fix memory leak (VA surface image).
33131 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33134 * gst/vaapiconvert/gstvaapiconvert.c:
33135 vaapiconvert: fix direct-rendering mode.
33137 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33139 * docs/reference/libs/libs-sections.txt:
33140 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33141 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33142 Add gst_vaapi_video_buffer_new_from_buffer().
33143 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33144 Any image, surface or surface proxy will be inherited from the source buffer
33145 if it is a GstVaapiVideoBuffer.
33147 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33149 * gst/vaapiconvert/gstvaapiconvert.c:
33150 vaapiconvert: protect access to direct_rendering.
33152 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33154 * gst/vaapiconvert/gstvaapiconvert.c:
33155 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33157 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33161 * debian.upstream/copyright:
33162 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33163 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33164 * gst-libs/gst/vaapi/gstvaapisurface.h:
33165 * gst/vaapidecode/gstvaapidecode.c:
33166 * gst/vaapidecode/gstvaapidecode.h:
33167 Add Intel copyright information.
33169 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33174 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33176 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33177 Fix build with newer FFmpeg versions.
33179 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33181 * gst/vaapidecode/gstvaapidecode.c:
33182 * gst/vaapidecode/gstvaapidecode.h:
33183 Fix decoding of MPEG-2 TS files.
33185 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33187 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33188 Report caps update only once per video resolution change.
33190 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33192 * gst-libs/gst/vaapi/gstvaapisurface.h:
33193 Add canonical form (type name) of VA surface caps.
33195 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33198 Bump version for development.
33200 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33203 Use pretty build output with automake >= 1.11.
33205 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33207 * gst/vaapiconvert/Makefile.am:
33208 * gst/vaapidecode/Makefile.am:
33209 * gst/vaapisink/Makefile.am:
33210 * tests/Makefile.am:
33211 Fix build with libva headers not in a standard include dir.
33213 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33218 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33220 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33221 * gst-libs/gst/vaapi/gstvaapicompat.h:
33222 * gst-libs/gst/vaapi/gstvaapicontext.c:
33223 * gst-libs/gst/vaapi/gstvaapicontext.h:
33224 * gst-libs/gst/vaapi/gstvaapidebug.h:
33225 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33226 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33227 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33228 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33229 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33230 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33231 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33232 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33233 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33234 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33235 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33236 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33237 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33238 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33239 * gst-libs/gst/vaapi/gstvaapiimage.c:
33240 * gst-libs/gst/vaapi/gstvaapiimage.h:
33241 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33242 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33243 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33244 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33245 * gst-libs/gst/vaapi/gstvaapiobject.c:
33246 * gst-libs/gst/vaapi/gstvaapiobject.h:
33247 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33248 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33249 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33250 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33251 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33252 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33253 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33254 * gst-libs/gst/vaapi/gstvaapisurface.c:
33255 * gst-libs/gst/vaapi/gstvaapisurface.h:
33256 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33257 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33258 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33259 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33260 * gst-libs/gst/vaapi/gstvaapitexture.c:
33261 * gst-libs/gst/vaapi/gstvaapitexture.h:
33262 * gst-libs/gst/vaapi/gstvaapitypes.h:
33263 * gst-libs/gst/vaapi/gstvaapiutils.c:
33264 * gst-libs/gst/vaapi/gstvaapiutils.h:
33265 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33266 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33267 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33268 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33269 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33270 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33271 * gst-libs/gst/vaapi/gstvaapivalue.c:
33272 * gst-libs/gst/vaapi/gstvaapivalue.h:
33273 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33274 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33275 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33276 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33277 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33278 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33279 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33280 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33281 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33282 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33283 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33284 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33285 * gst/vaapiconvert/gstvaapiconvert.c:
33286 * gst/vaapiconvert/gstvaapiconvert.h:
33287 * gst/vaapidecode/gstvaapidecode.c:
33288 * gst/vaapidecode/gstvaapidecode.h:
33289 * gst/vaapisink/gstvaapisink.c:
33290 * gst/vaapisink/gstvaapisink.h:
33293 * tests/test-decode.c:
33294 * tests/test-decode.h:
33295 * tests/test-display.c:
33296 * tests/test-h264.c:
33297 * tests/test-h264.h:
33298 * tests/test-mpeg2.c:
33299 * tests/test-mpeg2.h:
33300 * tests/test-surfaces.c:
33301 * tests/test-textures.c:
33302 * tests/test-vc1.c:
33303 * tests/test-vc1.h:
33304 * tests/test-windows.c:
33305 Update copyright notice.
33307 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33310 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33311 * gst-libs/gst/vaapi/gstvaapisurface.c:
33312 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33313 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33314 * gst-libs/gst/vaapi/gstvaapitexture.c:
33315 * gst-libs/gst/vaapi/gstvaapiutils.c:
33316 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33317 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33318 * gst-libs/gst/vaapi/gstvaapivalue.c:
33319 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33320 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33321 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33322 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33323 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33324 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33325 Fix licensing terms.
33327 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33332 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33334 * debian.upstream/copyright:
33335 Fix license terms...
33337 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33339 * gst/vaapisink/gstvaapisink.c:
33340 Render pretty background only in use-reflection=true mode.
33342 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33347 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33349 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33350 Drop the GLX 1.3 requirement.
33352 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33354 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33355 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33356 Call the GLX/Pixmap related functions through the vtable.
33358 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33362 * gst-libs/gst/vaapi/Makefile.am:
33363 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33364 Drop dependency on libavformat.
33366 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33368 * gst-libs/gst/video/gstbasevideodecoder.c:
33369 * gst-libs/gst/video/gstbasevideodecoder.h:
33370 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33372 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33374 * gst-libs/gst/video/gstbasevideodecoder.c:
33375 * gst-libs/gst/video/gstbasevideoutils.c:
33376 * gst-libs/gst/video/gstbasevideoutils.h:
33377 Drop superfluous functions.
33379 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33381 * gst-libs/gst/video/gstbasevideodecoder.c:
33382 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33384 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33386 * gst-libs/gst/video/gstbasevideodecoder.c:
33387 Further drop dependency on libgstvideo.
33389 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33391 * gst-libs/gst/video/Makefile.am:
33392 * gst-libs/gst/video/gstbasevideocodec.c:
33393 * gst-libs/gst/video/gstbasevideocodec.h:
33394 * gst-libs/gst/video/gstbasevideodecoder.c:
33395 * gst-libs/gst/video/gstbasevideodecoder.h:
33396 * gst-libs/gst/video/gstbasevideoutils.c:
33397 * gst-libs/gst/video/gstbasevideoutils.h:
33398 Add GstBaseVideoDecoder from gst-plugins-bad git.
33400 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33402 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33403 Fix GLX version check.
33405 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33409 Bump version for development.
33411 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33414 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33415 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33417 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33422 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33424 * gst-libs/gst/vaapi/gstvaapicompat.h:
33425 Fix build with older VA-API 0.29-sds.
33427 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33429 * gst/vaapisink/gstvaapisink.c:
33430 * gst/vaapisink/gstvaapisink.h:
33431 Fix upscaling in foreign window (Totem).
33433 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33435 * gst/vaapisink/gstvaapisink.c:
33436 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33438 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33441 * gst/vaapisink/gstvaapisink.c:
33442 Fix video rendering rect within an embedder window (Totem).
33444 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33447 * gst/vaapisink/gstvaapisink.c:
33448 Disable GLX rendering when vaapisink uses a foreign X window.
33450 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33452 * gst/vaapisink/gstvaapisink.c:
33453 Simplify GLX rendering code.
33455 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33458 Bump version for development.
33460 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33465 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33467 * gst/vaapidecode/gstvaapidecode.c:
33468 Wait for at most one second for a VA surface to become available.
33470 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33474 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33476 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33480 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33481 Fix decoder caps to report codec aliases.
33483 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33486 * gst/vaapidecode/gstvaapidecode.c:
33487 * gst/vaapidecode/gstvaapidecode.h:
33488 Fix VC-1 decoding through the playbin2 pipeline.
33490 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33492 * docs/reference/libs/libs-sections.txt:
33493 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33494 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33495 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33496 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33497 Regularly update and expose decoder caps.
33499 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33501 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33502 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33503 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33504 Add mechanism to reinsert buffer leftovers into the queue.
33506 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33509 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33510 Fix memory leak of encoded buffers.
33512 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33514 * docs/reference/libs/libs-sections.txt:
33515 * gst-libs/gst/vaapi/gstvaapicontext.c:
33516 * gst-libs/gst/vaapi/gstvaapicontext.h:
33517 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33518 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33519 Check for out-of-free-surfaces condition.
33521 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33523 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33524 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33526 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33528 * gst/vaapisink/gstvaapisink.c:
33529 Improve debug info for gst_vaapisink_ensure_render_rect().
33531 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33534 Bump version for development.
33536 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33541 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33543 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33544 Improve previous fix.
33546 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33549 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33550 Fix a crash in the FFmpeg decoder on close.
33552 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33555 Sort platforms by name.
33557 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33561 Bump version for development.
33563 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33565 * gst/vaapisink/gstvaapisink.c:
33566 Add debug info for _show_frame().
33568 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33571 Nuke older build dir.
33573 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33575 * debian.upstream/control.in:
33576 Fix packaging deps.
33578 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33583 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33586 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33587 Fix OpenGL texture internal format (Clutter).
33589 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33594 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33596 * gst/vaapisink/gstvaapisink.c:
33597 Debug video & display PARs.
33599 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33601 * gst/vaapisink/gstvaapisink.c:
33602 Use XGetGeometry() to retrieve the window size.
33604 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33606 * gst/vaapisink/gstvaapisink.c:
33609 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33611 * gst/vaapisink/gstvaapisink.c:
33612 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33614 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33617 Drop obsolete comment.
33619 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33624 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33626 * gst/vaapidecode/gstvaapidecode.c:
33627 Fix GstVaapiDisplay refcounting in vaapidecode.
33629 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33631 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33634 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33636 * gst/vaapisink/gstvaapisink.c:
33637 * gst/vaapisink/gstvaapisink.h:
33638 Fix render rect when the foreign window size changes.
33640 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33644 * gst/vaapisink/Makefile.am:
33645 * gst/vaapisink/gstvaapisink.c:
33646 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33648 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33651 Update deps to match configure.ac versions.
33653 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33655 * gst/vaapiconvert/gstvaapiconvert.c:
33656 * gst/vaapidecode/gstvaapidecode.c:
33657 * gst/vaapisink/gstvaapisink.c:
33660 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33663 * gst/vaapidecode/Makefile.am:
33664 * gst/vaapidecode/gstvaapidecode.c:
33665 * gst/vaapidecode/gstvaapidecode.h:
33666 Fix vaapidecode to expose the HW supported caps only.
33668 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33670 * gst/vaapidecode/gstvaapidecode.c:
33671 Initialize decoder earlier.
33673 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33677 * gst/vaapidecode/gstvaapidecode.c:
33678 Fix integration within the playbin2 pipeline.
33680 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33682 * docs/reference/libs/Makefile.am:
33683 Exclude gstvaapiutils_gst.h from docs for now.
33685 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33687 * gst/vaapiconvert/gstvaapiconvert.c:
33688 * gst/vaapidecode/gstvaapidecode.c:
33689 * gst/vaapisink/gstvaapisink.c:
33690 Raise VA-API plugins ranks.
33692 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33694 * gst-libs/gst/vaapi/Makefile.am:
33695 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33696 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33697 Add gst_vaapi_display_lookup_downstream() helper.
33699 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33701 * gst/vaapidecode/gstvaapidecode.c:
33702 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33704 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33706 * docs/reference/libs/libs-sections.txt:
33707 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33708 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33709 * gst/vaapisink/gstvaapisink.c:
33710 Expose VA display through GstVaapiVideoBuffer.
33712 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33714 * gst/vaapidecode/gstvaapidecode.c:
33715 Simplify gst_vaapidecode_set_caps() and fix memory leak.
33717 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33719 * docs/reference/libs/libs-sections.txt:
33720 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33721 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33722 Expose video pool display.
33724 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33726 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33727 Stop iteration if there is no more element to examine.
33729 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33731 * gst/vaapiconvert/gstvaapiconvert.c:
33732 * gst/vaapidecode/gstvaapidecode.c:
33733 * gst/vaapisink/gstvaapisink.c:
33734 Improve plugin details.
33736 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33738 * gst-libs/gst/vaapi/gstvaapisurface.h:
33739 * gst/vaapiconvert/gstvaapiconvert.c:
33740 * gst/vaapidecode/gstvaapidecode.c:
33741 * gst/vaapisink/gstvaapisink.c:
33742 Factor out VA surface caps.
33744 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33746 * gst/vaapidecode/gstvaapidecode.c:
33747 Add gst_vaapidecode_ensure_display() helper for set-caps.
33749 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33752 Bump version for development.
33754 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33757 Really make it 0.2.0.
33759 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33764 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33766 * docs/reference/libs/Makefile.am:
33767 Don't exclude GstVaapiParamSpecs.
33769 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33771 * docs/reference/libs/Makefile.am:
33772 * docs/reference/libs/libs-sections.txt:
33773 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33774 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33777 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33779 * gst/vaapiconvert/gstvaapiconvert.c:
33780 * gst/vaapidecode/gstvaapidecode.c:
33781 * gst/vaapisink/gstvaapisink.c:
33782 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.
33784 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33786 * gst-libs/gst/vaapi/Makefile.am:
33787 Really link all helper libraries with libtool -no-undefined.
33789 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33791 * gst-libs/gst/vaapi/Makefile.am:
33792 Link helper libraries with libtool -no-undefined.
33794 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33797 * debian.upstream/gstreamer-vaapi.install.in:
33798 * gst/vaapiconvert/Makefile.am:
33799 * gst/vaapidecode/Makefile.am:
33800 * gst/vaapisink/Makefile.am:
33801 Don't build plugins with SONAME. Make them plain *.so.
33803 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33806 Improve documentation for release.
33808 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33810 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33811 Fix build with older VA-API 0.29.
33813 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33818 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33820 * tests/Makefile.am:
33823 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33825 * docs/reference/libs/Makefile.am:
33826 * docs/reference/libs/libs-docs.xml.in:
33827 * docs/reference/libs/libs-sections.txt:
33828 * docs/reference/libs/libs.core.types:
33829 * docs/reference/plugins/Makefile.am:
33830 * docs/reference/plugins/plugins-docs.xml.in:
33831 * docs/reference/plugins/plugins-sections.txt:
33832 * docs/reference/plugins/plugins.types:
33835 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33837 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33840 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33842 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33843 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33844 * gst/vaapidecode/gstvaapidecode.c:
33845 * tests/test-decode.c:
33846 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33848 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33850 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33851 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33852 Extract framerate information from caps.
33854 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33856 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33857 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33858 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33859 Move caps initialization to parent class.
33861 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33863 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33866 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33868 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33871 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33873 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33874 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33875 More simplifications.
33877 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33879 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33880 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33881 * tests/test-decode.c:
33882 Simplify GstVaapiDecoder API.
33884 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33886 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33887 Drop obsolete defs.
33889 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33891 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33892 Drop obsolete decls.
33894 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33896 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33897 * gst/vaapidecode/gstvaapidecode.c:
33898 Add more aliases for MPEG-4 decoding.
33900 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33902 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33903 Use avctx->coded_{width,height} info to create the VA context.
33905 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33907 * tests/test-decode.c:
33908 * tests/test-decode.h:
33909 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33911 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33913 * tests/test-decode.c:
33914 * tests/test-decode.h:
33915 * tests/test-h264.c:
33916 * tests/test-h264.h:
33917 * tests/test-mpeg2.c:
33918 * tests/test-mpeg2.h:
33919 * tests/test-vc1.c:
33920 * tests/test-vc1.h:
33921 Simplify tests info.
33923 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33925 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33926 Try to improve heuristics to use an AVCodecContextParser.
33928 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33930 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33931 Fix VC-1 decoding, it does not require any specific parser.
33933 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33935 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33936 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33938 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33940 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33941 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33942 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33944 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33946 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33947 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33948 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33949 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33950 * gst/vaapidecode/gstvaapidecode.c:
33951 * gst/vaapidecode/gstvaapidecode.h:
33952 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33954 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33956 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33957 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33958 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33959 Improve WMV3 detection yet further.
33961 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33963 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33964 Fix detection of plain old WMV3 contents.
33966 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33968 * tests/test-vc1.c:
33969 Add End-of-Sequence start code.
33971 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33973 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33974 * gst/vaapidecode/gstvaapidecode.c:
33975 Fix VC-1 detection.
33977 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33979 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33980 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33982 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33984 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33985 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33986 Drop obsolete (and wrong) code.
33988 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33990 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33991 Cosmetics (spelling).
33993 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33995 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33996 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33997 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33998 Try to fix timestamps (step 1). Looks OK on H55.
34000 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34002 * debian.upstream/Makefile.am:
34003 Ship with COPYING.LIB.
34005 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34010 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34011 * gst-libs/gst/vaapi/gstvaapicompat.h:
34012 * gst-libs/gst/vaapi/gstvaapicontext.c:
34013 * gst-libs/gst/vaapi/gstvaapicontext.h:
34014 * gst-libs/gst/vaapi/gstvaapidebug.h:
34015 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34016 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34017 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34018 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34019 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34020 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34021 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34022 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34023 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34024 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34025 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34026 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34027 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34028 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34029 * gst-libs/gst/vaapi/gstvaapiimage.c:
34030 * gst-libs/gst/vaapi/gstvaapiimage.h:
34031 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34032 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34033 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34034 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
34035 * gst-libs/gst/vaapi/gstvaapiobject.c:
34036 * gst-libs/gst/vaapi/gstvaapiobject.h:
34037 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34038 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34039 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34040 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34041 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34042 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34043 * gst-libs/gst/vaapi/gstvaapisurface.h:
34044 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34045 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34046 * gst-libs/gst/vaapi/gstvaapitexture.h:
34047 * gst-libs/gst/vaapi/gstvaapitypes.h:
34048 * gst-libs/gst/vaapi/gstvaapiutils.h:
34049 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34050 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34051 * gst-libs/gst/vaapi/gstvaapivalue.h:
34052 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34053 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34054 * gst-libs/gst/vaapi/gstvaapivideosink.h:
34055 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34056 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34057 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34058 Relicense gst-libs/ code to LGPL v2.1+.
34060 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34062 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34063 Drop extraneous comma.
34065 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34067 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34068 Drop variant=itu field to help codec detection.
34070 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34072 * gst/vaapidecode/gstvaapidecode.c:
34073 Decode as many surfaces as possible in gst_vaapidecode_step().
34075 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34077 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34078 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34079 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34080 * gst/vaapidecode/gstvaapidecode.c:
34081 * gst/vaapidecode/gstvaapidecode.h:
34082 * tests/test-decode.c:
34083 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
34085 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34090 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34092 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34093 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
34095 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34097 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34098 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34099 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
34101 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34103 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34104 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34105 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
34107 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34109 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34110 Document H.264 / AVC1 format case better.
34112 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34114 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34115 Fix H.264 decoding with AVC1 format bitstreams.
34117 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34119 * gst/vaapidecode/gstvaapidecode.c:
34120 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
34122 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34124 * gst/vaapisink/gstvaapisink.c:
34125 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34127 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34129 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34130 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34131 Export gst_vaapi_video_buffer_new().
34133 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34135 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34136 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34138 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34143 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34148 * gst/vaapidecode/Makefile.am:
34149 * gst/vaapidecode/gstvaapidecode.c:
34150 * gst/vaapidecode/gstvaapidecode.h:
34151 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34153 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34155 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34156 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34157 Add gst_vaapi_decoder_pause().
34159 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34161 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34162 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34163 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34164 Use a GstTask with start/stop semantics for the decoder thread.
34166 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34168 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34169 Drop extraneous var.
34171 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34173 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34174 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34175 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34177 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34179 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34180 Fix gst_vaapi_decoder_get_surface() status.
34182 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34184 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34185 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34186 Try to set correct timestamps to the decoded surface proxy.
34188 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34190 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34191 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34192 * tests/test-decode.c:
34193 Add timestamps to GstVaapiSurfaceProxy.
34195 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34197 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34198 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34200 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34202 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34203 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34205 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34207 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34208 Prefer profile from codec-data if any was found there.
34210 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34212 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34213 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34215 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34217 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34218 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34220 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34222 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34223 Fix VC-1 codec initialization, it really needs an extradata buffer.
34225 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34227 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34228 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34229 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.
34231 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34233 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34234 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34236 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34238 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34239 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34240 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34241 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34242 * tests/test-decode.c:
34243 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34245 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34247 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34248 Cosmetics (weird indentation).
34250 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34252 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34253 Cosmetics (extraneous variable, debug message).
34255 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34258 Fix check for VA-API enabled FFmpeg.
34260 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34262 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34263 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34264 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34265 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34266 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34268 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34270 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34271 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34272 Add more error codes. Fix documentation.
34274 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34276 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34277 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34279 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34281 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34282 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34283 * tests/test-decode.c:
34284 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34286 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34288 * tests/test-vc1.c:
34289 Drop useless End-of-Sequence marker.
34291 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34293 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34294 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.
34296 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34298 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34299 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34300 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.
34302 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34304 * tests/test-h264.c:
34305 * tests/test-vc1.c:
34306 Regenerate correct clips.
34308 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34310 * tests/Makefile.am:
34311 * tests/test-decode.c:
34312 * tests/test-h264.c:
34313 * tests/test-h264.h:
34314 * tests/test-mpeg2.c:
34315 * tests/test-mpeg2.h:
34316 * tests/test-vc1.c:
34317 * tests/test-vc1.h:
34318 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34319 XXX: only VC-1 decoding works at this time because of awful
34320 bugs left in GstVaapiDecoderFfmpeg et al.
34322 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34325 * gst-libs/gst/vaapi/Makefile.am:
34326 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34327 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34328 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34329 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34330 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34331 Add initial (multithreaded) decoder based on FFmpeg.
34332 There are tons of bugs left:
34333 - Decoder API not nice enough with error conditions
34334 - FFmpeg parser is sometimes broken
34335 - Packets queue can be lost
34337 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34339 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34340 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34341 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34343 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34345 * gst-libs/gst/vaapi/gstvaapicontext.c:
34346 * gst-libs/gst/vaapi/gstvaapicontext.h:
34347 Add VA context abstraction.
34349 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34351 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34352 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34354 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34356 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34357 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34358 Add a means to cap the number of objects allocated in the pool.
34360 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34362 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34363 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34364 Add VA entrypoint abstraction.
34366 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34368 * docs/reference/libs/libs-docs.xml.in:
34369 * docs/reference/libs/libs-sections.txt:
34370 * gst-libs/gst/vaapi/Makefile.am:
34371 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34372 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34373 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34374 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34375 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34376 * tests/test-display.c:
34377 Add VA profile abstraction.
34379 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34381 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34382 Fix OpenGL rendering on G45 systems.
34384 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34386 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34387 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34389 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34391 * gst-libs/gst/vaapi/gstvaapitexture.c:
34392 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34393 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34394 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.
34396 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34398 * gst-libs/gst/vaapi/gstvaapitexture.c:
34399 Fix get-out conditions.
34401 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34403 * gst-libs/gst/vaapi/gstvaapitexture.c:
34404 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34405 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.
34407 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34409 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34412 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34414 * docs/reference/libs/libs-sections.txt:
34415 * gst-libs/gst/vaapi/Makefile.am:
34416 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34417 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34418 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34419 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34420 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34421 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34422 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34423 * gst-libs/gst/vaapi/gstvaapitexture.c:
34424 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34425 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34426 * tests/test-windows.c:
34427 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34429 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34431 * gst-libs/gst/vaapi/Makefile.am:
34432 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34433 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34434 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34435 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34436 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34437 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34438 * gst-libs/gst/vaapi/gstvaapiimage.c:
34439 * gst-libs/gst/vaapi/gstvaapiobject.c:
34440 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34441 * gst-libs/gst/vaapi/gstvaapisurface.c:
34442 * gst-libs/gst/vaapi/gstvaapitexture.c:
34443 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34444 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34445 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34446 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34448 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34450 * gst-libs/gst/vaapi/gstvaapitexture.c:
34451 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34452 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34453 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34454 Improve handling of GL contexts.
34456 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34461 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34464 Bump version for development.
34466 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34469 * debian.upstream/Makefile.am:
34470 * debian.upstream/control.in:
34471 Rename -dev package to libgstvaapi-dev.
34473 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34479 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34481 * gst-libs/gst/vaapi/gstvaapiutils.c:
34482 Fix build with VA-API < 0.30.
34484 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34487 * gst-libs/gst/vaapi/gstvaapicompat.h:
34488 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34489 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34490 * gst-libs/gst/vaapi/gstvaapitexture.c:
34491 * tests/test-display.c:
34492 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34494 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34496 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34497 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34498 Add TFP and FBO helpers.
34500 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34502 * gst-libs/gst/vaapi/gstvaapiutils.c:
34503 * gst-libs/gst/vaapi/gstvaapiutils.h:
34504 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34506 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34508 * gst-libs/gst/vaapi/gstvaapitexture.c:
34509 * gst-libs/gst/vaapi/gstvaapiutils.c:
34510 * gst-libs/gst/vaapi/gstvaapiutils.h:
34511 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34512 Use a shorter function name.
34514 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34516 * docs/reference/libs/libs-sections.txt:
34517 * gst-libs/gst/vaapi/gstvaapisurface.c:
34518 * gst-libs/gst/vaapi/gstvaapisurface.h:
34519 * gst-libs/gst/vaapi/gstvaapiutils.c:
34520 * gst-libs/gst/vaapi/gstvaapiutils.h:
34521 Add gst_vaapi_surface_query_status() wrapper.
34523 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34525 * docs/reference/plugins/Makefile.am:
34526 Fix leftover during migration.
34528 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34532 * docs/reference/plugins/Makefile.am:
34534 * gst/vaapiconvert/Makefile.am:
34535 * gst/vaapiconvert/gstvaapiconvert.c:
34536 * gst/vaapiconvert/gstvaapiconvert.h:
34537 * gst/vaapisink/Makefile.am:
34538 * gst/vaapisink/gstvaapisink.c:
34539 * gst/vaapisink/gstvaapisink.h:
34540 Rename to gst/ as sys/ was too vague.
34542 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34544 * gst-libs/gst/vaapi/gstvaapiimage.c:
34545 * gst-libs/gst/vaapi/gstvaapiimage.h:
34546 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34547 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34548 * gst-libs/gst/vaapi/gstvaapisurface.c:
34549 * gst-libs/gst/vaapi/gstvaapisurface.h:
34550 Try to not reference VA-API types directly.
34552 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34554 * sys/vaapisink/gstvaapisink.c:
34555 Fix reflection code to preserve aspect ratio.
34557 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34559 * sys/vaapisink/gstvaapisink.c:
34560 * sys/vaapisink/gstvaapisink.h:
34561 Fix fullscreen mode.
34563 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34565 * sys/vaapisink/gstvaapisink.c:
34566 * sys/vaapisink/gstvaapisink.h:
34567 Add OpenGL reflection effect ("use-reflection").
34569 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34572 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34573 Use a projection suitable for rotation around the Y axis.
34575 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34578 * sys/vaapisink/Makefile.am:
34579 * sys/vaapisink/gstvaapisink.c:
34580 * sys/vaapisink/gstvaapisink.h:
34581 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34583 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34586 * debian.upstream/Makefile.am:
34587 * debian.upstream/control.in:
34588 * debian.upstream/libgstvaapi-glx.install.in:
34589 Add libgstvaapi-glx-0 package.
34591 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34593 * pkgconfig/Makefile.am:
34594 Really fix make distclean.
34596 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34598 * docs/reference/libs/Makefile.am:
34601 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34603 * pkgconfig/Makefile.am:
34604 Fix make distclean.
34606 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34608 * tests/Makefile.am:
34611 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34613 * docs/reference/libs/Makefile.am:
34614 * docs/reference/libs/libs.core.types:
34615 * docs/reference/libs/libs.glx.types:
34616 * docs/reference/libs/libs.x11.types:
34619 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34621 * sys/vaapisink/gstvaapisink.h:
34622 Fix build without GLX.
34624 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34629 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34631 * sys/vaapisink/Makefile.am:
34632 * sys/vaapisink/gstvaapisink.c:
34633 * sys/vaapisink/gstvaapisink.h:
34634 Add VA/GLX support to vaapisink.
34636 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34638 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34639 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34640 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34641 Add glXSwapBuffers() workaround for NVIDIA.
34643 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34645 * tests/Makefile.am:
34646 * tests/test-textures.c:
34647 Improve VA/GLX textures test.
34649 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34651 * gst-libs/gst/vaapi/gstvaapitexture.c:
34652 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34653 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34654 Fix texture rendering.
34656 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34658 * docs/reference/libs/libs-docs.xml.in:
34659 * docs/reference/libs/libs-sections.txt:
34660 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34661 * gst-libs/gst/vaapi/gstvaapitexture.c:
34664 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34666 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34667 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34668 Add gst_vaapi_window_glx_put_texture() helper.
34670 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34672 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34675 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34679 * tests/test-windows.c:
34682 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34684 * gst-libs/gst/vaapi/Makefile.am:
34685 * gst-libs/gst/vaapi/gstvaapitexture.c:
34686 * gst-libs/gst/vaapi/gstvaapitexture.h:
34687 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34688 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34689 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34691 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34693 * docs/reference/libs/libs-sections.txt:
34694 * gst-libs/gst/vaapi/gstvaapiobject.c:
34695 * gst-libs/gst/vaapi/gstvaapiobject.h:
34696 Add gst_vaapi_object_{,un}lock_display() helpers.
34698 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34700 * tests/Makefile.am:
34703 * tests/test-windows.c:
34704 Factor out image utilities.
34706 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34708 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34709 MT-Safe: lock display.
34711 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34713 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34714 Make sure window resize completed prior to resizing the GL viewport.
34716 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34718 * gst-libs/gst/vaapi/Makefile.am:
34719 gstvaapicompat.h is a private header, don't install it.
34721 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34723 * docs/reference/libs/libs-sections.txt:
34724 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34725 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34726 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34727 Add gst_vaapi_display_{sync,flush}() helpers.
34729 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34731 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34732 * sys/vaapisink/gstvaapisink.c:
34733 * sys/vaapisink/gstvaapisink.h:
34734 Add "synchronous" mode.
34736 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34738 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34739 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34740 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34742 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34744 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34745 Restore GLX context only if there is one.
34747 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34749 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34750 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34751 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34752 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34753 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34755 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34757 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34758 Check GstVaapiWindow::render() is available prior to calling it.
34760 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34762 * tests/Makefile.am:
34763 * tests/test-display.c:
34764 * tests/test-textures.c:
34765 Add VA/GLX display tests.
34767 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34770 * gst-libs/gst/vaapi/Makefile.am:
34773 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34775 * docs/reference/libs/Makefile.am:
34776 * docs/reference/libs/libs-docs.xml.in:
34777 * docs/reference/libs/libs-sections.txt:
34778 * docs/reference/libs/libs.types:
34779 Add missing API documentation.
34781 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34784 * gst-libs/gst/vaapi/Makefile.am:
34785 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34786 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34787 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34788 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34789 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34790 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34791 * pkgconfig/Makefile.am:
34792 * pkgconfig/gstreamer-vaapi-glx.pc.in:
34793 * tests/Makefile.am:
34794 * tests/test-textures.c:
34795 Add initial VA/GLX support.
34797 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34799 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34800 Add missing includes (for vaapi_check_status()).
34802 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34804 * gst-libs/gst/vaapi/gstvaapidebug.h:
34805 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34807 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34809 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34810 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34811 Add gst_vaapi_window_x11_is_foreign_xid() helper.
34813 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34815 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34816 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34817 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34818 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34819 Allow derived classes to specify custom Visual and Colormap.
34821 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34823 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34824 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34825 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34826 Allow window creation with a specific visual (e.g. for GLX support).
34828 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34830 * gst-libs/gst/vaapi/gstvaapiimage.c:
34831 Fix return value on error (though it's the same in the end).
34833 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34835 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34836 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34837 Simplify initialization of VADisplay.
34839 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34842 Move __attribute__((visibility("hidden"))) check down.
34844 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34846 * docs/reference/libs/libs-sections.txt:
34847 * gst-libs/gst/vaapi/gstvaapiimage.c:
34848 * gst-libs/gst/vaapi/gstvaapiimage.h:
34849 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34850 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34851 * gst-libs/gst/vaapi/gstvaapisurface.c:
34852 * gst-libs/gst/vaapi/gstvaapisurface.h:
34853 * tests/test-surfaces.c:
34854 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34856 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34858 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34859 Use the parent display object, no need to maintain another one.
34860 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34862 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34864 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34865 Add more internal helpers.
34867 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34869 * gst-libs/gst/vaapi/gstvaapiimage.c:
34870 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34871 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34872 * gst-libs/gst/vaapi/gstvaapisurface.c:
34873 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34874 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34875 Rename to GST_VAAPI_OBJECT_DISPLAY().
34877 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34879 * docs/reference/libs/libs-sections.txt:
34880 * gst-libs/gst/vaapi/gstvaapiimage.c:
34881 * gst-libs/gst/vaapi/gstvaapiobject.c:
34882 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34883 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34884 * gst-libs/gst/vaapi/gstvaapisurface.c:
34885 * gst-libs/gst/vaapi/gstvaapitypes.h:
34886 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34887 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34889 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34891 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34892 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34893 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34894 Make GstVaapiWindow* derive from GstVaapiObject.
34896 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34899 Factor out use gstreamer-vaapi (PACKAGE name).
34901 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34904 Improve versioning summary.
34906 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34908 * gst-libs/gst/vaapi/Makefile.am:
34909 gstvaapicompat.h is now a private header (not installed).
34911 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34913 * gst-libs/gst/vaapi/gstvaapiimage.c:
34914 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34915 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34916 * gst-libs/gst/vaapi/gstvaapiobject.c:
34917 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34918 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34919 Include gstvaapicompat.h in source files only, not headers.
34921 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34924 * gst-libs/gst/vaapi/Makefile.am:
34925 * sys/vaapiconvert/Makefile.am:
34926 * sys/vaapisink/Makefile.am:
34927 * tests/Makefile.am:
34928 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34930 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34934 * gst-libs/gst/vaapi/Makefile.am:
34935 * gst-libs/gst/vaapi/gstvaapicompat.h:
34936 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34937 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34938 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34939 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34940 * gst-libs/gst/vaapi/gstvaapisurface.c:
34941 * gst-libs/gst/vaapi/gstvaapiutils.c:
34942 * gst-libs/gst/vaapi/gstvaapiutils.h:
34943 * pkgconfig/gstreamer-vaapi-x11.pc.in:
34944 * pkgconfig/gstreamer-vaapi.pc.in:
34945 * sys/vaapiconvert/Makefile.am:
34946 * sys/vaapisink/Makefile.am:
34947 * tests/Makefile.am:
34948 Add compatibility with the original VA-API 0.29.
34950 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34952 * gst-libs/gst/vaapi/gstvaapivalue.h:
34953 Add missing file (gstvaapivalue.h).
34955 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34957 * gst-libs/gst/vaapi/gstvaapiimage.c:
34958 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34959 * gst-libs/gst/vaapi/gstvaapisurface.c:
34960 Fix g_warning() invocation.
34962 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34964 * gst-libs/gst/vaapi/gstvaapisurface.c:
34965 Deassociate subpictures while destroying the surface.
34967 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34969 * gst-libs/gst/vaapi/gstvaapisurface.c:
34970 Fix destruction order of subpictures. They should be destroyed first.
34972 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34975 * gst-libs/gst/vaapi/gstvaapiimage.c:
34976 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34977 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34978 * tests/test-windows.c:
34979 Add support for AYUV format.
34981 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34983 * tests/test-windows.c:
34984 Simplify upload process and fallback to subpictures.
34986 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34988 * docs/reference/libs/libs-docs.xml.in:
34989 * docs/reference/libs/libs-sections.txt:
34990 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34993 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34995 * gst-libs/gst/vaapi/Makefile.am:
34996 * gst-libs/gst/vaapi/gstvaapiobject.c:
34997 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34998 * gst-libs/gst/vaapi/gstvaapitypes.h:
34999 * gst-libs/gst/vaapi/gstvaapivalue.c:
35000 Move GValue specific stuff to a dedicated file.
35002 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35004 * tests/test-surfaces.c:
35005 Cosmetics (lowercase for consistency).
35007 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35009 * gst-libs/gst/vaapi/gstvaapiobject.c:
35010 Cosmetics (vertical alignment).
35012 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35014 * gst-libs/gst/vaapi/gstvaapiobject.c:
35015 Fix return value on error.
35017 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35019 * docs/reference/libs/libs-sections.txt:
35020 * gst-libs/gst/vaapi/gstvaapiimage.c:
35021 * gst-libs/gst/vaapi/gstvaapiimage.h:
35022 * gst-libs/gst/vaapi/gstvaapiobject.c:
35023 * gst-libs/gst/vaapi/gstvaapiobject.h:
35024 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35025 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35026 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35027 * gst-libs/gst/vaapi/gstvaapisurface.c:
35028 * gst-libs/gst/vaapi/gstvaapisurface.h:
35029 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35030 * tests/test-surfaces.c:
35031 Move "id" down to the GstVaapiObject base.
35033 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35035 * gst-libs/gst/vaapi/gstvaapitypes.c:
35036 Cosmetics (drop extraneous empty line).
35038 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35040 * gst-libs/gst/vaapi/Makefile.am:
35041 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35042 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
35043 Add GParamSpecs for GstVaapiID.
35045 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35047 * docs/reference/libs/libs.types:
35048 Drop gst_vaapi_id_get_type().
35050 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35052 * docs/reference/libs/libs-sections.txt:
35053 * gst-libs/gst/vaapi/gstvaapitypes.h:
35054 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
35056 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35058 * docs/reference/libs/libs-sections.txt:
35059 * docs/reference/libs/libs.types:
35060 * gst-libs/gst/vaapi/Makefile.am:
35061 * gst-libs/gst/vaapi/gstvaapitypes.c:
35062 * gst-libs/gst/vaapi/gstvaapitypes.h:
35063 Add GstVaapiID abstraction.
35065 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35067 * docs/reference/libs/libs.types:
35070 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35072 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35073 * gst-libs/gst/vaapi/gstvaapiimage.c:
35074 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35075 * gst-libs/gst/vaapi/gstvaapisurface.c:
35076 Drop useless include (<va/va_backend.h>).
35078 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35080 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35081 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
35083 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35085 * gst-libs/gst/vaapi/Makefile.am:
35086 * gst-libs/gst/vaapi/gstvaapiimage.c:
35087 * gst-libs/gst/vaapi/gstvaapiobject.c:
35088 * gst-libs/gst/vaapi/gstvaapiobject.h:
35089 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35090 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35091 * gst-libs/gst/vaapi/gstvaapisurface.c:
35092 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35093 Move private definitions and accessors to gstvaapiobject_priv.h.
35095 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35097 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35098 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35099 * gst-libs/gst/vaapi/gstvaapiimage.c:
35100 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35101 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35102 * gst-libs/gst/vaapi/gstvaapiobject.c:
35103 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35104 * gst-libs/gst/vaapi/gstvaapisurface.c:
35105 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35106 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35107 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35108 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35109 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35110 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35111 Fix short descriptions.
35113 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35117 * debian.upstream/Makefile.am:
35118 * debian.upstream/changelog.in:
35119 * debian.upstream/compat:
35120 * debian.upstream/control.in:
35121 * debian.upstream/copyright:
35122 * debian.upstream/gstreamer-vaapi-doc.install.in:
35123 * debian.upstream/gstreamer-vaapi.install.in:
35124 * debian.upstream/libgstvaapi-dev.install.in:
35125 * debian.upstream/libgstvaapi-x11.install.in:
35126 * debian.upstream/libgstvaapi.install.in:
35127 * debian.upstream/rules:
35128 Generate upstream packages through make deb.upstream.
35130 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35133 Bump version for development.
35135 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35137 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35138 Use a black background for new windows.
35140 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35145 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35148 * docs/reference/libs/libs.types:
35149 * gst-libs/gst/vaapi/Makefile.am:
35150 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35151 * gst-libs/gst/vaapi/gstvaapiobject.c:
35152 * gst-libs/gst/vaapi/gstvaapiobject.h:
35153 * tests/test-surfaces.c:
35154 Add "destroy" signal.
35156 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35158 * docs/reference/libs/libs-docs.xml.in:
35159 Improve gst-plugins-vaapi Library reference template.
35161 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35163 * docs/reference/libs/libs-docs.xml.in:
35164 * docs/reference/libs/libs-sections.txt:
35165 * gst-libs/gst/vaapi/Makefile.am:
35166 * gst-libs/gst/vaapi/gstvaapiimage.c:
35167 * gst-libs/gst/vaapi/gstvaapiimage.h:
35168 * gst-libs/gst/vaapi/gstvaapiobject.c:
35169 * gst-libs/gst/vaapi/gstvaapiobject.h:
35170 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35171 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35172 * gst-libs/gst/vaapi/gstvaapisurface.c:
35173 * gst-libs/gst/vaapi/gstvaapisurface.h:
35174 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35175 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35177 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35179 * sys/vaapisink/gstvaapisink.c:
35182 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35184 * sys/vaapisink/gstvaapisink.c:
35185 Make sure VA display is valid when created with an explicit "display" name.
35187 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35189 * sys/vaapisink/gstvaapisink.c:
35190 Use plain "display" property for the X11 display name.
35192 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35194 * sys/vaapiconvert/gstvaapiconvert.c:
35195 * sys/vaapisink/gstvaapisink.c:
35196 Document vaapiconvert & vaapisink plugins.
35198 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35201 * docs/reference/Makefile.am:
35202 * docs/reference/plugins/Makefile.am:
35203 * docs/reference/plugins/plugins-docs.xml.in:
35204 * docs/reference/plugins/plugins-overrides.txt:
35205 * docs/reference/plugins/plugins-sections.txt:
35206 * docs/reference/plugins/plugins.types:
35207 Add plugins documentation template.
35209 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35211 * sys/vaapisink/gstvaapisink.c:
35212 * sys/vaapisink/gstvaapisink.h:
35213 Don't export gst_vaapisink_get_display().
35215 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35218 * docs/reference/libs/libs-docs.xml.in:
35219 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35220 * gst-libs/gst/vaapi/gstvaapiimage.c:
35221 * gst-libs/gst/vaapi/gstvaapisurface.c:
35222 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35223 Drop introspection annotations since they require gtk-doc >= 1.12.
35225 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35227 * gst-libs/gst/vaapi/gstvaapisurface.c:
35228 Add note about the fact that the surface holds an extra reference to the subpicture.
35230 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35232 * gst-libs/gst/vaapi/gstvaapiimage.c:
35233 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35234 * gst-libs/gst/vaapi/gstvaapisurface.c:
35235 Improve debugging messages.
35237 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35239 * tests/test-windows.c:
35240 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35242 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35244 * docs/reference/libs/libs-sections.txt:
35245 * gst-libs/gst/vaapi/gstvaapisurface.c:
35246 * gst-libs/gst/vaapi/gstvaapisurface.h:
35247 * tests/test-windows.c:
35248 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35250 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35252 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35253 Wait for MapNotify or UnmapNotify events on foreign windows too.
35255 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35257 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35258 Check whether the foreign XID is mapped at binding time.
35260 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35262 * sys/vaapisink/gstvaapisink.c:
35263 Add missing includes.
35265 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35268 * debian/Makefile.am:
35269 * debian/control.in:
35270 * debian/gstreamer-vaapi-doc.install.in:
35274 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35276 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35277 Fix warnings (drop extraneous var).
35279 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35281 * docs/reference/libs/libs-sections.txt:
35282 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35283 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35285 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35287 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35290 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35292 * gst-libs/gst/vaapi/Makefile.am:
35293 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35294 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35295 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35296 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35297 Try to improve switch to fullscreen mode.
35299 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35301 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35302 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35303 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35304 Improve display locking and rework X event wait functions.
35306 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35308 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35309 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35310 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35312 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35314 * gst-libs/gst/vaapi/Makefile.am:
35315 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35316 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35317 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.
35319 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35321 * docs/reference/libs/libs-sections.txt:
35322 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35323 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35324 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35326 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35328 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35329 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35330 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35331 Add gst_vaapi_window_get_display() to base.
35333 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35335 * docs/reference/libs/libs-docs.xml.in:
35336 * docs/reference/libs/libs-sections.txt:
35337 * gst-libs/gst/vaapi/Makefile.am:
35338 * gst-libs/gst/vaapi/gstvaapitypes.h:
35339 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35340 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35341 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35342 * sys/vaapisink/gstvaapisink.c:
35343 * sys/vaapisink/gstvaapisink.h:
35344 Add GstVaapiPoint & GstVaapiRectangle data structures.
35346 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35351 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35354 * sys/vaapisink/gstvaapisink.c:
35355 * sys/vaapisink/gstvaapisink.h:
35356 Allow `vaapisink` to render videos in fullscreen mode.
35358 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35360 * docs/reference/libs/libs-sections.txt:
35361 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35362 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35363 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35364 Add gst_vaapi_window_set_fullscreen() API.
35366 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35368 * sys/vaapisink/gstvaapisink.c:
35369 Size window so that to respect the video and pixel aspect ratio.
35371 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35373 * docs/reference/libs/libs-sections.txt:
35374 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35375 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35376 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35377 * tests/test-display.c:
35378 Add gst_vaapi_display_get_pixel_aspect_ratio().
35380 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35382 * docs/reference/libs/libs-sections.txt:
35385 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35387 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35388 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35389 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35390 * tests/test-display.c:
35391 Add display size accessors.
35393 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35396 * debian/control.in:
35397 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35399 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35401 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35402 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35403 * gst-libs/gst/vaapi/gstvaapiimage.h:
35404 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35405 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35406 * gst-libs/gst/vaapi/gstvaapisurface.h:
35407 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35408 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35409 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35410 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35411 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35412 Fix documentation of *Class'es.
35414 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35416 * gst-libs/gst/vaapi/gstvaapiutils.c:
35417 * gst-libs/gst/vaapi/gstvaapiutils.h:
35418 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35419 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35421 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35423 * docs/reference/libs/libs-sections.txt:
35424 * gst-libs/gst/vaapi/gstvaapisurface.h:
35425 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35426 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35428 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35430 * docs/reference/libs/libs-sections.txt:
35431 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35432 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35433 * sys/vaapisink/gstvaapisink.c:
35434 * tests/test-windows.c:
35435 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35437 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35439 * docs/reference/libs/Makefile.am:
35440 Fix make dist for --enable-gtk-doc builds.
35442 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35445 Improve autogen.sh.
35447 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35451 Generate gtk-doc.make from gtkdocize.
35453 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35458 * docs/Makefile.am:
35459 * docs/reference/Makefile.am:
35460 * docs/reference/libs/Makefile.am:
35461 * docs/reference/libs/libs-docs.xml.in:
35462 * docs/reference/libs/libs-overrides.txt:
35463 * docs/reference/libs/libs-sections.txt:
35464 * docs/reference/libs/libs.types:
35465 Document public API for libgstvaapi-*.so.*.
35467 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35469 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35470 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35471 Document GstVaapiVideoBuffer.
35473 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35475 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35476 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35477 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35478 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35479 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35480 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35481 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35483 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35485 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35486 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35487 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35488 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35489 * gst-libs/gst/vaapi/gstvaapiimage.c:
35490 * gst-libs/gst/vaapi/gstvaapiimage.h:
35491 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35492 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35493 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35494 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35495 * gst-libs/gst/vaapi/gstvaapisurface.c:
35496 * gst-libs/gst/vaapi/gstvaapisurface.h:
35497 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35498 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35499 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35500 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35501 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35502 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35503 Add tedious documentation.
35505 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35507 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35508 Beautify append_formats().
35510 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35512 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35513 Simplify GstVaapiDisplay (use GArray).
35515 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35518 * sys/vaapiconvert/gstvaapiconvert.c:
35519 * sys/vaapiconvert/gstvaapiconvert.h:
35520 Factor out direct-rendering infrastructure.
35522 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35524 * sys/vaapiconvert/gstvaapiconvert.c:
35525 * sys/vaapiconvert/gstvaapiconvert.h:
35526 Allow user to specify inout-buffers & derive-image optimizations.
35528 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35530 * sys/vaapiconvert/gstvaapiconvert.c:
35531 Reduce number of debug messaged printed out.
35533 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35535 * sys/vaapiconvert/gstvaapiconvert.c:
35536 * sys/vaapiconvert/gstvaapiconvert.h:
35537 Add vaDeriveImage() optimization.
35539 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35541 * gst-libs/gst/vaapi/gstvaapiimage.c:
35542 Fix gst_vaapi_image_create() from a foreign VA image.
35544 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35546 * gst-libs/gst/vaapi/gstvaapiimage.c:
35547 * gst-libs/gst/vaapi/gstvaapiimage.h:
35548 * gst-libs/gst/vaapi/gstvaapisurface.c:
35549 * gst-libs/gst/vaapi/gstvaapisurface.h:
35550 Add gst_vaapi_surface_derive_image() API.
35552 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35554 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35555 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35556 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35557 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().
35559 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35561 * tests/test-windows.c:
35562 Try YV12 & I420 image formats too.
35564 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35566 * gst-libs/gst/vaapi/gstvaapiimage.c:
35567 Split map/unmap functions into internal functions that don't check preconditions.
35569 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35571 * gst-libs/gst/vaapi/gstvaapiimage.c:
35572 Improve gst_vaapi_image_new() sanity checks.
35574 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35576 * tests/test-windows.c:
35579 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35581 * sys/vaapiconvert/gstvaapiconvert.c:
35582 Check if our inout buffer is still alive or default to a separate output buffer.
35584 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35586 * sys/vaapiconvert/gstvaapiconvert.c:
35587 * sys/vaapiconvert/gstvaapiconvert.h:
35588 Factor out buffers negotiation and optimization checks.
35590 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35592 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35593 * gst-libs/gst/vaapi/gstvaapiimage.c:
35594 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35595 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35596 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35597 * sys/vaapiconvert/gstvaapiconvert.h:
35600 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35602 * gst-libs/gst/vaapi/gstvaapiimage.c:
35603 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35605 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35607 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35608 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35609 * gst-libs/gst/vaapi/gstvaapiimage.c:
35610 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35611 * gst-libs/gst/vaapi/gstvaapisurface.c:
35612 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35613 Add VA display locking utilities.
35615 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35617 * sys/vaapisink/gstvaapisink.c:
35618 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35620 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35622 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35623 * tests/test-windows.c:
35624 Don't show window by default during creation.
35626 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35628 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35629 Fix gst_vaapi_window_x11_destroy().
35631 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35633 * sys/vaapiconvert/gstvaapiconvert.c:
35634 * sys/vaapiconvert/gstvaapiconvert.h:
35635 Alias sink & src pad buffers whenever possible.
35637 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35639 * gst-libs/gst/vaapi/gstvaapiimage.c:
35640 * gst-libs/gst/vaapi/gstvaapiimage.h:
35641 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35643 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35645 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35646 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35647 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35649 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35651 * sys/vaapiconvert/gstvaapiconvert.c:
35652 Fix image & surface size cache.
35654 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35657 Move gstreamer-vaapi package versioning to the top.
35659 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35662 Bump version for development.
35664 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35667 Cosmetics (shorten lines).
35669 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35675 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35677 * debian/Makefile.am:
35678 * debian/changelog.in:
35680 * debian/control.in:
35681 * debian/copyright:
35682 * debian/gstreamer-vaapi.install.in:
35683 * debian/libgstvaapi-dev.install.in:
35684 * debian/libgstvaapi-x11.install.in:
35685 * debian/libgstvaapi.install.in:
35687 Add debian packaging.
35689 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35693 Add debian packaging.
35695 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35697 * pkgconfig/Makefile.am:
35698 Silence GNU make extensions warning.
35700 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35703 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'
35705 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35709 * pkgconfig/Makefile.am:
35710 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35711 * pkgconfig/gstreamer-vaapi.pc.in:
35712 Add pkgconfig files.
35714 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35717 * gst-libs/gst/vaapi/Makefile.am:
35718 * sys/vaapisink/Makefile.am:
35719 * tests/Makefile.am:
35720 Split X11 support to libgstvaapi-x11-*.so.*
35722 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35724 * gst-libs/gst/vaapi/Makefile.am:
35725 Don't install private headers.
35727 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35729 * gst-libs/gst/vaapi/gstvaapidebug.h:
35730 * gst-libs/gst/vaapi/gstvaapiutils.c:
35731 * gst-libs/gst/vaapi/gstvaapiutils.h:
35734 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35736 * gst-libs/gst/vaapi/Makefile.am:
35737 * gst-libs/gst/vaapi/gstvaapidebug.h:
35738 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35739 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35740 * gst-libs/gst/vaapi/gstvaapiimage.c:
35741 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35742 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35743 * gst-libs/gst/vaapi/gstvaapisurface.c:
35744 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35745 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35746 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35747 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35748 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35749 Rename vaapi_debug.h to gstvaapidebug.h.
35751 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35753 * gst-libs/gst/vaapi/Makefile.am:
35754 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35755 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35756 * gst-libs/gst/vaapi/gstvaapiimage.c:
35757 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35758 * gst-libs/gst/vaapi/gstvaapisurface.c:
35759 * gst-libs/gst/vaapi/gstvaapiutils.c:
35760 * gst-libs/gst/vaapi/gstvaapiutils.h:
35761 * gst-libs/gst/vaapi/vaapi_debug.h:
35762 Move vaapi_utils.* to gstvaapiutils.*
35764 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35766 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35767 Cosmetics (remove an extra line).
35769 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35771 * gst-libs/gst/vaapi/Makefile.am:
35772 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35773 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35774 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35775 Move X11 utilties to gstvaapiutils_x11.[ch].
35777 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35779 * gst-libs/gst/vaapi/Makefile.am:
35780 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35781 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35782 * sys/vaapiconvert/gstvaapiconvert.c:
35783 * sys/vaapisink/gstvaapisink.c:
35784 Rename GstVaapiSinkBase to GstVaapiVideoSink.
35786 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35789 * tests/Makefile.am:
35790 * tests/examples/Makefile.am:
35791 * tests/examples/generic/Makefile.am:
35792 * tests/test-display.c:
35793 * tests/test-surfaces.c:
35794 * tests/test-windows.c:
35795 Move tests to top-level tests/ directory.
35797 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35799 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35800 * gst-libs/gst/vaapi/gstvaapiimage.c:
35801 * sys/vaapiconvert/gstvaapiconvert.c:
35802 * sys/vaapiconvert/gstvaapiconvert.h:
35803 Handle I420 formats internally in GstVaapiImage.
35805 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35807 * sys/vaapiconvert/gstvaapiconvert.c:
35808 * sys/vaapiconvert/gstvaapiconvert.h:
35809 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35811 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35813 * gst-libs/gst/vaapi/gstvaapiimage.c:
35814 Implement I420 and YV12 if the underlying implementation does not.
35816 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35818 * sys/vaapiconvert/Makefile.am:
35819 * sys/vaapiconvert/gstvaapiconvert.c:
35820 * sys/vaapiconvert/gstvaapiconvert.h:
35821 Add initial vaapiconvert plugin.
35823 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35825 * sys/vaapisink/gstvaapisink.c:
35826 * sys/vaapisink/gstvaapisink.h:
35829 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35831 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35834 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35836 * tests/examples/generic/test-windows.c:
35837 Generate R/G/B rects.
35839 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35841 * gst-libs/gst/vaapi/gstvaapisurface.c:
35842 * gst-libs/gst/vaapi/gstvaapisurface.h:
35843 Add gst_vaapi_surface_sync().
35845 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35847 * gst-libs/gst/vaapi/gstvaapiimage.c:
35848 Cosmetics (reverse args order).
35850 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35852 * gst-libs/gst/vaapi/gstvaapiimage.c:
35853 * gst-libs/gst/vaapi/gstvaapiimage.h:
35854 * gst-libs/gst/vaapi/gstvaapisurface.c:
35857 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35859 * gst-libs/gst/vaapi/Makefile.am:
35860 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35861 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35862 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35863 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35864 * tests/examples/generic/Makefile.am:
35865 * tests/examples/generic/test-windows.c:
35866 Add VA/X11 window abstraction.
35868 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35870 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35871 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35872 Add VA and X11 display accessors.
35874 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35876 * gst-libs/gst/vaapi/gstvaapiimage.c:
35879 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35881 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35884 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35886 * gst-libs/gst/vaapi/gstvaapiimage.c:
35887 * gst-libs/gst/vaapi/gstvaapiimage.h:
35888 * gst-libs/gst/vaapi/gstvaapisurface.c:
35889 * gst-libs/gst/vaapi/gstvaapisurface.h:
35890 Add gst_vaapi_{get,put}_image() API.
35892 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35894 * gst-libs/gst/vaapi/gstvaapiimage.c:
35895 * gst-libs/gst/vaapi/gstvaapiimage.h:
35896 Add gst_vaapi_image_update_from_buffer() helper.
35898 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35900 * sys/vaapisink/Makefile.am:
35901 * sys/vaapisink/gstvaapisink.c:
35902 * sys/vaapisink/gstvaapisink.h:
35903 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35905 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35907 * tests/examples/generic/Makefile.am:
35908 * tests/examples/generic/test-surfaces.c:
35911 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35913 * gst-libs/gst/vaapi/Makefile.am:
35914 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35915 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35916 Add basic GstVaapiVideoBuffer.
35918 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35920 * gst-libs/gst/vaapi/Makefile.am:
35921 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35922 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35923 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35924 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35925 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35926 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35927 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35929 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35931 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35932 Simplify format conversion code.
35934 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35936 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35937 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35938 Add gst_vaapi_image_format_from_caps() helper.
35940 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35942 * gst-libs/gst/vaapi/Makefile.am:
35943 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35944 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35945 Add VA surface pool (lazy allocator).
35947 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35949 * gst-libs/gst/vaapi/gstvaapisurface.c:
35950 * gst-libs/gst/vaapi/gstvaapisurface.h:
35951 Add gst_vaapi_surface_get_size() helper.
35953 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35955 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35956 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35958 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35960 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35961 Reset display-name if the user provided his own X11 display.
35963 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35965 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35966 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35967 * tests/examples/generic/test-display.c:
35968 Add gst_vaapi_display_x11_new_with_display() API.
35970 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35972 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35973 * gst-libs/gst/vaapi/gstvaapiimage.h:
35974 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35975 * gst-libs/gst/vaapi/gstvaapisurface.h:
35976 Fix *_GET_CLASS() definitions...
35978 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35980 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35981 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35982 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35983 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35984 * tests/examples/generic/test-display.c:
35985 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
35987 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35989 * gst-libs/gst/vaapi/gstvaapisurface.c:
35990 * gst-libs/gst/vaapi/gstvaapisurface.h:
35991 Use GstVaapiChromaType abstraction.
35993 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35995 * gst-libs/gst/vaapi/gstvaapiimage.c:
35996 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35997 * gst-libs/gst/vaapi/gstvaapisurface.c:
35998 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
36000 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36002 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36003 Don't warn on failure, just return an appropriate error or value.
36005 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36007 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36008 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36009 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36010 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
36012 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36014 * gst-libs/gst/vaapi/Makefile.am:
36015 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
36016 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
36017 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
36019 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36021 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36022 * gst-libs/gst/vaapi/gstvaapiimage.c:
36023 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36024 * gst-libs/gst/vaapi/gstvaapisurface.c:
36025 * gst-libs/gst/vaapi/vaapi_debug.h:
36028 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36030 * gst-libs/gst/vaapi/gstvaapiimage.c:
36031 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36032 Fix GstVaapiImage and GstVaapiSubpicture initialization.
36034 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36036 * gst-libs/gst/vaapi/gstvaapisurface.c:
36037 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
36039 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36041 * tests/examples/generic/test-display.c:
36044 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36046 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36047 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36048 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36049 Fix GstVaapiDisplay initialization.
36051 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36053 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36054 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36055 Get VA image & subpicture formats as GstCaps.
36057 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36059 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36060 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36061 Add helper to convert from GstVaapiImageFormat to GstCaps.
36063 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36065 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36066 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36067 * gst-libs/gst/vaapi/gstvaapisurface.c:
36068 Cosmetics (drop unused variables).
36070 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36073 * sys/vaapiconvert/Makefile.am:
36074 * sys/vaapiconvert/gstvaapiconvert.c:
36075 * sys/vaapiconvert/gstvaapiconvert.h:
36076 * sys/vaapisink/Makefile.am:
36077 * sys/vaapisink/gstvaapisink.c:
36078 * sys/vaapisink/gstvaapisink.h:
36079 Add boilerplate for vaapiconvert and vaapisink elements.
36081 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36085 * sys/vaapiconvert/Makefile.am:
36086 Add vaapiconvert element hierarchy.
36088 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36090 * sys/vaapisink/Makefile.am:
36091 Rename to vaapisink.
36093 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36095 * gst-libs/gst/vaapi/gstvaapisurface.c:
36096 Shorter code (and more correct).
36098 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36100 * gst-libs/gst/vaapi/gstvaapisurface.c:
36101 * gst-libs/gst/vaapi/gstvaapisurface.h:
36102 Add helper to get GstVaapiDisplay from a surface.
36104 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36106 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36107 Fix subpicture formats list length.
36109 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36111 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36112 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36113 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
36115 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36117 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36118 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36119 Cosmetics (more checks, includes).
36121 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36123 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36124 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36125 Really add VA subpicture abstraction.
36127 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36129 * gst-libs/gst/vaapi/Makefile.am:
36130 * gst-libs/gst/vaapi/gstvaapiimage.c:
36131 * gst-libs/gst/vaapi/gstvaapiimage.h:
36132 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36133 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36134 * gst-libs/gst/vaapi/gstvaapisurface.c:
36135 * gst-libs/gst/vaapi/gstvaapisurface.h:
36136 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36138 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36141 * gst-libs/gst/vaapi/Makefile.am:
36142 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36143 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36144 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36145 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36146 * gst-libs/gst/vaapi/vaapi_debug.h:
36147 * gst-libs/gst/vaapi/vaapi_utils.c:
36148 * gst-libs/gst/vaapi/vaapi_utils.h:
36149 * tests/examples/generic/Makefile.am:
36150 * tests/examples/generic/test-display.c:
36151 Add initial VA display abstraction.
36153 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36157 * tests/Makefile.am:
36158 * tests/examples/Makefile.am:
36159 * tests/examples/generic/Makefile.am:
36160 Add tests infrastructure.
36162 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36165 Clean up VA-API checks.
36167 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36170 Check for __attribute__((visibility("hidden"))).