3 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
7 * gstreamer-vaapi.doap:
11 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
14 Update ChangeLogs for 1.19.3
16 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
18 * tests/check/meson.build:
19 meson: update for meson.build_root() and .build_source() deprecation
20 -> use meson.project_build_root() or .global_build_root() instead.
21 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
23 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
26 * gst-libs/gst/vaapi/meson.build:
28 * tests/check/meson.build:
29 meson: update for dep.get_pkgconfig_variable() deprecation
30 ... in favour of dep.get_variable('foo', ..) which in some
31 cases allows for further cleanups in future since we can
32 extract variables from pkg-config dependencies as well as
33 internal dependencies using this mechanism.
34 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
36 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
39 meson: bump meson requirement to >= 0.59
40 For monorepo build and ugly/bad, for advanced feature
41 option API like get_option('xyz').required(..) which
42 we use in combination with the 'gpl' option.
43 For rest of modules for consistency (people will likely
44 use newer features based on the top-level requirement).
45 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
47 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
50 Docs: Fix a typo for Intel's vaapi driver name.
51 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
53 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
56 doc: update IRC links to OFTC
57 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
59 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
63 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
65 === release 1.19.2 ===
67 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
72 * gstreamer-vaapi.doap:
76 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
78 * gst/vaapi/gstvaapidecode.c:
79 vaapi: decoder: modify the condition to judge whether dma buffer is supported
80 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
81 return false even if this platform support the mem_type dma buffer.
82 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
83 on Gen12(such as TGL).
84 Without this patch, The command such as:
85 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
86 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
87 will return not-negotiated.
88 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
89 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
91 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
93 * gst-libs/gst/vaapi/gstvaapidisplay.c:
94 * gst/vaapi/gstvaapivideocontext.c:
95 Display: Add a property to export the VA display handle.
96 Just like what we do in VA plugins. The display can be seen as a
97 generic gst object and we can add a property to get the internal
99 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
101 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
103 * gst/vaapi/gstvaapivideomemory.c:
104 * gst/vaapi/gstvaapivideomemory.h:
105 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
106 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
107 peek the surface of the VA buffers. The old flag 0 just peek the
108 surface proxy, which may not be convenient for the users who do not
109 want to include our headers.
110 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
112 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
114 * gst/vaapi/gstvaapi.c:
115 * gst/vaapi/gstvaapidecode.c:
116 Revert "vaapi: Demote vaapidecodebin to rank NONE."
117 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
118 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
120 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
122 * gst/vaapi/gstvaapiencode.c:
123 plugins: encode: fix a deadlock because of _drain()
124 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
125 whose context does not hold the stream lock of the encoder. The
126 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
127 lock count to the stream lock of encoder and causes hang later.
128 We just remove the gst_vaapiencode_drain() and expand its logic
129 correctly according to the lock/unlock context.
130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
132 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
134 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
135 libs: decoder: av1: Clean the film_grain_info field.
136 We need to clean all film_grain_info fields when the film grain
137 feature is not enabled. It may have random data because the picture
138 parameter buffer is not cleaned.
139 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
141 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
143 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
144 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
145 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
146 The MPEG2 spec has amendment 3 to introduce a new level highP, which
147 is used for 1080@50p/60p streams. We need to add this level to avoid
148 encoding failure because of the level check.
150 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
152 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
155 Decoder: H264: Add the support for frame packing arrangement SEI message.
156 Frame packing arrangement SEI message is an alternative simple stereo 3D
157 manner for AVC. We need to recognize that SEI message and report the correct
159 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
161 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
163 * gst-libs/gst/vaapi/gstvaapifilter.c:
165 Use g_memdup2() where available and add fallback for older GLib versions
166 Alloc size is based on existing allocations and struct sizes.
167 g_memdup() is deprecated since GLib 2.68 and we want to avoid
168 deprecation warnings with recent versions of GLib.
169 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
171 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
176 === release 1.19.1 ===
178 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
183 * gstreamer-vaapi.doap:
187 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
189 * gst/vaapi/gstvaapi.c:
190 * gst/vaapi/gstvaapidecode.c:
191 vaapi: Demote vaapidecodebin to rank NONE.
192 One of the main reasons of vaapidecodebin was because it mitigated the
193 possible surface exhaustion. But that problem is currently
194 solved. Nowadays, vaapidecodebin brings more problems than it
195 solves. Thus this patch demotes vaapidecodebin to NONE rank while
196 bumping PRIMARY + 1 the most common decoders.
197 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
199 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
201 * gst/vaapi/gstvaapi.c:
202 * gst/vaapi/gstvaapioverlay.c:
203 plugins: Demote rank of vaapipostproc and vaapioverlay.
204 Since almost all video filters have rank NONE, these both elements
206 This is useful for autovideoconvert and other bins, and users might
207 force to use these by setting the environment variable
208 GST_PLUGIN_FEATURE_RANK.
209 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
211 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
213 * tests/check/elements/vaapioverlay.c:
214 Use gst_element_request_pad_simple...
215 Instead of the deprecated gst_element_get_request_pad.
216 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
218 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
220 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
221 libs: encoder: VP9: fix > 4k encode fail issue
222 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
223 width of a tile in units of superblocks. So the max width of one tile
224 should not be larger than 64x64=4096. When the width exceeds 4k, we
225 need to split it into multiple tiles in columns. The current vp9 encoder
226 does not handle this correctly.
228 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
229 vaapivp9enc ! fakesink
231 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
233 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
235 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
236 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
237 Otherwise user will be misled that the specified device is using
238 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
239 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
241 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
243 * gst-libs/gst/vaapi/gstvaapiencoder.c:
244 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
245 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
246 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
247 If ROI is enabled, the CUs within the ROI region may have different
248 QP from the other part of the picture. This needs us to enable the
249 cu_qp_delta_enabled_flag even in the CQP mode.
250 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
252 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
254 * gst-libs/gst/vaapi/gstvaapicontext.c:
255 * gst-libs/gst/vaapi/gstvaapicontext.h:
256 * gst-libs/gst/vaapi/gstvaapiencoder.c:
257 * gst-libs/gst/vaapi/gstvaapifilter.c:
258 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
259 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
260 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
261 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
262 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
263 * gst-libs/gst/vaapi/gstvaapivalue.c:
264 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
265 * gst/vaapi/gstvaapipluginbase.c:
266 * gst/vaapi/gstvaapisink.c:
267 * gst/vaapi/gstvaapisink.h:
268 * gst/vaapi/gstvaapivideocontext.c:
269 * gst/vaapi/gstvaapivideomemory.c:
270 * tests/internal/simple-decoder.c:
271 gst: don't use volatile to mean atomic
272 volatile is not sufficient to provide atomic guarantees and real atomics
273 should be used instead. GCC 11 has started warning about using volatile
274 with atomic operations.
275 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
276 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
277 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
279 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
281 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
282 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
283 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
284 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
286 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
288 * gst/vaapi/gstvaapipostproc.c:
289 plugins: postproc: Fix a problem of propose_allocation when passthrough.
290 We should query the downstream element to answer a precise allocation
291 query when the passthrough mode is enabled.
292 The current way still decides the allocation by the postproc itself. The
294 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
295 vaapipostproc ! fakevideosink silent=false sync=true
296 will lose some info such as the GST_VIDEO_META_API_TYPE.
297 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
299 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
301 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
302 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
303 * gst/vaapi/gstvaapivideocontext.c:
304 libs: display: drm: support gst.vaapi.app.Display context for drm backend
305 Attributes for drm backend:
306 - va-display : ponter of VADisplay
307 - drm-device-fd : the DRM device file descriptor
308 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
310 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
313 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
314 libs: display: drm: allow user specify a drm device via an env variable
315 Currently the default drm device is always used on a system with
316 multiple drm devices. This patch allows user to specify the required
317 drm device via GST_VAAPI_DRM_DEVICE env variable
319 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
320 vaapih264enc ! fakesink
321 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
323 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
325 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
326 libs: display: drm: fix set_device_path_from_fd
327 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
328 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
329 so we can't get the right device path. Running test-display will get the
331 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
333 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
334 issue because a special permission is required for SET_VERSION ioctl.
335 This patch retrieves the device path from file descriptor via
337 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
338 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
340 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
342 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
343 glx: Iterate over FBConfig and select 8 bit color size
344 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
345 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
346 over it to find the correct config with supported values.
347 This also adds 8 bit alpha size to the framebuffer configuration which is
348 required to get it working properly.
349 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
351 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
353 * gst-libs/gst/vaapi/gstvaapiutils.c:
354 vaapipostproc: fix code style.
355 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
357 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
359 * gst-libs/gst/vaapi/gstvaapidisplay.c:
360 * gst-libs/gst/vaapi/gstvaapidisplay.h:
361 * gst-libs/gst/vaapi/gstvaapifilter.c:
362 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
363 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
365 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
367 * gst-libs/gst/vaapi/gstvaapiutils.c:
368 vaapipostproc: Added gstreamer BT2020 color standard support.
369 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
371 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
373 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
374 decoder: AV1: Fix a static analysis problem of update_state().
375 No need to check the picture pointer after we have already dereferenced it.
377 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
379 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
381 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
382 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
383 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
384 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
385 The AV1 film_graim feature needs two surfaces the same time for
386 decoding. One is for recon surface which will be used as reference
387 later, and the other one is for display. The GstVaapiPicture should
388 contain the surface for display, while the vaBeginPicture() need
389 the recon surface as the target.
390 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
392 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
394 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
396 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
397 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
398 * gst-libs/gst/vaapi/gstvaapiprofile.c:
399 * gst-libs/gst/vaapi/gstvaapiprofile.h:
400 * gst-libs/gst/vaapi/gstvaapiutils.c:
401 * gst-libs/gst/vaapi/meson.build:
402 * gst/vaapi/gstvaapidecode.c:
404 libs: decoder: AV1: Add the av1 decoder support.
405 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
407 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
409 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
410 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
411 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
412 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
413 libs: codecobject: Add number of elements when create codec object.
414 One slice data may need several slice parameter buffers at one time.
415 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
417 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
419 * gst/vaapi/gstvaapidecodebin.c:
420 * gst/vaapi/gstvaapipluginbase.c:
421 * gst/vaapi/gstvaapivideobufferpool.c:
422 vaapi: use gst_clear_object instead of g_clear_object
423 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
425 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
427 * gst/vaapi/gstvaapiencode.c:
428 plugins: encode: unlock the stream lock before _flush()
429 The current encoder will hang when EOS comes. When we call the
430 gst_vaapi_encoder_encode_and_queue(), we should release the stream
431 lock, just like what we do in gst_vaapiencode_handle_frame().
432 The deadlock happens when: The input thread holding the stream lock
433 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
434 buffer, while the output thread which holding the coded buffer resource
435 is acquiring the stream lock in _push_frame() to push the data to
437 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
439 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
441 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
442 libs: encoder: H264: Fix one assert in get_pending_reordered().
443 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
444 case for HIERARCHICAL_B mode. The pipeline:
445 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
446 keyframe-period=32 ! fakesink
448 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
449 assertion failed: (count != 0)
450 The last few B frames are not fetched in correct order when HIERARCHICAL_B
452 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
453 make the last several frames encoded in reverse order. The NAL of last few
454 frames come in reverse order in the bit stream, though it can still output
456 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
458 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
460 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
461 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
462 libs: encoder: H265: Add screen content coding extensions support.
463 In scc mode, the I frame can ref to itself and it needs the L0 reference
464 list enabled. So we should set the I frame to P_SLICE type. We do not need
465 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
466 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
467 the driver consider the current frame as reference. For bits conformance,
468 the NumRpsCurrTempList0 should be incremented by one to include the current
469 picture as the reference frame. We manually do it when packing the slice header.
471 gst-launch-1.0 videotestsrc num-buffers=10 ! \
472 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
473 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
474 filesink location=out.265
475 Can be used to specify that the encoder should use SCC profiles.
476 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
478 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
480 * gst/vaapi/gstvaapiencode_vp9.c:
481 plugin: encode: vp9: Implement the set_config().
482 We store the allowed profiles list to encoder in set_config().
483 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
485 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
487 * gst/vaapi/gstvaapiencode_vp9.c:
488 plugin: encode: vp9: Add the profile into output caps.
489 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
491 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
493 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
494 libs: encoder: vp9: no need to ensure_hw_profile.
495 Once we decide the profile and can get the valid entrypoint for
496 that profile, hw must already support this profile/entrypoint pair.
497 No need to check it again in set_context_info().
498 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
500 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
502 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
503 libs: encoder: vp9: Improve the manner to decide the profile.
504 We should decide the VP9 encoder's profile based on the chroma and
505 depth of the input format, then make sure it is included in the
507 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
509 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
511 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
512 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
513 libs: util: vpx: add get_chroma_format_idc for VP9
514 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
516 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
518 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
519 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
520 libs: encoder: vp9: Add allowed_profiles.
521 We need the allowed_profiles to store the allowed profiles in down
524 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
526 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
528 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
530 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
532 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
533 libs: decoder: H265: Fix a typo in scc reference setting.
534 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
536 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
538 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
539 * gst-libs/gst/vaapi/gstvaapiprofile.c:
540 * gst-libs/gst/vaapi/gstvaapiprofile.h:
541 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
542 * gst-libs/gst/vaapi/video-format.c:
543 * gst/vaapi/gstvaapidecode.c:
544 libs: decoder: H265: Add MAIN_422_12 profile supporting.
545 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
547 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
549 * gst-libs/gst/vaapi/gstvaapiimage.c:
550 * gst-libs/gst/vaapi/video-format.c:
551 * gst-libs/gst/vaapi/video-format.h:
552 video-format: Add Y212_LE format.
553 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
554 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
556 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
558 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
560 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
561 * gst-libs/gst/vaapi/gstvaapiprofile.c:
562 * gst-libs/gst/vaapi/gstvaapiprofile.h:
563 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
564 * gst-libs/gst/vaapi/video-format.c:
565 * gst/vaapi/gstvaapidecode.c:
566 libs: decoder: H265: Add MAIN_444_12 profile supporting.
567 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
569 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
571 * gst-libs/gst/vaapi/gstvaapiimage.c:
572 * gst-libs/gst/vaapi/video-format.c:
573 * gst-libs/gst/vaapi/video-format.h:
574 video-format: Add Y412_LE format.
575 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
576 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
578 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
580 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
582 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
583 libs: decoder: h265: fill missing predictor_palette_size field.
584 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
585 forgotten and need to be filled when streams have palettes.
586 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
588 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
590 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
591 libs: utils: h265: Use get_profile_from_sps to get profile.
592 We now use gst_h265_get_profile_from_sps() to replace the old way
593 of gst_h265_profile_tier_level_get_profile() to get more precise
594 profile. The new function consider the unstandard cases and give
595 a more suitable profile decision.
596 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
598 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
600 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
601 libs: decoder: vp9: 0xff segment pred probs if no temporal update
602 According to the spec (6.2.11 Segmentation params syntax)
603 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
604 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
606 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
608 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
609 libs: decoder: vp9: avoid reference rewriting
610 The removed code set all the reference frames to the current frame it is a key
611 one, but later, all the reference frames were rewritten with the decoded picture
612 buffers or VA_INVALID_SURFACE if they were not available.
613 Basically, all this time the first reference frame assignment has been ignored,
614 and it's not described by the spec, and this patch removes that code.
615 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
617 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
619 * gst/vaapi/gstvaapidecode.c:
620 decoder: don't reply src caps query with allowed if pad is fixed
621 If the pad is already fixed the caps query have to be reply with the
622 current fixed caps. Otherwise the query has to be replied with the
623 autogeneratd src caps.
624 This path fix this by falling back to the normal caps query processing
625 if the pad is already fixed. Otherwise it will fetch the allowed src
627 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
629 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
631 * gst/vaapi/gstvaapidecode.c:
632 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
633 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
635 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
637 * gst/vaapi/gstvaapisink.c:
638 vaapisink: when updating the caps, reset rotation
639 When an element upstream changes settings (e.g. crop), new caps are sent
640 to vaapisink. When vaapisink was rotating the image, it needs to
641 re-evaluate if the sink needs to rotate the image.
642 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
644 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
647 ci: include template from gst-ci master branch again
649 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
654 === release 1.18.0 ===
656 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
662 * gstreamer-vaapi.doap:
666 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
668 * gst-libs/gst/vaapi/gstvaapifilter.c:
669 Update for gst_video_transfer_function_*() function renaming
670 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
672 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
674 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
675 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
676 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
677 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
678 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
680 === release 1.17.90 ===
682 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
687 * gstreamer-vaapi.doap:
691 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
693 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
694 libs: surface: egl: guard memory type
695 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
697 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
699 * gst/vaapi/gstvaapidecode.c:
700 plugin: decode: Fix two mem leaks because of caps.
701 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
703 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
705 * gst/vaapi/gstvaapivideomemory.c:
706 plugin: allocator: No need to ref allocator when create mem.
707 We do not need to ref the allocator when creating GstVaapiVideoMemory
708 kind memory, and then release it in _free(). The framework already
710 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
712 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
714 * gst/vaapi/gstvaapiencode_h264.c:
715 vaapiencode: h264: ignore level without breaking negotiation
716 Since commit 9f627ef2 if the user sets level in the encoder src caps
717 the caps negotiation is rejected.
718 But since the same commit the same encoder set the autoconfigured
719 level in caps. Some change in the base class might fixed the operation
720 order so now the caps are set and later negotiated.
721 This patch removes the level check.
723 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
725 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
727 * gst-libs/gst/vaapi/egl_vtable.h:
728 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
729 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
730 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
731 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
732 This code path is used when frames are rendered as textures through
733 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
734 Originally the EGLImage was exported as GEM, which was handled by
735 Intel drivers, but Gallium ones cannot create VA surfaces from
736 GEM buffers, only DMABuf.
737 This patch checks the memory types supported by VA driver to choose
738 the render the EGLImages from GEM or DMABuf, because GEM is still
739 better where supported.
740 DMABuf is well handled either by intel-vaapi-driver and gallium.
742 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
744 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
746 * gst-libs/gst/vaapi/gstvaapifilter.c:
747 * gst-libs/gst/vaapi/gstvaapifilter.h:
748 libs: filter: gst_vaapi_filter_get_memory_types()
749 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
751 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
753 * gst/vaapi/gstvaapipluginbase.c:
754 * gst/vaapi/gstvaapipluginbase.h:
755 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
756 Since nobody uses it, just remove it.
757 Thus extract_allowed_surface_formats() is refactored to attend only
758 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
759 Now a surface is created when the image chorma is different from the
760 previous one. And if the driver has the quirk, it outputs all the
761 supported image formats without trying them.
762 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
764 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
766 * gst/vaapi/gstvaapidecode.c:
767 vaapidecode: expose raw src caps with same chroma
768 The try-and-error approach for getting the possible image formats from
769 a surface has brought several problems in different drivers, from
770 crashes to drop in performance.
771 Instead of that we change the algorithm to determine the possible
772 image formats based in the surface chroma: only those available image
773 formats with same chroma are exposed as possible raw caps.
774 Do this is important to avoid performance degrading in raw sinks
775 which doesn't handle NV12 but it does YV12 or I420.
776 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
778 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
780 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
781 libs: util: h265: use common parser API to get vaapi profiles.
782 We can reuse H265 parser's API to recognize the correct profile and
783 then just need to convert them to VAAPI profiles.
784 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
786 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
788 * gst-libs/gst/vaapi/meson.build:
789 * gst/vaapi/meson.build:
791 build: update for gl pkg-config file split
792 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
794 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
796 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
797 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
798 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
799 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
801 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
803 * gst-libs/gst/vaapi/gstvaapiencoder.c:
804 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
805 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
806 libs: encoder: H265: Enable Main 12 profile support.
807 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
809 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
811 * gst-libs/gst/vaapi/video-format.c:
812 video format: Fix P012_LE's chrome type typo.
813 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
815 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
817 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
818 gstvaapiminiobject.c: fix clang 10 warnings
819 the typesystem checks in g_atomic_pointer_compare_and_exchange
820 seem to trigger some false positives with clang 10
821 similar to gstreamer!584
822 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
824 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
826 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
827 libs: window: wayland: destroy all wayland buffers during finalize
828 Some buffers and the associated FrameState state may still be pending at
829 that point. If the wayland connection is shared, then messages for the
830 buffer may still arrive. However, the associated event queue is already
831 deleted. So the result is a crash.
832 With a private connection the associated memory is leaked instead.
833 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
835 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
837 * tests/examples/test-vaapicontext.c:
838 test: vaapicontext: fix draw callback with multiple videos
839 The callback is called for both windows. So make sure that
840 gst_video_overlay_set_render_rectangle() is called for the correct one.
841 Otherwise, the left video will be randomly moved behind the right video.
842 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
844 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
846 * tests/examples/meson.build:
847 * tests/examples/test-vaapicontext.c:
848 test: vaapicontext: support wayland display
849 On Wayland, The whole gtk window is one Wayland surface. So
850 gtk_widget_get_window() must be called on the top-level widget.
851 For any other widget the following gdk_window_ensure_native() may create a
852 new top-level Wayland surface that is never visible.
853 As a result, the coordinates passed to
854 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
855 window. Otherwise the video is placed incorrectly.
856 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
857 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
859 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
861 * tests/examples/test-vaapicontext.c:
862 test: vaapicontext: use playbin to test files
863 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
865 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
867 * tests/examples/test-vaapicontext.c:
868 test: vaapicontext: add PLAY and NULL buttons
869 They only appear when only one sink is instanciated and their purpose
870 is to test the NULL-PLAY use case in context sharing.
871 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
873 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
875 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
876 libs: wayland: update the opaque region in set_render_rect
877 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
878 thread. That thread may be responsible for making the window visible.
879 At that point another thread will block in gst_vaapi_window_wayland_sync()
880 because the frame callback will not be called until the window is visible.
881 If that happens, then acquiring the display lock in
882 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
883 Cache the size of the opaque rectangle separately and create the opaque
884 region right before applying it to the surface.
885 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
887 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
889 * gst-libs/gst/vaapi/gstvaapiwindow.c:
890 * gst-libs/gst/vaapi/gstvaapiwindow.h:
891 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
892 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
893 * gst/vaapi/gstvaapisink.c:
894 libs: window: implements gst_vaapi_window_set_render_rectangle
895 Implements new vmethod gst_vaapi_window_set_render_rectangle,
896 which is doing set the information of the rendered rectangle set by
898 This is necessary on wayland at least to get exact information of
900 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
902 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
904 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
906 * gst/vaapi/gstvaapisink.c:
907 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
908 Implements gst_vaapisink_wayland_create_window_from_handle() to support
909 using external wl_surface.
910 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
912 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
914 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
915 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
916 * gst-libs/gst/vaapi/gstvaapiwindow.c:
917 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
918 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
919 libs: wayland: implement video overlay API
920 The Wayland sub-surfaces API is used to embed the video into an application
922 See Appendix A. Wayland Protocol Specification as the following.
924 The aim of sub-surfaces is to offload some of the compositing work
925 within a window from clients to the compositor. A prime example is
926 a video player with decorations and video in separate wl_surface
928 This should allow the compositor to pass YUV video buffer processing to
929 dedicated overlay hardware when possible.
931 Added new method gst_vaapi_window_wayland_new_with_surface()
932 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
933 Zhao Halley <halley.zhao@intel.com>
934 changzhix.wei@intel.com
935 Hyunjun Ko <zzoon@igalia.com>
936 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
938 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
940 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
941 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
942 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
944 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
946 * gst-libs/gst/vaapi/gstvaapidisplay.c:
947 libs: display: always call close_display()
948 All close_display() have their own checks for use_foreign_display and only
949 destroy locally created objects in that case.
950 Without this objects other than the actuall foreign display itself are
952 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
954 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
956 * gst-libs/gst/vaapi/video-format.h:
957 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
958 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
960 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
962 * gst/vaapi/gstvaapidecode.c:
963 * gst/vaapi/gstvaapipluginutil.c:
964 * gst/vaapi/gstvaapipluginutil.h:
965 plugins: add gst_vaapi_caps_set_width_and_height_range()
966 This utility function is called internally by
967 gst_vaapi_build_caps_from_formats() and can be used outside.
968 This function sets frame size and framerates ranges.
969 Also gst_vaapi_build_caps_from_formats() is simplified.
970 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
972 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
974 * gst-libs/gst/vaapi/gstvaapidecoder.c:
975 libs: decoder: fix a crash issue when get_surface_formats.
976 Some context does not report any valid format that we can support.
977 For example, the HEVC 444 12 bits decoder context, all the formats
978 it reports is not supported now, which make the formats list a NULL
979 array. We should check that pointer before we use it.
980 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
982 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
984 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
985 libs: encoder: h265: choose the profile based on allowed list.
986 We can decide the profile in ensure_profile(), based on allowed list
987 passed by the encode. We also need to check whether the entrypoint is
988 available. Once it is decided, no need to check the hw entrypoint
990 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
992 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
994 * gst/vaapi/gstvaapiencode_h265.c:
995 plugins: encode: h265: set all allowed profiles to encoder.
996 We should collect all allowed profiles and pass them to the inside
997 encoder, rather than just calculate the max profile idc.
998 The allowed profiles should also be supported by the HW.
999 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1001 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
1003 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1004 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1005 libs: display: Add a helper function to get profiles by codec.
1006 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1008 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
1010 * gst/vaapi/gstvaapiencode_h265.c:
1011 plugins: encode: h265: collect all allowed profiles to encoder.
1012 We should collect all allowed profiles and pass them to the inside
1013 encoder, rather than just calculate the max profile idc.
1014 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1016 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1018 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1019 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1020 * gst/vaapi/gstvaapiencode_h265.c:
1021 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1022 In h265, bigger profile idc may not be compatible with the small profile
1023 idc. And more important, there are multi profiles with the same profile
1024 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1026 So recording the max profile idc is not enough, the encoder needs to know
1027 all allowed profiles when deciding the real profile.
1028 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1030 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1032 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1033 libs: encoder: h265: No need to check hw_max_profile.
1034 In h265, higher profile idc number does not mean better compression
1035 performance and may be not compatible with the lower profile idc.
1036 So, it is not suitable to find the heighest idc for hw to ensure the
1038 On the other side, when the entrypoint of the selected profile is valid,
1039 it means the hw really support this profile, no need to check it again.
1040 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1042 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1044 * gst/vaapi/gstvaapipostproc.c:
1045 vaapipostproc: early return if fixate srcpad caps fails
1046 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1048 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1050 * gst/vaapi/gstvaapipluginutil.c:
1051 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1052 Generalize the way how the preferred color format is chosen. Also
1053 use new GStreamre API as syntatic sugar.
1054 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1056 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1058 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1059 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1060 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1061 * gst/vaapi/gstvaapidecode.c:
1062 * gst/vaapi/gstvaapiencode.c:
1063 libs: profile: Use get_codec_from_caps to get codec type.
1064 There is no need to get a profile from the caps and then convert
1065 that profile into codec type. We can get the codec type by caps's
1067 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1069 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1071 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1072 libs: profile: h265: Fix return value of from_codec_data_h265.
1073 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1074 The codec data of caps contain the profile IDC, but the mapping between
1075 profile IDC and GstVaapiProfile is wrong.
1076 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1078 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1080 * gst/vaapi/gstvaapiencode_vp9.c:
1081 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1082 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1084 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1086 * gst/vaapi/gstvaapiencode_h264.c:
1087 * gst/vaapi/gstvaapiencode_h265.c:
1088 * gst/vaapi/gstvaapipluginutil.c:
1089 * gst/vaapi/gstvaapipluginutil.h:
1090 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1091 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1092 as VP9 also needs to use this function.
1093 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1095 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1097 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1098 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1099 * gst-libs/gst/vaapi/meson.build:
1100 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1101 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1103 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1105 * gst-libs/gst/vaapi/gstvaapicontext.c:
1106 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1107 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1108 libs: display, context: handle broken jpeg decoder for i965 driver
1109 JPEG decoding in i965 driver is pretty much broken, and the driver is
1110 deprecated which mean authors only accept trivial fixes.
1111 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1112 format which is not a common format in GStreamer. It can export it to
1113 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1114 This patch artificially adds NV12 to the context format list when it's
1115 JPEG decoder for i965 and force the usage of old VA-API for surface
1116 creation without specifying color format. Also it artificially
1117 disables the DMABuf announcement.
1118 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1119 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1121 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1123 * gst-libs/gst/vaapi/gstvaapicontext.c:
1124 libs: context: change function to internal code style
1125 Instead of a getter the function `get_preferred_format()` to
1126 `ensure_preferred_format()` which aligns to the code style.
1127 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1129 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1131 * gst/vaapi/gstvaapidecode.c:
1132 vaapidecode: always merge profile caps in sink caps
1133 This commit fixes a regression of e962069d, where if the profile's
1134 caps doesn't have a caps profile, it's ignored.
1135 This patch add a conditional jump if the caps doesn't have a profile
1138 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1140 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1143 build: request libdrm >= 2.4.98 and fallback
1145 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1147 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1149 * gst/vaapi/gstvaapidecode.c:
1150 vaapidecode: dma caps only use reported color format
1151 This fix pipelines without vaapipostproc after vaapi decoder, such as
1152 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1153 On EGL platforms, so DMABuf is used.
1154 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1156 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1158 * gst/vaapi/gstvaapidecode.c:
1159 vaapidecode: use allowed srcpad caps for caps query
1160 Instead of using just the template caps use the current allowed
1161 srcpad caps, which is created considering the current decoder
1163 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1165 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1167 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1168 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1169 * gst/vaapi/gstvaapidecode.c:
1170 vaapidecode: build allowed srcpad caps from va context
1171 Instead of generating allowed srcpad caps with generic information,
1172 now it takes the size an formats limits from the decoder's context.
1173 This is possible since srcpad caps are generated after the internal
1175 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1176 gst_vaapi_decoder_get_suface_attributes().
1177 From these attributes, formats are only used for VASurface memory
1178 caps feature. For system memory caps feature, the old
1179 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1180 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1181 And for the other caps features (dmabuf and texture upload) the
1182 same static list are used.
1183 This patch also adds DMABuf caps feature only if the context
1184 supports that memory type. Nonetheless, we keep the pre-defined
1185 formats since they are the subset of common derive formats formats
1186 supported either by amd/gallium and both intel drivers, since,
1187 when exporting the fd through vaAcquireBufferHandle()/
1188 vaReleaseBufferHandle(), the formats of the derivable image cannot
1189 be retriebable from the driver. Later we'll use the attribute
1190 formats for the DMABuf feature too, when the code be ported to
1191 vaExportSurfaceHandle().
1192 Finally, the allowed srcpad caps are removed if the internal decoder
1193 is destroyed, since context attribues will change.
1194 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1196 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1198 * gst/vaapi/gstvaapidecode.c:
1199 vaapidecode: reorder src caps template
1200 Since negotiation depends on caps order, first is VA, then DMABuf,
1201 later GLUploadTexture (deprecated) and finally raw.
1202 Also, for decoders, the possible available color formats for DMABuf
1203 is extended to all the possible VA color formats.
1204 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1206 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1208 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1209 libs: window: wayland: use dmabuf protocol if available
1210 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1211 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1212 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1213 compatible with a Wayland server that uses the iris Mesa driver.
1214 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1215 protocol. Formats and modifiers supported by the Wayland server are taken
1216 into account. If necessary, VPP is enabled to convert the buffer into a
1218 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1220 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1222 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1224 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1225 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1226 libs: window: allow choosing the format for the vpp pool
1227 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1228 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1230 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1232 * gst-libs/gst/vaapi/video-format.c:
1233 * gst-libs/gst/vaapi/video-format.h:
1234 video-format: add DRM formats to the mapping table
1235 This will be needed for the DMABuf protocol support to map DRM formats to
1236 vaapi and gstreamer formats.
1237 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1239 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1241 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1242 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1243 * gst-libs/gst/vaapi/meson.build:
1244 libs: display: wayland: add basic dmabuf protocol support
1245 This is just the basic infrastructure. Hook up the interface and collect
1246 all supported formats.
1247 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1249 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1251 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1252 libs: window: wayland: wait for configure before committing the first buffer
1253 Committing the first buffer for a surface must not be done before
1254 ack_configure() has been sent for the xdg_surface.
1255 With weston, the commit will fail with "error 3: xdg_surface has never been
1257 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1259 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1261 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1263 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1264 libs: encoder: h265: set no P frame automatically.
1265 The double reference lists may be required by drivers and there should
1266 be no P frames in the of stream. The old way of converting P frames to
1267 B frames is by setting `low-delay-b` property, which is unconvenient
1268 and has bad user experience, since most of the users do not know when
1269 to set this property, and if it is not set correctly, the encoding
1270 pipeline fails or even hangs on some platforms. VA driver now provides
1271 a attribute to query whether both reference lists must be un-NULL for
1272 a profile/entrypoint pair.
1273 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1275 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1277 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1278 libs: encoder: h265: Deprecate the low-delay-b property.
1279 In HEVC, P and B definitions are different from AVC: P frames have
1280 just one reference list and so 1 MV, while B frames have two reference
1281 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1282 forward/backward reference. So P and B can both have bi-directions
1283 dependency, the difference is just their reference list
1284 number (i.e. MV number). This is different from the AVC.
1285 The *low delay b mode* refers to a special HEVC mode, in which the
1286 stream just contain I and B frames, without P frames, and all B frames
1287 only have forward direction dependencies (i.e. all inter frames have 2
1288 reference lists but no backward reference in both lists). This is
1289 similar to AVC I/P mode, but changing the P to the forward dependent
1291 The `low-delay-b` property is now just used to simply convert all P
1292 frames to B frames when driver does not support P frames (so both
1293 reference lists have the same references frames). This is a little
1294 different from the meaning of low delay b mode (the two ref lists may
1295 have the different reference frames). And the driver now can report
1296 whether it supports P frames correctly, so there is no need to use
1297 this property and deprecate it.
1298 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1300 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1302 * gst/vaapi/gstvaapipostproc.c:
1303 postproc: reconfigure after changing cropping values
1304 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1306 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1308 * gst/vaapi/gstvaapiencode.h:
1309 * gst/vaapi/gstvaapiencode_h264.c:
1310 * gst/vaapi/gstvaapiencode_h265.c:
1311 * gst/vaapi/gstvaapiencode_jpeg.c:
1312 * gst/vaapi/gstvaapiencode_mpeg2.c:
1313 * gst/vaapi/gstvaapiencode_vp8.c:
1314 * gst/vaapi/gstvaapiencode_vp9.c:
1315 plugin: encode: Add static caps for template documentation.
1316 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1318 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1320 * gst/vaapi/gstvaapiencode_vp9.c:
1321 plugin: encode: vp9: Use the dynamically built src template caps.
1322 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1324 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1326 * gst/vaapi/gstvaapiencode_vp8.c:
1327 plugin: encode: vp8: Use the dynamically built src template caps.
1328 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1330 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1332 * gst/vaapi/gstvaapiencode_jpeg.c:
1333 plugin: encode: jpeg: Use the dynamically built src template caps.
1334 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1336 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1338 * gst/vaapi/gstvaapiencode_mpeg2.c:
1339 plugin: encode: mpeg2: Use the dynamically built src template caps.
1340 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1342 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1344 * gst/vaapi/gstvaapiencode_h265.c:
1345 plugin: encode: h265: Use the dynamically built src template caps.
1346 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1348 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1350 * gst/vaapi/gstvaapiencode_h264.c:
1351 plugin: encode: h264: Use the dynamically built src template caps.
1352 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1354 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1356 * gst/vaapi/gstvaapiencode.h:
1357 * gst/vaapi/gstvaapiencode_h264.c:
1358 * gst/vaapi/gstvaapiencode_h265.c:
1359 * gst/vaapi/gstvaapiencode_jpeg.c:
1360 * gst/vaapi/gstvaapiencode_mpeg2.c:
1361 * gst/vaapi/gstvaapiencode_vp8.c:
1362 * gst/vaapi/gstvaapiencode_vp9.c:
1363 plugin: encode: Store the coded caps in type's init data.
1364 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1366 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1368 * gst/vaapi/gstvaapipluginutil.c:
1369 * gst/vaapi/gstvaapipluginutil.h:
1370 plugin: util: add helper function build_template_coded_caps_by_codec()
1371 Like build_template_raw_caps_by_codec(), this function can detect and
1372 build the caps for specified codec based on the query of the profiles.
1373 The result is coded caps such as video/x-h265, video/x-h264. The result
1374 can be used as the template of encode's src or decode's sink.
1375 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1377 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1379 * gst/vaapi/gstvaapiencode.h:
1380 * gst/vaapi/gstvaapipluginutil.c:
1381 * gst/vaapi/gstvaapipluginutil.h:
1382 plugins: utils: rename build_template_caps_by_codec.
1383 Rename the function build_template_caps_by_codec() to the name of
1384 build_template_raw_caps_by_codec(). It can be used to collect all
1385 raw video formats for encode's sink and decode's src.
1386 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1388 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1390 * gst/vaapi/gstvaapidecode.c:
1391 * gst/vaapi/gstvaapipluginutil.c:
1392 * gst/vaapi/gstvaapipluginutil.h:
1393 vaapidecode: merge common profiles before setting size range
1394 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1395 added at the end of processing all available VA profiles. This
1396 generated an non-optimal caps for negotiation, since the synthetic
1397 profiles don't have frame size ranges.
1398 This patch adds those possible synthetic profiles when the associated
1399 profile is processed, with its frame size ranges.
1400 Now allowed sink caps are simpler.
1401 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1403 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1405 * gst/vaapi/gstvaapipluginutil.c:
1406 plugin: util: Add the missing DMA buffer input in template caps.
1407 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1408 and lose the DMA feature in caps.
1409 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1411 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1413 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1414 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1415 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1416 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1417 * gst-libs/gst/vaapi/video-format.c:
1418 * gst/vaapi/gstvaapidecode.c:
1419 libs: decoder: H265: Add MAIN_12 profile supporting.
1420 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1422 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1424 * gst-libs/gst/vaapi/gstvaapiimage.c:
1425 * gst-libs/gst/vaapi/video-format.c:
1426 video-format: Add P012_LE format.
1427 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1428 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1430 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1432 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1434 * gst/vaapi/gstvaapidecode.c:
1435 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1436 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1437 contains all profiles of the whole VAAPI, like:
1438 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1439 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1440 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1441 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1442 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1443 constrained-high, progressive-high, baseline }; video/x-h265,
1444 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1445 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1446 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1447 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1448 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1449 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1450 height=(int)[ 0, 3840 ]
1451 Which is verbose and may have latent problems. It should only contains
1452 the profiles belong to its codec type. For example, h265 should only
1454 video/x-h265, profile=(string){ main, main-intra },
1455 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1456 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1458 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1460 * gst/vaapi/gstvaapidecodebin.c:
1461 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1462 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1464 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1466 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1467 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1468 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1470 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1472 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1473 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1474 * gst/vaapi/gstvaapidecode.c:
1475 * gst/vaapi/gstvaapidecode.h:
1476 * tests/internal/simple-decoder.c:
1477 vaapidecode: Remove NO_SURFACE error handling
1478 Since surfaces are not bounded to decoding context it makes no sense
1479 to keep the surface semaphore. This patch removes the handling of
1481 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1483 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1485 * gst/vaapi/gstvaapidecode.c:
1486 * gst/vaapi/gstvaapidecode.h:
1487 Revert "vaapidecode: drop non-keyframe in reverse playback"
1488 Since the number of surfaces are not bounded to decoder context,
1489 this hack is no longer needed.
1490 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1491 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1493 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1495 * gst-libs/gst/vaapi/gstvaapicontext.c:
1496 libs: decoder: context: remove surfaces binding from context.
1497 The vaCreateContext do not need to specify the surfaces for the
1498 context creation now. So we do not need to bind any surface to the
1499 context anymore. Surfaces should be the resource belong to display
1500 and just be used in encoder/decoder context.
1501 The previous manner has big limitation for decoder. The context's
1502 surface number is decided by dpb size. All the surfaces in dpb will
1503 be attached to a gstbuffer and be pushed to down stream, and the
1504 decoder need to wait down stream free the surface and go on if not
1505 enough surface available. For more and more use cases, this causes
1506 deadlock. For example,
1507 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1508 ! x264enc ! filesink location=./output.h264
1509 will cause deadlock and make the whole pipeline hang.
1510 the x264enc encoder need to cache more than dpb size surfaces.
1511 The best solution is seperating the surfaces number and the dpb size.
1512 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1513 And let the surfaces_pool in context maintain the re-use of all surfaces.
1514 For encoder, the situation is better, all the surfaces are just used
1515 as reference frame and no need to be pushed to down stream. We can
1516 just reserve and set the capacity of the surfaces_pool to meet the
1520 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1521 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1523 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1526 * scripts/extract-release-date-from-doap-file.py:
1527 meson: set release date from .doap file for releases
1528 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1530 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1532 * gst/vaapi/gstvaapipluginbase.c:
1533 plugins: use VA allocator by default on raw caps
1534 Instead of using dmabuf allocator in source pad, when raw video caps
1535 are negotiated, it uses VA allocator as before, since it is stable
1536 in more use cases, for example transcoding, and more backend drivers.
1537 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1538 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1540 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1542 * gst/vaapi/gstvaapi.c:
1543 vaapisink: rank it as secondary
1544 iHD doesn't provide a full implemention for rendering surfaces and
1545 i965 has problems in wayland. And I suspect this path is followed
1546 by other driver implementations.
1547 This patch demotes the rank of vaapisink to secondary, so it will
1548 not be autoplugged avoiding bad experience of users.
1549 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1551 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1553 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1554 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1555 libs: decoder: h264, h265: in context at least 16 reference surfaces
1556 Registering only stream's DBP size number of surfaces for decoding VA
1557 surfaces brings issues for certain streams. This change register all
1558 possible number of reference surfaces in a stream, which is 16.
1561 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1563 * gst/vaapi/gstvaapiencode_h265.c:
1564 plugins: encode: h265: Add profile,level,tier to output caps.
1565 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1567 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1569 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1570 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1571 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1573 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1575 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1576 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1577 0 is a valid value for h265 tier.
1578 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1580 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1582 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1583 libs: encoder: h265: no need to check the high compression tune.
1584 The h265 encoder just support tune mode:
1586 (3): low-power - Low power mode
1587 So, no need to check and set the high compression parameters.
1588 And by the way, the current ensure_tuning_high_compression manner
1589 of choosing the hightest profile idc as the best compression profile
1590 is not correct. Unlike h264, in h265 the higher profile idc number
1591 does not mean it has more compression tools, and so it has better
1592 compression performance. It may even be un-compatible with the lower
1593 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1594 9 is not compatible with 3D_MAIN profile with idc 8.
1595 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1597 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1602 === release 1.17.2 ===
1604 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
1609 * gstreamer-vaapi.doap:
1613 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
1615 * docs/gst_plugins_cache.json:
1616 * gst/vaapi/gstvaapiencode.c:
1617 docs: Mark parent classes as plugin API
1619 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1622 meson: mark plugins cache target as always stale
1624 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
1626 * docs/gst_plugins_cache.json:
1627 doc: Stop documenting properties from parents
1629 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
1634 === release 1.17.1 ===
1636 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
1641 * gstreamer-vaapi.doap:
1645 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
1647 * docs/gst_plugins_cache.json:
1648 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1649 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1650 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1651 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1652 Update plugin docs and add more plugins
1653 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1655 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1657 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1658 libs: wayland: display: only handle the first output
1659 Right now, all outputs are handled. The means that the registry object for
1660 all but the last are leaked. As a result the sizes are not used correctly.
1661 With two outputs, at first the mode and physical size of the second output
1662 are used. If the first output changes the mode, then the physical size of
1663 the second output is used in combination with the resolution of the first
1664 output. The resulting pixel aspect ratio is incorrect.
1665 There seems to be no way to determine on which output the window is shown,
1666 so just use the first one to get consistent results.
1667 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1669 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
1671 * gst/vaapi/gstvaapipluginbase.c:
1672 plugins: pluginbase: Do not destroy display when _close()
1673 When the element's state changes to NULL, it can still receive
1674 queries, such as the image formats. The display is needed in such
1675 queries but not well protected for MT safe.
1676 For example, ensure_allowed_raw_caps() may still use the display
1677 while it is disposed by gst_vaapi_plugin_base_close() because of
1679 We can keep the display until the element is destroyed. When the
1680 state changes to NULL, and then changes to PAUSED again, the display
1681 can be correctly set(if type changes), or leave untouched.
1683 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1685 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1687 * gst-libs/gst/vaapi/gstvaapicontext.c:
1688 libs: context: use correct printing modifier
1689 GstVaapiID is an alias of gsize, thus its modifier is platform
1691 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1693 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1695 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1696 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1697 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1698 * gst-libs/gst/vaapi/gstvaapifilter.c:
1699 * gst-libs/gst/vaapi/gstvaapivalue.c:
1700 plugins: uddate gst_type_mark_as_plugin_api() calls
1702 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
1704 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1705 libs: encoder: h265: Enable tile in VA command.
1706 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1708 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
1710 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1711 libs: encoder: h265: Add ensure_tile to calculate tiles.
1712 We need consider tiles and slices together, separate tiles uniformly
1713 and then assign slices uniformly to each tiles.
1714 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1716 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
1718 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1719 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1720 libs: display: add a quirk for iHD driver tile encoding.
1721 The iHD driver has a requirement that one slice can not span tiles
1722 when tile is enabled, which is not required by hevc spec.
1723 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1725 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
1727 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1728 libs: encoder: h265: Add tile info to bitstream.
1729 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1731 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
1733 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1734 libs: encoder: h265: promote level if tile is enabled.
1735 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1737 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
1739 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1740 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1741 libs: encoder: h265: Add num-tile-cols/rows properties.
1742 These properties are used for support of tile encoding. We just
1743 support uniform mode of tile encoding, that is, separating picture
1744 equally by (num-tile-cols X num-tile-rows).
1745 According to HEVC spec A1, the max number of tiles in column is 20
1746 and in rows is 22, so add two constant definitions.
1747 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1749 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
1751 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1752 libs: encoder: h265: extract slice creation from add_slice_headers
1753 extract slice creation details from add_slice_headers, and let the
1754 add_slice_headers just focuses on calculating slice start address
1756 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1758 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
1760 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1761 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1762 libs: encoder: Add a helper function to check the tile support.
1763 Encoding by tiles separation now is a very common feature for all
1764 relative new codecs, such as HEVC, AV1, and VP9. Just make this
1765 check as a common helper function of the encoder base class.
1766 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1768 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
1770 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1771 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1772 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1773 * gst-libs/gst/vaapi/gstvaapiutils.c:
1774 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1775 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1776 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1778 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
1780 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1781 libs: decoder: update reference list for SCC.
1782 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1784 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
1786 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1787 libs: decoder: H265: Fill picture and slice SCC parameters.
1788 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1790 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
1792 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1793 libs: util: H265: recognize the SCC profiles.
1794 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1796 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
1798 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1799 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1800 * gst-libs/gst/vaapi/gstvaapiutils.c:
1801 libs: profile: Add screen extended main/main10/main444 define.
1802 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1804 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
1806 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1807 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1808 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1809 * gst/vaapi/gstvaapiencode_h265.c:
1810 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1811 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1812 streams and using Y210 as the input of the encoder can generate main
1813 4:2:2 10 bit streams.
1814 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1816 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
1818 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1819 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1820 We need to use the chroma_format_idc as the index for getting the
1821 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1822 The wrong SubWidthC or SubHeightC make us calculate a wrong right
1823 or bottom offset for crop size and generate garbage in output.
1824 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1826 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
1828 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1829 libs: encoder: h265: Fix chrome idc for 444 10 bits
1830 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1831 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1832 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1834 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
1837 doc: Require hotdoc >= 0.11.0
1839 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
1841 * gst/vaapi/gstvaapipostproc.c:
1842 doc: Fix wrong link to GstVideoDirectionMethod
1844 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
1846 * docs/gst_plugins_cache.json:
1847 * meson_options.txt:
1848 docs: Update plugin cache with the new format
1849 And fix the default URL which should not be inside quotes.
1851 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
1853 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1854 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1855 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1856 * gst-libs/gst/vaapi/gstvaapifilter.c:
1857 * gst-libs/gst/vaapi/gstvaapivalue.c:
1858 * gst/vaapi/gstvaapipostproc.c:
1859 Use gst_type_mark_as_plugin_api() for all non-element plugin types
1861 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
1863 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1864 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1865 * gst-libs/gst/vaapi/gstvaapicontext.h:
1866 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1867 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1868 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1869 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1870 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1871 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1872 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1873 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1874 * gst-libs/gst/vaapi/gstvaapiimage.h:
1875 * gst-libs/gst/vaapi/gstvaapiobject.c:
1876 * gst-libs/gst/vaapi/gstvaapiobject.h:
1877 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
1878 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1879 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1880 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1881 * gst-libs/gst/vaapi/gstvaapisurface.h:
1882 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1883 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1884 * gst-libs/gst/vaapi/meson.build:
1885 libs: delete all gstvaapiobject related files.
1886 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1888 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
1890 * gst-libs/gst/vaapi/gstvaapisurface.c:
1891 libs: surface: return fail immediately if can not create subpicture
1892 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1894 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
1896 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1897 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1898 * gst-libs/gst/vaapi/gstvaapisurface.c:
1899 * tests/internal/image.c:
1900 libs: subpicture: Make subpicture a standard GstMiniObject.
1901 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1903 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
1905 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1906 libs: decoder: h264: Add ref flags for splited field.
1907 When split one frame into fields, the second field should also
1908 copy the reference flags.
1909 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
1911 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1913 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1914 libs: decoder: h264: disallow multiple slice group
1915 As far as we know there are no VAAPI drivers supporting FMO, which
1916 migth be used in baseline streams.
1917 This commit is a continuation of
1918 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
1919 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
1921 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1923 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1924 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1925 * gst/vaapi/gstvaapidecode.c:
1926 * gst/vaapi/gstvaapidecode_props.c:
1927 * gst/vaapi/gstvaapidecode_props.h:
1928 vaapidecoder: h264: remove baseline as constrained property
1929 From now on always the baseline is going to be treated as constrained without
1930 need of setting a property.
1931 Since the property was added along the development cycle (1.17 / commit
1932 866a9f06) and never released, we assume that it is safe to remove it.
1934 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
1936 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1939 README: update VP9 decoder and encoder
1940 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
1942 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
1944 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1945 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
1946 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
1947 so let's align this plugin with other libraries / softwares.
1948 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
1950 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1952 * gst/vaapi/gstvaapivideobufferpool.c:
1953 vaapivideobufferpool: fix meta overwrite
1954 commit 7ac2a207 added a regression by erroneously assumed that
1955 GstVaapiVideoMeta is actually a GstMeta, which is not.
1956 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
1958 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1960 * gst/vaapi/gstvaapivideobufferpool.c:
1961 * gst/vaapi/gstvaapivideometa_texture.c:
1962 * gst/vaapi/gstvaapivideometa_texture.h:
1963 vaapivideopool: Set pooled flag to added metas.
1964 So this could hint filters how to use these metas.
1965 Had to change the return value for texutre upload meta in order
1967 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
1969 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1971 * gst-libs/gst/vaapi/gstvaapicontext.c:
1972 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1973 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1974 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
1975 * gst-libs/gst/vaapi/gstvaapisurface.c:
1976 libs: use array_unref() rather than array_free()
1977 It is more convinience and thread-safe.
1978 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
1980 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
1982 * gst/vaapi/gstvaapi.c:
1983 plugin: use register_type to replace get_type for encode init.
1984 xxx_register_type will detect the template sink caps and is needed
1985 to be called at init time.
1986 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1988 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
1990 * gst/vaapi/gstvaapiencode_vp9.c:
1991 * gst/vaapi/gstvaapiencode_vp9.h:
1992 plugins: encode: Modify sink template of vp9 encode.
1993 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1994 Also implement gst_vaapiencode_vp9_register_type, which should be
1995 called at plugin register time.
1996 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1998 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
2000 * gst/vaapi/gstvaapiencode_vp8.c:
2001 * gst/vaapi/gstvaapiencode_vp8.h:
2002 plugins: encode: Modify sink template of vp8 encode.
2003 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2004 Also implement gst_vaapiencode_vp8_register_type, which should be
2005 called at plugin register time.
2006 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2008 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
2010 * gst/vaapi/gstvaapiencode_mpeg2.c:
2011 * gst/vaapi/gstvaapiencode_mpeg2.h:
2012 plugins: encode: Modify sink template of mpeg2 encode.
2013 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2014 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2015 called at plugin register time.
2016 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2018 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2020 * gst/vaapi/gstvaapiencode_h265.c:
2021 * gst/vaapi/gstvaapiencode_h265.h:
2022 plugins: encode: Modify sink template of h265 encode.
2023 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2024 Also implement gst_vaapiencode_h265_register_type, which should be
2025 called at plugin register time.
2026 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2028 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2030 * gst/vaapi/gstvaapiencode_h264.c:
2031 * gst/vaapi/gstvaapiencode_h264.h:
2032 plugins: encode: Modify sink template of h264 encode.
2033 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2034 Also implement gst_vaapiencode_h264_register_type, which should be
2035 called at plugin register time.
2036 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2038 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2040 * gst/vaapi/gstvaapiencode_jpeg.c:
2041 * gst/vaapi/gstvaapiencode_jpeg.h:
2042 plugins: encode: Modify sink template of jpeg encode.
2043 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2044 Also implement gst_vaapiencode_jpeg_register_type, which should be
2045 called at plugin register time.
2046 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2048 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2050 * gst/vaapi/gstvaapiencode.h:
2051 plugin: encode: add a helper macro to register encode type.
2052 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2054 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2056 * gst/vaapi/gstvaapipluginutil.c:
2057 * gst/vaapi/gstvaapipluginutil.h:
2058 plugins: util: Add a helper function to detect supported caps.
2059 This helper function iterate all profiles and entrypoints belong
2060 to the specified codec, query the VAConfigAttribRTFormat and list
2061 all possible video formats.
2062 This function is used by each codec to get the template sink caps
2063 (for encode) or src caps(for decode) at register time, when just
2064 all possible formats are listed and no need to be very accurate.
2065 So there is no context created for the performance reason. Most
2066 codecs just use YUV kinds of formats as the input/output, so we do
2067 not include RGB kinds of formats. User can specified more formats
2068 in extra_fmts(For example, jpeg may need BGRA) if needed.
2069 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2071 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2073 * gst/vaapi/gstvaapiencode.c:
2074 * gst/vaapi/gstvaapipluginutil.c:
2075 * gst/vaapi/gstvaapipluginutil.h:
2076 plugin: encode: extract the allowed caps maker as a helper function.
2077 Extract all logic about making caps for encode's sink as a standalone
2078 helper function. It can be reused.
2079 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2081 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2083 * gst-libs/gst/vaapi/video-format.c:
2084 * gst-libs/gst/vaapi/video-format.h:
2085 libs: video-format: add a helper function of get_formats_by_chroma.
2086 The function iterates all supported video formats and returns the
2087 formats belong to the specified chroma type.
2088 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2090 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2092 * gst-libs/gst/vaapi/gstvaapitexture.c:
2093 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2094 libs: texture: remove unused headers include
2095 This is continuation of
2096 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2097 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2099 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2101 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2102 * gst-libs/gst/vaapi/gstvaapiimage.h:
2103 * gst-libs/gst/vaapi/gstvaapisurface.h:
2104 libs: removed duplicated function declarations
2105 Some headers had duplicated inlined function declaration. This was
2106 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2107 documentation is not generated. So let's remove these extra lines.
2108 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2110 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2112 * gst-libs/gst/vaapi/gstvaapitexture.c:
2113 * gst-libs/gst/vaapi/gstvaapitexture.h:
2114 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2115 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2116 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2117 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2118 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2119 * gst/vaapi/gstvaapivideometa_texture.c:
2120 * tests/internal/test-textures.c:
2121 libs: texture: Make texture a standard GstMiniObject.
2122 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2123 the qdata of miniobject and avoid extending the base texture class.
2124 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2126 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2132 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2134 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2135 libs: display: drm: use g_strcmp0 to be null safe
2136 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2138 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2140 * gst/vaapi/gstvaapipluginutil.c:
2141 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2142 We may build this plugin with window system support but run it without
2143 window system. Without this patch, the following pipeline will trigger a
2144 segfault when running it without window system.
2145 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2146 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2148 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2151 build: use join_paths() for driverdir
2153 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2156 README: Update supported hardware
2157 Added the AMD hardware list to the "Hardware Requirements" section.
2159 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2161 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2162 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2163 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2164 libs: bufferproxy: remove GstMemory reference
2165 Since bufferproxy and surface are not referenced circularly, there's
2166 no need to keep, in the buffer proxy, a reference to the GstMemory
2167 where it is held. This patch removes that handling.
2169 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2171 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2172 * gst-libs/gst/vaapi/gstvaapisurface.c:
2173 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2174 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2175 * gst/vaapi/gstvaapivideomemory.c:
2176 libs,plugin: break surface-bufferproxy circular reference
2177 The bufferproxy may reference the surface and the surface may also
2178 reference the bufferproxy, producing a circular reference, which might
2179 lead to serious resource leak problems.
2180 Now make the relationship clearer, the bufferproxy's references is
2181 transfered to surface, while bufferproxy just keeps the surface's
2182 address without increasing its reference count.
2183 The surface can be created through a bufferproxy like in
2184 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2185 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2186 both cases the surface holds a bufferproxy's reference.
2188 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2190 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2191 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2192 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2193 libs: bufferproxy: rename parent memeber as surface
2195 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2197 * gst/vaapi/gstvaapivideobufferpool.c:
2198 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2199 The old way of refer memory by bufferproxy is not a good one, since it
2200 make the logic error prone.
2201 Now it is established a map between surface-bufferproxy and its GstMemory,
2202 caching the memory bound by a surface looked for the specified surface.
2204 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2206 * gst/vaapi/gstvaapivideobufferpool.c:
2207 * gst/vaapi/gstvaapivideobufferpool.h:
2208 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2209 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2210 In fact, no one is using that flag, and all vaapi buffers should
2211 have GstVaapiVideoMeta.
2213 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2215 * gst/vaapi/gstvaapipostproc.c:
2216 * gst/vaapi/gstvaapipostproc.h:
2217 vaapipostproc: enable HDR10 tone mapping
2219 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2221 * gst-libs/gst/vaapi/gstvaapifilter.c:
2222 * gst-libs/gst/vaapi/gstvaapifilter.h:
2223 libs: filter: HDR10 tone mapping support
2224 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2226 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2228 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2229 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2230 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2231 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2232 * gst/vaapi/gstvaapiencode_h265.c:
2233 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2234 Using Y410 as the input of the encoder can generate main_444_10 bit
2237 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2239 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2240 libs: encoder: fix an inexact trace info in chroma type check.
2242 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2244 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2245 libs: encoder: make sure format array is not NULL when returning TRUE
2246 This fixed segfault when running the pipeline below with iHD driver
2247 (commit efe5e9a) on ICL
2248 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2251 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2253 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2254 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2255 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2256 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2257 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2258 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2259 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2260 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2261 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2262 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2263 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2264 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2265 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2266 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2267 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2268 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2269 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2270 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2271 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2272 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2273 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2274 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2275 * gst-libs/gst/vaapi/gstvaapifilter.h:
2276 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2277 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2278 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2279 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2280 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2281 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2282 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2283 libs: extend g_autoptr support
2285 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2287 * gst/vaapi/gstvaapivideometa.c:
2288 vaapivideometa: remove compiler warning
2290 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2293 * meson_options.txt:
2294 build: Add meson's option package-origin.
2295 This options is added to synchronize with other gstreamer packages
2296 build configuration.
2297 Though, to avoid breaking distro configuration it is set, as default,
2298 the issues gitlab's url, instead of the used string
2299 "Unkown package origin".
2300 Also, set_quoted is used for string based cdata.
2302 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2304 * gst/vaapi/gstvaapipostproc.c:
2305 vaapipostproc: deprecate format, width and size parameters
2306 Since they should only be controlled by caps negotiation.
2308 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2310 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2311 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2312 * gst/vaapi/gstvaapidecode.c:
2313 libs,plugins: decoder: Add -intra profile support for hevc.
2314 In hevc, we can consider the -intra profile a subset of the none
2315 -intra profile. The -intra profiles just contain I frames and we
2316 definitely can use the none -intra profiles's context to decode
2318 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2320 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2322 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2323 libs: encoder: h265: support ICQ/QVBR BRC
2324 Enable support for ICQ and QVBR bitrate control.
2325 The code is essentially the same for h264 ICQ/QVBR support
2326 which was added in commit 9e0c133a2403.
2328 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2330 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2331 libs: encoder: set VA HRD param before RC param
2332 This is a workaround for intel-media-driver bug
2333 https://github.com/intel/media-driver/issues/865
2334 The driver will force the RC method to CBR for HEVCe
2335 when it parses the HRD param. Thus, any RC method
2336 param submitted "prior" to the HRD param will be lost.
2337 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2338 effectively enabled if the RC method param "precedes"
2340 To work around this issue, set the HRD param before
2341 the RC method param so the driver will parse the RC
2342 method param "after" the HRD param.
2343 Afaict, other codecs in the driver (and other drivers)
2344 do not appear to be dependent on the order of HRD and
2345 RC param submission.
2347 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2349 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2350 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2351 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2352 vaapijpegenc: Add a quantization quirk for iHD driver
2353 iHD driver shifts the value by 50 when calculating quantization for JPEG
2354 encoding, so we should add 50 in this plugin for iHD driver too.
2356 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2358 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2359 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2360 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2361 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2362 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2363 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2364 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2365 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2366 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2367 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2368 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2369 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2370 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2371 * gst-libs/gst/vaapi/meson.build:
2373 * tests/internal/output.c:
2374 * tests/internal/output.h:
2375 * tests/internal/simple-decoder.c:
2376 * tests/internal/test-decode.c:
2377 libs: remove GstVaapiPixmap
2378 GstVaapiPixmap is an abstract base class which only implementation
2379 were GstVaapiPixmapX11. This class were used for a special type of
2380 rendering in the tests apps, utterly unrelated in GStreamer.
2381 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2382 we should remove this unused API.
2383 This removal drops libxrender dependency.
2385 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2387 * gst-libs/gst/vaapi/gstvaapiutils.c:
2388 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2389 HEVCMain444_10 is already a supported profile and misses the strings.
2391 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2393 * gst/vaapi/gstvaapi.c:
2394 plugin: don't error if cannot create display
2395 This might generated errors on automatic tools such as CI. Let's
2396 rather just raise a warning and let continue.
2398 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2400 * tests/check/meson.build:
2401 test: fix a ninja test failure for vaapioverlay.
2402 That test case only works with drm display, so the build such as
2403 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2405 gets a failure when run ninja test. Just enable this test when drm
2408 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2410 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2411 libs: videopool: fix a condition race for pool allocate.
2413 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2415 * gst/vaapi/gstvaapivideobufferpool.c:
2416 vaapivideobufferpool: force video meta if sizes are different
2417 The strides and offsets could be the same, but the allocation
2418 size might be different (e.g. alignment). Thus, ensure we also
2419 set the flag to copy from VA memory to system memory when alloc
2423 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2425 * gst/vaapi/gstvaapidecode.c:
2426 vaapidecode: don't set base sink caps twice
2427 Base class's sink pad caps are already set when calling set_format().
2428 There's no need to call it again in gst_vaapidecode_negotiate().
2430 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2432 * gst/vaapi/gstvaapidecode.c:
2433 vaapidecode: unlock stream if caps update fails
2434 If caps update fail a dead lock occurs since the stream mutex is not
2437 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2439 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2440 libs: decoder: h265: parser state after update dependent slice
2441 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2442 So we need check the slice type after we call populate_dependent_slice_hdr
2444 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2446 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2447 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2448 libs: display: force RGBA image format for i965 driver
2449 Since commit 32bf6f1e GLTextureUpload is broken because i965
2450 doesn't report properly RGBA support. It could be possible to use RGBx
2451 but GLTextureUpload only regotiates RGBA.
2452 The simplest fix to this regression is adding synthetically the RGBA
2453 format in the internal format map.
2455 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2457 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2458 libs: display: iterate all quirks table
2459 Instead of break at the fist foud quirk in the table, iterate all over
2460 so it would be feasible to add several quirks for one driver per
2463 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2465 * gst-libs/gst/vaapi/gstvaapifilter.c:
2466 libs: filter: handle RGB to/from YUV color primary driver quirk
2467 The intel-media-driver (iHD) can't convert output color
2468 primaries when doing YUV to/from RGB CSC. Thus, we must
2469 keep the output color primaries the same as the input
2470 color primaries for this case.
2473 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2475 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2476 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2477 libs: display: add YUV to/from RGB color primary quirk
2478 The intel-media-driver (iHD) can't convert output color
2479 primaries when doing YUV to/from RGB CSC.
2481 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2483 * gst/vaapi/gstvaapivideomemory.c:
2484 Revert "vaapivideomemory: Store surface allocation flags."
2485 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2486 it rewrites the buffer size whilst surface allocation flags are
2487 stored when allocator_params_init() is called since fab890ce.
2490 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2492 * gst/vaapi/gstvaapivideomemory.c:
2493 vaapivideomemory: Try surface with allocation flags.
2494 When a vaapi allocator is instantiated, it first try to generate a
2495 surface with the specified configuration.
2496 This patch adds, in this tried buffer, the requested allocation flags.
2498 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2500 * gst/vaapi/gstvaapivideomemory.c:
2501 vaapivideomemory: Store surface allocation flags.
2502 Store surface allocation flags passed to the vaapi allocator in
2503 GObject's qdata, because it might be used by the vaapivideobufferpool
2504 when recreating the allocator given any resolution change.
2506 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2508 * gst-libs/gst/vaapi/gstvaapisurface.c:
2509 * gst-libs/gst/vaapi/gstvaapisurface.h:
2510 libs: surface: Add hints to allocation flags.
2511 When creating surfaces it is possible to pass to VA hints of its usage,
2512 so the driver may do some optimizations.
2513 This commit adds the handling of encoding/decoding hints.
2515 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2517 * gst-libs/gst/vaapi/gstvaapicontext.c:
2518 * gst-libs/gst/vaapi/gstvaapisurface.c:
2519 * gst-libs/gst/vaapi/gstvaapisurface.h:
2520 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2521 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2522 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2523 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2524 * tests/internal/test-filter.c:
2525 * tests/internal/test-surfaces.c:
2526 libs: surface: surfacepool: Add allocation flags in constructors.
2528 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2531 build: let the build fail if none if X11, wayland or drm.
2532 In fact, gst_vaapi_create_test_display only test x11, wayland and
2533 drm, no glx and egl entries. So if none of them is enabled, no
2534 vaapi element can be detected.
2536 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2538 * tests/internal/test-display.c:
2539 test: avoid unused warning for test-display
2540 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2541 -Dwith_glx=no buildir
2542 generate unused warnings.
2544 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2547 build: fix meson build error when without x11.
2548 meson -Dwith_x11=no build_dir
2549 can not success build the project because the glx is still enabled.
2550 We need to disable GLX when X11 is disabled.
2552 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2554 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2555 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2556 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2557 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2558 other HWs if other HWs may support other values
2559 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2561 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2563 * gst/vaapi/gstvaapipostproc.c:
2564 * gst/vaapi/gstvaapipostprocutil.c:
2565 vaapipostproc: do not compensate for crop/direction if no VPP
2566 If we do not have functional VPP, then cropping and video
2567 direction is non-functional and we should avoid calling
2568 any of the gst_vaapi_filter* APIs.
2570 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2572 * gst/vaapi/gstvaapipostproc.c:
2573 vaapipostproc: only set VPP colorimetry when VPP is available
2574 If we don't have functional vpp then we should not call
2575 gst_vaapi_filter_set_colorimetry.
2577 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2579 * gst/vaapi/gstvaapivideobufferpool.c:
2580 * gst/vaapi/gstvaapivideomemory.c:
2581 * gst/vaapi/gstvaapivideomemory.h:
2582 videobufferpool: don't reset surface when created internally
2583 The bug fixing, in commit 89f202ea, just considers the case when
2584 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2585 which is typically a decoder's behavior. But vaapipostproc doesn't
2586 provide any surface when calling gst_buffer_pool_acquire_buffer(),
2587 thus a surface is created when GstMemory is allocated.
2588 If the surface proxy in buffer's meta is reset at
2589 buffer_pool_reset_buffer(), that surface will be destroyed and it
2590 won't be available anymore. But GstBuffers are cached in the buffer
2591 pool and they are reused again, hence only those images are rendered
2595 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2597 * gst-libs/gst/vaapi/gstvaapiblend.c:
2598 * gst-libs/gst/vaapi/gstvaapifilter.c:
2599 * gst/vaapi/gstvaapi.c:
2600 libs: blend: filter: handle finalize() if display isn't assigned
2601 I've just discovered iHD driver in Skylake doesn't have VideoProc
2602 entry point, hence, in this platform, when vaapioverlay is tried to be
2603 registered, critical warnings are raised because blend doesn't have a
2605 As it is possible to have drivers without EntryPointVideoProc it is
2606 required to handle it gracefully. This patch does that: only tries to
2607 register vaapioverlay if the testing display has VPP and finalize()
2608 vmethods, in filter and blend, bail out if display is NULL.
2610 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2612 * gst-libs/gst/vaapi/gstvaapifilter.c:
2613 * gst-libs/gst/vaapi/gstvaapiutils.c:
2614 libs: filter: guard all color properties to VA-API 1.2.0
2615 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2616 Thus, guard all colorimetry -> VA-API support to version
2620 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2622 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2623 libs: decoder: h265: set parser info state at decoding codec data
2624 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2625 parser info in sps array. If that parser info comes from decoding
2626 codec data, that parser info will have an undefined state which might
2628 This patch sets the parser info state, at decoding codec data, with
2629 the internal parser state. This is similar with h264 decoder apprach.
2630 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2632 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2634 * gst/vaapi/gstvaapipostproc.c:
2635 vaapipostproc: demote log message to trace level
2637 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2639 * gst-libs/gst/vaapi/video-format.c:
2640 libs: video-format: set general vaapi log category
2641 Instead of logging in an unspecified category, set the default vaapi.
2643 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2645 * gst-libs/gst/vaapi/gstvaapiutils.c:
2646 libs: utils: guard EncSliceLP for VA-API < 0.39.1
2649 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
2651 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2652 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2654 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2656 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2657 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2658 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2659 libs: remove crumbs of libva < 0.39
2660 All these guarded code seem like leftovers of commit 920b1ec7a. This
2661 patch completes that missing clean up.
2663 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2665 * gst-libs/gst/vaapi/gstvaapifilter.c:
2666 * gst-libs/gst/vaapi/gstvaapiutils.c:
2667 libs: VA explicit color standard not supported until 1.2.0
2668 VAProcColorStandardExplicit and associated VAProcColorProperties
2669 (primaries, transfer and matrix) are not supported until
2671 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2675 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2677 * gst-libs/gst/vaapi/gstvaapiutils.c:
2678 libs: utils: WA: use explicit for sRGB colorimetry
2679 Addresses #228 on iHD side. It seems iHD can't handle
2680 VAProcColorStandardSRGB in all situations for vpp. But
2681 it has no problem when we specify the sRGB parameters
2682 via VAProcColorStandardExplicit parameters.
2684 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2686 * gst-libs/gst/vaapi/gstvaapifilter.c:
2687 libs: filter: set vpp input/output color range
2688 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2689 And, the [iHD] driver essentially computes the same color
2690 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2691 cases were gstreamer computes it automatically. But,
2692 if the user wants to make it explicit, we should try
2695 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2697 * gst-libs/gst/vaapi/gstvaapiutils.c:
2698 * gst-libs/gst/vaapi/gstvaapiutils.h:
2699 libs: utils: map GstVideoColorRange to VAAPI VPP
2701 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2703 * gst/vaapi/gstvaapidecode.c:
2704 vaapidecode: don't remove chroma-site nor colorimetry
2705 Since now they can be handled by vaapipostproc.
2707 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2709 * gst/vaapi/gstvaapipostprocutil.c:
2710 vaapipostproc: use sink resolution to calculate src colorimetry
2711 The default output colorimetry is persuaded by the output
2712 resolution, which is too naive when doing VPP cropping
2713 and/or scaling. For example, scaling 4K(sink)->1080P(src)
2714 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2715 colorimetry selection and some drivers don't support that
2717 Thus, if output (i.e. downstream) does not specify a
2718 colorimetry then we use the input resolution instead of the
2719 output resolution to create the default colorimetry. Also,
2720 note that we still use the output format since it may be a
2721 different color space than the input. As in the example
2722 above, this will result in bt2020(sink)->bt2020(src)
2723 colorimetry selection and all drivers (afaik) should support
2726 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2728 * gst/vaapi/gstvaapipostprocutil.c:
2729 vaapipostproc: set srcpad colorimetry unconditionally
2730 We always need a srcpad colorimetry for VAAPI VPP
2732 Also, check the return value of _set_colorimetry.
2734 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2736 * gst/vaapi/gstvaapipostprocutil.c:
2737 vaapipostproc: do not override explicit srcpad colorimetry
2738 If colorimetry has been set by a capsfilter (e.g.
2739 vaapipostproc ! video/x-raw,colorimetry=bt709) then
2740 don't try to override it. Previously, the aforementioned
2741 capsfilter will fail to negotiate if default colorimetry
2742 is not the same as the capsfilter (e.g. 4K resolutions).
2744 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2746 * gst/vaapi/gstvaapipostproc.c:
2747 vaapipostproc: set vpp filter colorimetry
2748 Set the input and output colorimetry for vpp filter.
2750 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2752 * gst-libs/gst/vaapi/gstvaapifilter.c:
2753 * gst-libs/gst/vaapi/gstvaapifilter.h:
2754 libs: filter: support vpp input/output color standard
2755 Add API function to allow setting the input and output vpp
2756 color standard from GstVideoColorimetry.
2758 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2760 * gst-libs/gst/vaapi/gstvaapiutils.c:
2761 * gst-libs/gst/vaapi/gstvaapiutils.h:
2762 libs: utils: map GstVideoColorimetry to VAAPI VPP
2763 Fallback to VAProcColorStandardExplicit if there is no
2766 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2768 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2769 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2770 libs: display: add vpp color standard quirk for i965 driver
2771 The i965 does not properly report supported vpp color
2774 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2776 * gst/vaapi/gstvaapivideobufferpool.c:
2777 vaapivideobufferpool: dmabuf implies allocator
2778 Some code can be optimized since only if the dmabuf allocator is set,
2779 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2780 the allocator address.
2782 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2784 * gst/vaapi/gstvaapivideobufferpool.c:
2785 vaapivideobufferpool: reject configuration if allocator isn't vaapi
2786 If the requested allocator in set_config() is not a VAAPI valid one,
2787 reject the configuration, instead of lying and using a private one.
2788 This patch superseeds !254 and !24
2790 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2792 * gst/vaapi/gstvaapivideobufferpool.c:
2793 vaapivideobufferpool: add explanation for allocator reconfig
2795 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2797 * gst/vaapi/gstvaapivideobufferpool.c:
2798 vaapivideobufferpool: check for vaapi meta first
2799 If the configured meta doesn't request vaapi meta then it is not a
2800 vaapi buffer pool. Bail out as soon as possible.
2802 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2804 * gst/vaapi/gstvaapivideobufferpool.c:
2805 vaapivideobufferpool: turn errors into warnings
2806 set_config() vmethod should fail gracefully, thus upstream could
2807 negotiate another pool if possible.
2808 Instead of sending error messages to the bus, let demote the level
2811 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2813 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2814 libs: display: log out vendor string when available
2815 This is useful while asking for logs to know the used driver.
2817 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2819 * gst-libs/gst/vaapi/gstvaapisurface.c:
2820 libs: surface: initialize VASurfaceAttribExternalBuffers
2821 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2822 rather than using memset().
2824 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2826 * gst-libs/gst/vaapi/gstvaapisurface.c:
2827 libs: surface: merge two loops into one
2828 Merge two loops into one for setting offsets and strides in the
2829 external buffer descriptor.
2831 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2833 * gst-libs/gst/vaapi/gstvaapisurface.c:
2834 * gst-libs/gst/vaapi/gstvaapisurface.h:
2835 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2836 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2837 libs: surface: surfacepool: rename variable for clearity
2838 In order to be readable, the meaningless 'flags' is renamed to
2839 surface_allocation_flags, which is clearer.
2841 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2843 * gst/vaapi/gstvaapivideobufferpool.c:
2844 vaapivideobufferpool: Reuse internal allocator is possible.
2845 Instead of creating a new allocator when upstream requests a different
2846 allocator, this patch tries to reuse the internal allocator if it was
2847 already initializated.
2848 If the stream changes, then either one will be unref and a new
2849 allocator is created.
2851 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2853 * gst/vaapi/gstvaapivideobufferpool.c:
2854 vaapivideobufferpool: Log messages in proper category.
2855 The log messages where logged in the GstBufferPool category because
2856 the instance was not properly casted. This fix that situation.
2858 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2860 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2861 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2862 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2863 * gst/vaapi/gstvaapipluginbase.c:
2864 libs: display: driver quirks mechanism
2865 This mechanism comes from ffmpeg vaapi implementation, where they have
2867 A specific driver is identified by a substring present in the vendor
2868 string. If that substring is found, a set of bitwise flags are store.
2869 These flags can be accessed through the function
2870 gst_vaapi_display_has_driver_quirks().
2871 The purpose for this first quirks is to disable the put image try for
2872 AMD Gallium driver (see [1]).
2873 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
2875 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2877 * gst/vaapi/gstvaapipluginutil.c:
2878 plugins: renable Mesa Gallium driver
2880 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2882 * gst/vaapi/gstvaapivideobufferpool.c:
2883 vaapivideobufferpool: validate returned meta
2884 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
2885 the acquired buffer is not null.
2886 This situation should be very "pathological", but still it is better
2887 be safe since that meta might be used later to create a new dma
2890 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2892 * gst/vaapi/gstvaapivideobufferpool.c:
2893 vaapivideobufferpool: always update/release the underlying surface proxy
2894 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
2895 releases the last reference on an exported DMA buffer. This should
2896 release the underlying surface proxy. To avoid releasing the wrong
2897 surface due to a stale surface proxy reference in the buffer's
2898 GstVaapiVideoMeta, always update the reference to the correct surface
2899 in gst_vaapi_video_buffer_pool_acquire_buffer().
2901 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2903 * gst-libs/gst/vaapi/gstvaapicontext.c:
2904 * gst-libs/gst/vaapi/gstvaapicontext.h:
2905 * gst-libs/gst/vaapi/gstvaapisurface.c:
2906 * gst-libs/gst/vaapi/gstvaapisurface.h:
2907 libs: context: select vaCreateSurfaces version according attributes
2908 This commit tries to centralize the selection of vaCreateSurfaces
2909 version, instead of having fallbacks everywhere.
2910 These fallbacks are hacks, added because new drivers use the latest
2911 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
2912 old drivers (or profiles as JPEG decoder in i965) might rather use the
2914 In order to select which method, there's detected hack: each config
2915 context has a list of valid formats, in the case of JPEG decoder the
2916 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
2917 handled correctly by the current gstreamer-vaapi code [2].
2918 The hack consist in identify if the format list contains an arbitrary
2919 preferred format (which is suposedly well supported by
2920 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
2921 the the old version of vaCreateSurfaces is used, and the surfaces wil
2922 be mapped into a image with their own color format.
2923 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
2924 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
2926 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2928 * gst-libs/gst/vaapi/gstvaapicontext.c:
2929 libs: context: add debug category for context
2931 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2933 * gst-libs/gst/vaapi/gstvaapiblend.c:
2934 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
2936 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2938 * gst/vaapi/gstvaapiencode_h264.c:
2939 vaapiencode: promote info to warning
2940 Let's notify user about using constrained-baseline instead on
2941 requested basline profile.
2943 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2945 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2946 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2947 * gst/vaapi/gstvaapidecode.c:
2948 * gst/vaapi/gstvaapidecode_props.c:
2949 * gst/vaapi/gstvaapidecode_props.h:
2950 vaapih264dec: Add a property to assume constrained-baseline
2951 When baseline-as-constrained is set, the decoder will expose support
2952 for baseline decoding and assume that the baseline content is
2953 constrained-baseline. This can be handy to decode streams in hardware
2954 that would otherwise not be possible to decode. A lot of baseline
2955 content is in fact constrained.
2957 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2959 * gst/vaapi/gstvaapiencode_h264.c:
2960 * gst/vaapi/gstvaapipluginutil.c:
2961 vaapih264enc: accept baseline as constrained baseline compatible
2963 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2965 * gst/vaapi/gstvaapiencode_h264.c:
2966 vaapih264enc: update level in src caps
2967 And, if downstream requests a specific level, the caps are not
2968 negotiated, because there is no mechanism right now to specify a
2969 custom level in the internal encoder.
2971 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2973 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2974 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
2976 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2978 * gst/vaapi/gstvaapiencode_h264.c:
2979 vaapih264enc: force byte-stream if avc isn't supported
2980 Removing the validation in gst_vaapiencode_h264_get_caps() since that
2981 ought be handled in gst_vaapiencode_h264_set_config()
2983 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2985 * gst/vaapi/gstvaapiencode_h264.c:
2986 vaaph264enc: suppress avc if the driver does not support packed headers
2987 Do not negotiate AVC output if the driver does not support it.
2989 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2991 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2992 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2993 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
2994 AVC output requires packed header support in the driver.
2996 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2998 * gst/vaapi/gstvaapiencode_h264.c:
2999 vaapih264enc: intersect the new proposed caps
3000 Instead of just leave to keep the proposed caps, with the best profile
3001 in the allowed caps, is its intersected again.
3003 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3005 * gst/vaapi/gstvaapiencode_h264.c:
3006 vaapih264enc: propose new profile caps and fixate it
3007 When the available caps doesn't intersect with the allowed caps in the
3008 pipeline, a new caps is proposed rather than just expecting to
3010 Later, the intersected caps (profile_caps) is fixated in order to
3011 extract the configuration.
3013 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3015 * gst/vaapi/gstvaapiencode_h264.c:
3016 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3017 Add a common fail code path for gst_vaapiencode_h264_set_config().
3019 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3021 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3022 libs: encoder: unref formats array if none
3023 The formats array is always created, in order to keep the logic and
3024 to avoid broken caps, if this formats array doesn't contain any
3025 elements, it has to be unref and the function should return NULL.
3027 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3029 * gst/vaapi/gstvaapiencode_h264.c:
3030 vaapih264enc: fix log message
3031 Before the log wasn't processed because wrong instance pointer.
3033 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3035 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3036 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3037 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3038 * gst/vaapi/gstvaapiencode_h265.c:
3039 plugin: encode: Add H265 main-444 profile.
3040 Expose the main-444 profile to h265enc caps, when the upstream
3041 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3044 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3046 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3047 libs: encoder: h265: Consider main-444 profile when encoding.
3048 Add support of main-444 profile for parameter setting and packed header
3051 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3053 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3054 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3055 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3056 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3057 * gst/vaapi/gstvaapiencode.c:
3058 vaapiencode: DMABuf only if PRIME is available
3059 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3060 memory type is available in the VA surface attributes of codec
3063 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3065 * hooks/pre-commit.hook:
3066 Add hooks/pre-commit.hook
3067 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3068 Copied and pasted pre-commit.hook from other gstreamer modules to make
3069 sure gstreamer-vaapi follows the same code style
3071 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3073 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3074 libs: encoder: h265: Set encoder paramters base on entrypoint.
3075 When the tune is NONE, we now can choose entrypoint freely. So the
3076 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3078 We also delay CTU size calculation after entrypoint has been decided.
3080 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3082 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3083 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3084 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3085 * gst-libs/gst/vaapi/gstvaapicontext.c:
3086 * gst-libs/gst/vaapi/gstvaapicontext.h:
3087 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3088 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3089 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3090 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3091 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3092 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3093 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3094 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3095 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3096 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3097 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3098 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3099 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3100 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3101 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3102 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3103 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3104 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3105 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3106 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3107 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3108 * gst-libs/gst/vaapi/meson.build:
3109 * gst/vaapi/gstvaapi.c:
3110 * gst/vaapi/gstvaapiencode.c:
3111 * gst/vaapi/gstvaapiencode.h:
3112 * gst/vaapi/gstvaapiencode_h264_fei.c:
3113 * gst/vaapi/gstvaapiencode_h264_fei.h:
3114 * gst/vaapi/gstvaapifeivideometa.c:
3115 * gst/vaapi/gstvaapifeivideometa.h:
3116 * gst/vaapi/meson.build:
3118 * tests/internal/meson.build:
3119 * tests/internal/test-fei-enc-in.c:
3120 * tests/internal/test-fei-enc-out.c:
3121 Remove all FEI related
3122 FEI encoders are not actively mantained neither tested, and it is
3123 using infrastructure that is changing and FEI is stopping this
3125 Also it is required to rethink how FEI can be used in GStreamer.
3127 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3129 * gst/vaapi/gstvaapioverlay.c:
3130 vaapioverlay: ensure sinkpad has current buffer
3131 Use the gst_video_aggregator_pad_has_current_buffer API
3132 to check if the current sinkpad has a queued buffer before
3133 attempting to obtain a input buffer from the base plugin.
3134 If the sinkpad does not have a current buffer, then it is
3135 either not producing them yet (e.g. current time < sinkpad
3136 start time) or it has reached EOS.
3137 Previously, we only handled EOS case.
3139 gst-launch-1.0 videotestsrc num-buffers=100 \
3140 ! vaapipostproc ! vaapioverlay name=overlay \
3141 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3142 num-buffers=100 ! video/x-raw,width=160,height=120 \
3145 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3147 * gst/vaapi/gstvaapioverlay.c:
3148 vaapioverlay: unroll the recursive call
3149 Recursive functions are elegant but dangerous since they might
3150 overflow the stack. It is better to turn them into a list tranversal
3151 if possible, as this case.
3153 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3155 * gst-libs/gst/vaapi/gstvaapiblend.c:
3156 * gst/vaapi/gstvaapioverlay.c:
3157 vaapioverlay: add minimal documentation
3159 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3161 * gst-libs/gst/vaapi/gstvaapiblend.c:
3162 * gst-libs/gst/vaapi/gstvaapiblend.h:
3163 * gst/vaapi/gstvaapioverlay.c:
3164 libs: blend: simplify generator API
3165 Instead of using a parent structure that has to be derived by API
3166 consumers, this change propse a simplification by using the common
3167 pattern of GTK of passing a function pointer and user data which will
3168 be passed as its parameter. That user data contains the state and the
3169 function will be called to update that state.
3171 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3173 * gst-libs/gst/vaapi/gstvaapiblend.c:
3174 * gst-libs/gst/vaapi/gstvaapiblend.h:
3175 libs: blend: remove begin/render/end API
3176 This API was risky and is superseded by the surface
3177 generator (process) API.
3180 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3182 * gst/vaapi/gstvaapioverlay.c:
3183 vaapioverlay: use blend surface generator API
3186 2020-01-10 09:54:30 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3188 * gst-libs/gst/vaapi/gstvaapiblend.c:
3189 * gst-libs/gst/vaapi/gstvaapiblend.h:
3190 libs: blend: add surface generator API
3191 This new API allows the user to call a single method (process)
3192 which handles the [display] lock/unlock logic internally for
3194 This API supersedes the risky begin, render, end API.
3195 It eliminates the need for the user to call a lock method
3196 (process_begin) before processing the input buffers
3197 (process_render) and calling an unlock method (process_end)
3201 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3203 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3204 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3205 * gst/vaapi/gstvaapiencode.c:
3206 * gst/vaapi/gstvaapiencode.h:
3207 * gst/vaapi/gstvaapiencode_h264.c:
3208 * gst/vaapi/gstvaapiencode_h265.c:
3209 plugin: encode: List all possible profiles to detect input formats.
3210 The current get_profile just return one possible profile for the encode,
3211 which is not enough. For example, if we want to support HEVC 4:4:4
3212 profile, the input of encode should be VYUA rather than NV12 in HEVC
3213 main profile. So the command line:
3214 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3215 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3216 tune=low-power init-qp=30 ! fakesink
3217 can not work because vaapih265enc just report NV12 in sink caps, we need
3218 to specify the profile obviously like:
3219 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3220 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3221 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3222 profile=main-444 ! fakesink
3223 The encode should have the ability to choose the profile based on input
3224 format automatically. If the input video format is VUYA, the main-444
3225 profile should be auto choosed.
3226 We modify to let get_allowed_profiles of each encode sub class to return
3227 an array of all supported profiles based on downstream's allowed caps, or
3228 return NULL if no valid profiles specified by downstream.
3229 If no allowed profiles found, all profiles which belong to the current
3230 encoder's codec will be the candidates.
3231 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3232 attributes for that profile list we just get.
3233 So for this case, both NV12 and VUYA should be returned.
3234 TODO: some codec like VP9, need to implement the get_profile() function.
3236 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3238 * gst/vaapi/gstvaapipluginutil.c:
3239 * gst/vaapi/gstvaapipluginutil.h:
3240 plugin: util: add helper function to detect profiles in caps.
3242 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3244 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3245 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3246 libs: encoder: add a helper function to get all supported profiles
3248 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3250 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3251 libs: decoder: Don't unref null object
3252 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3253 gst_vaapi_context_unref: assertion 'context != NULL' failed
3255 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3257 * gst/vaapi/gstvaapioverlay.c:
3258 plugins: overlay: use proper NULL check on double pointer
3259 Check the address of the variable is not NULL,
3260 not the address of the pointer.
3262 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3264 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3265 libs: codedbuf: delete a useless field.
3266 The context field in GstVaapiCodedBuffer is not inited correctly
3267 and is never used, just delete it.
3269 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3271 * gst/vaapi/gstvaapipluginutil.c:
3272 plugins: add iHD driver in whitelist
3274 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3276 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3277 libs: encoder: modify 265 SPS header's profile compatibility flag.
3278 Make the SPS profile compatibility flags more precisely conform to
3281 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3283 * tests/check/elements/vaapioverlay.c:
3284 test: vaapioverlay: bail test if not available
3285 vaapioverlay is only registered if the VA driver support the blend
3287 This patch only executes the test if vaapioverlay is available,
3288 otherwise the test is bail out without raising an error.
3290 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3292 * tests/check/elements/vaapioverlay.c:
3293 tests: vaapioverlay: force drm backend
3295 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3297 * gst-libs/gst/vaapi/gstvaapiblend.c:
3298 libs: blend: update to new mini-object API
3300 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3302 * tests/check/elements/vaapioverlay.c:
3303 * tests/check/meson.build:
3304 tests: check: add basic vaapioverlay test
3305 Add test_overlay_position test to verify sink_1 input
3306 is overlayed onto sink_0 input at the appropriate
3309 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3311 * gst/vaapi/gstvaapi.c:
3312 * gst/vaapi/gstvaapioverlay.c:
3313 * gst/vaapi/gstvaapioverlay.h:
3314 * gst/vaapi/meson.build:
3315 plugins: add vaapioverlay plugin
3316 A plugin similar to the base compositor element but
3317 uses VA-API VPP blend functions to accelerate the
3318 overlay/compositing.
3320 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3321 ! tee name=testsrc ! queue \
3322 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3323 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3325 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3327 * gst-libs/gst/vaapi/gstvaapiblend.c:
3328 * gst-libs/gst/vaapi/gstvaapiblend.h:
3329 * gst-libs/gst/vaapi/meson.build:
3330 libs: add a vaapi blend class
3331 Support for the VA-API VPP blend functions.
3333 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3335 * gst/vaapi/gstvaapipluginbase.c:
3336 * gst/vaapi/gstvaapipluginbase.h:
3337 plugins: base: add GstVideoAggregator subclass support
3339 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3341 * gst-libs/gst/vaapi/gstvaapiimage.c:
3342 libs: image: init all image fields correctly.
3344 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3346 * gst/vaapi/gstvaapipostproc.c:
3347 doc: fix pipeline typo in vaapipostproc
3349 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3351 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3352 libs: encoder: modify 265 VPS header fields.
3353 vps_base_layer_internal_flag and vps_base_layer_available_flag
3354 have been clearly defined now.
3356 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3358 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3359 libs: display: fix a resource leak in X11 pixmap format.
3361 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3363 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3364 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3365 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3367 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3369 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3370 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3371 * gst/vaapi/gstvaapiencode.c:
3372 libs: encoder: get surfaces resolution the same time with formats.
3373 We can get all the information about the video format at one shot
3374 when we create the test context for getting the supported formats.
3375 The current way to get the width and height ranges are inefficient,
3376 since it calls the function gst_vaapi_profile_caps_append_encoder()
3377 and it creates another temporal context to detect the resolution
3379 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3381 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3383 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3384 libs: encoder: vp9: fix code style
3386 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3388 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3389 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3390 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3391 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3392 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3393 libs: encoder: set entrypoint based on tune automatically
3394 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3395 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3397 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3398 every time when we need to use this kind of profile. Or we can not
3399 create the encoder context successfully.
3400 2. More seriously, we set the entrypoint to a fixed value in
3401 init_context_info() and so the create_test_context_config() can not
3402 create the test context for these profile and can not get the
3403 supported video formats, either.
3404 We now change the entrypoint setting based on the tune option of the
3405 encoder. If no tune property provided, we just choose the first
3406 available entrypoint.
3408 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3410 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3411 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3412 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3413 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3414 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3415 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3416 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3417 libs: encoder: set context info profile by encoder
3418 Instead of init_context_info() setting the passed profile, it is
3419 assumed that it has to be set by each encoder.
3420 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3422 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3424 * gst-libs/gst/vaapi/gstvaapicontext.c:
3425 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3426 libs: context: add invalid entrypoint symbol
3427 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3428 zero, which was already used as an invalid value tacitly. This patch
3429 only makes it explicit.
3430 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3432 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3434 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3435 libs: pixmap: Fix a pixmap creation crash.
3436 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3437 pixmap creation, which causes crash if we run the internal test case
3439 test-decode --pixmap
3441 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3443 * gst/vaapi/gstvaapiencode.c:
3444 plugin: encode: set allowed_sinkpad_caps to empty.
3445 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3446 surfaces formats. This causes two problem:
3447 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3448 which changes its behavior. It will use encode's sinkpad template
3449 rather than empty caps to do the clip job. So even if we fail to set
3450 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3452 2. We should just set the allowed_sinkpad_caps once. The NULL point
3453 make the ensure_allowed_sinkpad_caps function works again and again.
3455 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3457 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3458 libs: encoder: Add NULL pointer check for context when finalize.
3459 Context may be NULL if pipeline fail in early stage, and the
3460 ensure_context will not be called. Need to add a pointer protection
3463 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3465 * gst/vaapi/gstvaapipluginbase.c:
3466 plugins: base: do not reset can_dmabuf
3467 Don't reset the can_dmabuf field. This restores the
3468 close/reset logic that existed prior to commit
3469 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3471 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3472 once during startup, but may need to reset the other private
3473 fields multiple times during negotiation. Thus, can_dmabuf
3474 should be exempt from the resets.
3477 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3479 * gst/vaapi/gstvaapiencode.c:
3480 plugin: encode: Refine encode's sink caps.
3481 The old manner to get the encode's sink caps is not correct.
3482 Such as 264 encode, it gets:
3483 video/x-raw(memory:VASurface),
3484 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3485 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3486 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3487 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3488 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3489 framerate=(fraction)[ 0/1, 2147483647/1 ];
3490 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3491 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3492 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3493 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3494 input format for encoder.
3496 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3497 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3498 video/x-raw(memory:VASurface), format=(string){ NV12 },
3499 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3500 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3501 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3502 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3503 as the correct result.
3505 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3507 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3508 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3509 libs: display: code clean up
3511 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3513 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3514 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3515 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3516 libs: display: refine the profile/entrypoint map.
3517 The old way make the one config for each profile/entrypoint pair,
3518 which is not very convenient for description the relationship
3519 between them. One profile may contain more than one entrypoints
3520 to within it, so a set like data structure should be more suitable.
3522 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3524 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3525 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3526 * gst-libs/gst/vaapi/gstvaapicontext.c:
3527 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3528 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3529 * gst-libs/gst/vaapi/gstvaapifilter.c:
3530 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3531 * gst-libs/gst/vaapi/gstvaapisurface.c:
3532 * gst-libs/gst/vaapi/gstvaapisurface.h:
3533 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3534 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3535 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3536 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3537 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3538 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3539 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3540 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3541 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3542 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3543 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3544 * gst/vaapi/gstvaapipluginbase.c:
3545 * gst/vaapi/gstvaapivideomemory.c:
3546 * gst/vaapi/gstvaapivideometa.c:
3547 * gst/vaapi/gstvaapivideometa_texture.c:
3548 * tests/internal/image.c:
3549 * tests/internal/test-filter.c:
3550 * tests/internal/test-surfaces.c:
3551 * tests/internal/test-windows.c:
3552 libs: surface: port to GstMiniObject
3553 GstVaapiMiniObject and GstVaapiObject are deprecated.
3554 This is the first step to remove them by porting GstVaapiSurface as
3555 a GstMiniBuffer descendant.
3556 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3558 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3560 * gst-libs/gst/vaapi/gstvaapisurface.c:
3561 libs: surface: rename create function names to init
3562 There are several internal functions with 'create' name, but they
3563 don't create any new structure, but rather it initializes that
3564 structure. Renaming those function to reflect better their purpose.
3566 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3568 * gst-libs/gst/vaapi/gstvaapisurface.c:
3569 libs: surface: use macro accessors
3571 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3573 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3574 libs: surface: fix internal documentation
3576 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3578 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3579 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3580 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3581 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3582 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3583 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3584 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3585 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3586 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3587 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3588 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3589 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3590 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3591 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3592 libs: codedbuffer: port to GstMiniObject
3593 GstVaapiMiniObject and GstVaapiObject are deprecated.
3594 This is the first step to remove them by porting GstVaapiCodedBuffer
3595 as a GstMiniBuffer descendant.
3596 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3598 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
3600 * gst-libs/gst/vaapi/gstvaapiimage.c:
3601 * gst-libs/gst/vaapi/gstvaapiimage.h:
3602 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3603 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3604 * gst-libs/gst/vaapi/gstvaapisurface.c:
3605 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3606 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3607 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3608 * gst/vaapi/gstvaapipluginbase.c:
3609 * gst/vaapi/gstvaapivideomemory.c:
3610 * gst/vaapi/gstvaapivideometa.c:
3611 * tests/internal/image.c:
3612 * tests/internal/simple-encoder.c:
3613 * tests/internal/test-fei-enc-in.c:
3614 * tests/internal/test-filter.c:
3615 * tests/internal/test-windows.c:
3616 libs: image: port to GstMiniObject base class
3617 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3618 first step to remove them, by porting GstVaapiImage as a
3620 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3622 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
3624 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3625 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3626 * gst-libs/gst/vaapi/gstvaapicontext.c:
3627 * gst-libs/gst/vaapi/gstvaapicontext.h:
3628 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3629 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3630 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3631 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3632 libs: context: port to a plain C structure
3633 The GstVaapiMiniObject is obsolete and we need to replace it. This
3634 patch turns GstVaapiContext into a plain C structure with its own
3635 reference counting mechanism.
3636 Also this patch removes unused overlays attributes.
3637 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3639 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
3641 * gst/vaapi/gstvaapiencode_h264.c:
3642 * gst/vaapi/gstvaapiencode_h264_fei.c:
3643 * gst/vaapi/gstvaapiencode_h265.c:
3644 * gst/vaapi/gstvaapiencode_jpeg.c:
3645 * gst/vaapi/gstvaapiencode_mpeg2.c:
3646 * gst/vaapi/gstvaapiencode_vp8.c:
3647 * gst/vaapi/gstvaapiencode_vp9.c:
3648 plugin: encode: change the dmabuf caps to all supported formats.
3649 The encode's dmabuf caps definition is obsolete, it can support
3650 more formats now. Re-define it to include all supported formats
3651 in video format map.
3653 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3655 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3656 libs: encoder: h264fei: remove unnecessary check
3657 Issue detected by Coverity
3658 `info_to_pack.h264_slice_header` is always allocated by
3659 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3660 in doesn't make much sense. But it requires to be free on the error
3662 There may be a null pointer dereference, or else the comparison
3663 against null is unnecessary.
3664 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3665 pointer comparison already dereference the pointer earlier
3667 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3669 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3670 libs: encoder: h264fei: remove unnecessary assert
3671 Issue detected by Coverity
3672 An unsigned value can never be negative, so this test will always
3673 evaluate the same way.
3674 In add_slice_headers: An unsigned value can never be less than 0
3676 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3678 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3679 libs: encoder: h264fei: remove unnecessary check
3680 Issue detected by Coverity
3681 There may be a null pointer dereference, or else the comparison
3682 against null is unnecessary.
3683 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3684 pointer comparison already dereference the pointer earlier
3686 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3688 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3689 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3690 libs: encoder: h264fei: don't free memory on stack
3691 Issue detected by Coverity
3692 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3693 declared in the stack, but it is free in
3694 gst_vaapi_feienc_h264_encode() as if declared on the heap.
3695 This patch initializes the structure and removes the free.
3696 A non-heap pointer is placed on the free list, likely causing a crash
3698 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3699 expression, which can never be heap allocated.
3701 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3703 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3704 libs: encoder: h264fei: fix surface leak
3705 Issue detected by Coverity
3706 If the FEI mode is not handled the created resources should be
3707 released and return and error code.
3708 The system resource will not be reclaimed and reused, reducing the
3709 future availability of the resource.
3710 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3713 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3715 * tests/check/elements/vaapipostproc.c:
3716 tests: check return calling of gst_navigation_event_parse.*
3717 This issue was detected by Coverity.
3718 If the function returns an error value, the error value may be mistaken
3720 In cb_mouse_event: Value returned from a function is not checked for
3721 errors before being used
3723 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
3725 * gst/vaapi/gstvaapiencode_h264.c:
3726 * gst/vaapi/gstvaapiencode_h264_fei.c:
3727 * gst/vaapi/gstvaapiencode_h265.c:
3728 * gst/vaapi/gstvaapiencode_jpeg.c:
3729 * gst/vaapi/gstvaapiencode_mpeg2.c:
3730 * gst/vaapi/gstvaapiencode_vp8.c:
3731 * gst/vaapi/gstvaapiencode_vp9.c:
3732 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3733 Then encode plugin just supports raw formats declared in vaapi video
3734 format map. This modification makes the template caps more precise.
3736 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3738 * gst/vaapi/gstvaapipluginbase.c:
3739 plugins: base: add GstPad param to internal helper functions
3740 The base plugin public API function implementations determine
3741 which pad should be passed to the internal helper functions.
3742 Currently, only the base plugin static sinkpad and static
3743 srcpad are supported/used. However, this change enables future
3744 API functions to be added that can accept a pad (i.e. request pad)
3745 from an element subclass (e.g. a GstVideoAggregator subclass).
3747 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3749 * gst/vaapi/gstvaapipluginbase.c:
3750 * gst/vaapi/gstvaapipluginbase.h:
3751 plugins: base: manage pad-specific data in a single struct
3752 Define a struct (GstVaapiPadPrivate) to encapsulate the
3753 pad-specific data (i.e. buffer pool, allocator, info,
3755 Add an interface to retrieve the data struct for a given
3757 Finally, update the base plugin to use the data struct
3758 throughout the implementation.
3759 This will enable us to easily extend the base plugin in the
3760 future to allow for N-to-1 pad subclasses (e.g. overlay/
3763 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3765 * gst/vaapi/gstvaapidecode.c:
3766 * gst/vaapi/gstvaapiencode.c:
3767 * gst/vaapi/gstvaapipluginbase.h:
3768 * gst/vaapi/gstvaapipostproc.c:
3769 plugins: use plugin base macros to access pad specific data
3770 Don't access base struct fields directly since the underlying
3771 definition can change. Instead, use the accessor macros.
3773 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
3775 * gst/vaapi/gstvaapidecode.c:
3776 libs: decoder: Modify decode src's template raw formats
3777 We do not need to maintain a standalone list of decoder's output
3778 template for raw formats and that is easy to make mistake(for
3779 example, the AYVU is wrong in that list, should be VUYA).
3780 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3783 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
3785 * gst/vaapi/gstvaapipostproc.c:
3786 libs: postproc: Modify src/sink template raw formats
3787 We need to provide more precise template caps for postproc's src
3788 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3789 available which are really superfluous.
3791 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
3793 * tests/check/elements/vaapipostproc.c:
3794 Do not mix declaration and code
3796 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3798 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3799 libs: decoder: h265: skip all pictures prior the first I-frame
3800 Don't try to decode until the first I-frame is received within the
3801 currently active sequence. i965 H265 decoder don't show any artifact
3805 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3807 * gst-libs/gst/vaapi/video-format.c:
3808 libs: video-format: remove dead code
3810 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
3812 * gst-libs/gst/vaapi/video-format.c:
3813 * gst-libs/gst/vaapi/video-format.h:
3814 * gst/vaapi/gstvaapipluginutil.h:
3815 libs: video-format: add GST_VAAPI_FORMATS_ALL
3816 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3817 as a caps template string, and make them available in caps with
3818 memory:VASurface feature.
3821 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
3823 * gst-libs/gst/vaapi/video-format.c:
3824 * tests/internal/test-windows.c:
3825 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3826 We only support VUYA format in gst vaapi now, need to correct
3829 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3831 * tests/check/elements/vaapipostproc.c:
3832 tests: check: vaapipostproc test_orientation_mouse_events
3833 Test that vaapipostproc properly translates mouse events
3834 when using video-direction (orientation).
3836 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3838 * tests/check/elements/vaapipostproc.c:
3839 * tests/check/meson.build:
3840 tests: check: vaapipostproc test_crop_mouse_events
3841 Test that vaapipostproc properly translates mouse events
3844 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3847 * meson_options.txt:
3848 * tests/check/elements/vaapipostproc.c:
3849 * tests/check/meson.build:
3850 * tests/meson.build:
3851 tests: check: initial unit test support
3852 Add minimal unit test toolchain files and a simple
3853 vaapipostproc unit test.
3855 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3858 * tests/examples/meson.build:
3859 * tests/examples/test-roi.c:
3860 * tests/examples/test-vaapicontext.c:
3861 * tests/examples/test-vaapipostproc.c:
3862 * tests/examples/test-vaapisink.c:
3863 * tests/internal/codec.c:
3864 * tests/internal/codec.h:
3865 * tests/internal/decoder.c:
3866 * tests/internal/decoder.h:
3867 * tests/internal/image.c:
3868 * tests/internal/image.h:
3869 * tests/internal/meson.build:
3870 * tests/internal/output.c:
3871 * tests/internal/output.h:
3872 * tests/internal/simple-decoder.c:
3873 * tests/internal/simple-encoder.c:
3874 * tests/internal/test-decode.c:
3875 * tests/internal/test-decode.h:
3876 * tests/internal/test-display.c:
3877 * tests/internal/test-fei-enc-in.c:
3878 * tests/internal/test-fei-enc-out.c:
3879 * tests/internal/test-filter.c:
3880 * tests/internal/test-h264.c:
3881 * tests/internal/test-h264.h:
3882 * tests/internal/test-jpeg.c:
3883 * tests/internal/test-jpeg.h:
3884 * tests/internal/test-mpeg2.c:
3885 * tests/internal/test-mpeg2.h:
3886 * tests/internal/test-mpeg4.c:
3887 * tests/internal/test-mpeg4.h:
3888 * tests/internal/test-subpicture-data.c:
3889 * tests/internal/test-subpicture-data.h:
3890 * tests/internal/test-subpicture.c:
3891 * tests/internal/test-surfaces.c:
3892 * tests/internal/test-textures.c:
3893 * tests/internal/test-vc1.c:
3894 * tests/internal/test-vc1.h:
3895 * tests/internal/test-windows.c:
3896 * tests/internal/y4mreader.c:
3897 * tests/internal/y4mreader.h:
3898 * tests/meson.build:
3899 tests: move examples and tests to subfolders
3900 This makes way for adding unit (check) tests.
3902 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
3910 * gst-libs/Makefile.am:
3911 * gst-libs/gst/Makefile.am:
3912 * gst-libs/gst/vaapi/Makefile.am:
3914 * gst/vaapi/Makefile.am:
3916 * tests/Makefile.am:
3917 * tests/elements/Makefile.am:
3918 Remove autotools build
3920 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3922 * gst/vaapi/gstvaapipostproc.c:
3923 vaapipostproc: fix off-by-one coord translations
3924 When translating navigation x,y coordinates for
3925 video-direction, it is necessary to subtract 1
3926 when using the video dimensions to compute the
3927 new x,y coordinates. That is, a 100x200 image
3928 should map coordinates in x=[0-99],y=[0-199].
3929 This issue was found with unit tests provided
3932 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3934 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3935 libs: window: x11: Avoid usage of deprecated API
3937 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3940 build: halt meson configuration if no renderer API
3941 We should halt meson configuration if there is no render API
3942 installed (either DRM, Wayland or X11).
3943 That behavior was already in autotools but missed in meson. This patch
3947 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3949 * gst-libs/gst/vaapi/gstvaapifilter.c:
3950 libs: filter: fix default orientation regression
3951 Fix regression introduced in f232f87f7082
3953 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3955 * gst-libs/gst/vaapi/gstvaapifilter.c:
3956 libs: filter: use OP_DATA_DEFAULT_VALUE macro
3958 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3960 * gst-libs/gst/vaapi/gstvaapifilter.c:
3961 libs: filter: use macro for returning op default value
3962 The code is essentially the same for getting all op default
3963 values. Thus, use a macro to help minimize code duplication
3964 and [hopefully] encourage using the same mechanism for all
3967 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3969 * gst-libs/gst/vaapi/gstvaapifilter.c:
3970 libs: filter: query param spec for default scale method
3973 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3975 * gst-libs/gst/vaapi/gstvaapifilter.c:
3976 libs: filter: query param spec for default skin-tone values
3979 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3981 * gst-libs/gst/vaapi/gstvaapifilter.c:
3982 libs: filter: query param spec for default video-direction
3985 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3990 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
3992 * gst-libs/gst/vaapi/gstvaapifilter.c:
3993 * gst-libs/gst/vaapi/gstvaapifilter.h:
3994 * gst/vaapi/gstvaapipostproc.c:
3995 * gst/vaapi/gstvaapipostproc.h:
3996 vaapipostproc: Use level value for skin-tone-enhancement filter.
3997 Currently the parameter of skin-tone-enhancement filter is forced
3998 to zero. In fact it could be set different value by the user.
3999 So create a new property named as "skin-tone-enhancement-level"
4000 for accepting the used defined parameter value.
4001 At the same time, skin-tone-enhancement is marked as deprecated.
4002 When skin-tone-enhancement-level is set, skin-tone-enhancement
4005 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4007 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4008 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4009 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4010 g_return_val_fail() documentations says:
4011 If expr evaluates to FALSE, the current function should be
4012 considered to have undefined behaviour (a programmer error).
4013 The only correct solution to such an error is to change the
4014 module that is calling the current function, so that it avoids
4015 this incorrect call.
4016 So it was missused in a couple parts of the H264 and H265 internal
4017 decoders. This patch changes that to plain conditionals.
4018 Also, it was included a couple code-style fixes.
4020 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4022 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4023 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4024 * tests/simple-encoder.c:
4025 * tests/test-fei-enc-in.c:
4026 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4027 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4028 need to keep a custom ref()/unref() methods. This patch deletes them.
4030 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4032 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4033 libs: encoder: correct encoder's ref/unref function.
4034 GstVaapiEncoder now is a standard gstobject and need to use
4035 gst_object_ref/unref functions.
4037 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4039 * gst/vaapi/gstvaapiencode_h264_fei.c:
4040 gst: encode: h264_fei: remove useless comparison
4041 The expression "len >= 0" is always true since "len"
4042 is an unsigned type. And it is clear that the writers
4043 intention was not to write "len > 0" since we handle
4044 len == 0 in the ensuing "if (len < 3)" conditional
4047 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4049 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4050 libs: encoder: h264_fei: fix potential overflow before widen
4051 Found by static analysis. encoder->mb_width * encoder->mb_height
4052 is evaluated using 32-bit arithmetic before widen. Thus, cast
4053 at least one of these to guint64 to avoid overflow.
4055 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4057 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4058 libs: encoder: h264_fei: remove dead error condition
4059 Found by static analysis. The feipak is always null
4060 when we reach the error target.
4062 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4064 * gst-libs/gst/vaapi/gstvaapiutils.c:
4065 libs: utils: add missing break in switch
4067 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4069 * gst-libs/gst/vaapi/video-format.c:
4070 libs: video-format: Make all YUV format available
4071 The YUV formats have no ambiguity for drivers, so we can add them all.
4072 Some old driver(i965) does not implement full get/put image functions
4073 but can use derive image funtions for the YUV format. It does not
4074 report that kind of formats correctly in image query, but will derive
4075 that YUV format image from surface. The dynamic mapping of YUV format
4076 will block that manner.
4077 Adding more YUV format mapping has no side effect. So considering the
4078 legacy driver conformance, we add all YUV formats mapping statically
4079 and dynamic mapping RBG formats
4083 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4085 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4086 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4087 egl: Fix racyness in display thread creation
4088 Multiple different scenarios could break the display thread creation and
4089 end up blocking waiting for thread o be created. Fix them all by
4090 correctly waiting for a new boolean to become valid.
4092 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4094 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4095 egl: don't advertise a wrapped EGLContext as actually wrapped
4096 It's not actually wrapped as we create a new EGLContext from the passed
4097 in EGLContext. As a result, the created EGLContext was never destroyed.
4099 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4101 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4102 libs: h264decoder: do not return error for unhandled NAL unit.
4103 Some streams have error data introducing unknown NAL type. There are
4104 also kinds of NAL types we do not want to handle. The old manner will
4105 set a decoder error when encounter this, which cause a latent crash bug.
4106 The decoder may successfully decode the picture and insert it into DPB.
4107 But there are error NAL units after the AU which cause the post unit error
4108 and make that frame dropped. The later output of the picture still want
4109 to ref that frame and crash.
4110 No need to set decoder error when can not recognize or handle the NAL
4111 unit, just skip it and continue.
4114 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4116 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4117 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4118 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4119 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4120 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4121 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4122 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4123 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4124 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4125 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4126 * gst/vaapi/gstvaapiencode.c:
4127 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4128 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4129 param in encoders to decide which parameters to expose. Thus
4130 gstreamer-vaapi will not interfere with any change in GStreamer in the
4132 Also, the internal symbol was change to
4133 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4135 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4137 * gst-libs/gst/vaapi/gstvaapiimage.c:
4138 * gst-libs/gst/vaapi/video-format.c:
4139 libs: Add BGR10A2_LE support for color space conversion.
4142 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4144 * gst-libs/gst/vaapi/gstvaapisurface.c:
4145 libs: surface: add pointer check for surface_new_from_formats.
4147 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4148 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4149 will crash on i965 driver because of no pointer check.
4150 We now generate the video format map between GST format and VA format
4151 dynamically based on the image format returned by vaQueryImageFormats.
4152 i965 driver does to report image format of 444P and Y800 forcc, while
4153 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4154 not recognize these format and pass a NULL pointer to
4155 gst_vaapi_surface_new_from_formats.
4156 We need to add a pointer check here and let the fallback logic handle
4157 this case correctly.
4158 Other drivers work well.
4160 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4162 * gst-libs/gst/vaapi/gstvaapiutils.c:
4163 libs: utils: guard the VAEntrypointFEI symbol
4164 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4166 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4168 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4169 * gst-libs/gst/vaapi/video-format.c:
4170 * gst-libs/gst/vaapi/video-format.h:
4171 libs: video-format: Refine the video format mapping.
4172 Improve the mapping between va format and gst format. The new map
4173 will be generated dynamically, based on the query result of image
4174 format in VA driver. Also consider the ambiguity of RGB color
4177 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4179 * gst/vaapi/gstvaapipluginutil.c:
4180 pluginutil: Remove Mesa from drivers white list
4181 The Mesa Gallium driver is poorly tested currently, leading to bad user
4182 experience for AMD users. The driver can be added back to the white list at
4183 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4185 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4187 * gst/vaapi/gstvaapipostproc.c:
4188 * gst/vaapi/gstvaapipostproc.h:
4189 * gst/vaapi/gstvaapipostprocutil.c:
4190 vaapipostproc: allow cropping via properties
4191 Add crop-left, crop-right, crop-top and crop-bottom
4192 properties to vaapipostproc.
4194 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4196 * gst/vaapi/gstvaapipostproc.c:
4197 vaapipostproc: rotate outbuf and crop meta if forwarding
4198 When forwarding crop meta to downstream, the output
4199 buffer and crop meta need to be rotated, too.
4201 for i in 90r 180 90l vert horiz ul-lr ur-ll
4203 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4204 ! videocrop top=100 bottom=30 left=40 right=20 \
4205 ! vaapipostproc video-direction=$i \
4207 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4208 ! videocrop top=100 bottom=30 left=40 right=20 \
4209 ! vaapipostproc video-direction=$i \
4210 ! identity drop-allocation=true \
4214 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4216 * gst/vaapi/gstvaapipostproc.c:
4217 vaapipostproc: fix output buffer WxH for crop meta forwarding
4218 Adding crop meta x,y to w,h only compensates for left,top
4219 cropping. But we also need to compensate for right,bottom
4221 The video meta contains the appropriate w,h (uncropped)
4222 values, so use it instead.
4224 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4225 ! videocrop top=50 bottom=30 left=40 right=20 \
4226 ! vaapipostproc ! vaapisink & \
4227 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4228 ! videocrop top=50 bottom=30 left=40 right=20 \
4229 ! vaapipostproc ! identity drop-allocation=1 \
4232 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4234 * gst/vaapi/gstvaapipostproc.c:
4235 vaapipostproc: handle size and direction together in src events
4236 Mapping a pointer event needs to consider both size and
4237 video-direction operations together, not just one or the other.
4238 This fixes an issue where x,y were not being mapped correctly
4239 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4240 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4241 the first condition in the pointer event handling was entered and
4242 x,y scale factor were incorrectly computed due to srcpad WxH
4244 This also fixes all cases where both video-direction and scaling
4245 are enabled at the same time.
4246 Test that all pointer events map appropriately:
4249 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4250 ! vaapipostproc video-direction=${i} width=300 \
4252 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4253 ! vaapipostproc video-direction=${i} width=300 height=200 \
4255 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4256 ! vaapipostproc video-direction=${i} height=200 \
4258 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4259 ! vaapipostproc video-direction=${i} \
4263 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4265 * gst/vaapi/gstvaapipostproc.c:
4266 * gst/vaapi/gstvaapipostproc.h:
4267 vaapipostproc: advertise crop meta is handled
4268 Advertise to upstream that vaapipostproc can handle
4270 When used in conjunction with videocrop plugin, the
4271 videocrop plugin will only do in-place transform on the
4272 crop meta when vaapipostproc advertises the ability to
4273 handle it. This allows vaapipostproc to apply the crop
4274 meta on the output buffer using vaapi acceleration.
4275 Without this advertisement, the videocrop plugin will
4276 crop the output buffer directly via software methods,
4277 which is not what we desire.
4278 vaapipostproc will not apply the crop meta if downstream
4279 advertises crop meta handling; vaapipostproc will just
4280 forward the crop meta to downstream. If crop meta is
4281 not advertised by downstream, then vaapipostproc will
4282 apply the crop meta.
4284 1. vaapipostproc will forward crop meta to vaapisink
4285 gst-launch-1.0 videotestsrc \
4286 ! videocrop left=10 \
4289 2. vaapipostproc will do the cropping
4290 gst-launch-1.0 videotestsrc \
4291 ! videocrop left=10 \
4293 ! identity drop-allocation=1 \
4296 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4298 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4299 libs: encoder: clean two virtual func in encoder class
4300 set_property and get_default_properties functions are no longer
4301 needed for encoder class.
4303 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4305 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4306 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4307 libs: encoder: delete old set_property and property enum feienc264
4309 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4311 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4312 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4313 libs: encoder: delete old set_property and property enum in h264 fei
4315 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4317 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4318 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4319 libs: encoder: delete old set_property and property enum in vp9
4321 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4323 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4324 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4325 libs: encoder: delete old set_property and property enum in vp8
4327 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4329 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4330 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4331 libs: encoder: delete old set_property and property enum in mpeg2
4333 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4335 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4336 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4337 libs: encoder: delete old set_property and property enum in jpeg
4339 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4341 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4342 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4343 libs: encoder: delete old set_property and property enum in h265
4345 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4347 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4348 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4349 libs: encoder: delete old set_property and property enum in h264
4351 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4353 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4354 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4355 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4356 libs: encoder: delete EncoderPropInfo related functions
4358 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4360 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4361 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4362 libs: encoder: delete encoder_set_property
4363 We no longer need this obsolete set_property function now after
4364 switch to standard gobject's property manner.
4365 Also delete the old encoder's property enum in the header file.
4367 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4369 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4370 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4371 libs: encoder: delete properties_get_default for base class
4373 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4375 * gst/vaapi/gstvaapiencode.c:
4376 * gst/vaapi/gstvaapiencode.h:
4377 plugin: encode: delete useless init_properties.
4378 Also delete the get_properties function in encode class. We now
4379 use g_object_class_list_properties to get all properties for
4380 internal encoder class.
4382 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4384 * gst/vaapi/gstvaapiencode.c:
4385 * gst/vaapi/gstvaapiencode.h:
4386 plugin: encode: delete set/get_property func in encode class
4387 Use standard gobject's property functions to replace the old way.
4389 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4391 * gst/vaapi/gstvaapiencode.c:
4392 * gst/vaapi/gstvaapiencode.h:
4393 plugin: encode: delete gst_vaapiencode_init_properties
4394 No need to init the properties got by get_default_properties func
4395 now. The properties are inited correctly in internal encoder class.
4397 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4399 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4400 libs: encoder: delete 3 useless init macro
4402 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4404 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4405 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4406 libs: encoder: delete get_default_properties of feienc
4408 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4410 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4411 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4412 libs: encoder: delete get_default_properties of H264 Fei
4414 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4416 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4417 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4418 libs: encoder: delete get_default_properties of VP9
4420 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4422 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4423 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4424 libs: encoder: delete get_default_properties of VP8
4426 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4428 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4429 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4430 libs: encoder: delete get_default_properties of MPEG2
4432 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4434 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4435 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4436 libs: encoder: delete get_default_properties of JPEG
4438 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4440 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4441 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4442 libs: encoder: delete get_default_properties of H265
4444 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4446 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4447 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4448 libs: encoder: delete get_default_properties of H264
4450 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4452 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4453 libs: encoder: delete the useless constructed func for encoder.
4455 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4457 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4458 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4459 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4460 libs: encoder: implement get_view_ids for h264 encoder.
4462 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4464 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4465 * gst/vaapi/gstvaapiencode.c:
4466 * gst/vaapi/gstvaapiencode_h264.c:
4467 * gst/vaapi/gstvaapiencode_h264_fei.c:
4468 * gst/vaapi/gstvaapiencode_h265.c:
4469 * gst/vaapi/gstvaapiencode_jpeg.c:
4470 * gst/vaapi/gstvaapiencode_mpeg2.c:
4471 * gst/vaapi/gstvaapiencode_vp8.c:
4472 * gst/vaapi/gstvaapiencode_vp9.c:
4473 gst: encode: enable new type of property mechanism.
4475 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4477 * gst/vaapi/gstvaapiencode.c:
4478 * gst/vaapi/gstvaapiencode.h:
4479 gst: encode: add property help functions for encoder properties.
4480 The encoder is a true gstobject now and all the properties are using
4481 gobject's properties mechanism. Add help functions to handle the properties
4482 between encode and encoder class.
4483 The basic idea is mapping the same property between encoder and encode. All
4484 the encoder's properties will have the same name, the same type in encode.
4485 The set/get property function just forward the property setting/getting to
4486 the encoder using the same property name and value. Because the encoder is
4487 created on needed, we need to cache the property setting in encode.
4489 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4491 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4492 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4493 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4494 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4495 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4496 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4497 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4498 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4499 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4500 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4501 libs: encoder: add flags to all encoder properties.
4502 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4503 need to init the properties manually.
4504 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4505 flag, means need to expose the property to according encode class.
4507 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4509 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4510 libs: encoder: Add properties for h264 encoder fei.
4511 Install properties for h264 encoder fei class. Also set the new get/set
4512 property functions for gobject class. Still use the old properties
4513 way now and this new feature will be enabled later.
4515 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4517 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4518 libs: encoder: Add properties for h264 fei encoder.
4519 Install properties for h264 fei encoder class. Also set the new get/set
4520 property functions for gobject class. Still use the old properties
4521 way now and this new feature will be enabled later.
4523 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4525 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4526 libs: encoder: Add properties for vp9 encoder.
4527 Install properties for vp9 encoder class. Also set the new get/set
4528 property functions for gobject class. Still use the old properties
4529 way now and this new feature will be enabled later.
4531 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4533 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4534 libs: encoder: Add properties for vp8 encoder.
4535 Install properties for vp8 encoder class. Also set the new get/set
4536 property functions for gobject class. Still use the old properties
4537 way now and this new feature will be enabled later.
4539 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4541 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4542 libs: encoder: Add properties for mpeg2 encoder.
4543 Install properties for mpeg2 encoder class. Also set the new get/set
4544 property functions for gobject class. Still use the old properties
4545 way now and this new feature will be enabled later.
4547 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4549 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4550 libs: encoder: Add properties for jpeg encoder.
4551 Install properties for jpeg encoder class. Also set the new get/set
4552 property functions for gobject class. Still use the old properties
4553 way now and this new feature will be enabled later.
4555 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4557 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4558 libs: encoder: Add properties for h265 encoder.
4559 Install properties for h265 encoder class. Also set the new get/set
4560 property functions for gobject class. Still use the old properties
4561 way now and this new feature will be enabled later.
4563 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4565 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4566 libs: encoder: Add properties for h264 encoder.
4567 Install properties for h264 encoder class. Also set the new get/set
4568 property functions for gobject class. Still use the old properties
4569 way now and this new feature will be enabled later.
4571 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4573 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4574 libs: encoder: add properties and prop help functions
4575 Add all common properties to encoder base class. rate-control and
4576 tune are moved to sub class.
4578 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4580 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4581 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4582 libs: encoder: delete useless gst_vaapi_encoder_new func.
4583 GstVaapiEncoder is a abstract gobject and never be created directly.
4585 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
4587 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4588 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4589 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4590 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4591 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4592 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4593 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4594 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4595 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4596 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4597 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4598 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4599 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4600 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4601 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4602 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4603 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4604 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4605 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4606 lib: encoder: gstobjectfy all vaapi encoders.
4607 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4608 Let the gstobject common logic to handle all the init and finalize
4609 works. But the property install/set/get still use the old way, need
4610 to be improved later.
4612 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4614 * gst/vaapi/gstvaapipostproc.c:
4615 vaapipostproc: check for filter before appending caps
4616 While ensuring the allowed sink pad caps, the filter attributes set
4617 the frame size restriction, but it is not ensured, at that moment,
4618 that the filter is already instantiaded.
4619 In order to silence the glib logs, this patch add only calls
4620 gst_vaapi_filter_append_caps() if the filter is instantiated.
4622 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
4624 * gst/vaapi/gstvaapidecodebin.c:
4625 Classify vaapidecodebin as a hardware decoder
4627 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
4629 * gst/vaapi/gstvaapipostproc.c:
4630 libs: postproc: fix a memory leak point.
4631 filter_ops and filter_formats should already have valid value when
4632 the function gst_vaapipostproc_ensure_filter_caps re-enter
4634 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
4636 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4637 libs: util: Fix a memory leak in config_surface_attributes_get
4639 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
4641 * gst/vaapi/gstvaapidecode.c:
4642 vaapidecode: support transform ROI meta
4643 This will benefit the use case like:
4644 src ---> encode ---> decode ---> circle ROI ---> sink
4649 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
4651 * gst/vaapi/gstvaapidecodedoc.c:
4652 docstrings: port ulinks to markdown links
4654 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4656 * gst-libs/gst/vaapi/Makefile.am:
4657 * gst-libs/gst/vaapi/gstvaapicontext.c:
4658 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4659 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4660 * gst-libs/gst/vaapi/meson.build:
4661 libs: remove context's overlay
4662 The context overlay was an optimization to apply a video composition
4663 to all the surfaces bound to a context.
4664 But since commit 18031dc6 this optimization was disabled, so it is
4665 better just get rid of it.
4667 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4669 * gst-libs/gst/vaapi/gstvaapicontext.c:
4670 * gst-libs/gst/vaapi/gstvaapisurface.c:
4671 * gst-libs/gst/vaapi/gstvaapisurface.h:
4672 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4673 * gst/vaapi/gstvaapipluginutil.c:
4674 * tests/test-subpicture.c:
4675 libs: remove surface's parent context
4676 In commit 18031dc6 surface's parent context is not assigned because of
4677 circular references. Since then (2013), there's has no issue with
4678 subpictures attached to a context, the current only users of this API.
4679 This patch cleans up all of related code with the unused surface's
4682 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4684 * gst/vaapi/gstvaapidecode.c:
4685 vaapidecode: guard if no structure is available in caps
4687 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4689 * gst-libs/gst/vaapi/gstvaapifilter.c:
4690 * gst-libs/gst/vaapi/gstvaapifilter.h:
4691 * gst/vaapi/gstvaapipostproc.c:
4692 vaapipostproc: append frame size restrictions in caps
4694 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4696 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4697 libs: profilecaps: refactor common code
4699 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4701 * gst/vaapi/gstvaapiencode.c:
4702 vaapiencode: set frame size restrictions in caps
4705 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4707 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4708 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4709 * gst/vaapi/gstvaapiencode.c:
4710 vaapiencode: enhance how the profile is defined
4711 This code doesn't define the profile used by the internal encoder, but
4712 it used to "predict" which is going to be used and to get the caps
4714 Before the profile was predicted by checking the donwstream caps, but
4715 sometimes they are not defined, setting an unknown profile. In order
4716 to enhances this situation, the encoder asks to internal encoder if it
4717 has one. If so, it is used.
4718 To ask the internal encoder's profile a new accessor function was
4719 added: gst_vaapi_encoder_get_profile()
4721 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4723 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4724 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4725 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4726 Previously it was just a boilerplate. Now it is real implementation.
4728 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4730 * gst-libs/gst/vaapi/gstvaapiutils.c:
4731 libs: utils: treat va_rt_format as bitwise flag
4732 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4733 is a bitwise flag with *all* the supported chroma types.
4734 Previously it was assumed that the return value was a single value,
4735 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4736 simple case. But it is wrong.
4737 This patch changes the case block with a sequence of ifs testing the
4738 bitwise. For now we assume a "priority" list in the testing sequence.
4740 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4742 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4743 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4744 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4745 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4746 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4747 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4748 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4749 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4750 * tests/test-display.c:
4751 libs: profile: add gst_vaapi_profile_get_va_name()
4752 gst_vaapi_profile_get_name() returns a proper name for
4753 GstCaps. Nonetheless, there are many profiles which don't have a name
4754 representation for that realm.
4755 gst_vaapi_profile_get_va_name() returns the name of the profile
4756 according to its VAProfile name.
4757 This new funtion is used in the encoder error message.
4759 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4761 * gst-libs/gst/vaapi/Makefile.am:
4762 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4763 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4764 * gst-libs/gst/vaapi/meson.build:
4765 * gst/vaapi/gstvaapidecode.c:
4766 libs: profilecaps: move caps config into a new file
4767 Implement all the appending of frame size restrictions in caps, for
4768 encoders and decoders, in a new source file.
4770 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4772 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4773 libs: decoder: ref the caps as property
4775 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4777 * gst-libs/gst/vaapi/gstvaapicontext.c:
4778 * gst-libs/gst/vaapi/gstvaapicontext.h:
4779 libs: context: add gst_vaapi_context_get_surface_attributes()
4780 This function copies the surface attributes from the context's object
4783 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4785 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4786 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4787 * gst-libs/gst/vaapi/gstvaapiutils.c:
4788 * gst-libs/gst/vaapi/gstvaapiutils.h:
4789 libs: move memory types conversions to gstvaapiutils
4790 And add more supported memory types by current VA.
4792 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4794 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4795 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4796 libs: utils: remove unused function gst_vaapi_get_surface_formats()
4798 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4800 * gst-libs/gst/vaapi/gstvaapicontext.c:
4801 * gst-libs/gst/vaapi/gstvaapicontext.h:
4802 * gst-libs/gst/vaapi/gstvaapifilter.c:
4803 libs: context, filter: use new surface attributes API
4805 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4807 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4808 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4809 libs: utils: add gst_vaapi_config_surface_attributes_get()
4810 To extract the surface restrictions per config using a new structure:
4811 GstVaapiConfigSurfaceAttributes
4813 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4815 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4816 Split the surface attribute retrieval
4818 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4820 * gst/vaapi/gstvaapipostproc.c:
4821 vaapipostproc: handle navigation downstream event
4822 When navigation events contains coordiantes those have to be mapped
4823 to the new size and/or orientation.
4825 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4827 * tests/elements/test-vaapisink.c:
4828 test-vaapisink: also use vaapipostproc to change orientation
4830 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4832 * gst-libs/gst/vaapi/gstvaapifilter.c:
4833 * gst-libs/gst/vaapi/gstvaapifilter.h:
4834 * gst/vaapi/gstvaapipostproc.c:
4835 * gst/vaapi/gstvaapipostproc.h:
4836 * gst/vaapi/gstvaapipostprocutil.c:
4837 vaapipostproc: handle image-orientation upstream event
4838 Now that vaapipostproc can possible handle video-direction, it
4839 should also handle the image-orientation event from upstream if
4840 video-direction property is set to auto.
4842 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4844 * gst/vaapi/gstvaapipostproc.c:
4845 vaapipostproc: add missing locks when adding flags
4847 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4849 * gst/vaapi/gstvaapipostproc.c:
4850 vaapipostproc: update filter before fixate caps
4851 It is requiered to know if postproc is capable to change the video
4852 direction before fixating the source caps.
4853 In order to do it, it'ss required to know if there's a functional VPP,
4854 but that's checked at create() vmethod, which occurs after caps
4856 This patch checks for a functional VPP at fixate caps and, if so,
4857 checks for the enabled filtes and later do the caps fixations.
4859 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4861 * gst-libs/gst/vaapi/gstvaapifilter.c:
4862 * gst-libs/gst/vaapi/gstvaapivalue.c:
4863 * gst-libs/gst/vaapi/gstvaapivalue.h:
4864 * gst/vaapi/gstvaapipostproc.c:
4865 vaapipostproc: element warning if video direction is unsupported
4866 If the video direction is unsupported by the driver, an element
4867 warning is posted in the bus to notify the application.
4868 gst_vaapi_enum_type_get_nick() was added in the library thus it can
4869 be used elsewhere. It retrives the nick from an enum gtype.
4871 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4873 * gst-libs/gst/vaapi/gstvaapifilter.c:
4874 libs: filter: check mirror and rotation caps only once
4875 This patch locks the display before querying the pipeline caps and
4876 stores the mirror and rotation capabilities, thus they are not queried
4877 every time the video direction is set.
4879 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4881 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4882 libs: encoder: vp9: set VP9_0 profile as default
4883 Commit 0afc8131 introduced a regression and only NV12 format were
4884 admitted, failing in any other valid color format.
4885 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
4887 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4889 * gst-libs/gst/vaapi/gstvaapifilter.c:
4890 libs: filter: fail if first color balance value is invalid
4892 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
4894 * gst-libs/gst/vaapi/gstvaapifilter.c:
4895 * gst-libs/gst/vaapi/gstvaapiutils.c:
4896 * gst-libs/gst/vaapi/gstvaapiutils.h:
4897 libs: filter: set all color balance values
4898 When set multiple settings of color balance like hue, saturation,
4899 brightness and contrast for vaapipostproc, they should be set as
4900 parameters of color balance filter, at the same color balance
4902 Otherwise, multiple color balance filter calling will cause
4903 previous setting get reset by the last calling with default value.
4905 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
4907 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
4909 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4910 libs: h265dec: remove limitation of get iq matrix
4911 According hevc spec, scaling_list_data is not related
4912 to chroma_format_idc.
4914 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
4916 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4917 libs: videopool: fix undocumented behavior and counting
4918 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
4919 because it locks twice the same mutex.
4920 Also, n had different meanings in the current code: as an increase
4921 value and as a new total of allocated surfaces.
4922 This patche removes the undocumented behavoir (usually a deadlock) and
4923 fixes the meaning of n as the new total of allocated surfaces.
4924 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4926 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
4928 * gst-libs/gst/vaapi/gstvaapiutils.c:
4929 libs: utils: Add missing entries for string_of_VAEntrypoint.
4931 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
4933 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4934 libs: encoder: Consider vp9 profiles based on input format.
4935 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
4938 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4940 * gst/vaapi/gstvaapivideomemory.c:
4941 vaapivideomemory: demote error message to info
4942 The main reason to demote the message's level is because it is not an
4943 error, it's a possible output of the trial and there's a code path
4945 Secondly, it's very annoying when using gallium driver for radeon.
4947 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
4949 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4950 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4951 * gst-libs/gst/vaapi/gstvaapitypes.h:
4952 * gst-libs/gst/vaapi/gstvaapiutils.c:
4953 * gst-libs/gst/vaapi/gstvaapivalue.c:
4954 libs: encoder: h264: support ICQ/QVBR bitrate control mode
4955 ICQ is Intelligent Constant Quality. It will use the initial QP
4956 vaule of icq-quality-factor to adjust QP at MB level intelligently
4957 to improve subjective quality.
4958 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
4959 adjust QP for each MB to get enough quality picture without waste
4962 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
4964 * gst-libs/gst/vaapi/gstvaapitypes.h:
4965 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
4966 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
4967 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
4968 deal with unsigned int. Otherwise there may be an error of out of
4969 range of integer if we define few more rate-control mode.
4971 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4973 * gst/vaapi/gstvaapidecodebin.c:
4974 vaapidecodebin: set queue's max size buffers to 1
4975 Otherwise the queue will swallow all the available decoder's surfaces
4976 reaching a dead-lock.
4977 This setting might impact the bin's peformance, but it's a trade-off.
4979 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4981 * gst/vaapi/gstvaapidecodebin.c:
4982 vaapidecodebin: set properties default values
4984 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4986 * gst/vaapi/gstvaapidecode.c:
4987 vaapidecode: don't error if can't push buffers downtream
4988 When the code path goes to push buffers downstream when no surface
4989 available in decoder context, and it fails the code bails out with a
4991 That behavior is wrong, since it shouldn't be fatal. The use case is
4992 when the video stream is disabled.
4993 This patch just ignores the errors in this situation and demotes the
4994 level of a log message.
4996 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
4998 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4999 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5000 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5001 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5002 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5003 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5004 libs: encoder: h264,h265: add new property "max-qp"
5005 Add new property "max-qp" to allow set the maximum quantisation
5008 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
5010 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5011 libs: encoder: vp9: add low power mode encode
5012 By now, this feature only support by media-driver on Ice Lake
5013 platform, more information you can reference:
5014 https://github.com/intel/media-driver
5016 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5018 * gst/vaapi/gstvaapipostprocutil.c:
5019 vaapipostproc: update PAR when rotating
5020 When rotating, swap pixel-aspect-ratio during
5024 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5026 * gst-libs/gst/vaapi/gstvaapifilter.c:
5027 * gst-libs/gst/vaapi/gstvaapiutils.c:
5028 * gst-libs/gst/vaapi/gstvaapiutils.h:
5029 * gst/vaapi/gstvaapipostprocutil.c:
5030 vaapipostproc: add rotation support
5031 Adds vpp rotation support to vaapipostproc. Uses
5032 property video-direction. Default is identity (no
5036 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5038 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5039 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5040 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5041 cu_qp_delta_enabled_flag enabled.
5044 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5046 * gst-libs/gst/vaapi/gstvaapiutils.c:
5047 libs: encoder: Add MB ratecontrol mode to get its string
5049 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5051 * gst-libs/gst/vaapi/gstvaapiutils.c:
5052 libs: encoder: refine guard of bitrate control mode
5053 Remove useless guard of all bitrate control mode's guard except MB
5054 which is define in VA-API version 0.39.1.
5056 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5059 h264: Update for parse_vui_params parameter removal.
5060 Update calls to the h264 parser lib for removal of the
5061 parse_vui_params parameter.
5063 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5065 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5066 libs: dec: vp9: do not use display size as decoded size
5067 If display size is smaller than current frame size, then the crop size
5068 will be set as display size, which either crashes the pipeline or the
5069 output MD5 does not match. Rather it should use the actual decoded size.
5070 This patch removes the cropping set. For rendering we can use aspect
5071 ratio to set display size.
5073 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5074 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5076 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5081 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5083 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5084 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5085 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5086 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5087 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5088 than 8 bits, which cause using the wrong NV12 surface as the render target
5092 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5094 * gst/vaapi/gstvaapidecode.c:
5095 vaapidecode: set initial decode format according surface chroma type
5096 For surfaces with different chroma type, it is prefer to initialize
5097 a format which chroma type should be same with surface chroma type
5098 instead of using fixed NV12.
5100 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5102 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5103 * gst-libs/gst/vaapi/gstvaapiimage.c:
5104 * gst-libs/gst/vaapi/video-format.c:
5105 * gst/vaapi/gstvaapidecode.c:
5106 * gst/vaapi/gstvaapipluginutil.h:
5107 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5108 When create vaapi surface, it is better to use the chroma type get
5109 from jpeg file instead of using fixed 420 format. And the correct
5110 chroma type can be determined by horizontal_factor/vertical_factor
5111 flags that get from jpegparse.
5113 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5115 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5116 libs: dec: h265: Fix profile_idc mapping.
5117 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5118 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5119 happened to be the correct value.
5120 We only support Annex A profile_idc (1-4).
5122 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5124 * gst/vaapi/gstvaapipluginbase.c:
5125 plugins: remove last negotiated video info if caps are same
5126 If the allocation caps and negotiated caps are the same,
5127 then ensure any previously negotiated video info is also
5128 removed. This can occur when multi-resolution video
5129 decoding returns to it's original resolution.
5132 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5134 * gst/vaapi/gstvaapivideomemory.c:
5135 vaapivideomemory: allow negotiated info to be removed
5136 Allow NULL negotiated_vinfo to be passed into
5137 gst_allocator_set_vaapi_negotiated_video_info to allow
5138 any previously set info to be removed.
5140 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5142 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5143 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5144 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5145 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5146 counter, hence the newly created frame could become a P-frame, leading to some
5147 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5148 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5149 GstVaapiEncoderVP9 implementations.
5151 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5153 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5154 libs: encoder: increase bitrate prop max value
5155 There are many profile levels that can support
5156 more than 102400 kbps. Thus, increase the max
5157 allowed bitrate property value from 102400 kbps
5158 to 2048000 kbps (same as msdk encoder plugins).
5160 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5162 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5163 libs: mpeg2 encoder: No packed header for SPS and PPS
5164 Dislable passing down packed PPS and PPS to driver if driver does
5168 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5173 meson: Bump minimal GLib version to 2.44
5174 This means we can use some newer features and get rid of some
5175 boilerplate code using the G_DECLARE_* macros.
5176 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5178 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5180 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5181 libs: dec: vp9: clear parser pointer after release
5182 Fix an use-after-release of the parser pointer in VP9 decoder.
5184 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5186 * gst/vaapi/gstvaapiencode.c:
5187 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5188 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5189 srcpad's chain function was locked waiting for available buffers. Since the
5190 coded buffers in codedbuf_queue become available after sinkpad consume the
5191 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5192 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5193 available buffers and holds the stream_lock of the srcpad.
5195 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5197 * gst-libs/gst/vaapi/gstvaapitypes.h:
5198 * gst/vaapi/gstvaapidecodebin.c:
5199 * gst/vaapi/gstvaapidecodedoc.c:
5200 * gst/vaapi/gstvaapiencode_h264.c:
5201 * gst/vaapi/gstvaapiencode_h264_fei.c:
5202 * gst/vaapi/gstvaapiencode_h265.c:
5203 * gst/vaapi/gstvaapiencode_jpeg.c:
5204 * gst/vaapi/gstvaapiencode_mpeg2.c:
5205 * gst/vaapi/gstvaapiencode_vp8.c:
5206 * gst/vaapi/gstvaapiencode_vp9.c:
5207 * gst/vaapi/gstvaapipostproc.c:
5208 * gst/vaapi/gstvaapisink.c:
5209 doc: remove xml from comments
5211 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5213 * gst-libs/gst/vaapi/gstvaapifilter.c:
5214 * gst-libs/gst/vaapi/gstvaapifilter.h:
5215 * gst-libs/gst/vaapi/gstvaapiutils.c:
5216 * gst-libs/gst/vaapi/gstvaapiutils.h:
5217 * gst/vaapi/gstvaapipostproc.c:
5218 * gst/vaapi/gstvaapipostproc.h:
5219 vaapipostproc: add mirror support
5220 Adds vpp mirroring support to vaapipostproc. Use
5221 property video-direction. Valid values are identity,
5222 horiz or vert. Default is identity (no mirror).
5224 v2: Use GstVideoOrientationMethod enum
5225 v3: Don't warn for VA_MIRROR_NONE.
5226 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5227 v4: Query VAAPI caps when setting mirror value
5228 instead of during per-frame processing.
5229 v5: Return TRUE in warning cases when setting mirror value.
5231 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5233 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5234 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5235 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5236 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5237 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5238 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5239 * gst/vaapi/gstvaapidecodebin.c:
5240 * gst/vaapi/gstvaapisink.c:
5241 doc: fix some incorrect gtk-doc links
5243 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5245 * docs/gst_plugins_cache.json:
5246 docs: Update plugin cache
5247 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5249 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5251 * gst-libs/gst/vaapi/gstvaapisurface.h:
5252 libs: surface: fix documentation format
5254 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5256 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5257 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5258 When enable low delay B, the reference list 1 will be same with
5259 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5260 to num_ref_idx_l0_active_minus1.
5263 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5266 meson: Fix call to wrong function
5268 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5273 * docs/gst_plugins_cache.json:
5276 * docs/plugins/Makefile.am:
5277 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5278 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5279 * docs/plugins/gstreamer-vaapi-plugins.types:
5280 * docs/plugins/inspect/plugin-vaapi.xml:
5281 * docs/plugins/running.xml:
5283 * docs/version.entities.in:
5284 * gst/vaapi/meson.build:
5286 * meson_options.txt:
5287 docs: Port to hotdoc
5289 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5291 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5292 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5293 libs: encoder: not call ensure_num_slices inside g_assert
5294 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5295 defined. The function inside the g_assert will take no effect and
5296 we will fail to set the correct slice number.
5298 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5300 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5301 libs: h265: dec: Add extension flags setting.
5302 Use VAPictureParameterBufferHEVCExtension&
5303 VASliceParameterBufferHEVCExtension to pass extension setting from
5304 some extension profile clips which may include these information.
5305 The hevc extension setting only supported after libva release 2.2.0
5308 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5310 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5311 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5312 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5313 libs: encoder: add target-percentage property
5314 Allow users to set the target-percentage for
5315 variable rate controls. The default value is
5316 70 (as hard-coded prior).
5317 v2: minimum allowed value changed from 0 to 1
5318 v3: target-percentage unchanged if CBR used
5321 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5323 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5324 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5326 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5328 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5329 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5330 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5331 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5332 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5333 libs: encoder: Enable trellis quantization method.
5334 The advanced trellis algorithm is supported in VA driver. We add
5335 its support as a property named "trellis" of encoder.
5336 It only works for H264 now, should be more in future.
5338 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5340 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5341 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5342 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5343 type, so we need to add subsampling_x&subsampling_y to fix it.
5344 Here is the relationship between chroma type and profile and
5345 subsampling_x&subsampling_y according to vp9 spec:
5346 ------------------------------------------
5347 Profile | Bit depth | Chroma subsampling |
5348 ------------------------------------------
5350 ------------------------------------------
5351 1 | 8 | 422,440,444 |
5352 ------------------------------------------
5354 ------------------------------------------
5355 3 | 10, 12 | 422,440,444 |
5356 ------------------------------------------
5357 -----------------------------------------------
5358 Subsampling_x | Subsampling_y | Chroma format |
5359 -----------------------------------------------
5361 -----------------------------------------------
5363 -----------------------------------------------
5365 -----------------------------------------------
5367 -----------------------------------------------
5369 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5371 * gst-libs/gst/vaapi/gstvaapiimage.c:
5372 * gst-libs/gst/vaapi/video-format.c:
5373 libs: Add packed 24 RGB format support.
5374 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5375 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5376 type. This kind of surface will just be created by new API with fourcc
5377 and no old style chrome based creation is available.
5380 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5382 * gst/vaapi/gstvaapiencode.c:
5383 * gst/vaapi/gstvaapiencode_h264.c:
5384 * gst/vaapi/gstvaapiencode_h264_fei.c:
5385 * gst/vaapi/gstvaapiencode_h265.c:
5386 * gst/vaapi/gstvaapiencode_jpeg.c:
5387 * gst/vaapi/gstvaapiencode_mpeg2.c:
5388 * gst/vaapi/gstvaapiencode_vp8.c:
5389 * gst/vaapi/gstvaapiencode_vp9.c:
5390 vaapiencode: handle DMABuf caps feature in sink pad
5391 Add DMABuff caps features in all encoders' sink pad.
5393 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5395 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5396 libs: encoder: continue if roi meta is NULL
5398 If the function actually returns a null value, a null pointer
5399 dereference will occur.
5400 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5401 function which returns null is dereferenced without checking
5403 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5405 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5406 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5407 The decoder's surface chroma type should depend on the bit depth
5408 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5409 10 bits surface as the decoder result.
5412 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5414 * gst/vaapi/gstvaapipostprocutil.c:
5415 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5416 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5417 with commit 3e992d8a
5418 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5419 from caps negotiation, different from the default one (NV12), the
5420 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5421 feature is negotiated, no color transformation shall be done.
5422 Nonetheless, with commit 3e992d8a the requested format changes
5423 firstly, because there's no video sink yet, so ANY caps are
5424 negotiated; but later, when there's a video sink and a caps
5425 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5426 format conversion still ongoing. It is required to reset that
5428 This patch force default color format when GL_TEXTURE_UPLOAD is
5429 selected as preferred, thus avoiding the color conversion.
5432 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5434 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5435 libs: surface: fix double free when dmabuf export fails
5436 Happens if vaAcquireBufferHandle fails.
5438 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5440 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5441 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5443 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5447 * docs/plugins/inspect/plugin-vaapi.xml:
5451 === release 1.16.0 ===
5453 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5459 * gstreamer-vaapi.doap:
5463 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5465 * docs/plugins/inspect/plugin-vaapi.xml:
5468 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5470 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5471 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5472 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5473 libs: encoder: h264,h265: guard VA version for max_qp property
5474 This patch fixes a regression from commit 5b1fe9c6.
5475 max_qp, in rate control configuration, appeared in libva release
5476 2.1 (API 1.1), thus it is required to guard the VA API version.
5479 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5481 * gst-libs/gst/vaapi/gstvaapiimage.c:
5482 * gst-libs/gst/vaapi/video-format.c:
5483 libs: Add RGB565 image format support.
5485 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5488 build: configure: delay USE_GTK conditional until check libva-x11
5489 libva-x11 is used for X11 applications, so it is required to build
5490 any GTK application.
5491 Later, when Wayland test is added, we should change this.
5493 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5496 build: configure: disable GLX if libva-x11 is not found
5498 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5500 * gst-libs/gst/vaapi/gstvaapiutils.c:
5501 libs: utils: avoid macro evaluation when stringify
5502 string_of_va_chroma_format() gets a wrong string format description.
5503 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5504 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5505 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5507 To avoid the macro evaluation, it is changed to show only the color
5508 format without VA_RT_FORMAT_ prefix.
5510 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5512 * gst-libs/gst/vaapi/gstvaapiutils.c:
5513 libs: utils: use glib's macros
5514 Don't reinvent the wheel.
5516 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5518 * gst/vaapi/gstvaapipluginutil.c:
5519 plugins: find the preferred format from right caps.
5520 When the downstream has any caps, then raw video feature will
5521 be used. At this situation, the preferred format should be chose
5522 from caps which contains "vide/x-raw" feature instead of from
5523 the fist allowed caps.
5526 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5528 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5529 libs: encoder: h265: fill tier in va seq param buf
5530 Now that tier is calculated in commit 58e74f9440fe (!68),
5531 ensure we fill in the general_tier_flag in the
5532 VAEncSequenceParameterBufferHEVC.
5534 === release 1.15.90 ===
5536 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5542 * gstreamer-vaapi.doap:
5546 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5548 * docs/plugins/inspect/plugin-vaapi.xml:
5551 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5553 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5554 libs: encoder: h265: Recognize the correct level and tier.
5555 The current manner can not recognize the correct level and always
5556 set the tier to main. Need to add frame rate check to recognize
5557 levels such as 4.1, 6.2, etc. We also add a logic to check main
5558 and high tier based on bitrate.
5561 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5563 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5564 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5565 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5566 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5567 media-driver currently fails to set a correct value of max_qp when
5568 min_qp is different to zero, in CBR and VBR mode, generating full
5569 quality frames, thus unexpected huge output.
5570 This patch sets max_qp to an arbitrary value to avoid this output
5574 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5576 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5577 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5578 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5579 libs: encoder: h264,h265: initial and minimal QP can be zero
5580 Currently the minimal value for either min_qp and init_qp are 1,
5581 but VA documentation specifiy that zero is also valid and means
5582 to ignore the quantiser.
5583 The default value is not changed though to avoid behaivor changes
5586 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5588 * tests/elements/meson.build:
5589 meson: build test-vaapicontext when using X11
5590 x11_dep and libva_x11_dep are optional and meson ignores these
5591 dependencies even if they are added into the dependency list.
5592 This fixes the error below when libva-x11 is not avaiblabe:
5593 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5594 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5595 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5596 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5597 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5598 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5599 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5600 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5601 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5602 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5603 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5604 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5605 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5606 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5607 -DHAVE_CONFIG_H -MD -MQ
5608 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5610 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5612 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5613 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5614 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5615 error: va/va_x11.h: No such file or directory
5616 #include <va/va_x11.h>
5618 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
5620 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5621 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5622 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5623 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5624 GValueArray is deprecated. Use GstValueArray instead.
5626 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
5628 * gst/vaapi/gstvaapipluginutil.c:
5629 vaapipluginutil: Fix #endif for USE_X11
5631 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5633 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5634 libs: encoder: h264: simplify the view-ids setting
5636 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
5638 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5639 libs: encoder: h264: Use gst_param_spec_array for view-ids
5640 GValueArray is deprecated. Use GstValueArray instead.
5641 gst_param_spec_array can be deserialized from command line using:
5642 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5643 While the g_param_spec_value_array() can not, and always get
5644 error: "gst_value_deserialize_g_value_array: unimplemented"
5645 Also fixed an out-of-range bug.
5647 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
5649 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5650 libs: Change the parameter setting order when encode picture.
5651 The order in gst_vaapi_enc_picture_encode when encoding one
5652 picture is not very correct. The misc parameters are set before
5653 the picture parameters. Some of the misc parameters such as
5654 ROI may change the current picture parameters. But the later
5655 setting of picture parameter will re-init all picture related
5656 parameters and clear the previous setting. The right order
5657 should be picture parameter first and then misc parameters.
5658 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5660 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
5662 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5663 libs: decoder: jpeg: support dynamic resolution change decode.
5664 Add size_changed flag to watch out resolution. if change, reset
5665 jpeg decoder's context.
5667 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
5669 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5670 libs: encoder: h265: add low power mode encode.
5671 By now, this feature only support by media-driver on Ice Lake
5672 platform, more information you can reference:
5673 https://github.com/intel/media-driver
5675 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
5677 * gst/vaapi/gstvaapiencode.c:
5678 vaapiencode: gobject's prop_id differ from vaapi encoder
5679 The vaapi internal encoder's property id are negative, thus they are
5680 different from GObject's property ids.
5681 gst_vaapi_encoder_set_property() should map to the internal encoder
5682 property id, assigned in gst_vaapiencode_default_set_property().
5684 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
5687 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5689 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
5692 meson: use new 'python' module instead of deprecated 'python3' one
5694 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
5697 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5698 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5700 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
5705 * docs/plugins/inspect/plugin-vaapi.xml:
5709 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
5711 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5712 libs: Fix a typo in comments.
5713 Fix a typo in function description of
5714 gst_vaapi_surface_pool_new_with_chroma_type.
5715 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5717 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5719 * gst/vaapi/gstvaapipluginutil.c:
5720 plugin: if any caps in downstream, negotiate raw video
5721 When downstream has any caps, vaapi should not shovel vaapi featured
5722 buffers, but rather plain raw video, assuming always the worst case
5723 scenario (downstream cannot handle featured video memory but raw
5724 system memory buffers).
5725 This patch query the peer caps without any filter, to know if
5726 donwstream just ask for any caps, if so jump to the color space
5727 checking, otherwise do the caps intersection and continue with the
5728 feature selection algorithm.
5731 === release 1.15.2 ===
5733 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5739 * gstreamer-vaapi.doap:
5743 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5745 * docs/plugins/inspect/plugin-vaapi.xml:
5748 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
5750 * gst/vaapi/gstvaapivideomemory.c:
5751 vaapivideomemory: Prefer same format for surface and image
5752 We prefer to use the same format between image and surface for gst
5753 vaapi allocator. The old way may choose different formats between
5754 image and surface. For example, the RGBA image may have a NV12 surface.
5755 So we need to do format conversion when we put/get image to surface.
5756 Some drivers such as iHD can not support such conversion and always
5757 cause a data flow error. There may also have some performance cost
5758 for format conversion when put/get images.
5759 So we prefer to use the same format for image and surface in the
5760 allocator. If the surface can not support that format, we then
5761 fallback to find a best one as the surface format.
5762 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5764 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
5766 * gst-libs/gst/vaapi/video-format.c:
5767 libs: Delete the duplicated ARGB video format.
5768 Two ARGB formats with the same format information.
5769 Should be verbose and delete one.
5770 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5772 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
5775 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5776 glx: Stop specifying GLX_DEPTH_SIZE
5777 This code is just confused. It's asking for at least as many bits of
5778 (z-axis) depth as the root window has bits of (color) depth. For rgb565
5779 or rgb888 this is harmless, but at 10 bits per channel this demands a
5780 30-bit or deeper Z buffer. While some hardware could in principle do a
5781 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5783 We're not actually using the Z buffer, so just stop asking for one.
5785 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
5788 * gst-libs/gst/vaapi/Makefile.am:
5789 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5790 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5791 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5792 * gst-libs/gst/vaapi/meson.build:
5793 * gst/vaapi/gstvaapisink.c:
5795 libs: wayland: add support for XDG-shell protocol
5796 [wl_shell] is officially [deprecated], so provide support for the
5797 XDG-shell protocol should be provided by all desktop-like compositors.
5798 (In case they don't, we can of course fall back to wl_shell).
5799 Note that the XML file is directly provided by the `wayland-protocols`
5800 dependency and generates the protocol marshalling code.
5801 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5802 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5804 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
5806 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5807 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5808 It will help us to distinguish from other Wayland shell surface
5809 (such as XDG-shell) later on.
5811 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
5813 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5814 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5815 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5816 libs: wayland: Prefix wl_shell field with `wl_`
5817 It will help us to distinguish from other Wayland shells (such as
5818 XDG-shell) later on.
5820 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
5822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5823 libs: display: lock ensure_profile()
5824 Thread safety patch for ensure_profile() function
5827 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5830 meson: bump the minimum wayland version requirement to 1.11.0
5831 This was missed on commit 77bb3424
5833 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5835 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5836 * gst/vaapi/gstvaapisink.c:
5837 vaapisink: x11: trap WM_DELETE_WINDOW message
5838 Register the WM_DELETE_WINDOW message from window manager and
5839 trap it to stop the pipeline cleanly.
5840 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5842 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5844 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5845 libs: window: remove native-id property
5846 native-id property is problematic since the variable that stores it is
5847 gsize, which is platform specific, and in some is bigger than unsigned
5848 long, and there are not way to handle gsize properties.
5849 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5850 like to keep using it for this scope.
5851 This patch removes the native-id property and set it manually in
5852 gst_vaapi_window_new_internal().
5854 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5856 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5857 libs: window: use G_GSIZE_MODIFIER for window id
5858 gsize type is not equal in all platforms, then the 'l' print modifier
5859 shall not be used always.
5860 This issue was found in Debian builds.
5862 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
5864 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5865 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5866 encoder: h264/h265: set SPS cbr_flag with correct value.
5867 The flag only set as 1 when the rate-control mode is CBR.
5869 === release 1.15.1 ===
5871 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5877 * gstreamer-vaapi.doap:
5881 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5883 * docs/plugins/inspect/plugin-vaapi.xml:
5886 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5888 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5889 libs: encoder: refactor to avoid code duplication
5890 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
5891 the same code segment where the coded buffer is created, the picture
5892 encoded on it and pushed to the async queue.
5893 The function gst_vaapi_encoder_encode_and_queue() refactor this.
5895 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5897 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5898 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5899 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5900 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5901 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5902 libs: encoder: h264/h265: flush pending ordered pictures
5903 In order to flush the pending pictures, a new internal encoder vmethod
5904 is used: get_pending_reordered()
5905 This method follows an iterator pattern which will return the next
5906 picture to encode and push.
5907 The base encoder will call this function in a loop when flush() is called.
5908 For now, only H.264 and H.265 encoders implement this flushing mechanism.
5910 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com>
5912 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5913 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5914 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5915 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5916 libs: encoder: h264/h265: fix encode lose frame issue.
5917 Instead of dropping all remain frames in reorder_frame_list during
5918 flush, keep encoding.
5919 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
5921 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
5923 * gst/vaapi/gstvaapipostproc.c:
5924 vaapipostproc: before set surface proxy, check if it already been created and exist.
5925 Fix the deinterlace black frame when playing with glimagesink:
5926 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
5927 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
5929 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
5931 * gst-libs/gst/vaapi/gstvaapiutils.c:
5932 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
5934 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5936 * gst-libs/gst/vaapi/meson.build:
5937 * gst/vaapi/meson.build:
5939 * tests/meson.build:
5940 meson: build h264 fei encoder if possible
5942 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
5945 configure: bump the minimum wayland version requirement to 1.11.0
5947 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
5950 * gst-libs/gst/vaapi/Makefile.am:
5951 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5952 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
5953 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
5954 * gst-libs/gst/vaapi/gstvaapicompat.h:
5955 * gst-libs/gst/vaapi/gstvaapicontext.c:
5956 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5957 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5958 * gst-libs/gst/vaapi/gstvaapifilter.c:
5959 * gst-libs/gst/vaapi/gstvaapiprofile.c:
5960 * gst-libs/gst/vaapi/gstvaapisurface.c:
5961 * gst-libs/gst/vaapi/gstvaapiutils.c:
5962 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5963 * gst-libs/gst/vaapi/meson.build:
5964 * gst/vaapi/Makefile.am:
5965 * gst/vaapi/gstvaapi.c:
5966 * gst/vaapi/gstvaapidecode.c:
5967 * gst/vaapi/gstvaapidecodebin.c:
5968 * gst/vaapi/gstvaapipluginbase.c:
5969 * gst/vaapi/meson.build:
5972 * tests/simple-decoder.c:
5973 vaapi: bump the minimum vaapi version requirement to 0.39.0
5974 And reduce unnecessary API version and structures check as well.
5975 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
5977 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5979 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5980 * gst-libs/gst/vaapi/gstvaapiwindow.h:
5981 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5982 * tests/test-decode.c:
5983 * tests/test-filter.c:
5984 * tests/test-subpicture.c:
5985 * tests/test-textures.c:
5986 * tests/test-windows.c:
5987 libs: window: remove custom ref() and unref()
5988 Use gst_object_ref() and gst_object_unref() instead.
5990 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5992 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5993 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
5994 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5995 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5996 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5997 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5998 libs: window: use its own debug category
6000 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6002 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6003 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6004 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6005 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6006 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6007 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6008 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6009 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6010 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6011 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6012 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6013 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6014 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6015 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6016 libs: window: refactor as gobject
6017 This is another step in the gobjectification of the internal library
6018 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6020 The idea is to minimize the changeset keeping the same design as
6022 GstVaapiWindow is defined as an abstract class with two properties:
6023 the GstVaapiDisplay and the native ID. Thus, many of the
6024 GstVaapiObject macros were copied as GstVaapiWindow macros.
6025 The function gst_vaapi_window_new_internal() is kept as a decorator
6026 of for calling gst_vaapi_window_create() and the possibility of
6028 The descendant classes, such as glx, still use the private
6029 structures, but through the gobject mechanism.
6031 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6033 * gst-libs/gst/vaapi/gstvaapifilter.c:
6034 libs: filter: use its own debug category
6036 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6038 * gst/vaapi/gstvaapidecode.c:
6039 * gst/vaapi/gstvaapipluginbase.c:
6040 * gst/vaapi/gstvaapipluginbase.h:
6041 * gst/vaapi/gstvaapipostproc.c:
6042 * gst/vaapi/gstvaapisink.c:
6043 plugins: Add more check for allowed raw caps.
6044 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6045 pad and src pad, which cause some bugs. For sink pad, we need to verify
6046 vaPutImage() while for the src pad we need to verify vaGetImage().
6047 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6048 to verify whether the decoded result(in some surface, NV12 format most
6049 of the time) can be vaGetImage to some raw image format. Add more check
6050 to fix all these problems.
6051 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6052 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6054 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6056 * gst/vaapi/gstvaapipostproc.c:
6057 vaapipostproc: fix csc fail when only change width or height.
6059 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6061 * tests/elements/meson.build:
6062 meson: Add gtk guard
6064 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6066 * gst/vaapi/gstvaapiencode_h264.c:
6067 libs: enc: h264: set max profile idc with correct profile.
6068 Use the highest rank of available profile as the max profile to
6070 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6072 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6074 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6075 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6076 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6077 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6078 This gets rid of the strange `do_init` macro and makes the intent a bit
6081 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6084 Automatic update of common submodule
6085 From ed78bee to 59cb678
6087 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6089 * gst-libs/gst/vaapi/gstvaapiimage.c:
6090 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6091 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6092 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6093 * gst-libs/gst/vaapi/video-format.c:
6094 * gst/vaapi/gstvaapidecode.c:
6095 * gst/vaapi/gstvaapipluginutil.h:
6096 libs: dec: h265: support decode for main-444 10bit streams.
6097 Add 444 10bit yuv format Y410, which can be used to decode
6098 main-444 10bit streams. Currently, this feature is only
6099 supported by media-driver in Icelake.
6101 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6103 * gst/vaapi/gstvaapidecode.c:
6104 * gst/vaapi/gstvaapisink.c:
6105 Run gst-indent through the files
6106 This is required before we enabled an indent test in the CI.
6107 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6109 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6111 * gst/vaapi/gstvaapipluginbase.c:
6112 plugins: modify image check of extract_allowed_surface_formats.
6113 The extract_allowed_surface_formats function just check whether
6114 we can support some kind of surface/image format pair. We just
6115 need to create a surface, create an image with the same video-format
6116 and putImage from image to surface. All these operations success,
6117 that kind of video-format is supported.
6118 The old manner do not work for some kind of video-format. For example,
6119 the RGBA kind of format will create a NV12 surface and RGBA image,
6120 and the putImage will fail because the format is not same. And so
6121 the RGBA format is not supported but actually it is supported.
6123 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6125 * gst/vaapi/gstvaapipostproc.c:
6126 vaapipostproc: add some missing locking
6127 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6128 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6130 This is needed when the pipeline is stopped during startup.
6132 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6134 * gst/vaapi/gstvaapivideomemory.c:
6136 Otherwise it will result in resource leak when failed to create
6139 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6141 * gst/vaapi/gstvaapiencode.c:
6142 vaapiencode: don't start src pad task in set_format
6143 Otherwise the task may be restarted during shutdown. Start the task in
6144 gst_vaapiencode_handle_frame() instead.
6146 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6148 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6149 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6150 * gst-libs/gst/vaapi/gstvaapiutils.c:
6151 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6152 * gst/vaapi/gstvaapidecode.c:
6153 * gst/vaapi/gstvaapipluginutil.h:
6154 libs: dec: h265: support decode for main-444 8bit streams.
6155 Add 444 8bit yuv format AYUV, which can be used to decode
6156 main-444 8bit streams. Currently, this feature is only
6157 supported by media-driver in Icelake.
6158 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6160 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6163 Add Gitlab CI configuration
6164 This commit adds a .gitlab-ci.yml file, which uses a feature
6165 to fetch the config from a centralized repository. The intent is
6166 to have all the gstreamer modules use the same configuration.
6167 The configuration is currently hosted at the gst-ci repository
6168 under the gitlab/ci_template.yml path.
6169 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6171 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6173 * gst-libs/gst/vaapi/gstvaapisurface.h:
6174 * gst-libs/gst/vaapi/gstvaapiutils.c:
6175 libs: Sync the GstVaapiChromaType to VA header file.
6176 Add more kinds of chrometype which will be used to describe
6177 new video formats. Sync it with 1.4.0 version header file.
6178 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6179 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6181 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6183 * gst-libs/gst/vaapi/meson.build:
6184 meson: link with -lm
6185 Fixes #117 hopefully.
6187 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6190 meson: bump meson required to 0.47 for feature options
6192 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6194 * gst-libs/gst/vaapi/video-format.c:
6195 libs: Modify the video format of endianness.
6196 We lack some video format because endianness declare.
6197 The video format should not directly relate to endianness. For example,
6198 ARGB on big endian should not be simplely seen as BGRA on little endian
6199 machine. We should provide endianess convert or format convert help
6200 functions if endianness does not match.
6201 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6202 Signed-off-by: Junyan He <junyan.he@intel.com>
6204 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6206 * gst/vaapi/gstvaapipluginutil.c:
6207 plugins: Fix build error when GL is enabled while EGL is disabled.
6208 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6209 unused-variable warning and may block build when Werror enabled.
6210 Several functions like gst_vaapi_display_egl_new_with_native_display
6211 have no prototype warning and link error when GL is enabled but EGL
6212 is disabled. Fix all these warning and link error.
6213 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6214 Signed-off-by: Junyan He <junyan.he@intel.com>
6216 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6218 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6219 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6220 libs: encoder: h264/h264fei: remove unuseless code.
6221 The variable are set twice, remove previous one.
6222 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6224 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6226 * tests/simple-encoder.c:
6227 * tests/test-fei-enc-in.c:
6228 tests: check return value when using gst_buffer_map.
6229 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6231 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6234 * meson_options.txt:
6235 * tests/elements/meson.build:
6236 * tests/meson.build:
6237 build: meson: build examples
6239 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6241 * gst-libs/gst/vaapi/meson.build:
6242 build: meson: declare headers for libgstvaapi
6243 Thus handling its recompilation if needed.
6245 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6248 Update common submodule location
6249 Remove the git directory
6251 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6254 * gstreamer-vaapi.doap:
6255 Clone the code from gitlab
6256 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6258 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6260 * gst-libs/gst/vaapi/gstvaapiimage.c:
6261 * gst-libs/gst/vaapi/gstvaapisurface.h:
6262 * gst-libs/gst/vaapi/gstvaapiutils.c:
6263 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6264 * gst-libs/gst/vaapi/video-format.c:
6265 * gst/vaapi/gstvaapidecode.c:
6266 * gst/vaapi/gstvaapipluginutil.h:
6267 libs: dec: h265: support decode for main-10-422 10bit streams.
6268 Add 422 10bit yuv format Y210, which can be used to decode
6269 main-10-422 10bit streams. Currently, this feature is only
6270 supported by media-driver in Icelake.
6271 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6273 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6275 * gst-libs/gst/vaapi/gstvaapicontext.c:
6276 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6277 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6278 rate control mode is set as CQP. In CQP mode, it shouldn't check
6279 roi_rc_qp_delta_support return value from driver backend.
6280 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6282 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6284 * gst/vaapi/gstvaapipostproc.c:
6285 vaapipostproc: fix classification string
6286 The classification string is splitted by '/' and then looks for the
6288 This patch removes the ';' by unifying all the components.
6290 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6292 * gst/vaapi/gstvaapipostproc.c:
6293 vaapipostproc: Add Hardware classifier to metadata
6295 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6297 * gst-libs/gst/vaapi/gstvaapicontext.c:
6298 libs: context: create context first before using it to create surface.
6299 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6300 sure to create it first before allocating its associated surfaces.
6301 This patch fixes a regression introduced in commit 82872f4 because
6302 the formats available in the current context now are ensured before
6303 creating the context's surfaces.
6304 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6306 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6308 * docs/plugins/inspect/plugin-vaapi.xml:
6309 * gst/vaapi/gstvaapidecode.c:
6310 * gst/vaapi/gstvaapiencode_h264.c:
6311 * gst/vaapi/gstvaapiencode_h264_fei.c:
6312 * gst/vaapi/gstvaapiencode_h265.c:
6313 * gst/vaapi/gstvaapiencode_jpeg.c:
6314 * gst/vaapi/gstvaapiencode_mpeg2.c:
6315 * gst/vaapi/gstvaapiencode_vp8.c:
6316 * gst/vaapi/gstvaapiencode_vp9.c:
6317 gst: Advertise elements interacting with hardware devices
6319 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6321 * gst-libs/gst/vaapi/gstvaapicontext.c:
6322 * gst-libs/gst/vaapi/gstvaapisurface.c:
6323 * gst-libs/gst/vaapi/gstvaapisurface.h:
6324 libs: context: query surface format before context to create surface.
6325 Before using context to create surface, the supported surface format
6326 should be checked first.
6327 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6329 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6331 * gst-libs/gst/vaapi/gstvaapiimage.c:
6332 * gst-libs/gst/vaapi/gstvaapivalue.c:
6333 libs: replace g_error with GST_ERROR
6334 And handle those errors rather than halting.
6336 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6338 * gst-libs/gst/vaapi/gstvaapiimage.c:
6339 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6340 * gst-libs/gst/vaapi/gstvaapisurface.c:
6341 libs: replace g_warning with GST_WARNING
6343 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6345 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6346 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6347 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6348 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6349 libs: Move from g_debug to GST_DEBUG.
6350 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6352 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6354 * gst/vaapi/gstvaapipostproc.c:
6355 vaapipostproc: change the way of handling deinterlace
6356 The current vaapipostproc calls driver's video processing
6357 pipeline for deinterlacing only if it is Advance deinterlacing.
6358 Modify in the way that it always tries with driver's video
6359 processing pipeline for deinterlacing, and falls back to software
6360 method of appending picture structure meta data only if it fails
6361 with driver's method.
6362 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6364 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6366 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6367 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6368 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6369 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6370 from T-REC-H.264-201704.
6371 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6373 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6375 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6376 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6377 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6378 * gst-libs/gst/vaapi/gstvaapisurface.c:
6379 * gst-libs/gst/vaapi/gstvaapiutils.c:
6380 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6381 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6382 * gst-libs/gst/vaapi/video-format.c:
6383 * gst-libs/gst/vaapi/video-format.h:
6384 * gst/vaapi/gstvaapidecode.c:
6385 * gst/vaapi/gstvaapipluginbase.c:
6386 * gst/vaapi/gstvaapipluginutil.h:
6387 libs: dec: h265: add 422 chroma format support.
6388 Add main-422-10 profile which support 422 chroma format stream.
6389 Currently, this feature is only supported by media-driver in Icelake.
6390 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6392 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6394 * tests/y4mreader.c:
6395 tests: include sysdeps.h in compilation unit
6396 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6397 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6399 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6401 * tests/y4mreader.c:
6402 * tests/y4mreader.h:
6403 tests: fix compilation
6404 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6406 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6408 * tests/y4mreader.h:
6409 tests: don's use sysdeps.h in header
6411 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6413 * gst-libs/gst/vaapi/gstvaapiutils.h:
6414 libs: utils: no need of include config.h
6416 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6420 * tests/test-decode.c:
6421 * tests/test-subpicture.c:
6422 tests: remove already include string.h
6423 Since sysdeps.h includes string.h there's no need to include it again.
6425 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6427 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6428 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6429 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6430 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6431 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6432 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6433 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6434 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6435 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6436 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6437 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6438 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6439 * gst-libs/gst/vaapi/gstvaapiimage.c:
6440 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6441 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6442 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6443 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6444 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6445 libs: remove already include string.h
6446 Since sysdeps.h includes string.h there's no need to include it again.
6448 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6450 * gst-libs/gst/vaapi/gstvaapiobject.h:
6451 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6452 * gst/vaapi/gstvaapivideometa_texture.c:
6453 libs: object: separation of internal API and plugins
6454 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6455 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6457 The purpose is readability.
6458 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6460 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6462 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6463 libs: parser_frame: change macros for inlined functions
6464 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6466 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6468 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6469 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6470 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6471 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6472 libs: videopool: remove unneeded code
6473 The removed code comes frome the bad practice of copy&paste. Better
6474 move it as internal function.
6475 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6477 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6479 * gst-libs/gst/vaapi/Makefile.am:
6480 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6481 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6482 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6483 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6484 * gst-libs/gst/vaapi/gstvaapiobject.c:
6485 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6486 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6487 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6488 * gst-libs/gst/vaapi/gstvaapitexture.c:
6489 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6490 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6491 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6492 * gst-libs/gst/vaapi/meson.build:
6493 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6494 This conditional code was when libgstvaapi was intended to be library
6495 used outside GStreamer. This not the case anymore, thus removing it.
6496 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6498 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6500 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6501 libs: dec: h265: fix the macros used for IDC profile
6502 profile_idc flag in SPS only indicate the IDC profile, which may
6503 need some other flags together to get the real profile.
6504 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6506 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6508 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6509 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6510 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6511 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6512 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6513 libs: use g_clear_pointer() when possible
6514 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6516 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6518 * gst-libs/gst/vaapi/gstvaapifilter.h:
6519 libs: filter: add gobject's cleanup function
6521 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6523 * gst-libs/gst/vaapi/gstvaapifilter.c:
6524 * gst-libs/gst/vaapi/gstvaapifilter.h:
6525 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6526 * tests/test-filter.c:
6527 libs: filter: remove custom ref() and unref()
6528 Replacing them by gst_object_ref() and gst_object_unref()
6529 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6531 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6533 * gst-libs/gst/vaapi/gstvaapifilter.c:
6534 * gst-libs/gst/vaapi/gstvaapifilter.h:
6535 libs: filter: refactor filter as gobject
6536 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6538 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6540 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6541 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6542 libs: decoder: remove destoy() and create() callbacks
6543 They were all replaced by reset()
6544 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6546 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6548 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6549 libs: decoder: vp9: implement reset() callback
6550 remove destroy() and create() callback
6551 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6553 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6555 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6556 libs: decoder: vp8: implement reset() callback
6557 remove create() and destroy() callbacks
6558 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6560 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6562 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6563 libs: decoder: vc1: implement reset() callback
6564 remove destroy() and create() callbacks
6565 use g_clear_pointer for rbdu_buffer
6567 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6569 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6571 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6572 libs: decoder: mpeg4: implement reset() callback
6573 remove destroy() and create() callback
6574 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6576 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6578 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6579 libs: decoder: mpeg2: implement reset() callback
6580 remove create() and destroy() callbacks
6581 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6583 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6585 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6586 libs: decoder: jpeg: implement reset() callback
6587 and remove create() and destroy() callbacks.
6588 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6590 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6592 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6593 libs: decoder: h265: implement reset() callback
6594 and remove create() and destroy()
6595 and use g_clear_pointer for dpb structure
6596 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6598 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6600 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6601 libs: decoder: h264: remove create() and destroy() callbacks
6602 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6604 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6606 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6607 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6608 * tests/test-decode.c:
6609 * tests/test-subpicture.c:
6610 libs: decoder: remove gst_vaapi_decoder_unref()
6611 Replaced by gst_object_unref() in tests
6612 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6614 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6616 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6617 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6618 libs: decoder: remove gst_vaapi_decoder_ref()
6619 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6621 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6623 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6624 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6625 libs: decoder: remove gst_vaapi_decoder_new()
6626 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6628 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6630 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6631 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6632 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6633 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6634 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6635 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6636 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6637 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6638 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6639 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6640 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6641 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6642 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6643 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6644 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6645 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6646 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6647 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6648 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6649 libs: decoder: refactor decoders as gobject
6650 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6652 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6654 * gst/vaapi/gstvaapidecode.c:
6655 vaapidecode: Requests upstream a key unit at parse or decode error.
6656 This is done to resume decoding after a parse error or decode error.
6657 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6659 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6661 * gst/vaapi/gstvaapidecode.c:
6662 vaapidecode: sets return value in failure case.
6663 In gst_vaapidecode_handle_frame, when there is a decode error
6664 there is a code path the returns an uninitialized value.
6665 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6667 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6669 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6670 libs: display: lock at extracting available image formates
6671 When running several vaapi elements at the concurrently, at
6672 initialization, there is a race condition when extractin the avaible
6673 formats for images and subpictures.
6674 This patch add a lock when the those arrays are filled.
6675 https://bugzilla.gnome.org/show_bug.cgi?id=797039
6677 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
6680 meson: Sync libversion and osxversion code from other repos
6681 gstreamer-vaapi does not build any libraries, only plugins, so this is
6682 not used, but sync it just in case someone does add it in the future.
6684 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6686 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6687 libs: encoder: h265: trivial documentation fix
6689 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
6691 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6692 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6693 libs: encoder: h265: add low delay B frame support.
6694 Low delay B frame provide the function of transforming
6695 P frame into low delay B frame which frame type is B, but
6696 only reference predictive frames. This can be used when P
6697 frame unsupported. Especially for P and B both unsupported,
6698 in this case, I and low delay B frame can be encoded in a
6700 https://bugzilla.gnome.org/show_bug.cgi?id=796984
6702 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6704 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6705 libs: decoder: h264: Avoid using picture after it has been free
6706 In some cases, the found_picture ended up being evicted and freed, which
6707 would lead to a use after free when accessing picture->base.poc. In this
6708 fix, we take a ref on the picture before calling dpb_evict.
6709 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6711 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6713 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6714 h264decoder: Fail decoding slice with missing inter-view reference
6715 Similarly to previous patch, we have no error concealment. As a side
6716 effect, it's better to skip slices with missing references then passing
6717 NULL pointers to the accelerator. Passing NULL pointer would lead to
6718 major visual artifact, a behaviour that is likely undefined.
6719 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6721 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
6723 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6724 libs: decoder: h264: reset context when the number of view is increased
6725 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6726 That's why it resets context without this patch.
6727 But for some media it doesn't increase dpb size. Even in this case we
6728 should reset context to deal with MVC decoding.
6729 Otherwise, it leads to assert.
6730 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6732 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6734 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6735 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6736 * gst/vaapi/gstvaapidecode.c:
6737 vaapidecode: Skip unparsable units from adapter
6738 If the unit could not be parsed, just skip this nal and keep parsing
6739 what is left in the adapter. We need to flush the broken unit in the
6740 decoder specific parser because the generic code does not know about
6741 units boundary. This increases error resilliance.
6742 Before this, the broken unit would stay in the adapter and EOS would be
6743 returned. Which stopped the streaming. Just removing the EOS would have
6744 lead to the adapter size growing indefinitely.
6745 https://bugzilla.gnome.org/show_bug.cgi?id=796863
6747 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6749 * gst/vaapi/gstvaapidecode.c:
6750 vaapidecoder: Don't error out on decode errors
6751 This is problematic on live pipeline where loosing network can
6752 cause an important amount of errors.
6753 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6755 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6757 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6758 h265decoder: Don't scan empty buffer
6759 Same as what we did for H264 decoder, this is to avoid an assertion
6761 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6763 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6765 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6766 libs: h264: renable the vaapi category for logging
6767 h264 log messages were logged in default category because a regression
6768 in code. This patch renable the usage of vaapi logging category.
6769 This regression was introduced in commit 7c365bdd.
6771 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6773 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6774 h264decoder: Fail decoding slice if modification process failed
6775 This patch chains up failure to executing the modification process. The
6776 end result is that we now fail decoding the slice if this process fails.
6777 This avoid sending a corrupted state to the accelerator. In some special
6778 cases, this could lead to unrecoverable errors.
6779 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6781 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6783 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6784 h264decoder: Don't scan empty buffer
6785 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6786 try and scan in that case. This fixes assertion that would some times
6787 happen when the stream is corrupted.
6788 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6790 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
6792 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6793 libs: encoder: jpeg: set component id and Tqi
6794 This change is due a problem encoding JPEGs with Intel's
6795 media-driver: green/black image when playback jpeg
6796 This patch sets component identifier and quantization table
6797 destination selector in frame header to support packing headers
6798 by Intel's media-driver that does not accept packed header
6800 https://bugzilla.gnome.org/show_bug.cgi?id=796705
6802 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
6804 * gst/vaapi/gstvaapipluginutil.c:
6805 pluginutil: downgrade unsupported driver logging
6806 On systems with an Nvidia card, this error is output each time
6807 the registry is rebuilt, which happens pretty often when
6808 using gst-build as a development environment.
6809 https://bugzilla.gnome.org/show_bug.cgi?id=796663
6811 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
6813 * gst/vaapi/gstvaapivideobufferpool.c:
6814 Update for g_type_class_add_private() deprecation in recent GLib
6816 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6818 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6819 h264dec: Remove false assumption about parity order
6820 The decoder was trying to detect earlier that a field was lost base
6821 on guessing the parity order. This breaks in streams were the parity
6823 This patch reverts the field order prediction code added by commit
6825 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6827 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6829 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6830 h264dec: Properly set sentinel in ref frame list
6831 This ensure that we always have sentinels set in the reference
6832 pictures arrays. The code wasn't unsafe, this simply improve the
6833 tracing, so instead of printing 32 lines of zeros, va tracer
6834 prints proper empty lists.
6835 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6837 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6839 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6840 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6841 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6842 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6843 * gst-libs/gst/vaapi/gstvaapifilter.c:
6844 * gst-libs/gst/vaapi/gstvaapiobject.c:
6845 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6846 * gst/vaapi/gstvaapipluginbase.c:
6847 * gst/vaapi/gstvaapivideometa.c:
6848 * tests/test-decode.c:
6849 libs: display: remove gst_vaapi_display_ref()
6850 Replace it with gst_object_ref()
6851 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6853 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6855 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6856 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6857 * gst/vaapi/gstvaapi.c:
6858 * gst/vaapi/gstvaapidecode.c:
6859 * gst/vaapi/gstvaapiencode.c:
6860 * gst/vaapi/gstvaapipluginbase.c:
6861 * gst/vaapi/gstvaapipluginutil.c:
6863 * tests/simple-encoder.c:
6864 * tests/test-decode.c:
6865 * tests/test-display.c:
6866 * tests/test-fei-enc-in.c:
6867 * tests/test-filter.c:
6868 * tests/test-subpicture.c:
6869 * tests/test-surfaces.c:
6870 * tests/test-textures.c:
6871 * tests/test-windows.c:
6872 libs: display: remove gst_vaapi_display_unref()
6873 Use gst_object_unref() instead.
6874 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6876 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6878 * gst/vaapi/gstvaapivideobufferpool.c:
6879 vaapibufferpool: declare parameter display as object
6880 We have neglected to update this code since GstVaapiDisplay turned
6881 into a GstObject descendant.
6882 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6884 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
6886 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6887 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6888 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6889 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
6890 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6891 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6892 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6893 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
6894 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
6895 But still something breaking GObject code convention remains, which is
6896 calling gst_vaapi_display_new() in each decendants.
6897 This patch replaces it with gst_vaapi_display_config(), defined in private
6899 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6901 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6903 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6904 libs: display: redefine gst_vaapi_display_create()
6905 The function name was gst_vaapi_display_create_unlocked(), nonetheless
6906 it wasn't called unlocked. In order to keep the semantics this patch
6907 renames the gst_vaapi_display_create_unlocked() as
6908 gst_vaapi_display_create(), removing the previous function
6909 gst_vaapi_display_create().
6910 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6912 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6915 Revert "build: meson: libva gst-uninstall friendly"
6916 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
6918 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6920 * gst/vaapi/gstvaapipluginutil.c:
6921 plugins: fix compilation
6922 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
6924 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6927 build: meson: libva gst-uninstall friendly
6928 Make gstreamer-vaapi to use libva uninstalled.
6930 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6932 * gst/vaapi/gstvaapipluginutil.c:
6933 plugins: refactor gst_vaapi_create_display_from_gl_context()
6934 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
6935 This path refactors it, in order to make the code readable and
6937 https://bugzilla.gnome.org/show_bug.cgi?id=796564
6939 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6941 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6942 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6943 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6944 libs: display: resurrect parent private member
6945 This is, practically, a revert of commit dcf135e2.
6946 The parent logic is useful for the EGL display, which is a decorator
6947 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
6948 calling vaInitialize() and vaTerminate() twice.
6949 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6951 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6953 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6954 libs: display: egl: initialize params structure
6955 Statically initialise the internal params structure.
6956 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6958 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6960 * gst/vaapi/gstvaapipluginutil.c:
6961 plugins: handle EGL when creating VAAPI display from gl
6962 If GstGL reports a EGL platform force to create a EGL display using
6963 the native EGL display.
6964 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6966 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
6968 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6969 * gst/vaapi/gstvaapipluginutil.c:
6970 display: egl: create VaapiDisplayEGL with native EGL display
6971 gst_vaapi_display_egl_new_with_native_display() has been broken since
6973 Currently it's needed to call this API to create a display providing
6974 the EGL display, so it could avoid duplicated calls to the native
6975 display (eg. eglTerminate).
6976 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
6977 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6979 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
6981 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6982 libs: decoder: release VA buffers after vaEndPicture
6983 This change is due a problem decoding JPEGs with Intel's media-driver:
6984 no image was generated.
6985 This patch relases the VA buffers after vaEndPicture() is called,
6986 and not before (after vaRenderPicture()).
6987 https://bugzilla.gnome.org/show_bug.cgi?id=796505
6989 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
6991 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6992 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6993 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6994 meson: fix build when xrender or xrandr are not available
6995 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
6997 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
6999 * gst/vaapi/gstvaapipostproc.c:
7000 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7001 Otherwise a reference to a DMABuf input buffer is kept until the output
7003 https://bugzilla.gnome.org/show_bug.cgi?id=796399
7005 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7007 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7008 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7009 libs: display: remove unnecessary legacy code since gobjectification
7010 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7012 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7014 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7015 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7016 libs: display: remove unused code
7017 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7019 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7021 * gst/vaapi/gstvaapiencode_h264.c:
7022 vaapiencode: h264: log output caps
7024 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7026 * gst/vaapi/gstvaapiencode_h264.c:
7027 vaapiencode: h264: find profile in available and allowed caps
7028 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7029 find best profile in those available") changed the code to pick a profile
7030 that is actually supported by the hardware. Unfortunately it dropped the
7031 downstream constraints. This can cause negotiation failures under certain
7033 The fix is split in two cases:
7034 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7036 * The best allowed profile (pipeline's caps) is set as the encoding
7037 target profile (it will be adjusted later by the available profiles
7039 2\ the available VA-API caps does intersect with pipeline's allowed
7041 * The intersected caps are fixed, and its profile is set as the
7042 encoding target profile. In this case the is not the best profile,
7043 but the minimal one (if VA-API reports the profiles in order).
7044 Setting the minimal profile of the intersected caps is better for
7046 This patch fixes other tests related with caps negotiation, for
7047 example, it handles baseline profile, even when VA only supports
7048 constrained-baseline.
7049 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7050 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7052 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7054 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7055 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7056 The specification says,
7057 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7058 This patch changes the upper limit from 6 to 12.
7059 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7061 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7063 * gst/vaapi/gstvaapipluginutil.c:
7064 plugins: guard GstGL code
7066 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7068 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7069 libs: decoder: h264: use g_clear_pointer()
7071 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7073 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7074 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7075 libs: decoder: mpeg4, vc1: remove unused header
7077 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7079 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7080 libs: decoder: remove unused forward declaration
7082 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7085 fix configure.ac regression
7086 Fixes regression introduced by 77527d67abe
7087 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7089 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7091 * gst-libs/gst/Makefile.am:
7092 * gst-libs/gst/base/Makefile.am:
7093 * gst-libs/gst/base/gstbitwriter.c:
7094 * gst-libs/gst/base/gstbitwriter.h:
7095 * gst-libs/gst/base/meson.build:
7096 * gst-libs/gst/meson.build:
7097 * gst-libs/gst/vaapi/Makefile.am:
7098 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7099 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7100 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7101 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7102 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7103 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7104 * gst-libs/gst/vaapi/meson.build:
7105 libs: remove gstbitwriter
7106 Since it is deployed in gstreamer-core, there is no need to use
7108 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7110 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7112 * gst/vaapi/gstvaapidecode.c:
7113 vaapih264dec: add constrained and progressive profiles
7114 Those profiles have been added in the version 2012-01
7115 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7116 Both are supported by VAProfileH264High
7117 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7119 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7121 * gst/vaapi/gstvaapipluginbase.c:
7122 * gst/vaapi/gstvaapipluginutil.c:
7123 * gst/vaapi/gstvaapivideocontext.c:
7124 * gst/vaapi/gstvaapivideocontext.h:
7125 plugin: remove custom GstGL context handling
7126 Instead of using our own context handling for looking for GstGL
7127 parameters (display, context and other context), this patch changes
7128 the logic to use the utility function offered by GstGL.
7129 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7131 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7133 * gst/vaapi/gstvaapipluginbase.c:
7134 plugins: GstGL API must use the member variables
7135 This commit basically is a revert of commits 8092537 and fc1c415
7136 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7138 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7140 * gst/vaapi/gstvaapipluginbase.c:
7141 plugins: pass members as parameters of gst_gl_ensure_element_data()
7142 The parameters of gst_gl_ensure_element_data() have to be not
7143 local variable since they are going to be used to see if they're
7144 set in gst_element_set_context() inside the API.
7145 This is basically a revert of commit 3d56306c
7146 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7148 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7151 meson: fix USE_GLES_VERSION_MASK
7152 1. The macro in the code is USE_GLES_VERSION_MASK
7153 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7155 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7157 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7159 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7160 libs: egl: utils: mark context as wrapped when it is
7161 The returning egl context may be null, so we should check the
7163 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7165 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7167 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7168 libs: egl: utils: fix usage of GstGL macros
7169 Include gl.h for the required GstGL symbols.
7170 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7172 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7175 meson: use -Wl,-Bsymbolic-functions where supported
7176 Just like the autotools build.
7178 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7181 meson: use get_pkgconfig_variable()
7182 Use get_pkgconfig_variable() method, of dependency class, rather
7183 than using run_command().
7185 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7187 * gst-libs/gst/base/meson.build:
7188 * gst-libs/gst/vaapi/meson.build:
7190 meson: fix miscellaneous meson warnings
7191 WARNING: Passed invalid keyword argument "rqeuired".
7192 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7193 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7194 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7195 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7197 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7199 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7200 display: drm: Allow finding DRM paths out of the PCI subsystem
7201 This removes hard-coded checks on the parent subsystem of potential DRM
7202 devices. These checks were set to exlude devices that do not originate
7203 from the PCI bus, which is only a valid approach on x86 devices.
7204 Other devices may have a DRM device originating from the platform
7205 subsystem, so the checks that were previously restricted to PCI are
7206 extended to cover platform devices as well.
7207 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7208 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7210 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7212 * gst/vaapi/gstvaapivideocontext.c:
7213 videocontext: support wl-display in "gst.vaapi.app.Display"
7214 Through "gst.vaapi.app.Display" context, users can set their own
7215 VADisplay and native display of their backend.
7216 So far we support only X11 display, from now we also support Wayland
7219 - wl-display : pointer of struct wl_display .
7220 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7222 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7224 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7225 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7226 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7227 Implements new API function so that users could create GstVaapiDisplay
7228 with their own VADisplay within a native display as backend.
7229 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7231 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7233 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7234 wayland: don't poll if there are no pending frames
7235 Otherwise the following poll may not return for an arbitrary amount of
7236 time. This can happen if another wayland event queue has flushed and read
7238 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7240 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7242 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7243 libs: encoder: h265: 16 bit rounding of picture width and height
7244 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7246 In addition, codedbuf_size must be calculated according to this change.
7247 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7249 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7252 Automatic update of common submodule
7253 From 3fa2c9e to ed78bee
7255 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7257 * gst/vaapi/gstvaapiencode_h264.c:
7258 vaapiencode: h264: find best profile in those available
7259 Instead to look for the best profile in the allowed profiles by
7260 downstream, the encoder should look for the base profile in the
7261 available profile in VA-API.
7262 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7264 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7269 * docs/plugins/inspect/plugin-vaapi.xml:
7273 === release 1.14.0 ===
7275 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7280 * gstreamer-vaapi.doap:
7284 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7286 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7287 libs: decoder: h264: ensure num_ref_frames is greater than 0
7288 Even if it is the h264parse fault or bad video file, vaapih264dec
7289 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7290 as the driver might use it.
7291 Also see "info.ref_frames = dpb_size;" in
7292 gstvaapidecoder_h264.c::ensure_context
7293 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7295 === release 1.13.91 ===
7297 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7302 * gstreamer-vaapi.doap:
7306 === release 1.13.90 ===
7308 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7313 * gstreamer-vaapi.doap:
7317 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7319 * gst/vaapi/gstvaapipostproc.c:
7320 vaapipostproc: change how the metadata is copied
7321 Instead of copying the metada in prepare_output_buffer() vmethod,
7322 it is done in append_output_buffer_metadata() thus deinterlaced
7323 buffers could also have the proper metas.
7324 GstVideoCropMeta now it is copied internally and it is decided via
7325 transform_meta() vmethod.
7326 A new internal method, copy_metadata() was added to handle VPP
7327 transformation where non-GstVideoVaapiMeta metas were lost.
7329 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7331 * gst/vaapi/gstvaapipostproc.c:
7332 postproc: Copy meta data from input to output
7333 This will ensure that meta data without memory tags will be copied. This
7334 was noticed when testing ROI.
7335 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7337 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7339 * tests/elements/test-roi.c:
7340 tests: element: rewrite ROI test
7341 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7342 than injecting GstEvents. These meta are added as a pad probe in
7345 * Use of navigation messages to control de test
7346 * Use signal watch for processing messages
7347 * Change to H265 rather than H264 since current intel-vaapi-driver
7348 only supports ROI on kabylake.
7349 TODO: add a parameter to change the encoder/decoder to test.
7350 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7352 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7354 * gst-libs/gst/vaapi/gstvaapicontext.c:
7355 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7356 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7357 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7358 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7359 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7360 libs: encoder: reimplement ROI using meta
7361 Check input buffers for ROI metas and pass them to VA. Also added a
7362 new "default-roi-delta-qp" property in order to tell the encoder what
7363 delta QP should be applied to ROI by default.
7364 Enabled it for H264 and H265 encoders.
7365 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7367 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7369 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7370 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7371 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7372 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7373 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7374 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7376 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7378 * tests/simple-encoder.c:
7379 Revert "tests: simple-encoder: add an option to set ROI"
7380 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7381 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7383 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7385 * gst/vaapi/gstvaapiencode.c:
7386 * gst/vaapi/gstvaapiencode_h264.c:
7387 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7388 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7389 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7391 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7393 * gst/vaapi/gstvaapipluginbase.c:
7394 plugins: copy input buffer metas
7395 When importing buffers to a VA-base buffer, it is required to copy
7396 the metas in the original buffer, otherwise information will be
7397 lost, such as GstVideoRegionOfInterestMeta.
7398 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7400 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7402 * gst-libs/gst/vaapi/gstvaapisurface.c:
7403 libs: surface: cast to uintptr_t pointer
7404 According to Debian package auto-building, uintptr_t is not an
7405 unsigned long in i386 arch, raising an "incompatible pointer type"
7407 This patch adds a casting for compiler's satisfaction in i386.
7409 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7411 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7412 libs: encoder: add zero as valid value for periodic keyframe.
7413 Enabled zero as valid value for keyframe-period property.
7414 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7416 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7418 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7419 libs: encoder: code-style fix
7421 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7423 * gst/vaapi/gstvaapidecode.c:
7424 vaapidecode: generate system allocated buffers
7425 Generate system allocated output buffers when downstream doesn't
7426 support GstVideoMeta.
7427 The VA buffer content is copied to the new output buffer, and it
7428 replaces the VA buffer.
7429 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7431 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7433 * gst/vaapi/gstvaapipostproc.c:
7434 vaapipostproc: handle system allocated buffers when required
7435 When downstream can't handle GstVideoMeta it is required to send
7436 system allocated buffers.
7437 The system allocated buffers are produced in prepare_output_buffer()
7438 vmethod if downstream can't handl GstVideoMeta.
7439 At transform() vmethod if the buffer is a system allocated buffer,
7440 a VA buffer is instanciated and replaces the out buffer. Later
7441 the VA buffer is copied to the system allocate buffer and it
7442 replaces the output buffer.
7443 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7445 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7447 * gst/vaapi/gstvaapipluginbase.c:
7448 * gst/vaapi/gstvaapipluginbase.h:
7449 plugins: add gst_vaapi_copy_va_buffer()
7450 This helper function aims to copy buffers with VA memory to dumb
7451 buffers, when GstVideoMeta is not available dowstream.
7452 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7454 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7456 * gst/vaapi/gstvaapipluginbase.c:
7457 * gst/vaapi/gstvaapipluginbase.h:
7458 plugins: add COPY_OUTPUT_FRAME flag
7459 This patch add the member copy_output_frame and set it TRUE when
7460 when downstream didn't request GstVideoMeta API, the caps are raw
7461 and the internal allocator is the VA-API one.
7462 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7464 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7466 * gst/vaapi/gstvaapipluginbase.c:
7467 * gst/vaapi/gstvaapipluginbase.h:
7468 plugins: store the first downstream allocator if available
7469 The allocator will be required if we need to allocate a buffer
7470 to store the frame with the expected strides.
7471 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7473 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7475 * gst/vaapi/gstvaapivideobufferpool.c:
7476 * gst/vaapi/gstvaapivideobufferpool.h:
7477 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7478 This function will inform the element if it shall copy the generated
7479 buffer by the pool to a system allocated buffer before pushing it
7481 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7483 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7485 * gst/vaapi/gstvaapivideobufferpool.c:
7486 vaapibufferpool: don't change config when forcing video meta
7487 VA-API based buffer might need a video meta because of different
7488 strides. But when donwstream doesn't support video meta we need to
7489 force the usage of video meta.
7490 Before we changed the buffer pool configuration, but actually this
7491 is a hack and we cannot rely on that for downstream.
7492 This patch add a check fo raw video caps and allocator is VA-API,
7493 then the option is enabled without changing the pool configuration.
7494 In this case the element is responsible to copy the frame to a
7495 simple buffer with the expected strides.
7496 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7498 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7500 * gst/vaapi/gstvaapipostproc.c:
7501 vaapipostproc: set discont flag at vpp deinterlacing
7502 When deinterlacing with VPP the discont flag was not forwarded to
7503 the new created buffer. This patch sets the discont flag if input
7506 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7508 * gst/vaapi/gstvaapivideobufferpool.h:
7509 vaapibufferpool: remove wrong gcc annotation
7511 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7513 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7514 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7515 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7516 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7517 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7518 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7519 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7520 libs: encoder: h264,h265: extend max periodic keyframe.
7521 Increased max values of periodic key frame for h26x codecs.
7522 This allow more fine tunning of encoder that in certian scenario
7523 want higher periodic key frame.
7524 For example: it doesn't want a key frame each 10 seconds but
7526 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7528 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7534 === release 1.13.1 ===
7536 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7541 * gstreamer-vaapi.doap:
7545 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7547 * gst/vaapi/Makefile.am:
7548 vaapi: dist new header
7550 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7552 * gst/vaapi/gstvaapi.c:
7553 vaapi: register vaapisink as marginal on wayland
7554 vaapsink, when used with the Intel VA-API driver, tries to display
7555 surfaces with format NV12, which are handled correctly by
7556 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7557 pipelines on mutter.
7558 This shall be solved either by COGL or by making the driver to paint
7559 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7560 marginal when the Wayland environment is detected, no matter if it is
7562 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7564 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7566 * gst/vaapi/gstvaapipluginutil.c:
7567 plugins: update mesa's vendor string in whitelist
7568 Mesa has updated its VA-API Gallium driver vendor string:
7569 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7570 This patch tries to cover both, the old and the new one.
7571 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7573 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7576 meson: make version numbers ints and fix int/string comparison
7577 WARNING: Trying to compare values of different types (str, int).
7578 The result of this is undefined and will become a hard error
7579 in a future Meson release.
7581 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7583 * gst/vaapi/gstvaapipluginbase.c:
7584 plugins: handle vaapi allocator in allocation query
7585 In propose_allocation() if the numer of allocation params is zero, the
7586 system's allocator is added first, and lastly the native VA-API
7588 In decide_allocation(), the allocations params in query are travered,
7589 looking for a native VA-API allocator. If it is found, it is reused as
7590 src pad allocator. Otherwise, a new allocator is instantiated and
7591 appended in the query.
7592 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7594 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7596 * gst/vaapi/gstvaapivideomemory.h:
7597 vaapivideomemory: remove unused macro
7598 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7599 was never used, since the native VA-API allocator name has been
7600 GST_VAAPI_VIDEO_MEMORY_NAME.
7601 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7602 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7604 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
7606 * gst/vaapi/gstvaapisink.c:
7607 vaapisink: don't mask button events for foreign windows
7608 Don't subscribe to button press events when using a foreing window,
7609 because the user created window would trap those events, preveting the
7611 https://bugzilla.gnome.org/show_bug.cgi?id=791615
7613 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
7616 autotools: use -fno-strict-aliasing where supported
7617 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7619 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
7622 meson: use -fno-strict-aliasing where supported
7623 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7625 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
7627 * gst/vaapi/gstvaapi.c:
7628 vaapi: add NULL-sentinel to kernel_names
7629 The array needs to be NULL-terminated according to the
7630 gst_plugin_add_dependency() documentation.
7632 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7634 * gst/vaapi/gstvaapipostprocutil.c:
7635 vaapipostproc: remove spurious code
7636 This assignation is dead code, since gst_video_info_from_caps() set
7638 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7640 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7642 * gst/vaapi/gstvaapipostprocutil.c:
7643 vaapipostproc: if no p-a-r in out caps define a range
7644 Instead of copying the pixel-aspect-ratio from the sink caps, define
7645 an open range for the src caps pixel-aspect-ratio. Later it will be
7647 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7649 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7651 * gst/vaapi/gstvaapisink.c:
7652 vaapisink: check for display's color-balance properties
7653 Check for display's color-balance properties, available by the VA-API
7654 driver, before setting them.
7655 Also logs an info message of those unavailable properties.
7656 https://bugzilla.gnome.org/show_bug.cgi?id=792638
7658 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7660 * gst/vaapi/gstvaapipluginbase.c:
7661 plugins: re-using buffer pool breaks renegotiation
7662 at propose_allocation() we should not reuse the proposed buffer,
7663 because it could break renegotiation.
7664 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7666 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7668 * gst/vaapi/gstvaapipluginbase.c:
7669 plugins: use g_clear_object() to unref sinkpad_buffer_pool
7670 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7672 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7674 * gst-libs/gst/vaapi/meson.build:
7675 build: meson: add missing GstGL dependency
7677 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7679 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7680 libs: utils: egl: add missing guards for GstGL
7682 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7684 * gst/vaapi/gstvaapipluginbase.c:
7685 plugins: remove dmabuf-import hack
7686 Remove the hack to check if an upstream element has enabled the
7687 property io-mode enabled as dmabuf-import.
7688 https://bugzilla.gnome.org/show_bug.cgi?id=792034
7690 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7692 * gst-libs/gst/vaapi/Makefile.am:
7693 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7694 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7695 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7696 libs: egl: utils: use eglGetPlatformDisplay()
7697 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
7698 eglGetDisplay() is rather fragile, and it is recommended to use
7699 eglGetPlatformDisplay() when possible.
7700 In order to do that, this patch uses the helper in GstGL. If
7701 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7703 https://bugzilla.gnome.org/show_bug.cgi?id=790493
7705 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
7707 * gst/vaapi/gstvaapipostproc.c:
7708 vaapipostproc: lock ensure_filter with postproc_lock
7709 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7710 and allowed_sinkpad_caps. This can race with copying these caps in
7711 gst_vaapipostproc_transform_caps and lead to segfaults.
7712 The gst_vaapipostproc_transform_caps function already locks
7713 postproc_lock before copying the caps. Make sure that calls to
7714 gst_vaapipostproc_ensure_filter also acquire this lock.
7715 https://bugzilla.gnome.org/show_bug.cgi?id=791404
7717 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7719 * tests/test-filter.c:
7720 tests: test-filter: fix dereference before null check
7721 Null-checking op_info suggests that it may be null, but it has already
7722 been dereferenced on all paths leading to the check.
7723 There may be a null pointer dereference, or else the comparison
7724 against null is unnecessary.
7726 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7728 * tests/y4mreader.c:
7729 tests: y4mreader: fix string state checkup
7730 str cannot be null in that moment, but it may be the end of string.
7732 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7734 * tests/y4mreader.c:
7735 tests: y4mreader: use int for fgetc
7736 Assigning the return value of fgetc to char truncates its value.
7737 It will not be possible to distinguish between EOF and a valid
7740 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7742 * tests/y4mreader.c:
7743 tests: y4mreader: fix incompatible cast
7744 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7745 they are dereferenced as a wider long (64 bits, signed). This may lead
7746 to memory corruption.
7748 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7751 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7753 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
7756 Automatic update of common submodule
7757 From e8c7a71 to 3fa2c9e
7759 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7761 * gst/vaapi/gstvaapivideocontext.c:
7762 videoconvert: gst_element_post_message() is transfer full on msg
7763 For this reson we need not to unref the message, even if it failed.
7765 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7767 * gst/vaapi/gstvaapivideocontext.c:
7768 Revert "vaapivideocontext: possible memleak when no bus attached"
7769 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7771 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7773 * tests/elements/test-vaapicontext.c:
7774 test: vaapicontext: process have-context bus message
7776 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7778 * tests/elements/test-vaapicontext.c:
7779 test: vaapicontext: app context is not persistent
7781 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7783 * gst/vaapi/gstvaapipluginbase.c:
7784 * gst/vaapi/gstvaapivideocontext.c:
7785 * gst/vaapi/gstvaapivideocontext.h:
7786 vaapivideocontext: only vaapisink process app context
7787 gst.vaapi.app.Display context is made for applications that will
7788 provide the VA display and the native display to used by the
7789 pipeline, when are using vaapisink as overlay. There are no use
7790 case for encoders, decoders, neither for the postprocessor.
7791 In the case of the vaapisink, it shall query for gst.vaapi.Display
7792 upstream first, and then, if there is no reply,
7793 gst.vaapi.app.Display context will be posted in the bus for the
7794 application. If the application replies, a GstVaapiDisplay object
7795 is instantiated given the context info, otherwise a
7796 GstVaapiDisplay is created with the normal algorithm to guess the
7797 graphics platform. Either way, the instantiated GstVaapiDisplay
7798 is propagated among the pipeline and the have-message bus message.
7799 Also only vaapisink will process the gst.vaapi.app.Display, if
7800 and only if, it doesn't have a display already set. This is
7801 caused because if vaapisink is in a bin (playsink, for example)
7802 the need-context is posted twice, leading to an error state.
7803 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7805 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7807 * gst/vaapi/gstvaapivideocontext.c:
7808 vaapivideocontext: log the name of GstVaapiDisplay
7809 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7811 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7813 * gst/vaapi/gstvaapivideocontext.c:
7814 vaapivideocontext: possible memleak when no bus attached
7815 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7817 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7819 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7820 libs: window: wayland: remove unused header include
7821 Remove wayland-client.h include since there is no exposed symbols from
7824 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7826 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7827 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7828 libs: encoder: h264,h265: guard rate control's macroblock
7829 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7831 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
7834 Automatic update of common submodule
7835 From 3f4aa96 to e8c7a71
7837 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7839 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7840 libs: encoder: h264: Add Hierarchical-B encode
7841 Frames are encoded as different layers. Frame in a particular
7842 layer will use pictures in lower or same layer as references.
7843 Which means decoder can drop the frames in upper layer but still
7844 decode lower layer frames.
7845 B-frames, except the one in top most layer, are reference frames.
7846 All the base layer frames are I or P.
7847 eg: with 3 temporal layers
7851 T1, T2, T3: Temporal Layers
7854 T1: I0->P4 , P4->P8 etc..
7856 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7857 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7858 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7860 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7862 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7863 libs: encoder: h264: Add Hierarchical-P encode
7864 Frames are encoded as different layers. A frame in a particular
7865 layer will use pictures in lower or same layer as references.
7866 Which means decoder can drop the frames in upper layer but still
7867 decode lower layer frames.
7868 eg: with 3 temporal layers
7872 T1, T2, T3: Temporal Layers
7874 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
7875 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7876 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7878 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7880 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7881 libs: encoder: h264: Fix frame_num generation
7882 The frame_num generation was not correctly implemented.
7883 According to h264 spec, frame_num should get incremented
7884 for each frame if previous frame is a referece frame.
7885 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
7886 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7887 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7889 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7891 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7892 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7893 libs: encoder: h264: Add new property "prediction-type"
7894 Adds new property "prediction-type" to select different reference
7895 picture selection modes like hierarchical-p, hierarchical-b etc.
7896 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7897 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7899 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
7901 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7902 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7903 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
7904 Adds some basic building blocks to ease the implementation
7905 of hierarchical prediction modes.
7906 -- add an utility method to find temporal level of each frame
7907 -- define max_ref_frame count based on temporal level count
7908 -- add temporal_level_div[] for finding temporal level each frame
7910 -- find ip_period based on temporal level count
7911 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7912 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7914 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
7916 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7917 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7918 libs: encoder: h264: Add property "temporal-levels"
7919 Adds new property "temporal-levels" to select the number of
7920 temporal levels to be included in the encoded stream.
7921 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7922 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7924 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
7926 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7927 libs: encoder: objects: Add a reference flag
7928 We can have p-frame as non-ref and also b-frame as ref
7929 which are not supported yet. Reference flag
7930 is the first machinery needed for more advanced
7931 reference picture selection modes.
7932 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7933 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7935 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
7937 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
7938 libs: surface: egl: add comment
7939 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
7940 where the creation of surfaces from GEM fd may fail.
7941 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7943 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7945 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7946 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
7947 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7948 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
7949 Adds a new function that changes the internal EGL display to the
7950 current one (eglGetCurrentDisplay()) and sets the current context
7951 too (eglGetCurrentContext()).
7952 This new function is called by gst_vaapi_texture_egl_create() updating
7953 the GstVaapiDisplayEGL with the current EGL display.
7954 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7956 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7958 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7959 libs: texture: egl: update EGL display and context
7960 It is required to use the context of the calling thread when wrapping
7961 a foreign texture. According the documentation of
7962 GstVideoGLTextureUploadMeta:
7963 "The caller of gst_video_gl_texture_upload_meta_upload() must
7964 have OpenGL set up and call this from a thread where it is valid
7965 to upload something to an OpenGL texture."
7966 This patch updates the EGL display and context in GstVaapiDisplay
7967 instance to the one used by te renderer that uploads the texture.
7968 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
7969 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7971 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7973 * gst/vaapi/gstvaapipluginbase.c:
7974 plugins: centralize assignation of GL objects
7975 Add plugin_set_gst_gl() where the GstGL objects are assigned.
7976 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7978 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7980 * gst/vaapi/gstvaapipluginbase.c:
7981 plugins: set GL objects if ensured
7982 Only set the GL display and GL other context if they are ensured.
7983 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7985 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7987 * gst/vaapi/gstvaapipluginbase.c:
7988 plugins: set GL objects if context is handled
7989 Only set the GL display and GL other context if they are extracted
7990 correctly from the gstreamer's context.
7991 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7993 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7995 * gst/vaapi/gstvaapipluginbase.c:
7996 plugins: fix memory leak when GL context is created
7997 When the GL display and context are created inside an VAAPI element
7998 the created GL context is leaked.
7999 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8001 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8003 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8004 libs: display: egl: free leaked memory
8005 The EGL VAAPI display forgot to release the egl display, context and
8006 proxied VAAPI display.
8007 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8009 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8011 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8012 libs: texture: egl: code style
8013 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8015 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8017 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8018 libs: surface: egl: error message if no extension
8019 Instead of silently fail to export the image if there is not available
8020 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8022 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8024 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8026 * gst/vaapi/gstvaapipluginbase.c:
8027 plugins: direct rendering on memory:VASurface
8028 As buffers negotiated with memory:VASurface caps feature can also be
8029 mapped, they can also be configured to use VA derived images, in other
8030 words "direct rendering".
8031 Also, because of the changes in dmabuf allocator as default allocator,
8032 the code for configuring the direct rendering was not clear.
8033 This patch cleans up the code and enables direct rendering when the
8034 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8035 even then the memory:VASurface cap feature is negotiated.
8036 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8038 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8040 * gst/vaapi/gstvaapipluginbase.c:
8041 * gst/vaapi/gstvaapipluginutil.c:
8042 plugins: only dmabuf on srcpad if downstream
8043 Set if source pad can handle dmabuf only if the GstGL context comes
8045 It is possible to know that at two moments:
8046 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8047 downstream pool reports back gst.gl.GstGLContext.
8048 2\ When GstGLContext is found as GstContext from dowstream.
8049 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8051 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8053 * gst/vaapi/gstvaapivideocontext.c:
8054 vaapivideocontext: add inline documentation
8055 Document function gst_vaapi_find_gl_local_context().
8056 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8058 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8060 * gst/vaapi/gstvaapipluginutil.c:
8061 * gst/vaapi/gstvaapivideocontext.c:
8062 * gst/vaapi/gstvaapivideocontext.h:
8063 vaapivideocontext: return the direction of gl context
8064 In function gst_vaapi_find_gl_context() add a direction parameter to
8065 return back the direction where the GstGL context was found.
8066 This is going to be useful when checking if downstream can import
8067 dmabuf-based buffers.
8068 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8070 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8072 * gst/vaapi/gstvaapipluginbase.c:
8073 * gst/vaapi/gstvaapipluginbase.h:
8074 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8075 This patch refactors the code by adding the function
8076 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8077 GstGLContext can handle dmabuf-based buffers.
8078 The function is exposed publicly since it is intended to be used later
8079 at GstVaapiDisplay instantiation.
8080 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8082 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8084 * gst/vaapi/gstvaapiencode.c:
8085 vaapiencode: allow to set property on runtime
8086 Tis patch, allows some properties that we want to be set on
8087 runtime. (eg. bitrate)
8088 Note that all properties are under control by num_codedbuf_queued.
8089 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8091 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8093 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8094 libs: encoder: allow to set bitrate on runtime
8095 In case of streaming, controlling bitrate dynamically for encoder might be
8096 important to manage quality of the streaming.
8097 This patch is to support such a scenario.
8098 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8100 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8102 * gst/vaapi/gstvaapi.c:
8103 * gst/vaapi/gstvaapi.h:
8104 * gst/vaapi/gstvaapidecodebin.c:
8105 vaapidecodebin: Register element if no VPP support is available too
8106 VPP support is only needed for advanced deinterlacing, which is not
8107 enabled by default either. Error out if it is selected but VPP is not
8108 supported, and otherwise just work without VPP support.
8109 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8111 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8113 * gst/vaapi/gstvaapipluginutil.c:
8114 Avoid infinite loop when vaapi_create_display fails
8115 Which might be the case when using, for example, xvfb.
8117 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8119 * gst-libs/gst/vaapi/gstvaapiutils.c:
8120 libs: utils: log warn if display fail
8121 gstreamer-vaapi initializes the display by trial-and-error, thus
8122 logging an error message if the display initialisation fails the user
8123 may be weary of the error message in the screen, if using VA-API 1.0
8124 This commit set the VA error log handler to GStreamer warning level
8125 while calling vaInitialize() and set it to error after that.
8126 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8128 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8130 * gst/vaapi/gstvaapipluginutil.c:
8131 plugins: try to create test display in order
8132 When creating the test display for querying capabilites, it try in
8133 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8134 since they are either composited with X11 or Wayland.
8135 The reason for this is to reduce the posibility of failure that could
8136 blacklist the plugin.
8137 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8139 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8141 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8142 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8143 libs: display: delay getting screen resolution
8144 Instead of extracting the screen resolution at GstVaapiDisplay
8145 creation, this patch delay it until the screen size is requested for
8147 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8149 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8151 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8152 libs: display: egl: avoid two vaDisplay instantiates
8153 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8154 or Wayland. Nonetheless it created another vaDisplay for it, instead
8155 of using the wrapped one.
8156 This patch enables the reuse of the wrapped vaDisplay avoiding
8158 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8160 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8162 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8163 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8164 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8165 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8166 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8167 libs: display: remove display_type from display info
8168 Since it's no required to pass the display type in the display info,
8169 the structure member is removed.
8170 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8172 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8174 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8175 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8176 libs: display: remove display_type member
8177 It is not used any more since GstVaapiDisplay was ported as a
8178 GstObject-based. This information is part of the class information.
8179 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8181 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8183 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8184 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8185 libs: display: remove parent member
8186 Parent was a crumb left from display cache.
8187 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8189 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8191 * gst/vaapi/gstvaapi.c:
8192 vaapi: Also register vaapipostproc without VPP support
8193 It can still do simple deinterlacing then.
8195 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8197 * gst/vaapi/gstvaapipostproc.c:
8198 vaapipostproc: Allow running without VPP support
8199 We returned FALSE from ::start() if VPP support is not available, but it
8200 is only really needed for complex filters and during transform we check
8201 for that. For simple deinterlacing it is not needed.
8203 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8205 * gst/vaapi/gstvaapipostproc.c:
8206 vaapipostproc: use scoped variable for return value
8207 Instead of reusing a parameter variable for the return value of
8208 gst_vaapipostproc_transform_caps(), this patch uses the function
8209 scoped pointer. Thus, the code is cleaner.
8210 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8212 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8214 * gst/vaapi/gstvaapipostproc.c:
8215 vaapipostproc: removed unused parameter
8216 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8217 helper function since the it is not used.
8218 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8220 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8222 * gst/vaapi/gstvaapipostproc.c:
8223 vaapipostproc: use scoped variable for return value
8224 Instead of reusing a parameter variable for the return value of
8225 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8226 pointer. Thus, the code is cleaner.
8227 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8229 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8231 * gst/vaapi/gstvaapipluginutil.h:
8232 plugins: memory:DMABuf only handles planar formats
8233 When glimagesink negotiates the caps feature memory:DMABuf the
8234 exported dmabufs buffers with NV12 format are not well rendered, thus
8235 setting only planar.
8236 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8238 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8240 * gst/vaapi/gstvaapiencode.c:
8241 vaapiencode: flush pending frames before set format
8242 Flush pending frames, if any, in the internal encorder, before setting
8243 the new negotiated format.
8244 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8246 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8248 * gst/vaapi/gstvaapidecode.c:
8249 vaapidecode: drain pending frames before set format
8250 Drain pending frames, if any, in the internal decoder before setting
8251 the new negotiated format.
8252 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8254 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8256 * tests/test-display.c:
8257 tests: display: use GObject getter
8258 Instead of using the gst_vaapi_display_get_property(), this patch
8259 replaces it with g_object_get_property() to dump the available VA
8261 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8263 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8265 * gst/vaapi/gstvaapisink.c:
8266 vaapisink: use GObject setter and getter
8267 Instead of using gst_vaapi_display_set_property() or
8268 gst_vaapi_display_get_property(), this patch set replace it usage
8269 with g_object_set() or g_object_get().
8270 Also the internal helper cb_set_value() is removed since it is not
8272 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8274 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8276 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8277 libs: display: initialize value if they are not yet
8278 This is a difference between the GObject API and the GstVaapi one: the
8279 GValue passed to get a property value, in GObject has to be
8280 initialized with g_value_init(), but in GstVaapi is has not.
8281 In order to overcome this mismatch, this patch call g_value_init()
8282 internally only in the passed one is not already initialized.
8283 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8285 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8287 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8288 libs: display: optimize properties setters and getters
8289 Shuffled some code to avoid to find the properties descriptor in the
8290 array twice, adding the internal functions _set_property() and
8292 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8294 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8296 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8297 libs: display: install properties in class
8298 Install the properties in the class as a normal GObject. Implement
8299 set_property() and get_property() vmethods.
8300 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8302 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8304 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8305 libs: display: remove gst_vaapi_display_properties_init()
8306 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8307 gst_vaapi_display_class_init()
8308 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8310 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8312 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8313 libs: display: remove libgstvaapi_init_once()
8314 It is not required since it can be unrolled in
8315 gst_vaapi_display_class_init()
8316 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8318 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8320 * tests/test-display.c:
8321 tests: test-display: remove display cache tests
8322 Since commit ec3e10f6, display cache was removed. This patch removes
8323 this leftovers in the display test.
8325 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8327 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8328 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8329 libs: decoder: h264/h265: decode codec data only if opened
8330 Fixes regression introduced by commit 2eb2b26a.
8331 There is a use case when the decoder set the src caps and immediatly
8332 tries to process the media codec_data, this happens before decoder is
8333 even opened, thus priv->parser is not instantiated yet.
8334 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8336 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8338 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8339 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8340 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8341 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8342 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8343 libs: encoder: change mbbrc from uint to enum
8344 Instead of handling the macroblock bitrate control as a integer, this
8345 patch changes it as a enum, which is more self documented in the
8347 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8349 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8351 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8352 Fix a typo in the prop string for compliance-mode
8354 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8356 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8357 libs: encoder: don't unref properties
8358 This patch fixes a regression introduced in commit 148f867c, since the
8359 props variable is set to object's member variable
8360 encoder->properties. And it is set in the instance initialization,
8361 thus it will not be leaked.
8362 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8364 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8366 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8367 * gst/vaapi/gstvaapiencode.c:
8368 vaapiencode/libs: encoder: fix leaks of properties
8369 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8371 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8373 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8374 libs: decoder: at update_caps() decode codec_data
8375 When updating the caps in decoder, if the caps has codec_data (avC
8376 format), it has to be parsed to update the state of the decoder.
8377 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8379 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8381 * gst-libs/gst/vaapi/gstvaapicontext.c:
8382 libs: context: fix wrong counter of the array of attributes
8383 The counter value passed to vaCreateConfig is always +1.
8384 This is a regression caused by commit e42ec3ad.
8385 The present patch fixes wrong counting of the array of attributes.
8386 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8388 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8390 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8391 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8392 libs: encoder: h265: support I/P/B QP setting seperatedly
8393 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8395 and set slice_qp_delta for each frame according to the value provided.
8396 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8398 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8400 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8401 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8402 libs: encoder: h264: support I/P/B QP setting seperatedly
8403 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8405 and set slice_qp_delta for each frame according to the value provided.
8406 In addition, remove the limitation of (<= 4) when setting
8408 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8410 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8412 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8413 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8414 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8415 Creates new variable for QP for I frame and keep it at configuration and
8416 use this for pic_init_qp and slice_qp_delta setting.
8417 Since changing min qp doesn't make sense, keep min qp as is.
8418 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8420 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8422 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8423 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8424 libs: encoder: h265: Add mbbrc property
8425 This property supports Macroblock level Bitrate Control as the
8426 following (same as h264 encoder):
8430 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8432 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8434 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8435 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8436 libs: encoder: h264: Add mbbrc property
8437 This property supports Macroblock level Bitrate Control as the
8442 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8444 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8446 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8447 libs: encoder: h265: add multi reference support
8448 This is doing the same as h264 encoder as the following:
8449 Using num_ref_frames provided and the result of the Query
8450 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8451 and perform encoding with multi reference frames as the following:
8452 1\ The num_ref_frames is being considered as the number of
8453 reference picture list0
8454 2\ Encoder adds 1 reference frame more to the reference picture list1
8455 internally if b-frame encoding.
8456 3\ If num_ref_frames is bigger than the number of refrence frames
8457 supported in the driver, it will be lowered.
8458 Also this patch includes:
8459 - Set num_negative_pics and num_positive_pics according to the number of
8461 - Set delta_poc according to the number of refs.
8462 - Increase max_dec_pic_buffering according to the number of refs
8463 - Change max_num_reorder_pics according to num of bframes
8464 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8466 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8468 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8469 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8470 libs: encoder: h265: add refs property
8471 Users can provide the number of reference frame by this property,
8472 which is exaclty same as h264.
8473 The value of the property will be considered as the number of
8474 reference picture list0 and will add 1 reference frame more to the
8475 reference picture list1 internally if b-frame encoding.
8476 If the value provided is bigger than the number of refrence frames
8477 supported in the driver, it will be lowered.
8478 The maximum value is aligned to the value of the driver supported now.
8479 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8481 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8483 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8484 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8485 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8486 Follows the specification as below:
8487 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8488 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8489 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8490 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8492 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8493 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8495 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8497 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8499 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8500 libs: encoder: h265: keep idr_period equal to keyframe period
8501 Remove FIXME code, which makes previous assignation spurious.
8502 This also means to make idr_period equal to keyframe period,
8503 which is same as h264 encoder.
8504 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8506 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8508 * gst/vaapi/gstvaapipluginbase.c:
8509 Request minimum buffer even if need_pool is FALSE
8510 When tee is used, it will not request a pool, but still it wants to
8511 know how many buffers are required.
8512 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8514 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8516 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8517 libs: encoder: h264_fei: VA-API 1.0 compat
8518 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8520 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8521 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8523 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8525 * gst/vaapi/gstvaapisink.c:
8526 vaapisink: Fix rendering in drm display
8527 Make sure vaapisink create a va surface backed buffer pool and all
8528 required attributes get assigned correctly for drm display type.
8529 This is needed to make the below pipeline working:
8530 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8531 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8532 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8534 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8536 * tests/Makefile.am:
8537 * tests/test-fei-enc-in.c:
8538 * tests/test-fei-enc-out.c:
8539 FEI: Add test applications to showcase fei use case
8540 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8542 ./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
8543 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8545 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8546 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8547 from saved files is still not working
8549 Wang, Yi <yi.a.wang@intel.com>
8550 Leilei <leilei.shang@intel.com>
8551 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8552 xiaominc <xiaomin.chen@intel.com>
8553 Li, Jing B <jing.b.li@intel.com>
8554 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8555 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8557 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8559 * gst/vaapi/Makefile.am:
8560 * gst/vaapi/gstvaapi.c:
8561 * gst/vaapi/gstvaapiencode_h264_fei.c:
8562 * gst/vaapi/gstvaapiencode_h264_fei.h:
8563 FEI: plugin: Add vaapih264feienc element
8564 A new FEI based encoder element for h264 is added: vaapih264feienc
8565 FEI is a an extension to VA-API which is providing low level
8566 advanced control over different stages of encoding.
8567 Extending vaapih264enc with fei support is possible, but it will
8568 make the code too much complicated and will be difficult
8569 to debug. So adding the new encoder element, but keeping
8570 the rank as 0 , vaapih264enc will stay as the primary
8571 encoder for normal use cases.
8572 The vaaih264feienc is mainly useful for customers who want to play
8573 with MotionVectors and Macroblock Predictions. Also user can
8574 do one stage of encoding(eg: only the Motion Vector Calculation)
8575 in software and offload trasformation/entroy-coding etc to
8576 Hardware (which is what PAK module is doing) using FEI element.
8577 vaapih264feienc can work in different modes using fei-mode properoty
8578 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8579 Important Note: ENC only mode won't produce any encoded data which is expected.
8580 But ENC alwys requires the output of PAK in order to do the inter-prediction
8581 over reconstructed frames.
8582 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8583 upstream element providing those buffers, PAK only won't work as expected.
8584 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8585 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8586 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8587 separately in vaapih264feienc.
8589 Wang, Yi <yi.a.wang@intel.com>
8590 Leilei <leilei.shang@intel.com>
8591 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8592 xiaominc <xiaomin.chen@intel.com>
8593 Li, Jing B <jing.b.li@intel.com>
8594 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8595 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8596 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8598 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
8600 * gst/vaapi/gstvaapiencode.c:
8601 * gst/vaapi/gstvaapiencode.h:
8602 FEI: plugin: Add virtual methods to base encode
8603 Two new virtual methods are added to gstvaapiencode.
8604 load_control_data(): load the FEI input buffers set by the upstream elements
8605 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8606 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8607 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8608 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8610 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
8612 * gst/vaapi/Makefile.am:
8613 * gst/vaapi/gstvaapifeivideometa.c:
8614 * gst/vaapi/gstvaapifeivideometa.h:
8615 FEI: plugin: Add fei specific video meta
8616 GstVaapiFeiVideoMeta holds the below fei codec objects:
8617 GstVaapiEncFeiMbCode
8619 GstVaapiEncFeiMvPredictor
8620 GstVaapiEncFeiMbControl
8622 GstVaapiEncFeiDistortion
8623 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8624 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8625 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8627 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8629 * gst-libs/gst/vaapi/Makefile.am:
8630 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8631 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8632 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8633 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8634 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8635 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8636 FEI: libs: Add FEI encoder
8637 Adding FEI encoder to core lib.
8638 The code is splitted into three session:
8639 1: gstvaapiencoder_h264_fei.{h,c}
8640 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8641 All the modes ENC, PAK and ENC_PAK are running based
8642 the code in these files.
8643 2: gstvaapifeienc_h264.{h,c}
8644 Abstract implementation intended for ENC (only VME) operation.
8645 3: gstvaapifeipak_h264.{h,c}
8646 Abstrct implementation intended for PAK (only the PAK module)
8647 Right now ENC_PAK, ENC and PAK are running based on code
8648 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8649 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8650 needed if user request for ENC+PAK mode operation.
8651 ENC+PAK: Here we need to invoke two sequence of
8652 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8653 first for the ENC only and the second for PAK only.
8654 Each mode associated with separate context ,but same pool of surfaces are
8655 shared between the modes.
8656 This is more useful once we have custom BRC algorithms.
8658 Wang, Yi <yi.a.wang@intel.com>
8659 Leilei <leilei.shang@intel.com>
8660 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8661 xiaominc <xiaomin.chen@intel.com>
8662 Li, Jing B <jing.b.li@intel.com>
8663 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8664 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8666 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8668 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8669 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8670 FEI: libs: Add fei codec objects to GstVaapiEncPicture
8671 All the codec objects(vaapi buffers) supposed to be
8672 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8673 for each frame, follow the same design for FEI too.
8674 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8675 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8677 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8679 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8680 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8681 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8682 FEI: libs: Add fei codec objects in codedbufferproxy
8683 MbCode, MV and Distortion buffers (fei codec objects)
8684 can be treated as output of different fei modes based user request.
8685 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8686 can be dumped as output in ENC_PAK mode for analysis purpose.
8687 So treating them as a part of CodedBufferProxy too.
8688 Here we avoided Qp, MbControl and MvPredictor codec objects since
8689 there is no practical use case of treating them as "output buffers".
8691 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8692 xiaominc <xiaomin.chen@intel.com>
8693 Leilei <leilei.shang@intel.com>
8694 Li, Jing B <jing.b.li@intel.com>
8695 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8696 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8698 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8700 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8701 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8702 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8703 FEI: libs: Add fei codec objects to surface proxy
8704 Add fei codec objects to surface proxy since handling the
8705 fei buffers(codec objects here) external to gstvaapisurfaceproxy
8706 will make the code complicated. Especially considering the behavior
8707 of encoder where the input frame order from upstream and output
8708 frame order to the downstream are not sequential.
8710 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8711 xiaominc <xiaomin.chen@intel.com>
8712 Leilei <leilei.shang@intel.com>
8713 Li, Jing B <jing.b.li@intel.com>
8714 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8715 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8717 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8719 * gst-libs/gst/vaapi/Makefile.am:
8720 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8721 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8722 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8723 FEI: Add codec objects for fei usecase
8724 There are 6 new va buffer types, each defined as a specific codec object.
8725 Borrowed the code from gstvaapicodecobject , but made a clear separation
8726 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8727 feicodecobjects can be shared between elements and also can be accessed
8728 from different thread.
8729 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8730 object is not shared between elements.So we utilize the already
8731 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8732 in gstvaapfei_objects_priv.h in order to have a better
8735 -- Probably we need _locked_map() and _unlocked_map()
8736 -- Context can be associated with PreEnc(not just Enoder)
8737 once we have the proper support inplace, but for now we don't have
8738 PreEnc support, so should be safe enough to use GstVaapiEncoder.
8739 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8740 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8742 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8744 * gst-libs/gst/vaapi/Makefile.am:
8745 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8746 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8747 FEI: libs: add H264 fei specific utility functions
8748 Added enum/flag type definitions for a number of FEI
8749 input and output parameters.
8750 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8751 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8752 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8753 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8754 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8756 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8758 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8759 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8760 FEI: libs: Add virtual method for secondary context creation.
8761 Add a new vitrual method ensure_secondary_context to the
8762 base encoder which is only required for the FEI entrypoint, that too
8763 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8764 supported directly by libva or driver, but this can be enabled
8765 from the middleware.
8766 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8767 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8768 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8769 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8770 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8771 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8773 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8775 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8776 FEI: libs: make sure the default context creation works as expected.
8777 Current code always guess the entrypoint during init phase in case
8778 if there is no entrypoint already configured in GstVaapiContextInfo.
8779 Make sure FEI Entrypoint is not messing up with this logic.
8780 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8781 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8783 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8785 * gst-libs/gst/vaapi/gstvaapicontext.c:
8786 * gst-libs/gst/vaapi/gstvaapicontext.h:
8787 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8788 FEI: libs: Add FEI functional mode configuration
8789 FEI Entrypoint can work in either one of the 3 different modes:
8790 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8791 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8792 functioal mode configuration.
8793 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8794 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8796 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8798 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8799 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8800 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8801 FEI: libs: Add FEI Entrypoint mapping
8802 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8803 for VAEntrypointFEI.
8804 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8805 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8807 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8810 FEI: Add support for FEI conditional build
8811 FEI(Flexible Encoding Infrastructure) is an extension
8812 to VA API. Define USE_H264_FEI_ENCODER based on
8813 fei header file and required structures availability.
8814 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8815 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8817 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
8819 * gst/vaapi/gstvaapidecode.c:
8820 vaapidecode: force add h264 SVC profiles in caps
8821 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8823 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8824 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8826 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
8828 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8829 libs: decoder: h264: decode SVC base layer only
8830 Drops non-base NALs when the base-only property is set to TRUE.
8831 This modifies the behavior for MVC streams with base-only too: All the
8832 non-base units are dropped before they are decoded instead of dropping
8833 the non-base frames.
8834 The relevant part from the H264 spec is:
8835 > Decoders that conform to one or more of the profiles specified in
8836 Annex A rather than the profiles specified in Annexes G or H shall
8837 ignore (remove from the bitstream and discard) the contents of all NAL
8838 units with nal_unit_type equal to 14, 15, or 20.
8839 To eliminate side effects from the offending units:
8840 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8842 - The NAL parsing is skipped and their flags are set to
8843 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8844 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8845 use them even if they are flagged to be skipped. Subset SPS's and slice
8846 extension units are not stored there either.
8847 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8848 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8850 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
8852 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8853 libs: decoder: h264: check nalu validity in parser info finalize
8854 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8855 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8857 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8859 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8860 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8861 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8862 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8863 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8864 libs: encoder: remove unused cast macro
8865 Remove internal macro to cast structure that are already declared
8868 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8870 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8871 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8872 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8873 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8874 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8875 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8876 Revert "libs: encoders: remove unused cast macros"
8877 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
8879 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8881 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8882 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8883 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8884 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8885 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8886 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8887 libs: encoders: remove unused cast macros
8888 They are only used inside the code, where another macro is defined.
8889 Thus these exported macros have no use.
8891 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8893 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8894 libs: decoder: h264: improve code-style
8895 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8897 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8899 * gst-libs/gst/vaapi/gstvaapicompat.h:
8900 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8901 libs: encoder: h264: handle deprecated enum
8902 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
8903 instead VAEncPackedHeaderRawData should be used.
8904 This patch creates a compatibility symbol,
8905 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
8907 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8909 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8911 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8912 * gst-libs/gst/vaapi/gstvaapiutils.c:
8913 libs: guard deprecated symbols
8914 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
8915 guards the H.264 baseline usage. Consider this commit as a
8916 continuation of commit e0e0a474
8917 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8919 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8923 * meson_options.txt:
8924 Revert "build: check for libva-2.0"
8925 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
8926 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8928 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8930 * gst-libs/gst/vaapi/gstvaapicompat.h:
8931 * gst-libs/gst/vaapi/gstvaapicontext.c:
8932 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8933 libs: macro to get a renamed value in VA-API 1.0
8934 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
8935 renamed one member from roi_value_is_qp_delat to
8936 roi_value_is_qp_delta, which is the correct name.
8937 In order to keep back compatibility a macro has added to access this
8939 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8941 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8943 * gst/vaapi/gstvaapipluginbase.h:
8944 * gst/vaapi/gstvaapipluginutil.c:
8945 plugins: include main gstgl header
8946 Instead including particular gstgl header files in a header file
8947 that doesn't export a gstgl symbol, the main gstgl header file is
8948 included in gstvaapipluginutil.c where the symbols are used.
8949 https://bugzilla.gnome.org/show_bug.cgi?id=786597
8951 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8953 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8954 libs: encoder: h264: fix enum namespace
8956 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
8959 Automatic update of common submodule
8960 From 48a5d85 to 3f4aa96
8962 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8964 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8965 libs: encoder: h264: remove spurious assignation
8967 An assigned value that is never used may represent unnecessary
8968 computation, an incorrect algorithm, or possibly the need for cleanup
8970 ip_period is assigned first to be rewritter inmediatly after. The
8971 first assignation is spurious.
8973 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
8975 * gst/vaapi/gstvaapidecode.c:
8976 vaapidecode: fix mismatch of the return type
8977 https://bugzilla.gnome.org/show_bug.cgi?id=786307
8979 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8981 * gst-libs/gst/vaapi/Makefile.am:
8982 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
8983 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
8984 * gst-libs/gst/vaapi/gstvaapiutils.h:
8985 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8986 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
8987 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8988 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
8989 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
8990 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
8991 * gst-libs/gst/vaapi/meson.build:
8992 libs: remove unused header
8993 Since libgstvaapi is not distributed, there is no need to check for
8994 private header inclusion. Thus removing it.
8995 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8997 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8999 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9000 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9001 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9002 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9003 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9004 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9005 libs: utils: move gstvaapisurface.h to private headers
9006 Since the utils don't expose API defined in gstvaapisource.h, it is
9007 moved to their private headers where they are used.
9008 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9010 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9012 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9013 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9014 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9015 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9016 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9017 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9018 libs: utils: remove va.h include in header
9019 And include gstvaapicompat.h in the C files, since the VA-API is not
9020 exposed in the headers.
9021 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9023 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9025 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9026 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9027 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9028 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9029 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9030 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9031 libs: encoder: remove va.h include
9032 Since it is already managed by gstvaapicompat.h
9033 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9035 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9037 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9038 * gst-libs/gst/vaapi/gstvaapicompat.h:
9039 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9040 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9041 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9042 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9043 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9044 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9045 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9046 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9047 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9048 * gst-libs/gst/vaapi/gstvaapifilter.c:
9049 * gst-libs/gst/vaapi/gstvaapiutils.c:
9051 build: consolidate the VA sub API includes
9052 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9053 since they are all already included in va.h after VA-API 0.38.
9054 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9056 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9060 build: check for va_vpp.h
9061 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9062 allow us to handle the inclusion of the header better.
9063 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9065 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9068 meson: don't export symbols by default
9069 Only plugin entry points should be exported.
9071 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9073 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9074 libs: decoder: h265: remove spurious code
9076 Logically dead code: The indicated dead code may have performed some
9077 action; that action will never occur.
9078 By using pointer arithmetic is impossible to get NULL.
9080 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9082 * gst-libs/gst/vaapi/gstvaapicontext.c:
9083 libs: context: use attribs index instead pointers
9085 Out-of-bounds write. This could cause an immediate crash or incorrect
9087 Coverity basically found that it is possible to assign more than 4
9088 attribs in the array.
9089 In my opinion this was produced because code pattern used pointer
9090 arithmetic, which is not readable nor maintainable.
9091 This patch refactors config_create() to use an array index rather than
9092 pointer arithmetic. Also a run-time check for index size was added.
9094 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9096 * gst/vaapi/gstvaapiencode_h264.c:
9097 vaapiencode: h264: remove spurious code
9099 An unsigned value can never be negative, so this test will always
9100 evaluate the same way.
9101 As len is guint32, there is no need to check it if it is equal or
9104 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9106 * gst/vaapi/gstvaapidecode.c:
9107 vaapidecode: initialize variable
9109 The variable will contain an arbitrary value left from earlier
9111 Variable base_only is fetched from base-only property, and it may be
9112 not assigned. It needs to be initialized.
9114 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9116 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9117 libs: windows: wayland: fail if cannot remove last frame
9119 If the function returns an error value, the error value may be
9120 mistaken for a normal value.
9121 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9122 not the last one, the function fails. Thus, logging an info message.
9124 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9126 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9127 libs: utils: glx: check return value
9129 If the function returns an error value, the error value may be
9130 mistaken for a normal value.
9131 Function sscanf returns the number of assignations done. Validate this
9132 return value with the number of expected variables to match.
9134 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9136 * gst-libs/gst/vaapi/gstvaapiobject.c:
9137 libs: vaapi: object: remove unrequired NULL check
9139 Dereference after null check: Either the check against null is
9140 unnecessary, or there may be a null pointer dereference.
9141 Variable klass has been validated as non-NULL several time before in
9142 gst_vaapi_object_new() function, so there is no need to check it
9145 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9147 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9148 libs: encoder: h265: remove spurious assignation
9150 An assigned value that is never used may represent unnecessary
9151 computation, an incorrect algorithm, or possibly the need for cleanup
9153 ip_period is assigned first to be rewritter inmediatly after. The
9154 first assignation is spurious.
9156 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9158 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9159 libs: encoder: h264: fix copy & paste error
9161 The copied code will not have its intended effect.
9162 This is a bug from commit cdaf15b2, where the intention is to
9163 initialize RefPicList1 while setting RefPicList0.
9165 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9167 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9168 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9169 libs: encoder: h265: fix possible integer overflow
9171 Unintentional integer overflow. The expression's value may not be what
9172 the programmer intended, because the expression is evaluated using a
9173 narrow (i.e. few bits) integer type.
9174 Cast operator to guint64 before computation to avoid narrowing.
9177 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9179 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9180 libs: decoder: mpeg4: fail if return value is not OK
9182 An assigned value that is never used may represent unnecessary
9183 computation, an incorrect algorithm, or possibly the need for cleanup
9185 In the return value of decode_slice() or
9186 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9187 decode_packet() function.
9189 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9191 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9192 libs: decoder: h265: check for null
9194 Dereference after null check: Either the check against null is
9195 unnecessary, or there may be a null pointer dereference.
9196 While looking for hte lowest poc, according to rest of the code, the
9197 picture in the dbp (decoded picture buffer) might be NULL, thus we
9198 could check for a NULL picture before assigned as found.
9199 Also, split a comma operator because it is considered as a bad
9200 practice because it possible side effects.
9202 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9204 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9205 libs: decoder: h265: untaint loop control variable
9207 Scalars (for example, integers) are not properly
9208 bounds-checked (sanitized) before being used as array or pointer
9209 indexes, loop boundaries, or function arguments are considered as
9211 In this case, num_nals were not checked before used as loop control.
9213 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9215 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9216 libs: decoder: h264: remove unrequired NULL check
9218 Dereference after null check: Either the check against null is
9219 unnecessary, or there may be a null pointer dereference.
9220 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9221 prev_picture could be NULL, that's why the code did a null check. But,
9222 since commit 52adebe7, the previous reference frames are tracked, thus
9223 there is no need to check null anymore.
9225 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9227 * gst/vaapi/gstvaapidecode.c:
9228 vaapidecode: fix gst_caps_new_simple call
9229 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9231 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9233 * gst/vaapi/gstvaapidecode.c:
9234 vaapidecode: force add h264 MVC profiles in caps
9235 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9237 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9239 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9241 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9242 libs: decoder: h264: decode MVC base view only
9243 If processed SPS has mvc profile and the configuration is set to
9244 base-only, the frame is drop.
9245 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9247 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9249 * gst/vaapi/gstvaapidecode.c:
9250 * gst/vaapi/gstvaapidecode_props.c:
9251 vaapidecode: set h264 base-only to decoder
9252 Set the base-only value when property is set and the internal
9253 decoder is already instantiated or when the internal decoder
9255 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9257 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9259 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9260 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9261 libs: decoder: h264: add setter for base-only mode
9262 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9264 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9266 * gst/vaapi/gstvaapidecode_props.c:
9267 * gst/vaapi/gstvaapidecode_props.h:
9268 vaapidecode_props: h264: add base-only property
9269 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9271 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9273 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9274 libs: encoder: h264: missing property enum documentation
9276 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9278 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9279 libs: encoder: h264: add multi reference support
9280 Using num_ref_frames provided and the result of the Query
9281 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9282 and perform encoding with multi reference frames as the following:
9283 1\ The num_ref_frames is being considered as the number of
9284 reference picture list0
9285 2\ Encoder adds 1 reference frame more to the reference picture list1
9286 internally if b-frame encoding.
9287 3\ If num_ref_frames is bigger than the number of refrence frames
9288 supported in the driver, it will be lowered.
9289 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9291 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9293 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9294 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9295 libs: encoder: h264: add refs property
9296 Users can provide the number of reference frame by this property.
9297 The value of the property will be considered as the number of
9298 reference picture list0 and will add 1 reference frame more to the
9299 reference picture list1 internally if b-frame encoding.
9300 If the value provided is bigger than the number of refrence frames
9301 supported in the driver, it will be lowered.
9302 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9304 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9306 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9307 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9308 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9309 This function will query VAConfigAttribEncMaxRefFrames to get the
9310 maximum number of reference frames supported in the driver.
9311 This will be used for h264/h265 encoding.
9312 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9314 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9316 * gst/vaapi/gstvaapiencode_h265.c:
9317 vaapiencode: h265: compare an unsigned int if not zero
9318 An unsigned value can never be negative, so this test (greater than
9319 zero) will always evaluate the same way. Thus change it to just if
9322 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9324 * gst/vaapi/gstvaapipluginbase.c:
9325 plugins: check gst_gl_ensure_element_data() return value
9326 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9327 the return value of gst_gl_ensure_element_data(). The result is a code
9330 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9332 * gst/vaapi/gstvaapipluginutil.c:
9333 plugins: avoid dead code detection
9334 By using #elif macro, the static code analysis would stop to detect
9335 these lines as dead code. Also it is inforced the mutually exclusive
9338 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9340 * gst/vaapi/gstvaapivideobufferpool.c:
9341 vaapivideobufferpool: don't shift by negative since it's undefined
9342 The function g_bit_nth_lsf() may return -1 if the request bit position
9343 is not avaible. Thus, this patch check if the return value is not -1
9344 in order to continue.
9346 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9348 * gst/vaapi/gstvaapisink.c:
9349 vaapisink: fix memory leak
9351 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9353 * gst/vaapi/gstvaapipostprocutil.c:
9354 vaapipostproc: fix memory leaks
9356 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9358 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9359 libs: display: when appending formats change pointers to indexes
9360 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9362 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9364 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9366 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9367 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9368 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9369 Added a new property "compliance-mode", which default is the normal
9370 strict compliant mode.
9371 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9372 allocation size to improve performance in some specific Intel
9373 platforms (there is asignificant performance improvement in parallel
9374 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9375 pre-calculating the coded-buffer size.
9376 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9378 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9380 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9381 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9382 libs: utils_h264: Extend LevelLimit table with MinCR field
9383 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9385 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9387 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9389 * gst-libs/gst/vaapi/gstvaapiutils.c:
9390 libs: utils: libva 1.0 changed the logging
9391 The logging mechanism in libva has changed it's functions
9392 signatures. This patch updates that for libva versions >= 1.0
9393 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9395 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9397 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9398 libs: decoder: h264: libva 1.0 deprecated baseline
9399 libva 1.0 deprecated H.264 baseline profile and FMO support
9401 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9403 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9407 * meson_options.txt:
9408 build: check for libva-2.0
9409 Check for libva-2.0 since libva's developers decided to increase the
9410 library's version number.
9411 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9413 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9417 build: blacklist only libva 0.99.0
9418 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9419 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9421 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9423 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9425 * gst-libs/gst/vaapi/meson.build:
9426 build: meson: remove gstvaapidisplaycache.c
9427 This is a missing bit of commit ec3e10f6
9429 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9432 configure: do not break configure if gtk+-3.0 devel missing
9433 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9434 set USE_GTK=0 if gtk+-3.0 is not available.
9435 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9436 Author: Hyunjun Ko <zzoon@igalia.com>
9437 Date: Wed Jul 5 15:59:43 2017 +0900
9438 tests: elements: add testsuite of vaapi context
9439 ...configure fails if gtk+-3.0 development files are missing.
9440 The "with_gtk" option defaults to "check" in configure.ac
9441 which implies that if it is not explicitly requested then
9442 configure will only enable it if it's available on the system.
9443 However, the PKG_CHECK_MODULES rule that get's activated on
9444 "check" condition did not provide default when gtk+-3.0 devel
9445 packages are not found on the system. Thus, it resulted in
9447 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9448 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9450 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9453 * tests/elements/Makefile.am:
9454 * tests/elements/test-vaapicontext.c:
9455 tests: elements: add testsuite of vaapi context
9456 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9457 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9459 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9461 * gst/vaapi/gstvaapisink.c:
9462 vaapisink: fail if surface display is different
9463 Replacing GstVaapiDisplay during rendering might be hiding problems
9464 at some cases, even though it's safe currently since we use cache
9466 Play safe by failing if this happens.
9467 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9469 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9471 * gst/vaapi/gstvaapivideocontext.c:
9472 * gst/vaapi/gstvaapivideocontext.h:
9473 videocontext: support "gst.vaapi.app.Display" context
9474 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9475 and native display of their backend.
9477 - display : pointer of VADisplay
9478 - x11-display : pointer of X11 display (Display *), if they're using.
9479 This patch creates GstVaapidisplayX11 if information provided through
9480 "gst.vaapi.app.Display"
9481 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9483 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9485 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9486 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9487 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9488 Implements new API function so that users could create GstVaapiDisplay
9489 with their own VADisplay within a native display as backend.
9490 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9492 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9494 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9495 libs: display: pass display info when foreign display
9496 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9497 with that display, it also requires native display of the backend.
9498 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9500 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9502 * gst-libs/gst/vaapi/Makefile.am:
9503 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9504 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9505 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9506 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9507 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9508 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9509 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9510 libs: display: remove cache
9511 Remove a bunch of code that handles the VADisplay cache, since the
9512 context sharing should be doing this correctly.
9513 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9515 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9517 * tests/elements/Makefile.am:
9518 * tests/elements/test-vaapipostproc.c:
9519 tests: elements: add test for vaapipostproc
9520 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9522 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9524 * gst/vaapi/gstvaapipostproc.c:
9525 postproc: reconfigure when width or height changes
9526 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9528 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9530 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9531 libs: encoder: vp9: array terminated in zeros
9532 There is a crash when setting ref-pic-mode since the #GEnumValue
9533 array is not terminated with a structured with all memvers being
9535 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9537 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9539 * gst/vaapi/gstvaapiencode_h264.c:
9540 vaapiencode: h264: add plugin documentation
9541 Comment how the profile is set and other parameters.
9543 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9545 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9546 libs: decoder: h264: push frames as soon as possible
9547 Push frames downstream as soon as possible instead of waiting until
9548 they are ejected from the DPB.
9549 This patch makes the decoder not comply with the H.264 specification,
9550 but it is required for some video cameras.
9551 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9552 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9554 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9556 * gst/vaapi/gstvaapidecode_props.c:
9557 vaapidecode_props: h264: set low-latency in decoder
9558 Set the low-latency property if the H264 decoder is already
9559 instantiated, thus you could change the behavior in run-time.
9560 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9562 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9564 * gst/vaapi/gstvaapidecode.c:
9565 vaapidecode: set h264 low latency to decoder
9566 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9568 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9570 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9571 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9572 libs: decoder: h264: add getter/setter for low latency mode
9573 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9575 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9577 * gst/vaapi/gstvaapidecode_props.c:
9578 * gst/vaapi/gstvaapidecode_props.h:
9579 vaapidecode_props: h264: add low latency property
9580 Adding support for private data.
9581 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9583 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9585 * gst/vaapi/Makefile.am:
9586 * gst/vaapi/gstvaapidecode.c:
9587 * gst/vaapi/gstvaapidecode_props.c:
9588 * gst/vaapi/gstvaapidecode_props.h:
9589 * gst/vaapi/meson.build:
9590 vaapidecode_props: add skeleton for h264 decoder properties
9591 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9593 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9595 * gst/vaapi/gstvaapidecode.c:
9596 vaapidecode: properties callback in decoders map
9597 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9599 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
9602 meson: find python3 via python3 module
9603 https://bugzilla.gnome.org/show_bug.cgi?id=783198
9605 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
9607 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9608 libs: encoder: h264: submit sps in case of IDR picture
9609 If the picture is IDR, also submit a SPS header.
9610 This means when frame number reaches to keyframe-period or an force
9611 key unit event arrives, we insert SPS/PPS again.
9612 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9614 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
9616 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9617 libs: encoder: h264: set the frame as IDR if forced key unit
9618 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9619 the `frame-lost` event in the case of streaming, such as RTP.
9620 In case of this event, it is needed to start new GOP rather than just
9622 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9624 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9626 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9627 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9628 libs: encoder: h264: insert AU delimiter
9629 Insert an AUD as the first NAL of each encoded frame.
9630 Some applications require Access Unit Delimiter for decoding the
9632 The AU delimeter insertion is done only when the aud parameter is
9633 TRUE (by default is disabled). The reason of this it is because this
9634 header is only available from Intel Gen9 and the VA intel driver
9635 should be 1.8 or superior. Otherwise, the output will be corrupted.
9636 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9637 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9639 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9641 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9642 libs: encoder: h264: initialize all elements of view_ids
9643 Currently when num_views is changed by multiview-mode on sink caps, it produces
9644 wrong MVC encoded stream since the array view_ids is not set properly according
9645 to changed num_views.
9646 So this patch initializes all of the array sequentially to handle this case.
9647 Side effect is not going to happen by this patch since this array is being
9648 handled by num_views.
9649 https://bugzilla.gnome.org/show_bug.cgi?id=784321
9651 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
9653 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9654 Revert "encoder: h264: Use high profile by default"
9655 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9656 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9658 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
9660 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9661 libs: encoder: h264: set profile via capsfilter
9662 Until now, the encoder ignored the profile in src caps and chose one
9663 according with the given parameters. But the encoder must honor the
9664 profile specifed in src caps.
9665 This patch do that, and if the encoder needs to choose the profile,
9666 it will do it by following these rules:
9667 1\ If given parameters are not compatible with given profile, the
9668 encoder will bail out with an error.
9669 2\ The encoder will choose the higher profile indicated in the
9671 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9673 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
9675 * gst/vaapi/gstvaapiencode_h264.c:
9676 vaapiencode: h264: set profile to src caps
9677 So far vaapi encoder does not set profile to src caps. This patch makes it
9678 setting profile to src caps, which is determined by itself.
9679 In addition, if encoder chose different profile, which is not negotiated with
9680 downstream, we should set compatible profile to make negotiation working.
9681 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9683 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9685 * gst/vaapi/gstvaapiencode_h264.c:
9686 * gst/vaapi/gstvaapiencode_h264.h:
9687 vaapiencode: h264: verify if requested profile is supported
9688 Check if the requested profile in source caps, is supported by the
9689 VA driver. If it is not, an info log message is send saying that
9690 another (compatible?) profile will be used.
9691 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9693 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9695 * gst/vaapi/gstvaapiencode_h264.c:
9696 vaapiencode: h264: improve set_config() vmethod
9697 First check if downstream requests ANY caps. If so, byte-stream is
9698 used and the profile will be choose by the encoder. If dowstream
9699 requests EMPTY caps, the negotiation will fail.
9700 Lately, byte-stream and profile are looked in the allowed caps.
9701 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9703 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9705 * gst/vaapi/gstvaapiencode_h264.c:
9706 vaapiencode: h264: check for avc in set_config()
9707 The check for avc stream format was done in the vaapi encoder's
9708 vmethod get_caps(), but that is wrong since it has to be check
9709 when encoder set_format().
9710 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9712 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
9714 * gst/vaapi/gstvaapipostprocutil.c:
9715 vaapipostproc: set multivew-mode flags to src caps
9716 vaapipostproc didn't negotiate the proper multiview caps losing
9717 downstream information.
9718 This patch enables the playing of MVC encoded stream by setting
9719 the proper multiview mode/flags and views to src caps, according
9721 https://bugzilla.gnome.org/show_bug.cgi?id=784320
9723 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
9725 * gst/vaapi/gstvaapipostproc.c:
9726 vaapipostproc: add support for DMABuf caps feature
9727 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9728 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9730 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9732 * gst/vaapi/gstvaapidecode.c:
9733 vaapidecode: add support for DMABuf caps feature
9734 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9735 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9737 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9739 * gst/vaapi/gstvaapipluginbase.c:
9740 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9741 Instantiate all dmabuf allocator for src pad buffer pool if the
9742 src caps ask for memory:DMABuf feature.
9743 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9745 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
9747 * gst/vaapi/gstvaapipluginutil.c:
9748 * gst/vaapi/gstvaapipluginutil.h:
9749 vaapipluginutil: add support for DMABuf caps feature
9750 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9751 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9752 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9753 vaapipluginutil: add support for DMABuf caps feature
9755 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9757 * gst/vaapi/gstvaapipluginbase.c:
9758 vaapipluginbase: dmabuf memory map trial for raw caps
9759 Only push dmabuf-based buffers with raw caps if gst_memory_map()
9760 succeeds. Otherwise, use the the vaapi surfaces allocator.
9761 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9762 https://bugzilla.gnome.org/show_bug.cgi?id=774649
9763 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9765 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9767 * gst/vaapi/gstvaapivideomemory.c:
9768 * gst/vaapi/gstvaapivideomemory.h:
9769 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9770 This new method checks the specified allocator can create GstMemory that can
9772 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9774 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9776 * gst/vaapi/gstvaapivideobufferpool.c:
9777 vaapivideobufferpool: fix regression with video metas
9778 There is another regression with 7a206923 when setting the video
9779 info for the video meta, it should be the one from the image's
9780 allocator rather from the allocation caps.
9782 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9783 ! tee ! videoconvert ! videoscale \
9784 ! video/x-raw, width=1920, height=1080 ! xvimagesink
9786 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9788 * gst/vaapi/gstvaapipluginbase.c:
9789 * gst/vaapi/gstvaapivideobufferpool.c:
9790 plugins: update buffer size with the one reported by allocator
9791 There is a regression in 7a206923, since the buffer pool ditches all
9792 the buffers generated by them because the pool config size is
9793 different of the buffer's size.
9795 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9796 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
9797 --gst-debug=GST_PERFORMANCE:5
9798 The allocator may update the buffer size according to the VA surface
9799 properties. In order to do this, the video info is modified when the
9800 allocator is created, which reports through the allocation info the
9801 updated size, and set it to the pool config.
9803 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
9805 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9806 libs: decoder: h264: initialize active_sps/pps in reset
9807 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9808 they introduced regression in seek.
9809 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9810 But since the commits landed, it doesn't drop P-frame and does try to
9811 decode it continuously because active_sps is still alive. See ensure_sps function.
9812 But there are prev_frames and prev_ref_frames reset already, then it
9814 So it's necessary to reset active_sps/pps also in reset method.
9815 https://bugzilla.gnome.org/show_bug.cgi?id=783726
9817 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9819 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9820 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9821 libs: encoder: fix compilation with old versions of libva
9822 There are some symbols that are not used when compiling with old
9823 version of libva and those generates a compilation error.
9824 Original-patch-by: Matt Staples <staples255@gmail.com>
9826 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9828 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9829 libs: encoder: Fix the quality level clamping
9830 Change the hard-coded range of quality-level from {1-8} to {1-7},
9831 since it is the range Intel Open source driver supports.
9832 Also perform the range clamping only if the user provided
9833 quality-level is greater than the max-range suppored by the driver,
9834 because there could be non-intel drivers giving lower value than
9835 the hard-coded max value 7.
9836 https://bugzilla.gnome.org/show_bug.cgi?id=783567
9838 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9840 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9841 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9842 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9843 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9844 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9845 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9846 libs: encoder: log out the name of the profile
9847 Instead of printing a number, it is more readable to log out, in
9848 case of error, the name of the failing profile.
9850 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
9852 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9853 libs: encoder: h264: changes raw number of profile to macro name of its
9854 Changes raw number of profile to macro name of its to improve readability.
9855 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9857 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9859 * gst/vaapi/gstvaapivideobufferpool.c:
9860 vaapivideobufferpool: remove allocation_vinfo private attribute
9861 There is no need to keep this attribute internally since it is
9862 already managed by the allocator.
9863 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9865 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9867 * gst/vaapi/gstvaapivideobufferpool.c:
9868 vaapivideobufferpool: refactor set_config()
9869 Refactor the set_config() virtual method considering a cleaner
9870 approach to allocator instanciation, if it it not set or if it is
9871 not valid for the pool.
9872 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9874 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9876 * gst/vaapi/gstvaapipluginbase.c:
9877 * gst/vaapi/gstvaapivideobufferpool.c:
9878 * gst/vaapi/gstvaapivideomemory.c:
9879 * gst/vaapi/gstvaapivideomemory.h:
9880 plugins: distinguish allocation and negotiation caps
9881 The vaapi video decoders might have different allocation caps from
9882 the negotiation caps, thus the GstVideoMeta shall use the negotiation
9883 caps, not the allocation caps.
9884 This was done before reusing gst_allocator_get_vaapi_video_info(),
9885 storing there the negotiation caps if they differ from the allocation
9886 ones, but this strategy felt short when the allocator had to be reset
9887 in the vaapi buffer pool, since we need both.
9888 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
9889 gst_allocator_get_vaapi_negotiated_video_info() to store the
9890 negotiated video info in the allocator, and distinguish it from
9891 the allocation video info.
9892 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9894 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9896 * gst/vaapi/gstvaapivideomemory.c:
9897 * gst/vaapi/gstvaapivideomemory.h:
9898 vaapivideomemory: rename qdata quarks and ids
9899 Also the parameter names were renamed to reflect their origin
9901 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9903 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9905 * gst/vaapi/gstvaapivideobufferpool.c:
9906 vaapivideobufferpool: rename local variables
9907 Renamed local video info structure names in set_config() vitual
9908 method. The purpose of their renaming is to clarify the origin
9909 of those structures, whether come from passed caps parameter
9910 (new_allocation_vinfo) or from the configured allocator
9912 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9914 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9916 * gst/vaapi/gstvaapivideobufferpool.c:
9917 vaapivideobufferpool: rename video info structures
9918 Renamed private GstVideoInfo structure video_info to allocation_vinfo
9919 and alloc_info to negotiated_vinfo.
9920 The purpose of these renaming is to clarify the origin and purpose of
9921 these private variables:
9922 video_info (now allocation_vinfo) comes from the bufferpool
9923 configuration. It describes the physical video resolution to be
9924 allocated by the allocator, which may be different from the
9926 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
9927 the pipeline. It represents how the frame is going to be mapped
9928 using the video meta.
9929 In Intel's VA-API backend, the allocation_vinfo resolution is
9930 bigger than the negotiated_info.
9931 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9933 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9935 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9936 libs: encoder: set framerate if bigger than 0/1
9937 Just set the framerate parameter if the framerate numerator and
9938 denominator are bigger than zero.
9939 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
9941 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
9942 https://bugzilla.gnome.org/show_bug.cgi?id=783532
9944 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9946 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9947 libs: encoder: bitrate target percentage calculation
9948 If the rate control is set to Constant Bit Rate (CBR) the target
9949 percentage is 100%, otherwise is 70%
9951 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9953 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9954 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9955 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9956 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9957 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9958 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9959 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
9960 Centralize the common configuration for the Rate Control parameter,
9961 thus can be overloaded per each specific encoder.
9963 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9965 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9966 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9967 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9968 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9969 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9970 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9971 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
9972 Since the framerate VA parameter is calculated equally among all the
9973 encoders, it is better to handle it in the base encoder class.
9975 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9977 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9978 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9979 libs: encoder: vp9: Adds CBR and VBR Encoding support
9980 https://bugzilla.gnome.org/show_bug.cgi?id=766832
9981 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
9982 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9984 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9986 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9987 libs: encoder: vp8: Adds VBR Encoding support
9988 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9990 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
9992 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9993 libs: encoder: h265: Adds VBR Encoding support
9994 Enables Variable BitRate mode, which does set FrameRate and RateControl
9996 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9998 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
10000 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10001 libs: encoder: Describes more detail about the bitrate property
10002 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10004 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10006 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10007 libs: encoder: h265: add rate control parameter
10008 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10010 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10012 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10013 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10014 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10015 libs: encoder: h264,h265,mpeg2: add framerate parameter
10016 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10018 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10020 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10021 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10022 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10023 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10024 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10025 Instead of recalculating the miscellaneous buffer parameters for
10026 every buffer, it is only done once, when the encoder is configured.
10027 And for every buffer, the same structures are just copied.
10028 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10030 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10032 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10033 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10034 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10035 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10036 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10037 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10038 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10039 This is patch pretends to decouple the assignation of the values
10040 in the parameter structures and the VA buffer's parameters setting.
10041 It may lead to some issues since HRD, framerate or controlrate may
10042 not be handled by the specific encoder, but they are set in
10043 the VA buffer's parameters.
10044 I leave as it because this patch is just a transitional patch.
10045 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10047 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10049 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10050 libs: encoder: vp8: fix frame rate calculation
10051 According to the VA documentation:
10052 The framerate is specified as a number of frames per second,
10053 as a fraction. The denominator of the fraction is given in
10054 the top half (the high two bytes) of the framerate field, and
10055 the numerator is given in the bottom half (the low two bytes).
10056 For example, if framerate is set to (100 << 16 | 750), this is
10057 750 / 100, hence 7.5fps.
10058 If the denominator is zero (the high two bytes are both zero)
10059 then it takes the value one instead, so the framerate is just
10060 the integer in the low 2 bytes.
10061 This patch fixes the the framerate calculation in vp8 encoder
10063 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10065 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10067 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10068 libs: encoder: vp8: refactor FrameRate parameter
10069 Move frame-rate parameter from ensure_misc_params() to
10070 ensure_contro_rate_param() since it only has meaning when the
10071 control rate is either VBR or CBR.
10072 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10074 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10076 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10077 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10078 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10079 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10080 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10081 Move the Hypothetical Reference Decoder (HRD) parameter, from
10082 ensure_misc_params() to ensure_control_rate_params(), since it
10083 only shall be defined when the control rate is either VBR or CBR.
10084 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10086 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10088 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10089 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10090 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10091 libs: encoder: h264,vp8,mpeg2: refactor control rate
10092 Instead of filling the control rate param in ensure_misc_params(),
10093 this patch refactor it out, as a first step to merge the same code
10094 for all the encoders.
10095 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10097 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10099 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10100 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10101 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10102 libs: encoder: h264, h265, mpeg2: remove assert
10103 Remove spurious asserts for misc parameters. If they cannot be
10104 allocated, FALSE is already returned.
10106 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10108 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10109 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10110 libs: encoder: use VA quality level structure
10111 Instead of using a proxy to story the buffer quality level, the
10112 encoder now uses the native VA structure, which is copied to the
10113 dynamically allocated VAEncMiscParameterBuffer.
10114 This approach is computationally less expensive.
10116 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10118 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10119 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10120 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10121 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10122 libs: standardize the FIXME comment
10123 This is a trivial patch that makes homogeneous the FIXME tag in
10125 For more info about these comment style:
10126 http://wiki.c2.com/?FixmeComment
10128 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10130 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10131 libs: encoder: vp8: set quality level regardless of rate control mode
10132 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10134 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10136 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10137 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10138 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10139 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10140 libs: encoder: check for maximum number of slices
10141 Right now, H264 and HEVC can set as a property the number of slices to
10142 process. But each driver can set a maximum number of slices, depending
10143 on the supported profile & entry point.
10144 This patch verifies the current num_slices to process against the maximum
10145 permitted by the driver and the media size.
10146 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10148 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10150 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10151 libs: utils: mark functions as internals
10152 The functions in this header are internal to the library.
10154 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10156 * gst-libs/gst/vaapi/gstvaapicontext.h:
10157 libs: context: add missing documentation
10158 Document the region-of-interest configuration variables.
10160 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10162 * tests/elements/test-vaapisink.c:
10163 tests: elements: vaapisink: handle nav events
10164 The test app can now handle navigation events to rotate the
10167 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10169 * tests/elements/test-vaapisink.c:
10170 tests: elements: clean up vaapisink test
10171 - Use gst_element_send_event() instead of gst_pad_push_event()
10172 - don't zero App structure
10173 - check for pipeline parsing error
10174 - only get vaapisink for property set
10176 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10178 * gst/vaapi/gstvaapisink.c:
10179 vaapisink: keep handle_events flag except that if user want to set
10180 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10181 flag is set to FALSE, and never recovered, and then event thread is never
10183 So we should allow to set the flag only when users try it.
10184 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10186 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10188 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10189 libs: window: x11: fix src rect info when using vpp
10190 Since we started using VPP in VaapiWindowX11, we need to care about
10191 the case that src rect and window's size are different.
10192 So, once VPP has converted to other format, we should honor the
10193 size of the VPP's surface as source rect. Otherwise, it is cropped
10194 according the previous size of the source rect.
10195 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10197 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10199 * gst/vaapi/gstvaapipluginutil.c:
10200 plugins: remove par from caps negotiation
10201 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10203 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10205 * tests/elements/Makefile.am:
10206 * tests/elements/test-roi.c:
10207 tests: elements: add an example for ROI
10208 This implements a pipleint to recognize difference between ROI and non-ROI.
10209 See comments in this code in detail.
10210 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10211 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10213 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10215 * gst/vaapi/gstvaapiencode.c:
10216 * gst/vaapi/gstvaapiencode_h264.c:
10217 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10218 Handles new custom event GstVaapiEncoderRegionOfInterest
10219 to enable/disable a ROI region.
10220 Writes a way to use new event to document.
10221 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10222 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10224 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10226 * tests/simple-encoder.c:
10227 tests: simple-encoder: add an option to set ROI
10228 $ simple-encoder -r inputfile.y4m
10229 And you'll got an output file in H264 with two regions of interest.
10230 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10231 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10233 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10235 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10236 libs: encoder: h264: set ROI params during encoding
10237 Set ROI params during encoding each frame, which are set via
10238 gst_vaapi_encoder_add_roi ()
10239 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10240 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10242 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10244 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10245 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10246 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10247 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10248 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10249 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10251 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10253 * gst-libs/gst/vaapi/gstvaapicontext.c:
10254 * gst-libs/gst/vaapi/gstvaapicontext.h:
10255 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10256 libs: encoder/context: query region of interest support
10257 Queries if the driver supports "Region of Interest" (ROI) during the config
10259 This attribute conveys whether the driver supports region-of-interest (ROI)
10260 encoding, based on user provided ROI rectangles. The attribute value is
10261 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10262 If ROI encoding is supported, the ROI information is passed to the driver
10263 using VAEncMiscParameterTypeROI.
10264 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10265 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10267 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10269 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10270 libs: encoder: fix a comment
10272 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10274 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10275 libs: encoder: guard quality level configuration
10276 The quality level appeared in VA-API 0.36. So let's guard its
10279 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10281 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10282 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10283 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10284 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10285 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10286 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10287 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10288 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10289 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10290 encoders: add quality level tuning
10291 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10292 in gstreamer-vaapi encoders:
10293 The encoding quality could be set through this structure, if the
10294 implementation supports multiple quality levels. The quality level set
10295 through this structure is persistent over the entire coded sequence, or
10296 until a new structure is being sent. The quality level range can be queried
10297 through the VAConfigAttribEncQualityRange attribute. A lower value means
10298 higher quality, and a value of 1 represents the highest quality. The quality
10299 level setting is used as a trade-off between quality and speed/power
10300 consumption, with higher quality corresponds to lower speed and higher power
10302 The quality level is set by the element's parameter "quality-level" with a
10303 hard-coded range of 1 to 8.
10304 Later, when the encoder is configured in run time, just before start
10305 processing, the quality level is scaled to the codec range. If
10306 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10307 the quality level is set to zero, which means "disabled".
10308 All the available codecs now process this parameter if it is available.
10309 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10310 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10312 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10316 Back to development
10318 === release 1.12.0 ===
10320 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10325 * gstreamer-vaapi.doap:
10329 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10331 * gst/vaapi/gstvaapidecodebin.c:
10332 Revert "vaapidecodebin: fix element's classification"
10333 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10335 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10339 build: Require libva < 0.99.0
10340 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10341 fail to configure instead of failing late in the build.
10342 This libva is bundled in msdk[1] and it is ahead in time with
10343 respect the official and open source libva[2]. GStreamer-VAAPI
10344 only supports the latter for now.
10345 1. https://software.intel.com/en-us/media-sdk/download
10346 2. https://github.com/01org/libva/
10347 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10349 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10351 * gst/vaapi/gstvaapidecodebin.c:
10352 vaapidecodebin: fix element's classification
10353 This bin should have similar classification as decodebin which is
10354 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10356 Signed-off-by: Victor Toso <victortoso@redhat.com>
10357 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10359 === release 1.11.91 ===
10361 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10366 * gstreamer-vaapi.doap:
10370 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10372 * gst/vaapi/gstvaapipluginutil.c:
10373 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10374 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10376 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10378 * gst/vaapi/gstvaapipluginutil.c:
10379 plugins: reject pixel-aspect-ratio with value 0/1
10380 Do not negotiate a pixel-aspect-ratio of 0/1.
10381 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10383 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10385 * gst/vaapi/gstvaapipostprocutil.c:
10386 * gst/vaapi/gstvaapisink.c:
10387 plugins: handle pixel-aspect-ratio with value 0/1
10388 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10389 calculations for resizing and formatting in vaapipostproc and
10390 vaapisink, respectively, failed, and thus the pipeline.
10391 This patch handles this situation by converting p-a-r of 0/1 to
10392 1/1. This is how other sinks, such as glimagesink, work.
10393 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10395 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10397 * gst/vaapi/gstvaapivideobufferpool.c:
10398 vaapivideobufferpool: fix leak of created allocator
10399 Since it's created by itself, it should be unref-counted
10400 after gst_buffer_pool_config_set_allocator call. Afterwards,
10401 this allocator will be ref-counted again when assigning to priv->allocator.
10402 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10404 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10406 * gst/vaapi/gstvaapivideobufferpool.c:
10407 vaapivideobufferpool: create or reconfig allocator
10408 Sometimes a video decoder could set different buffer pool
10409 configurations, because their frame size changes. In this case we
10410 did not reconfigure the allocator.
10411 This patch enables this use case, creating a new allocator inside
10412 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10413 If so, it is just reconfigured, since it doesn't have a surface pool.
10414 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10416 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10418 * tests/elements/Makefile.am:
10419 test: elements: fix compilation flags
10420 This issue was spotten on bug #766704
10421 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10423 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10425 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10426 libs: windows: wayland: fix leak if failure of sync
10427 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10428 during destruction.
10429 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10430 This surface is not attached to anything at this moment, so we should release
10432 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10434 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10437 Automatic update of common submodule
10438 From 60aeef6 to 48a5d85
10440 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10442 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10443 libs: window: wayland: mark frames as done
10444 When the frame listener callbacks 'done', the number of pending
10445 frames are decreased. Nonetheless, there might be occasions where
10446 the buffer listener callbacks 'release', without calling previously
10447 frame's 'done'. This leads to problem with
10448 gst_vaapi_window_wayland_sync() operation.
10449 This patch marks as done those frames which were callbacked, but if
10450 the buffer callbacks 'release' and associated frame is not marked
10451 as 'done' it is so, thus the number of pending frames keeps correct.
10452 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10453 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10455 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10457 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10458 libs: window: wayland: don't sync at destroy()
10459 Don't call gst_vaapi_window_wayland_sync() when destroying the
10460 wayland window instance, since it might lead to a lock at
10461 gst_poll_wait() when more than one instances of vaapisink are
10462 rendering in the same pipeline, this is because they share the
10464 Since now all the frames are freed we don't need to freed the
10465 private last_frame, since its address is invalid now.
10466 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10467 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10469 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10471 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10472 libs: window: wayland: null buffer at destroy()
10473 Fix leakage of the last wl buffer.
10474 VAAPI wayland sink needs to send a null buffer while destruction,
10475 it assures that all the wl buffers are released. Otherwise, the last
10476 buffer's callback might be not called, which leads to leak of
10478 This was inspired by gstwaylandsink.
10479 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10480 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10482 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10484 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10485 libs: window: wayland: rt event queue at destroy()
10486 The proxy object of wl_buffer for the last frame remains in the
10487 wl_map. Even though we call wl_buffer_destroy() in
10488 frame_release_callback(), the proxy object remains without being
10489 removed, since proxy object is deleted when wayland server sees the
10490 delete request and sends 'delete_id' event.
10491 We need to call roundtrip before destroying event_queue so that the
10492 proxy object is removed. Otherwise, it would be mess up as receiving
10493 'delete_id' event from previous play, when playing in the next
10494 va/wayland window with the same wl_display connection.
10495 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10496 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10498 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10500 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10501 libs: window: wayland: cancel read at poll message
10502 Always call wl_display_cancel_read() when an errno is set, but
10503 different to EAGAIN or EINTR.
10504 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10506 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10508 * gst/vaapi/gstvaapidecodebin.c:
10509 * gst/vaapi/gstvaapidecodebin.h:
10510 vaapidecodebin: skips configuration once it's done
10511 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10512 Otherwise, it always fails when it's trying to re-start playback.
10513 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10515 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10517 * gst/vaapi/gstvaapipostprocutil.c:
10518 vaapipostproc: fixes for memory leaks
10519 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10520 requires to clear the used GValue to avoid a memory leak.
10522 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10524 * gst/vaapi/gstvaapipluginbase.c:
10525 * gst/vaapi/gstvaapipluginbase.h:
10526 plugins: enable direct rendering with envvar
10527 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10528 performance in some Intel platforms (Haswell, for example) but in others
10529 (Skylake) is the opposite.
10530 In order to have some control, the patch enables the direct rendering
10531 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10532 Also it seems to generating some problems with gallium/radeon backend.
10534 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10536 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10538 * gst/vaapi/gstvaapidecode.c:
10539 vaapidecode: Don't renegotiate on every flush
10540 If caps don't actually change, don't update the
10541 decoder and don't set the do_renego flag forcing
10542 downstream renegotiation
10543 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10545 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10547 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10548 h264 decoder: Implement reset() for faster flush
10549 Implement a custom reset() function for faster flushes
10550 that just clear the reference pictures but don't reallocate
10551 the DPB or clear out SPS/PPS
10552 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10554 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10556 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10557 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10558 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10559 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10560 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10561 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10562 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10563 * gst/vaapi/gstvaapidecode.c:
10564 Implement decoder reset on flush, rather than recreating
10565 Clear decoders out on a flush but keep the same instance,
10566 rather than completely recreating them. That avoids
10567 unecessarily freeing and recreating surface pools
10568 and contexts, which can be quite expensive
10569 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10571 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10573 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10574 libs: window: don't add an unused function
10575 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10576 a function that is never used, thus when compiling we might see
10577 this warning (clang):
10578 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10579 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10581 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10583 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10585 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10586 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10587 libs: window: remove surface_format member
10588 Since we always convert to NV12, there is no need to keep a
10589 variable for that. Let us hard code it.
10590 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10592 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10594 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10595 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10596 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10597 libs: window: x11/wayland: use new api for conversion
10598 Since gst_vaapi_window_vpp_convert_internal is created,
10599 GstVaapiWindowX11/Wayland can use it for conversion.
10600 Note that once it chooses to use vpp, it's going to use vpp
10601 until the session is finished.
10602 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10604 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
10606 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10607 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10608 libs: window: add gst_vaapi_window_vpp_convert_internal()
10609 If a backend doesn't support specific format, we can use vpp for conversion
10610 and make it playing.
10611 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10612 so that GstVaapiWindowX11 could use it.
10613 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10615 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10617 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10618 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10619 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10620 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10621 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10622 libs: window: x11/wayland: chaining up to GstVaapiWindow
10623 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10624 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10625 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10627 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10629 * gst/vaapi/gstvaapipluginutil.c:
10630 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10631 When these definitions are false, they are undef in the
10632 preprocessor, not a defined value of 0. When they are unset the
10633 compile fails with:
10634 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10635 https://bugzilla.gnome.org/show_bug.cgi?id=780948
10637 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
10640 Automatic update of common submodule
10641 From 39ac2f5 to 60aeef6
10643 === release 1.11.90 ===
10645 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
10650 * gstreamer-vaapi.doap:
10654 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10656 * gst/vaapi/gstvaapiencode_h265.c:
10657 vaapiencode: h265: add main-10 in caps template
10658 This patch adds h265's main-10 profile in encoder src caps template.
10659 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10661 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10663 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10664 libs: encoder: h265: chroma and luma with format
10665 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10666 parameter buffer, shall be the color format bit depth minus 8, 10-8
10667 which is 2. Also for bit_depth_chroma_minus8.
10668 This patch gets the negotiated sink caps format and queries its
10669 luma's depth and uses that value to fill the mentioned parameters.
10670 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10672 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10674 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10675 libs: encoder: admit YUV420_10BPP as valid chroma
10676 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10678 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10680 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10682 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10683 libs: encoder: h265: ensures profile given format
10684 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10685 configured color format is P010_10LE.
10686 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10687 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10689 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10691 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10692 libs: encode: merge all possible surface formats
10693 When the function gst_vaapi_encoder_get_surface_formats() was added
10694 it was under the assumption that any VA profile of the specific codec
10695 supported the same format colors. But it is not, for example the
10696 profiles that support 10bit formats.
10697 In other words, different VA profiles of a same codec may support
10698 different color formats in their upload surfaces.
10699 In order to expose all the possible color formats, if no profile is
10700 specified via source caps, or if the encoder doesn't have yet a
10701 context, all the possible VA profiles for the specific codec are
10702 iterated and their color formats are merged.
10703 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10705 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10707 * gst/vaapi/gstvaapiencode.c:
10708 * gst/vaapi/gstvaapiencode.h:
10709 * gst/vaapi/gstvaapiencode_h264.c:
10710 * gst/vaapi/gstvaapiencode_h265.c:
10711 vaapiencode: add get_profile() vmethod
10712 This new virtual method, get_profile(), if implemented by specific
10713 encoders, will return the VA profile potentially determined by the
10715 Also it is implemented by h264 and h265 encoders, which are the main
10716 users of this vmethod.
10717 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10719 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10721 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10722 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10723 * gst/vaapi/gstvaapiencode.c:
10724 libs: encoder: pass profile to get_surface_formats()
10725 In order to get the supported surface formats within a specific
10726 profile this patch adds the GstVaapiProfile as property to
10727 gst_vaapi_encoder_get_surface_formats().
10728 Currently the extracted formats are only those related with the
10729 default profile of the element's codec.
10730 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10732 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10734 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10735 libs: encoder: dummy context for get_surface_formats()
10736 Instead of creating (if it doesn't exist, yet) the encoder's context
10737 the method gst_vaapi_encoder_get_surface_formats() now it creates
10738 dummy contexts, unless the encoder has it already created.
10739 The purpose of this is to avoid setting a encoder's context with a
10741 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10743 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10745 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10746 libs: encoder: refactor init_context_info()
10747 In order to generate vaapi contexts iterative, the function
10748 init_context_info() is refactored to pass, as parameters the
10749 GstVaapiContextInfo and the GstVaapiProfile.
10750 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10752 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10754 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10755 * gst-libs/gst/vaapi/gstvaapiutils.c:
10756 * gst-libs/gst/vaapi/gstvaapiutils.h:
10757 libs: encoder: initialize chroma_type
10758 Instead of initialize the chroma_type with a undefined value, which
10759 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10760 this patch queries the VA config, given the received
10761 GstVaapiContextInfo's parameters, and gets the first response.
10762 In order to get the GstVaapiChromaType value, also it was needed to
10763 add a new utility function: to_GstVaapiChromaType(), which, given a
10764 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10765 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10767 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10769 * gst/vaapi/gstvaapiencode.c:
10770 vaapiencode: enhance logs of negotiated caps
10771 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10773 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10775 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10776 libs: encoder: vp9: Fix initialization of ref_list
10777 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10778 'memset' used with length equal to number of elements without
10779 multiplication by element size [-Werror=memset-elt-size]
10780 https://bugzilla.gnome.org/show_bug.cgi?id=780947
10782 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10784 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10785 encoder: h264: Fix Backward ReferencePicture flag setting
10786 This is a regression introduced by e829b62 which
10787 override the reference flags and caused issues with
10788 latest intel-vaapi-driver.
10790 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10792 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10793 libs: encoder: h265: fix code style
10794 Trivial patch to remove a double ';' as end of instruction.
10796 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10798 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10799 encoder: h264: Fix B frame encoding artifacts
10800 The current implementation is updating the POC values only
10801 in Slice parameter Buffer.But we are not filling the
10802 picture order count and reference flags in VAPictureH264
10803 while populating VA Picture/Slice structures.The latest
10804 intel-vaapi-driver is directly accessing the above fields
10805 from VAPicutreH264 provided as RefPicLists, which resulted
10806 some wrong maths and prediction errors in driver.
10807 https://bugzilla.gnome.org/show_bug.cgi?id=780620
10809 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10811 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10812 libs: encoder: h265: remove unused macro definition
10813 Since the h265 encoder doesn't use GValueArray, there is no need to
10814 disable the Glib deprecation warnings, thus removing the macro
10817 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10819 * gst/vaapi/gstvaapidecode.c:
10820 * gst/vaapi/gstvaapiencode.c:
10821 * gst/vaapi/gstvaapipostproc.c:
10822 * gst/vaapi/gstvaapisink.c:
10823 plugins: when debug disabled, default category is NULL
10824 As in gstreamer-vaapi a common base class is used, the specific
10825 default category is passed to the base-plugin initializator, thus
10826 the log messages are categorized with the used plugin.
10827 Nonetheless, when the gst-debug is disabled in compilation time,
10828 it is needed to pass NULL to the base-plugin initializator. This
10830 https://bugzilla.gnome.org/show_bug.cgi?id=780302
10832 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
10834 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10835 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10836 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10837 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10838 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10839 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10840 unit length and data to a bitwriter.
10841 Note that this helper function applies EPB (Emulation Prevention
10842 Bytes), since otherwise produced codec_data might be broken when
10843 decoder/parser considering EPB, starts parsing.
10844 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10845 describes the emulation_prevention_three_byte.
10846 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10847 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10849 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
10851 * gst-libs/gst/vaapi/Makefile.am:
10852 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10853 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10854 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10855 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10856 * gst-libs/gst/vaapi/meson.build:
10857 libs: utils: h26x: create vaapiutils_h26x
10858 Since there is duplicated code in h264/265 encoder, we could
10859 refactor it to avoid duplicated code.
10860 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10861 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10863 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10865 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10866 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10867 libs: encoder: h264/5: fix wrong return value
10868 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10870 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10872 * gst/vaapi/gstvaapiencode_h264.c:
10873 * gst/vaapi/gstvaapiencode_h265.c:
10874 docs: h264/h265: put parser to the example pipeline
10875 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10877 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10879 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10880 libs: encoder: h265: fix reserved length of bits
10881 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
10882 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10884 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10886 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10887 * tests/test-display.c:
10888 O_CLOEXEC needs _GNU_SOURCE defined
10890 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
10891 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
10892 2.12, one can obtain their definitions by defining either
10893 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
10894 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
10895 2.11 and earlier, one obtains the definitions by defining
10897 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
10898 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
10899 gstreamer-vaapi with the uClibc C library.
10900 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10901 https://bugzilla.gnome.org/show_bug.cgi?id=779953
10903 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10906 README: fix "Sources" section
10907 Update the URL where the release source tarballs can be downloaded.
10909 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10912 README: fix "Reporting bugs" section
10913 The "Reporting bugs" section gives
10914 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
10915 link to report a bug, but this link says "Sorry, entering a bug into the
10916 product gstreamer-vaapi has been disabled.".
10917 This commit fixes the URL to point to the proper location, and also
10918 removes the following paragraph that is no longer correct.
10919 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10920 https://bugzilla.gnome.org/show_bug.cgi?id=779954
10922 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10924 * gst/vaapi/gstvaapipluginutil.c:
10925 plugins: retry to create the VA display
10926 Particularly in GNOME Wayland, the negotiated or created GL context
10927 defines a GLX environment, but VAAPI fails to create a GLX VA
10928 display because there is no a DRI2 connection.
10929 This patch retries to create the VA display if VA cannot create one
10930 with the GL context parameters. Now using the old list of display
10932 This should also work in the case of systems with two GPU, when the
10933 non-VAAPI has the graphics environment, and the VAAPI-enabled one
10934 shall work headless.
10935 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10937 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
10939 * gst/vaapi/gstvaapipostproc.c:
10940 vaapipostproc: texture upload if driver supports GL
10941 Removes GstVideoGLTextureUploadMeta caps feature if the driver
10942 doesn't support opengl.
10943 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10944 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10946 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10948 * gst/vaapi/gstvaapidecode.c:
10949 vaapidecode: texture upload if driver supports GL
10950 When the allowed source pad caps are generated, the GLTextureUpload caps are
10951 only inserted if the driver support OpenGL.
10952 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10954 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10957 configure: Add missing compiler flags
10958 The AC_CHECK_HEADERS macro was failing to locate some headers, in
10959 particular the va_enc_* headers due to missing compiler flags.
10960 https://bugzilla.gnome.org/show_bug.cgi?id=779101
10961 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10963 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
10965 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10966 libs: window: wayland: handle more VAStatus to use vpp
10967 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
10968 we should consider more returned VAStatus to use vpp.
10969 https://bugzilla.gnome.org/show_bug.cgi?id=779400
10971 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
10973 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10974 libs: encoder: ensure profile when context initialization
10975 We can't be sure that encoder's profile is assgined already or not
10976 at context initialization.
10977 https://bugzilla.gnome.org/show_bug.cgi?id=779120
10979 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10981 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10982 libs: encoder: set rate control info only when query succeed
10983 Currently, it set rate control information even when query fails.
10984 In addition, it doesn't update any more since the flag
10985 got_rate_control_mask is set to TRUE.
10986 https://bugzilla.gnome.org/show_bug.cgi?id=779120
10988 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
10991 meson: Update version
10993 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
10996 Back to development
10998 === release 1.11.2 ===
11000 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
11005 * gstreamer-vaapi.doap:
11008 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11010 * gst/vaapi/gstvaapiencode.c:
11011 vaapiencode: merge tags for downstream's info
11012 Add encoder and codec name and the bitrate into the output for
11013 informational purposes. Some muxers or application use it as
11015 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11017 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11019 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11020 libs: encoder: caps can change at any time
11021 The encoder should be able to change its caps even it is already
11022 processing a stream.
11023 This is suppose to happen after a flush so the codedbuf_queue should
11025 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11027 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11029 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11030 libs: encoder: h265: bail if nal unit type fails
11031 Bail out if the NAL unit type is not recognized.
11032 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11034 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11036 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11037 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11038 libs: decoder: h264,h265 avoid uninitialized variable
11039 Configuring GCC to verify possible usage of uninitialized variables,
11040 shows that found_index might be used without previous assignation.
11041 This patch assigns a initial value to found_index, also avoid a
11042 branching when returning the result value.
11043 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11045 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11048 * gst-libs/gst/vaapi/Makefile.am:
11049 * gst/vaapi/gstvaapidecode.c:
11050 * gst/vaapi/gstvaapidecodebin.c:
11051 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11052 Rename to be consistent with H.264 and also H.265 encoder. The
11053 meson build assumed this was already consistently named, and so
11054 previously was not able to actually build the H.265 decoder.
11055 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11057 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11060 meson: gstreamer-codecparsers is a required dep
11061 Just like in configure.ac.
11063 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11066 meson: dist meson build files
11067 Ship meson build files in tarballs, so people who use tarballs
11068 in their builds can start playing with meson already.
11070 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11072 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11073 libs: encoder: vp8: add CBR encoding mode
11074 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11075 Basically it adds the configuration parameters required by libva to
11077 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11078 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11080 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11082 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11083 libs: encoder: vp8: fix bitrate calculation
11084 Base encoder's unit of bitrate is in Kbps. We should honor it so
11085 we use the value of bitrate in VA, in which is expressed in bps.
11086 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11088 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11090 * gst/vaapi/gstvaapipluginbase.c:
11091 plugins: fix build when gcc
11092 In commit a8e482f9 we added a function without parameters, but gcc
11095 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11097 * gst-libs/gst/base/meson.build:
11098 * gst-libs/gst/meson.build:
11099 * gst-libs/gst/vaapi/meson.build:
11100 * gst-libs/meson.build:
11102 * gst/vaapi/meson.build:
11104 * meson_options.txt:
11105 vaapi: add meson build
11106 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11108 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11111 * gst-libs/gst/vaapi/Makefile.am:
11112 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11113 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11114 make: remove gstvaapiversion.h generation
11115 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11117 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11119 * gst/vaapi/gstvaapipluginbase.c:
11120 plugins: use linear storage if not the same device
11121 When dmabuf is negotiated downstream and decoding and rendering are
11122 not done on the same device, the layout has to be linear in order for
11123 the memory to be shared accross devices, since each device has its
11124 own way to do tiling.
11125 Right now this code is rather just a to-do comment, since we are not
11126 fetching the device ids.
11127 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11129 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11131 * gst-libs/gst/vaapi/gstvaapiutils.c:
11132 libs: utils: add HEVC profiles representation
11133 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11135 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11137 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11138 libs: decoder: h264: reduce frame number of gaps
11139 Reduce frame num gaps so that we don't have to create unnecessary
11140 dummy pictures, just throw them away.
11141 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11142 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11144 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11146 * gst/vaapi/gstvaapidecode.c:
11147 vaapidecode: don't GLTextureUpload if dmabuf
11148 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11149 element can handle dmabuf-based buffers, avoiding its negotiation.
11151 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11153 * gst/vaapi/gstvaapidecode.c:
11154 vaapidecode: make pool to export decoder's surface
11155 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11156 pass the current proxy/surface to the pool.
11157 The pool will will export thins given surface instead of exporting a
11158 brand new surface that will never be filled in with meaningfull data.
11159 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11161 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11163 * gst/vaapi/gstvaapipluginbase.c:
11164 plugins: decoder can negotiate dmabuf downstream
11166 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11168 * gst/vaapi/gstvaapivideobufferpool.c:
11169 vaapivideobufferpool: override acquire_buffer()
11170 Overriding the vmethod acquire_buffer() it is possible to attach the
11171 right GstMemory to the current acquired buffer.
11172 As a matter of fact, this acquired buffer may contain any instantiated
11173 GstFdmemory, since this buffer have been popped out from the buffer
11174 pool, which is a FIFO queue. So there is no garantee that this buffer
11175 matches with the current processed surface. Evenmore, the VA driver
11176 might not use a FIFO queue. Therefore, it is no way to guess on the
11178 In short, acquire_buffer on the VA driver and on the buffer pool return
11179 none matching data, we have to manually attach the right GstFdMemory to
11180 the acquired GstBuffer. The right GstMemory is the one associated with
11181 the current surface.
11182 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11184 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11186 * gst/vaapi/gstvaapivideobufferpool.c:
11187 * gst/vaapi/gstvaapivideomemory.c:
11188 vaapivideomemory: export surface if it is provided
11189 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11190 had to create that surface. Now it can also export an already provided
11191 surface. It is useful to export decoder's surfaces (from VA context).
11192 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11194 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11196 * gst/vaapi/gstvaapivideobufferpool.h:
11197 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11198 Useful to let the pool know the current surface proxy when calling
11199 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11200 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11202 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11204 * gst-libs/gst/vaapi/gstvaapisurface.c:
11205 * gst-libs/gst/vaapi/gstvaapisurface.h:
11206 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11207 These functions are useful when a dmabuf-based memory is instantiated in
11208 order to relate the generated buffer @proxy with the processed @surface.
11209 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11211 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11213 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11214 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11215 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11216 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11217 This patch adds a GstMemory as a variable member of the buffer proxy,
11218 because we will need to associate the buffer proxy with the memory
11219 which exposes it. Later, we will know which memory, in the video buffer
11220 pool, is attached to the processed surface.
11221 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11223 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11225 * gst/vaapi/gstvaapipostproc.c:
11226 vaapipostproc: don't GLTextureUpload if dmabuf
11227 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11228 element can handle dmabuf-based buffers, avoiding its negotiation.
11229 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11230 feature if can dmabuf"
11231 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11233 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11235 * gst/vaapi/gstvaapipluginbase.c:
11236 plugins: enable DMAbuf allocator to downstream
11237 If the negotiated caps are raw caps and downstream supports the
11238 EGL_EXT_image_dma_buf_import extension, then the created allocator
11239 is the DMAbuf, configured to downstream.
11240 At this moment, the only element which can push dmabuf-based buffers
11241 to downstream, is vaapipostproc.
11243 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11245 * gst/vaapi/gstvaapipluginbase.c:
11246 * gst/vaapi/gstvaapipluginbase.h:
11247 plugins: check if negotiate dmabuf with downstream
11248 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11249 plugin needs to check if downstream can import dmabuf buffers.
11250 This patch checks if downstream can handle dmabuf, by introspecting the
11251 shared GL context. If the GL context is EGL/GLES2 and have the extension
11252 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11253 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11255 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11257 * gst/vaapi/gstvaapivideomemory.c:
11258 vaapivideomemory: release proxy's data if downstream
11259 The surface created for downstream is going to be filled by VAAPI
11260 elements. So, the driver needs write access on that surface.
11261 This patch releases the derived image held by the proxy, thus the
11262 surface is unmarked as busy.
11263 This is how it has to be done as discussed on libva mailing list.
11264 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11266 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11268 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11269 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11270 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11271 Adds an API to request the user's data release in the buffer proxy.
11272 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11274 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11276 * gst/vaapi/gstvaapipluginbase.c:
11277 * gst/vaapi/gstvaapivideomemory.c:
11278 * gst/vaapi/gstvaapivideomemory.h:
11279 vaapivideomemory: add direction to dmabuf allocator
11280 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11281 we later could do different thing when the allocated memory is for
11282 upstream or dowstream, as required by VA-API.
11283 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11285 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11287 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11288 libs: utils: return NULL if failed to get surface formats
11289 Thus, when generating the allowed caps, the element will throw a
11290 warning and it will use its caps template.
11291 This behavior might be a bug in the VA driver.
11292 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11294 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11296 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11297 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11298 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11300 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11302 * gst/vaapi/gstvaapipostproc.c:
11303 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11304 A value of width/height property should be set to out caps,
11305 if negotiation had been going properly.
11306 So we can use srcpad_info when making decision of scaling.
11307 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11309 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11311 * gst/vaapi/gstvaapidecode.c:
11312 * gst/vaapi/gstvaapiencode.c:
11313 * gst/vaapi/gstvaapipluginutil.c:
11314 * gst/vaapi/gstvaapipluginutil.h:
11315 * gst/vaapi/gstvaapipostproc.c:
11316 * gst/vaapi/gstvaapisink.c:
11317 plugins: handle GL params through context query
11318 If the element instantiated the GL display and context, they should
11319 handle them too through the context query.
11320 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11322 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11324 * gst/vaapi/gstvaapipluginbase.c:
11325 * gst/vaapi/gstvaapipluginbase.h:
11326 * gst/vaapi/gstvaapipluginutil.c:
11327 plugins: create a GL context on certain conditions
11328 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11329 then VAAPI elements look for a local GstGLContext in gst context
11330 sharing mechanism ('gst.gl.local.context').
11331 If this GstGLContext not found either then, only the VAAPI decoders
11332 and the VAAPI post-processor, will try to instantiate a new
11334 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11335 be instantiated with the platform, API and windowing specified by the
11336 instantiated GstGLContext.
11337 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11338 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11340 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11342 * gst/vaapi/gstvaapivideocontext.c:
11343 vaapivideocontext: context type can be rejected
11344 Instead of calling g_return_val_if_fail() to check the context type, we
11345 should use a normal conditional, since it is possible that other context types
11346 can arrive and try to be assigned. Otherwise a critical log message is
11348 This happens when we use playbin3 with vaapipostproc as video-filter.
11349 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11351 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11353 * gst/vaapi/gstvaapipostprocutil.c:
11354 vaapipostproc: use sink caps par if not requested
11355 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11356 is not already set.
11357 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11359 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11361 * gst/vaapi/gstvaapipostproc.c:
11362 * gst/vaapi/gstvaapipostprocutil.c:
11363 vaapipostproc: set interlace mode
11364 if the vaapipostproc is configured to not do deinterlacing, the
11365 interlace-mode in the src caps should be the same as the input caps.
11366 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11368 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11370 * gst/vaapi/gstvaapisink.c:
11371 vaapisink: fix gcc compiler warning
11372 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11374 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11376 * gst/vaapi/gstvaapisink.c:
11377 vaapisink: don't use member variable outside lock
11378 Thus a race condition segfault is avoided.
11379 Original-patch-by: Matt Staples <staples255@gmail.com>
11380 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11382 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11384 * gst/vaapi/gstvaapipluginbase.c:
11385 * gst/vaapi/gstvaapipostproc.c:
11386 plugins: avoid log flood when activating pool
11387 Every time a new buffer is allocated, the pool is activated. This
11388 doesn't impact in performance since gst_buffer_pool_set_active()
11389 checks the current state of the pool. Nonetheless it logs out a
11390 message if the state is the same, and it floods the logging subsystem
11392 To avoid this log flooding first the pool state is checked before
11395 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11397 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11398 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11399 * gst/vaapi/gstvaapidecode.c:
11400 * gst/vaapi/gstvaapidecode.h:
11401 vaapidecode: update internal decoder sink caps
11402 When a new sink caps arrive the internal decoder state is updated
11403 and, if it is, request a downstream renegotiation.
11404 Previously, when new caps arrived the whole decoder where destroyed
11405 and recreated. Now, if the caps are compatible or has the same codec,
11406 the internal decoder is kept, but a downstream renegotiation is
11408 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11410 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11413 Back to development
11415 === release 1.11.1 ===
11417 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11422 * gstreamer-vaapi.doap:
11425 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11427 * gst-libs/gst/vaapi/gstvaapiutils.c:
11428 vaapi: bump ifdef to API 0.40.0 for log redirect
11429 vaSetInfoCallback() is not released yet. It is going to appear in
11432 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11434 * gst-libs/gst/vaapi/gstvaapiutils.c:
11435 vaapiutils: Fix compilation with latest and previous libva releases
11436 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11439 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11441 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11442 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11443 * gst-libs/gst/vaapi/gstvaapiutils.c:
11444 * gst-libs/gst/vaapi/gstvaapiutils.h:
11445 libs: display: redirect logging at initialize
11446 Redirect libva's logs to GStreamer logging mechanism. This is
11447 particularly useful when VA is initialized, because it always logs
11448 out the drivers details.
11449 In order to achieve this a new helper function was added as a wrapper
11450 for the vaInitialize() function.
11451 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11453 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11455 * gst/vaapi/gstvaapipluginbase.c:
11456 plugins: provide at least two buffers in sink pool
11457 Adds two buffers as the default value of minimum buffer.
11458 This would be used when creating and proposing vaapi bufferpool for
11459 sink pad, hence the upstream element will keep, at least, these two
11461 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11462 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11464 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11466 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11467 libs: decoder: h264: don't update cloned attributes
11468 If the frame is a cloned picture, its PTS comes from its parent
11469 picture. In addition, the base decoder doesn't set a valid PTS to
11470 the frame corresponding to the cloned picture.
11471 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11473 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11475 * gst/vaapi/gstvaapivideomemory.c:
11476 vaapivideomemory: check for display
11477 This patch fixes the check of display, rather than check for the
11478 meta, which it is known it exists.
11480 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11482 * gst/vaapi/gstvaapivideomemory.c:
11483 * gst/vaapi/gstvaapivideomemory.h:
11484 vaapivideomemory: rename dmabuf allocator parameters
11485 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11486 'surface_alloc_flags' respectively. The purpose of this change is
11487 to auto-document those parameters.
11488 Also, aligned to this patch, the local 'alloc_info' variable was
11489 renamed as 'surface_info', because it stores the possible surface's
11490 video info, not the allocate one.
11492 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11494 * gst/vaapi/gstvaapivideomemory.c:
11495 * gst/vaapi/gstvaapivideomemory.h:
11496 vaapivideomemory: rename vip to alloc_info parameter
11497 In order to auto-document the code, this patch renames the 'vip'
11498 parameter in the functions related to gst_vaapi_video_allocator_new ()
11499 to 'alloc_info', since it declares the allocation video info from
11500 the vaapi buffer pool.
11502 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11504 * gst/vaapi/gstvaapivideomemory.c:
11505 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11506 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11507 the video format string.
11509 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11511 * gst/vaapi/gstvaapivideomemory.c:
11512 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11513 gst_vaapi_surface_new_with_format() is a wrapper for
11514 gst_vaapi_surface_new_full (). In this case, the former is simpler
11515 than the first. This patch changes that.
11517 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11519 * gst/vaapi/gstvaapipostproc.c:
11520 vaapipostproc: notify if src pad caps changed
11521 If src pad caps have changed, it needs to notify it downstream. In
11522 addition, do not set passthrough if they have changed.
11523 Otherwise, transform sometimes starts processing before caps change.
11524 The passthrough value will be set in fixate later in this case.
11525 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11527 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11529 * gst/vaapi/gstvaapidecodebin.c:
11530 vaapidecodebin: capsfilter to optimize negotiation
11531 Add a capsfilter forcing the caps
11532 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11533 queue and the vaapipostproc so no renegotiation is required.
11534 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11536 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11538 * gst/vaapi/gstvaapivideomemory.c:
11539 vaapivideomemory: fail surface/image configuration
11540 To detect and handle errors during allocator_configure_surface_info()
11541 and allocator_conigure_image_info().
11542 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11543 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11545 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11547 * gst/vaapi/gstvaapisink.c:
11548 vaapisink: ensures raw caps at start()
11549 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11550 race conditions at get_caps(), especially with multiple src elements.
11551 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11553 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11555 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11556 libs: surface: fix error handling code style
11558 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11560 * gst/vaapi/gstvaapivideomemory.c:
11561 vaapivideomemory: add gst_video_info_update_from_surface()
11562 With this function is possible to refactor and remove duplicated code
11563 between dmabuf configuration and direct rendering/uploading
11566 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11568 * gst/vaapi/gstvaapivideomemory.c:
11569 vaapivideomemory: no log object at initialization
11570 When an instance of GstVaapiVideoAllocator fails at initializing, the
11571 log message should not include the allocator's object, because it is
11572 going to be unrefed.
11574 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11576 * gst/vaapi/gstvaapidecode.c:
11577 vaapidecode: lock stream when setting caps
11579 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11581 * gst/vaapi/gstvaapidecode.c:
11582 Revert "vaapidecode: implement negotiate() vmethod"
11583 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11584 videodecode's negotiate() vmethod is also called when events arrive,
11585 but this would mean that the proper configuration of sink pad might
11586 not be complete, thus we should not update the src pad.
11587 Let's keep the old non-vmethod negotitate().
11589 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11591 * gst/vaapi/gstvaapi.c:
11592 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11593 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11595 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
11597 * gst/vaapi/gstvaapiencode.c:
11598 * gst/vaapi/gstvaapiencode.h:
11599 vaapiencode: get surface formats in get_caps()
11600 Query for the supported surface formats in config at get_caps() vmethod.
11601 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11602 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11604 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
11606 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11607 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11608 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11609 This method will return the valid surface formats in the current
11610 config. If the are no VAConfig it is created with the information
11612 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11613 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11615 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
11617 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11618 libs: encoder: split set_context_info()
11619 Split set_context_info() adding init_context_info() which only
11620 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11621 required for VAConfig.
11622 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11623 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11625 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
11627 * gst-libs/gst/vaapi/gstvaapicontext.c:
11628 libs: context: skip VAContext if no frame size
11629 If GstVaapiContextInfo has just initial information, without frame's
11630 width and height, skip the creation of the VAContext, just keep the
11632 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11633 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11635 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11637 * gst-libs/gst/vaapi/gstvaapicontext.c:
11638 libs: context: split context_create()
11639 Split the funcion context_create() into context_create() and
11641 Decoupling VAConfig and VAContext during context creation, we could
11642 query the VAConfig for the supported surface's formats without creating
11644 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11646 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11648 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11649 libs: drm: find render node in hybrid system
11650 Originally the drm backend only tried to open the first render node
11651 found. But in hybrid system this first render node might not support
11652 VA-API (propietary Nvidia driver, for example).
11653 This patch tries all the available nodes until a finding one with a
11654 VA-API supported driver.
11655 https://bugzilla.gnome.org/show_bug.cgi?id=774811
11656 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11657 Reza Razavi <reza@userful.com>
11659 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11661 * gst/vaapi/gstvaapivideomemory.c:
11662 vaapivideomemory: refactor code for readability
11663 Added the inlined function allocator_configure_pools() moving out code
11664 from gst_vaapi_video_allocator_new() to make clear that it is a
11665 post-initalization of the object.
11667 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11669 * gst/vaapi/gstvaapivideomemory.c:
11670 vaapivideomemory: log error if not VA image
11671 Log an error message if the test image for surface downloading
11672 cannot be allocated or mapped.
11674 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11676 * gst/vaapi/gstvaapivideomemory.c:
11677 vaapivideomemory: remove unused macros
11678 These macros are not used. Let us remove them.
11680 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11682 * gst/vaapi/gstvaapivideomemory.c:
11683 * gst/vaapi/gstvaapivideomemory.h:
11684 vaapivideomemory: rename video for allocation_info
11685 Since video_info stores the GstVideoInfo of the allocation caps,
11686 it is clear if we rename it as allocation_info, to distinguish it
11687 later from negotiation_info.
11689 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11691 * gst/vaapi/gstvaapivideomemory.c:
11692 * gst/vaapi/gstvaapivideomemory.h:
11693 vaapivideomemory: add real GstVaapiDmaBufAllocator
11694 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11695 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11696 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11697 from GstDmaBufAllocator.
11698 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11699 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11701 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
11703 * gst/vaapi/gstvaapivideomemory.c:
11704 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11705 Add a helper function to initialize the gst_debug_vaapivideomemory,
11706 to use it either by the GstVaapiVideoAllocatorClass or
11707 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11708 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11709 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11711 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
11713 * gst/vaapi/gstvaapiencode.c:
11714 vaapiencode: release internal encoder at stop()
11715 As the internal encoder is created at start(), let's release it at
11716 stop() vmethod, to be consistent.
11717 gst_vaapiencode_destroy() is called since it also resets the input and
11718 output states, which is something that the base class does internally
11719 after calling stop() vmethod.
11720 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11721 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11723 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
11726 Automatic update of common submodule
11727 From f49c55e to 39ac2f5
11729 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
11731 * gst/vaapi/gstvaapiencode.c:
11732 vaapiencode: call ensure_encoder() at start()
11733 Currently, specific encoder is created during set_format(). This might
11734 lead to race condition when creating profiles with multiple encoders.
11735 This patch moves ensure_encoder() call to start() vmethod to ensure
11736 avoiding the race condition.
11737 https://bugzilla.gnome.org/show_bug.cgi?id=773546
11739 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11741 * gst/vaapi/gstvaapidecodebin.c:
11742 vaapidecodebin: bring back dynamic configuration
11743 In commit ca0c3fd6 we remove the dynamic configuration if the bin
11744 because we assumed that the bin will be always static as it is
11746 Nonetheless we were wrong, because it is possible to request, with a
11747 property, to avoid the use of the post-processor.
11748 Since we want to add a way to disable the post-processor through
11749 environment variables, this remove feature is required again.
11750 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11751 postprocessor inside of the vaapidecodebin is disabled, then
11752 vaapidecodebin is an alias of the old vaapidecode.
11753 https://bugzilla.gnome.org/show_bug.cgi?id=775041
11755 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11757 * gst/vaapi/gstvaapidecode.c:
11758 vaapidecode: implement negotiate() vmethod
11759 Instead of decorating the negotiate() method, let us override it,
11760 so the stream is locked while called.
11761 https://bugzilla.gnome.org/show_bug.cgi?id=775040
11763 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
11766 common: use https protocol for common submodule
11767 https://bugzilla.gnome.org/show_bug.cgi?id=775110
11769 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
11771 * gst-libs/gst/vaapi/Makefile.am:
11772 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11773 In case libva-wayland has its headers not installed in default
11774 locations (like /usr/include), the build fails to include "wayland-client.h":
11775 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
11776 In file included from gstvaapidisplay_wayland.h:27:0,
11777 from gstvaapidisplay_egl.c:35:
11778 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11779 #include <wayland-client.h>
11780 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11781 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11782 for libva-wayland.pc in configure and use this in other places as well. It is thus only
11783 correct and consequent, to do it also at this spot.
11784 https://bugzilla.gnome.org/show_bug.cgi?id=773946
11786 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11788 * gst/vaapi/gstvaapivideocontext.c:
11789 vaapivideocontext: log a message if no bus
11790 Raise a warning if there is no bus when the element tries to post a
11793 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11795 * gst/vaapi/gstvaapisink.c:
11796 vaapisink: create display at open()
11797 Instead of creating the VA display before setting the bus to the
11798 element, it is created when the element is opened.
11799 Basically, this commit is a revert of
11800 5e5d62cac79754ba60057fc2516135aad8d7de35
11801 That was done when the GStreamer's context sharing was not mature
11802 enough as now. There is no reason to keep this hack.
11804 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11806 * gst/vaapi/gstvaapidecode.c:
11807 vaapidecode: don't add video crop meta
11808 Since the differentiation of negotiation caps and allocation caps,
11809 there is no need to add a video crop meta with the negotiation caps.
11810 Hence, removing it.
11811 https://bugzilla.gnome.org/show_bug.cgi?id=773948
11813 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11815 * gst/vaapi/gstvaapivideobuffer.c:
11816 * gst/vaapi/gstvaapivideometa.c:
11817 * gst/vaapi/gstvaapivideometa.h:
11818 remove the video converter from vaapi buffer meta
11819 Since all the video converter were deprecated in gstreamer-1.2, we don't need
11820 to handle them anymore in the vaapi's buffer meta.
11821 This patch removes its usage and the buffer meta's API for that.
11822 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11824 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11826 * gst/vaapi/gstvaapipluginbase.c:
11827 plugins: destroy source pad allocator and pool
11828 First, deactivate source pad pool when the out caps change, and if so,
11829 destroy texture map, the source pad allocator and pool only if the
11830 new caps are different from the ones already set.
11832 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11834 * gst/vaapi/gstvaapipluginbase.c:
11835 plugins: don't destroy sink pad allocator
11836 Don't destroy sink pad allocator at _set_caps() because it will be done at
11837 ensure_sinkpad_buffer_pool() if it is required.
11839 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11841 * gst/vaapi/gstvaapipluginbase.c:
11842 plugins: first validate the out caps
11843 When calling _set_caps() first validate the out caps before doing
11846 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11848 * gst/vaapi/gstvaapidecode.c:
11849 vaapidecode: negotiate after destroying allocator
11850 This is related with bug 758907 when no vaapipostproc is used (no
11851 vaapidecodebin). In order to negotiate downstream we need to destroy
11852 the source pad allocator, otherwise the same allocated buffers are
11853 used, failing the mapping.
11855 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11857 * gst/vaapi/gstvaapivideomemory.c:
11858 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11859 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11860 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
11862 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11864 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11866 * gst/vaapi/gstvaapipluginbase.c:
11867 plugins: update the src pad allocator video info
11868 Update the size, stride and offset of the source pad allocator video
11869 info, so the pool could set the correct GstVideoMeta
11870 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11872 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11874 * gst/vaapi/gstvaapivideomemory.c:
11875 vaapivideomemory: add missing documentation
11876 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11878 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11880 * gst/vaapi/gstvaapipluginbase.c:
11881 plugins: use early return without goto
11882 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11884 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11886 * gst/vaapi/gstvaapipluginbase.c:
11887 * gst/vaapi/gstvaapivideomemory.c:
11888 * gst/vaapi/gstvaapivideomemory.h:
11889 plugins: add allocator to allocation query
11890 This patch adds the created allocator to the allocation query either
11891 in decide_allocation() and propose_allocation() vmehtods.
11892 With it, there's no need to set the modified allocator's size in the
11893 pool configuration.
11894 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11896 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
11898 * gst/vaapi/gstvaapivideobufferpool.c:
11899 vaapivideobufferpool: set correct buffer size
11900 We should set the correct buffer size when we are configuring the pool,
11901 otherwise the buffer will be discarded when it returns to the pool.
11902 Indeed when the ref-count of a buffer reaches zero, its pool will queue
11903 it back (and ref it) if, and only if, the buffer size matches the
11904 configured buffer size on the pool.
11905 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
11906 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11908 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11910 * gst/vaapi/gstvaapivideomemory.c:
11911 vaapivideomemory: check for memory allocator
11912 When calling gst_vaapi_video_memory_copy() the allocator of the memory
11913 to copy should be allocated by the vaapi allocator.
11914 This patch does this verification.
11916 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11918 * gst/vaapi/gstvaapivideomemory.c:
11919 vaapivideomemory: code style fixes
11920 A cosmetic commit for enhance readability of the casts and method
11923 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11925 * gst/vaapi/gstvaapivideomemory.c:
11926 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
11927 Instead of having a gst_vaapi_video_memory_free() that is only going to
11928 be called by gst_vaapi_video_allocator_free(), let's just remove the first
11929 and merged into the second.
11931 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11933 * gst/vaapi/gstvaapivideomemory.c:
11934 vaapivideomemory: avoid virtual methods casting
11935 Use the expected virtual method signatures for readability.
11937 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11939 * gst/vaapi/gstvaapivideomemory.c:
11940 vaapivideomemory: remove unimplemented methods
11941 Remove unimplemented method for allocator mem_share() and mem_is_span().
11943 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11945 * gst/vaapi/gstvaapivideomemory.c:
11946 vaapivideomemory: fail if frame map can't get plane
11947 If map() vmethod in GstVideMeta cannot get the plane data, return false,
11948 thus the caller will not try to read invalid memory.
11949 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11951 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11953 * gst/vaapi/gstvaapivideomemory.c:
11954 * gst/vaapi/gstvaapivideomemory.h:
11955 vaapivideomemory: lock map and unmap operations
11956 In order to avoid race condition when two threads call map/unmap the same
11957 VA surface, this patch mutex these operations.
11958 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11960 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11962 * gst/vaapi/gstvaapivideomemory.c:
11963 vaapivideomemory: refactor vaapi memory unmapping
11964 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
11965 gst_vaapi_video_memory_unmap() when unmapping.
11966 This patch refactors both methods adding the common function
11967 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
11968 is correctly reset.
11969 Additionally, only when mapping flag has the WRITE bit, it set the image as
11970 current, which was done in gst_video_meta_map_vaapi_memory() but no in
11971 gst_vaapi_video_memory_map().
11972 In order to make this, the mapping flags were required, so instead of
11973 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
11974 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11976 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11978 * gst/vaapi/gstvaapivideomemory.c:
11979 vaapivideomemory: refactor vaapi memory mapping
11980 There were duplicated code in gst_video_meta_map_vaapi_memory() and
11981 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
11982 This patch refactors both methods adding the common function
11983 map_vaapi_memory().
11984 Additionally, only when flag has the READ bit it calls
11985 ensure_images_is_current(), which was done in
11986 gst_video_meta_map_vaapi_memory() but no in
11987 gst_vaapi_video_memory_map().
11988 https://bugzilla.gnome.org/show_bug.cgi?id=772151
11990 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11992 * gst/vaapi/gstvaapidecode.c:
11993 vaapidecode: unref allowed_sinkpad_caps at close()
11994 The variable member allowed_sinkpad_caps is constructed querying the
11995 current VA display. Bearing that in mind, the variable shall be freed
11996 when the VA display changes or is removed.
11997 This patch moves the freeing of allowed_sinkpad_caps to close(), when
11998 the VA display is freed.
12000 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12002 * gst/vaapi/gstvaapisink.c:
12003 vaapisink: finish event thread at stop()
12004 The thread that handles window's events should be finished during
12005 pipeline's shutdown, otherwise it will remain alive during pipeline
12006 re-activation, leading to unexpected problems.
12007 This patch fixes failures of intensive_state_change scenario of
12009 https://bugzilla.gnome.org/show_bug.cgi?id=774241
12011 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12013 * gst/vaapi/gstvaapipostproc.c:
12014 vaapipostproc: enhance debug message
12015 "gst_pad_push" is not a good description of the event.
12017 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12019 * gst/vaapi/gstvaapipostproc.c:
12020 postproc: honor gst_pad_push() return value
12021 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12022 deadlock during seek.
12023 This patch returns the same error of gst_pad_push() and log out the
12025 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12027 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12029 * gst/vaapi/gstvaapidecode.c:
12030 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12031 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12032 compiled with out EGL/GLX support: it shall not support
12033 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12034 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12035 allowed src caps for vaapedecode if EGL/GLX.
12037 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12039 * gst/vaapi/gstvaapivideomemory.c:
12040 vaapivideomemory: increment map counter only if succeeded
12041 Previously the frame map counter increased independently if the map succeeded
12042 or not. This leaded to critical messages and crashes if the frame was unable
12043 to be mapped, but the counter increased.
12044 This patch increases the map counter only if the map operation occurred.
12045 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12047 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12049 * gst/vaapi/gstvaapipluginbase.c:
12050 plugins: set negotiation caps in src allocator
12051 When the allocator is created, it stores the allocation caps. But sometimes
12052 the "allocation caps" may be different from the "negotiation caps".
12053 In this case, the allocator should store the negotiation caps since they
12054 are the ones used for frame mapping with GstVideoMeta.
12055 When vaapispostproc is used, this is not a problem since the element is assume
12056 to resize. But when using a vaapi decoder only, with a software renderer, it
12057 fails in this case.
12058 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12060 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12062 * gst/vaapi/gstvaapidecode.c:
12063 * gst/vaapi/gstvaapidecode.h:
12064 vaapidecode: generate source pad caps
12065 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12066 raw formats, so, the src caps can negotiate the exact caps that the context
12069 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12071 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12072 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12073 libs: decoder: add _get_surface_formats()
12074 This function exposes the available formats of the surfaces in the the current
12075 context to the plugins.
12077 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12079 * gst-libs/gst/vaapi/gstvaapicontext.c:
12080 * gst-libs/gst/vaapi/gstvaapicontext.h:
12081 libs: context: ensure context formats
12082 This patch ensures to get the formats, as filter does, available in the
12083 decoder / encoder context.
12084 The context fills up the array as soon it is created, otherwise the pipeline
12085 could get stalled (perhaps this is a bug in my HSW backend).
12086 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12088 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12090 * gst-libs/gst/vaapi/gstvaapifilter.c:
12091 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12092 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12093 libs: move get_surface_formats to utils_core
12094 The query of all the supported formats for a VA config were only used by the
12095 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12096 negotiate a suitable raw format with downstream, we need to query these
12097 formats against the decoder's config.
12098 This patch is the first step: moves the code in filter's ensure_image() to a
12099 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12100 shared later by the decoder.
12101 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12103 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12105 * gst/vaapi/gstvaapipluginbase.c:
12106 plugins: remove set_sinkpad_dmabuf_allocator()
12107 Since when the sink pad allocator is created, it is decided if the required
12108 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12111 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12113 * gst/vaapi/gstvaapipluginbase.c:
12114 plugins: ensure display when getting raw caps
12115 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12116 meanwhile it is transforming caps. The problem is that stop() calls
12117 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12118 the va display is used in tranform_caps() when it is extracting the possible
12119 format conversions. This display disappearing generates warning messages.
12120 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12121 hence it doesn't go away meanwhile it is used, even if the
12122 gst_vaapi_plugin_base_close() is called in other thread.
12123 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12125 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12127 * gst/vaapi/gstvaapiencode_h264.c:
12128 * gst/vaapi/gstvaapiencode_h265.c:
12129 plugins: fix code style for errors
12131 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12133 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12134 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12135 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12136 * gst-libs/gst/vaapi/gstvaapicontext.c:
12137 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12138 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12139 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12140 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12141 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12142 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12143 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12144 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12145 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12146 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12147 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12148 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12149 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12150 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12151 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12152 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12153 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12154 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12155 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12156 * gst-libs/gst/vaapi/gstvaapifilter.c:
12157 * gst-libs/gst/vaapi/gstvaapiimage.c:
12158 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12159 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12160 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12161 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12162 * gst-libs/gst/vaapi/gstvaapisurface.c:
12163 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12164 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12165 * gst-libs/gst/vaapi/gstvaapitexture.c:
12166 * gst-libs/gst/vaapi/gstvaapiutils.c:
12167 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12168 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12169 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12170 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12171 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12172 libs: fix code style for errors
12174 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12176 * gst/vaapi/gstvaapipluginbase.c:
12177 * gst/vaapi/gstvaapivideocontext.c:
12178 plugins: update GstGL deprecated symbol
12179 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12181 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12183 * gst/vaapi/gstvaapipluginbase.c:
12184 plugins: direct render when raw video
12185 Enable the direct rendering with linear surfaces if the negotiated src caps
12186 are video/x-raw without features.
12187 Pass also the caps, since they are needed to know the requested caps features.
12189 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12191 * gst/vaapi/gstvaapipluginbase.c:
12192 plugins: move src allocator error to instantiator
12193 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12194 into the ensure_srcpad_allocator() from the caller,
12195 gst_vaapi_plugin_base_decide_allocation()
12197 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12199 * gst/vaapi/gstvaapipluginbase.c:
12200 plugins: enable direct upload if raw video
12201 Enable the direct upload with linear surfaces if the negotiated sink caps are
12202 video/x-raw without features.
12204 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12206 * gst/vaapi/gstvaapipluginutil.c:
12207 * gst/vaapi/gstvaapipluginutil.h:
12208 pluginutil: add gst_caps_is_video_raw()
12210 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12212 * gst/vaapi/gstvaapipluginbase.c:
12213 plugins: receive caps in ensure_sinkpad_allocator()
12214 Instead of receiving the GstVideoInfo structure as parameter, get the original
12215 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12216 which allocator instantiate.
12218 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12220 * gst/vaapi/gstvaapivideomemory.c:
12221 vaapivideomemory: destroy derived image at unmap
12222 If the allocator was configured to use direct upload or rendering, the
12223 generated derived image created at mapping needs to be destroyed after
12224 unmapping, because, in order to process the surface, it should not be marked
12225 as "busy" by the driver.
12227 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12229 * gst/vaapi/gstvaapivideomemory.c:
12230 vaapivideomemory: enhance logs for direct modes
12231 Print, conditionally, only the enabled direct mode.
12233 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12235 * gst/vaapi/gstvaapivideomemory.c:
12236 * gst/vaapi/gstvaapivideomemory.h:
12237 vaapivideomemory: add direct upload flag
12238 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12239 GstVaapiVideoMemory.
12240 It still doesn't apply any functional change.
12242 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12244 * gst/vaapi/gstvaapipluginbase.c:
12245 * gst/vaapi/gstvaapivideomemory.c:
12246 * gst/vaapi/gstvaapivideomemory.h:
12247 vaapivideomemory: set direct rendering at run-time
12248 The way to experiment with the direct rendering is through and internal
12249 compiler pre-processor flag.
12250 The current change set enables a way to specified at run-time, as a flag
12251 passed to the allocator at instanciation time.
12253 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12255 * gst/vaapi/gstvaapivideomemory.c:
12256 vaapivideomemory: log in perf category when copy
12257 Log in performance category when the derive image handling fails, falling back
12260 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12262 * gst/vaapi/gstvaapivideomemory.c:
12263 vaapivideomemory: error log is derive image fails
12264 Instead of a silently failure of the derive image, this patch log an error
12265 message according to the failure.
12267 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12269 * gst/vaapi/gstvaapivideomemory.c:
12270 vaapivideomemory: store surface alloc flags in qdata
12271 For sake of consistency, we should add the requested surface allocation flags
12272 to the object's qdata structure.
12274 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12276 * gst/vaapi/gstvaapivideomemory.c:
12277 vaapivideomemory: category init when object define
12278 Move the Gstreamer debug category initialize to the GObject definition.
12280 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12282 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12283 libs: vaapitexturemap: trivial code-style fix
12285 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12287 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12288 libs: display: egl: avoid recreate native display
12289 Instead of passing the native descriptor of the display, just pass the received
12290 GstVaapiDisplay and reuse it.
12292 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12294 * gst/vaapi/gstvaapipluginbase.c:
12295 plugins: log the GstVaapiDisplay name
12296 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12297 name. Log it instead of the memory address.
12299 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12301 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12302 libs: window: egl: pass native va display
12303 When creating a GstVaapiWindowEGL, it also creates native window by its own
12304 native display. It should pass the native display, either X11 or Wayland.
12305 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12307 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12309 * gst-libs/gst/vaapi/gstvaapidebug.h:
12310 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12311 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12312 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12313 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12314 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12315 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12316 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12317 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12318 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12319 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12320 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12321 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12322 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12323 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12324 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12325 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12326 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12327 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12328 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12329 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12330 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12331 * gst/vaapi/gstvaapivideocontext.c:
12332 libs: display: GstVaapiDisplay as GstObject descendant
12333 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12334 instead of GstVaapiMiniObject. In this way we can use all the available
12335 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12336 In addition, a new debug category for GstVaapiDisplay is created to make it
12337 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12338 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12339 This patch is a step forward to expose GstVaapiDisplay for users in a future
12341 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12342 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12344 === release 1.11.0 ===
12346 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12349 Back to development
12351 === release 1.10.0 ===
12353 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12358 * gstreamer-vaapi.doap:
12361 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12363 * gst/vaapi/gstvaapidecodebin.c:
12364 vaapidecodebin: resurrect disable-vpp property
12365 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12367 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12369 * gst/vaapi/gstvaapidecodebin.c:
12370 vaapidecodebin: name the internal queue
12371 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12373 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12375 * gst/vaapi/gstvaapidecodebin.c:
12376 * gst/vaapi/gstvaapidecodebin.h:
12377 vaapidecodebin: remove unused variables
12378 Since vaapipostproc is only registered if the driver supports it, all the
12379 support for dynamic loading were removed. Though some leftovers remained.
12380 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12382 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12384 * docs/plugins/Makefile.am:
12385 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12386 * docs/plugins/running.xml:
12387 docs: document environment variables
12388 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12390 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12392 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12393 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12394 * gst/vaapi/Makefile.am:
12395 * gst/vaapi/gstvaapidecode.c:
12396 * gst/vaapi/gstvaapidecodebin.c:
12397 * gst/vaapi/gstvaapidecodedoc.c:
12398 docs: replace vaapidecode with each codec
12399 In the spirit of the codec split, this patch removes the documentation of
12400 vaapidecode and adds a page per each possible decoder.
12401 Nonetheless, only those available in the compilation system are going to be
12402 instrospected, because the rest are not registered.
12404 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12406 * gst/vaapi/gstvaapipluginutil.c:
12407 * gst/vaapi/gstvaapivideobuffer.c:
12408 * gst/vaapi/gstvaapivideometa.c:
12409 docs: add missing long descriptions
12411 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12413 * gst/vaapi/gstvaapipostproc.c:
12414 vaapipostproc: use GST_*_OBJECT when possible
12415 Since we can have several vaapipostproc operating in a pipeline, it is useful
12416 to know which one is generating the logging message.
12417 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12419 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12421 * gst/vaapi/gstvaapidecode.c:
12422 * gst/vaapi/gstvaapidecode.h:
12423 vaapidecode: rename member to allowed_sinkpad_caps
12424 vaapidecode has a member named allowed_caps, but this name is not enough
12425 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12426 No functional changes were included.
12427 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12429 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12431 * gst/vaapi/gstvaapiencode_h264.c:
12432 * gst/vaapi/gstvaapiencode_h265.c:
12433 * gst/vaapi/gstvaapisink.c:
12434 * gst/vaapi/gstvaapivideomemory.c:
12435 * gst/vaapi/gstvaapivideometa.c:
12436 * gst/vaapi/gstvaapivideometa_texture.c:
12437 plugins: fix code style for errors
12438 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12440 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12442 * gst/vaapi/gstvaapivideomemory.c:
12443 vaapivideomemory: comment style
12444 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12446 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12448 * gst/vaapi/gstvaapivideomemory.c:
12449 * gst/vaapi/gstvaapivideomemory.h:
12450 vaapivideomemory: rename input parameter
12451 In order to clarify the use of flag as input parameter, it is renamed to
12452 surface_alloc_flag, since it is used when creating a VA surface with certain
12454 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12456 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12458 * gst/vaapi/gstvaapidecode.c:
12459 vaapidecode: rename element description
12460 So encoders and decoders have similar descriptions.
12461 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12463 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12465 * gst/vaapi/gstvaapiencode_h264.c:
12466 * gst/vaapi/gstvaapiencode_h265.c:
12467 vaapiencode: h264, h265: rename codec name
12468 So encoder and decoders have the same codec name.
12469 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12471 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12473 * gst/vaapi/gstvaapipluginbase.c:
12474 plugins: simplify code
12475 Merge two lines of variable declarations.
12476 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12478 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12480 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12481 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12482 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12483 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12484 libs: minor correction for logical consistency
12485 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12486 use its methods, even though it doesn't change functionality.
12487 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12488 GstVaapiObject, hence its methods shall be used.
12489 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12491 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12493 * gst/vaapi/gstvaapivideomemory.c:
12494 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12495 In short GstFdMemory is configured to call close when using
12497 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12499 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12502 * gst-libs/gst/vaapi/Makefile.am:
12503 build: clean up the dlopen usage
12505 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12507 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12508 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12509 encoder: h264,h265: fix regression in offset count
12510 In commit dc35dafa a bug was introduced because I assumed that
12511 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12512 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12514 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12517 docs: update README
12519 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12521 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12522 libs: display: egl: remove unused header include
12523 The header gmodule.h is not used since the library dynamic loading for EGL
12524 display was removed.
12525 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12527 === release 1.9.90 ===
12529 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12535 * gstreamer-vaapi.doap:
12538 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12540 * gst/vaapi/gstvaapidecode.c:
12541 * gst/vaapi/gstvaapidecodebin.c:
12542 * gst/vaapi/gstvaapiencode_h264.c:
12543 * gst/vaapi/gstvaapiencode_h265.c:
12544 * gst/vaapi/gstvaapiencode_jpeg.c:
12545 * gst/vaapi/gstvaapiencode_mpeg2.c:
12546 * gst/vaapi/gstvaapiencode_vp8.c:
12547 * gst/vaapi/gstvaapipostproc.c:
12548 * gst/vaapi/gstvaapisink.c:
12549 vaapi: use new gst_element_class_add_static_pad_template()
12550 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12551 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12553 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12555 * gst/vaapi/gstvaapipluginbase.c:
12556 plugins: reset textures at negotiation/shutdown
12557 When caps reconfiguration is called, the new downstream frame size might be
12558 different. Thus, if the downstream caps change,the display's texture map is
12560 In addition, during pipeline shutdown, textures in texture map have to be
12561 released, since each one have a reference to the GstVaapiDisplay object, which
12562 is a dangerous circular reference.
12563 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12564 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12566 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12568 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12569 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12570 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12571 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12572 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12573 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12574 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12575 * gst/vaapi/gstvaapivideometa_texture.c:
12576 libs: display{egl,glx}: cache GstVaapiTextures
12577 instances when created and reuse
12578 This patch improves performance when glimagesink uploads a GL texture.
12579 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12580 instance of GstVaapiTextureMap, so our internal texture structure can be found
12581 by matching the GL texture id for each frame upload process, avoiding the
12582 internal texture structure creation and its following destruction.
12583 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12584 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12586 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
12588 * gst-libs/gst/vaapi/Makefile.am:
12589 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12590 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12591 libs: vaapitexturemap: implement GstVaapiTextureMap
12592 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12593 reused. Internally it is a hash table.
12594 Note that it is GstObject based rather than GstVaapiObject, as part of the future
12595 converstion to GstObject of most of the code.
12596 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12597 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12599 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12601 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12602 encoder: vp8: Increase the allocation size for coded buffer
12603 We are not getting enough compression for some streams and
12604 encoded frame end up with more size than allocated.
12605 Assuming a compression ratio of 4, which should be good enough
12606 for holding the frames.
12607 https://bugzilla.gnome.org/show_bug.cgi?id=771528
12609 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12611 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12612 encoder: vp9: Fix refresh frame flag setting
12613 While doing the mode-1 referece picture selection,
12614 the circular buffer logic was not correctly setting the
12615 refresh frame flags as per VP9 spec.
12616 Make sure refresh_flag[0] get updated correclty after
12617 each cycle of GST_VP9_REF_FRAMES.
12618 https://bugzilla.gnome.org/show_bug.cgi?id=771507
12620 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12622 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12623 vaapidecode: codec_data minimal size is 7
12624 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12625 stream, not in the codec_data, so the size of codec_data might be 7.
12626 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12627 https://bugzilla.gnome.org/show_bug.cgi?id=771441
12629 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12631 * gst/vaapi/gstvaapidecode.c:
12632 vaapidecode: reset decoder hard when set_format()
12633 set_format() is called by upstream when the stream capabilites has changed.
12634 Before, if the new stream is compatible with the old one the VA decoder was
12635 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12636 when the upstreamer parsers gets more details of the stream, such as the
12637 framerate. Hence, when the src caps are negotiates, the further sink caps
12638 updates are ignored.
12639 This patch forces the VA decoder destroying and recreation when set_format()
12641 https://bugzilla.gnome.org/show_bug.cgi?id=770921
12643 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
12646 configure: Depend on gstreamer 1.9.2.1
12648 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12650 * gst/vaapi/gstvaapivideomemory.c:
12651 Revert "vaapivideomemory: load VA Image when mapping to write"
12652 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12654 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
12657 Automatic update of common submodule
12658 From b18d820 to f980fd9
12660 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
12663 Automatic update of common submodule
12664 From f49c55e to b18d820
12666 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12668 * gst/vaapi/gstvaapipluginbase.c:
12669 plugins: set allocator's image size to sinkpad bufferpool
12670 Otherwise the buffer is always ditched by the bufferpool, losing performance.
12671 https://bugzilla.gnome.org/show_bug.cgi?id=771035
12673 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12675 * gst-libs/gst/vaapi/gstvaapisurface.c:
12676 libs: surface: ensure composite overlay is not bigger
12677 Ensure the composition overlay rectangle (subtitles) is not bigger than
12678 the surface where it is going to be composited and rendered.
12679 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12681 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
12683 * gst/vaapi/gstvaapivideomemory.c:
12684 vaapivideomemory: load VA Image when mapping to write
12685 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12686 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12688 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12690 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12692 * gst/vaapi/gstvaapidecode.c:
12693 vaapidecode: merge vc1 and wmv3 elements
12694 This patch merges vaapivc1dec and vaapiwmv3dec into a single
12695 vaapivc1dec. Also, removed the WMVA format, since it is not
12696 supported by libva.
12697 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12699 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12701 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12702 decoder: vc1: fails only on advanced profile
12703 In commit 2eb4394 the frame coding mode was verified for progressive
12704 regardless the profile. But the FCM is only valid in the advanced
12705 profile. This patch checks for the advanced profile before verifying FCM for
12707 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12709 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12711 * gst/vaapi/gstvaapi.c:
12712 vaapi: DISPLAY envvar as dependency
12713 In a multiple video cards system, a X11 environment may have different VA
12714 capabilities. This patch tracks the DISPLAY environment variable to
12715 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12716 https://bugzilla.gnome.org/show_bug.cgi?id=770357
12718 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12720 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12721 decoder: vc1: Fail only on actual interlaced frames
12722 In the earlier patch:
12723 f31d9f3 decoder: vc1: Print error on interlaced content
12724 Decoding would error out if the interlace flag was set in the
12725 sequence bdu. This isn't quite right because a video can have this
12726 flag set and yet not have any interlaced pictures.
12727 Here instead we error out when either parsing a field bdu or
12728 decoding a frame bdu which has fcm set to anything other than
12730 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12731 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12733 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
12736 Back to development
12738 === release 1.9.2 ===
12740 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
12745 * gstreamer-vaapi.doap:
12748 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
12750 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12751 decoder: vc1: Print error on interlaced content
12752 Interlaced video is as yet unsupported in the vc1 element. Print
12753 an error to make that more obvious.
12754 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12756 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12758 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12759 encoder: h264: fix C90 mixed declarations and code
12760 Commit 4259d1a introduced this compilation error. This patch fixes it.
12762 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12764 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12765 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12766 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12767 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12768 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12769 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12770 to avoid overflows, underflows and loss of precision.
12771 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12773 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12775 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12776 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12777 vaapiencode: h264,h265: validate fps numerator
12778 Validate that fps numerator is non-zero so it can be used to calculate
12779 the duration of the B frame.
12780 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12781 order to aviod overflows, underflows and loss of precision.
12782 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12784 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
12786 * gst/vaapi/gstvaapi.c:
12787 encoders: demote to RANK_NONE since not fit for autoplugging yet
12788 Encoders claim to support a whole bunch of input formats but then
12789 just error out if the format is not actually supported, even if
12790 there's a converter in front. This means they're not fit for
12791 autoplugging in encodebin or camerabin yet and therefore should
12792 not have a rank. People can still use them in custom pipelines.
12793 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12795 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12797 * gst/vaapi/gstvaapipluginbase.c:
12798 plugins: check dmabuf-import for sink pad allocator
12799 Check earlier if upstream video source has activated the dmabuf-import
12800 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12803 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12805 * gst/vaapi/gstvaapipluginbase.c:
12806 plugins: reset allocators if video info changed
12807 If the frame size or format, change, the allocators are reset, so a new ones
12808 can be created with the new video info.
12810 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12812 * gst/vaapi/gstvaapipluginbase.c:
12813 plugins: remove sink pad allocator if caps change
12814 If the negotiated sinkpad caps change, destroy the assignated allocator,
12815 because it is not valid anymore.
12817 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12819 * gst/vaapi/gstvaapipluginutil.c:
12820 * gst/vaapi/gstvaapipluginutil.h:
12821 pluginutil: const params to gst_video_info_changed()
12822 Since they are not modified, we should mark them as const.
12824 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12826 * gst/vaapi/gstvaapipluginbase.c:
12827 * gst/vaapi/gstvaapivideomemory.c:
12828 * gst/vaapi/gstvaapivideomemory.h:
12829 gstvaapivideomemory: allocator's image size getter
12830 Add the method gst_allocator_get_vaapi_image_size() for the
12831 GstVaapiVideoAllocator, which gets the size of the allocated images with the
12832 current video info.
12833 This method replaces the direct call to the allocator's image info when the
12834 pool is configured.
12836 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
12838 * gst/vaapi/gstvaapipluginbase.c:
12839 plugins: update buffer pool size with new allocator's image size
12840 Depends on media, video size is sometimes updated with new allocator.
12841 It leads to dismatch between bufferpool's set size and real allocated buffer size.
12842 In this case, it causes every buffer is freed during release in bufferpool,
12843 which should be reused. This affects performance.
12844 https://bugzilla.gnome.org/show_bug.cgi?id=769248
12846 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12849 configure: remove gmodule-2.0 EGL dependency
12850 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12851 thus the dependency to gmodule-2.0 is not mandatory anymore.
12853 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12856 configure: Fix non-fatal PKG_CHECK_MODULES invocations
12857 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12858 the package is missing, but action-if-not-found was given as an empty
12859 string which still causes the default action to run, which halts
12861 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12862 https://bugzilla.gnome.org/show_bug.cgi?id=769237
12864 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12866 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12867 libs: egl: remove dynamic library loading code
12868 Since the upstream of gstreamer-vaapi, the library is not a public shared
12869 object anymore. But the EGL support depended on this dynamic library, so the
12870 EGL support was broken.
12871 This patch removes the dynamic library loading code and instantiates the
12872 EGL display using either X11 or Wayland if available.
12873 https://bugzilla.gnome.org/show_bug.cgi?id=767203
12875 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12877 * gst/vaapi/gstvaapi.c:
12878 * gst/vaapi/gstvaapidecode.c:
12879 * gst/vaapi/gstvaapidecode.h:
12880 vaapidecode: register only the available decoders
12881 In order to register only the available decoders, this patch queries the
12882 created test VA display, which uses the currently used back-end (X11, Wayland,
12883 DRM, …) on the used display device.
12884 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12886 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12888 * gst/vaapi/gstvaapi.c:
12889 * gst/vaapi/gstvaapipluginutil.c:
12890 * gst/vaapi/gstvaapipluginutil.h:
12891 vaapi: register only the available encoders
12892 In order to register only the available encoders, this patch queries the
12893 created test VA display, which uses the currently used back-end (X11,
12894 Wayland, DRM, …) on the used display device.
12895 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12897 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12899 * gst/vaapi/gstvaapidecode.c:
12900 * gst/vaapi/gstvaapidecodebin.c:
12901 vaapidecode: split all the codecs
12902 Split the vaapidecode to all the supported codecs with the format
12904 vaapidecode is stil registered as a GObject type, but not as a
12905 GStreamer feature, so it can be used internally by vaapidecodebin without
12906 changing its code too much.
12907 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12909 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12911 * gst/vaapi/gstvaapidecodebin.c:
12912 vaapidecodebin: simplify the code
12913 Since the elements dependant of the VA video processor are now only registered
12914 if it is available, vaapidecodebin code can be simplified a lot, removing all
12915 the code required to check if the VA video processor was available.
12916 https://bugzilla.gnome.org/show_bug.cgi?id=768899
12918 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12920 * gst/vaapi/gstvaapidecode.c:
12921 vaapidecode: delay the GstVaapiDisplay instantiating
12922 Delay the GstVaapiDisplay instantiating until when changing the state from
12923 READY to PAUSE. In this way the element has more chances to find an already
12924 created GstVaapiDisplay, or a GL context, in the pipeline.
12925 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12927 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12929 * gst/vaapi/gstvaapipluginutil.c:
12930 pluginutil: set GLX display type
12931 The function gst_vaapi_create_display_from_gl_context() cretes a
12932 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
12933 when the GL platform was GLX, but a plain X11 VA display.
12934 This patch fixes that, by querying the GL platform earlier.
12935 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12937 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12939 * gst/vaapi/gstvaapipluginbase.c:
12940 * gst/vaapi/gstvaapivideocontext.c:
12941 * gst/vaapi/gstvaapivideocontext.h:
12942 plugins: add gst_vaapi_plugin_base_find_gl_context()
12943 Using the GstContext mechanism, it is possible to find if the pipeline
12944 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
12945 meta. This is interesting because we could negotiate system memory caps
12946 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
12947 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12949 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12951 * gst/vaapi/gstvaapipluginbase.c:
12952 * gst/vaapi/gstvaapipluginbase.h:
12953 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
12954 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
12957 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12959 * gst/vaapi/gstvaapipluginbase.h:
12960 plugins: remove common change_state() vmethod
12961 Remove the common change_state() vmethod for all the plugins, since no one is
12964 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12966 * gst/vaapi/gstvaapidecode.c:
12967 vaapidecode: remove change_state() vmethod
12968 Since the driver checkup is done at registering, there is no need to do it
12969 when changing the element state from NULL to READY. This patch remove this
12970 vmethod from vaapidecode.
12972 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12974 * gst/vaapi/gstvaapi.c:
12975 vaapi: register vaapipostproc only if supported
12976 Query the GstVaapiDisplay to know if the driver supports video
12977 postprocessing. If does, then register vaapipostproc and vaapidecodebin
12979 This patch will simplify the design of vaapidecodebin.
12980 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12982 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12984 * gst/vaapi/gstvaapi.c:
12985 vaapi: don't register if VA driver is unsupported
12986 Using the test VA display, the driver name is queried, and if it is not
12987 white-listed, the plugin rejects to register any element.
12988 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12990 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12992 * gst/vaapi/gstvaapipluginbase.c:
12993 * gst/vaapi/gstvaapipluginutil.c:
12994 * gst/vaapi/gstvaapipluginutil.h:
12995 plugins: add gst_vaapi_driver_is_whitelisted()
12996 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
12997 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
12998 when registering the plugin's feature set with the test VA display.
12999 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13001 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13003 * gst/vaapi/gstvaapi.c:
13004 vaapi: instantiate a VA display when registering
13005 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13006 features, if it fails, no gstreamer-vaapi element is registering.
13007 The purpose of this patch is to avoid a situation where the user has
13008 gstreamer-vaapi installed but their VA-API setup is not functional, which may
13009 lead to unexpected behavior.
13010 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13012 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13015 * gst/vaapi/gstvaapi.c:
13016 vaapi: declare external dependencies
13017 There are two main external dependencies that define the feature set of this
13018 plugin: a) the kernel and b) the VA driver
13019 This patch tracks both dependencies, if any of them change, GStreamer will
13020 re-inspect the plugin.
13021 The kernel is tracked through the device files /dev/dri/card*
13022 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13023 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13024 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13025 since they modify the driver lookup.
13026 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13027 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13029 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13031 * gst/vaapi/gstvaapidecode.c:
13032 vaapidecode: remove unneeded initializations
13033 GObject's memory is set to zero, so there is no need to initialize to zero or
13034 NULL it's class variables.
13036 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13038 * gst/vaapi/gstvaapipluginbase.h:
13039 plugins: remove undefined macros
13041 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13043 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13044 Revert "gstvaapisurface_drm: release image when done"
13045 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13046 372a03a9e38acbf435eb80bf31d9a9844069e504.
13047 While the dmabuf handle is exported, the derive image must exist, otherwise
13048 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13049 leading into a file descriptors leak.
13051 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13053 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13054 encoder: h265: fix code-style
13056 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13058 * gst/vaapi/gstvaapipostproc.c:
13059 vaapipostproc: update filters at color balance
13060 This is a fix for a regression of previous commit, which updates the filters
13061 only when the property is set, because it is also required to update the
13062 filter when the color balance interface change its values.
13064 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13066 * gst/vaapi/gstvaapipostproc.c:
13067 * gst/vaapi/gstvaapipostproc.h:
13068 vaapipostproc: make it enable/disable pass-through mode
13069 In case that sink caps and src caps are same, and no filtering parameter set,
13070 pass-through mode is enabled.
13071 If new filtering parameter is set during playback, it makes it reconfiguring,
13072 so that pass-through mode is changed
13073 In addition, updating filter is performed during reconfiguration, if needed.
13074 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13076 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13078 * gst-libs/gst/vaapi/gstvaapifilter.c:
13079 * gst-libs/gst/vaapi/gstvaapifilter.h:
13080 * gst/vaapi/gstvaapipostproc.c:
13081 vaapipostproc: checking and updating filter parameter only when it's set
13082 This patch is to avoid checking filter value at every frame.
13083 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13085 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13087 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13088 decoder: h265: handle the SEI NAL units included in codec_data
13089 The prefix/suffix SEI nal units can appear in codec_data too
13090 which weren't handled before. Parse these SEI headers to
13092 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13094 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13096 * docs/plugins/Makefile.am:
13097 build: doc: do not redefine MAINTAINERCLEANFILES
13098 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13099 overload it, the files should be added.
13101 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13103 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13104 encoder: h264: Fix MVC encode while enabling dct8x8
13105 Pack the transform_8x8_mode_flag and other necessary rbsp data
13106 in packed_pps header for MVC encode.
13107 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13109 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13111 * gst/vaapi/gstvaapisink.c:
13112 vaapisink: demote a debug message to trace
13113 Reduces noise when debugging.
13115 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13117 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13118 wayland: Error check before using cached wl_display
13119 A planar(or some other) buffer allocation may fail on the driver, then
13120 the wayland connection becomes invalid, not able to send request or
13121 receive any event. So we need to set up a new wayland connection if
13122 there's an error detected on the cached wl_display.
13123 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13124 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13126 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13129 Automatic update of common submodule
13130 From ac2f647 to f49c55e
13132 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13134 * gst/vaapi/gstvaapiencode.c:
13135 vaapiencode: demote a log to trace level
13136 Removes noise when debugging.
13138 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13140 * gst/vaapi/gstvaapiencode.c:
13141 vaapiencode: implement flush() vmethod
13142 In order to handle correctly seek and other operations, vaapiencode should
13143 flush all the remaining data from the encoder without pushing it downstream.
13144 This patch implements the flush() vmethod, only after of pausing the
13145 source pad task, and restarting it again after the flush stop.
13146 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13147 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13149 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13151 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13152 decoder: vc1: flush dpb only if opened
13153 Flush the decode picture buffer, if and only if, the decoder is
13154 started. Otherwise the dpb structure might be NULL.
13155 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13157 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13159 * gst/vaapi/gstvaapidecode.c:
13160 * gst/vaapi/gstvaapidecode.h:
13161 vaapidecode: drop non-keyframe in reverse playback
13162 To avoid surface-exhausted situation during reverse playback,
13163 drop frames except for key frame.
13164 Also, to avoid the corruption of the parser state, flush() vmethod
13165 doesn't destroy the VA decoder when playing in reverse.
13166 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13167 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13169 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13171 * gst/vaapi/gstvaapidecode.c:
13172 vaapidecode: unref output frame earlier
13173 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13174 unref that extra reference earlier making the code simpler to follow.
13175 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13177 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13179 * gst/vaapi/gstvaapidecode.c:
13180 vaapidecode: remove gst_vaapidecode_internal_flush()
13181 As gst_vaapidecode_finish() is the only callee of
13182 gst_vaapidecode_internal_flush(), it is better to inline it.
13183 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13185 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13187 * gst/vaapi/gstvaapidecode.c:
13188 vaapidecode: flush output adapter at drain()
13189 Calling drain() vmethod means "decode any data it can at this point, but that
13190 more data may arrive after". Hence, vaapidecode should check if there is data
13191 in the output adapter and process them, without destroying the decoded picture
13193 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13194 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13195 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13197 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13199 * gst/vaapi/gstvaapidecode.c:
13200 vaapidecode: call purge at flush()
13201 Calling flush() vmethod means "to flush all remaining data from the decoder
13202 without pushing it downstream".
13203 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13204 gst_video_decoder_have_frame() if there is still something in the input
13205 adapter, which may push buffers to downstream by calling handle_frame().
13206 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13207 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13208 decoder and releases all the rest of decoded frames.
13209 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13211 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13213 * tests/elements/Makefile.am:
13214 * tests/elements/test-vaapisink.c:
13215 test: elements: remove spurious linkage
13216 Element tests only need to link against gstreamer libraries.
13218 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13221 configure: Require GLib >= 2.40 like everywhere else
13223 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13226 Back to development
13228 === release 1.9.1 ===
13230 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13236 * gstreamer-vaapi.doap:
13239 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13241 * tests/elements/test-vaapisink.c:
13242 tests: elements: rotate orientation event
13244 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13247 * tests/Makefile.am:
13248 * tests/elements/Makefile.am:
13249 * tests/elements/test-vaapisink.c:
13250 tests: elements: Add testsuite for vaapisink
13251 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13253 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13255 * gst-libs/gst/vaapi/gstvaapitypes.h:
13256 * gst-libs/gst/vaapi/gstvaapivalue.c:
13257 * gst/vaapi/gstvaapisink.c:
13258 * gst/vaapi/gstvaapisink.h:
13259 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13260 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13262 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13264 * gst/vaapi/gstvaapipostproc.c:
13265 vaapipostproc: return caps template if no display
13266 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13267 be able to return the available raw caps handled by the VA display, but that
13268 only should happen when there a VA display. If there's none, the element
13269 should use the caps template.
13270 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13272 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13274 * gst/vaapi/gstvaapipostproc.c:
13275 vaapipostproc: don't require a vaapi display for all caps queries
13276 This delays the requirement of having a GstVaapiDisplay until later
13277 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13279 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13281 * gst-libs/gst/vaapi/gstvaapiutils.c:
13282 utils: report VP9 profiles
13283 Add VP9Profile0-3 name mapping.
13285 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13287 * gst/vaapi/gstvaapi.c:
13288 vaapi: nest includes under USE_ENCODER macro
13289 This is a missed changeset from commit 1c05c53, since also header includes
13292 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13294 * gst/vaapi/gstvaapi.c:
13295 vaapi: nest encoders under USE_ENCODER macro
13296 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13297 macro, it is clearer to nest them, showing explicitly the dependency relation.
13299 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13301 * gst/vaapi/gstvaapivideocontext.c:
13302 vaapivideocontext: check if query context is NULL
13303 Under certain conditions the element might receive a positive context query
13304 but without a context instance. This situation will lead to a segmentation
13305 fault when traversing the context list in the pipeline.
13306 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13308 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13310 * gst-libs/gst/vaapi/Makefile.am:
13311 * gst-libs/gst/vaapi/glibcompat.h:
13312 * gst-libs/gst/vaapi/sysdeps.h:
13313 remove unused glibcompat.h
13314 glibcompat.h is no longer doing anything. Remove it.
13315 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13316 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13318 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13320 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13321 encoder: h264: Use high profile by default
13322 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13323 by default. This will cause the default profile to be high instead
13324 of baseline. In most situations this is the right decision, and
13325 the profile can still be lowered in the case of caps restrictions.
13326 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13327 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13329 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13331 * gst/vaapi/gstvaapidecodebin.c:
13332 vaapidecodebin: element warning if missing element
13333 Raise an element warning if a required element is not available, thus the
13334 pipeline will post a warning message and the application will be informed.
13336 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13338 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13339 decoder: h265: fix to release all dpb pictures
13340 Without this, all dpb pictures are not released during flush,
13341 because we used the global dpb_count variable for checking the
13342 dpb fullness which get decremented in dpb_remove_index()
13343 routine during each loop iteration.
13344 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13346 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13349 Automatic update of common submodule
13350 From ac2f647 to f363b32
13352 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13354 * gst/vaapi/gstvaapidecode.c:
13355 * gst/vaapi/gstvaapipostproc.c:
13356 vaapi: fix minor leaks
13357 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13359 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13361 * gst/vaapi/gstvaapi.c:
13362 vaapi: remove an already included header
13363 gst/gst.h is already included in gstcompat.h
13365 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13367 * gst/vaapi/gstvaapidecodebin.c:
13368 vaapidecodebin: add vp9 in sink pad template
13370 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13372 * gst/vaapi/gstvaapisink.c:
13373 vaapisink: return caps template if no display
13374 If vaapisink received a caps query before getting a VA display, it returned
13375 only the surfaces related caps. This behavior broke the autovideosink
13377 This patch returns the pad's template caps if no VA display, otherwise the
13378 caps are crafted as before.
13379 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13381 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13383 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13384 decoder: vp9: Update comment about context resets
13385 Clarify that vaapi context resets are never needed for vp9, but
13386 that ensure_context() needs called when the size increases so that
13387 new surfaces can be allocated.
13388 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13389 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13391 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13393 * gst-libs/gst/vaapi/gstvaapicontext.c:
13394 * gst-libs/gst/vaapi/gstvaapicontext.h:
13395 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13396 gstvaapicontext: control reset_on_resize with option
13397 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13398 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13400 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13402 * gst/vaapi/gstvaapivideobufferpool.c:
13403 vaapivideobufferpool: add video meta to config when needed
13404 In cases where we know the video meta must be present, add it to
13405 the pool configuration.
13406 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13407 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13409 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13411 * gst/vaapi/gstvaapipluginbase.c:
13412 plugins: retry pool config
13413 if gst_buffer_pool_set_config returns FALSE, check the modified
13414 config and retry set_config if the config is still acceptable.
13415 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13416 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13418 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13420 * gst/vaapi/gstvaapivideomemory.h:
13421 vaapivideomemory: internal attributes to methods
13422 Mark as internal the functions used by VA-API dmabuf allocator.
13424 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13426 * gst/vaapi/gstvaapipluginbase.c:
13427 plugins: remove precondition for decide_allocation()
13428 There's no need to check for the display in the plugin object when
13429 decide_allocation() vmethod is called, because the display will created or
13430 re-created along the method execution.
13432 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13434 * gst/vaapi/gstvaapipluginbase.c:
13435 plugins: avoid possible memory leaks
13436 Get the pool config just before use it, to avoid a memory leak if the
13437 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13438 cannot be set, avoid keep a not used allocator in the pool.
13440 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13442 * gst/vaapi/gstvaapipluginbase.c:
13443 plugins: use GstParentBufferMeta
13444 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13445 use the GStreamer's GstParentBufferMeta.
13446 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13448 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13450 * gst/vaapi/gstvaapipluginbase.c:
13451 plugins: cache VASurfaces from dmabufs
13452 This patch avoids the creation of a VASurface each time a new input buffer is
13453 processed, caching them in the input buffer itself.
13454 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13456 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13458 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13459 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13460 * gst/vaapi/gstvaapipluginbase.c:
13461 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13462 Instead of passing the data already in GstVideoInfo, let's just pass the
13463 GstVideoInfo structure.
13464 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13466 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13468 * gst/vaapi/gstvaapipluginbase.c:
13469 * gst/vaapi/gstvaapipluginbase.h:
13470 plugins: use an unique allocator per pad
13471 Instead of instantiating an allocator per vaapivideobufferpool, only one
13472 allocator is instantiated per element's pad and shared among future pools.
13473 If the pad's caps changes, the allocator is reset.
13474 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13476 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13478 * gst/vaapi/gstvaapipluginbase.c:
13479 * gst/vaapi/gstvaapivideobufferpool.c:
13480 * gst/vaapi/gstvaapivideobufferpool.h:
13481 vaapivideobufferpool: share options flag with pluginbase
13482 Originally, vaapivideobufferpool has a set of boolean variables for the
13483 buffer configuration options.
13484 This pach changes these boolean variables for a single bitwise, just as
13485 it is used in pluginbase. Hence, the internal enum was moved to
13486 vaapivideobufferpool header.
13487 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13489 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13491 * gst/vaapi/gstvaapipluginbase.c:
13492 plugins: add gst_vaapi_plugin_base_create_pool()
13493 This patch refactors the code in pluginbase in order to centralize the buffer
13494 pool instantiation. As the buffer pool config may have different options, these
13495 are gathered using a bitwise flag.
13496 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13498 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13500 pluginbase negotiates allocator with bufferpool
13501 Originally vaapivideobufferpool instantiates its own allocator regardless the
13502 received configuration, and it relies in custom configuration options to
13503 choose which kind of allocator instantiate.
13504 This patch transfers the responsibility of the allocator instantiate to
13505 vaapipluginbase and pass it to the vaapivideobufferpool through its
13507 * gst/vaapi/gstvaapipluginbase.c
13508 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13509 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13510 bufferpool configuration
13511 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13513 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13514 allocator in bufferpool configuration
13515 * gst/vaapi/gstvaapivideobufferpool.c
13516 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13517 allocator, process the received one through its configuration.
13518 * gst/vaapi/gstvaapivideobufferpool.h: removed
13519 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13520 * gst/vaapi/gstvaapivideomemory.c
13521 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13522 allocator with the vaapi qdata.
13523 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13525 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13527 * gst/vaapi/gstvaapivideobufferpool.c:
13528 vaapivideobufferpool: keep only current video info
13529 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13530 the current one, the negotiated. The old one is not needed at all.
13531 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13533 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13535 * gst/vaapi/gstvaapipluginbase.c:
13536 * gst/vaapi/gstvaapipluginutil.c:
13537 * gst/vaapi/gstvaapipluginutil.h:
13538 * gst/vaapi/gstvaapivideomemory.c:
13539 pluginutil: add gst_video_info_force_nv12_if_encoded()
13540 This lines repeat a couple times in the code, so it would be better to put it
13542 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13544 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13546 * gst/vaapi/gstvaapipluginutil.c:
13547 * gst/vaapi/gstvaapipluginutil.h:
13548 * gst/vaapi/gstvaapipostproc.c:
13549 * gst/vaapi/gstvaapivideobufferpool.c:
13550 pluginutil: add gst_video_info_changed() helper
13551 This function is shared among different elements, so let factorized it.
13552 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13554 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13556 * gst/vaapi/gstvaapipostprocutil.c:
13557 vaapipostproc: Add colorimetry attributes to src caps
13558 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13560 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13562 * gst/vaapi/gstvaapidecode.c:
13563 vaapidecode: remove chroma-site and colorimetry from src caps
13564 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13566 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13568 * gst/vaapi/gstvaapipostproc.c:
13569 * gst/vaapi/gstvaapipostproc.h:
13570 vaapipostproc: add postproc_lock to protect data members
13571 Add a mutex to postproc to protect concurrent access to data members.
13572 Previously set_caps() could release the allowed_srcpad_caps while
13573 transform_caps was in the middle of using it.
13574 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13575 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13577 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13579 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13580 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13581 encoder: vp9: Add simple algorithms for reference picture selection
13582 Added two modes(as properties) for reference picture selection:
13583 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13584 and LastRef is pointing to the previous frame.
13585 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13586 and n-2 th frame as AltRef
13587 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13589 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13591 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13592 encoder: vp9: Define Max frame width and height
13593 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13595 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13597 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13598 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13599 encoder: vp9: Add more propertis for tuning encode quality
13600 Added three tuning properties:
13603 3: luma ac quant-table index
13604 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13606 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13608 * gst/vaapi/Makefile.am:
13609 * gst/vaapi/gstvaapi.c:
13610 * gst/vaapi/gstvaapiencode_vp9.c:
13611 * gst/vaapi/gstvaapiencode_vp9.h:
13612 Add vp9 encode element to "vaapi" plugin
13613 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13615 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13617 * gst-libs/gst/vaapi/Makefile.am:
13618 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13619 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13620 Add vp9 encoder support in libgstvaapi
13621 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13623 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13626 build: Add check for VP9 encode API support in libva
13627 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13629 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13631 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13632 gstvaapisurface_drm: fix internal documentation
13634 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13636 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13637 gstvaapisurface_drm: fix code-style
13639 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13641 * gst/vaapi/gstvaapipluginbase.c:
13642 plugins: remove unused header
13643 Remove the include of gst/allocators/allocators.h since it is not used.
13645 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13647 * gst/vaapi/gstvaapivideobufferpool.h:
13648 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13649 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13650 keep compatibility definition.
13651 This patch removes the definition of
13652 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13653 gst-plugins-base version 1.2.2
13655 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13657 * gst/vaapi/gstvaapipluginbase.c:
13658 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13659 This is a helper function to improve the readability of
13660 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13663 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13665 * gst/vaapi/gstvaapipluginbase.c:
13666 plugins: deactivate buffer pool before unref
13667 This buffer pool may still be processing buffers when a caps renegotiation is
13668 done. This one-liner patch deactivates the pool to drain it before it
13671 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13673 * gst/vaapi/gstvaapipluginbase.c:
13674 plugins: no sinkpad bufferpool when decoder
13675 Right now, the decoders create a buffer pool for their sink pad which is not
13676 used at all, because the decoders have never proposed it to upstream.
13677 This patch avoids the buffer pool instantiating when the element inherits from
13678 the GstVideoDecoder class.
13680 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13682 * gst/vaapi/gstvaapipluginbase.c:
13683 plugins: avoid to get/set pool config twice
13684 This patch is a bit of optimization, since the bufferpool configuration is get
13685 when the pool is created. Hence, we only need to request it when the pool from
13686 the allocation query is reused.
13688 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13690 * gst/vaapi/gstvaapipluginbase.c:
13691 plugins: destroy pool earlier if non-vaapi
13692 If the offered pool in decide_allocation() vmethod doesn't have the
13693 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13694 so it could be created later.
13696 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13698 * gst/vaapi/gstvaapivideobufferpool.c:
13699 vaapivideobufferpool: split caps validation
13700 When validating the caps from bufferpool config, this patch distinguishes the
13701 error from no caps received (NULL) from the invalid caps (cannot be converted
13702 into GstVideoInfo structure).
13704 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13706 * gst/vaapi/gstvaapidecode.c:
13707 * gst/vaapi/gstvaapipluginbase.c:
13708 plugins: check for caps in query earlier
13709 Check for caps as soon gst_query_parse_allocation() returns.
13711 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13713 * gst/vaapi/gstvaapipluginbase.c:
13714 * gst/vaapi/gstvaapipluginbase.h:
13715 plugins: remove unused variables
13716 This variables stopped to be used since commit 001a5c63, which removed the
13719 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13721 * gst/vaapi/gstvaapipluginbase.c:
13722 plugins: fix potential memleak from commit 9159328
13723 If gst_video_info_from_caps() fails it is required to unref the instantiated
13726 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13728 * gst/vaapi/gstvaapipostproc.c:
13729 vaapipostproc: handle if gst_video_info_from_caps() fails
13730 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13733 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13735 * gst/vaapi/gstvaapipluginbase.c:
13736 plugins: handle if gst_video_info_from_caps() fails
13737 Let's play safe and return error if, somehow, the received caps are wrong.
13739 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13741 * gst/vaapi/gstvaapipluginbase.c:
13742 plugins: relate errors to instance
13743 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13744 will show the name of the vaapipluginbase instance that failed.
13745 Also, the code-style is fixed, where some error labels need to be surrounded
13748 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13750 * gst/vaapi/gstvaapipluginbase.c:
13751 * gst/vaapi/gstvaapipluginutil.c:
13752 * gst/vaapi/gstvaapisink.c:
13753 plugins: use GstVideoInfo accessors
13754 Instead of access to GstVideInfo members directly, use their accessors
13755 macros. This patch makes more resistance to future changes in GStreamer core.
13757 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13759 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13760 * gst/vaapi/gstvaapipluginbase.c:
13761 * gst/vaapi/gstvaapipostproc.c:
13762 * tests/simple-encoder.c:
13763 remove spurious gst_video_info_init()
13764 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13765 gst_video_info_init(), hence it is not required to call it before them. This
13766 patch removes these spurious calls.
13768 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13770 * gst/vaapi/gstvaapipluginbase.c:
13771 vaapipluginbase: code-style: rename goto label
13772 The error labels have error_ prefix, but this one.
13774 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13776 * gst/vaapi/gstvaapivideomemory.c:
13777 vaapivideomemory: use allocator custom alloc flag
13778 Instead of a dummy alloc() vmethod, the allocator instance set the flag
13779 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13780 gst_allocator_alloc() on the allocator.
13782 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13784 * gst/vaapi/gstvaapivideobufferpool.c:
13785 vaapivideobufferpool: relate errors to instance
13786 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13787 the vaapivideobufferpool instance that failed.
13789 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13791 * gst/vaapi/gstvaapipluginbase.c:
13792 plugins: remove gst_vaapi_plugin_base_set_pool_config()
13793 This function helper make sense for GStreamer 1.2, but it is not helpful for
13794 greater version since the validation is already done in the API implementation.
13795 Thus, it is removed.
13797 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13799 * gst/vaapi/gstvaapipluginbase.c:
13800 gstvaapipluginbase: Fix typo in doc
13802 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13804 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13805 encoder : h264: Disable b-frame encode in low-power mode
13806 This is a workaround since vaapi-intel-driver doesn't have
13807 support for B-frame encode when utilizing low-power-enc
13809 Fixme :We should query the VAConfigAttribEncMaxRefFrames
13810 instead of blindly disabling b-frame support and set b/p frame count,
13811 buffer pool size etc based on the query result.
13812 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13814 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13816 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13817 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13818 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13819 Remove the duplicate property "low-power-enc" and use the
13820 tune property for enabling low power encoding mode.
13821 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13823 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13825 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13826 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13827 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13829 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13831 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13832 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13833 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13834 encoder: h264: Add support of low power/high performance encoding mode
13835 Added a new property "low-power-enc" for enabling low power
13836 encoding mode. Certain encoding tools may not be available
13837 with the VAEntrypointEncSliceLP.
13838 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13840 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13842 * gst-libs/gst/vaapi/gstvaapitypes.h:
13843 * gst-libs/gst/vaapi/gstvaapiutils.c:
13844 * gst-libs/gst/vaapi/gstvaapivalue.c:
13845 Add mapping for Macroblock level rate control (VA_RC_MB)
13847 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13849 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13850 gstvaapidisplay: Add VAEntrypointEncSliceLP support
13851 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13853 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13855 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13856 * gst-libs/gst/vaapi/gstvaapiprofile.h:
13857 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13858 This is for implementations that supports low_power/high_performance
13859 variant for slice level encode.
13860 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13862 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13864 * gst/vaapi/gstvaapipostprocutil.c:
13865 vaapipostproc: negotiate frame size fixation
13866 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
13867 using the sink caps, also it use the next capsfilter.
13868 This code is a shameless copy of gst_video_scale_fixate_caps() from
13869 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
13870 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13872 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13874 * gst/vaapi/gstvaapipostprocutil.c:
13875 vaapipostproc: don't use GstVideoInfo for src caps
13876 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
13877 this patch enables the first step for caps negotiation with a possible
13878 following caps filter.
13879 _get_preferred_caps() will traverse the possible src caps looking for the one
13880 wit the preferred feature and the preferred color format. Then the color
13881 format, the frame size and the frame rate are fixated.
13882 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13884 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13886 * gst/vaapi/gstvaapipostproc.c:
13887 * gst/vaapi/gstvaapipostprocutil.c:
13888 * gst/vaapi/gstvaapipostprocutil.h:
13889 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
13890 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
13891 No functional changes.
13892 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13894 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13896 * gst/vaapi/gstvaapipostproc.c:
13897 vaapipostproc: simplify code
13898 Change a convoluted snippet to find the preferred color format in the peer
13900 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13902 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13904 * gst/vaapi/gstvaapipostproc.c:
13905 vaapipostproc: use othercaps for preferred caps
13906 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
13907 from fixate_caps() vmethod to find the preferred caps feature and color
13909 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13911 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13913 * gst/vaapi/gstvaapipostproc.c:
13914 vaapipostproc: add fixate_caps() vmethod
13915 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
13916 implements the fixate_caps() vmethod and moves code around.
13917 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13919 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13921 * gst/vaapi/Makefile.am:
13922 * gst/vaapi/gstvaapipostproc.c:
13923 * gst/vaapi/gstvaapipostprocutil.c:
13924 * gst/vaapi/gstvaapipostprocutil.h:
13925 vaapipostproc: set early properties restrictions
13926 When running transform_caps() vmethod, returning the srcpad caps, the caps are
13927 early restricted to the element properties set: width, height, format and
13929 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
13931 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13933 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13935 * gst/vaapi/gstvaapipostproc.c:
13936 vaapipostproc: log the caps transformation
13937 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13939 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13941 * gst/vaapi/gstvaapipostproc.c:
13942 vaapipostproc: no GLTextureUpload in sinkpad
13943 As the vaapipostproc does not process frames with the VideoGLTextureUpload
13944 meta, the feature is removed from the sink pad template.
13945 https://bugzilla.gnome.org/show_bug.cgi?id=765931
13947 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
13949 * gst/vaapi/gstvaapivideobufferpool.c:
13950 vaapibufferpool: do not create texture upload meta if dmabuf
13951 https://bugzilla.gnome.org/show_bug.cgi?id=755072
13953 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13956 build: update git.mk
13958 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13960 * gst/vaapi/gstvaapipluginbase.h:
13961 plugin: fix macro processor check
13962 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
13963 defined in config.h, but it would be 0 or 1 depending on the configure output.
13964 https://bugzilla.gnome.org/show_bug.cgi?id=765702
13966 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13968 * tests/test-display.c:
13969 tests: display: guard possible unused variables
13970 https://bugzilla.gnome.org/show_bug.cgi?id=765702
13972 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13978 * tests/simple-decoder.c:
13979 * tests/test-decode.c:
13980 * tests/test-display.c:
13981 * tests/test-filter.c:
13982 * tests/test-h264.c:
13983 * tests/test-jpeg.c:
13984 * tests/test-mpeg2.c:
13985 * tests/test-mpeg4.c:
13986 * tests/test-subpicture-data.c:
13987 * tests/test-subpicture.c:
13988 * tests/test-surfaces.c:
13989 * tests/test-textures.c:
13990 * tests/test-vc1.c:
13991 * tests/test-windows.c:
13992 tests: inforce gstreamer code-style
13994 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13996 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13997 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
13998 It seems driver requires enablement of cu_qp_delta_enabled_flag
13999 for modifying QP values to controll the CBR mode bitrate.
14000 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14002 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14004 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14005 encoder: h265: Add CBR Encoding support
14006 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14008 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
14010 * gst-libs/gst/vaapi/gstvaapisurface.c:
14011 gstvaapisurface: explicitely clear TILING flag if dmabuf
14012 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14014 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14016 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14017 gstvaapisurface_drm: release image when done
14018 Otherwise intel-vaapi-driver will fail to process the exported surface because
14019 it will find it is currently derived, so considered as busy.
14020 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14022 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14024 * gst/vaapi/gstvaapipostproc.c:
14025 vaapipostproc: already have a surface proxy if dmabuf
14026 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14028 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14030 * gst/vaapi/gstvaapipostproc.c:
14033 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14035 * gst/vaapi/gstvaapidecode.c:
14036 * gst/vaapi/gstvaapipluginbase.c:
14037 * gst/vaapi/gstvaapipluginbase.h:
14038 vaapidecode: search driver in whitelist
14039 If the backend driver vendor string is not in a white-list, and the
14040 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14041 change it state from NULL to READY, hence the auto-plug mechanism will look
14042 for another decoder.
14043 This patch assumes the GstContext has already being shared along the pipeline
14044 and the element has a valid GstVaapiDisplay instance.
14045 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14047 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14049 * gst/vaapi/gstvaapidecode.c:
14050 * gst/vaapi/gstvaapiencode.c:
14051 * gst/vaapi/gstvaapipluginbase.c:
14052 * gst/vaapi/gstvaapipluginbase.h:
14053 * gst/vaapi/gstvaapipostproc.c:
14054 * gst/vaapi/gstvaapisink.c:
14055 plugins: rework set_context() vmethod definition
14056 In bug 757598 was added the set_context() vmethod chain up in
14057 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14058 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14059 No error has shown up since none of the element's base classes redefined
14060 set_context() vmethod from GstElement, so always the correct function was
14061 called. Still this code is wrong and this patch make it right.
14062 Since set_context() is the same code, a macro is used to implement that code
14063 in all the gst-vaapi elements.
14064 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14066 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14068 * gst/vaapi/gstvaapipostproc.c:
14069 vaapipostproc: resize if negotiated and allocation caps are different
14070 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14071 the negotiated caps.
14072 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14073 resize the frame to the negotiated, if and only if, some other parameter is
14074 activated to avoid the passthrough. If it is not, the surface won't be mapped
14075 into a image. If not, the image won't be resized and the output buffer would be
14077 This patch will break the passthrough if the allocation query is different
14078 from the negotiation caps, forcing the resizing.
14079 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14081 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14083 * gst/vaapi/gstvaapidecode.c:
14084 vaapidecode: improve code readability
14085 No functional changes.
14087 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14089 * gst/vaapi/gstvaapidecode.c:
14090 vaapidecode: move GstCapsFeatures near to its use
14091 Move the handling of the GstCapsFeatures just after it is used, in order to
14092 avoid handling its memory.
14094 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14096 * gst/vaapi/gstvaapidecode.c:
14097 vaapidecode: caps negotiation checks
14098 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14099 compiled with GL support.
14101 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14103 * gst/vaapi/gstvaapidecode.c:
14104 * gst/vaapi/gstvaapipluginbase.c:
14105 * gst/vaapi/gstvaapipluginbase.h:
14106 * gst/vaapi/gstvaapipostproc.c:
14107 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14109 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14111 * gst/vaapi/gstvaapidecode.c:
14112 vaapidecode: bail early if not caps in decide_allocation()
14114 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14116 * gst/vaapi/gstvaapidecode.c:
14117 * gst/vaapi/gstvaapipluginbase.c:
14118 * gst/vaapi/gstvaapipluginutil.c:
14119 * gst/vaapi/gstvaapipluginutil.h:
14120 * gst/vaapi/gstvaapipostproc.c:
14121 plugin: use allowed caps filter from element
14122 Instead of using the srcpad template caps for filtering the peer caps, the
14123 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14124 for the element's allowed caps.
14125 With this modification, the vaapipostproc element simplifies a bit its code.
14126 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14128 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14130 * gst/vaapi/gstvaapidecode.c:
14131 * gst/vaapi/gstvaapipluginbase.c:
14132 * gst/vaapi/gstvaapipluginutil.c:
14133 * gst/vaapi/gstvaapipluginutil.h:
14134 * gst/vaapi/gstvaapipostproc.c:
14135 plugin: remove function parameter
14136 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14137 saved if the out format is used for both: in and out. Thus the code is more
14139 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14141 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14143 * gst/vaapi/gstvaapidecode.c:
14144 vaapidecode: warns if driver will do color conversions
14145 If the downstream feature is system memory, the surface has to be mapped,
14146 hence a warning message is logged saying that the driver has to do color
14147 conversions. This might be troublesome because not all the color conversion
14148 combinations are supported by the VA-API drivers, and there is not a reliable
14149 way to know them before hand.
14150 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14152 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14154 * gst/vaapi/gstvaapipluginutil.c:
14155 plugin: honour negotiated format
14156 Instead of setting the requested format by the caller, the function
14157 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14158 the negotiated format.
14159 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14160 given the format list from the negotiated caps, will choose the best one, if
14161 possible, given the native format.
14162 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14164 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14166 * gst/vaapi/gstvaapipluginutil.c:
14167 plugin: simplify caps feature selection
14168 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14169 Instead of intersecting custom caps to find the preferred feature, the peer
14170 caps are traversed in order to find the preferred feature, according to an
14171 ordered feature priority list.
14172 In the case of GLTextureUploadMeta, the colour format is computed using
14173 GstVideoInfo of the selected fixed caps.
14174 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14176 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14178 * gst/vaapi/gstvaapidecode.c:
14179 vaapidecode: use macros for GstVideoInfo
14180 Instead of accessing directly to the members of the structure, use the macros.
14182 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14184 * gst/vaapi/gstvaapidecode.c:
14185 vaapidecode: refactor is_display_resolution_changed()
14186 Make the comparisons more readable and simple.
14187 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14189 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14191 * gst/vaapi/gstvaapidecode.c:
14192 * gst/vaapi/gstvaapidecode.h:
14193 vaapidecode: keep only display_{width,height}
14194 Instead of keeping the structure GstVideoInfo when we are using its width and
14195 height, we only keep these two guints.
14196 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14198 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14200 * gst/vaapi/gstvaapidecode.c:
14201 vaapidecode: decoded_info is valid at src caps update
14202 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14203 is called, then we don't need to verify or replace it with the sinkpad info
14205 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14207 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14209 * gst/vaapi/gstvaapidecode.c:
14210 vaapidecode: always a valid format in decoded_info
14211 Always set a valid format in decoded_info class variable.
14212 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14214 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14216 * gst/vaapi/gstvaapidecode.c:
14217 vaapidecode: code style fixes
14218 No functional changes.
14219 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14221 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14223 * gst/vaapi/gstvaapidecode.c:
14224 vaapidecode: init {decoded,display}_info at open()
14225 It is required to initialize {decoded,display}_info variables when the decoder
14226 is open, not only at instance initialization.
14227 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14229 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14231 * gst/vaapi/gstvaapidecode.c:
14232 * gst/vaapi/gstvaapidecode.h:
14233 vaapidecode: remove spurious class variables
14234 active, do_pool_renego and do_outstate_renego class variables were used to
14235 indicate when negotiate downstream once, but now that each time a new surface
14236 resolution is pop out a renegotation verified, these variable are not required
14238 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14240 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14242 * gst/vaapi/gstvaapidecode.c:
14243 * gst/vaapi/gstvaapipluginbase.c:
14244 * gst/vaapi/gstvaapipluginbase.h:
14245 * gst/vaapi/gstvaapipostproc.c:
14246 remove custom allocation query
14247 When resolving bug 753914, a custom allocation query was added, overlapping
14248 the responsibilities of GstVideoDecoder.
14249 But with the merge of the patches from bug 764421 this overlapping was not
14250 required anymore. This patch restores this situation setting the
14251 allocation_caps in the GstVideoCodecState when needed.
14252 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14254 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14257 Automatic update of common submodule
14258 From 6f2d209 to ac2f647
14260 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14262 * gst/vaapi/gstvaapidecode.c:
14263 * gst/vaapi/gstvaapidecodebin.c:
14264 * gst/vaapi/gstvaapipostproc.c:
14265 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14266 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14267 their caps templates if they were not compiled either with GLX or EGL support.
14269 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14271 * gst/vaapi/gstvaapipluginutil.c:
14272 plugins: fix compilation when EGL/GLX is disabled
14273 The compiler might complain of gst_vaapi_create_display_from_handle() being
14274 unused if both EGL and GLX are disabled. This patch avoid that compilation
14277 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14279 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14280 libs: fix deleting a GstVaapiCodedBufferPool object
14281 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14282 Otherwise it is not called when the pool is destroyed and all objects
14283 referenced by the GstVaapiVideoPool are never released.
14284 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14286 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14288 * gst-libs/gst/vaapi/gstvaapisurface.c:
14289 surface: destroy derived image
14290 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14291 destroyed, otherwise the surface cannot be processed because is being used.
14292 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14294 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14296 * gst/vaapi/gstvaapidecode.c:
14297 vaapidecode: add stop function
14298 Clear any status on the current stream:
14299 stored frames, caps and decoder configuration
14300 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14302 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14304 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14305 decoder: vp9: Align with the ABI changes in vp9 codecparser
14306 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14307 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14308 These fields are only present in keyframe or intra-only frame, no need to
14309 duplicate them for inter-frames.
14310 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14312 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14314 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14315 decoder: vp9 : Add 10bit decoding support (Profile2)
14316 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14318 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14320 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14321 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14322 gstvaapiporfile: Add more VP9 profile definitions
14323 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14325 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14329 build: possibility to disable tests
14330 The configuration option --disable-examples will disable the compilation of
14331 the sample apps in tests/ directory.
14333 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14335 * gst/vaapi/gstvaapiencode_h264.c:
14336 * gst/vaapi/gstvaapiencode_h265.c:
14337 * gst/vaapi/gstvaapiencode_jpeg.c:
14338 * gst/vaapi/gstvaapiencode_mpeg2.c:
14339 * gst/vaapi/gstvaapiencode_vp8.c:
14340 * gst/vaapi/gstvaapipluginutil.h:
14341 * gst/vaapi/gstvaapisink.c:
14342 unify caps template for VAAPI encoders and decoders
14343 There is no difference in VAAPI surface caps between encoders and decoders.
14344 Thus, the patch makes a simplification by removing encoders specific caps and
14345 shares the same definition of VAAPI surfaces caps for all the elements.
14347 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14349 * gst/vaapi/gstvaapidecode.c:
14350 vaapidecode: move gst_vaapidecode_negotiate() code
14351 With it we can remove a function declaration, making the code a bit
14353 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14355 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14357 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14358 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14359 * gst/vaapi/gstvaapidecode.c:
14360 docs: generate vaapijpegdec documentation
14361 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14363 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14365 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14366 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14367 The array_completeness, reserved bit and num_nal_units fields
14368 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14369 but not for each occurance of similar headers.
14370 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14372 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14374 * gst-libs/gst/vaapi/video-format.c:
14375 video-format: Keep the HW order preference while mapping to GstVideoFormats
14377 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14379 * gst/vaapi/gstvaapidecode.c:
14380 * gst/vaapi/gstvaapipluginbase.c:
14381 * gst/vaapi/gstvaapipluginutil.c:
14382 * gst/vaapi/gstvaapipluginutil.h:
14383 * gst/vaapi/gstvaapivideomemory.c:
14384 gst/vaapi: keep precedence for NV12 over I420
14385 Use NV12 as default "assumption" format all over.
14386 NV12 is the default high priority format used my most of the
14389 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14391 * gst/vaapi/gstvaapidecode.c:
14392 vaapidecode: Use video format derived from decoded surface as default src pad format
14393 Use the surface format derived from first decoded surface
14394 to negotiate the downstream video format capabilities.
14395 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14397 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14399 * gst-libs/gst/vaapi/gstvaapiimage.c:
14400 * gst-libs/gst/vaapi/video-format.c:
14401 * gst/vaapi/gstvaapidecode.c:
14402 * gst/vaapi/gstvaapipluginutil.h:
14403 * gst/vaapi/gstvaapisink.c:
14404 Add P010 video format support
14405 The P010 video format is the native format used by the vaapi intel driver
14406 for HEVCMain10 decode . Add support for planes and images of this video format.
14407 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14409 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14411 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14412 libs: x11: allows 30-bit colour depth
14413 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14414 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14415 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14417 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14419 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14421 * gst/vaapi/gstvaapivideometa_texture.c:
14422 gltextureupload: use an array for texture type
14423 Instead of using a single value for the texture type, use an array with 4
14424 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14426 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14428 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14430 * gst/vaapi/gstvaapidecode.c:
14431 * gst/vaapi/gstvaapipluginbase.c:
14432 vaapidecode: Fix decide_allocation handling
14433 Set the already configured pool in decide_allocation query
14434 in cases where pool renegotiation is not required.
14435 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14437 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14439 * gst/vaapi/gstvaapidecode.c:
14440 vaapidecode: Derive and save the decoded surface format
14441 After the decoding of first frame, try to extract the exact
14442 decoded surface format using vaDeriveImage and keep this
14443 as the format in decoded_info.
14444 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14446 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14448 * gst/vaapi/gstvaapidecode.c:
14449 * gst/vaapi/gstvaapidecode.h:
14450 * gst/vaapi/gstvaapipluginbase.c:
14451 * gst/vaapi/gstvaapipluginbase.h:
14452 * gst/vaapi/gstvaapipostproc.c:
14453 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14454 -- Maintaing decoded surface resoluton and actual display resoultion separately
14455 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14456 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14457 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14458 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14459 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14460 This is slight overhead, but safe enough. Optimization could be possible though.
14461 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14463 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14465 * gst/vaapi/gstvaapidecode.c:
14466 vaapidecode: Delay the output format setting until we have a decoded surface
14467 This will help to consoidate the out caps negotiation to a single place,
14468 which will make the code simpler, allows to get the exact decoded format
14469 if needed and the selected chroma type too.
14470 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14472 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14474 * gst/vaapi/gstvaapidecode.h:
14475 vaapidecode: GST_VAAPIDECODE macro is a cast
14476 This patch is the continuation of commit 1e1d3b1d because the function
14477 gst_vaapidecode_get_type() got undefined since then.
14478 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14479 structure. The rest of the GObject handling macros were deleted too.
14481 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14484 Back to development
14486 === release 1.8.0 ===
14488 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14493 * gstreamer-vaapi.doap:
14496 === release 1.7.91 ===
14498 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14503 * gstreamer-vaapi.doap:
14506 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14508 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14509 decoder: h265: Fix offset calculation in codec_data parsing
14510 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14512 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14514 * gst/vaapi/gstvaapidecodebin.c:
14515 vaapidecodebin: don't handle jpeg decoding
14516 As JPEG decoder has been split and demoted, it cannot be handled by
14518 Added a fixme comment regarding the future removal of vaapidecode.
14519 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14521 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14523 * gst/vaapi/gstvaapidecode.c:
14524 vaapidecode: split out jpeg decoder
14525 Split, as a different element, the JPEG decoder.
14526 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14528 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14530 * gst/vaapi/gstvaapi.c:
14531 * gst/vaapi/gstvaapidecode.c:
14532 * gst/vaapi/gstvaapidecode.h:
14533 vaapidecode: register decoder with internal GType
14534 Don't expose the the vaapidecode GType, instead expose a function
14535 which will register element.
14536 This is the first step to split the decoder by codecs.
14537 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14539 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14541 * gst/vaapi/gstvaapidecode.c:
14542 vaapidecode: remove unused function declaration
14543 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14544 code-style of the other pre-declared functions.
14546 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14548 * docs/plugins/Makefile.am:
14549 build: git ignore gtkdoc generated files
14551 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14554 build: handle git ignore in m4 directory
14556 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14558 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14559 vaapidecoder_h265: plug leak of h265 parsing info
14560 If something goes wrong while parsing, the info object is
14562 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14564 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14566 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14567 vaapidecoder_h264: plug leak of h264 parsing info
14568 If something goes wrong while parsing, the info object is
14570 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14572 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14574 * gst/vaapi/gstvaapipluginutil.c:
14575 plugins: fix gstgl and vaapi memory leaks
14576 1\ Unref gl_display and gl_window as soon they are not needed.
14577 2\ Remove an unneeded display type check, since is handled by
14578 gst_vaapi_created_display_from_handle()
14579 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14580 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14581 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14583 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
14585 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14586 vaapidisplay: Fix uninitialized value error for VA attribute
14587 https://bugzilla.gnome.org/show_bug.cgi?id=763362
14589 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14591 * gst/vaapi/gstvaapidecode.c:
14592 * gst/vaapi/gstvaapiencode.c:
14593 plugins: proxy information from downstream caps
14594 Propagate to upstream the downstream information, such as fps, par, etc.
14595 This will fix several "getcaps" critical warnings in gst-validate.
14596 https://bugzilla.gnome.org/show_bug.cgi?id=763300
14598 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14600 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14601 decoder: vp9: Assign values for profile and bit_depth from frame header
14602 bit_depth field has added only in VA-API 0.39.0, added version check.
14604 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
14607 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14608 https://bugzilla.gnome.org/show_bug.cgi?id=763067
14610 === release 1.7.90 ===
14612 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
14617 * gstreamer-vaapi.doap:
14620 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
14623 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14625 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14627 * gst/vaapi/gstvaapidecode.c:
14628 vaapidecode: intersect with filter in getcaps()
14629 In commit 6034734d I forgot to add the caps filter intersection in the
14630 getcaps() vmethod generating a regression when a capsfilter is set in the
14632 This commit adds the caps filter intersection.
14634 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14636 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14637 Add memset to initialize value for VAEncSliceParameterBufferJPEG
14638 https://bugzilla.gnome.org/show_bug.cgi?id=762850
14640 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
14643 Automatic update of common submodule
14644 From b64f03f to 6f2d209
14646 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14651 build: add m4 directory
14652 Instead of rely on the automatic creation of m4 directory by aclocal, we
14653 already control it. Later we could create our own m4 scripts in order to
14654 unclutter configure.ac
14655 https://bugzilla.gnome.org/show_bug.cgi?id=762528
14657 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14659 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14660 decoder: hevc: Fill dependent slice segment headers while parsing
14661 Copy the data into the dependent slice segment header from the
14662 corresponding independent slice segment header during parsing.
14663 Previously the reference to the "previous" independent header was
14664 held through the parsing phase and then dereferenced during the
14665 decoding phase. This caused all dependent headers to be populated
14666 with the data of the AU's last independent header instead of the
14667 proper corresponding header.
14668 https://bugzilla.gnome.org/show_bug.cgi?id=762352
14670 - Reworded commit message
14672 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14674 * gst/vaapi/gstvaapidecode.c:
14675 vaapidecode: use video decoder getcaps()
14676 The usage of getcaps() vmethod is preferred than to handle manually the sink's
14678 In order to avoid function declarations, this patch moves the class_init()
14679 method to the end of the file.
14681 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14683 * gst/vaapi/gstvaapipluginbase.c:
14684 plugins: remove deprecated code
14685 Since we are only supporting current GStreamer version, since 1.3
14686 gst_buffer_pool_config_add_option() checks if the option to add is
14687 already set. There is no need to do it ourselves.
14689 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14691 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14692 vaapidecoder_h265: fix parsing of NALU aligned data
14693 Don't assume the whole buffer is a single NAL, instead look for the
14694 next start code in case there are multiple NALs per buffer.
14695 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14697 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14699 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14700 vaapidecoder_h264: fix parsing of NALU aligned data
14701 Don't assume the whole buffer is a single NAL, instead look for the
14702 next start code in case there are multiple NALs per buffer.
14703 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14705 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
14707 * gst/vaapi/gstvaapisink.c:
14708 vaapisink: Fix event,pad,structure memory leaks
14709 https://bugzilla.gnome.org/show_bug.cgi?id=762229
14711 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14713 * gst/vaapi/gstvaapipluginbase.c:
14714 Add icamerasrc as dmabuf capable peer element
14715 icamerasrc is another gstreamer plugin using to capture RAW
14716 frames from camera device. It is based on libcamhal library.
14717 There are some properties available to control icamera behavior.
14718 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14719 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14720 https://bugzilla.gnome.org/show_bug.cgi?id=759481
14721 Fixme: This is the similar workaround we done for v4l2src.
14722 The workaround will be removed once we fix #755072
14724 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14726 * gst/vaapi/gstvaapipluginbase.c:
14727 vaapipluginbase: Fix structure memory leak
14728 config structure is not being freed in all cases
14729 https://bugzilla.gnome.org/show_bug.cgi?id=762172
14731 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
14733 * gst/vaapi/gstvaapidecode.c:
14734 vaapidecode: Fix videocodec state memory leak
14735 When state is not NULL and either width/height of video info is 0, then state leaks
14736 https://bugzilla.gnome.org/show_bug.cgi?id=762173
14738 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
14740 * gst/vaapi/gstvaapisink.c:
14741 vaapisink: post message for application for unhandled keyboard/mouse events
14742 Makes (most) keyboard shortcuts work in gst-play-1.0 when
14743 the video window has focus.
14745 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
14747 * gst/vaapi/gstvaapidecode.c:
14748 vaapidecode: Fix capsfeature memory leak
14749 https://bugzilla.gnome.org/show_bug.cgi?id=762116
14751 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
14753 * gst/vaapi/gstvaapisink.c:
14754 vaapisink: Fix capsfeature memory leak
14755 caps feature allocated is not being freeing in some cases
14756 https://bugzilla.gnome.org/show_bug.cgi?id=762111
14758 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
14761 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14762 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14763 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14764 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14765 * gst-libs/gst/vaapi/gstvaapifilter.c:
14766 * gst/vaapi/gstvaapidecodebin.c:
14767 * gst/vaapi/gstvaapipluginutil.c:
14768 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14770 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
14773 configure: Fix setting of extra compiler warning flags
14775 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14777 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14778 libs: fix build error
14779 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14780 functions are used only when libva's API version is greater than 0.36.0
14781 This patch guards those functions completely rather than just their
14782 content. The patch is a continuation of commit 38f8fea4
14783 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14784 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14786 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
14788 * tests/simple-encoder.c:
14789 tests: simple-encoder: fix build error
14790 argument mismatch of gsize with 'long unsigned int'
14791 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14793 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14795 * gst/vaapi/gstvaapisink.c:
14796 vaapisink: Fix wrong caps advertising
14797 The get_caps() should only report the supported formats.
14798 https://bugzilla.gnome.org/show_bug.cgi?id=761147
14800 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14803 Automatic update of common submodule
14804 From e97c9bb to b64f03f
14806 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14808 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14809 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14810 * gst/vaapi/gstvaapi.c:
14811 * gst/vaapi/gstvaapiencode_h264.c:
14812 * gst/vaapi/gstvaapiencode_h265.c:
14813 * gst/vaapi/gstvaapiencode_jpeg.c:
14814 * gst/vaapi/gstvaapiencode_mpeg2.c:
14815 * gst/vaapi/gstvaapiencode_vp8.c:
14816 rename encoders to vaapi{codec}enc
14817 Trying to comply with GStreamer's element names, this patch renames the
14818 encoders using the name format vaapi{codec}enc.
14819 In this way, the plugin documentation is linked correctly.
14820 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14822 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14825 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14826 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14828 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14831 build: remove vp9 parser check
14832 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14833 the check of the parser, as we did for the others.
14834 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14836 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14840 Back to development
14841 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14843 === release 1.6.0 ===
14845 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14850 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14852 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14853 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14854 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14855 libs: fix compiler warnings
14856 After setting the release flags, the compiler warns about a couple
14857 initialized variables.
14858 Also marked a couple of set variables as unused, because they are only
14859 used for assertion.
14860 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14862 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14864 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14865 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14866 * gst/vaapi/gstvaapidecode.c:
14867 * gst/vaapi/gstvaapidecodebin.c:
14868 * gst/vaapi/gstvaapiencode_h264.c:
14869 * gst/vaapi/gstvaapiencode_h265.c:
14870 * gst/vaapi/gstvaapiencode_jpeg.c:
14871 * gst/vaapi/gstvaapiencode_mpeg2.c:
14872 * gst/vaapi/gstvaapiencode_vp8.c:
14873 * gst/vaapi/gstvaapipostproc.c:
14874 * gst/vaapi/gstvaapisink.c:
14875 docs: update plugin documentation
14876 Update all the documentation of elements of the vaapi plugin.
14877 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14879 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14883 * docs/Makefile.am:
14884 * docs/plugins/Makefile.am:
14885 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14886 * docs/plugins/gstreamer-vaapi-plugins.types:
14887 * docs/reference/Makefile.am:
14888 * docs/reference/plugins/Makefile.am:
14889 * docs/reference/plugins/plugins-sections.txt:
14890 * docs/reference/plugins/plugins.types:
14891 * docs/version.entities.in:
14892 resurrect gtk-doc machinery
14893 Our auto-generated documentation has been a bit neglected. This patch replaces
14894 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
14895 plugins, elements and libraries.
14896 This patch also re-enables documentation generation.
14897 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14899 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14905 use gst-common submodule
14906 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
14907 GStreamer common submodule.
14908 The documentation generation has been disable temporarily since it needs a
14909 major rework, which will be done in the following commit.
14910 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14912 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14916 add gst-common submodule
14917 Pointing to branch 1.6
14918 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14920 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14922 * gstreamer-vaapi.doap:
14923 add doap descriptor
14924 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
14925 describe software projects, in particular free and open source software.
14926 The description is used in GStreamer as in many other open source projects.
14927 This patch adds the doap description of this project.
14928 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14930 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14932 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
14933 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14934 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
14935 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14937 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
14938 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14939 * gst-libs/gst/vaapi/gstvaapiimage.c:
14940 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
14941 * gst-libs/gst/vaapi/gstvaapipixmap.c:
14942 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
14943 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14944 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
14945 libs: humongous code style fix
14946 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
14947 umbrella, we need to comply with the project's code style. This meant to
14948 change a lot of code.
14949 It was decided to use a single massive patch to update the code style.
14950 I would like to apologize with the original developers of this code because of
14951 the history breakage.
14952 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14954 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14956 * gst-libs/gst/vaapi/gstvaapicontext.c:
14957 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14958 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
14959 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
14960 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14961 * gst/vaapi/gstvaapivideomemory.c:
14962 libs: small refactors to enhance the code style
14963 As gst-indent generated ugly code in these cases, this patch changes the used
14964 idiomatic into other one.
14965 No functional changes were introduced.
14966 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14968 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14970 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14971 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14972 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
14973 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14974 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14975 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14976 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14977 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14978 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14979 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14980 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14981 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
14982 * gst-libs/gst/vaapi/gstvaapifilter.c:
14983 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
14984 * gst-libs/gst/vaapi/gstvaapisurface.c:
14985 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
14986 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
14987 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
14988 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
14989 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14990 * gst-libs/gst/vaapi/gstvaapiwindow.c:
14991 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
14992 libs: small code style fixes
14993 This a set of small code style fixes detected as-is by gst-indent.
14994 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14996 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14998 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14999 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15000 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15001 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15002 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15003 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15004 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15005 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15006 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15007 libs: trivial comment style fixes
15008 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15010 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15012 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15013 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15014 libs: avoid gst-indent mess up
15015 Guard pieces of code to avoid gst-ident to mess up the following code.
15016 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15018 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15020 * gst/vaapi/gstvaapidecode.c:
15021 * gst/vaapi/gstvaapidecodebin.c:
15022 * gst/vaapi/gstvaapipluginutil.c:
15023 * gst/vaapi/gstvaapisink.c:
15024 * gst/vaapi/gstvaapivideomemory.c:
15025 plugins: fix code style
15026 Minor code style changes by executing gst-indent in gst/vaapi directory.
15027 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15029 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15031 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15032 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15033 Fix some more compiler warning
15034 Two (false) compiler warnings about variables potentially
15035 being used uninitialized, and one about a variable being
15037 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15039 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15041 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15042 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15043 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15044 * gst-libs/gst/vaapi/gstvaapifilter.c:
15045 * gst/vaapi/gstvaapidecode.c:
15046 * gst/vaapi/gstvaapipluginbase.c:
15047 * gst/vaapi/gstvaapipluginutil.c:
15048 * gst/vaapi/gstvaapipostproc.c:
15049 * tests/simple-encoder.c:
15050 * tests/test-filter.c:
15051 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15052 Declare variables at the beginning of a code block, which
15053 is how it's done in GStreamer.
15054 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15056 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15058 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15059 decoder: vp9: Fix crop rectangle setting
15060 Align with software vp9dec behaviour: Add crop rectangle
15061 only if display_width/display_height is less than the
15062 frame_hdr->width/frame_hdr->height
15064 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15066 * gst/vaapi/gstvaapidecode.c:
15067 vaapidecode: Fix renegotiation for resolution change
15068 Always renegotiate the pool if the immediate frame which going
15069 to be pushed has a different un-cropped resolution than the already
15072 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15074 * gst/vaapi/gstvaapipluginbase.h:
15075 plugins: use the same pre-processor macro
15076 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15077 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15078 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15079 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15080 in the header file.
15081 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15083 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15085 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15086 decoder: update a deprecated function
15087 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15088 deprecated since GStreamer 1.0.
15089 This patch replace it with gst_adapter_prev_pts()
15090 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15092 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15095 build: honor configure's cache
15096 The user might enable --config-cache when calling configure script. If so, our
15097 configuration variables will not be correctly calculated.
15098 This patch extracts the value of our variables either from the cache or from
15099 the operation result.
15100 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15102 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15105 build: use common version variables
15106 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15108 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15111 build: hard-code an unneeded macro
15112 That macro is required for EGL's dynamic module loading, but since
15113 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15114 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15115 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15117 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15120 build: refactorization of dependency tracking
15121 This patch tries to avoid branching in configure.ac using a more functional
15122 approach in macros usage.
15123 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15125 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15128 build: check for OpenGL either GLX or EGL are requested
15129 Refactor some code in configure.ac to centralize $enable_opengl definition.
15130 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15132 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15135 build: indent and add square braces
15136 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15138 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15141 build: upgrade autotools version dependency
15142 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15144 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15147 build: enhance string comparisons
15148 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15149 the string is empty or undefined.
15150 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15152 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15155 build: remove unused variables
15156 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15158 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15161 build: remove check for old version of gstreamer
15162 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15164 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15167 build: remove GStreamer's parsers checks
15168 This patch removes almost all the parsers check since they are already in place,
15169 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15170 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15172 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15175 * gst/vaapi/Makefile.am:
15176 build: add gstreamer-pbutils dependency
15177 This dependency was added in gstvaapidecodebin with the call
15178 gst_missing_element_message_new().
15179 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15181 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15184 build: fix variable declaration
15185 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15187 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15189 * gst-libs/gst/vaapi/Makefile.am:
15190 build: fix when HEVC decoder is disabled
15191 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15193 The encoder needs functions that are only available when the decoder is
15195 This patch moves the utils functions into the generic sources, such as the
15197 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15199 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15201 * gst/vaapi/Makefile.am:
15202 build: remove unused EGL specific sources
15203 These Makefile variables are not used at all.
15204 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15206 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15208 * gst/vaapi/Makefile.am:
15209 build: remove check for GStreamer 1.2
15210 Since we are working for current stable GStreamer 1.6
15211 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15213 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15215 * gst/vaapi/gstvaapiparse.h:
15216 Remove more video parser crufts
15217 This header is not used anymore since it declares parsers that are
15218 already in GStreamer 1.6
15219 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15221 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15224 * docs/reference/Makefile.am:
15225 * docs/reference/libs/Makefile.am:
15226 * docs/reference/libs/libs-docs.xml.in:
15227 * docs/reference/libs/libs-overrides.txt:
15228 * docs/reference/libs/libs-sections.txt:
15229 docs: remove library documentation which is non-public now
15230 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15232 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15236 * debian.upstream/Makefile.am:
15237 * debian.upstream/changelog.in:
15238 * debian.upstream/compat:
15239 * debian.upstream/control.in:
15240 * debian.upstream/copyright:
15241 * debian.upstream/gstreamer-vaapi-doc.install.in:
15242 * debian.upstream/gstreamer-vaapi.install.in:
15243 * debian.upstream/rules:
15244 Remove debian.upstream packaging
15245 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15247 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15249 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15250 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15251 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15252 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15253 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15254 * gst/vaapi/gstcompat.h:
15255 * gst/vaapi/gstvaapi.c:
15256 * gst/vaapi/gstvaapidecode.c:
15257 * gst/vaapi/gstvaapiencode.c:
15258 * gst/vaapi/gstvaapipluginbase.c:
15259 * gst/vaapi/gstvaapipluginbase.h:
15260 * gst/vaapi/gstvaapipluginutil.c:
15261 * gst/vaapi/gstvaapisink.c:
15262 Remove old gst version guards
15263 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15264 all the old GStreamer version guards.
15265 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15267 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15269 * gst/vaapi/gstvaapiparse.c:
15270 Remove video parser crufts
15271 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15273 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15275 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15277 * docs/reference/libs/Makefile.am:
15278 * docs/reference/plugins/Makefile.am:
15279 * gst-libs/gst/vaapi/Makefile.am:
15280 * gst/vaapi/Makefile.am:
15281 * tests/Makefile.am:
15282 libs: remove versioning
15283 Since we don't install libraries anymore, it makes no sense to keep
15284 versioning them according to the gstreamer's version.
15285 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15287 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15290 * debian.upstream/Makefile.am:
15291 * debian.upstream/control.in:
15292 * debian.upstream/libgstvaapi-dev.install.in:
15293 * debian.upstream/libgstvaapi-drm.install.in:
15294 * debian.upstream/libgstvaapi-glx.install.in:
15295 * debian.upstream/libgstvaapi-wayland.install.in:
15296 * debian.upstream/libgstvaapi-x11.install.in:
15297 * debian.upstream/libgstvaapi.install.in:
15298 * gst-libs/gst/vaapi/Makefile.am:
15299 * tests/Makefile.am:
15300 libs: make libraries no installables
15301 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15303 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15305 * debian.upstream/libgstvaapi-dev.install.in:
15306 * gst-libs/gst/vaapi/Makefile.am:
15307 Do not install libgstvaapi headers
15308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15310 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15314 * patches/Makefile.am:
15315 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15316 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15317 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15318 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15319 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15320 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15321 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15322 * patches/videoparsers/Makefile.am:
15323 * patches/videoparsers/series.frag:
15324 Remove videoparser patches
15326 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15330 * debian.upstream/libgstvaapi-dev.install.in:
15331 * pkgconfig/Makefile.am:
15332 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15333 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15334 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15335 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15336 * pkgconfig/gstreamer-vaapi.pc.in:
15337 Remove pkg-config files
15338 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15340 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15346 * ext/codecparsers:
15347 * gst-libs/gst/Makefile.am:
15348 * gst-libs/gst/codecparsers/Makefile.am:
15349 * gst-libs/gst/vaapi/Makefile.am:
15350 * gst/vaapi/Makefile.am:
15351 Remove codecparsers submodule
15352 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15354 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15359 * debian.upstream/libgstvaapi.install.in:
15361 * ext/libvpx/Makefile.am:
15362 * ext/libvpx/gstlibvpx.c:
15363 * ext/libvpx/gstlibvpx.h:
15364 * ext/libvpx/libgstcodecparsers_vpx.vers:
15365 * ext/libvpx/sources.frag:
15366 * ext/libvpx/upstream:
15367 * gst-libs/gst/codecparsers/Makefile.am:
15368 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15369 Remove libvpx submodule
15370 We will be using upstream codecparsers always.
15371 No more internal libvpx !
15373 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15376 build: fix check for GstJpegParser
15377 Right now the local JPEG parser is always compiled because the check for the
15378 upstreamed version is broken: it looks for an non existent symbol:
15380 This patch changes that check for< GstJpegFrameHdr.
15381 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15383 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15385 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15386 wayland: free the frame in frame_release_callback()
15387 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15388 decouple wl_buffer from frame).
15389 Otherwise the frame may be overwritten while it is still used by the
15391 The frame done callback (frame_done_callback()) is called, when the
15392 compositor is done processing the frame and hands it to the hardware.
15393 The buffer release callback (frame_release_callback()) is called when the
15394 buffer memory is no longer used.
15395 This can be quite some time later: E.g. if weston (with the DRM backend)
15396 puts the buffer on a hardware plane, then then buffer release callback is
15397 called when the kernel is done with the buffer. This is usually when the
15398 next frame is shown, so most likely after the frame done callback for the
15400 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15401 destroy()" the mentioned possible leak should no longer be a problem, so
15402 reverting this change should cause no leaking buffers.
15403 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15404 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15405 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15407 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15409 * gst/vaapi/gstvaapipostproc.c:
15410 vaapipostproc: check ANY caps at transform_caps()
15411 When transforming downstream caps we should check for ANY caps from peer pad,
15412 otherwise we get a segmentation fault.
15413 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15414 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15416 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15418 * gst/vaapi/gstvaapisink.c:
15419 vaapisink: ignore frame if its upload failed
15420 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15421 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15422 ignored by the vaapisink, leading to a segmentation fault.
15423 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15424 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15425 segmentation fault, but doing and effort to continue rendering. This is
15426 the same behavior of ximagesink.
15427 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15428 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15430 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15433 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15434 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15436 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15438 * gst-libs/gst/vaapi/gstvaapicontext.c:
15439 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15440 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15441 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15442 Add 10 HEVC 10 bit decoding support
15443 Only supporting vaapidecode ! vaapisink combination for now.
15444 Missing dependencies:
15445 1: No support for P010 video format in GStreamer
15446 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15447 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15448 through GstVideoMeta.
15449 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15450 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15451 of the surfaces is implementation (driver) defined, which is P010.
15453 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15455 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15456 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15457 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15458 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15459 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15460 chroam type and dimensions. The underlying format of the surfaces is
15461 implementation (driver) defined.
15463 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15465 * gst-libs/gst/vaapi/gstvaapisurface.h:
15466 * gst-libs/gst/vaapi/gstvaapiutils.c:
15467 Add definitions for YUV420 with more than 8 bits per channel
15469 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15471 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15472 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15474 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15477 Bump version for development
15479 === release 0.7.0 ===
15481 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15486 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15491 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15496 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15501 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15503 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15504 texture: detect GL version and use the proper API
15505 When receiving the texture from the application or the video sink, we must
15506 know it size and border. To query the texture the API has changed according to
15507 the OpenGL version used in the GL context of the application/vsink.
15508 This patch checks the current context API type and queries the texture
15509 according to this detected API.
15510 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15511 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15513 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15515 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15516 texture: check for expected target and format
15517 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15518 formats GL_RGBA or GL_BGRA.
15519 This patch adds a debugging verification of those values.
15520 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15521 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15523 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15525 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15526 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15527 libs: add gl3_bind_texture_2d()
15528 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15529 needed. In particular, the Intel's Mesa implementation complains if it is
15531 This patch add a new binding function for 2D textures, without enabling
15532 gl3_bind_texture_2d()[2].
15533 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15534 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
15535 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15536 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15538 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15540 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15541 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15542 libs: add gl_get_current_api()
15543 In order to know which OpenGL API use, we must detect the API type of current
15544 context. This patch adds the function gl_get_current_api() which returns the
15546 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15548 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15549 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15551 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15554 * gst-libs/gst/vaapi/Makefile.am:
15555 build: Add gmodule dependency for libgstvaapi_egl
15556 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15558 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15560 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15561 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15562 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15563 * patches/videoparsers/series.frag:
15564 patches/videoparsers: h264: Disable passthorugh mode enabling
15565 This is a quick fix for regression introduced by the upstream
15566 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15567 The patch is disabling the passthrough mode, otherwise it will
15568 break multi-layer mvc stream parsing.
15569 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15571 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15573 * gst/vaapi/Makefile.am:
15574 * patches/videoparsers/Makefile.am:
15575 * patches/videoparsers/series.frag:
15576 build: add gsth265parse patches conditionally
15577 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15578 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15580 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15581 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15583 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15585 * gst/vaapi/Makefile.am:
15586 build: declare correctly parse lib built files
15587 This is a continuation of commit fc8a0d12
15588 When declaring BUILT_SOURCES, those files should not be distributed. This
15589 patch avoids the distribution of the generated source code.
15590 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15591 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15593 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15595 * ext/libvpx/sources.frag:
15596 build: libvpx: Add missing source file
15598 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15600 * gst/vaapi/gstvaapipostproc.c:
15601 vaapipostproc: Correctly detect the caps change
15602 This is a quick fix for regression introuduced by the
15603 commit 757833230bc73b8e3b4e31649e4618ba802bea51
15604 With out this, the gst_vaapipostproc_create() will
15606 https://bugzilla.gnome.org/show_bug.cgi?id=758543
15608 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15610 * ext/libvpx/Makefile.am:
15611 * ext/libvpx/sources.frag:
15612 build: libvpx: update the sources lists
15613 `make dist` broke since commit f06798 (libvpx: Update the submodule to
15614 libvpx-1.4.0) because the sources.frag does not contain all the module
15616 This patch updates thoroughly the sources.
15617 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15618 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15620 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15622 * gst/vaapi/gstvaapipostproc.c:
15623 vaapipostproc: don't set caps change at first set
15624 When the source caps change, the filter is destroyed and recreated.
15625 Nonetheless, this happens every time the vaapipostproc starts, since the caps
15626 change detection algorithm does not take in consideration when the caps are
15628 This patch intents to be an optimization, to avoid a useless filter
15629 destroy-creation cycle when the sources caps are set for first time.
15630 The new helper function video_info_update() is a refactorization to avoid
15632 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15633 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15635 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15637 * gst/vaapi/gstvaapipostproc.c:
15638 vaapipostproc: params video_info_changed() callers
15639 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15640 swapped the the order. This didn't raise problems since the comparison of both
15641 structures were not affected by its semantics.
15642 But still it would be better to fix this to keep the coherence of the code.
15643 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15644 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15646 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15648 * gst/vaapi/Makefile.am:
15649 build: declare real built files
15650 When runnig the `make dist` target from a clean tree, it fails because
15651 if could not find the copied files from codecparsers submodule.
15652 They weren't copied because they weren't declared as built sources.
15653 This patch removes the stamp mechanism and use the actual file list to copy
15654 as the built sources. Also it fixes the duplication of the parser files.
15655 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15656 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15658 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15660 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15661 decoder: vp9: Fix last/golden/altref frame index setting
15662 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15663 based on what ever reference frame indices encoded in frame header.
15665 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15667 * debian.upstream/rules:
15668 debian: remove custom parallel compilation
15669 In order to build a debian package with upstream source, the user should
15672 cp -a debian.upstream debian
15673 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15674 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15675 way to make a parallel build (-j8 in this case).
15676 This commit removes the script in debian/rules that detects the number of
15677 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15678 official in debian.
15679 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15680 https://bugzilla.gnome.org/show_bug.cgi?id=754087
15682 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15684 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15685 decoder: vp9: Fix PTS calculation of cloned frames
15687 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15689 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15690 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15691 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15692 gstvaapidecoder base calss is reponsible for handling those frames later on.
15693 No need for explicit verification of frame header's show_frame in order to
15694 do picture outputing.
15696 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15698 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15699 decoder: vp9: Fix ref picture update while doing repeat frame
15700 Don't try to do frame decoding and reference picture update
15701 while receiving a vp9 frame having show_existing_frame flag
15704 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15706 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15707 decoder: vp9: Add repeat-frame display handling
15708 If vp9 frame header come up with show_existing_frame flag set,
15709 we should duplicate the existing decoded frame as current frame to
15712 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15714 * gst/vaapi/gstvaapidecodebin.c:
15715 vaapidecodebin: add me as element co-author
15716 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15717 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15719 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15721 * gst/vaapi/gstvaapidecodebin.c:
15722 vaapidecodebin: try to get display from decoder
15723 Rather than create a dummy display, if none has propagated as a context, we
15724 should try to get the one from vaapidecode.
15725 As the bin is already in READY state, the vaapidecode should be also in that
15726 state. That means that the contexts have been negotiated, and it should have
15728 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15729 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15731 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15733 * gst/vaapi/gstvaapidecodebin.c:
15734 * gst/vaapi/gstvaapidecodebin.h:
15735 vaapidecodebin: add postprocessor dynamically
15736 The former approach to left the bin unfinished has some problems: the context
15737 cannot be shared because the vaapidecode is unlinked in many cases, leading to
15738 creating a VADisplay twice.
15739 Initially the bin is fully functional, constructed as
15740 (-----------------------------------)
15742 | (-------------) (-------) |
15743 |<--| vaapidecode |--->| queue |--->|
15744 | (-------------) (-------) |
15745 (-----------------------------------)
15746 When the context is shared and the VADisplay has VPP capabilities, before
15747 changing to READY state, the bin is reconfigured dynamically, adding the
15748 vaapipostproc element afeter the queue:
15749 (--------------------------------------------------------)
15751 | (-------------) (-------) (---------------) |
15752 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15753 | (-------------) (-------) (---------------) |
15754 (--------------------------------------------------------)
15755 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15756 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15758 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15760 * gst/vaapi/gstvaapidecodebin.c:
15761 vaapidecodebin: delay the bin configuration
15762 Delay the bin configuration until changing to READY state. This is because we
15763 should add the vaapipostproc element until the vaapidecode has emitted the
15764 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15766 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15767 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15769 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15771 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15772 decoder: vp9: Add crop rectangle support.
15773 Set crop rectange if:
15774 There is display_width and display_height which is different from actual width/height
15776 The changed resolution is less than the actual configured dimension of surfaces
15778 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15780 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15781 decoder: vp9: Fix the context and surface pool reset for multi resolution video
15782 Unlike other decoders, vp9 decoder doesn't need to reset the
15783 whole context and surfaces for each resolution change. Context
15784 reset only needed if resolution of any frame is greater than
15785 what actullay configured. There are streams where a bigger
15786 resolution set in ivf header or webm header but actual resolution
15787 of all frames are less. Also it is possible to have inter-prediction
15788 between these multi resolution frames.
15790 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15792 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15793 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15794 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15795 Preliminary fix for supproting multi resolution video decode.
15797 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15799 * gst/vaapi/gstvaapidecode.c:
15800 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15802 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15804 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15805 decoder: vp9: Set lossless flag from frame header
15807 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15809 * ext/codecparsers:
15810 codecparsers: Update to gst-vaapi-branch d9f25
15811 d9f2527: codecparsers: vp9: Set lossless flag in frame header
15813 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15815 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15816 libs: vp9: remove unused symbols
15817 clang complains about a couple variables and one label which were not
15818 used. This patch removes them.
15819 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15820 https://bugzilla.gnome.org/show_bug.cgi?id=757958
15822 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15824 * ext/codecparsers:
15825 codecparsers: Update to gst-vaapi-branch da251bb
15826 da251bb: codecparsers: vp9: Optimize the memory allocation
15827 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15829 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15831 * gst/vaapi/gstvaapipluginbase.c:
15832 * gst/vaapi/gstvaapipluginbase.h:
15833 plugin: guard pointers to pad query functions
15834 Since gstreamer 1.4 is not required to have pad query functions if the query
15836 This patch guards out the pad query functions for gstreamer < 1.4
15837 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15838 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15840 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15842 * gst/vaapi/gstvaapiencode.c:
15843 vaapiencode: use pad query vmethods
15844 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15845 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15846 while keeps support for previous versions of gstreamer.
15847 This patch is relevant since GstVideoEncoder takes care of other queries that
15848 we are currently ignoring.
15849 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15850 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15852 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15854 * gst/vaapi/gstvaapidecode.c:
15855 vaapidecode: return pad's template caps if no display
15856 A caps query can occur before the element has a display. In that case, the
15857 element can return its pad's template. But when the element already has a
15858 display, and the caps probe fails, the element shall return an empty caps, so
15859 the auto-plug could try with another decoder.
15860 If the element has a display and the caps probe works, then the computed caps
15861 should be returned.
15862 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15863 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15865 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15867 * gst/vaapi/gstvaapidecode.c:
15868 * gst/vaapi/gstvaapisink.c:
15869 plugins: don't create display at caps query
15870 Caps query can happen before the element has a bus. The display creation should
15871 be should occur on the context negotiation, when the bus is already configured.
15872 Then at caps query no display should be created.
15873 Instead of force the display creation, we graciously fail the allowed_caps()
15875 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
15876 basetransform descendant, seems to be not affected by this, nor the encoders.
15877 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15878 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15880 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15882 * gst/vaapi/gstvaapidecode.c:
15883 * gst/vaapi/gstvaapiencode.c:
15884 * gst/vaapi/gstvaapipluginutil.c:
15885 * gst/vaapi/gstvaapipluginutil.h:
15886 * gst/vaapi/gstvaapipostproc.c:
15887 * gst/vaapi/gstvaapisink.c:
15888 plugins: fix context query handling
15889 The current context query handling design is flawed: the function
15890 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
15891 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
15892 pad query function should handle differently each case.
15893 This patch changes the gst_vaapi_reply_to_query() for
15894 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
15895 to match the correct context query handling.
15896 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15897 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15899 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15901 * gst/vaapi/gstvaapipluginutil.c:
15902 plugin: don't lose previous context at query
15903 When processing the GST_CONTEXT_QUERY we should not lose the previous
15904 context in the query, we should only add our display structure.
15905 This patch copies the old context, if it is there, and stamp our display on
15906 it. Otherwise, a new context is created.
15907 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15908 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15910 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15912 * gst/vaapi/gstvaapivideocontext.c:
15913 * gst/vaapi/gstvaapivideocontext.h:
15914 vaapivideocontext: add gst_vaapi_video_context_set_display()
15915 This function set the display to an already created context. This function is
15916 going to be used later.
15917 Also, gst_vaapi_video_context_new_with_display() now uses this function.
15918 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15919 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15921 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15923 * gst/vaapi/gstvaapipluginutil.c:
15924 * gst/vaapi/gstvaapivideocontext.c:
15925 * gst/vaapi/gstvaapivideocontext.h:
15926 plugins: check if display is set in sync
15927 Since the context messages are sync'ed, the display assignation happens in the
15928 same thread, hence we can know if the display was found or not as soon we call
15930 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
15931 as a new parameter, the address of the plugin's display, and reports back if
15932 the display was found and set.
15933 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15934 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15936 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15938 * gst/vaapi/gstvaapipluginutil.c:
15939 * gst/vaapi/gstvaapivideocontext.c:
15940 plugins: set display through context
15941 Instead of setting the display to the plugin directly after its creation, do
15942 it through the gstreamer's context mechanism, avoiding double assignations.
15943 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15944 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15946 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15948 * gst/vaapi/gstvaapivideocontext.c:
15949 vaapivideocontext: rename context structure
15950 The context structure is named "display" which is too generic. The contrary
15951 happens, for example, with GstGL, what uses the same name as the context, and
15952 its logs make more sense.
15953 This patch renames the context structure with the same name as the
15954 context, thus GST_PTR_FORMAT can pretty print it.
15955 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15957 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15959 * gst/vaapi/gstvaapivideocontext.c:
15960 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
15961 First, refactorized run_context_query() into _gst_context_run_query(), adding
15962 a new parameter: the pad direction, in order to simplify the code.
15963 Second, added a new helper function: _gst_context_query(), which is a generic
15964 context query function. It isolates the operation of running the query and
15965 sets the context if found, also it enhances the logs.
15966 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
15967 future this helper function will be merged into the core libraries of
15969 Finally, gst_vaapi_video_context_prepare() was rewritten to use
15970 _gst_context_query().
15971 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15972 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15974 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15976 * gst/vaapi/gstvaapivideocontext.c:
15977 vaapivideocontext: refactor context category debug
15978 Refactor the extraction GST_CAT_CONTEXT logging using a only once
15979 initializator, so we could get the debug category from different code
15981 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15982 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15984 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15986 * gst/vaapi/gstvaapivideocontext.c:
15987 gstvaapivideocontext: fix indentation
15988 gst-indent does not handle correctly some expression like function
15989 declaration with attributes, breaking the following expressions.
15990 This patch makes gst-indent to ignore the attributed function
15991 declartion so the followed function definition is not mangled, such
15992 as happened in commit b4154a
15993 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15994 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15996 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15998 * gst/vaapi/gstvaapipluginbase.c:
15999 plugin: chain up set_context() vmethod
16000 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16001 the parent class in order to broadcast all its contexts when the element
16002 is added into a bin:
16003 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16004 There is no need to guard the call, because before GStreamer 1.7, the
16005 set_context() vmethod was NULL in the element class, hence the conditional
16007 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16008 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16010 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16012 * tests/simple-encoder.c:
16013 tests: simple-encoder: remove dead code
16014 The caps creation for codec state configuration is not used. Let's remove it.
16015 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16017 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16019 * gst/vaapi/gstvaapidecodebin.c:
16020 vaapidecodebin: fix a leaked display instance
16021 The display returned by gst_vaapi_video_context_get_display() increments the
16022 references. Thus, we have to unref the returned display.
16023 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16024 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16026 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16028 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16029 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16030 libs: remove unneeded headers
16031 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16032 required to include them in the header. It is not also required to include
16033 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16034 exposes their structures (e.g. GLXPixmap).
16035 Nonetheless, glext.h neither glxext.h are required to include, they are
16036 already included conditionally by gl.h and glx.h, respectively.
16037 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16038 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16040 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16042 * ext/codecparsers:
16043 codecparsers: Update to gst-vaapi-branch 0ea6792
16044 0ea6792: codecparsers: vp9: Add header comments
16045 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16047 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16049 * gst/vaapi/gstvaapidecode.c:
16050 VP9: plugins: Add VP9 decoder
16052 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16054 * gst-libs/gst/vaapi/Makefile.am:
16055 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16056 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16057 VP9: libgstvaapi: Add VP9 decoder
16059 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16061 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16062 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16063 VP9: gstvaapiprofile: Add profile definitions
16065 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16068 VP9: build: Check availability of vp9 decoder APIs
16070 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16074 * gst-libs/gst/codecparsers/Makefile.am:
16075 VP9: Allow building vp9 codecparser internally
16077 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16079 * ext/codecparsers:
16080 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16081 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16082 e7d9217: codecparser: h264: initialize parsing structures
16083 403d400: codecparser: h265: initialize parsing structures
16085 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16088 configure.ac: don't use an undefined variable
16089 If the environment lacks of gstreamer development packages, this error will
16090 be reported to the user: "gstreamer- was not found"
16091 This is because we are using an undefined variable in the printed message. The
16092 fix simple changes the variable for the hard-coded string "1.0".
16093 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16094 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16096 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16098 * gst/vaapi/gstvaapidecode.c:
16099 vaapidecode: relax guards for memory:VASurface capsfeature
16100 Though caps features are supported since GStreamer 1.2, there are some
16101 issues with the features caps negotiation in that version. Nonetheless,
16102 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16103 feature negotiation is relaxed for GStreamer 1.4.
16104 The guard is the same as in vaapisink's caps template.
16105 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16106 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16108 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16110 * gst/vaapi/gstvaapidecode.c:
16111 vaapidecode: decide allocation doesn't update srccaps
16112 The received caps query will bring the already negotiated caps, so they are
16113 not expected to change.
16114 This patch removes this verification which is dead code path.
16115 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16116 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16118 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16120 * gst/vaapi/gstvaapidecode.c:
16121 * gst/vaapi/gstvaapipluginutil.c:
16122 * gst/vaapi/gstvaapipluginutil.h:
16123 vaapidecode: use caps to check the features
16124 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16125 expensive, we check the caps from the allocation query, to check the
16126 negotiated feature.
16127 In order to do this verification a new utility function has been implemented:
16128 gst_vaapi_caps_feature_contains().
16129 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16130 have been refactorized.
16131 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16132 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16134 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16136 * gst/vaapi/gstvaapidecode.c:
16137 vaapidecode: set format before decide allocation
16138 There is a regression from commit 3d8e5e. It was expected the buffer pool
16139 allocation occur before the caps negotiation, but it is not.
16140 This patch fixes this regression: the caps negotiation is done regardless the
16141 allocation query from downstream.
16142 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16143 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16145 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16148 build: check for patch and fix yasm check
16149 Add configure checking for GNU patch tools and fixed configure
16150 checking YASM to correct sequence.
16151 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16152 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16154 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16156 * ext/libvpx/Makefile.am:
16157 build: Remove disable-md5 option for libvpx build
16158 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16159 has been removed in 1.4.0.
16161 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16163 * ext/libvpx/upstream:
16164 libvpx: Update the submodule to libvpx-1.4.0
16165 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16167 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16170 configure: mark support for GStreamer 1.2 as obsolete.
16171 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16172 Our goal is to support the last two stable versions of GStreamer which
16173 are 1.4 and 1.6 at the moment.
16174 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16175 release and will get rid of those in 0.8.
16177 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16179 * gst/vaapi/gstvaapidecode.c:
16180 vaapidecode: Fix buffer copy assertion
16181 Don't try to copy the NULL buffer-codec_data.
16183 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16186 build: allow builds against GStreamer 1.7.x
16187 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16189 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16191 * gst/vaapi/gstcompat.h:
16192 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16193 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16194 add an implementation if gstreamer-vaapi is linked to previous versions.
16195 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16197 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16199 * gst/vaapi/gstvaapidecode.c:
16200 vaapidecode: simplify copy of GstVideoCodecState
16201 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16203 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16205 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16206 * patches/videoparsers/series.frag:
16207 patches/videoparsers: h265parser: more API fences
16208 Add more API fences according with its version and refresh the patch.
16209 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16210 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16212 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16214 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16215 * patches/videoparsers/series.frag:
16216 patches/videoparsers: h265parser: rename patch keeping number
16217 Refresh the patch and rename it in order to keep the patch number.
16218 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16219 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16221 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16223 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16224 patches/videoparsers: h264parser: more API fences and refresh
16225 Add more API fences according with its version and refresh the patch.
16226 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16227 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16229 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16231 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16232 * patches/videoparsers/series.frag:
16233 patches/videoparsers: h264parser: fix description and refresh
16234 Fix a typo in the patch description and refresh it in order to avoid the
16235 creation of .orig files and break the distcheck target.
16236 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16237 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16239 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16241 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16242 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16243 patches/videoparsers: h264parser: refresh patches
16244 In order to avoid the creation of .orig files and break the distcheck target.
16245 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16246 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16248 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16250 * gst/vaapi/Makefile.am:
16251 build: link libgstvaapi_parse against codec parser
16252 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16253 when running configure.
16254 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16255 need it if builtin codec parsers are disabled.
16256 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16257 compilation. If builtin codec parsers are enable, this variable is null, so it
16258 should work using libgstvaapi, as normal.
16259 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16260 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16262 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16265 build: verify for H264 MVC and H265 SPS
16266 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16267 the required symbols for those were added in GStreamer 1.5
16268 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16269 parsers, the compilation fails, because the lack of those symbols.
16270 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16271 they do not, the specific built in codec parsers are enabled and used.
16272 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16273 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16275 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16277 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16278 decoder: h264: initialize PPS's slice_group_id
16279 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16280 so it contains random data.
16281 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16282 pointer uninitialized, leading to a segmentation fault when the memory is
16284 This patch prevents this by initializing the slice_group_id before the PPS
16286 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16287 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16289 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16291 * gst/vaapi/gstvaapidecode.c:
16292 vaapidecode: proper numerator and denominator for forced latency framerate
16293 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16295 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16297 * ext/codecparsers:
16298 codecparsers: Update to gst-vaapi-branch commit f9e284b
16299 dae1a84: h264parse/h265parse: Fix negotiation crash
16300 45a9f8a: codecparsers: h265 : Fix default scaling list values
16301 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16302 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16304 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16306 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16307 decoder: hevc: Don't flush dpb for EOS/EOB nal
16308 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16309 the dpb_add() itself will handle the flusing(if needed) of dpb
16310 for end of sequence and end of bitstream.
16311 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16313 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16315 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16316 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16317 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16318 just after the PicLatencyCnt setting of existing dpb frames.
16319 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16321 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16323 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16324 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16325 This fix is based on the V3 vesion of spec which was missing in older versions.
16326 When the current picture has PicOutputFlag equal to 1, for each picture in the
16327 DPB that is marked as "needed for output" and follows the current picture in output order,
16328 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16329 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16331 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16333 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16334 decoder: h265: Fix indentation
16336 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16338 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16339 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16340 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16341 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16342 * gst/vaapi/gstvaapidecode.c:
16343 * gst/vaapi/gstvaapipluginutil.c:
16344 multiview: initial attempt at stereo/multiview support
16345 Add support for marking caps and buffers for multiview or
16346 stereoscopic output.
16347 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16349 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16351 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16352 decoder: hevc: remove unused functions
16353 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16354 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16356 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16358 * gst/vaapi/gstvaapidecode.c:
16359 vaapidecode: remove (another) unused variable
16360 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16362 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16364 * gst/vaapi/gstvaapidecode.c:
16365 vaapidecode: remove unused variable
16366 Thus silence the compilation warnings.
16368 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16370 * gst/vaapi/gstvaapidecode.c:
16371 vaapidecode: compilation fix
16372 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16373 compilation where the toolchain uses restrictive flags as clang.
16374 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16376 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16378 * gst/vaapi/gstvaapidecode.c:
16379 vaapidecode: renegotiate if caps are not equal
16380 The use of gst_caps_is_always_compatible() for this optimization may lead to
16381 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16382 if it is required a re-negotiation.
16383 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16384 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16386 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16388 * gst/vaapi/gstvaapidecode.c:
16389 * gst/vaapi/gstvaapidecode.h:
16390 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16391 Delaying the pool re-negotiation untill we push all decoded (and queued)
16392 frames downstream. Otherwise for the multi-resolution videos, the
16393 GstVideoVideoMemory will be having wrong resolution and which leads
16394 to nasty behaviours, especially when using software renderers.
16395 sample media file: RAP_B_Bossen_1.bin
16397 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16398 get the final resoultion 416x240.
16399 Starting from 25 th frame, the resolution will change to 416x240. But parser
16400 elements won't report this since the effective croped resolution is same in
16401 both cases. Here the core libgstvaapi will detect this through it's internal
16402 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16403 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16404 immediately, this will not sync with the resolution of already decoded and queued
16405 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16406 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16407 untill we push all decoded frames downstream.
16408 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16410 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16412 * gst/vaapi/gstvaapidecode.c:
16413 vaapidecode: Always keep a copy of input codec state
16414 Currently we are sharing the input GstVideoCodecState with
16415 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16416 each caps change. This is troublesome in many cases, for eg: if
16417 resoultion changes with in a singe stream. Because, when ever there
16418 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16419 fields with new resolution, but since we are using the same codecstate (ref)
16420 in gstvaapidecode.c, the caps check for input caps change will always fail.
16421 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16423 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16425 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16426 decoder: hevc: Fix the scaling list scan order
16427 The default scan order of scaling lists are up-right-diagonal
16428 as per hevc specification. Use the newly implemented
16429 uprightdiagonal_to_raster conversion codecparser APIs to
16430 get the the scaling_list values in raster order, which is
16431 what the VA intel driver requires.
16433 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16435 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16436 decoder: hevc: sync with the codecparser changes
16437 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16438 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16440 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16442 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16443 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16445 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16447 * ext/codecparsers:
16448 codecparsers: Update to gst-vaapi-branch commit 69550f1
16449 c207c6d: codecparsers: h265: Fix tile row and column parsing
16450 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16451 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16452 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16453 2f0932b: h264parse: Clear SPS info after processing
16454 f57d6b0: videoparsers: enable accept-template flag
16456 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16458 * debian.upstream/control.in:
16459 debian: add yasm as build dependency
16460 As the compilation of libvpx (for vp8 parser) is enabled by default,
16461 yasm is required by default too.
16462 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16464 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16466 * debian.upstream/rules:
16467 debian: remove --with-gstreamer-api option
16468 It is no longer valid in gstreamer-vaapi.
16469 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16470 [removed unused GST_API_VERSION variable]
16471 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16472 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16474 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16476 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16477 wayland: rename is_cancelled to sync_failed
16478 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16479 sense. This commit renames this variable to sync_failed.
16481 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16483 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16484 wayland: Don't return GST_FLOW_ERROR on flushing
16485 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16486 return FALSE which makes gst_vaapi_window_wayland_render() return
16487 FALSE which ends up posting an ERROR message in
16488 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16490 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16492 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16494 * gst/vaapi/gstvaapi.c:
16495 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16496 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16498 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16500 * gst/vaapi/gstvaapidecodebin.c:
16501 vaapidecodebin: check for postproc instance
16502 If the VPP's deinterlace-method is set, first we should check if the postproc
16503 is already instanced to set it. Otherwise we just store it until the VPP is
16504 added into the bin.
16505 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16506 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16508 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16510 * gst/vaapi/gstvaapidecodebin.c:
16511 * gst/vaapi/gstvaapipluginutil.c:
16512 * gst/vaapi/gstvaapipluginutil.h:
16513 vaapidecodebin: ensure VPP before going to READY
16514 There are sometimes that the VA-API display context is not shared among the
16515 pipeline, but it is important to know it before going to READY state (when the
16516 pipeline is already linked).
16517 One instance of this case is this:
16518 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16519 This patch adds a new function in gstvaapipluginutil called
16520 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16521 display, which only will be used for verify if the VAEntrypointVideoProc is
16522 available by the hardware. Afterwards, it should be unrefed.
16523 If the vaapidecodebin is going to READY state, and the element still doesn't
16524 know if VPP is available, the last resort is to create a new instance of the
16525 VA-API display and test for it.
16526 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16528 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16530 * gst/vaapi/gstvaapidecodebin.c:
16531 vaapidecodebin: post an error message if fails
16532 If the construction of the bin fails, post an error message in the bus.
16533 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16534 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16536 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16538 * gst/vaapi/gstvaapidecodebin.c:
16539 * gst/vaapi/gstvaapidecodebin.h:
16540 vaapidecodebin: has_vpp as a tri-state variable
16541 has_vpp can be UNKNOWN while the context message hasn't being received.
16542 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16543 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16545 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16547 * gst/vaapi/gstvaapivideomemory.c:
16548 gstvaapivideomemory: native format with no derived image
16549 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16550 info based on the derived image configuration.
16551 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16552 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16554 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16556 * gst-libs/gst/vaapi/video-format.c:
16557 * gst-libs/gst/vaapi/video-format.h:
16558 * gst/vaapi/gstvaapivideomemory.c:
16559 surface pool config based on video info
16560 First added the function gst_vaapi_video_format_get_best_native(), which
16561 returns the best native format that matches a particular chroma type:
16562 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16563 RGB32 chroma and encoded format map to NV12 too.
16564 That format is used to configure, initially, the surface's pool for the
16566 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16567 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16569 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16571 * gst/vaapi/gstvaapivideomemory.c:
16572 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16573 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16574 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16576 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16578 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16579 gstvaapiencoder: validate chroma according to the VA's RT format
16580 Before, only YUV420 color space where supported. With this patch, the
16581 encoder is queried to know the supported formats and admits YUV422
16582 color space if its available.
16583 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16584 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16586 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16588 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16589 decoder: hevc: Add calculation of WpOffsetHalfRangeC
16590 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16591 prediction weight table values with out using any hard coding.
16592 Fixme: We don't have parser API for sps_range_extension, so
16593 assumed zero value for high_precision_offsets_enabled_flag.
16594 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16596 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16598 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16599 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16600 Based on ITU-T rec H265(4/2015): 7-56
16601 This was a wrong equation in rec H265 (4/2013): 7-44...
16602 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16604 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16606 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16607 decoder: hevc: Fix default value assignment of pred_weight_table
16609 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16611 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16612 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16613 Assign only if ChromaArrayType != 0..
16614 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16616 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16618 * ext/codecparsers:
16619 codecparsers: Update to gst-vaapi-branch commit 1c70432
16620 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16621 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16622 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16624 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16626 * ext/codecparsers:
16627 codecparsers: Update to gst-vaapi-branch commit c18b8ad
16628 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16629 a033083: videoparsers: h265: Fix the frame start detection code
16630 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16632 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16634 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16635 decoder: hevc: Add SEI parsing
16636 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16638 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16640 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16641 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16642 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16643 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16644 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16645 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16646 is TRUE. Assuming them as MAIN profile for now.
16647 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16648 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16650 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16652 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16653 patches/videoparsers: Fix the wrong source file path
16654 This is something wrongly typed in commit 6d7b631
16656 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16658 * ext/codecparsers:
16659 codecparsers: Update to gst-vaapi-branch commit b8d8be4
16660 ee7e81b: h264parse: Don't discard first AU delimiter
16661 3690fb9: h264parse: Add more NAL types for debugging output
16662 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16663 ace61048: h265parse: expose compatible profiles to downstream
16664 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16666 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16668 * gst/vaapi/gstvaapipluginutil.c:
16669 * gst/vaapi/gstvaapivideocontext.c:
16670 * gst/vaapi/gstvaapivideocontext.h:
16671 gstvaapivideocontext: remove unused parameter
16672 gst_vaapi_video_context_prepare() received an unused parameter. This patch
16673 removes it and the structure passed by the caller.
16674 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16675 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16677 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16679 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16680 decoder: hevc: Fix decoding of stream when it has temporal sublayers
16681 We are calculating the dpb size based on max_dec_pic_buffering.
16682 But if there are more than one temporal sublayers, we are supposed
16683 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16684 size calculation (Assuming HighestTid as max_sub_layers_minus).
16685 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16686 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16687 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16689 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16691 * gst/vaapi/gstvaapidecode.c:
16692 * gst/vaapi/gstvaapidecodebin.c:
16693 * gst/vaapi/gstvaapiencode_h264.c:
16694 * gst/vaapi/gstvaapiencode_h265.c:
16695 * gst/vaapi/gstvaapiencode_jpeg.c:
16696 * gst/vaapi/gstvaapiencode_mpeg2.c:
16697 * gst/vaapi/gstvaapiencode_vp8.c:
16698 * gst/vaapi/gstvaapipluginutil.h:
16699 * gst/vaapi/gstvaapipostproc.c:
16700 * gst/vaapi/gstvaapisink.c:
16701 refactor vaapi caps strings for pad templates
16702 Refactor the main vaapi caps strings into three macros:
16703 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16704 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16705 Those are in gstvaapipluginutil.h so all the elements could use them, instead
16706 of re-declaring them every time.
16707 No functional changes.
16708 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16710 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16712 * gst/vaapi/gstvaapipostproc.c:
16713 gstvaapipostproc: fix code style
16714 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16716 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16718 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16719 decoder: hevc: Fix the decoding of dependent slice segment
16720 Decoding process for reference picture list construction needs to be
16721 invoked only for P and B slice and the value for slice_type of dependent slice
16722 segment should be taken from the previous independent slice segment header
16724 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16725 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16727 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
16729 * gst/vaapi/gstvaapipluginbase.c:
16730 plugins: reduce the noise of warnings
16731 Those messagse should be attached to the object, also the lack of
16732 caps is not an error, in particular in the case of JPEG encoding.
16733 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16734 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16736 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16738 * gst-libs/gst/vaapi/gstvaapicontext.c:
16739 gstvaapicontext: fix the JPEG encoder attribs value
16740 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16741 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16742 assigns the returned value to the attribute.
16743 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16744 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16746 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
16748 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16749 gstvaapiencoder: framerate 0/1 is valid too
16750 Framerate 0/1 is valid, and it is particularly useful for picture
16751 encoding, such as jpeg. This patch makes the encoder to admit that
16753 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16754 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16756 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16758 * gst/vaapi/gstvaapipostproc.c:
16759 vaapipostroc: GLTextureUploadMeta in sink template
16760 Advertise GLTextureUploadMeta in sink caps template.
16761 https://bugzilla.gnome.org/show_bug.cgi?id=752130
16763 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16765 * gst/vaapi/Makefile.am:
16766 * gst/vaapi/gstvaapiencode.c:
16767 * gst/vaapi/gstvaapipluginbase.c:
16768 * gst/vaapi/gstvaapipluginbase.h:
16769 * gst/vaapi/gstvaapipostproc.c:
16770 * gst/vaapi/gstvaapisink.c:
16771 * gst/vaapi/gstvaapiuploader.c:
16772 * gst/vaapi/gstvaapiuploader.h:
16773 remove gstvaapiuploader
16774 Working on bug #744042 I realized that the gstvaapiuploader is practically not
16776 This patch removes the gstvaapiuploader and add the method
16777 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16778 the system can handle, which is used by vaapisink and vaapipostproc.
16779 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16780 https://bugzilla.gnome.org/show_bug.cgi?id=752777
16782 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16784 * gst/vaapi/gstvaapidecode.c:
16785 vaapidecode: don't lost GLTextureUpload on seek
16786 When seeking, the decoder is reset, but the buffer pool is not
16787 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16788 pool has the GLTextureUpload meta.
16789 The decoder knows that GLTextureUpload meta was negotiated in
16790 decide_allocation(), but this method is not called when seeking.
16791 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16792 https://bugzilla.gnome.org/show_bug.cgi?id=752929
16794 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16796 * gst/vaapi/gstvaapipluginutil.c:
16797 plugins: don't use gst_pad_get_allowed_caps()
16798 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16799 decoders, that is OK, but in the case of the postproc might lead loops,
16800 since the gst_base_transform_query_caps() forwards the query upstream
16802 Instead of gst_pad_get_allowed_caps() we only query the peer with
16803 gst_pad_peer_query_caps() using the pad's template as filter.
16804 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16805 https://bugzilla.gnome.org/show_bug.cgi?id=752558
16807 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16812 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16814 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16815 * patches/videoparsers/series.frag:
16816 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16817 All API/ABI changes for S3D/MVC are added in 1.5, backporting
16818 them to older verison is not recommended.
16819 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16821 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16823 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16824 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16826 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16828 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16829 decoder: jpeg: Align with new API/ABI changes in codecparser
16830 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16832 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16834 * ext/codecparsers:
16835 codecparsers: Update to gst-vaapi-branch commit 800bdb2
16836 ed13220: mpegvideometa: add meta transform function
16837 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16838 7a51722: codecparsers: jpeg: fix docs for table parsing functions
16839 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16840 387a39d: codecparsers: jpeg: fix up API
16841 db9d6a9: codecparsers: jpeg: tweak API a little
16842 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16843 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16844 4658c30: codecparsers: jpeg: fix calculation of segment size
16845 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16846 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16847 9422464: h264parse: fix typo in log message
16848 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16849 77704ce: nalutils: trivial patch to check if
16850 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16851 7862f95: Revert "codecparsers: remove ignored increment of return"
16852 54017b1: h264parse: Add support for passing stereoscopic/multiview info
16853 8667ee4: h264parse: Don't switch to passthrough on set_caps()
16854 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16856 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16858 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16859 decoder: h264: track previous reference frames.
16860 Improve closure of gaps in frame_num by strictly following and trying
16861 to fill them with previous reference frames. So, they are now tracked
16862 thus avoiding insertion of dummy ("greenish") frames.
16864 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16866 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16867 decoder: h264: fix integration of second field into the DPB.
16868 If the new picture to be added to the DPB is not a first field, then
16869 it shall be the second field of the previous picture that was added
16871 This removes the need for dpb_find_picture() now that we track the
16872 immediately preceding decoded picture, in decode order.
16874 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16876 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16877 decoder: h264: fix closure of "other-field" gap.
16878 When a dummy "other-field" is inserted, it is assumed to inherit the
16879 reference flags from the first field, and the sliding window decoded
16880 reference picture marking process is also executed so that corrupted
16881 frames are moved out as early as possible.
16882 While doing so, we also try to output frames that now contain a single
16883 valid field picture, prior to inserting any other picture into the DPB.
16884 Note: this may be superfluous currently based on the fact that dpb_add()
16885 combines the two most recent pairable fields, but this process would be
16886 further simplified later on.
16888 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16890 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16891 decoder: h264: track corrupted frames.
16892 Mark the picture as "corrupted" if it is reconstructed from corrupted
16893 references or if those references are fake, e.g. resulting from lost
16895 This is useful for notifying the upper layer, or downstream elements,
16896 that the decoded frame may contain artefacts.
16897 https://bugzilla.gnome.org/show_bug.cgi?id=703921
16899 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16901 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16902 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16903 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16904 * gst/vaapi/gstvaapidecode.c:
16905 decoder: add initial infrastructure for marking corrupted output.
16906 Add initial infrastructure in core codec library and vaapidecode to mark
16907 corrupted frames as such. A corrupted frame is such a frame that was
16908 reconstructed from invalid references for instance.
16909 https://bugzilla.gnome.org/show_bug.cgi?id=751434
16910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16912 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16915 Bump version for development
16917 === release 0.6.0 ===
16919 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16924 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16929 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16931 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16932 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
16933 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
16934 Right now there is not a primary ranked parser for vc1 and the demuxers
16935 delivers caps without specifying the profile. This situation is not an issue
16936 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
16937 explicit profile defined in the negotiated caps.
16938 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
16939 negotiation admits caps subsets try outs.
16940 This patch solves the issue ignoring the profile negotiation in the caps. For
16941 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
16942 done without the vc1 parser, such as happens in gstreamer 1.5.
16943 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16945 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16947 * gst/vaapi/gstvaapi.c:
16948 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
16949 Unfortunately vaapidecodebin element is not seems to be stable
16950 enough for autoplugging ahead of vaapidecode.
16951 Lowering the rank for now (cosidering the immediate 0.6 release).
16952 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
16953 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16955 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16957 * gst-libs/gst/vaapi/Makefile.am:
16958 build: Add missing CFLAGS to Makefile.am
16960 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16962 * gst-libs/gst/vaapi/gstvaapifilter.c:
16963 gstvaapifilter: Only register STE property if it supported by corresponding VA library
16964 Fix the regression introduced in commit eb465fb.
16965 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16966 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16968 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16970 * gst/vaapi/gstvaapipostproc.c:
16971 vaapipostproc: no format convert on GL tex upload meta
16972 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
16973 color format of the buffer.
16974 https://bugzilla.gnome.org/show_bug.cgi?id=748184
16976 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16978 * gst-libs/gst/vaapi/gstvaapifilter.c:
16979 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
16980 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16981 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16983 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16985 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
16986 encoder:h265: Fix the check for packed-header support
16987 Use VA_ENC_PACKED_HEADER_* definition for checking.
16988 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16990 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16992 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16993 encoder:h264: Fix the check for packed-header support
16994 Use VA_ENC_PACKED_HEADER_* definition for checking.
16995 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16997 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16999 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17000 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17001 One buffering_period() SEI message shall be present in every IDR access unit
17002 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17003 use a non-CQP mode, e.g. CBR. In other words, when
17004 nal_hrd_parameters_present_flag is set to 1.
17005 One picture_timing() SEI messages shall be present in every access unit
17006 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17007 https://bugzilla.gnome.org/show_bug.cgi?id=722734
17008 https://bugzilla.gnome.org/show_bug.cgi?id=751831
17009 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17011 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17013 * gst/vaapi/gstvaapidecodebin.c:
17014 vaapidecodebin: notify if vpp is disabled
17015 When the system is aware that VPP is not available by the VA driver,
17016 it would be useful to notify to the user that the disable-vpp property
17018 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17020 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17022 * gst/vaapi/gstvaapidecodebin.c:
17023 * gst/vaapi/gstvaapidecodebin.h:
17024 vaapidecodebin: enable vpp if it is available
17025 Instead of creating and adding VPP into the bin at setup, we wait until
17026 we are sure the VA driver supports it. We know that when the VA video
17027 context is received by the bin. Afterwards, it is decided to instanciate
17028 and link the VPP or not.
17029 This is more efficient and safer than waiting the VPP to fail and then
17031 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17033 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17035 * tests/test-display.c:
17036 * tests/test-windows.c:
17037 tests: Fix compilation while enabling egl as the only renderer in build
17038 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17040 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17043 configure: fix the build while enabling egl as the only renderer
17045 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17048 libs: Bump library major version
17050 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17052 * gst/vaapi/gstvaapi.c:
17053 * gst/vaapi/gstvaapidecodebin.c:
17054 * gst/vaapi/gstvaapiencode.c:
17055 * gst/vaapi/gstvaapiencode_jpeg.c:
17056 * gst/vaapi/gstvaapipluginbase.c:
17057 * gst/vaapi/gstvaapipluginutil.c:
17058 * gst/vaapi/gstvaapipostproc.c:
17059 * gst/vaapi/gstvaapivideobufferpool.c:
17060 * gst/vaapi/gstvaapivideocontext.c:
17061 * gst/vaapi/gstvaapivideomemory.c:
17062 * gst/vaapi/gstvaapivideometa.c:
17063 gst/vaapi: Switch to upstreram like indentation.
17064 gst-indent for all gst/vaapi/*.c source files
17066 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17068 * gst/vaapi/gstvaapidecodebin.c:
17069 * gst/vaapi/gstvaapidecodebin.h:
17070 vaapidecodebin: Add property to disable VPP
17071 Adding a new propery "disable-vpp", enabling it will prevent
17072 the insertion of vaapipostproc child element.
17073 This is helpful in debugging, specifically to narrow-down the
17074 vaapidecodebin/vaapipostproc related negotiation issues.
17075 No support for run-time disabling for now.
17076 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17078 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17080 * gst/vaapi/gstvaapipostproc.c:
17081 vaapipostproc: Fix wrong selection of passthrough mode.
17082 The Current code path is falling back to passthorugh mode if there is no
17083 vpp property set by the user explictily. But we should not use the
17084 passthrough mode if the negotiated src pad caps have a differnt color space
17085 format than sink pad caps (Even though the user didn't set the format property
17087 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17088 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17090 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17092 * gst/vaapi/gstvaapipostproc.c:
17093 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17094 This is a workaround to deal with the va-intel-driver for non-native
17095 formats while doing advanced deinterlacing. The format of reference surfaces must
17096 be same as the format used by the driver internally for motion adaptive
17097 deinterlacing and motion compensated deinterlacing.
17098 A permanent solution could be to do the color space conversion internally
17099 for reference surfaces.
17100 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17101 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17103 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17105 * gst/vaapi/gstvaapisink.c:
17106 Work around ABBA deadlock between vaapisink and vaapipostproc
17107 vaapisink takes the display lock, then does a gst_buffer_replace which can
17108 take the lock on the gst_vaapi_video_pool.
17109 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17110 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17111 surfaces, which means that gst_vaapi_surface_create is
17112 called. gst_vaapi_surface_create takes the display lock.
17113 If vaapisink and vaapipostproc are in different threads, and this happens,
17114 you get a deadlock. vaapisink holds the display lock, and wants the
17115 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17116 and wants the display lock.
17117 Work around this by releasing the display lock in vaapisink around the
17118 gst_buffer_replace.
17119 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17120 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17121 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17123 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17125 * gst/vaapi/gstvaapidecodebin.c:
17126 * gst/vaapi/gstvaapidecodebin.h:
17127 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17128 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17130 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17132 * gst/vaapi/gstvaapipostproc.c:
17133 vaapipostproc: log negotiated caps
17135 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17137 * gst/vaapi/gstvaapipostproc.c:
17138 vaapipostproc: remove useless debug message
17140 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17142 * gst/vaapi/gstvaapidecode.c:
17143 vaapidecode: log negotiated src/sink caps
17145 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17147 * gst/vaapi/gstvaapisink.c:
17148 vaapisink: error handling if rendering fails
17149 This patch enhance the code path when an error is found when rendering a
17151 If the video meta doesn't contain a surface proxy or a surface, a warning
17152 message is printed.
17153 If the rendering backend fails, a error message is posted in the bus.
17154 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17156 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17158 * gst/vaapi/gstvaapisink.c:
17159 vaapisink: Fix the conditional pad template creation.
17161 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17163 * tests/Makefile.am:
17164 build: Don't build simple-encoder test program if there is no VA Encoding support
17165 This will fix the build error against older VA-APIs <= 0.32
17167 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17169 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17170 * gst-libs/gst/vaapi/gstvaapicompat.h:
17171 Fix build error for older VA-API versions
17172 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17173 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17176 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17178 * gst/vaapi/gstvaapisink.c:
17179 vaapisink: Fix the capsfeature advertisement in padtemplate
17180 This fixes the regression introduced in 64acc74.
17181 If a pad supports multiple set of capsfeatures, it needs to add
17182 multiple equal structures with different feature sets to the caps.
17183 Because caps structures with the same name but with a non-equal
17184 set of caps features are not compatible.
17185 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17186 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17188 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17190 * gst/vaapi/gstvaapisink.c:
17191 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17192 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17193 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17194 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17196 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17198 * gst/vaapi/gstvaapipluginbase.c:
17199 vaapipluginbase: Override downstream allocation reply if no pool
17200 If the downstream replied without a pool, then override it.
17201 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17203 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17205 * gst/vaapi/gstvaapipostproc.c:
17206 * gst/vaapi/gstvaapipostproc.h:
17207 vaapipostproc: add color balance interface
17208 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17210 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17212 * gst-libs/gst/vaapi/gstvaapifilter.c:
17213 * gst-libs/gst/vaapi/gstvaapifilter.h:
17214 * gst/vaapi/gstvaapipostproc.c:
17215 * gst/vaapi/gstvaapipostproc.h:
17216 vaapipostproc: add skin tone enhancement
17217 Added the 'skin-tone-enhancement' property to vaapostproc.
17218 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17220 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17222 * docs/reference/libs/libs-docs.xml.in:
17223 doc: add VA-API reference in freedesktop
17225 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17227 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17228 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17229 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17230 patches/videoparsers: rebase all the h264parse patches
17231 In order to avoid the creation of .orig files and break the distcheck target
17233 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17235 * ext/libvpx/Makefile.am:
17236 build: don't build in parallel libvpx
17237 This fixes the distcheck -j XX target.
17239 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17241 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17242 encoder: jpeg: Fix the packed header generation
17243 This is a work-around to satisfy the va-intel-driver.
17244 Normalize the quality factor and scale QM values (only for packed header
17245 generation) similar to what VA-Intel driver is doing . Otherwise the
17246 generated packed headers will be wrong, since the driver itself is
17247 scaling the QM values using the normalized quality factor.
17248 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17249 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17251 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17253 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17254 decoder: h264: fix uninitialized variables in avcC mode.
17255 Fix uninitialized variables when decoding SPS and PPS NAL units from
17256 "codec-data" buffers. This is particularly important when seeking ops
17257 are involved, and the new persistent states are used more often.
17258 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17260 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17262 * gst/vaapi/gstvaapidecode.c:
17263 vaapidecode: remove unneeded casting
17264 And a code-style fix
17266 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17268 * gst/vaapi/gstvaapidecode.c:
17269 vaapidecode: calculate decoding latency
17270 This is a naïve approach to the calculation of the VA-API decoding latency. It
17271 takes into consideration when the frame-rate has some insane value.
17272 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17274 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17277 configure: Compiling against libgstgl requires libgstvideo
17278 Fix detection of the GstGL helper headers in uninstalled
17281 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17283 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17284 encoder: hevc: Fix the size over-flow for encoded buffer.
17285 The approximation of 6 times compression ratio migh not
17286 work in all cases. Especially when enabling I frames.
17287 Provide large enough size for coded-buffer creation.
17289 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17291 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17292 encoder: vp8: Fix the size over-flow for encoded buffer.
17293 The approximation of 4 times compression ratio will not
17294 work in all cases. Especially when enabling I frames.
17295 Provide large enough size for coded-buffer creation.
17297 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17299 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17300 encoder: hevc: fix bug in multi slice encoding.
17301 This is a work-around for satisfying the VA-Intel driver.
17302 The driver only support slices begin from CTU row start address.
17303 Multi-Slice encoding also requires a fix in va-intel-driver:
17304 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17305 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17306 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17308 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17310 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17311 decoder: h264: add initial support for loss of pictures.
17312 Implement decoding process for gaps in frame_num (8.5.2). This
17313 also somewhat supports unintentional loss of pictures.
17314 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17315 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17316 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17317 [fixed derivation of POC, ensured clone is valid for reference,
17318 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17319 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17321 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17324 decoder: h264: add support for missing first field.
17325 Try to identify missing first fields too, thus disregarding any
17326 intermediate gaps in frames. We also assume that we keep the same
17327 field sequence, i.e. if previous frames were in top-field-first
17328 (TFF) order, then so are subsequent frames.
17329 Note that insertion of dummy first fields need to operate in two
17330 steps: (i) create the original first field that the current field
17331 will inherit from, and (ii) submit that field into the DPB prior
17332 to initializing the current (other) field POC values but after any
17333 reference flag was set. i.e. copy reference flags from the child
17334 (other field) to the parent (first field).
17335 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17337 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17339 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17340 decoder: h264: add support for missing second field.
17341 Interlaced H.264 video frames always have two fields to decode and
17342 display. However, in some cases, e.g. packet loss, one of the field
17343 can be missing. This perturbs the reference picture marking process,
17344 whereby the number of references available in DPB no longer matches
17345 the expected value.
17346 This patch adds initial support for missing field within a decoded
17347 frame. The current strategy taken is to find out the nearest field,
17348 by POC value, and with the same parity.
17349 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17351 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17353 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17354 decoder: h264: improve tracking of "top-field-first" flag.
17355 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17356 does not mandate it. This will be useful for tracking missing fields, and
17357 also for more correct _split_fields() implementation for frames in the DPB.
17359 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17361 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17362 decoder: h264: skip all pictures prior the first I-frame.
17363 Don't try to decode pictures until the first I-frame is received within
17364 the currently active sequence. There is no point is decoding and then
17365 displaying frames with artifacts.
17367 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17369 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17370 decoder: h264: fix processing of EOSEQ NAL.
17371 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17372 picture for decoding again. This is pretty vintage code that dates back
17373 before the existing of the whole decoder units machinery.
17374 One issue that could be arising if that code was kept is that we could
17375 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17376 Once without the decode_only flag set, and once with that flag set. The
17377 end result is that the GstVideoDecoder would release the codec frame
17378 twice, thus releasing stale data.
17379 In short, the piece of code that is removed by this patch is for once
17380 completely obsolete for a while, and secondly error-prone in corner
17383 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17385 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17386 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17387 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17388 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17389 decoder: add utility function to clone picture objects.
17390 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17391 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17392 [added cosmetic changes, fixed propagation of "one-field" flag to
17393 children, fixed per-codec clone modes (h264)]
17394 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17396 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17398 * gst/vaapi/Makefile.am:
17399 build: don't compile HEVC encoder if not supported
17401 (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
17402 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17403 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17404 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17406 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17408 * gst-libs/gst/vaapi/gstvaapicompat.h:
17409 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17410 HEVC: decode: add missing va_dec_hevc header
17411 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17412 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17413 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17415 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17417 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17418 mpeg2: fix PTS cache for GOP start.
17419 If the GOP temporal sequence number (TSN) is interpolated from a valid
17420 PTS, then we need to compensate that PTS corresponding to the start of
17421 GOP with the next picture to be decoded, which shall be an I-frame,
17422 based on its sequence number.
17423 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17425 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17427 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17428 mpeg2: avoid crash when seeking with debug logs
17429 Move down the debug message when the state of the decoder is verified
17430 so the slice header is not NULL.
17432 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17434 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17435 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17436 Reset state and add some checks for safe state to avoid a crash and
17437 a warning after the decoder is destroyed/recreated during a seek.
17439 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17441 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17442 * patches/videoparsers/series.frag:
17443 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17444 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17446 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17448 * ext/codecparsers:
17449 codecparsers: Update to gst-vaapi-branch commit 20ee952
17450 b7dded3: h264parse: don't consider unknown stream-format as avc
17451 5110ad9: h264parse: fix up handling of input caps corner cases
17452 e51db3e: h264parse: Remove dead code
17453 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17454 8482957: h265parse: Fix profile, tier and level setting in caps
17455 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17456 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17457 6886a31: h264parse: Fix profile and level setting in caps
17458 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17459 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17460 53074fc: build: Upgrade GStreamer dependency to 1.0
17461 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17463 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17465 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17466 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17467 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17469 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17471 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17472 HEVC: decode: Update Cropping Rectangle
17473 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17475 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17477 * gst/vaapi/Makefile.am:
17478 * gst/vaapi/gstvaapi.c:
17479 * gst/vaapi/gstvaapiencode_h265.c:
17480 * gst/vaapi/gstvaapiencode_h265.h:
17481 HEVC_Encode: Add HEVC(h265) Encoder plugin
17482 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17483 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17485 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17487 * gst-libs/gst/vaapi/Makefile.am:
17488 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17489 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17490 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17491 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17492 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17494 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17497 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17498 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17499 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17501 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17503 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17504 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17505 gstvaapiutils_h265: Add H265 Tier specific utility functions
17506 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17507 -- New API: gst_vaapi_utils_h265_get_tier_string()
17508 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17509 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17511 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17513 * docs/reference/plugins/Makefile.am:
17514 doc: conditional linking for scanner
17515 Add x11 library only if it is enabled.
17516 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17518 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17520 * docs/reference/plugins/plugins.types:
17521 doc: fix scanner compilation warning
17522 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17524 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17526 * docs/reference/libs/libs-docs.xml.in:
17527 * docs/reference/libs/libs-sections.txt:
17528 doc: update sections and symbols
17529 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17531 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17535 * debian.upstream/Makefile.am:
17536 * docs/Makefile.am:
17537 * docs/reference/Makefile.am:
17538 * docs/reference/libs/Makefile.am:
17539 * docs/reference/plugins/Makefile.am:
17541 * ext/libvpx/Makefile.am:
17543 * gst-libs/Makefile.am:
17544 * gst-libs/gst/Makefile.am:
17545 * gst-libs/gst/base/Makefile.am:
17546 * gst-libs/gst/codecparsers/Makefile.am:
17547 * gst-libs/gst/vaapi/Makefile.am:
17549 * gst/vaapi/Makefile.am:
17550 * patches/Makefile.am:
17551 * patches/videoparsers/Makefile.am:
17552 * pkgconfig/Makefile.am:
17553 * tests/Makefile.am:
17555 This patch handles dinamically the gitignore files with git.mk[1].
17556 Removed the automake variable MAINTAINERCLANFILES in most of the
17557 Makefile.am files since now it is handled by the top one.
17558 1. https://github.com/behdad/git.mk/blob/master/git.mk
17559 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17561 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17563 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17564 wayland: sync() when destroy()
17565 Before pushing a the new frame, the render() method calls sync() to flush the
17566 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17567 to a memory leak too.
17568 This patch calls sync() in the destroy() to flush the pending frames before
17569 destroying the window.
17570 Also a is_cancelled flag is added. This flag tells to not flush the event
17571 queue again since the method failed previously or were cancelled by the user.
17572 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17574 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17576 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17577 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17578 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17579 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17580 * gst/vaapi/gstvaapisink.c:
17581 vaapisink: implement unlock/unlock_stop for wayland
17582 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17583 shutting down. This can happen e.g. if the wayland compositor exits while
17584 the pipeline is running.
17586 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17587 * splitted the patch removing wl_display_dispatch_queue()
17588 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17589 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17590 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17592 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17595 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17596 wayland: wl_display_dispatch_queue() can block forever.
17597 wl_display_dispatch_queue() might prevent the pipeline from shutting
17598 down. This can happen e.g. if the wayland compositor exits while the
17599 pipeline is running.
17600 This patch replaces it with these steps:
17601 - With wl_display_prepare_read() all threads announce their intention
17603 - wl_display_read_events() is thread save. On threads reads, the other
17604 wait for it to finish.
17605 - With wl_display_dispatch_queue_pending() each thread dispatches its
17607 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17608 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17609 * stripped out the unlock() unlock_stop() logic
17610 * stripped out the poll handling
17611 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17612 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17613 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17615 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17617 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17618 wayland: rename frame for last_frame
17619 Since frame in the private data means the last frame sent, it would
17620 semantically better use last_frame.
17621 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17623 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17625 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17627 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17628 wayland: use a counter as sync flag
17629 Wayland window has a pointer to the last pushed frame and use it to set the
17630 flag for stopping the queue dispatch loop. This may lead to memory leaks,
17631 since we are not keeping track of all the queued frames structures.
17632 This patch removes the last pushed frame pointer and change the binary flag
17633 for an atomic counter, keeping track of number of queued frames and use it for
17634 the queue dispatch loop.
17635 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17637 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17639 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17640 wayland: decouple wl_buffer from frame
17641 This patch takes out the wayland's buffer from the the frame structure. The
17642 buffer is queued to wayland and destroyed in the "release" callback. The
17643 frame is freed in the surface's "done" callback.
17644 In this way a buffer may be leaked but not the whole frame structure.
17645 - surface 'done' callback is used to throttle the rendering operation and to
17646 unallocate the frame, but not the buffer.
17647 - buffer 'release' callback is used to destroy wl_buffer.
17648 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17650 * kept the the event_queue for buffer's proxy
17651 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17652 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17654 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17656 * gst/vaapi/gstvaapisink.c:
17657 vaapisink: fix indentation
17659 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17661 * debian.upstream/Makefile.am:
17662 * ext/libvpx/Makefile.am:
17663 * gst-libs/gst/vaapi/Makefile.am:
17664 * gst/vaapi/Makefile.am:
17665 * tests/Makefile.am:
17666 build: fix make distcheck
17667 This patch fixes several issues found when running the `make distcheck`
17669 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17671 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17673 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17674 - The make target distcleancheck failed because some autogenerated files
17675 were not handled with the DISTCLEANFILES variable.
17676 Note: `make distcheck -jXX` is not currently supported.
17678 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17680 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17681 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17682 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17683 h264parse: update patches with upstream
17684 These patches didn't applied cleanly, breaking the `make distcleancheck`
17685 target. Re-sync'ed the patches against the current git's submodule.
17687 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17689 * tests/simple-encoder.c:
17690 tests: simple-encoder: fix build warnings on 64-bit platforms.
17691 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17692 importantly fix warnings spitted out during build on 64-bit platforms.
17693 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17694 g_warning ("Invalid VAAPI buffer size (%d)", size);
17696 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17697 g_warning ("Failed to create output buffer of size %d", size);
17700 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17702 * gst/vaapi/gstvaapipluginbase.c:
17703 * gst/vaapi/gstvaapipluginutil.c:
17704 * gst/vaapi/gstvaapipluginutil.h:
17705 * gst/vaapi/gstvaapivideocontext.h:
17706 plugins: remove gstreamer-0.10 crumbs
17707 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17708 Still, its definition was still in the code. This patch removes it.
17709 https://bugzilla.gnome.org/show_bug.cgi?id=749113
17711 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17713 * tests/Makefile.am:
17714 * tests/simple-encoder.c:
17715 * tests/y4mreader.c:
17716 * tests/y4mreader.h:
17717 tests: add simple-encoder program
17718 This patch adds a simple-encoder test program that uses libgstvaapi for video
17719 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17720 format. That can be from a regular file or standard input when the input
17722 Usage: simple-encoder [options]* <source>
17724 --output|-o output file name
17725 --codec|-c codec to use for video encoding
17726 --bitrate|-b desired bitrate (kbps)
17727 By default, and as an initial patch, the encoded stream shall conform to the
17728 minimally supported profile. That is "Constrained Baseline Profile" for H.264
17729 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17730 generated by libgstvaapi.
17731 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17732 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17733 * general code clean-up
17734 * removed the yuv reader thread
17735 * re-wrote the y4m file parser
17736 * updated used API fixed some wrong usage
17737 * fixed a lot of memory leaks
17738 * added the bitrate setting
17739 * keep fps' numerator and denominator
17740 * simplified the thread control
17741 * removed custom logging and use glib
17742 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17743 https://bugzilla.gnome.org/show_bug.cgi?id=719528
17745 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17747 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17748 libs: trivial documentation fix
17749 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17750 are not errors, so they do not have the ERROR namespace.
17751 This patch fixes this typo in documentation.
17753 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
17755 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17756 window: Correct prototype to match implementation
17757 On s390x, guintptr and GstVaapiID are not compatible types. The
17758 implementation of gst_vaapi_window_new_internal() and all its callers
17759 seem to assume that its third argument is a GstVaapiID, while the
17760 header gives it guintptr type.
17761 https://bugzilla.gnome.org/show_bug.cgi?id=744559
17763 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17765 * gst/vaapi/gstvaapidecode.c:
17766 * gst/vaapi/gstvaapidecodebin.c:
17767 vaapidecode: add guards for disabled codecs.
17768 Fix link when building plugin elements without HEVC support. e.g. don't
17769 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17770 support HEVC enabled in libgstvaapi.
17771 Also, drop disabled codecs from static template caps. Add the missing
17772 HEVC static template caps into vaapidecodebin too.
17774 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17777 * gst-libs/gst/vaapi/glibcompat.h:
17778 build: upgrade glib dependency to 2.32
17779 Since bug #745728 was fixed the oldest supported version of GStreamer is
17780 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17782 This patch changes the required version of glib in configure.ac and removes
17783 the hacks in glibcompat.h
17784 https://bugzilla.gnome.org/show_bug.cgi?id=748698
17786 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17788 * gst/vaapi/gstvaapipluginbase.c:
17789 plugins: check if the pool config is already set
17790 In commit 97b768, a regression for GStreamer 1.2 was introduced:
17791 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17792 config option is already set. This patch adds an inline function to
17793 first verify if the option is not in the pool config berfore add it.
17795 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17797 * gst/vaapi/gstvaapipostproc.c:
17798 vaapipostproc: tune up a couple of log messages
17799 In order to reduce the noise, the query type log was downgrade from INFO to
17800 DEBUG, and the shared display address log message is assigned to the object.
17802 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17804 * gst/vaapi/gstvaapipluginbase.c:
17805 plugins: check gst_buffer_pool_set_config()
17806 Check the return value of gst_buffer_pool_set_config(). If it fails an error
17807 message is posted in the bus.
17809 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17811 * gst/vaapi/gstvaapipluginbase.c:
17812 plugins: more specific log message
17813 Be more specific in the log message about the reason of creating a new pool.
17815 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17817 * gst/vaapi/gstvaapipluginbase.c:
17818 plugins: delete unused variable
17819 need_pool is a boolean variable extracted from the allocation query, but it is
17820 not used afterwards.
17822 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17824 * gst/vaapi/gstvaapipluginbase.c:
17825 vaapipluginbase: Update the pool if there was no pool in the downstream reply
17826 Fix regression introduced by bd866479, the query after decide_allocation()
17827 always needs a pool in the first slot.
17828 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17829 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17831 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
17833 * gst/vaapi/gstvaapivideobufferpool.c:
17834 videopool: Free members before chaining up finalize
17835 The finalize function in GObject frees the object memory, so
17836 everything else needs to have been freed before.
17837 https://bugzilla.gnome.org/show_bug.cgi?id=748563
17839 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
17841 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17842 wayland: don't leak the registry proxy
17843 Release the registry proxy when closing the display.
17844 https://bugzilla.gnome.org/show_bug.cgi?id=748564
17846 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17848 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17849 wayland: refactor _sync() method and rename callback
17850 This patch only intends to improve readability: in the method
17851 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17853 Also renames the frame_redraw_callback() callback into frame_done_callback(),
17854 which is a bit more aligned to Wayland API.
17856 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
17858 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17859 wayland: free frame in buffer release callback
17860 The Wayland compositor may still use the buffer when the frame done
17861 callback is called.
17862 This patch destroys the frame (which contains the buffer) until the
17863 release callback is called. The draw termination callback only controls
17864 the display queue dispatching.
17865 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17866 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17868 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17870 * gst/vaapi/gstvaapidecode.c:
17871 vaapidecode: refactor gst_vaapidecode_internal_flush()
17872 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
17873 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
17874 shares the same error message of gst_vaapidecode_internal_flush() when flush
17877 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17879 * gst/vaapi/gstvaapidecode.c:
17880 vaapidecode: refactor gst_vaapidecode_destroy()
17881 Add the method gst_vaapidecode_purge(). This method releases the
17882 flushed frames from the decoder.
17883 This new method add more readablity to gst_vaapidecode_destroy()
17885 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
17887 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17888 * gst/vaapi/gstvaapidecode.c:
17889 vaapidecode: Tell the base class about released frames on close
17890 The base class needs to be informed about frames that were still queued
17891 in the decoder on release, otherwise they are leaked.
17892 https://bugzilla.gnome.org/show_bug.cgi?id=747999
17894 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17896 * gst/vaapi/gstvaapidecode.c:
17897 vaapidecode: reduce logging noise
17898 When a frame is rejected by downstream, the message is logged twice. This
17899 patch removes one of those logging messages.
17900 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
17901 the log message from error to info.
17903 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
17905 * gst/vaapi/gstvaapidecode.c:
17906 vaapidecode: Use the GstVideoDecoder error reporting function
17907 This way, the decoder won't stop on the first decoding error,
17908 in most cases it can recover after some glitchiness.
17909 https://bugzilla.gnome.org/show_bug.cgi?id=744620
17911 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
17913 * gst/vaapi/gstvaapipluginbase.c:
17914 vaapipluginbase: The allocation query can return without a pool
17915 It is possible to return the min/max/size without actually providing
17916 a pool. This way the source knows how many buffers downstream needs.
17917 https://bugzilla.gnome.org/show_bug.cgi?id=748076
17919 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17922 * gst/vaapi/Makefile.am:
17923 * gst/vaapi/gstvaapiparse.c:
17924 * gst/vaapi/gstvaapiparse.h:
17925 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
17926 * patches/videoparsers/series.frag:
17927 plugins: Add h265 videoparser element "vaapiparse_h265"
17928 This is a mirror of h265parse element in upstream gst-plugins-bad.
17929 There could be additional patches but all should go to upstream.
17930 This is for making development faster.
17931 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
17933 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17935 * ext/codecparsers:
17936 codecparsers: Update to gst-vaapi-branch commit 43a0368
17937 45f1c28: codecparser: h265: Fix nal unit size checking
17938 f25987b: codecparser: h265: Calculate crop rectangle dimensions
17939 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
17940 4c8ec41: Add h265 videoparser plugin source files
17942 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17945 autogen: drop videoutils submodule.
17947 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17949 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17950 decoder: hevc: cosmetics.
17951 Mostly coding style updates. Avoid integer signess inconsistencies.
17952 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
17954 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17956 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17957 decoder: hevc: Add Support for tiled video decoding
17958 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
17959 the tile column width and tile row height should be calculated.
17960 Equations: 6-1, 6-2
17961 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
17963 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17965 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17966 decoder: hevc: Fix decoding when there are RASL pictures present.
17967 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
17968 -- Fix PicOutputFlag setting for RASL picture
17969 -- Fix prev_poc_lsb/prev_poc_msb calculation
17970 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
17971 -- Fixed couple of crashes and added cosmetics
17973 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
17975 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17976 display: drm: fix race condition setting device type
17977 There is a race condition where g_drm_device_type can be left set to
17978 DRM_DEVICE_RENDERNODES when it shouldn't.
17979 If thread 1 comes in and falls into the last else statement setting up both
17980 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
17981 it sets g_drm_device_type = RENDERNODES.
17982 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
17983 up that type to be tried but then encounters the lock and has to wait until the
17984 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
17985 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
17986 attempts will only try RENDERNODES.
17987 So to avoid this situation I have simply moved the acquisition of the lock higher
17988 up in the attached patch.
17989 https://bugzilla.gnome.org/show_bug.cgi?id=747914
17991 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17993 * gst/vaapi/gstvaapipostproc.c:
17994 vaapipostproc: Don't create filter on caps query
17995 The problem with this is that creating the filter causes the display to
17996 be selected, and the caps query happens while linking the element. So,
17997 if the downstream or upstream element is using a specific display
17998 object, it won't be propagated correctly to the postproc as it already
17999 has a display at this point.
18000 https://bugzilla.gnome.org/show_bug.cgi?id=747945
18002 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
18004 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18005 videopool: Release lock while allocating new object
18006 The video pool can be accessed with the display lock held, for example,
18007 when releasing a buffer from inside vaapisink_render, but allocating
18008 a new object can may also take the display lock. Which means a possible
18010 https://bugzilla.gnome.org/show_bug.cgi?id=747944
18012 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18014 * gst/vaapi/gstvaapisink.c:
18015 vaapisink: use GstVideoSink vmethod show_frame()
18016 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18017 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18018 rather than call ourselves render() and preroll().
18020 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18022 * gst/vaapi/gstvaapisink.c:
18023 * gst/vaapi/gstvaapisink.h:
18024 vaapisink: add 'handoff' signal
18025 This patch adds the signal ::handoff and the property signal-handoffs. If the
18026 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18028 Based on Zhao Halley <halley.zhao@intel.com>
18029 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18031 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18033 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18034 HEVC: silence the compiler
18035 Fixed a couple of clang complains.
18037 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18039 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18040 wayland: destroy vpp buffer pool on resize
18041 Otherwise the old buffers with the old size are used.
18042 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18044 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18047 * gst-libs/gst/vaapi/Makefile.am:
18048 build: don't compile HEVC if not supported
18049 HEVC decoding was added recently libva-1.5.
18050 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18051 in the installed libva.
18052 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18054 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18056 * gst/vaapi/gstvaapidecode.c:
18057 vaapidecode: Update Author name in plugin metadata
18059 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18061 * gst/vaapi/gstvaapidecode.c:
18062 plugins: Add HEVC decoder
18063 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18065 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18067 * gst-libs/gst/vaapi/Makefile.am:
18068 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18069 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18070 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18071 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18073 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18075 * gst-libs/gst/vaapi/Makefile.am:
18076 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18077 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18078 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18079 HEVC: Add codec utility methods to core libgstvaapi
18080 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18082 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18084 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18085 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18086 HEVC: gstvaapiprofile: Add profile definitions
18087 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18089 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18092 HEVC: build: Check availability of h265 decoder APIs
18093 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18095 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18099 * gst-libs/gst/codecparsers/Makefile.am:
18100 HEVC: Allow to build h265 codecparser internally
18101 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18103 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18105 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18106 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18107 * gst-libs/gst/vaapi/gstvaapisurface.c:
18108 guard buffer export API if not available
18109 The support for buffer exports in VA-API was added in version 0.36. These
18110 interfaces are for interop with EGL, OpenCL, etc.
18111 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18112 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18113 This patch guards all the buffer exports handling (and dmabuf allocator) if
18114 the detected VA-API version is below 0.36.
18115 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18117 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18119 * ext/codecparsers:
18120 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18121 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18122 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18123 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18124 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18125 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18127 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18129 * gst/vaapi/gstvaapidecode.c:
18130 vaapidecode: unref video codec frame twice
18131 We get one reference when the frame is passed to decode_handle_frame()
18132 and create another one in gst_vaapi_decoder_push_frame().
18133 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18134 Here the frame is always released twice:
18135 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18136 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18137 In gst_vaapidecode_reset_full() both references to the frame must be
18139 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18140 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18142 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18144 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18145 libs: remove unused variables
18146 clang reports these unused variables. Let's get rid of them.
18147 This patch is a missing part of commit c82e5173
18148 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18150 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18152 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18153 decoder: mpeg4: remove an spurious comparison
18154 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18155 less than zero. Hence this pre-condition test is a no-op. This patch removes
18157 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18159 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18161 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18162 encoder: h264: casts slice_param->slice_type
18163 slice_type in slice_param is defined as (char *), but it is compared against a
18164 signed integer. clang complains about this comparison.
18165 This patch casts the variable.
18166 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18168 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18170 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18171 encoder: avoid GstVaapiCodedBuffer redefinition
18172 The symbol GstVaapiCodedBuffer is already defined in
18173 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18174 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18175 This patch removes that redefinition.
18176 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18178 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18180 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18181 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18182 libs: remove unused variables
18183 clang reports these unused variables. Let's get rid of them.
18184 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18186 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18188 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18189 encoder: mpeg2: use fabsf() instead of abs()
18190 The member value in frame_rate_tab is float, the result of the abs() function
18191 should be float too. But abs() only manages integers.
18192 This patch replaces abs() with fabsf() to handle correctly the possible floats
18194 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18196 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18198 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18199 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18200 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18201 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18202 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18203 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18204 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18205 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18206 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18208 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18213 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18217 Changing source code download links from https://gitorious to https://github
18218 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18219 -- README: Change the gstreamer-vaapi webpage link
18221 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18223 * ext/codecparsers:
18224 codecparsers: update to gst-vaapi-branch commit 1f792e4
18225 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18226 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18227 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18228 2b92a67: h264parse: reset the parser information when caps changes
18229 05eee86: codecparsers: Indent file
18230 e27a38b: codecparsers: Add READ_UE_MAX macro
18231 2036471: Constify some static arrays everywhere
18233 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18235 * gst/vaapi/gstvaapivideoconverter_glx.c:
18236 * gst/vaapi/gstvaapivideoconverter_x11.c:
18237 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18239 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18241 * gst/vaapi/gstvaapidecode.c:
18242 * gst/vaapi/gstvaapidecodebin.c:
18243 * gst/vaapi/gstvaapiencode_h264.c:
18244 * gst/vaapi/gstvaapiencode_jpeg.c:
18245 * gst/vaapi/gstvaapiencode_mpeg2.c:
18246 * gst/vaapi/gstvaapiencode_vp8.c:
18247 * gst/vaapi/gstvaapipluginbase.c:
18248 * gst/vaapi/gstvaapipluginutil.c:
18249 * gst/vaapi/gstvaapipluginutil.h:
18250 * gst/vaapi/gstvaapipostproc.c:
18251 * gst/vaapi/gstvaapisink.c:
18252 * gst/vaapi/gstvaapivideobuffer.c:
18253 * gst/vaapi/gstvaapivideobufferpool.c:
18254 * gst/vaapi/gstvaapivideocontext.c:
18255 * gst/vaapi/gstvaapivideocontext.h:
18256 * gst/vaapi/gstvaapivideoconverter_glx.h:
18257 * gst/vaapi/gstvaapivideoconverter_x11.h:
18258 * gst/vaapi/gstvaapivideomemory.h:
18259 * gst/vaapi/gstvaapivideometa_texture.c:
18260 Removal of gstreamer-1.0 support
18261 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18262 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18263 This patch removes all the pre-processor conditional code compilation guarded
18265 Thus, all the video converters were removed too.
18266 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18267 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18268 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18270 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18272 * gst-libs/gst/vaapi/gstcompat.h:
18273 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18274 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18275 * gst-libs/gst/vaapi/sysdeps.h:
18276 * gst/vaapi/gstcompat.h:
18277 * gst/vaapi/gstvaapi.c:
18278 * gst/vaapi/gstvaapidecode.c:
18279 * gst/vaapi/gstvaapidecodebin.c:
18280 * gst/vaapi/gstvaapiencode.c:
18281 * gst/vaapi/gstvaapiencode_h264.c:
18282 * gst/vaapi/gstvaapiencode_jpeg.c:
18283 * gst/vaapi/gstvaapiencode_mpeg2.c:
18284 * gst/vaapi/gstvaapiencode_vp8.c:
18285 * gst/vaapi/gstvaapiparse.c:
18286 * gst/vaapi/gstvaapipluginbase.c:
18287 * gst/vaapi/gstvaapipluginutil.c:
18288 * gst/vaapi/gstvaapipostproc.c:
18289 * gst/vaapi/gstvaapisink.c:
18290 * gst/vaapi/gstvaapiuploader.c:
18291 * gst/vaapi/gstvaapivideobuffer.c:
18292 * gst/vaapi/gstvaapivideobufferpool.c:
18293 * gst/vaapi/gstvaapivideocontext.c:
18294 * gst/vaapi/gstvaapivideoconverter_glx.c:
18295 * gst/vaapi/gstvaapivideoconverter_x11.c:
18296 * gst/vaapi/gstvaapivideomemory.c:
18297 * gst/vaapi/gstvaapivideometa.c:
18298 * gst/vaapi/gstvaapivideometa_texture.c:
18300 update and move gstcompat.h
18301 The purpose of gstcompat.h is to couple the API differences among
18302 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18303 in this compatibility layer shall be removed.
18304 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18305 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18306 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18307 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18308 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18309 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18310 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18311 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18313 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18316 * gst/vaapi/Makefile.am:
18317 autotools: remove gstreamer-1.0 support
18318 This patch only removes the support of gstreamer-1.0 in the autotools
18319 scripts. No other files are touched.
18320 In the automake file all the converters were deprecated.
18321 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18322 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18323 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18325 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18330 Remove the gstreamer-videoutils submodule
18332 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18335 * gst-libs/gst/Makefile.am:
18336 * gst-libs/gst/vaapi/Makefile.am:
18337 * gst-libs/gst/video/Makefile.am:
18338 * gst/vaapi/Makefile.am:
18339 * tests/Makefile.am:
18340 Remove libgstvaapi-videoutils.so
18341 This library was intended to add the base classes for video decoders which
18342 where not included in gstreamer-0.10.
18343 Since the support of gstreamer-0.10 is deprecated those classes are not
18344 required, thus the whole library is removed.
18345 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18346 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18347 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18349 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18352 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18353 * gst-libs/gst/vaapi/gstvaapiutils.c:
18354 * tests/test-subpicture.c:
18355 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18356 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18357 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18358 deprecated these guards are not required.
18359 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18360 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18361 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18363 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18365 * gst-libs/gst/vaapi/gstcompat.h:
18366 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18367 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18368 * gst-libs/gst/vaapi/gstvaapiimage.c:
18369 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18370 * gst-libs/gst/vaapi/video-format.c:
18371 * gst-libs/gst/vaapi/video-format.h:
18372 * gst/vaapi/gstvaapi.c:
18373 * gst/vaapi/gstvaapidecode.c:
18374 * gst/vaapi/gstvaapidecodebin.c:
18375 * gst/vaapi/gstvaapidownload.c:
18376 * gst/vaapi/gstvaapidownload.h:
18377 * gst/vaapi/gstvaapiencode.c:
18378 * gst/vaapi/gstvaapiencode_h264.c:
18379 * gst/vaapi/gstvaapiencode_jpeg.c:
18380 * gst/vaapi/gstvaapiencode_mpeg2.c:
18381 * gst/vaapi/gstvaapiencode_vp8.c:
18382 * gst/vaapi/gstvaapiparse.c:
18383 * gst/vaapi/gstvaapipluginbase.c:
18384 * gst/vaapi/gstvaapipluginbase.h:
18385 * gst/vaapi/gstvaapipluginutil.c:
18386 * gst/vaapi/gstvaapipluginutil.h:
18387 * gst/vaapi/gstvaapipostproc.c:
18388 * gst/vaapi/gstvaapisink.c:
18389 * gst/vaapi/gstvaapiupload.c:
18390 * gst/vaapi/gstvaapiupload.h:
18391 * gst/vaapi/gstvaapiuploader.c:
18392 * gst/vaapi/gstvaapivideobuffer.c:
18393 * gst/vaapi/gstvaapivideoconverter_glx.c:
18394 * gst/vaapi/gstvaapivideoconverter_x11.c:
18395 * gst/vaapi/gstvaapivideometa.c:
18396 * gst/vaapi/gstvaapivideometa.h:
18397 * tests/test-filter.c:
18398 * tests/test-subpicture.c:
18399 Removal of gstreamer-0.10 support
18400 This patch removes all the pre-processor conditional code compilation guarded
18401 for gstreamer-0.10.
18402 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18403 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18404 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18406 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18409 * debian.upstream/control.in:
18410 * gst-libs/gst/video/Makefile.am:
18411 * gst/vaapi/Makefile.am:
18412 autotools: remove gstreamer-0.10 support
18413 This patch only removes the support of gstreamer-0.10 in the autotools
18414 scripts. No other files are touched.
18415 The configuration parameter --gstreamer-api was deleted since now it is always
18417 The verification of vmethod query in GstBaseSinkClass was removed since it was
18418 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18420 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18422 The automake files were changed accordingly.
18423 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18424 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18425 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18426 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18428 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18430 * gst/vaapi/gstvaapidecode.c:
18431 vaapidecode: add drain() vmethod
18432 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18433 class. This patch implements this new method.
18434 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18435 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18436 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18438 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18440 * gst/vaapi/gstvaapidecode.c:
18441 vaapidecode: remove vmethod reset()
18442 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18443 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18444 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18445 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18446 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18448 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18450 * gst/vaapi/gstvaapidecode.c:
18451 vaapidecode: handle flush() vmethod
18452 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18453 and flush() was added.
18454 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18455 superior. Otherwise, reset() is set.
18456 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18457 was renamed to gst_vaapidecode_internal_flush().
18458 2) The new vmethod flush() always do a hard full reset.
18459 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18460 gather all collected data with gst_video_decoder_have_frame()
18461 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18462 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18463 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18465 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18467 * gst/vaapi/gstvaapidecode.c:
18468 vaapidecode: call the correct query function
18469 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18470 a bug was introduced: when calling the parent's query function of the
18471 src pad, the one of the sink pad is called instead. This patch fixes
18473 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18475 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18478 gitmodules: Use https:// url instead of git:// for submodules.
18479 Gitorious is failing to clone repositories over git:// url.
18481 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18483 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18484 vaapidisplay: mark X11 display as compatible with EGL
18485 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18486 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18487 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18488 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18490 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18492 * gst/vaapi/gstvaapidecode.c:
18493 vaapidecode: Don't crash if a buffer outlives the decoder
18494 Sometimes, for example, when switching video streams but keeping
18495 the same sink, the surface will be released after the decoder is
18496 stopped and replaced. This caused a crash because the release
18497 callback was called on an invalid pointer.
18498 The patch adding an additional reference to the decoder object in the buffer.
18499 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18500 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18501 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18503 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18505 * gst/vaapi/gstvaapidecode.c:
18506 vaapidecode: clean-ups (indentation, drop unused variables)
18508 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18510 * gst/vaapi/gstvaapidecode.c:
18511 vaapidecode: use the query virtual methods in 1.4
18512 GstVideoDecoder, the base class of vaapidecode, added support for
18513 pad queries as virtual methods. This patch enables the use of that
18514 support, while keeping support for lower versions of gstreamer.
18515 This patch is important because GstVideoDecoder takes care of other
18516 queries that might be important in the pipeline managing.
18517 v2: 1) rebase to current master
18518 2) fix indentation with gst-indent
18519 3) simplify the patch layout
18520 4) fix the context query
18521 5) initialise the filter to NULL
18522 6) improve the query log message for gst-1.2
18523 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18525 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18527 * gst/vaapi/gstvaapipostproc.c:
18528 * gst/vaapi/gstvaapipostproc.h:
18529 vaapipostproc: always activate buffer pool
18530 The vaapipostproc has a proxy flag to know if the the buffer pool is
18531 already active. But this fails in some situations where it is needed
18532 to renegotiate the buffer pool.
18533 This patch removes that flag so the renegotiation is done whenever is
18535 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18537 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18539 * gst/vaapi/gstvaapisink.c:
18540 vaapisink: fix minor memory leak in debug mode.
18541 The gst_video_colorimetry_to_string() function returns a newly created
18542 string that represents the GstVideoColorimetry value. So, that needs
18543 to be released after usage, in e.g. GST_DEBUG().
18545 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18547 * gst/vaapi/gstvaapidecodebin.h:
18548 vaapidecodebin: Avoid usage of "__" prefix in macro names
18549 Avoiding "__" prefix usage in Header File Guards as per
18550 C standard recommendation.
18552 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18554 * gst/vaapi/gstvaapi.c:
18555 plugins: Disable vaapidecodebin for GStreamer < 1.4
18556 There are autoplugging issues in GStreamer-1.2.
18557 Lets disable vaapidecodebin untill we get some workarounds for this.
18559 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18561 * gst/vaapi/Makefile.am:
18562 * gst/vaapi/gstvaapi.c:
18563 * gst/vaapi/gstvaapidecodebin.c:
18564 * gst/vaapi/gstvaapidecodebin.h:
18565 plugins: Add a vaapidecodebin element
18566 Add a "vaapidecodebin" element to vaapi plugins.
18567 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18568 The Reasons for implementing a new bin element:
18569 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18570 with out any dependency to upstream gstreamer.
18571 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18572 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18573 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18574 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18575 -- Help to maintain a single thread implementation in vaapidecode.
18576 This will result a dead-lock free vaapidecode in most of the cases.
18577 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18578 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18580 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18582 * gst/vaapi/gstvaapidecode.c:
18583 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18585 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18587 * gst/vaapi/gstvaapidecode.c:
18588 * gst/vaapi/gstvaapidecode.h:
18589 vaapidecode: Switch back to Single thread implementation
18590 Because the decoder uses the thread from handle_frame() to decode a frame,
18591 the src pad task creates an unsolveable AB-BA deadlock between
18592 handle_frame() waiting for a free surface and decode_loop() pushing
18593 decoded frames out.
18594 Instead, have handle_frame() take responsibility for pushing surfaces,
18595 and remove the deadlock completely. If you need a separate thread
18596 downstream, you can insert a queue between vaapidecode and its downstream
18598 Another justification for the single thread implementation is,
18599 there are two many point of locking in gstreamer-vaapi's current
18600 implementation which can lead to deadlocks.
18601 https://bugzilla.gnome.org/show_bug.cgi?id=742605
18602 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18603 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18604 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18606 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18608 * gst/vaapi/gstvaapipluginbase.c:
18609 plugins: fix detection of upstream v4l2src element.
18610 Improve check for upstream element that requires DMABUF buffer pool,
18611 e.g. v4l2src element. In particular, make sure to traverse through
18612 any additional capsfilter for instance.
18613 Note: the traversal to the top-most upstream element could be made
18614 more generic, but we are insofar only interested in supporting pipes
18615 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18616 specification for a desired video camera format, or resolution.
18618 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18620 * gst/vaapi/gstvaapivideomemory.c:
18621 plugins: fix allocation of DMABUF memory.
18622 The dmabuf allocator would close the DMABUF handle passed in the init
18623 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18624 to avoid a double close, ultimately in the underlying driver that owns
18627 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18629 * gst/vaapi/gstvaapidecode.c:
18630 vaapidecode: keep src caps and output state in sync
18631 vaapidecode keeps an output state that use the format
18632 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18633 for a correct negotiation.
18634 I don't see the rational behind this decoupling, it looks like
18635 unnecessary complexity. This patch simplify this logic keeping
18636 in sync the output state and the src caps.
18637 This patch improves the readability of the function
18638 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18639 the patch validates if the buffer pool has the configuration for
18640 the GL texture upload meta, in order to set the caps feature
18641 meta:GLTextureUpload. Otherwise, the I420 format is set back.
18642 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18643 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18644 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18646 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18648 * gst/vaapi/gstvaapidecode.c:
18649 vaapidecode: upload meta only if feature and allocation
18650 When vaapidecode finishes the decoding of a frame and pushes it,
18651 if, in the decide_allocation() method, it is determined if the
18652 next element supports the GL texture upload meta feature, the
18653 decoder adds the buffer's meta.
18654 Nonetheless, in the same spirit of the commit 71d3ce4d, the
18655 determination if the next element supports the GL texture upload
18656 meta needs to check both the preferred caps feature *and* if the
18657 allocation query request the API type.
18658 This patch, first removes the unused variable need_pool, and
18659 determines the attribute has_texture_upload_meta using the
18660 preferred caps feature *and* the allocation query.
18661 Also, the feature passed to GstVaapPluginBase is not longer
18662 determined by has_texture_upload_meta, but by the computed
18664 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18665 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18666 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18668 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18670 * gst/vaapi/gstvaapidecode.c:
18671 * gst/vaapi/gstvaapidecode.h:
18672 * gst/vaapi/gstvaapipluginutil.c:
18673 * gst/vaapi/gstvaapipluginutil.h:
18674 vaapidecode: delayed src caps negotiation
18675 Currently the src caps are set immediately after the sink caps are set, but in
18676 that moment the pipeline might not fully constructed and the video sink has
18677 not negotiated its supported caps and features. As a consequence, in many cases
18678 of playback, the least optimized caps feature is forced. This is partially the
18679 responsible of bug #744039.
18680 Also, vaapidecode doesn't attend the reconfigure events from downstream,
18681 which is a problem too, since the video sink can be changed with different
18683 This patch delays the src caps, setting them until the first frame arrives to
18684 the decoder, assuming until that very moment the whole pipeline is already
18685 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18686 as a consequence of a reconfiguration event from downstream.
18687 A key part of this patch is the new GstVaapiCapsFeature
18688 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18689 doesn't have a peer yet. Also, for a better report of the caps allowed
18690 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18691 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18692 v3: move the input_state unref to close(), since videodecoder resets at
18693 some events such as navigation.
18694 v4: a) the state_changed() callback replaces the input_state if the media
18695 changed, so this case is also handled.
18696 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18697 always the input_state, the parameter were removed.
18698 c) there were a lot of repeated code handling the input_state, so I
18699 refactored it with the function gst_vaapi_decode_input_state_replace().
18700 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18701 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18702 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18704 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18706 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18707 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18708 encoder: h264: add support for more than 2 views
18709 Add support for H.264 MVC Multiview High profile encoding with
18710 more than 2 views. All views within the same accesss unit are
18711 provided in increasing order of view order index (VOIdx).
18712 Upto 10 view are supported for now.
18713 A new property "view-ids" has been provided for the plugins to
18714 set the view ids (which is an array of guint values) to be used
18716 https://bugzilla.gnome.org/show_bug.cgi?id=732453
18718 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18720 * gst/vaapi/gstvaapipluginbase.c:
18721 plugins: upload meta only if feature and allocation
18722 Working on bug #743687, I realized that vaapidecode always adds to its buffer
18723 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18724 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18725 Nevertheless, there are occasions where the query has the API type, but the
18726 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18727 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18728 buffer pool configuration, and adds its buffer's meta to each output buffer,
18729 even if the negotiated caps feature is memory:SystemMemory with I420 color
18731 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18732 that relates caps <-> GL upload method. If it receives a buffer with color
18733 format I420, it assumes that it doesn't have a texture upload meta, because
18734 only those with RGB color format has it. Our buffers, with I420 format, say
18735 that they have the upload meta too. In that case the mapped method is a dummy
18736 one which does nothing. I reported this issue in bug #744039 (the patch,
18737 obviously, was rejected).
18738 This patch workarounds the problem: the buffer pool's configuration option
18739 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18740 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18741 caps feature is meta:GstVideoGLTextureUploadMeta.
18742 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18743 in all they seem to work correctly.
18744 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18745 [adapted to fit current EGL changes]
18746 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18748 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18750 * gst-libs/gst/vaapi/gstvaapitexture.c:
18751 * gst-libs/gst/vaapi/gstvaapitexture.h:
18752 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18753 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18754 * gst/vaapi/gstvaapivideometa_texture.c:
18755 plugins: add support for GstVideoGLTextureOrientation.
18756 Add support for GstVideoGLTextureOrientation modes. In particular,
18757 add orientation flags to the GstVaapiTexture wrapper and the GLX
18758 implementations. Default mode is that texture memory is laid out
18759 with top lines first, left row first. Flags indicate whether the
18760 X or Y axis need to be inverted.
18762 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18764 * gst/vaapi/gstvaapidecode.c:
18765 * gst/vaapi/gstvaapipluginbase.c:
18766 * gst/vaapi/gstvaapipluginutil.c:
18767 * gst/vaapi/gstvaapipluginutil.h:
18768 * gst/vaapi/gstvaapipostproc.c:
18769 * gst/vaapi/gstvaapivideometa_texture.c:
18770 plugins: add support for BGRA textures.
18771 Some frameworks (EFL) expect BGRA textures for storage. However,
18772 adding support for that broadly into GStreamer framework implies
18773 two kinds of hacks: (i) libgstgl helpers currently do not support
18774 BGRA textures correctly, (ii) we need to better parse downstream
18775 suggested caps and intersect them with what the VA plugin elements
18776 can offer to them for GL texturing.
18778 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18780 * gst/vaapi/gstvaapipluginutil.c:
18781 plugins: fix support for Wayland/EGL running alongside X11.
18782 When multiple display servers are available, the glimagesink element
18783 (from GStreamer 1.4) may not be able to derive a global display in
18784 Wayland. Rather, a "window"-specific display is created. In this case,
18785 the GstGLDisplay handle available through GstGLContext is invalid.
18786 So, try to improve heuristics for display server characterisation in
18787 those particular situations.
18789 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18792 * gst/vaapi/Makefile.am:
18793 * gst/vaapi/gstvaapidecode.c:
18794 * gst/vaapi/gstvaapipluginbase.c:
18795 * gst/vaapi/gstvaapipluginutil.c:
18796 * gst/vaapi/gstvaapivideobufferpool.c:
18797 * gst/vaapi/gstvaapivideometa_texture.c:
18798 plugins: add initial support for EGL.
18799 Add initial support for EGL through GstVideoGLTextureUploadMeta.
18800 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18801 downstream supplied GstGLContext configuration, i.e. use its native
18802 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18803 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18805 https://bugzilla.gnome.org/show_bug.cgi?id=741079
18807 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18809 * gst/vaapi/gstvaapivideometa_texture.c:
18810 plugins: track video texture size changes.
18811 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18812 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18813 now update the texture size from the GstVideoMeta, if any, or reset
18814 to some defaults otherwise.
18816 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18818 * gst/vaapi/gstvaapipluginbase.c:
18819 * gst/vaapi/gstvaapipluginbase.h:
18820 * gst/vaapi/gstvaapipluginutil.c:
18821 plugins: ensure VA display matches GL context expectations.
18822 If a GstGLContext is supplied by the downstream element, then make
18823 sure that the VA plugin element gets a compatible display to what
18824 is requested by the GL context. e.g. re-allocate a VA/GLX display
18825 when a GLX context is provided by the downstream element.
18827 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18830 * gst/vaapi/Makefile.am:
18831 * gst/vaapi/gstvaapipluginbase.c:
18832 * gst/vaapi/gstvaapipluginbase.h:
18833 plugins: record downstream GstGLContext.
18834 Record GL context supplied by downstream elements. This can be useful,
18835 and further needed, to enforce run-time check that the GL context is
18836 compatible for use by libgstvaapi. e.g. check that we don't create a
18837 VA/GLX display for EGL/X11 contexts.
18838 https://bugzilla.gnome.org/show_bug.cgi?id=725643
18839 Original-path-by: Matthew Waters <ystreet00@gmail.com>
18841 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18843 * tests/Makefile.am:
18846 Add initial support for EGL to tests. The new EGL backend can be selected
18847 through the --egl command line option. The OpenGL|ES version can further
18848 be selected with the --gles-version command line option, where the default
18849 of 0 means "desktop" OpenGL.
18851 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18853 * gst-libs/gst/vaapi/Makefile.am:
18854 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18855 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18856 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18857 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18858 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18859 egl: add windowing support.
18860 This provides for some basic EGL window abstraction.
18862 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18864 * gst-libs/gst/vaapi/Makefile.am:
18865 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18866 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
18867 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
18868 egl: add texture abstraction.
18869 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
18870 or import a foreign allocated one, while still allowing updates from a
18873 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18875 * gst-libs/gst/vaapi/Makefile.am:
18876 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
18877 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
18878 egl: allow for EGLImage imports into VA Surfaces.
18879 Add helpers to import EGLImage objects into VA surfaces. There are
18880 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
18881 which allows for implicit conversion from EGLImage to a VA surface
18882 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
18883 which exactly wraps the source EGLImage, typically in RGBA format
18884 with linear storage.
18885 Note: in case of (i), the EGLImage can be disposed right after the
18886 VA surface creation call, unlike in (ii) where the user shall ensure
18887 that the EGLImage is live until the associated VA surface is no longer
18889 https://bugzilla.gnome.org/show_bug.cgi?id=743847
18891 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18894 * gst-libs/gst/vaapi/Makefile.am:
18895 * gst-libs/gst/vaapi/egl_compat.h:
18896 * gst-libs/gst/vaapi/egl_vtable.h:
18897 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18898 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18899 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18900 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
18901 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
18902 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18903 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18904 * gst-libs/gst/vaapi/ogl_compat.h:
18905 Add initial support for EGL.
18906 Add initial support for EGL to libgstvaapi core library. The target
18907 display server and the desired OpenGL API can be programmatically
18908 selected at run-time.
18909 A comprehensive set of EGL utilities are provided to support those
18910 dynamic selection needs, but also most importantly to ensure that
18911 the GL command stream is executed from within a single thread.
18912 https://bugzilla.gnome.org/show_bug.cgi?id=743846
18914 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18916 * gst-libs/gst/vaapi/gstvaapivalue.c:
18917 libs: initialize GValues in a thread-safe manner.
18919 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18921 * gst-libs/gst/vaapi/gstvaapivalue.c:
18922 libs: re-indent all GValue related source code.
18924 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18926 * gst/vaapi/gstvaapidecode.c:
18927 vaapidecode: partially revert 0777f35.
18928 Reset the VA decoder after updating the base plugin caps, and most
18929 importantly, after GstVideoDecoder negotiation. The reason behind
18930 this is that the negotiation could trigger a last decide_allocation()
18931 where we could actually derive a new GstVaapiDisplay to use from the
18932 downstream element. e.g. GLX backend.
18934 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18936 * gst/vaapi/gstvaapidecode.c:
18937 vaapidecode: Caps query should return the list of all supported caps.
18938 Query caps filtering should be always done on top of allowed caps instead
18939 of existing fixed caps on a particular pad.
18940 This fixes the mvc stream decoding when there is a base view(high profile)
18941 and non-base view(stereo-high profile).
18943 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18945 * gst/vaapi/gstvaapidecode.c:
18946 vaapidecode: intersect filter from query caps
18947 According to documentation[1] when receiving a GST_QUERY_CAPS
18948 the return value should be all formats that this elements supports,
18949 taking into account limitations of peer elements further downstream
18950 or upstream, sorted by order of preference, highest preference first.
18951 This patch add those limitations intersecting with the received
18952 filter in the query. Also takes into account the already negotiated
18953 caps. Also adds the processing of the query on the SRC pad.
18954 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
18955 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18957 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18959 * gst-libs/gst/vaapi/Makefile.am:
18960 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18961 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18962 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18963 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18964 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
18965 * gst/vaapi/gstvaapivideomemory.c:
18966 Fix compiler warnings
18967 This patch fixes some warnings that gcc 4.9 reports.
18968 https://bugzilla.gnome.org/show_bug.cgi?id=744411
18970 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18972 * gst/vaapi/gstvaapidecode.c:
18973 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
18974 Hence the function name is shown in the gst-inspect-1.0 information
18975 rather than the memory address.
18976 https://bugzilla.gnome.org/show_bug.cgi?id=744330
18978 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18980 * gst/vaapi/gstvaapidecode.c:
18981 vaapidecode: log flow error name
18982 https://bugzilla.gnome.org/show_bug.cgi?id=744387
18984 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18986 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18987 VC1: decoder: Ignore VC1 user BDU's
18988 Don't return error if the processed BDU is a user one, just ignore them.
18989 https://bugzilla.gnome.org/show_bug.cgi?id=741237
18990 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18992 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
18994 * gst/vaapi/gstvaapidecode.c:
18995 * gst/vaapi/gstvaapipluginbase.c:
18996 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
18997 This is required in GStreamer, elements should never return
18998 GST_FLOW_ERROR without posting an ERROR message on the bus.
18999 https://bugzilla.gnome.org/show_bug.cgi?id=744620
19001 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19003 * gst/vaapi/Makefile.am:
19004 * gst/vaapi/gstvaapi.c:
19005 * gst/vaapi/gstvaapiencode_vp8.c:
19006 * gst/vaapi/gstvaapiencode_vp8.h:
19007 plugins: Add VP8 Encoder
19009 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19011 * gst-libs/gst/vaapi/Makefile.am:
19012 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19013 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19014 Add VP8 Encoder to core libgstvaapi.
19016 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19019 configure: Add Check for VP8 Encoding API
19021 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19023 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19024 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19025 Added rounding control handling for VC1 simple and Main profile
19026 based on VC1 standard spec: section 8.3.7
19027 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19028 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19029 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19031 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19033 * gst/vaapi/Makefile.am:
19034 build: fix make dist when certain conditionals not met.
19035 Fix typo which was preventing the inclusion of jpeg encoder
19036 source files from make dist (when there is no jpeg encoder
19037 API support in libva).
19039 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19041 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19042 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19043 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19044 use native YUV420 format (which is i420) as default.
19046 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19048 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19049 encoder: Only support YUV420 native format as input for now
19050 Practically we should be able to support more formats, for eg:
19051 JPEG Encoder can support YUV422, RGBA and all.
19052 But this is causing more issues which need proper fix here and there.
19054 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19056 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19057 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19058 * gst/vaapi/gstvaapidecode.c:
19059 vaapidecode: Check the condition after taking the lock
19060 Otherwise the condition could become true before the lock
19061 is taken and the g_cond_signal() could be called
19062 before the g_cond_wait(), so the g_cond_wait() is never
19064 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19066 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19068 * gst/vaapi/Makefile.am:
19069 * gst/vaapi/gstvaapi.c:
19070 * gst/vaapi/gstvaapiencode_jpeg.c:
19071 * gst/vaapi/gstvaapiencode_jpeg.h:
19072 plugins: Add JPEG encoder element
19074 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19076 * gst-libs/gst/vaapi/gstvaapicontext.c:
19077 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19079 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19081 * gst-libs/gst/vaapi/gstvaapicontext.c:
19082 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19083 Don't add the VAConfigAttribRateControl to the attribute list using
19084 for the vaCreateConfig if it is not supported by the driver.
19086 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19088 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19089 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19091 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19093 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19094 gstvaapiencoder: Fix crash when handling rate control mask
19095 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19096 might not be supporting any kind of rate control mechanisms.
19099 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19101 * gst-libs/gst/vaapi/Makefile.am:
19102 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19103 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19104 encoder: Add JPEG Encoder
19106 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19108 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19109 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19110 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19112 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19114 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19115 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19116 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19117 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19118 Encode: Add support for Picture level Entrypoint
19119 This is useful for JPEG encoding which is utilizing picture level
19120 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19122 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19125 configure: Add Check for JPEG encoding API
19127 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19132 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19135 Bump version for development.
19137 === release 0.5.10 ===
19139 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19144 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19149 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19151 * gst/vaapi/gstvaapivideometa_texture.c:
19152 Fix compilation error if there is no GL/gl.h header file installed
19154 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19156 * gst/vaapi/gstvaapivideomemory.h:
19157 plugins: drop leftover declaration.
19158 GstVaapiVideoMemory quark is not needed any more, and the actual
19159 implementation was already removed bfore the merge. i.e. this is
19160 an oversight for a hunk that was not meant to be pushed.
19162 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19164 * gst/vaapi/gstvaapipluginbase.c:
19165 * gst/vaapi/gstvaapivideobufferpool.c:
19166 * gst/vaapi/gstvaapivideobufferpool.h:
19167 * gst/vaapi/gstvaapivideomemory.c:
19168 * gst/vaapi/gstvaapivideomemory.h:
19169 plugins: add support for dma_buf exports (v4l2src).
19170 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19171 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19172 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19173 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19174 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19175 with --without-libv4l2.
19176 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19178 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19181 * gst/vaapi/Makefile.am:
19182 * gst/vaapi/gstvaapipluginbase.c:
19183 plugins: add support for dma_buf imports.
19184 Allow imports of v4l2 buffers into VA surfaces for further operation
19185 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19186 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19187 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19190 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19192 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19193 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19194 surface: add support for GEM buffer imports.
19195 Add support for GEM buffer imports. This is useful for VA/EGL interop
19196 with legacy Mesa implementations, or when it is desired or required to
19197 support outbound textures for instance.
19198 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19200 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19202 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19203 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19204 surface: add support for dma_buf imports.
19205 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19206 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19207 resulting VA surface owns the supplied buffer handle.
19208 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19210 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19212 * gst-libs/gst/vaapi/gstvaapisurface.c:
19213 * gst-libs/gst/vaapi/gstvaapisurface.h:
19214 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19215 surface: add initial support for foreign buffer imports.
19216 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19217 create a VA surface from an external buffer provided throug the
19218 new GstVaapiBufferProxy object.
19220 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19222 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19223 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19224 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19225 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19226 surface: add support for GEM buffer exports.
19227 Add support for GEM buffer exports. This will only work with VA drivers
19228 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19229 to support interop with EGL and the "Desktop" GL specification. Indeed,
19230 the EXT_image_dma_buf_import extension is not going to be supported in
19231 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19233 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19234 in Desktop OpenGL context.
19235 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19237 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19239 * gst-libs/gst/vaapi/Makefile.am:
19240 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19241 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19242 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19243 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19244 surface: add support for dma_buf exports.
19245 Use the new VA buffer export APIs to allow for a VA surface to be
19246 exposed as a plain PRIME fd. This is in view to simplifying interop
19247 with EGL or OpenCL for instance.
19248 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19250 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19252 * gst-libs/gst/vaapi/Makefile.am:
19253 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19254 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19255 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19256 Add abstraction for exported VA buffers.
19257 The VA buffer export APIs work for a particular lifetime starting from
19258 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19259 it could be much more convenient to support implicit releases by simply
19260 having a refcount reaching zero.
19261 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19263 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19265 * gst-libs/gst/vaapi/Makefile.am:
19266 Add missing header file to Makefile
19267 Add gstvaapitexture_glx.h to Makefile.am
19269 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19271 * gst-libs/gst/vaapi/gstvaapicontext.c:
19272 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19273 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19274 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19275 * gst/vaapi/gstvaapipostproc.c:
19276 * gst/vaapi/gstvaapiuploader.c:
19277 * gst/vaapi/gstvaapivideobufferpool.c:
19278 * gst/vaapi/gstvaapivideomemory.c:
19279 * gst/vaapi/gstvaapivideomemory.h:
19280 * tests/test-surfaces.c:
19281 videopool: add optional flags for surface pool allocation.
19282 Reword surface pool allocation helpers so that to allow for a simple
19283 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19284 somewhat more elaborated/flexible form with optional allocation flags
19285 and precise GstVideoInfo specification.
19286 This is an API/ABI change, and SONAME version needs to be bumped.
19288 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19290 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19291 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19292 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19293 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19294 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19295 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19296 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19297 videopool: re-indent all GstVaapiVideoPool related source code.
19299 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19301 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19302 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19303 window: add toplevel display indirection for visualid and colormap.
19304 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19305 the best suitable window visual id and colormap. This is an indirection in
19306 view to supporting EGL and custom/generic replacements.
19308 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19310 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19311 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19312 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19313 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19314 window: add toplevel API to determine the colormap.
19315 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19316 currently active colormap bound to the supplied window, or actually
19317 create it if it does not already exist yet.
19319 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19321 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19322 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19323 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19324 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19325 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19326 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19327 window: add toplevel API to determine a visual id.
19328 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19329 the best suitable visual id for the supplied window. While doing so,
19330 also simplify the process by which an X11 window is created with a
19331 desired Visual, i.e. now use a visual id instead of a Visual object.
19333 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19335 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19336 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19337 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19338 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19339 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19340 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19341 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19342 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19343 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19344 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19345 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19346 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19347 window: add generic helper to create windows.
19348 Add a new generic helper function gst_vaapi_window_new() to create
19349 a window without having the caller to check for the display type
19350 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19351 to create windows, and the actual backend implementation fills it in.
19352 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19353 This is a simplification in view to supporting EGL.
19355 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19357 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19358 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19359 * gst-libs/gst/vaapi/gstvaapitexture.c:
19360 * gst/vaapi/gstvaapivideometa_texture.c:
19361 display: add utility function to check for OpenGL rendering.
19362 Add gst_vaapi_display_has_opengl() helper function to help determining
19363 whether the display can support OpenGL context to be bound to it, i.e.
19364 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19366 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19368 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19369 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19370 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19371 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19372 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19373 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19374 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19375 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19376 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19377 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19378 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19379 * gst/vaapi/gstvaapipluginutil.c:
19380 * gst/vaapi/gstvaapivideobuffer.c:
19381 * gst/vaapi/gstvaapivideometa_texture.c:
19382 display: refine the meaning of display type.
19383 Make gst_vaapi_display_get_display_type() return the actual VA display
19384 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19385 return the type of the GstVaapiDisplay instance. The former is used to
19386 identify the display server onto which the application is running, and
19387 the latter to identify the original object class.
19389 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19391 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19392 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19393 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19394 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19395 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19396 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19397 display: cosmetics (helper macros, new internal API names).
19398 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19399 Rename a few others used internally for improved consistency.
19401 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19403 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19404 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19405 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19406 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19407 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19408 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19409 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19410 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19411 display: record native display object.
19412 Record the underlying native display instance into the toplevel
19413 GstVaapiDisplay object. This is useful for fast lookups to the
19414 underlying native display, e.g. for creating an EGL display.
19416 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19418 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19419 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19420 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19421 display: use a recursive mutex for the display cache.
19422 Use a recursive mutex for the display cache so that a 3rdparty display
19423 object could be initialized during the initialization of the parent
19426 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19428 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19429 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19430 * gst-libs/gst/vaapi/gstvaapitexture.c:
19431 * gst-libs/gst/vaapi/gstvaapitexture.h:
19432 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19433 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19434 texture: add generic helper to create textures.
19435 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19436 and gst_vaapi_texture_new() to create a texture without having
19437 the caller to uselessly check for the display type himself. i.e.
19438 internally, there is now a GstVaapiDisplayClass hook to create
19439 textures, and the actual backend implementation fills it in.
19440 This is a simplification in view to supporting EGL.
19442 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19444 * gst-libs/gst/vaapi/Makefile.am:
19445 * gst-libs/gst/vaapi/gstvaapitexture.c:
19446 * gst-libs/gst/vaapi/gstvaapitexture.h:
19447 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19448 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
19449 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19450 * gst/vaapi/gstvaapivideoconverter_glx.c:
19451 * gst/vaapi/gstvaapivideometa_texture.c:
19452 * tests/test-textures.c:
19453 texture: move to core libgstvaapi base library.
19454 GstVaapiTexture is a generic abstraction that could be moved to the
19455 core libgstvaapi library. While doing this, no extra dependency needs
19456 to be added. This means that a GstVaapitextureClass is now available
19457 for any specific code that needs to be added, e.g. creation of the
19458 underlying GL texture objects, or backend dependent ways to upload
19459 a surface to the texture object.
19460 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19462 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19464 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19467 * gst-libs/gst/vaapi/Makefile.am:
19468 * gst-libs/gst/vaapi/gstvaapicompat.h:
19469 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19470 * gst-libs/gst/vaapi/gstvaapitexture.c:
19471 texture: drop support for VA/GLX interfaces.
19472 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19473 ease of use, but they had other caveats to deal with. It's now better
19474 to move on to legacy mode, whereby VA/GLX interop is two be provided
19475 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19476 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19478 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19480 * gst-libs/gst/vaapi/gstvaapitexture.c:
19481 * gst-libs/gst/vaapi/gstvaapitexture.h:
19482 * gst/vaapi/gstvaapivideoconverter_glx.c:
19483 * gst/vaapi/gstvaapivideometa_texture.c:
19484 * tests/test-textures.c:
19485 texture: add support for cropping rectangle during transfer.
19486 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19487 argument that would be used during transfer for cropping the source
19488 surface to the desired dimensions.
19489 Note: from a user point-of-view, he should create the GstVaapiTexture
19490 object with the cropped size. That's the default behaviour in software
19491 decoding pipelines that we need to cope with.
19492 This is an API/ABI change, and SONAME version needs to be bumped.
19493 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19495 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19497 * gst-libs/gst/vaapi/gstvaapitexture.c:
19498 * gst-libs/gst/vaapi/gstvaapitexture.h:
19499 texture: re-indent all GstVaapiTexture related source code.
19501 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19503 * gst-libs/gst/vaapi/gstvaapisurface.c:
19504 * gst-libs/gst/vaapi/gstvaapisurface.h:
19505 surface: add more fine-grained allocation helper.
19506 Add new gst_vaapi_surface_new_full() helper function that allocates
19507 VA surface from a GstVideoInfo template in argument. Additional flags
19508 may include ways to
19509 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19510 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19511 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19513 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19515 * gst-libs/gst/vaapi/gstvaapisurface.c:
19516 * gst-libs/gst/vaapi/gstvaapisurface.h:
19517 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19518 surface: re-indent all GstVaapiSurface related source code.
19520 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19522 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19523 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19524 surfaceproxy: add helper to create a wrapped surface object.
19525 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19526 a proxy. The main use case for that is to convey additional information
19527 at the proxy level that would not be suitable to the plain surface.
19529 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19531 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19532 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19533 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19534 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19536 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19539 libs: bump library major version.
19541 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19543 * gst-libs/gst/vaapi/gstvaapitypes.h:
19544 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19545 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19546 a non-zero and invalid id. This is useful to have a value
19547 that is still invalid for cases where zero could actually
19550 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19552 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19553 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19554 libs: expose GstVaapiMiniObject APIs to all backends.
19555 Make it possible to have all libgstvaapi backends (libs) access to a
19556 common GstVaapiMiniObject API and implementation. This is a minor step
19557 towards full exposure when needed, but restrict it to libgstvaapi at
19560 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19562 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19563 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19564 * gst-libs/gst/vaapi/gstvaapiobject.c:
19565 * gst-libs/gst/vaapi/gstvaapiobject.h:
19566 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19567 libs: re-indent all GstVaapiObject related source code.
19568 Re-indent and provide additional minor cosmetical changes to the
19569 GstVaapiMiniObject and GstVaapiObject source files.
19571 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19573 * gst/vaapi/gstvaapipluginutil.c:
19574 pluginutil: Fix clearing of subtitle overlay
19575 dvbsuboverlay signals no subtitles present by not setting
19576 GstVideoOverlayCompositionMeta on a buffer.
19577 Detect this, and remove subtitles whenever we have no overlay composition to
19579 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19581 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19583 * gst/vaapi/gstvaapipostproc.c:
19584 vaapipostproc: clear state on stop
19585 Otherwise restarting may fail because the state of vaapipluginbase and
19586 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19587 initailization and not call gst_vaapi_plugin_base_set_caps()
19589 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19591 * gst/vaapi/gstvaapidecode.c:
19592 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19594 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19596 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19597 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19598 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19599 since the vaaapi context creation (gstvaapicontext.c) can still use the
19600 default chroma type which is YUV420.
19601 https://bugzilla.gnome.org/show_bug.cgi?id=743567
19602 https://bugzilla.gnome.org/show_bug.cgi?id=743035
19604 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19606 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19607 * patches/videoparsers/series.frag:
19608 h264parse: drop patches merged upstream.
19609 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19611 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19613 * ext/codecparsers:
19614 codecparsers: update to gst-vaapi-branch commit d3b5c1b
19615 8194cac: h264parse: parse SPS subset
19616 64b7f52: h264parse: expose stereo-high profile
19617 774360a: h264parse: add initial support for MVC NAL units
19618 258478f: h264parser: fix stack smashing
19620 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19622 * gst/vaapi/gstvaapivideometa_texture.c:
19623 Fix compilation error if there is no GL/gl.h header file installed
19625 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19627 * gst/vaapi/gstvaapidecode.c:
19628 vaapidecode: commit updated srcpad caps to base plugin.
19629 Make sure that the GstVaapiPluginBase instance receives the new src
19630 pad caps whenever they get updated from within the GstVaapiDecoder
19632 This also ensures that downstream elements receive correctly sized
19633 SW decoded buffers if needed.
19634 https://bugs.tizen.org/jira/browse/TC-114
19636 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19638 * gst/vaapi/gstvaapidecode.c:
19639 vaapidecode: always reset decoder on ::set_format().
19640 Split GstVideoDecoder::set_format() handler to first update the sink
19641 pad caps and reset the active VA decoder instance based on those, and
19642 then update the src pad caps whenever possible, e.g. when the caps
19643 specify a valid video resolution.
19645 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19647 * gst/vaapi/gstvaapivideomemory.c:
19648 vaapivideomemory: don't crash when trying to allocate 0x0 images.
19649 In some occasions, a buffer pool is created for pre-initialization
19650 purposes regardless of whether a valid image size is available or
19651 not. However, during actual decode stage, the vaapidecode element
19652 is expected to update the srcpad caps with the new dimensions, thus
19653 also triggering a reset of the underlying bufferpool.
19655 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19657 * ext/codecparsers:
19658 codecparsers: update to gst-vaapi-branch commit 191cb2f
19659 347605a: h264parse: expose compatible profiles to downstream
19660 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19661 24a3126: Revert "h264parse: expose compatible profiles to downstream"
19662 8661740: h264parse: expose compatible profiles to downstream
19663 8b7ef3f: codecparsers: fix some compiler warnings
19665 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19667 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19668 encoder: h264: Fix the period between I/P frames
19669 If the key-frame period is set as one, then ip_period shuld be zero
19670 https://bugzilla.gnome.org/show_bug.cgi?id=734992
19672 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19674 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19675 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19676 https://bugzilla.gnome.org/show_bug.cgi?id=734993
19678 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19680 * gst/vaapi/gstvaapisink.c:
19681 vaapisink: Protect the X11 API invokations with proper locking
19682 https://bugzilla.gnome.org/show_bug.cgi?id=739808
19684 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19686 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19687 encoder: h264: fix pixel-aspect-ratio in encoded stream.
19688 Really report sample aspect ratio (SAR) as present, and make it match
19689 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19690 really make sure VUI parameter aspect_ratio_info_present_flag is set
19691 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19692 This is a leftover from git commit a12662f.
19693 https://bugzilla.gnome.org/show_bug.cgi?id=740360
19695 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19697 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19698 decoder: mpeg4: fix uninitialized variables.
19699 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19700 GST_MPEG4_USER_DATA so that a parse error would result in skipping
19701 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19702 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19704 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19706 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19707 encoder: h264: fix profile limits.
19708 Fix ensure_profile_limits() to lower profile to the desired limits,
19709 only if the latter are actually known and the profile needed to be
19712 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19714 * gst/vaapi/gstvaapipostproc.c:
19715 vaapipostproc: fix out caps for GLMemory.
19716 If the best downstream capsfeature turns out to be GLMemory, then make
19717 sure to propagate RGBA video format in caps to that element. This fixes
19718 the following pipeline: ... ! vaapipostproc ! glimagesink.
19720 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19722 * gst/vaapi/gstvaapipostproc.c:
19723 vaapipostproc: fix check for compatible src pad capsfilters.
19724 When an explicit output video format is selected, from an src pad
19725 capsfilter, make sure that the downstream element actually supports
19726 that format. In particular, fix crash with the following pipelines:
19727 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19728 XXX is a format not supported by xvimagesink.
19729 While doing so, also reduce the set of src pad filter caps to the
19730 actual set of allowed src pad caps.
19732 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19734 * gst/vaapi/gstvaapipostproc.c:
19735 * gst/vaapi/gstvaapipostproc.h:
19736 * gst/vaapi/gstvaapiuploader.c:
19737 * gst/vaapi/gstvaapiuploader.h:
19738 plugins: re-indent all video processing related source code.
19740 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19742 * gst/vaapi/gstvaapivideomemory.c:
19743 plugins: further fixes to the new "current" storage tracker.
19744 The ensure_surface() and ensure_image() functions shall only relate
19745 to the underlying backing store. The actual current flags are to be
19746 updated only through ensure_{surface,image}_is_current() or very other
19747 particular cases in GstMemory hooks.
19749 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19751 * gst/vaapi/gstvaapivideomemory.c:
19752 plugins: fix "current" video memory flags.
19753 If the surface proxy is updated into the GstVaapiVideoMemory, then
19754 it is assumed it is the most current representation of the current
19755 video frame. Likewise, make a few more arrangements to have the
19756 "current " flags set more consistently.
19758 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19760 * gst/vaapi/gstvaapivideomemory.c:
19761 * gst/vaapi/gstvaapivideomemory.h:
19762 * gst/vaapi/gstvaapivideometa.c:
19763 plugins: ensure VA surface is current prior to using it.
19764 When interacting with SW elements, the buffers and underlying video
19765 memory could be mapped as read/write. However, we need to use those
19766 buffers again as plain VA surfaces, we have to make sure the VA image
19767 is thus committed back to VA surface memory.
19768 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19770 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19772 * gst/vaapi/gstvaapivideomemory.c:
19773 plugins: enable memory maps for read & write.
19774 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19775 buffers can be further processed in-place, e.g. with a textoverlay.
19776 https://bugzilla.gnome.org/show_bug.cgi?id=704078
19777 [ported to current git master branch, amended commit message]
19778 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19780 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19782 * gst/vaapi/gstvaapidecode.c:
19783 * gst/vaapi/gstvaapipluginutil.c:
19784 * gst/vaapi/gstvaapipluginutil.h:
19785 * gst/vaapi/gstvaapipostproc.c:
19786 plugins: preserve framerate when updating src caps video format.
19787 In the current implementation, gst_video_info_set_format() would reset
19788 the whole GstVideoInfo structure first, prior to setting video format
19789 and size. So, coleteral information like framerate or pixel-aspect-
19791 Provide and use a unique gst_video_info_change_format() for overcome
19792 this issue, i.e. only have it change the format and video size, and
19793 copy over the rest of the fields.
19794 https://bugzilla.gnome.org/show_bug.cgi?id=734665
19796 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19798 * gst/vaapi/gstvaapi.c:
19799 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19800 This is for helping decodebin to autoplug the vaapidecode element.
19801 Decodebin is selecting decoder elements only based on rank and caps.
19802 Without overriding the autoplug-* signals there is no way to autoplug
19803 HW decoders inside decodebin. An easier soulution is to raise the
19804 rank of vaapidecode, so that it gets selected first.
19805 https://bugzilla.gnome.org/show_bug.cgi?id=739332
19807 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19809 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19810 * gst/vaapi/gstvaapidecode.c:
19811 vaapidecode: only expose supported profiles when needed.
19812 JPEG and VP8 codecs do not really support the concept of "profile". So,
19813 don't try to expose any set that wouldn't be supported by jpegparse, or
19814 ivfparse for instance.
19815 https://bugzilla.gnome.org/show_bug.cgi?id=739713
19816 https://bugzilla.gnome.org/show_bug.cgi?id=739714
19818 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19820 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19821 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19822 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19823 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19824 decoder: h264: add initial support for repeat-first-field (RFF) flag.
19825 Use the SEI pic_timing() message to track and propagate down the repeat
19826 first field (RFF) flag. This is only initial support as there is one
19827 other condition that could induce the RFF flag, which is not handled
19830 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19832 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19833 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19834 Fix the decoding process for picture order count type 0 when the previous
19835 picture had a memory_management_control_operation = 5. In particular, fix
19836 the actual variable type for prev_pic_structure to hold the full bits of
19837 the picture structure.
19838 In practice, this used to work though, due to the underlying type used to
19839 express a gboolean.
19841 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19843 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19844 decoder: h264: fix detection of top-field-first (TFF) flag.
19845 Use the SEI pic_timing() message to track the pic_struct variable when
19846 present, or infer it from the regular slice header flags field_pic_flag
19847 and bottom_field_flag. This fixes temporal sequence ordering when the
19848 output pictures are to be displayed.
19849 https://bugzilla.gnome.org/show_bug.cgi?id=739291
19851 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19853 * ext/codecparsers:
19854 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19855 1241840 h264: fix derivation of MaxPicNum variable
19856 3bd718e h264: fix GstH264ParserResult documentation typo
19857 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19858 b08e4be h264parse: don't unnecesarily set src_caps
19860 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19862 * gst/vaapi/gstvaapipostproc.c:
19863 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
19864 Added the same Klass specifications used in other upstream
19865 video postprocessing elements like videoconvert, videoscale,
19866 videobalance and deinterlace.
19867 An example use case is for this is to help the playsink
19868 to autoplug the hardware accelerated deinterlacer.
19870 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19872 * gst/vaapi/gstvaapipostproc.c:
19873 vaapipostproc: Tweak the output video format setting to enable the autoplugging
19874 This is a workaround until auto-plugging is fixed when
19875 format=ENCODED + memory:VASurface caps feature are provided.
19876 Use the downstream negotiated video format as the output video format
19877 if the user didn't ask for the colorspace conversion explicitly.
19878 Usecase: This will help to connect elements like videoscale, videorate etc
19880 https://bugzilla.gnome.org/show_bug.cgi?id=739443
19882 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19884 * gst/vaapi/gstvaapipostproc.c:
19885 * gst/vaapi/gstvaapipostproc.h:
19886 vaapipostproc: allow user defined scaling mode.
19887 Add new "scale-method" property to expose the scaling mode to use during
19888 video processing. Note that this is only a hint, and the actual behaviour
19889 may differ from implementation (VA driver) to implementation.
19891 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19893 * gst-libs/gst/vaapi/gstvaapifilter.c:
19894 * gst-libs/gst/vaapi/gstvaapifilter.h:
19895 * gst-libs/gst/vaapi/gstvaapiutils.c:
19896 * gst-libs/gst/vaapi/gstvaapiutils.h:
19897 filter: add initial support for high quality scaling.
19898 Add support for video scaling options in VPP pipelines. Only the
19899 DEFAULT mode is bound to exist. Others might be folded into that
19902 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19904 * gst-libs/gst/vaapi/gstvaapifilter.c:
19905 * gst-libs/gst/vaapi/gstvaapifilter.h:
19906 filter: re-indent all GstVaapiFilter related source code.
19908 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19910 * ext/codecparsers:
19911 codecparsers: update to gst-vaapi-branch commit f9d3bde.
19912 2218b02 h264parse: expose parsed profile and level to downstream
19913 3dbfab4 h264parse: return flushing if we get chained while being set to READY
19914 d40fa8b h264: fix frame packing SEI parsing
19915 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
19916 b3e022e h264: initialize some fields of pic_timing structure
19917 a70661d vc1: fix expected level in sequence-layer parsing unit test
19918 6cee88d vc1: fix level values for simple/main profile
19919 356c189 vc1: add unit test for sequence-layer parsing
19920 ab9f641 vc1: take care of endianness when parsing sequence-layer
19921 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
19923 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19925 * gst/vaapi/gstvaapidecode.c:
19926 vaapidecode: Expose the supported profiles as caps to upstream
19927 This will allows the playbin to fallback to Software Decoder
19928 if the Hardware Decoder does not support a particular profile.
19929 https://bugzilla.gnome.org/show_bug.cgi?id=730997
19931 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19933 * gst/vaapi/gstvaapiencode.c:
19934 * gst/vaapi/gstvaapiencode.h:
19935 * gst/vaapi/gstvaapiencode_h264.c:
19936 encode: Attach the codec-data to out caps only based on negotiated caps
19937 Attach the codec_data to out_caps only if downstream needed.
19938 For eg: h264 encoder doesn't need to stuff codec_data to the
19939 src caps if the negotiated caps has a stream format of byte-stream.
19940 https://bugzilla.gnome.org/show_bug.cgi?id=734902
19942 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19945 configure: echoing installation prefix path
19947 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19949 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19950 display: add support for DRM Render-Nodes.
19951 Add support for DRM Render-Nodes. This is a new feature that appeared
19952 in kernel 3.12 for experimentation purposes, but was later declared
19953 stable enough in kernel 3.15 for getting enabled by default.
19954 This allows headless usages without authentication at all, i.e. usages
19955 through plain ssh connections is possible.
19957 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19959 * gst/vaapi/gstvaapisink.c:
19960 vaapisink: clean-ups (indentation, drop unused variables).
19962 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19965 * gst/vaapi/gstvaapisink.c:
19966 vaapisink: fix GstNavigation "key-press" / "key-release" events.
19967 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
19968 to a KeySym. In particular, there is no such Window argument. Also
19969 make sure to check for, and use, the correct <X11/XKBlib.h> header
19970 where that new function is defined. Otherwise, default to the older
19971 XKeycodeToKeysym() function.
19973 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19975 * gst/vaapi/gstvaapisink.c:
19976 vaapisink: fix GstNavigation "mouse-move" event.
19977 Really use the motion event coordinates to propagate the "mouse-move"
19978 event to upper layer, instead of those from a button event. Those are
19979 technically the same though.
19981 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19983 * gst/vaapi/gstvaapisink.c:
19984 vaapisink: implement the GstNavigation interface
19985 This is useful for things like DVD menus, where key/mouse events
19986 would need to be forwarded from the upstream sink element.
19987 https://bugzilla.gnome.org/show_bug.cgi?id=711479
19989 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19991 * gst/vaapi/gstvaapipluginbase.c:
19992 vaapipostproc: fix deinterlacing from non VA memory buffers.
19993 When we copy a buffer because we're moving it into VA-API memory, we
19994 need to copy flags. Otherwise, interlaced YUV buffers from a capture
19995 source (e.g. V4L2) don't get flagged as interlaced.
19996 https://bugzilla.gnome.org/show_bug.cgi?id=726270
19997 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19998 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
19999 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20001 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20003 * gst/vaapi/gstvaapipostproc.c:
20004 vaapipostproc: add support for GLTextureUploadMeta output.
20005 This allows for vaapipostproc to be chained to the glimagesink element
20007 https://bugzilla.gnome.org/show_bug.cgi?id=735231
20009 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20011 * gst/vaapi/gstvaapipluginutil.c:
20012 * gst/vaapi/gstvaapipluginutil.h:
20013 * gst/vaapi/gstvaapipostproc.c:
20014 vaapipostproc: add support for "download" capability.
20015 Allow implicit conversions to raw video formats, while still keeping
20016 VA surfaces underneath. This allows for chaining the vaapipostproc
20017 element to a software-only element that takes care of maps/unmaps.
20019 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20021 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20023 * gst/vaapi/gstvaapipostproc.c:
20024 * gst/vaapi/gstvaapipostproc.h:
20025 vaapipostproc: use pooled vaapi video meta.
20026 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20027 video buffer allocation. Also optimize copy of additional metadata info
20028 into the resulting video buffer: only copy the video cropping info and
20029 the source surface proxy.
20030 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20031 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20032 [fixed proxy leak, fixed double free on error, optimized meta copy]
20033 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20035 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20037 * gst/vaapi/gstvaapipostproc.c:
20038 vaapipostproc: fix passthrough mode.
20039 If no explicit output surface format is supplied try to keep the one
20040 supplied through the sink pad caps. This avoids a useless copy, even
20041 if things are kept in GPU memory.
20042 This is a performance regression from git commit dfa70b9.
20044 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20046 * gst/vaapi/gstvaapipostproc.c:
20047 * gst/vaapi/gstvaapipostproc.h:
20048 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20049 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20050 [used new infrastructure through base decide_allocation() impl]
20051 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20053 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20055 * gst/vaapi/gstvaapipostproc.c:
20056 vaapipostproc: enable advanced deinterlacing with same format.
20057 If only advanced deinterlacing is requested, i.e. deinterlacing is
20058 the only active algorithm to apply with source and output surface
20059 formats being the same, then make sure to enable VPP processing.
20060 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20063 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20065 * gst/vaapi/gstvaapivideomemory.c:
20066 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20067 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20069 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20071 * gst/vaapi/gstvaapipluginbase.c:
20072 * gst/vaapi/gstvaapipluginutil.c:
20073 plugins: fix memory leaks.
20075 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20077 * gst/vaapi/gstvaapidecode.c:
20078 * gst/vaapi/gstvaapipluginbase.c:
20079 * gst/vaapi/gstvaapipluginbase.h:
20080 plugins: factor out decide_allocation() hook.
20081 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20082 feature argument can be used to force a bufferpool with a specific kind
20085 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20087 * gst/vaapi/gstvaapivideobufferpool.c:
20088 * gst/vaapi/gstvaapivideobufferpool.h:
20089 * gst/vaapi/gstvaapivideomemory.c:
20090 plugins: allow bufferpool to not allocate vaapi video meta.
20091 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20092 can be used to disable early allocations of vaapi video metas on buffers,
20093 thus delagating that to the bufferpool user.
20095 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20097 * gst/vaapi/gstvaapivideobuffer.c:
20098 * gst/vaapi/gstvaapivideobuffer.h:
20099 * gst/vaapi/gstvaapivideobufferpool.c:
20100 * gst/vaapi/gstvaapivideobufferpool.h:
20101 * gst/vaapi/gstvaapivideocontext.c:
20102 * gst/vaapi/gstvaapivideocontext.h:
20103 * gst/vaapi/gstvaapivideoconverter_glx.c:
20104 * gst/vaapi/gstvaapivideoconverter_glx.h:
20105 * gst/vaapi/gstvaapivideoconverter_x11.c:
20106 * gst/vaapi/gstvaapivideoconverter_x11.h:
20107 * gst/vaapi/gstvaapivideomemory.c:
20108 * gst/vaapi/gstvaapivideomemory.h:
20109 * gst/vaapi/gstvaapivideometa.c:
20110 * gst/vaapi/gstvaapivideometa.h:
20111 * gst/vaapi/gstvaapivideometa_texture.c:
20112 * gst/vaapi/gstvaapivideometa_texture.h:
20113 plugins: re-indent all GstVaapiVideo* related source code.
20115 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20117 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20118 surfaceproxy: fix copy to propagate view_id.
20119 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20120 fixing random frames skipped when vaapipostproc element is used in
20121 passthrough mode. In that mode, GstMemory is copied, thus including
20122 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20124 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20126 * gst/vaapi/gstvaapipostproc.c:
20127 vaapipostproc: fix detection of output surface format changes.
20128 Default to I420 format for output surfaces so that to match the usual
20129 GStreamer pipelines. Though, internally, we could still opt for NV12
20130 surface formats, i.e. default format=ENCODED is a hint for that, thus
20131 delegating the decision to the VA driver.
20133 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20135 * gst/vaapi/gstvaapipostproc.c:
20136 vaapipostproc: fix construction of allowed sink pad caps.
20137 Fix construction of the set of caps allowed on the sink pad to filter
20138 out unsupported raw video caps with GStreamer >= 1.2.
20140 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20142 * gst/vaapi/gstvaapipostproc.c:
20143 * gst/vaapi/gstvaapipostproc.h:
20144 vaapipostproc: improve heuristics for detecting native VA surfaces.
20145 Use the new gst_caps_has_vaapi_surface() helper function to detect
20146 whether the sink pad caps contain native VA surfaces, or not, i.e.
20148 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20149 explicit as we just want a way to differentiate raw video caps from
20150 VA surfaces actually.
20152 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20154 * gst/vaapi/gstvaapipostproc.c:
20155 vaapipostproc: disable discontinuity detection code.
20156 The "discontinuity" tracking code, whereby lost frames are tentatively
20157 detected, is inoperant if the sink pad buffer timestamps are not right
20159 This is a temporary workaround until the following bug is fixed:
20160 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20162 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20164 * gst/vaapi/gstvaapipostproc.c:
20165 vaapipostproc: fix heuristic for detecting discontinuity.
20166 In order to make the discontinuity detection code useful, we need to
20167 detect the lost frames in the history as early as the previous frame.
20168 This is because some VA implementations only support one reference
20169 frame for advanced deinterlacing.
20170 In practice, turn the condition for detecting new frame that is beyond
20171 the previous frame from field_duration*2 to field_duration*3, i.e.
20172 nothing received for the past frame and a half because of possible
20173 rounding errors when calculating the field-duration either in this
20174 element (vaapipostproc), or from the upstream element (parser element).
20175 This is a regression introduced with commit faefd62.
20176 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20178 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20180 * gst/vaapi/gstvaapipluginbase.c:
20181 * gst/vaapi/gstvaapipluginbase.h:
20182 plugins: fix detection of raw video caps.
20183 Use the new gst_caps_has_vaapi_surface() helper function to better
20184 detect raw video caps, and in particular those from RGB colorspace.
20185 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20187 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20189 * gst/vaapi/gstvaapipluginutil.c:
20190 * gst/vaapi/gstvaapipluginutil.h:
20191 plugins: add helper for detecting VA surfaces in caps.
20192 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20193 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20194 implies a check for memory:VASurface caps features, and format=ENCODED
20195 for earlier versions of GStreamer.
20197 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20199 * gst/vaapi/gstvaapidecode.c:
20200 vaapidecode: start the decoder task again after finishing
20201 This allows the element to accept data again after draining without
20202 a hard reset or caps change happening in between.
20203 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20205 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20207 * gst/vaapi/gstvaapidecode.c:
20208 vaapidecode: unlock condition variables before shutting down the element
20209 Otherwise threads might wait for them, causing the shutdown of the element
20210 to deadlock on the streaming thread.
20211 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20213 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20215 * gst/vaapi/gstvaapidecode.c:
20216 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20217 Otherwise the element is not usable again after draining/EOS.
20218 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20220 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20222 * gst/vaapi/gstvaapidecode.c:
20223 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20224 This otherwise results in unnecessary error messages.
20225 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20227 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20229 * gst-libs/gst/vaapi/Makefile.am:
20230 * gst/vaapi/Makefile.am:
20231 build: fix with --no-undefined linker flags.
20232 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20234 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20236 * gst/vaapi/gstvaapisink.c:
20237 * gst/vaapi/gstvaapisink.h:
20238 vaapisink: add support for GstColorBalance interface.
20239 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20240 [fixed channel names, simplified range factor, fixed memory leak]
20241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20243 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20245 * gst/vaapi/gstvaapisink.c:
20246 * gst/vaapi/gstvaapisink.h:
20247 vaapisink: add support for colorbalance adjustment.
20248 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20249 [fixed and simplified tracking of colorbalance value changes]
20250 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20252 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20254 * gst/vaapi/gstvaapisink.c:
20255 vaapisink: improve installation of properties.
20256 Simplify the creation and installation process of properties, by first
20257 accumulating them into a g_properties[] array, and next calling into
20258 g_object_class_install_properties().
20259 Also add missing docs and flags to some properties.
20261 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20263 * gst/vaapi/gstvaapisink.c:
20264 * gst/vaapi/gstvaapisink.h:
20265 vaapisink: code clean-ups.
20266 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20267 helper macro and use it wherever we know the object is a GstBaseSink or
20268 any base class. Drop explicit initializers for values that have defaults
20271 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20273 * gst/vaapi/gstvaapisink.c:
20274 * gst/vaapi/gstvaapisink.h:
20275 vaapisink: re-indent all GstVaapiSink related source code.
20277 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20279 * gst/vaapi/gstvaapisink.c:
20280 * gst/vaapi/gstvaapisink.h:
20281 vaapisink: introduce separate backends.
20282 Introduce new backends vtable so that to have clean separation between
20283 display dependent code and common base code. That's a "soft" separation,
20284 we don't really need dedicated objects.
20285 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20287 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20289 * gst/vaapi/gstvaapisink.c:
20290 * gst/vaapi/gstvaapisink.h:
20291 vaapisink: drop unused "synchronous" mode.
20292 Support for X11 "synchronous" mode was never implemented, and was only
20293 to be useful for debugging. Drop that altogether, that's not going to
20294 be useful in practice.
20295 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20297 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20299 * gst/vaapi/gstvaapisink.c:
20300 * gst/vaapi/gstvaapisink.h:
20301 vaapisink: drop unused variables.
20302 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20303 variables. They got merged into the GstVaapiPluginBase object.
20305 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20307 * gst/vaapi/gstvaapisink.c:
20308 * gst/vaapi/gstvaapisink.h:
20309 vaapisink: drop GLX rendering and fancy effects.
20310 Rendering with GLX in vaapisink is kind of useless nowadays, including
20311 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20312 deprecated in favor of EGL, or more direct buffer sharing with actual
20314 Should testing of interop with GLX be needed, one could still be using
20315 the modern cluttersink or glimagesink elements.
20316 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20318 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20320 * gst/vaapi/gstvaapisink.c:
20321 * gst/vaapi/gstvaapisink.h:
20322 vaapisink: listen to window size changes on X11.
20323 Allow dynamic changes to the window, e.g. performed by the user, and
20324 make sure to refresh its contents, while preserving aspect ratio.
20325 In practice, Expose and ConfigureNotify events are tracked in X11
20326 display mode by default. This occurs in a separte event thread, and
20327 this is similar to what xvimagesink does. Any of those events will
20328 trigger a reconfiguration of the window "soft" size, subsequently
20329 the render-rect when necessary, and finally _expose() the result.
20330 The default of handle_events=true can be changed programatically via
20331 gst_x_overlay_handle_events().
20332 Thanks to Fabrice Bellet for rebasing the patch.
20333 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20334 [dropped XInitThreads(), cleaned up the code a little]
20335 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20337 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20339 * gst/vaapi/gstvaapidecode.c:
20340 vaapidecode: decode and output all pending frames on normal EOS.
20341 The gst_vaapidecode_decode_loop() function is called within a separate
20342 task to fetch and output all frames that were decoded so far. So, if
20343 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20344 then we are bound to exist the task without submitting the pending
20346 If the downstream element error'ed out, then the gst_pad_push() would
20347 propagate up an error and so we will get it right for cutting off
20348 _finish() early in that case.
20349 This is a regression from 6003596.
20350 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20352 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20355 Bump version for development.
20357 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20362 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20367 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20369 * gst/vaapi/gstvaapidecode.c:
20370 vaapidecode: properly return from decode loop on downstream errors.
20371 Fixes a hang/race on shutdown where _decode_loop() had already completed
20372 its execution and _finish() was waiting on a GCond for decode_loop()
20373 to complete. Also fixes the possible race where _finish() is called
20374 but _decode_loop() endlessly returns before signalling completion
20375 iff the decoder instance returns GST_FLOW_OK.
20376 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20377 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20378 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20379 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20381 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20387 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20389 * gst/vaapi/gstvaapisink.c:
20390 vaapisink: fix GstVideoOverlay::expose() implementation.
20391 Now that we always track the currently active video buffer, it is
20392 not necessary to automatically increase its reference since this is
20393 implicitly performed in ::show_frame() through the get_input_buffer()
20394 helper from GstVaapiPluginBase class.
20395 This is a regression from a26df80.
20397 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20399 * gst/vaapi/gstvaapidecode.c:
20400 * gst/vaapi/gstvaapipluginutil.c:
20401 vaapidecode: simplify bufferpool configuration.
20402 Rework the logics behind the configuration of an adequate bufferpool,
20403 especially when OpenGL meta or additional capsfeatures are needed.
20404 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20405 and that is not system memory, is now selected by default.
20407 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20409 * gst/vaapi/gstvaapidecode.c:
20410 vaapidecode: fix auto-plugging of vaapisink element.
20411 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20412 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20413 core currently miss additional patches available in 1.5-git (1.6).
20414 This is a temporary workaround.
20416 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20419 configure: allow builds against GStreamer git (1.5.x).
20420 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20422 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20425 configure: fix build with GStreamer 1.4.0 release.
20427 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20430 * debian.upstream/Makefile.am:
20431 * debian.upstream/control.in:
20432 debian: fix packaging for new naming scheme.
20434 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20439 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20442 configure: mark support for GStreamer < 1.2 as deprecated.
20443 Supporting anything thing below GStreamer 1.2 is asking for trouble
20444 for keeping up with the required facilities to make efficient pipelines.
20445 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20448 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20451 configure: mark support for GStreamer 0.10 as obsolete.
20452 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20453 and may actually be removed altogether for a future release. There is
20454 no real point to maintain a build for such an ancient GStreamer version
20455 that is not even supported upstream.
20457 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20459 * gst/vaapi/gstvaapisink.c:
20460 * gst/vaapi/gstvaapisink.h:
20461 vaapisink: allow a specific view component to be displayed.
20462 If a multiview stream is decoded, multiple view components are submitted
20463 as is downstream. It is the responsibility of the sink element to display
20464 the required view components. By default, always select the frame buffer
20465 that matches the view-id of the very first frame to be displayed.
20466 However, introduce a "view-id" property to allow the selection of a
20467 specific view component of interest to display.
20469 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20471 * gst/vaapi/gstvaapisink.c:
20472 vaapisink: always keep the last displayed buffer around.
20473 Always record the VA surface that is currently being rendered, no matter
20474 the fact we are using texturedblit or overlay. That's because in some
20475 occasions, we need to refresh or resize the displayed contents based on
20476 new events. e.g. user-resized window.
20477 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20478 through the base sink "last-sample".
20480 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20482 * gst/vaapi/gstvaapipluginbase.c:
20483 * gst/vaapi/gstvaapipluginbase.h:
20484 * gst/vaapi/gstvaapipluginutil.c:
20485 * gst/vaapi/gstvaapisink.c:
20486 vaapisink: add support for "display-name" property.
20487 Add a "display-name" property to vaapisink so that the end user could
20488 select the desired output. Keep "display-name" in-line with the existing
20489 "display" (GstVaapiDisplayXXX type).
20490 So, for X11 or GLX, the "display-name" is the usual display name as we
20491 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20492 for wl_display_connect(); and for DRM, the "display-name" is actually the
20494 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20496 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20498 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20499 window: make gst_vaapi_window_reconfigure() thread-safe.
20500 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20501 thread-safe by default, so that upper layer users don't need to handle
20504 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20506 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20507 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20508 window: allow for updating size from current geometry.
20509 Add gst_vaapi_window_reconfigure() interface to force an update of
20510 the GstVaapiWindow "soft" size, based on the current geometry of the
20511 underlying native window.
20512 This can be useful for instance to synchronize the window size when
20513 the user changed it.
20514 Thanks to Fabrice Bellet for rebasing the patch.
20515 [changed interface to gst_vaapi_window_reconfigure()]
20516 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20518 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20520 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20521 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20522 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20523 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20524 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20525 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20526 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20527 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20528 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20529 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20530 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20531 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20532 window: re-indent all GstVaapiWindow related source code.
20534 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20536 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20537 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20538 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20539 display: add interface to retrieve the display name.
20540 Add gst_vaapi_display_get_display_name() helper function to determine
20541 the name associated with the underlying native display. Note that for
20542 raw DRM backends, the display name is actually the device path.
20544 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20546 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20547 display: fix comparison of X11 display names.
20548 Make sure to not only compare display host names, but also the actual
20549 display number. The screen number does not need to be checked at this
20552 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20554 * gst/vaapi/gstvaapidecode.c:
20555 * gst/vaapi/gstvaapivideobufferpool.c:
20556 vaapidecode: add support for VideoAlignment bufferpool option.
20557 Always add VideoAlignment bufferpool option if the downstream element
20558 expects its own pool to be used but does not offer it through a proper
20559 propose_allocation() implementation for instance, and that the ALLOCATION
20560 query does not expose the availability of the Video Meta API.
20561 This fixes propagation of video buffer stride information to Firefox.
20563 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20565 * gst/vaapi/gstvaapivideomemory.c:
20566 vaapivideomemory: always prefer native VA surface formats.
20567 Make sure to always prefer native internal formats for the VA surfaces
20568 that get allocated. Also disable "direct-rendering" mode in this case.
20569 This is needed so that to make sure that anything that gets out of the
20570 decoder, or anything that gets into the encoder, is in native format
20571 for the hardware, and thus the driver doesn't need to perform implicit
20572 conversions in there. Interop with SW elements is still available with
20573 fast implementations of VA imaging APIs.
20575 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20577 * gst/vaapi/gstvaapivideomemory.c:
20578 vaapivideomemory: disallow memory shares across buffers, use a copy.
20579 Forbid shares of GstMemory instances, and rather make copy of it. This
20580 effectively copies the GstMemory structure and enclosed metadata, but
20581 this does not copy the VA surface contents itself. It should though.
20582 This fixes preroll and makes sure to not download garbage for the first
20583 frame when a SW rendering sink is used.
20585 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20587 * gst/vaapi/gstvaapivideomemory.c:
20588 * gst/vaapi/gstvaapivideomemory.h:
20589 vaapivideomemory: use an image pool to cache objects.
20590 Use an image pool to hold VA images to be used for downloads/uploads
20591 of contents for the associated surface.
20592 This is an optmization for size. So, instead of creating as many VA
20593 images as there are buffers (then VA surfaces) allocated, we only
20594 maintain a minimal set of live VA images, thus preserving memory
20597 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20599 * gst/vaapi/gstvaapivideomemory.c:
20600 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20601 Disable read-write mappings if "direct-rendering" is not supported.
20602 Since the ordering of read and write operations is not specified,
20603 this would require to always download the VA surface on _map(), then
20604 commit the temporary VA image back to the VA surface on _unmap().
20605 Some SW decoding plug-in elements still use R/W mappings though.
20606 https://bugzilla.gnome.org/show_bug.cgi?id=733242
20608 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20610 * gst/vaapi/gstvaapivideomemory.c:
20611 vaapivideomemory: minor code clean-ups.
20612 Fix error messages introduced in the previous commit for the _map()
20613 imaplementation. Also use the new get_image_data() helper function
20614 to determine the base pixels data buffer from a GstVaapiImage when
20615 updating the video info structure from it.
20617 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20619 * gst/vaapi/gstvaapivideomemory.c:
20620 * gst/vaapi/gstvaapivideomemory.h:
20621 vaapivideomemory: add support for raw pixels mappings.
20622 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20623 cases where the buffer pool is allocated without VideoMeta API, thus
20624 individual planes cannot be mapped.
20625 This is initial support for Firefox >= 30.
20626 https://bugzilla.gnome.org/show_bug.cgi?id=731886
20628 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20630 * gst/vaapi/gstvaapivideomemory.c:
20631 vaapivideomemory: fix determination of the surface pool format.
20632 While creating the vaapi video allocator, make sure the associated
20633 surface pool has correct format instead of defaulting to NV12 video
20634 format even though there is no direct rendering support.
20635 https://bugzilla.gnome.org/show_bug.cgi?id=732691
20637 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20639 * gst/vaapi/gstvaapivideomemory.c:
20640 vaapivideomemory: fix association of surface to proxy.
20641 Make sure to always update the VA surface pointer whenever the proxy
20642 changes. This used to only work when the VA surface is written to, in
20643 interop with SW element ("upload" feature), and this now fixes cases
20644 when the VA surface is needed for reading, in interop with SW element
20645 ("download" feature).
20647 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20649 * gst/vaapi/gstvaapidecode.c:
20650 * gst/vaapi/gstvaapipluginutil.c:
20651 * gst/vaapi/gstvaapivideomemory.c:
20652 plugins: expose I420 format for interop with SW elements.
20653 Always expose I420 format by default when the VA surface could be
20654 mapped for interoperability with non harware accelerated elements.
20655 However, the default behaviour remains the auto-plugging of vaapi
20656 elements, down to the sink.
20657 Side effect: "direct-rendering" mode is also disabled most of the
20658 times as plain memcpy() from uncached speculative write combining
20659 memory is not going to be efficient enough.
20661 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20663 * gst/vaapi/gstvaapidecode.c:
20664 * gst/vaapi/gstvaapivideomemory.c:
20665 plugins: allow download capability to vaapidecode element.
20666 Fix support for VA surface download capability in vaapidecode element
20667 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20668 but also the libva-intel-driver while performing hardware accelerated
20669 conversions from the native VA surface format (NV12) to the desired
20670 output VA image format.
20671 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20672 https://bugzilla.gnome.org/show_bug.cgi?id=733243
20674 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
20676 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20677 decoder: mpeg4: fix picture decoder return value for skipped frames.
20678 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20679 when a frame should be skipped, so the stream processing is not stalled.
20680 https://bugzilla.gnome.org/show_bug.cgi?id=733324
20682 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
20684 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20685 decoder: mpeg2: respect any input PTS provided for a frame.
20686 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20687 frame timestamps within a GOP, even when it's been fed input PTS for
20689 That leads to incorrect output timestamps in some situations - for example
20690 live playback where input timestamps have been scaled based on arrival time
20691 from the network and don't exactly match the framerate.
20692 https://bugzilla.gnome.org/show_bug.cgi?id=732719
20694 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20696 * gst-libs/gst/vaapi/gstvaapiobject.c:
20697 GstVaapiObject: make gst_vaapi_object_new() more robust.
20698 Forbid GstVaapiObject to be created without an associated klass spec.
20699 It is mandatory that the subclass implements an adequate .finalize()
20700 hook, so it shall provide a valid GstVaapiObjectClass.
20701 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20702 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20703 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20705 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20707 * gst-libs/gst/vaapi/gstvaapiobject.c:
20708 GstVaapiObject: initialize the derived object data with init() hook.
20709 Call the subclass .init() function in gst_vaapi_object_new(), if
20710 needed. The default behaviour is to zero initialize the subclass
20711 object data, then the .init() function can be used to initialize
20712 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20713 Also fix the gst_vaapi_object_new() description, which was merely
20714 copied from GstVaapiMiniObject.
20715 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20716 [changed to always zero initialize the subclass]
20717 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20719 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
20721 * gst/vaapi/gstvaapidecode.c:
20722 vaapidecode: make decoder work with playbin
20723 When playbin/decodebin builds the pipeline, it puts decoders and sinks
20724 into different bins and forwards the queries from bins to bins. So in
20725 the initials steps the pipeline is built iteratively by playbin and
20728 [filesrc] -> [typefind]
20729 [filesrc] -> [typefind] -> [demuxer]
20730 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20731 At this point the decoder is asked for its SRC caps and it will make a
20732 choice based on what gst_pad_peer_query_caps() returns. The problem is
20733 that the caps returns at that point includes caps features like ANY,
20734 essentially because playbin can plug in additional elements like
20735 videoscale, videoconv or deinterlace.
20736 This patch adds a another call to
20737 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20738 allocation, to make sure we asks the downstream elements when the
20739 entire pipeline has been built.
20740 https://bugzilla.gnome.org/show_bug.cgi?id=731645
20742 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20744 * gst/vaapi/gstvaapipostproc.c:
20745 vaapipostproc: don't let tmp_rect go out of scope.
20746 A compiler change showed me that tmp_rect went out of scope before
20747 it was used. Move it to the beginning of the function instead.
20748 https://bugzilla.gnome.org/show_bug.cgi?id=726363
20749 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20750 [added guards for GStreamer 0.10 builds]
20751 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20753 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20758 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20762 Drop references to deprecated plugins (vaapiupload, vaapidownload),
20763 mention that support for GStreamer 0.10 is deprecated, make overview
20764 more descriptive in certain aspects.
20766 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20771 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20775 build: mention that support for GStreamer 0.10 is deprecated.
20777 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20780 * gst/vaapi/gstvaapidecode.c:
20781 build: fix for GStreamer 0.10.
20783 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20785 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20786 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20787 * patches/videoparsers/series.frag:
20788 build: fix for GStreamer 1.0.x.
20790 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20792 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20793 decoder: h264: detect incorrectly paired fields in frames.
20794 When a DPB flush is required, e.g. at a natural and of stream or issued
20795 explicitly through an IDR, try to detect any frame left in the DPB that
20796 is interlaced but does not contain two decoded fields. In that case, mark
20797 the picture as having a single field only.
20798 This avoids a hang while decoding tv_cut.mkv.
20800 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20802 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20803 decoder: h264: simplify the DPB output process.
20804 Simplify the dpb_output() function to exclusively rely on the frame store
20805 buffer to output, since this is now always provided. Besides, also fix
20806 cases where split fields would not be displayed.
20807 This is a regression from f48b1e0.
20809 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20811 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20812 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20813 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20814 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20815 * patches/videoparsers/series.frag:
20816 h264parse: drop patches merged upstream.
20817 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20818 0005-h264parse-introduce-new-state-tracking-variables.patch
20819 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20820 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20822 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20824 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20825 decoder: h264: fix memory leak in PPS.
20826 Cope with latest changes from codecparsers/h264. It is now required
20827 to explicitly clear the GstH264PPS structure as it could contain
20828 additional allocations (slice_group_ids).
20830 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20832 * ext/codecparsers:
20833 codecparsers: update to gst-vaapi-branch commit 2d53b69.
20834 c4ace00 h264parse: fix collection of access units to preserve config headers
20835 0f9f7c9 h264parse: improve conditions for skipping NAL units
20836 9ffb25c h264parse: introduce new state tracking variables
20837 64955d3 h264parse: fix and optimize NAL collection function
20838 13cd2a3 h264: clarifications and documentation fixes
20839 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20840 18f0de0 h264: fix memory leak in GstH264PPS
20841 fdcb54c h264: fix typo in GstH264VUIParams description
20842 fd4dae9 vp8: move up built-in range decoder private data
20844 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20846 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20847 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20848 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20849 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20850 decoder: propagate MVC metadata ("view-id", head of multiview set).
20851 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20852 bundle", and really expresses the first view component of a multi
20853 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20855 Likewise, new API is exposed to retrieve the associated "view-id".
20857 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20859 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20860 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20861 decoder: propagate "one-field" flags.
20862 Allow decoders to set the "one-field" attribute when the decoded frame
20863 genuinely has a single field, or if the second field was mis-decoded but
20864 we still want to display the first field.
20866 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20868 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20869 decoder: output decoded frames only once.
20870 Make sure to output the decoded picture, and push the associated
20871 GstVideoCodecFrame, only once. The frame fully represents what needs
20872 to be output, included for interlaced streams. Otherwise, the base
20873 GstVideoDecoder class would release the frame twice.
20874 Anyway, the general process is to output decoded frames only when
20875 they are complete. By complete, we mean a full frame was decoded or
20876 both fields of a frame were decoded.
20878 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20880 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20881 decoder: h264: decode current picture earlier.
20882 Slightly optimize decoding process by submitting the current VA surface
20883 for decoding earlier to the hardware, and perform the reference picture
20884 marking process and DPB update process afterwards.
20885 This is a minor optimization to let the video decode engine kick in work
20886 earlier, thus improving parallel resources utilization.
20888 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20890 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20891 decoder: h264: fix output of second field when first field is not in DPB.
20892 Fix decoding of interlaced streams where a first field (e.g. B-slice)
20893 was immediately output and the current decoded field is to be paired
20894 with that former frame, which is no longer in DPB.
20895 https://bugzilla.gnome.org/show_bug.cgi?id=701340
20897 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20899 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20900 decoder: h264: slightly optimize the process to detect new pictures.
20901 Optimize the process to detect new pictures or start of new access
20902 units by checking if the previous NAL unit was the end of a picture,
20903 or the end of the previous access unit.
20905 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20907 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20908 decoder: h264: handle access unit ("au") optimization.
20909 Optimize parsing when buffers are supplied with access unit alignment.
20910 This helps determining faster when the end of an access unit is reached.
20912 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20914 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20915 decoder: h264: fix tracking of DPB size changes.
20916 Add support for MVC streams with multiple SPS and subset SPS headers
20917 emitted regularly, e.g. at around every I-frame. Track the maximum
20918 number of views in ensure_context() and really reset the DPB size to
20919 the expected value, always. i.e. even if it decreased. dpb_reset()
20920 only cares of ensuring the DPB allocation.
20922 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20924 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20925 decoder: h264: fix the DPB compaction process.
20926 Fix the compaction process when the DPB is cleared for a specific
20927 view, i.e. fix the process of filling in the holes resulting from
20928 removing frame buffers matching the current picture.
20930 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20932 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20933 encoder: h264: generate new SPS only when codec config changed.
20934 It is not necessary to periodically send SPS or subset SPS headers.
20935 This is up to the upper layer (e.g. transport layer) to decide on
20936 if/how to periodically submit those. For now, only generate new SPS
20937 or subset SPS headers when the codec config changed.
20938 Note: the upper layer could readily determine the config headers
20939 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
20940 https://bugzilla.gnome.org/show_bug.cgi?id=732083
20941 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20943 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20945 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20946 encoder: h264: track encoder config changes.
20947 Track and report when encoder configuration changed. For now, this covers
20948 resolution, profile/level and bitrate changes.
20950 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20952 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20953 encoder: h264: add pixel-aspect-ratio to VUI parameters.
20954 Report sample aspect ratio (SAR) as present, and make it match what
20955 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
20956 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
20958 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20960 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20961 encoder: h264: fix number of anchor and non-anchor reference pictures.
20962 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
20963 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
20966 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20968 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20969 encoder: h264: fix timing_info_present_flag value in subset SPS.
20970 When the seq_parameter_set_data() syntax structure is present in a subset
20971 sequence parameter set and vui_parameters_present_flag is equal to 1, then
20972 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
20974 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20976 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20977 encoder: h264: add cpbBrNalFactor values for MVC profiles.
20979 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20981 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20982 h264parse: fix detection of access unit boundaries for MVC.
20983 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
20984 this function is used to determine access unit boundaries, i.e. that
20985 is the key function for alignment=au output format generation.
20987 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20989 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20990 * patches/videoparsers/series.frag:
20991 h264parse: fix collection of access units to preserve config headers.
20992 Always use a GstAdapter when collecting access units (alignment="au")
20993 in either byte-stream or avcC format. This is required to properly
20994 preserve config headers like SPS and PPS when invalid or broken NAL
20995 units are subsequently parsed.
20996 More precisely, this fixes scenario like:
20997 <SPS> <PPS> <invalid-NAL> <slice>
20998 where we used to reset the output frame buffer when an invalid or
20999 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21000 preventing the next slice unit to be decoded, should this also
21001 represent any valid data.
21002 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21004 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21006 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21007 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21008 * patches/videoparsers/series.frag:
21009 h264parse: improve conditions for skipping NAL units.
21010 Carefully track cases when skipping broken or invalid NAL units is
21011 necessary. In particular, always allow NAL units to be processed
21012 and let that gst_h264_parse_process_nal() function decide on whether
21013 the current NAL needs to be dropped or not.
21014 This fixes parsing of streams with SEI NAL buffering_period() message
21015 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21016 SPS NAL unit, among other cases too.
21017 Practical examples from the H.264 AVC conformance suite include
21018 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21019 when parsing in stream-format=byte-stream,alignment=au mode.
21020 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21022 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21024 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21025 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21026 * patches/videoparsers/series.frag:
21027 h264parse: introduce new state tracking variables.
21028 Improve parser state tracking by introducing new flags reflecting
21029 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21030 robustness purposes.
21031 Older have_sps and have_pps variables are kept because they have
21032 a different meaning. i.e. they are used for deciding on when to
21033 submit updated caps or not, and rather mean "have new SPS/PPS to
21036 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21038 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21039 * patches/videoparsers/series.frag:
21040 h264parse: default to byte-stream/nalu format (Annex B).
21041 Always default to stream-format=byte-stream,alignment=nalu if avcC
21042 format was not detected. This is the natural stream format specified
21043 in the standard (Annex.B): a series of NAL units prefixed with the
21045 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21047 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21049 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21050 * patches/videoparsers/series.frag:
21051 h264parse: fix and optimize NAL collection function.
21052 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21053 NAL unit. We don't want to parse the full NAL unit, but only the
21054 header bytes and possibly the first RBSP byte for identifying the
21055 first_mb_in_slice syntax element.
21056 Also fix check for failure when returning from that function. The
21057 only success condition for that is GST_H264_PARSER_OK, so use it.
21058 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21060 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21062 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21063 encoder: h264: fix NAL unit types in packed headers.
21064 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21065 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21066 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21067 is required, with an appropriate nal_unit_header_mvc_extension() in
21068 the NAL header bytes.
21069 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21071 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21073 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21074 encoder: h264: add missing field in packed Subset SPS header.
21075 Write the missing num_level_values_signalled_minus1 syntax element
21076 into the packed header for subset sequence parameter set.
21077 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21079 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21081 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21082 decoder: h264: fix marking of non-reference picture into DPB.
21083 Fix search for a picture in the DPB that has a lower POC value than
21084 the current picture. The dpb_find_lowest_poc() function will return
21085 a picture with the lowest POC in DPB and that is marked as "needed
21086 for output", but an additional check against the actual POC value
21087 of the current picture is needed.
21088 This is a regression from 1c46990.
21089 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21091 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21093 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21094 decoder: h264: fix DPB clear when no decoding actually started.
21095 Fix dpb_clear() to clear previous frame buffers only if they actually
21096 exist to begin with. If the decoder bailed out early, e.g. when it
21097 does not support a specific profile, that array of previous frames
21098 might not be allocated beforehand.
21100 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21102 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21103 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21104 * gst/vaapi/gstvaapidecode.c:
21105 decoder: h264: add support for NALU "alignment" optimization.
21106 We can avoid scanning for start codes again if the bitstream is fed
21107 in NALU chunks. Currently, we always scan for start codes, and keep
21108 track of remaining bits in a GstAdapter, even if, in practice, we
21109 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21111 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21112 [use gst_adapter_available_fast() to determine the top buffer size]
21113 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21115 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21117 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21118 decoder: h264: fix caps to report interlace-mode accordingly.
21119 The `vaapipostproc' element could never determine if the H.264 stream
21120 was interlaced, and thus always assumed it to be progressive. Fix the
21121 H.264 decoder to report interlace-mode accordingly, thus allowing the
21122 vaapipostproc element to automatically enable deinterlacing.
21124 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21126 * gst/vaapi/gstvaapipostproc.c:
21127 vaapipostproc: don't crash with dynamic framerate (0/1).
21128 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21129 way to solve this problem is to just stick field_duration to zero.
21130 However, this means that, in presence of interlaced streams, the
21131 very first field will never be displayed if precise presentation
21132 timestamps are honoured.
21133 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21135 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21137 * gst/vaapi/gstvaapipostproc.c:
21138 vaapipostproc: create filter surface pool if it does not exist yet.
21139 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21140 recreating filter_pool. Unfortunately, this also meant it didn't create
21141 it if it did not exist.
21142 Fix it to always create the buffer pool if it does not exist.
21143 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21144 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21146 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21148 * gst/vaapi/gstvaapipostproc.c:
21149 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21150 Reset deinterlacer state, i.e. past reference frames used for advanced
21151 deinterlacing, when there is some discontinuity detected in the course
21152 of processing source buffers.
21153 This fixes support for advanced deinterlacing when a seek occurred.
21154 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21155 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21156 history buffer, reduce heuristic for detecting discontinuity]
21157 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21159 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21161 * gst/vaapi/gstvaapipostproc.c:
21162 vaapipostproc: add support for crop regions in VPP mode.
21163 Apply video cropping regions stored in GstVideoCropMeta, or in older
21164 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21165 the crop meta are already propagated to the output buffers.
21166 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21168 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21170 * gst/vaapi/gstvaapipostproc.c:
21171 vaapipostproc: make deinterlace-mode behave as expected.
21172 deinterlace-mode didn't behave in the way you'd expect if you have
21173 past experience of the deinterlace element. There were two bugs:
21174 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21175 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21176 Fix these up, and add assertions and error messages to detect cases that
21178 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21179 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21180 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21182 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21184 * gst/vaapi/gstvaapidecode.c:
21185 vaapidecode: do not discard video info props when the format changed.
21186 gst_video_info_set_format() does not preserve video info properties. In
21187 order to keep important information in the caps such as interlace mode,
21188 framerate, pixel aspect ratio, ... we need to manually copy back those
21189 properties after setting the new video format.
21190 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21192 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21194 * gst/vaapi/gstvaapidecode.c:
21195 vaapidecode: plug a memory leak.
21196 It can happen that there is a pool provided that does not advertise
21197 the vappivideometa. We should unref that pool before using our own.
21198 Discovered with vaapidecode ! {glimagesink,cluttersink}
21199 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21200 [fixed compilation by adding the missing semi-colon]
21201 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21203 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21205 * gst/vaapi/gstvaapidecode.c:
21206 vaapidecode: parse source data until a frame is obtained.
21207 Parse any pending data until a complete frame is obtained. This is a
21208 memory optimization to avoid expansion of video packets stuffed into
21209 the GstAdapter, and a fix to EOS condition to detect there is actually
21210 pending data that needs to be decoded, and subsequently output.
21211 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21213 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21215 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21216 encoder: h264: fix multiple slices support in packed headers mode.
21217 Handle packedi slice headers and packed raw data on a per-slice basis,
21218 which is necessary for multi slice encoding.
21220 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21222 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21223 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21224 encoder: add infrastructure for per-slice handling of packed headers.
21225 The packed slice header and packed raw data need to be paired with
21226 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21227 on a per-slice basis insted of a per-picture basis.
21228 [removed useless initializer]
21229 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21231 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21233 * gst/vaapi/gstvaapisink.c:
21234 vaapisink: fix initialization with "drm" display type.
21235 Force early initializatin of the GstVaapiDisplay so that to make sure
21236 that the sink element display object is presented first to upstream
21237 elements, as it will be correctly featuring the requested display type
21239 Otherwise, we might end up in situations where a VA/X11 display is
21240 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21241 (as requested by the "display" property), but this would cause a failure
21242 because we cannot acquire a DRM display that was previously acquired
21243 through another backend (e.g. VA/X11).
21245 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21247 * gst/vaapi/gstvaapipluginbase.c:
21248 plugins: fix initialization with foreign context.
21249 When a new display is settled through GstElement::set_context() (>= 1.2),
21250 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21251 associated display type.
21253 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21258 * gst/vaapi/Makefile.am:
21259 * gst/vaapi/gstvaapiparse.c:
21260 * gst/vaapi/gstvaapiparse.h:
21261 * patches/Makefile.am:
21262 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21263 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21264 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21265 * patches/videoparsers/Makefile.am:
21266 * patches/videoparsers/series.frag:
21267 plugins: add built-in video parsers as "vaapiparse" element.
21268 The built-in video parsers elements are built into a single DSO named
21269 libgstvaapi_parse.so. The various video parsers could be accessed as
21271 For now, this only includes a modified version of h264parse so that to
21272 support H.264 MVC encoded streams.
21274 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21276 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21277 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21278 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21279 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21281 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21283 * ext/codecparsers:
21284 codecparsers: update to gst-vaapi-branch commit d6325ac.
21285 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21286 d2f965a h264parse: set field_pic_flag when parsing a slice header
21287 24c15b8 Import h264parse
21288 a9283e5 bytereader: Use concistant derefence method
21289 a8252c6 bytereader: Use pointer instead of index access
21290 b1bebfc Import GstBitReader and GstByteReader
21291 2f58788 h264: recognize SVC NAL units
21292 4335da5 h264: fix SPS copy code for MVC
21293 cf9b6dc h264: fix quantization matrix conversion routine names
21294 b11ce2a h264: add gst_h264_video_calculate_framerate()
21295 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21297 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21299 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21300 decoder: h264: factor out DPB pruning for MVC.
21301 Factor out the removal process of unused inter-view only reference
21302 pictures from the DPB, prior to the possible insertion of the current
21304 Ideally, the compiler could still opt for generating two loops. But
21305 at least, the code is now clearer for maintenance.
21307 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21309 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21310 decoder: h264: clean-ups.
21311 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21312 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21314 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21316 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21317 decoder: h264: improve pruning of unused MVC inter-view frames.
21318 Improve process for the removal of pictures from DPB before possible
21319 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21320 reference components. In particular, handle cases where picture to be
21321 inserted is not the last one of the access unit and if it was already
21322 output and is no longer marked as used for reference, including for
21323 decoding next view components within the same access unit.
21325 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21327 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21328 decoder: h264: improve DPB bumping process for MVC.
21329 While invoking the DPB bumping process in presence of many views,
21330 it could be necessary to output previous pictures that are ready,
21331 in a whole. i.e. emitting all view components from the very first
21332 view order index zero to the very last one in its original access
21333 unit; and not starting from the view order index of the picture
21334 that caused the DPB bumping process to be invoked.
21335 As a reminder, the maximum number of frames in DPB for MultiView
21336 High profile with more than 2 views is not necessarily a multiple
21337 of the number of views.
21338 This fixes decoding of MVCNV-4.264.
21340 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21342 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21343 decoder: h264: fix inter-view references array growth.
21344 Let the utility layer handle dynamic growth of the inter-view pictures
21345 array. By definition, setting a new size to the array will effectively
21346 grow the array, but would also fill in the newly created elements with
21347 empty entries (NULL), thus also increasing the reported length, which
21350 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21352 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21353 decoder: h264: reduce ReferenceFrames entries to the essential set.
21354 When decoding Multiview High profile streams with a large number of
21355 views, it is not possible to make the VAPictureParameterBufferH264.
21356 ReferenceFrames[] array hold the complete DPB, with all possibly
21357 active pictures to be used for inter-view prediction in the current
21359 So reduce the scope of the ReferenceFrames[] array to only include
21360 the set of reference pictures that are going to be used for decoding
21361 the current picture. Basically, this is a union of all RefPicListX[]
21362 array, for all slices constituting the decoded picture.
21364 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21366 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21367 decoder: h264: fix MVC inter-view prediction process.
21368 The inter-view reference components and inter-view only reference
21369 components that are included in the reference picture lists shall
21370 be considered as not being marked as "used for short-term reference"
21371 or "used for long-term reference". This means that reference flags
21372 should all be removed from VAPictureH264.flags.
21373 This fixes decoding of MVCNV-2.264.
21375 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21377 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21378 decoder: h264: fix detection of profile changes for MVC.
21379 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21380 be careful to detect profiles changes and not reset the underlying
21381 VA context erroneously. In MVC situations, we could indeed get a
21382 profile_idc change for every SPS that gets activated, alternatively
21383 (base-view -> non-base view -> base-view, etc.).
21384 An improved fix would be to characterize the exact profile to use
21385 once and for all when SPS NAL units are parsed. This would also
21386 allow for fallbacks to a base-view decoding only mode.
21388 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21390 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21391 encoder: h264: drop extraneous definitions.
21392 Re-use definitions from the codecparser headers instead of duplicating
21393 them here again. That covers NALU definitions and slice types.
21395 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21397 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21398 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21399 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21401 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21403 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21404 encoder: h264: don't allow CABAC with Extended profile.
21405 The H.264 specification does not support CABAC entropy coding for the
21407 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21409 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21411 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21412 encoder: h264: use packed headers mode for MVC encoding.
21413 Exclusively use VA drivers that support raw packed headers for encoding.
21414 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21415 provides for better compatibility accross the various VA drivers and HW
21416 generations since no particular API is needed beyond what readily exists.
21418 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21420 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21421 encoder: h264: add support for packed slice headers.
21422 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21424 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21426 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21427 encoder: h264: store subset sps to generate the codec-data
21428 Store the SubsetSPS nal unit which we need for MVC specific
21429 codec_data generation.
21431 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21433 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21434 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21435 Since we are encoding each view independently from each other, we
21436 need a higher number of pre-allocated surfaces to be used as the
21437 reconstructed frames. For Stereo High profile encoding, this means
21438 to effectively double the number of frames to be stored in the DPB.
21440 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21442 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21443 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21444 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21445 * gst/vaapi/gstvaapiencode_h264.c:
21446 encoder: h264: add initial support for H.264 Stereo High profile.
21447 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21448 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21449 NALs for base-view encoding.
21450 The H.264 Stereo High profile encoding mode will be turned on when the
21451 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21452 considered as Left/Right view, alternatively.
21453 Each of the two views has its own frames reordering pool and reference
21454 frames list management system. Inter-view references are not supported
21455 yet, so the views are encoded independently from each other.
21456 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21457 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21460 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21462 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21463 encoder: h264: wrap pools for refs and frames reordering.
21464 Create structures to maintain the reference frames list (RefPool) and
21465 frames reordering (ReorderPool) logic.
21466 This is a prerequisite for H.264 MVC support.
21467 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21469 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21471 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21472 encoder: h264: add provisional support for subset SPS headers.
21473 Add provisions to write subset SPS headers to the bitstream in view
21474 to supporting the H.264 MVC specification.
21475 This assumes the libva "staging" branch is in use.
21476 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21478 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21480 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21481 * gst-libs/gst/vaapi/gstvaapiutils.c:
21482 utils: add H.264 MVC profiles.
21483 Add "MultiView High" and "Stereo High" definitions.
21484 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21485 [require VA-API >= 0.35.2 for MVC profiles]
21486 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21488 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21490 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21491 * gst-libs/gst/vaapi/gstvaapiutils.c:
21492 utils: only enable VP8 profiles for newer VA-API versions.
21493 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21494 involving VP8 codec on earlier versions of the API.
21496 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21498 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21499 decoder: h264: compute view ids only once per slice.
21500 Optimize lookups of view ids / view order indices by caching the result
21501 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21502 terribly simplifies is_new_access_unit() and find_first_field() functions.
21504 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21506 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21507 decoder: h264: add support for MVC interlaced streams.
21508 Fix support for MVC Stereo High profile streams with interlaced frames.
21509 Also improve the detection logic of the first field.
21511 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21513 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21514 decoder: h264: add MVC profiles compatibility logic.
21515 Add safe fallbacks for MVC profiles:
21516 - all MultiView High profile streams with 2 views at most can be decoded
21517 with a Stereo High profile compliant decoder ;
21518 - all Stereo High profile streams with only progressive views can be
21519 decoded with a MultiView High profile compliant decoder ;
21520 - all drivers that support slice-level decoding could normally support
21521 MVC profiles when the DPB holds at most 16 frames.
21523 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21525 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21526 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21527 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21528 decoder: h264: add initial support for MVC.
21529 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21531 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21534 decoder: h264: dynamically allocate the DPB.
21535 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21536 for supporting the MVC allocation requirements.
21538 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21540 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21541 decoder: h264: fix detection of access unit boundaries.
21542 In order to have a stricter conforming implementation, we need to carefully
21543 detect access unit boundaries. Additional operations could be necessary to
21544 perform at those boundaries.
21546 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21548 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21549 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21550 Detect the first VCL NAL unit of a picture for MVC, based on the
21551 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21553 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21555 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21557 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21558 decoder: h264: properly handle Prefix NAL units.
21559 Always cache the previous NAL unit so that we could check whether
21560 there is a Prefix NAL unit immediately preceding the current slice
21561 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21562 the current NAL unit. Otherwise, some default values are inferred,
21563 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21564 [infer default values for slice if previous NAL was not a Prefix]
21565 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21567 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21569 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21570 decoder: h264: add support for MVC base views.
21571 Allow decoding for base views of MVC encoded streams. For now, just skip
21572 the slice extension and prefix NAL units, and skip non-base view frames.
21573 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21574 [fixed memory leak, improved check for MVC NAL units]
21575 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21577 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21579 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21580 decoder: h264: simplify storage of decoded picture into DPB.
21581 Factor out process by which the decoded picture with the lowest POC
21582 is found, and possibly output. Likewise, the storage and marking of
21583 a reference decoded, or non-reference decoded picture, into the DPB
21584 could also be simplified as they mostly share the same operations.
21586 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21588 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21589 decoder: h264: minor clean-ups.
21590 Make init_picture_ref_lists() more consistent with other functions
21591 related to the reference marking process by supplying the current
21592 picture as argument.
21594 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21596 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21597 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21598 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21599 display: add utility function to query VA driver name.
21600 Add gst_vaapi_display_get_vendor_string() helper function to query
21601 the underlying VA driver name. The display object owns the resulting
21602 string, so it shall not be deallocated.
21603 That function is thread-safe. It could be used for debugging purposes,
21606 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21608 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21609 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21610 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21611 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21612 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21613 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21614 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21615 display: make cache maintenance really MT-safe.
21616 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21617 environments. This makes sure the display cache is also consistent
21618 during the whole display creation process. In the former implementation,
21619 there were risks that display cache got updated in another thread.
21621 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21623 * gst-libs/gst/vaapi/gstvaapicontext.c:
21624 context: allow dynamic growth of VA surfaces pool.
21625 Add support for dynamic growth of the VA surfaces pool. For decoding,
21626 this implies the recreation of the underlying VA context, as per the
21627 requirement from VA-API. Besides, only increases are supported, not
21630 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21632 * gst-libs/gst/vaapi/gstvaapicontext.c:
21633 context: reset VA context if VA surfaces set changed.
21634 It is a requirement from VA-API specification that the VA context got
21635 from vaCreateContext(), for decoding purposes, binds the supplied set
21636 of VA surfaces. This means that if the set of VA surfaces is to be
21637 changed for the current decode session, then the VA context needs to
21638 be recreated with the new set of VA surfaces.
21640 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21642 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21643 decoder: h264: fix assignment of LongTermFrameIdx.
21644 Complement fix committed as e95a42e.
21645 The H.264 AVC standard has to say: if the field is part of a reference
21646 frame or a complementary reference field pair, and the other field of
21647 the same reference frame or complementary reference field pair is also
21648 marked as "used for long-term reference", the reference frame or
21649 complementary reference field pair is also marked as "used for long-term
21650 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21651 This fixes decoding of MR9_BT_B in strict mode.
21652 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21653 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21655 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21657 * gst-libs/gst/vaapi/gstvaapicontext.c:
21658 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21659 * gst-libs/gst/vaapi/gstvaapiutils.c:
21660 * gst-libs/gst/vaapi/gstvaapiutils.h:
21661 decoder: h264: properly support grayscale formats.
21662 Request the correct chroma format for decoding grayscale streams.
21663 i.e. make lookups of the VA chroma format more generic, thus possibly
21664 supporting more formats in the future.
21665 This means that, if a VA driver doesn't support grayscale formats,
21666 it is now going to fail. We cannot safely assume that maybe grayscale
21667 was implemented on top of some YUV 4:2:0 with the chroma components
21670 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21672 * gst-libs/gst/vaapi/gstvaapifilter.c:
21673 * gst-libs/gst/vaapi/gstvaapifilter.h:
21674 * tests/test-filter.c:
21675 build: fix source file modes.
21676 A few source files are marked executable in error - fix them
21677 https://bugzilla.gnome.org/show_bug.cgi?id=723748
21678 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21680 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21683 * gst-libs/gst/vaapi/Makefile.am:
21684 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21685 * gst/vaapi/gstvaapidecode.c:
21686 build: fix conditional compilation of VP8 decoder.
21687 https://bugzilla.gnome.org/show_bug.cgi?id=729170
21688 [added check for VASliceParameterBufferBase fields]
21689 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21691 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21693 * gst-libs/gst/codecparsers/Makefile.am:
21694 build: fix make dist for codecparsers.
21696 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21698 * ext/codecparsers:
21699 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21700 h264: fix parsing of slice groups for map type = 2
21702 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21704 * ext/codecparsers:
21705 codecparsers: update to gst-vaapi branch commit f44edfc.
21706 h264: fix derivation of default scaling lists
21708 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
21710 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21711 decoder: h264: fix long-term reference picture marking process.
21712 Fix reference picture marking process with memory_management_control_op
21713 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21714 picture, or the current picture.
21715 This fixes decoding of FRExt_MMCO4_Sony_B.
21716 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21717 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21718 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21719 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21721 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21723 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21724 decoder: h264: fix initialization of RefPicLists for multiple slices.
21725 The initialization of reference picture lists (8.2.4.2) applies to all
21726 slices. So, the RefPicList0/1 lists need to be constructed prior to
21727 each slice submission to the HW decoder.
21728 This fixes decoding of video sequences where frames are encoded with
21729 multiple slices of different types, e.g. 4 slices in this order I, P,
21730 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21731 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21733 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
21735 * ext/codecparsers:
21736 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21737 decoder: h264: skip SPS extension and auxiliary slice NALs.
21738 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21739 are present in a video, decoders shall perform the (optional) decoding
21740 process specified for these NAL units or shall ignore them (7.4.1).
21741 Implement option 2 (skip) for now, as alpha composition is not
21742 supported yet during the decoding process.
21743 This fixes decoding of the primary coded video in alphaconformanceG.
21744 https://bugzilla.gnome.org/show_bug.cgi?id=703928
21745 https://bugzilla.gnome.org/show_bug.cgi?id=728869
21746 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21747 [skip NAL units earlier, i.e. at parsing time]
21748 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21750 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21752 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21753 decoder: h264: fix slice data bit offset with MVC NAL units.
21754 When MVC slice NAL units (coded slice extension and prefix NAL) are
21755 present, the number of NAL header bytes is 3, not 1 as usual.
21756 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21757 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21759 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21761 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21762 decoder: h264: fix activation of picture and sequence parameters.
21763 At the time the first VCL NAL unit of a primary coded picture is found,
21764 and if that NAL unit was parsed to be an SPS or PPS, then the entries
21765 in the parser may have been overriden. This means that, when the picture
21766 is to be decoded, slice_hdr->pps could point to an invalid (the next)
21768 So, one way to solve this problem is to not use the parser PPS and
21769 SPS info but rather maintain our own activation chain in the decoder.
21770 https://bugzilla.gnome.org/show_bug.cgi?id=724519
21771 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21773 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21775 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21776 decoder: h264: retain SEI messages until the end of frame.
21777 Retain the SEI messages that were parsed from the access unit until we
21778 have completely decoded the current frame. This is done so that we can
21779 peek at that data whenever necessary during decoding. e.g. for exposing
21780 3D stereoscopic information at a later stage.
21782 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21784 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21785 decoder: h264: add support for grayscale encoded clips.
21786 Fix support for grayscale encoded video clips, and possibly others if
21787 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21788 the decision that a surface with the desired chroma format is not
21789 supported to the actual VA driver implementation.
21790 https://bugzilla.gnome.org/show_bug.cgi?id=728144
21792 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21794 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21795 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21796 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21797 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21798 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21799 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21800 decoder: default to YUV 4:2:0 VA surfaces.
21801 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21802 make sure all codecs use YUV 4:2:0 output format for now, by default.
21804 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21806 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21807 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21808 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21809 decoder: re-indent GstVaapiDecoder base object.
21811 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21813 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21814 encoder: derive chroma type from video format.
21815 Cope with previous VA context change to derive the correct surface chroma
21816 type from the input video format.
21818 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21820 * gst-libs/gst/vaapi/gstvaapicontext.c:
21821 * gst-libs/gst/vaapi/gstvaapicontext.h:
21822 context: add support for non-YUV 4:2:0 formats.
21823 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21824 for the upper layer to specify the desired chroma type. If the chroma
21825 type field is not set (or yields zero), then YUV 4:2:0 format is used
21828 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21830 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21831 vp8: fix per-segment deblocking filter level in relative mode.
21832 Fix possible bug when a per-segment deblocking filter level value
21833 needs to be set in non-absolute mode, i.e. when the loop filter update
21834 value is negative in delta mode.
21835 Also clamp the resulting filter level value to 0..63 range.
21837 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21839 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21840 vp8: fix check for disabling the loop filter (again).
21841 Improve condition to disable the loop filter. The previous heuristic
21842 used to check all filter levels, for all segments. It turns out that
21843 only the base filter_level value defined in the frame header needs
21845 This fixes 00-comprehensive-013.
21847 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21849 * gst-libs/gst/codecparsers/Makefile.am:
21850 * gst/vaapi/Makefile.am:
21851 build: fix make dist with certain conditionals not met.
21852 Fix generation of source tarballs when certain conditionals are not
21853 met. e.g. always include all buildable codecparsers sources in the
21854 distribution tarball, fix plug-in element sources set to include X11
21857 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21860 build: add missing files for GStreamer 0.10.
21861 Add missing GstVideoEncoder implementation files to fix build with ancient
21862 GStreamer 0.10 stack.
21863 https://bugzilla.gnome.org/show_bug.cgi?id=723964
21865 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21868 build: add missing files for VP8 bitstream parser.
21869 Fix make dist for building the VP8 bitstream parser.
21871 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21874 * ext/libvpx/Makefile.am:
21875 * gst-libs/gst/codecparsers/Makefile.am:
21876 vp8: allow compilation without the built-in libvpx.
21877 The built-in libvpx serves multiple purposes, among which the most
21878 important ones could be: track the most up-to-date, and optimized,
21879 range decoder; allow for future hybrid implementations (non-VLD);
21880 and have a completely independent range decoder implementation.
21882 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21884 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21885 vp8: propagate PTS from demux frame.
21886 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
21887 or parser would already have determined the PTS from a previous stage.
21889 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21892 * debian.upstream/libgstvaapi.install.in:
21893 * ext/libvpx/Makefile.am:
21894 * ext/libvpx/sources.frag:
21895 * gst-libs/gst/codecparsers/Makefile.am:
21896 vp8: fix compilation with built-in libvpx.
21897 Apply correct patch from fd.o #722760 to fix several issues: update the
21898 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
21901 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21907 * ext/libvpx/Makefile.am:
21908 * ext/libvpx/gstlibvpx.c:
21909 * ext/libvpx/gstlibvpx.h:
21910 * ext/libvpx/libgstcodecparsers_vpx.vers:
21911 * ext/libvpx/sources.frag:
21912 * ext/libvpx/upstream:
21913 * gst-libs/gst/codecparsers/Makefile.am:
21914 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
21915 vp8: use range decoder from libvpx.
21916 Add libvpx submodule that tracks the upstream version 1.3.0. This is
21917 needed to build a libgstcodecparsers_vpx.so library with all symbols
21918 placed into the GSTREAMER namespace.
21920 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21922 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21923 vp8: fix check for disabling the loop filter.
21925 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
21929 * gst-libs/gst/codecparsers/Makefile.am:
21930 * gst-libs/gst/vaapi/Makefile.am:
21931 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21932 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21933 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21934 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21935 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21936 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
21937 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21938 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21939 * gst/vaapi/gstvaapidecode.c:
21940 Add initial VP8 decoder.
21941 https://bugzilla.gnome.org/show_bug.cgi?id=722761
21942 [complete overhaul, fixed support for resolution changes]
21943 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21945 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21947 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21948 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
21949 The gst_h264_parse_parse_sei() function now returns an array of SEI
21950 messages, instead of a single SEI message. Reason: it is allowed to
21951 have several SEI messages packed into a single SEI NAL unit, instead
21952 of multiple NAL units.
21954 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21956 * ext/codecparsers:
21957 codecparsers: update to gst-vaapi-branch commit a454f86.
21958 b2eb5f6 vp8: rename dboolhuff symbols
21959 b74a881 vp8: add GStreamer native utilities
21960 2940ac6 add VP8 bitstream parser
21962 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21964 * ext/codecparsers:
21965 codecparsers: update to gst-vaapi-branch commit d459bc5.
21966 d459bc5 h264: set framerate even for interlaced videos
21967 c78b82c h264: add support for Recovery Point SEI message
21968 7693bac h264: add support for Frame Packing Arrangement SEI message
21969 31fafa7 h264: add support for Stereo Video Information SEI message
21970 8b113a6 h264: parse seq_parameter_set_mvc_extension()
21971 040f9b8 h264: parse MVC syntax elements
21972 cc18ef3 h264: add nal_reader_skip_long() helper
21973 7e76a48 h264: fix slice_header() parsing for MVC
21974 caf46d8 h264: add gst_h264_parse_nalu_header() helper
21975 f75074e h264: add gst_h264_parse_sps_data() helper
21976 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
21977 4e36737 h264: fix skipping of unsupported SEI messages
21978 5300766 h264: fix SEI buffering_period() parsing
21980 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21982 * ext/codecparsers:
21983 * gst-libs/gst/codecparsers/Makefile.am:
21984 codecparsers: update to gst-vaapi-branch commit 8fadf40.
21985 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
21986 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
21987 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
21988 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
21989 8ec5816 h265: Fix segfault when parsing HRD parameter
21990 5b1730f h265: Fix segfault when parsing VPS
21991 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
21992 7ba641d h265: Fix debug output
21993 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
21995 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21997 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21998 decoder: h264: fix robustness patch for bytestream format.
21999 Fix parser and decoder state to sync at the right locations. This is
22000 because we could reset the parser state, while the decoder state was
22001 not copied yet, e.g. when parsing several NAL units from multiple frames
22002 whereas the current frame was not decoded yet.
22003 This is a regression brought in by commit 6fe5496.
22005 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22008 * pkgconfig/Makefile.am:
22009 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22010 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22011 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22012 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22013 build: fix pkgconfig file names (again).
22014 It turns out it is more convenient to have only pkgconfig files named
22015 after the installed GStreamer API version (1.0) instead of using all
22016 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22017 altogether anyway, so align pkgconfig file names to that.
22019 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22021 * debian.upstream/libgstvaapi-dev.install.in:
22022 * gst-libs/gst/vaapi/Makefile.am:
22023 * pkgconfig/gstreamer-vaapi.pc.in:
22024 build: fix packaging for GStreamer 1.2.
22025 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22026 the pkgconfig version (1.0) instead of the intended API version (1.2).
22027 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22028 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22030 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22033 Bump version for development.
22035 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22037 * debian.upstream/control.in:
22038 debian: fix trailing whitespace in description.
22040 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22042 * debian.upstream/control.in:
22043 * debian.upstream/copyright:
22044 debian: fix package description.
22045 Try to improve package description for the compiled plug-in elements
22046 available in there. e.g. only display vaapidownload and vaapiupload
22047 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22048 encoding is enabled, etc.
22049 Also increase the copyright notice date.
22051 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22053 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22054 build: fix warnings on 64-bit platforms.
22056 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22058 * gst-libs/gst/vaapi/gstvaapicontext.c:
22059 * gst-libs/gst/vaapi/gstvaapiutils.c:
22060 build: fix for older versions of VA-API (< 0.34.0).
22061 Fix build with older versions of VA-API (< 0.34.0), or versions without
22062 good enough headers for encoding support for instance.
22064 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22070 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22074 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22075 support. Update copyright years, list of supported Intel HD Graphics
22078 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22083 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22085 * tests/test-filter.c:
22086 tests: test-filter: fix "deinterlace" option parse.
22087 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22088 string was provided, i.e. if it remained set to NULL.
22090 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22092 * gst-libs/gst/vaapi/Makefile.am:
22093 * gst-libs/gst/vaapi/gstvaapicontext.c:
22094 * gst-libs/gst/vaapi/gstvaapicontext.h:
22095 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22096 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22097 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22098 libs: factor out usages of vaGetConfigAttributes().
22099 Add gst_vaapi_get_config_attribute() helper function that takes a
22100 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22101 is to have thread-safe VA helpers by default.
22103 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22105 * gst-libs/gst/vaapi/gstvaapiutils.c:
22106 * gst-libs/gst/vaapi/gstvaapiutils.h:
22107 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22108 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22109 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22110 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22111 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22112 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22113 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22114 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22115 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22116 libs: re-indent all source code related to VA utilities.
22118 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22120 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22121 libs: add missing file (libgstvaapi_priv_check.h).
22123 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22125 * gst-libs/gst/vaapi/gstvaapicontext.c:
22126 * gst-libs/gst/vaapi/gstvaapicontext.h:
22127 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22128 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22129 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22130 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22131 encoder: notify the encoder of the submitted packed headers.
22132 Make sure to configure the encoder with the set of packed headers we
22133 intend to generate and submit. i.e. make selection of packed headers
22134 to submit more robust.
22136 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22138 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22139 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22140 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22141 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22142 encoder: fix and factor out check for supported rate-control modes.
22143 Cache the first compatible GstVaapiProfile found if the encoder is not
22144 configured yet. Next, factor out the code to check for the supported
22145 rate-control modes by moving out vaGetConfigAttributes() to a separate
22146 function, while also making sure that the attribute type is actually
22147 supported by the encoder.
22148 Also fix the default set of supported rate control modes to not the
22149 "none" variant. It's totally useless to expose it at this point.
22151 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22153 * gst-libs/gst/vaapi/gstvaapicontext.c:
22154 * gst-libs/gst/vaapi/gstvaapicontext.h:
22155 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22156 context: move rate-control mode to encoder specific config.
22157 Move usage-specific config out of the common GstVaapiContextInfo.
22158 Create a specialized config for encoding and move rate-control mode
22161 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22163 * gst-libs/gst/vaapi/gstvaapicontext.c:
22164 * gst-libs/gst/vaapi/gstvaapicontext.h:
22165 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22166 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22167 context: introduce concept of usage.
22168 Introduce GstVaapiContextUsage so that to explicitly determine the
22169 usage of a VA context. This is useful in view to simplifying the
22170 creation of VA context for VPP too.
22172 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22174 * gst-libs/gst/vaapi/gstvaapicontext.c:
22175 context: fix get_attribute() value result.
22176 Unknown attributes, or attributes that are not supported for the given
22177 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22178 So, return failure in this case.
22180 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22182 * gst-libs/gst/vaapi/Makefile.am:
22183 * gst-libs/gst/vaapi/gstvaapicontext.c:
22184 * gst-libs/gst/vaapi/gstvaapicontext.h:
22185 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22186 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22187 * gst-libs/gst/vaapi/gstvaapisurface.c:
22188 context: move overlay composition to separate files.
22189 Move GstVideoOverlayComposition handling to separate source files.
22190 This helps keeing GstVaapiContext core implementation to the bare
22191 minimal, i.e. simpy helpers to create a VA context and handle pool
22192 of associated VA surfaces.
22194 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22196 * gst-libs/gst/vaapi/gstvaapicontext.c:
22197 * gst-libs/gst/vaapi/gstvaapicontext.h:
22198 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22199 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22200 context: clean-ups. Strip down APIs.
22201 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22202 them down to the minimal set of interfaces. They are private, so no
22203 need expose getters for instance.
22205 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22207 * gst-libs/gst/vaapi/gstvaapicontext.c:
22208 * gst-libs/gst/vaapi/gstvaapicontext.h:
22209 context: re-indent all GstVaapiContext related source code.
22211 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22213 * gst-libs/gst/vaapi/Makefile.am:
22214 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22215 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22216 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22217 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22218 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22219 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22220 * gst-libs/gst/vaapi/gstvaapiutils.h:
22221 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22222 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22223 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22224 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22225 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22226 libs: check that private headers remain private.
22227 Make sure that libgstvaapi private headers remain internally used to
22228 build libgstvaapi libraries only. All header dependencies were reviewed
22229 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22230 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22233 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22236 Bump library major version.
22237 Bump the library major version due to API/ABI changes that occurred in
22238 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22239 expose any GstCaps but provide GArray based ones e.g. to determine the
22240 set of supported decode/encode profiles.
22242 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22244 * gst-libs/gst/vaapi/glibcompat.h:
22245 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22246 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22247 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22248 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22249 * gst-libs/gst/vaapi/gstvaapicontext.c:
22250 * gst-libs/gst/vaapi/gstvaapicontext.h:
22251 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22252 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22253 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22254 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22255 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22256 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22257 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22258 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22259 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22260 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22261 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22262 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22263 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22264 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22265 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22266 * gst-libs/gst/vaapi/gstvaapifilter.c:
22267 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22268 * gst-libs/gst/vaapi/gstvaapisurface.c:
22269 * gst-libs/gst/vaapi/gstvaapisurface.h:
22270 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22271 * gst-libs/gst/vaapi/gstvaapitypes.h:
22272 * gst-libs/gst/vaapi/gstvaapiutils.c:
22273 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22274 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22275 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22276 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22277 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22278 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22279 * gst-libs/gst/vaapi/gstvaapivalue.c:
22280 * gst-libs/gst/vaapi/gstvaapivalue.h:
22281 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22282 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22283 * gst/vaapi/gstvaapidecode.c:
22284 * gst/vaapi/gstvaapiencode.c:
22285 * gst/vaapi/gstvaapiencode.h:
22286 * gst/vaapi/gstvaapiencode_h264.c:
22287 * gst/vaapi/gstvaapiencode_h264.h:
22288 * gst/vaapi/gstvaapiencode_mpeg2.c:
22289 * gst/vaapi/gstvaapiencode_mpeg2.h:
22290 * gst/vaapi/gstvaapipluginbase.c:
22291 * gst/vaapi/gstvaapipluginutil.c:
22292 * gst/vaapi/gstvaapipluginutil.h:
22293 * gst/vaapi/gstvaapipostproc.c:
22294 * gst/vaapi/gstvaapipostproc.h:
22295 * gst/vaapi/gstvaapisink.c:
22296 * gst/vaapi/gstvaapisink.h:
22297 * gst/vaapi/gstvaapivideometa_texture.c:
22298 * tests/simple-decoder.c:
22299 legal: update copyright notice dates.
22301 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22303 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22304 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22305 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22306 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22307 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22308 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22309 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22310 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22311 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22312 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22313 * gst/vaapi/gstvaapiencode.c:
22314 * gst/vaapi/gstvaapiencode.h:
22315 * gst/vaapi/gstvaapiencode_h264.c:
22316 * gst/vaapi/gstvaapiencode_h264.h:
22317 * gst/vaapi/gstvaapiencode_mpeg2.c:
22318 * gst/vaapi/gstvaapiencode_mpeg2.h:
22319 legal: add per-file authorship information.
22321 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22323 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22324 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22325 decoder: fix video codec frame number in standalone mode.
22326 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22327 stream in standalone mode. While we are at it, improve the debugging
22328 messages to also include that frame number.
22330 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22332 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22333 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22334 decoder: fix crash on invalid pointer for GST_DEBUG().
22335 When decoding failed, or that the frame was dropped, the associated
22336 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22337 message needs to check whether the proxy is actually present or not.
22338 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22339 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22340 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22342 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22344 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22345 encoder: h264: disable NAL HRD parameters for now.
22346 Don't emit NAL HRD parameters for now in the SPS headers because the
22347 SEI buffering_period() and picture_timing() messages are not handled
22348 yet. Some additional changes are necessary to get it right.
22349 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22351 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22353 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22354 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22355 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22356 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22357 encoder: h264: fix default CPB buffer size.
22358 Fix default CPB buffer size to something more reasonable (1500 ms)
22359 and that still fits the level limits. This is a non configurable
22360 property for now. The initial CPB removal delay is also fixed to
22362 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22364 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22366 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22367 encoder: h264: fix bitrate encoding for HRD conformance.
22368 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22369 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22370 that to have less losses in precision. Likewise, don't round up because
22371 that could be a strict constraint imposed by the user.
22373 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22375 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22376 encoder: h264: fix level lookup constraints wrt. bitrate.
22377 Fix the level calculation involving bitrate limits. Since we are
22378 targetting NAL HRD conformance, the check against MaxBR from the
22379 Table A-1 limits shall involve cpbBrNalFactor depending on the
22382 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22384 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22385 encoder: h264: submit sequence parameter only once.
22386 Submit sequence parameter buffers only once, or when the bitstream
22387 was reconfigured in a way that requires such. Always submit packed
22388 sequence parameter buffers at I-frame period, if the VA driver needs
22390 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22392 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22394 * gst-libs/gst/vaapi/gstvaapicontext.c:
22395 * gst-libs/gst/vaapi/gstvaapicontext.h:
22396 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22397 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22398 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22399 encoder: h264: only submit packed headers when required.
22400 Make sure to submit the packed headers only if the underlying VA driver
22401 requires those. Currently, only handle packed sequence and picture
22403 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22405 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22407 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22408 encoder: h264: fix ip_period value in sequence parameter.
22409 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22410 between the I-frame and the next P-frame. So, this also accounts for
22411 any additional B-frame in the middle of it.
22412 This fixes rate control heuristics for certain VA drivers.
22413 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22415 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22417 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22418 encoder: h264: fix level when bitrate is automatically computed.
22419 Fix level characterisation when the bitrate is automatically computed
22420 from the active coding tools. i.e. ensure the bitrate once the profile
22421 is completely characterized but before the level calculation process.
22423 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22425 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22426 encoder: h264: clean-ups.
22427 Document and rename a few functions here and there. Drop code that
22428 caps num_bframes variable in reset_properties() since they shall
22429 have been checked beforehand, during properties initialization.
22431 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22433 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22434 encoder: h264: clean-up bitwriter related utilities.
22435 Clean-up GstBitWriter related utility functions and simplify notations.
22436 While we are at it, also make bitstream writing more robust should an
22437 overflow occur. We could later optimize for writing headers capped to
22438 their maximum possible size by using the _unchecked() helper variants.
22440 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22442 * gst-libs/gst/vaapi/Makefile.am:
22443 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22444 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22445 encoder: h264: completely remove private headers.
22446 Drop private header since it was originally used to expose internals
22447 to the plugin element. The proper interface is now the properties API,
22448 thus rendering private headers totally obsolete.
22450 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22452 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22453 encoder: h264: fix PPS header packing with profile < high.
22454 Fix PPS header packing when profile is below High since 8x8 transform
22455 mode and scaling lists are High Profile features.
22457 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22459 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22460 encoder: h264: always emit VUI parameters for framerate.
22461 Always emit VUI parameters for timing_info, which includes framerate
22464 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22466 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22467 encoder: h264: really fix frame cropping rectangle calculation.
22468 Make frame cropping rectangle calculation future proof, i.e. exactly
22469 follow the specification (7-18) to (7-21), and subsampling definitions
22471 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22472 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22474 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22476 * gst/vaapi/gstvaapisink.c:
22477 * gst/vaapi/gstvaapisink.h:
22478 vaapisink: set csc render flags from sinkpad caps.
22479 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22480 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22482 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22483 [factored out code, added SMPTE240M, handle per-buffer flags]
22484 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22486 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22488 * gst-libs/gst/vaapi/gstvaapisurface.h:
22489 * gst-libs/gst/vaapi/gstvaapiutils.c:
22490 * gst/vaapi/gstvaapipostproc.c:
22491 surface: rework render flags.
22492 Pack render flags per category and provide more flags into the color
22493 standard category. In particular, cover for SMPTE-240M.
22495 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22497 * gst-libs/gst/vaapi/gstvaapifilter.c:
22498 * gst/vaapi/gstvaapipostproc.c:
22499 * gst/vaapi/gstvaapipostproc.h:
22500 vaapipostproc: add support for colorbalance filters.
22501 Add support for hue, saturation, brightness and constrat adjustments.
22502 Also fix cap info local copy to match the really expected cap subtype
22504 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22505 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22507 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22509 * gst/vaapi/gstvaapipostproc.c:
22510 vaapipostproc: fix support for "sharpen" filter.
22511 Fix copy/paste error when submitting the "sharpen" value to the
22512 GstVaapiFilter instance.
22513 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22514 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22516 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22519 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22520 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22521 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22522 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22523 * pkgconfig/gstreamer-vaapi.pc.in:
22524 pkgconfig: plugin dir should use PKG version not API version.
22525 Fix the pluginsdir and includedir variables in the generated pkgconfig
22526 (.pc) files. The location needs to be built with the PKG version in
22527 mind instead of the API version.
22528 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22529 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22530 [additional fixes for includedir and pkg requirements]
22531 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22533 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22535 * gst/vaapi/gstvaapisink.c:
22536 vaapisink: fix display initialization in GstVideoOverlay implementation.
22537 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22538 before the pipeline has been set to PLAYING, the display has not yet
22539 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22540 up-to-date. For this reason the foreign XID is not attached.
22541 Now _ensure_display() is called earlier.
22542 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22543 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22545 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22547 * gst/vaapi/gstvaapisink.c:
22548 vaapisink: expose the raw video formats in static caps template.
22549 Expose all raw video formats in the static caps template since the
22550 vaapisink is supporting raw data. We will get the exact set of formats
22551 supported by the driver dynamically through the _get_caps() routine.
22552 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22553 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22554 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22556 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22558 * gst/vaapi/gstvaapidecode.c:
22559 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22560 Fix vaapidecode to correctly report caps features downstream, when
22561 a custom pipeline is built manually.
22562 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22563 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22565 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22567 * gst/vaapi/gstvaapidecode.c:
22568 vaapidecode: add system memory caps to template caps.
22569 Since vaapidecode provides buffer that can be mapped as regular memory,
22570 those caps should be added to the template caps. That only applies to
22572 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22573 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22575 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22577 * gst/vaapi/gstvaapidecode.c:
22578 vaapidecode: fix hang on SIGINT.
22579 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22580 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22581 locked. This fixes a deadlock on state change from PAUSED to READY.
22582 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22583 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22585 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
22587 * gst/vaapi/gstvaapiencode.c:
22588 vaapiencode: fix possible hang on SIGINT.
22589 vaapiencode might hang when the pipeline is stopped without any EOS,
22590 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22591 running and locked. This fixes a possible deadlock on state change
22592 from PAUSED to READY.
22593 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22594 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22596 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22598 * gst/vaapi/gstvaapiencode.c:
22599 vaapiencode: fix typo in error message.
22600 Fix incomplete error message in gst_vaapiencode_push_frame().
22602 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22604 * gst/vaapi/gstvaapipluginutil.c:
22605 * gst/vaapi/gstvaapipluginutil.h:
22606 plugins: add helpers to create video caps with features.
22607 Add gst_vaapi_video_format_new_template_caps_with_features() helper
22608 function to add the supplied caps feature string on GStreamer >= 1.2.
22609 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22610 the "best" caps feature to use for the supplied pad. In practice, we
22611 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22612 and finally the system memory caps.
22613 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22615 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22617 * gst/vaapi/gstvaapivideometa_texture.c:
22618 plugins: don't apply overlay composition in GLTextureUpload function.
22619 The GLTextureUpload function is not in charge of doing the overlay
22620 composition if any.
22621 https://bugzilla.gnome.org/show_bug.cgi?id=721859
22622 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22624 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22626 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22627 encoder: re-order submission of VA objects.
22628 Change the submission order of VA objects so that to make that process
22629 more logical. i.e. submit sequence parameter first, if any; next the
22630 packed headers associated to sequece, picture or slices; and finally
22631 the actual picture and associated slices.
22633 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22635 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22636 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22637 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22638 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22639 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22640 encoder: clean-up objects.
22641 Various clean-ups to improve consistency and readability: rename some
22642 variables, drop unused macro definitions, drop initialization of vars
22643 that are zero-initialized from the base class, drop un-necessary casts,
22644 allocate GPtrArrays with a destroy function.
22646 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22648 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22649 encoder: h264: fix frame cropping rectangle calculation.
22650 Fix frame cropping rectangle calculation to handle horizontal resolutions
22651 that don't match a multiple of 16 pixels, but also the vertical resolution
22652 that was incorrectly computed for progressive sequences too.
22653 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22655 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22657 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22658 encoder: h264: improve automatic bitrate calculation.
22659 For non "Constant-QP" modes, we could provide more reasonable heuristics
22660 for the target bitrate. In general, 48 bits per macroblock with all the
22661 useful coding tools enable looks safe enough. Then, this rate is raised
22662 by +10% to +15% for each coding tool that is disabled.
22663 https://bugzilla.gnome.org/show_bug.cgi?id=719699
22665 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22667 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22668 encoder: h264: support "high-compression" tuning option.
22669 Add support for "high-compression" tuning option. First, determine the
22670 largest supported profile by the hardware. Next, check any target limit
22671 set by the user. Then, enable each individual coding tool based on the
22672 resulting profile_idc value to use.
22673 https://bugzilla.gnome.org/show_bug.cgi?id=719696
22675 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22677 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22678 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22679 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22680 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22681 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22682 * gst/vaapi/gstvaapiencode_h264.c:
22683 encoder: h264: allow target decoder constraints.
22684 Allow user to precise the largest profile to use for encoding due
22685 to target decoder constraints. For instance, if CABAC entropy coding
22686 mode is requested by "constrained-baseline" profile only is desired,
22687 then an error is returned during codec configuration.
22688 Also make sure that the suitable profile we derived actually matches
22689 what the HW can cope with.
22690 https://bugzilla.gnome.org/show_bug.cgi?id=719694
22692 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22694 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22695 encoder: h264: refine size of coded buffer.
22696 Refine the heuristic to determine the maximum size of a coded buffer
22697 to account for the exact number of slices. set_context_info() is the
22698 last step during codec reconfiguration, no additional change is done
22699 afterwards, so re-using the num_slices field here is fine.
22700 https://bugzilla.gnome.org/show_bug.cgi?id=719953
22702 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
22704 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22705 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22706 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22707 encoder: h264: expose more coding tools.
22708 Add new H.264 coding tools to improve compression:
22709 - "cabac": enable CABAC entropy coding (default: FALSE);
22710 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22711 https://bugzilla.gnome.org/show_bug.cgi?id=719693
22712 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22714 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22716 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22717 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22718 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22719 encoder: h264: derive profile and level from active coding tools.
22720 Automatically derive the minimum profile and level to be used for
22721 encoding, based on the activated coding tools. The encoder will
22722 be trying to generate a bitstream that has the best chances to be
22723 decoded on most platforms by default.
22724 Also change the default profile to "constrained-baseline" so that
22725 to ensure maximum compatibility when the stream is decoded.
22726 https://bugzilla.gnome.org/show_bug.cgi?id=719691
22728 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22730 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22731 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22732 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22733 encoder: h264: fix hardware profile lookup.
22734 Fix lookup for a suitable HW profile, as to be used by the underlying
22735 hardware, based on heuristics that lead to characterize the SW profile,
22736 i.e. the one used by the SW level encoding logic.
22737 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22738 as they should respectively match the baseline and main profile.
22739 https://bugzilla.gnome.org/show_bug.cgi?id=719827
22741 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22743 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22744 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22745 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22746 encoder: h264: support only the byte-stream format.
22747 The libgstvaapi core encoders are meant to support raw bitstreams only.
22748 Henceforth, we are always producing a stream in "byte-stream" format.
22749 However, the "codec-data" buffer which holds SPS and PPS headers is
22750 always available. The "lengthSizeMinusOne" field is always set to 3
22751 so that in-place "byte-stream" format to "avc" format conversion could
22754 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22756 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22757 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22758 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22759 * gst/vaapi/gstvaapiencode_h264.c:
22760 encoder: h264: clean-ups.
22761 Various clean-ups to improve consistency and readability: rename some
22762 variables, drop unused macro definitions, drop initialization of vars
22763 that are zero-initialized from the base class, drop un-necessary casts.
22765 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22767 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22768 encoder: mpeg2: fix hardware profile lookup.
22769 Fix lookup for a suitable HW profile, as to be used by the underlying
22770 hardware, based on heuristics that lead to characterize the SW profile,
22771 i.e. the one used by the SW level encoding logic.
22773 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22775 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22776 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22777 encoder: mpeg2: derive profile and level from active coding tools.
22778 Automatically derive the minimum profile and level to be used for
22779 encoding, based on the activated coding tools. Improve lookup for
22780 the best suitable level with the new MPEG-2 helper functions.
22781 Also change the default profile to "simple" so that to ensure maximum
22782 compatibility when the stream is decoded.
22783 https://bugzilla.gnome.org/show_bug.cgi?id=719703
22785 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22787 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22788 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22789 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22790 encoder: mpeg2: clean-ups.
22791 Various clean-ups to improve consistency and readability: drop unused
22792 macro definitions, drop initialization of vars that are zero-initialized
22793 from the base class, drop un-necessary casts.
22795 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22797 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22798 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22799 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22800 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22801 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22802 encoder: add tuning options API.
22803 Add encoder "tune" option to override the default behaviour that is to
22804 favor maximum decoder compatibility at the expense of lower compression
22806 Expected tuning options to be developed are:
22807 - "high-compression": improve compression, target best-in-class decoders;
22808 - "low-latency": tune for low-latency decoding;
22809 - "low-power": tune for encoding in low power / resources conditions.
22811 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22813 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22814 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22815 encoder: fix bitrate units to match kbps.
22816 Bitrate is expressed in kilobits per second (kbps). So, this exactly
22817 means in multiple of 1000 bits, not 1024 bits.
22818 https://bugzilla.gnome.org/show_bug.cgi?id=722086
22820 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22822 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22823 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22824 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22825 encoder: clean-ups.
22826 Drop obsolete and unused macros. Add a few doc comments. Slightly
22827 improve indentation of a few leftovers.
22829 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22831 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22832 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22833 * gst-libs/gst/vaapi/gstvaapivalue.c:
22834 * gst-libs/gst/vaapi/gstvaapivalue.h:
22835 encoder: filter out the supported set of rate-control properties.
22836 Only expose the exact static set of supported rate-control properties
22837 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22838 only support CQP rate control, then only add it the the exposed enum
22840 Add helper macros and functions to build a GType for an enum subset.
22842 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22844 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22845 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22846 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22847 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22848 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22849 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22850 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22851 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22852 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22853 encoder: add keyframe period API.
22854 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22855 user control the maximum distance between two keyframes. This new
22856 property can only be set prior to gst_vaapi_encoder_set_codec_state().
22857 A value of zero for "keyframe-period" gets it re-evaluated to the
22858 actual framerate during encoder reconfiguration.
22860 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22862 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22863 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22864 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22865 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22866 encoder: improve codec reconfiguration.
22867 Improve codec reconfiguration to be performed only through a single
22868 function. That is, remove the _set_context_info() hook as subclass
22869 should not alter the parent GstVaapiContextInfo itself. Besides, the
22870 VA context is constructed only at the final stages of reconfigure().
22872 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22874 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22875 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22876 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22877 encoder: fix possible memory leak of coded buffer pools.
22878 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
22879 buffer pool only if the coded buffer size actually changed.
22881 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22883 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22884 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22885 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22886 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22887 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22888 * gst/vaapi/gstvaapiencode.c:
22889 * gst/vaapi/gstvaapiencode.h:
22890 encoder: add video codec-state API.
22891 Add interface to communicate the encoder resolution and related info
22892 like framerate, interlaced vs. progressive, etc. This new interface
22893 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
22894 but rather use GstVideoCodecState.
22895 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
22896 point for codec config. This means that the encoder is reconfigured
22897 there to match the latest properties.
22899 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22901 * gst/vaapi/gstvaapiencode.c:
22902 vaapiencode: don't crash on NULL encoder on _finish().
22903 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
22904 if it was not created in the first place. Return "not-negotiated" error
22905 since this means we did not even reach GstVideoEncoder::set_format(),
22906 where the encoder could have been created.
22907 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
22908 and that we failed to negotiate either pad.
22909 https://bugzilla.gnome.org/show_bug.cgi?id=719704
22911 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22913 * gst/vaapi/gstvaapiencode.c:
22914 * gst/vaapi/gstvaapiencode.h:
22915 * gst/vaapi/gstvaapiencode_h264.c:
22916 vaapiencode: use more GstVaapiPluginBase facilities.
22917 Avoid duplication of pad references or query functions since they are
22918 provided through the GstVaapiPluginBase object.
22920 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22922 * gst/vaapi/gstvaapiencode.c:
22923 * gst/vaapi/gstvaapiencode.h:
22924 * gst/vaapi/gstvaapiencode_h264.c:
22925 * gst/vaapi/gstvaapiencode_h264.h:
22926 * gst/vaapi/gstvaapiencode_mpeg2.c:
22927 vaapiencode: fix negotiation process of output caps.
22928 The specified caps in gst_video_encoder_set_output_state() function
22929 arguments should not contain any resolution, pixel-aspect-ratio,
22930 framerate, codec-data et al. Those rather should be set through the
22931 returned GstVideoCodecState. This means that output caps creation
22932 could be delayed until before gst_video_encoder_finish_frame() is
22934 This greatly simplifies the GstVideoEncoder::set_format() callback
22937 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22939 * gst/vaapi/gstvaapiencode.c:
22940 vaapiencode: make GstVaapiEncode an abstract type.
22941 Make base GstVaapiEncode class an abstract type so that we cannot
22942 create an instance from it without going through any of the codec
22943 specific derived class.
22945 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22947 * gst/vaapi/gstvaapiencode.c:
22948 * gst/vaapi/gstvaapiencode.h:
22949 * gst/vaapi/gstvaapiencode_h264.c:
22950 * gst/vaapi/gstvaapiencode_mpeg2.c:
22951 vaapiencode: rename a few member functions.
22952 Rename a few member functions to make them more consistent:
22953 - alloc_encoder(): now reduced to allocate the encoder object only;
22954 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
22956 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22958 * gst/vaapi/gstvaapiencode.c:
22959 * gst/vaapi/gstvaapiencode.h:
22960 * gst/vaapi/gstvaapiencode_h264.c:
22961 * gst/vaapi/gstvaapiencode_h264.h:
22962 * gst/vaapi/gstvaapiencode_mpeg2.c:
22963 vaapiencode: update for new properties API.
22964 Update MPEG-2 and H.264 encode elements to cope with the new core
22965 libgstvaapi properties API. i.e. all configurable properties are now
22966 directly handled at the GstVaapiEncoder level.
22967 Besides, this also makes sure to not use or modify the GstVaapiEncoder
22968 private definitions directly. Private data need to remain private.
22969 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22971 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22973 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22974 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22975 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22976 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22977 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22978 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22979 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22980 encoder: add properties API.
22981 Add interface to communicate configurable properties to the encoder.
22982 This covers both the common ones (rate-control, bitrate), and the
22983 codec specific properties.
22984 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22986 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22988 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22989 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22990 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22991 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22992 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22993 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22994 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22995 * gst/vaapi/gstvaapiencode.c:
22996 * gst/vaapi/gstvaapiencode_h264.c:
22997 * gst/vaapi/gstvaapiencode_mpeg2.c:
22998 encoder: add bitrate API.
22999 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23000 the bitrate for encoding. Currently, changing this parameter is only
23001 valid before the first frame is encoded. Should the value be modified
23002 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23004 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23006 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23008 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23009 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23010 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23011 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23012 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23013 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23014 * gst-libs/gst/vaapi/gstvaapitypes.h:
23015 * gst/vaapi/gstvaapiencode.c:
23016 * gst/vaapi/gstvaapiencode.h:
23017 * gst/vaapi/gstvaapiencode_h264.c:
23018 * gst/vaapi/gstvaapiencode_mpeg2.c:
23019 encoder: add rate control API.
23020 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23021 rate control mode for encoding. Changing the rate control mode is
23022 only valid prior to encoding the very first frame. Afterwards, an
23023 error ("operation-failed") is issued.
23024 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23026 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23028 * gst/vaapi/gstvaapiencode.c:
23029 * gst/vaapi/gstvaapiencode_h264.c:
23030 * gst/vaapi/gstvaapiencode_mpeg2.c:
23031 vaapiencode: fix indentation.
23033 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23035 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23036 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23037 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23038 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23039 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23040 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23041 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23042 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23043 * gst/vaapi/gstvaapiencode.h:
23044 encoder: fix indentation.
23046 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23048 * gst-libs/gst/vaapi/Makefile.am:
23049 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23050 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23051 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23052 utils: add new MPEG-2 helper functions.
23053 Add various helper functions to convert profile, level, chroma formats
23054 from gstreamer-vaapi world and the MPEG-2 specification world.
23056 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23058 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23059 utils: h264: don't use fatal asserts.
23060 Replace g_assert() with a g_debug() so that to not make the program
23061 abort when an unsupported value is supplied.
23063 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23065 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23066 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23067 utils: h264: add helpers for profile and level string mappings.
23068 Add profile and level helper functions to convert to/from strings.
23070 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23072 * gst-libs/gst/vaapi/Makefile.am:
23073 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23074 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23075 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23076 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23077 utils: h264: expose levels in public header.
23078 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23079 H.264 levels in there. The additional helper functions are meant
23080 to be private for now.
23082 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23084 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23085 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23086 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23087 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23088 codec: add helper macros to maintain object refcount.
23089 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23090 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23092 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23094 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23095 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23096 codec: re-indent decoder objects.
23098 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23100 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23101 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23102 codec: re-indent base codec objects.
23104 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23106 * gst/vaapi/gstvaapipluginbase.c:
23107 plugins: do not free debug category in finalize method.
23108 Fixes a crash when multiple vaapidecode elements are finalized since
23109 the debug category is created once in the class init method.
23110 This is a regression from git commit 7e58d60.
23111 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23112 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23114 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23116 * gst-libs/gst/vaapi/glibcompat.h:
23117 * tests/simple-decoder.c:
23118 tests: simple-decoder: don't use deprecated g_thread_create().
23119 Use g_thread_try_new() instead of the deprecated g_thread_create()
23120 function. Provide compatibility glue for any GLib version < 2.31.2.
23122 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23124 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23125 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23126 * gst-libs/gst/vaapi/gstvaapisurface.c:
23127 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23128 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23129 * gst/vaapi/gstvaapiencode.c:
23130 Fix printf()-like formats.
23131 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23132 make size_t arguments use the %zu format specifier accordingly; force
23133 XID formats to be a 32-bit unsigned integer; and fix the format used
23134 for gst_vaapi_create_surface_with_format() error cases since we have
23135 been using strings nowadays.
23137 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23139 * gst-libs/gst/vaapi/video-format.c:
23140 * gst-libs/gst/vaapi/video-format.h:
23141 utils: format: drop unused helper functions.
23142 The following helper functions are no longer used, thus are removed:
23143 - gst_vaapi_video_format_from_structure()
23144 - gst_vaapi_video_format_from_caps()
23145 - gst_vaapi_video_format_to_caps()
23147 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23149 * gst-libs/gst/vaapi/video-format.c:
23150 * gst-libs/gst/vaapi/video-format.h:
23151 utils: re-indent GstVideoFormat related helpers.
23153 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23155 * gst/vaapi/gstvaapidownload.c:
23156 download: use GstVideoInfo facilities to build output caps.
23157 Use standard GstVideoInfo related functions to build the output caps,
23158 thus directly preserving additional fields as needed, instead of
23159 manually copying them over through gst_vaapi_append_surface_caps().
23160 Also ensure that the input caps are fixated first.
23162 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23164 * gst/vaapi/gstvaapidownload.c:
23165 * gst/vaapi/gstvaapipluginutil.c:
23166 * gst/vaapi/gstvaapipluginutil.h:
23167 * gst/vaapi/gstvaapiuploader.c:
23168 plugins: factor out construction of template caps.
23169 Add new helper functions to build video template caps.
23170 - gst_vaapi_video_format_new_template_caps():
23171 create GstCaps with size, frame rate and PAR to full range
23172 - gst_vaapi_video_format_new_template_caps_from_list():
23173 try to create a "simplified" list from the supplied formats
23175 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23177 * gst/vaapi/gstvaapipluginutil.c:
23178 * gst/vaapi/gstvaapipluginutil.h:
23179 * gst/vaapi/gstvaapipostproc.c:
23180 plugins: factor out construction of GValue from GstVideoFormat.
23181 Add new helper functions to build GValues from GstVideoFormat:
23182 - gst_vaapi_value_set_format():
23183 build a GValue from the supplied video format
23184 - gst_vaapi_value_set_format_list():
23185 build a GValue list from the supplied array of video formats
23187 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23189 * gst/vaapi/gstvaapipluginutil.c:
23190 * gst/vaapi/gstvaapipluginutil.h:
23191 * gst/vaapi/gstvaapivideocontext.c:
23192 * gst/vaapi/gstvaapivideocontext.h:
23193 plugins: re-indent common and video context creation utils.
23195 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23197 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23198 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23199 * gst/vaapi/gstvaapidecode.c:
23200 * tests/test-display.c:
23201 display: don't use GstCaps for decode or encode profiles list.
23202 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23203 more convenient APIs that return an array of GstVaapiProfile instead
23204 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23206 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23208 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23209 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23210 * gst/vaapi/gstvaapidownload.c:
23211 * gst/vaapi/gstvaapiuploader.c:
23212 * tests/test-display.c:
23213 display: don't use GstCaps for image or subpicture formats list.
23214 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23215 returned GstCaps, with more convenient APIs that return an array of
23216 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23218 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23220 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23221 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23222 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23223 display: allocate queried resources on-demand.
23224 Allocate the set of decoders or encoders on-demand, when they are
23225 queried. Likewise for VA display attributes, image and subpicture
23228 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23230 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23231 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23232 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23233 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23234 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23235 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23236 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23237 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23238 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23239 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23240 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23241 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23242 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23243 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23244 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23245 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23246 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23247 display: re-indent all GstVaapiDisplay related source code.
23249 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23251 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23252 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23253 utils: add helper functions to get codec or profile name.
23255 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23257 * gst/vaapi/gstvaapipostproc.c:
23258 * gst/vaapi/gstvaapipostproc.h:
23259 * gst/vaapi/gstvaapiuploader.c:
23260 plugins: fix permissions for certain files.
23261 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23264 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23266 * gst/vaapi/gstvaapivideometa_texture.c:
23267 plugins: implement GLTextureUploadMeta user data copy.
23268 Makes the copies of a buffer reference their own GLTextureUploadMeta
23269 user data and prevent the original buffer accessing already freed
23270 memory if its copies has been released and freed.
23271 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23272 [Propagate the original meta texture to the copy too]
23273 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23275 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23277 * gst/vaapi/gstvaapiencode.c:
23278 * gst/vaapi/gstvaapiencode.h:
23279 * gst/vaapi/gstvaapipluginbase.c:
23280 * gst/vaapi/gstvaapipluginbase.h:
23281 * gst/vaapi/gstvaapipostproc.c:
23282 * gst/vaapi/gstvaapipostproc.h:
23283 * gst/vaapi/gstvaapisink.c:
23284 * gst/vaapi/gstvaapisink.h:
23285 plugins: factor out support for raw YUV buffers on sink pads.
23286 Factor out propose_allocation() hooks, creation of video buffer pool
23287 for the sink pad, conversion from raw YUV buffers to VA surface backed
23288 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23289 with the new GstVaapiPluginBase abilities.
23291 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23293 * gst-libs/gst/vaapi/gstcompat.h:
23294 * gst/vaapi/gstvaapidecode.c:
23295 * gst/vaapi/gstvaapidecode.h:
23296 * gst/vaapi/gstvaapidownload.c:
23297 * gst/vaapi/gstvaapipluginbase.c:
23298 * gst/vaapi/gstvaapipluginbase.h:
23299 * gst/vaapi/gstvaapipostproc.c:
23300 * gst/vaapi/gstvaapipostproc.h:
23301 * gst/vaapi/gstvaapisink.c:
23302 * gst/vaapi/gstvaapiupload.c:
23303 plugins: factor out pad caps.
23305 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23307 * gst/vaapi/gstvaapidecode.c:
23308 * gst/vaapi/gstvaapidownload.c:
23309 * gst/vaapi/gstvaapiencode.c:
23310 * gst/vaapi/gstvaapipluginbase.c:
23311 * gst/vaapi/gstvaapipostproc.c:
23312 * gst/vaapi/gstvaapisink.c:
23313 * gst/vaapi/gstvaapiupload.c:
23314 plugins: factor out video context sharing code.
23316 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23318 * gst/vaapi/gstvaapidecode.c:
23319 * gst/vaapi/gstvaapidownload.c:
23320 * gst/vaapi/gstvaapiencode.c:
23321 * gst/vaapi/gstvaapipluginbase.c:
23322 * gst/vaapi/gstvaapipluginbase.h:
23323 * gst/vaapi/gstvaapipostproc.c:
23324 * gst/vaapi/gstvaapisink.c:
23325 * gst/vaapi/gstvaapiupload.c:
23326 plugins: factor out GstImplementsInterface.
23328 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23330 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23331 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23332 * gst/vaapi/gstvaapipluginbase.c:
23333 * gst/vaapi/gstvaapipluginutil.c:
23334 plugins: check type of display obtained from neighbours.
23335 Fix display creation code to check that any display obtained from a
23336 neighbour actually has the type we expect. Note: if display type is
23337 set to "any", we can then accept any VA display type.
23339 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23341 * gst/vaapi/gstvaapidecode.c:
23342 * gst/vaapi/gstvaapidownload.c:
23343 * gst/vaapi/gstvaapiencode.c:
23344 * gst/vaapi/gstvaapipluginbase.c:
23345 * gst/vaapi/gstvaapipluginbase.h:
23346 * gst/vaapi/gstvaapipluginutil.c:
23347 * gst/vaapi/gstvaapipluginutil.h:
23348 * gst/vaapi/gstvaapipostproc.c:
23349 * gst/vaapi/gstvaapisink.c:
23350 * gst/vaapi/gstvaapisink.h:
23351 * gst/vaapi/gstvaapiupload.c:
23352 plugins: factor out display creation process.
23353 Move common VA display creation code to GstVaapiPluginBase, with the
23354 default display type remaining "any". Also add a "display-changed"
23355 hook so that subclasses could perform additional tasks when/if the
23356 VA display changed, due to a new display type request for instance.
23357 All plug-ins are updated to cope with the new internal APIs.
23359 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23361 * gst/vaapi/Makefile.am:
23362 * gst/vaapi/gstvaapidecode.c:
23363 * gst/vaapi/gstvaapidecode.h:
23364 * gst/vaapi/gstvaapidownload.c:
23365 * gst/vaapi/gstvaapidownload.h:
23366 * gst/vaapi/gstvaapiencode.c:
23367 * gst/vaapi/gstvaapiencode.h:
23368 * gst/vaapi/gstvaapipluginbase.c:
23369 * gst/vaapi/gstvaapipluginbase.h:
23370 * gst/vaapi/gstvaapipostproc.c:
23371 * gst/vaapi/gstvaapipostproc.h:
23372 * gst/vaapi/gstvaapisink.c:
23373 * gst/vaapi/gstvaapisink.h:
23374 * gst/vaapi/gstvaapiupload.c:
23375 * gst/vaapi/gstvaapiupload.h:
23376 plugins: add new base object, store display in there.
23377 Introduce a new GstVaapiPluginBase object that will contain all common
23378 data structures and perform all common tasks. First step is to have a
23379 single place to hold VA displays.
23380 While we are at it, also make sure to store and subsequently release
23381 the appropriate debug category for the subclasses.
23383 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23385 * gst-libs/gst/vaapi/gstvaapiobject.h:
23386 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23387 * gst/vaapi/gstvaapivideometa_texture.c:
23388 * gst/vaapi/gstvaapivideometa_texture.h:
23389 plugins: fix GLTextureUploadMeta to work with different texture ids.
23390 The GLTextureUploadMeta implementation assumed that for each upload()
23391 sequence, the supplied texture id is always the same as the one that
23392 was previously cached into the underlying GstVaapiTexture. Cope with
23393 any texture id change the expense to recreate the underlying VA/GLX
23395 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23397 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23399 * gst/vaapi/gstvaapidecode.c:
23400 * gst/vaapi/gstvaapivideobufferpool.c:
23401 * gst/vaapi/gstvaapivideometa_texture.c:
23402 plugins: allow builds without GLX enabled for GStreamer 1.2.
23403 Don't try to build GLTextureUploadMeta related code if GLX is not
23404 enabled during GStreamer >= 1.2 builds.
23406 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23408 * gst/vaapi/gstvaapidecode.c:
23409 * gst/vaapi/gstvaapivideobufferpool.c:
23410 * gst/vaapi/gstvaapivideobufferpool.h:
23411 * gst/vaapi/gstvaapivideometa_texture.c:
23412 * gst/vaapi/gstvaapivideometa_texture.h:
23413 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23414 Requesting the GLTextureUpload meta on buffers in the bufferpool
23415 prevents such metas from being de-allocated when buffers are released
23417 This is particulary useful in terms of performance when using the
23418 GLTextureUploadMeta API since the GstVaapiTexture associated with
23419 the target texture is stored in the meta.
23420 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23421 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23423 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23425 * gst/vaapi/gstvaapivideometa_texture.c:
23426 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23427 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23428 when the GstVaapiTexture associated with the supplied texture id could
23431 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23433 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23434 h264: improve robustness when packets are missing.
23435 Improve robustness when some expected packets where not received yet
23436 or that were not correctly decoded. For example, don't try to decode
23437 a picture if there was no valid frame headers parsed so far.
23438 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23440 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23442 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23443 decoder: h264: fix decoding of BA3_SVA_C.264.
23444 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23445 extended profile specifications. However, the SPS header has the
23446 constraint_set1_flag syntax element set to 1. This means that, if
23447 a Main profile compliant decoder is available, then it should be
23448 able to decode this stream.
23449 This changes makes it possible to fall-back from Extended profile
23450 to Main profile if constraint_set1_flag is set to 1.
23451 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23453 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23455 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23456 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23457 utils: h264: add more profiles.
23458 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23459 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23460 multiview profiles (H.10.1.1, H.10.1.2).
23461 Document "Constrained Baseline" and "High 10" profiles.
23463 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23465 * ext/codecparsers:
23466 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23467 e7d0e18 h264: complete set of NAL unit types
23469 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23471 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23472 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23473 decoder: h264: add support for constrained baseline profile.
23474 Recognize streams marked as conforming to the "Constrained Baseline
23475 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23476 to baseline, main or high profile.
23477 Constrained Baseline Profile conveys coding tools that are common
23478 to baseline profile and main profile.
23479 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23480 [Added fallbacks to main and high profiles]
23481 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23483 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23485 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23486 decoder: h264: fix decoding of scaling lists.
23487 The GStreamer codecparser layer now parses the scaling lists in zigzag
23488 scan order, as expected, so that to match the original bitstream layout
23489 and specification. However, further convert the scaling lists into
23490 raster scan order to fit the existing practice in most VA drivers.
23491 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23493 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23495 * ext/codecparsers:
23496 codecparsers: update to gst-vaapi-branch commit 177c73b.
23497 a7e3255 add H.265 (HEVC) bitstream parser
23498 177c73b h264: fix picture level scaling lists derivation (rule B)
23499 14733f1 h264: fix parsing of VCL HRD parameters
23500 59a0b47 h264: store quantization matrices in zig-zag order
23501 ffb6e26 h264: add helpers to convert quantization matrices
23502 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23503 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23504 5241d8e all: remove some unused functions
23505 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23506 963c04a all: make warnings more meaningful
23508 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23510 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23511 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23512 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23513 utils: add helpers for H.264 levels.
23514 - gst_vaapi_utils_h264_get_level():
23515 Returns GstVaapiLevelH264 from H.264 level_idc value
23516 - gst_vaapi_utils_h264_get_level_idc():
23517 Returns H.264 level_idc value from GstVaapiLevelH264
23518 - gst_vaapi_utils_h264_get_level_limits():
23519 Returns level limits as specified in Table A-1 of the H.264 standard
23520 - gst_vaapi_utils_h264_get_level_limits_table():
23521 Returns the Table A-1 specification
23523 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23525 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23526 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23527 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23528 utils: add new H.264 profiles.
23529 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23530 and helper functiions.
23532 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23534 utils: add new H.264 helper functions.
23536 - gst_vaapi_utils_h264_get_profile():
23537 Returns GstVaapiProfile from H.264 profile_idc value
23538 - gst_vaapi_utils_h264_get_profile_idc():
23539 Returns H.264 profile_idc value from GstVaapiProfile
23541 - gst_vaapi_utils_h264_get_chroma_type():
23542 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23543 - gst_vaapi_utils_h264_get_chroma_format_idc():
23544 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23546 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23548 * gst-libs/gst/base/Makefile.am:
23549 * gst-libs/gst/vaapi/Makefile.am:
23550 Fix missing files in distribution tarball.
23551 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23552 [Additional fixes and clean-ups]
23553 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23555 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23557 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23558 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23559 encoder: fix computation of max coded buffer size (again).
23560 The previous fix was only valid to express the maximum size of the
23561 macroblock layer, i.e. without any headers. Now, also account for
23562 the slice headers and top picture header, but also any other header
23563 we might stuff into the VA coded buffer, e.g. sequence headers.
23565 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23567 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23568 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23569 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23570 encoder: fix computation of max coded buffer size.
23571 Fix coded buffer size for each codec. A generic issue was that the
23572 number of macroblocks was incorrectly computed. The second issue was
23573 specific to MPEG-2 were the max number of bits per macroblock, and
23574 as defined by the standard, was incorrectly mapped to the (lower)
23575 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23577 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23579 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23580 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23581 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23582 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23583 encoder: simplify VA context initialization process.
23584 Change get_context_info() into a set_context_info() function that
23585 initializes common defaults into the base class, thus allowing the
23586 subclasses to specialize the context info further on.
23587 The set_context_info() hook is also the location where additional
23588 context specific data could be initialized. At this point, we are
23589 guaranteed to have valid video resolution size and framerate. i.e.
23590 gst_vaapi_encoder_set_format() was called beforehand.
23592 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
23594 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23595 encoder: fix mpeg2 compilation error.
23596 https://bugzilla.gnome.org/show_bug.cgi?id=719746
23597 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23599 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23601 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23602 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23603 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23604 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23605 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23606 * gst/vaapi/gstvaapiencode.c:
23607 encoder: clean-ups and document public APIs.
23608 Clean public APIs up so that to better align with the decoder APIs.
23609 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23610 return the VA coded buffer proxy. Also provide useful documentation
23611 for the public APIs.
23613 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23615 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23616 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23617 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23618 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23619 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23620 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23621 through GstVaapiCodedBufferProxy user-data facility.
23622 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23624 Partial fix for the following report:
23625 https://bugzilla.gnome.org/show_bug.cgi?id=719530
23627 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23629 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23630 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23631 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23632 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23633 * gst/vaapi/gstvaapiencode.c:
23634 encoder: refactor status codes.
23635 Drop obsolete or unused status codes. Align some status codes with the
23636 decoder counterparts.
23638 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23640 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23641 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23642 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23643 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23644 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23645 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23646 encoder: fix subclassing process.
23647 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23648 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23649 thus avoiding useless run-time checks. Also simplify the subclass
23650 initialization process to be less error prone.
23652 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23654 encoder: rework GstVaapiCodedBuffer and related proxy.
23655 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23656 public and private interfaces. Besides, the map/unmap APIs should not
23657 be exposed as is but appropriate accessors should be provided instead.
23658 * GstVaapiCodedBuffer: VA coded buffer abstraction
23659 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23660 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23661 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23662 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23663 the specified max size, and bound to the supplied encoder
23664 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23665 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23666 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23667 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23668 Rationale: more optimized transfer functions might be provided in the
23669 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23670 https://bugzilla.gnome.org/show_bug.cgi?id=719775
23672 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23674 * gst/vaapi/gstvaapidecode.c:
23675 * gst/vaapi/gstvaapiencode.c:
23676 * gst/vaapi/gstvaapipostproc.c:
23677 * gst/vaapi/gstvaapisink.c:
23678 plugins: fix reference leaks of VA display objects.
23679 Fix GstElement::set_context() implementation for all plug-in elements
23680 to avoid leaking an extra reference to the VA display, thus preventing
23681 correct cleanup of VA resources in GStreamer 1.2 builds.
23683 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23685 * gst/vaapi/gstvaapipluginutil.c:
23686 * gst/vaapi/gstvaapivideocontext.c:
23687 plugins: simplify gst_vaapi_ensure_display().
23688 Return earlier if the creation of a VA display failed. Likewise, simplify
23689 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23692 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23694 * gst/vaapi/gstvaapivideomemory.c:
23695 plugins: fix memory leaks through GstVideoMeta maps.
23696 When GstVideoMeta maps were used, the supporting functions incorrectly
23697 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23698 always increasing the associated GstMemory reference count and giving
23699 zero chance to actually release that, and subsequently the VA display.
23701 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23703 * gst-libs/gst/vaapi/gstvaapifilter.c:
23704 * gst/vaapi/gstvaapiencode_h264.c:
23705 * gst/vaapi/gstvaapiencode_mpeg2.c:
23706 * gst/vaapi/gstvaapipostproc.c:
23707 * gst/vaapi/gstvaapisink.c:
23708 * gst/vaapi/gstvaapiuploader.c:
23709 plugins: use G_PARAM_STATIC_STRINGS.
23710 This avoids a few string copies during initialization.
23712 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23714 * gst/vaapi/gstvaapivideometa.c:
23715 plugins: simplify VA video meta to only reference surface proxies.
23716 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23717 now allocated from a surface pool. This also means that the local
23718 reference to the VA surface is also gone, as it could be extracted
23719 from the associated surface proxy.
23721 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23723 * gst/vaapi/gstvaapivideobuffer.c:
23724 * gst/vaapi/gstvaapivideobuffer.h:
23725 * gst/vaapi/gstvaapivideometa.c:
23726 * gst/vaapi/gstvaapivideometa.h:
23727 plugins: drop obsolete functions.
23728 Drop the following functions that are not longer used:
23729 - gst_vaapi_video_buffer_new_with_surface()
23730 - gst_vaapi_video_meta_new_with_surface()
23731 - gst_vaapi_video_meta_set_surface()
23732 - gst_vaapi_video_meta_set_surface_from_pool()
23734 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23736 * gst/vaapi/gstvaapivideometa.c:
23737 plugins: allow VA video meta to be allocated from surface proxy pools.
23738 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23739 from surface pools instead of plain VA surfaces. This is to simplify
23740 allocations now that surface proxies are created from a surface pool.
23742 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23744 * docs/reference/libs/libs-sections.txt:
23745 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23746 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23747 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23748 surfaceproxy: add copy function.
23749 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23750 proxy with the same information from the parent proxy, except that the
23751 user-defined destroy notify function is not copied over.
23752 The underlying VA surface is pushed back to the video pool only when
23753 the last reference to the parent surface proxy is released.
23755 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23757 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23758 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23759 * gst/vaapi/gstvaapiencode.c:
23760 vaapiencode: optimize _handle_frame() to avoid extra allocation.
23761 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23762 and in particular the GstVaapiEncObjUserData object. i.e. directly use
23763 the VA surface proxy from the source buffer. This also makes the user
23764 data attached to the GstVideoCodecFrame more consistent between both
23765 the decoder and encoder plug-in elements.
23767 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23769 * gst/vaapi/gstvaapiencode.c:
23770 vaapiencode: fix memory leaks in _push_frame() on error.
23771 Simplify gst_vaapiencode_push_frame(), while also removing the call
23772 to gst_video_encoder_negotiate() since this is implicit in _finish()
23773 if caps changed. Also fixed memory leaks that occured on error.
23775 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23777 * gst/vaapi/gstvaapiencode.c:
23778 * gst/vaapi/gstvaapiencode.h:
23779 * gst/vaapi/gstvaapiencode_h264.c:
23780 * gst/vaapi/gstvaapiencode_h264.h:
23781 * gst/vaapi/gstvaapiencode_mpeg2.c:
23782 vaapiencode: additional clean-ups.
23783 Constify pointers wherever possible. Drop unused variables, and use
23784 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23785 to correctly report errors, especially when in-place conversion from
23786 bytestream to avcC format failed.
23788 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23790 * gst/vaapi/gstvaapiencode.c:
23791 * gst/vaapi/gstvaapiencode.h:
23792 * gst/vaapi/gstvaapiencode_h264.c:
23793 * gst/vaapi/gstvaapiencode_h264.h:
23794 * gst/vaapi/gstvaapiencode_mpeg2.c:
23795 * gst/vaapi/gstvaapiencode_mpeg2.h:
23796 vaapiencode: move common properties to base class.
23797 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23798 base class. The actual range of supported rate control modes is currently
23799 implemented as a plug-in element hook. This ought to be determined from
23800 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23802 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23804 * gst/vaapi/gstvaapiencode_h264.c:
23805 * gst/vaapi/gstvaapiencode_mpeg2.c:
23806 vaapiencode: fix plugin description and debug name.
23807 Align the plug-in debug category to its actual name. i.e. enable debug
23808 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23809 the plug-in element description to make it more consistent with other
23812 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23815 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23816 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23817 * gst-libs/gst/video/Makefile.am:
23818 * gst/vaapi/gstvaapiencode.c:
23819 * gst/vaapi/gstvaapiencode.h:
23820 * gst/vaapi/gstvaapiencode_h264.c:
23821 * gst/vaapi/gstvaapiencode_mpeg2.c:
23822 vaapiencode: add initial support for GStreamer 0.10.
23824 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23826 * gst-libs/gst/vaapi/gstcompat.h:
23827 libs: add more GstBuffer compat glue for GStreamer 0.10.
23828 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23829 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23832 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23835 * gst-libs/gst/video/Makefile.am:
23836 libs: always use built-in videoutils for GStreamer 0.10.
23837 GStreamer 0.10.36 is the latest and ultimate version to be released
23838 from the GStreamer 0.10 branch. i.e. no further releases are to be
23839 made. So, we can safely enable the built-in videoutils replacement
23840 now that they are in sync with the 0.10 branch.
23842 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23845 videoutils: update to master commit d4a15a5.
23846 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23847 86096cc videodecoder: minor cosmetic changes to align a bit more with master
23848 b4b8b52 videodecoder: allow parse function to not use all data on adapter
23849 2145495 videodecoder: warn if frame list gets long
23850 36c3753 videodecoder: Also use the object lock to protect the output_state
23851 518c93d videodecoder: fix seeking again
23852 185fb63 video: Correct usage of the base class stream lock
23853 170e944 videodecoder: Expose _negotiate function
23855 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23858 * gst-libs/gst/vaapi/Makefile.am:
23859 * tests/Makefile.am:
23860 Fix build with GStreamer >= 1.3.
23861 http://bugzilla.gnome.org/show_bug.cgi?id=715183
23862 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23864 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23867 configure: disable encoders with GStreamer 0.10.
23868 Don't try to build video encoders for GStreamer 0.10. Support code is
23869 not there yet, and probably will never for such an ancient version.
23871 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23873 * gst/vaapi/gstvaapiencode.c:
23874 vaapiencode: fix error handling while allocating output buffers.
23875 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
23876 unmap the coded buffer prior to returning an error.
23878 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23880 * gst/vaapi/gstvaapiencode.c:
23881 vaapiencode: fix error handling in _finish() hook.
23882 Fix GstVideoEncoder::finish() implementation to really return possible
23883 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
23885 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23887 * gst/vaapi/gstvaapiencode.c:
23888 * gst/vaapi/gstvaapiencode.h:
23889 * gst/vaapi/gstvaapiencode_h264.c:
23890 * gst/vaapi/gstvaapiencode_h264.h:
23891 * gst/vaapi/gstvaapiencode_mpeg2.c:
23892 * gst/vaapi/gstvaapiencode_mpeg2.h:
23893 vaapiencode: minor clean-ups.
23894 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
23895 the GObject type system. We are guaranteed to only deal with the same
23896 plug-in element object.
23898 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23900 * gst/vaapi/gstvaapiencode.c:
23901 * gst/vaapi/gstvaapiencode_h264.c:
23902 * gst/vaapi/gstvaapiencode_mpeg2.c:
23903 vaapiencode: fix support for raw YUV sink buffers.
23904 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
23905 The most efficient way to do so is to let the vaapiencode elements
23906 allocate a buffer pool, and subsequently buffers from it. This means
23907 that upstream elements are expected to honour downstream pools.
23908 If upstream elements insist on providing their own allocated buffers
23909 to the vaapiencode elements, then it possibly would be more efficient
23910 to insert a vaapipostproc element before the vaapiencode element.
23911 This is because vaapipostproc currently has better support than other
23912 elements for "foreign" raw YUV buffers.
23914 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23916 * gst/vaapi/gstvaapiencode.c:
23917 vaapiencode: fix support for GStreamer 1.2.
23919 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
23921 * gst/vaapi/gstvaapiencode.c:
23922 * gst/vaapi/gstvaapiencode_h264.c:
23923 * gst/vaapi/gstvaapiencode_mpeg2.c:
23924 vaapiencode: initial port to GStreamer 1.2.
23925 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23927 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
23929 * gst/vaapi/Makefile.am:
23930 * gst/vaapi/gstvaapi.c:
23931 * gst/vaapi/gstvaapiencode_mpeg2.c:
23932 * gst/vaapi/gstvaapiencode_mpeg2.h:
23933 plugins: add mpeg2 encoder element.
23934 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
23935 is called "vaapiencode_mpeg2".
23937 - rate-control: rate control mode (default: cqp - constant QP)
23938 - bitrate: desired bitrate in kbps (default: auto-calculated)
23939 - key-period: maximal distance between two key frames (default: 30)
23940 - max-bframes: number of B-frames between I and P (default: 2)
23941 - quantizer: constant quantizer (default: 8)
23942 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23944 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
23946 * gst/vaapi/Makefile.am:
23947 * gst/vaapi/gstvaapi.c:
23948 * gst/vaapi/gstvaapiencode_h264.c:
23949 * gst/vaapi/gstvaapiencode_h264.h:
23950 plugins: add h264 encoder element.
23951 Add GstVaapiEncodeH264 element object. The actual plug-in element
23952 is called "vaapiencode_h264".
23954 - rate-control: rate control mode (default: none)
23955 - bitrate: desired bitrate in kbps (default: auto-calculated)
23956 - key-period: maximal distance between two key frames (default: 30)
23957 - num-slices: number of slices per frame (default: 1)
23958 - max-bframes: number of B-frames between I and P (default: 0)
23959 - min-qp: minimal quantizer (default: 1)
23960 - init-qp: initial quantizer (default: 26)
23961 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23963 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
23965 * gst/vaapi/Makefile.am:
23966 * gst/vaapi/gstvaapiencode.c:
23967 * gst/vaapi/gstvaapiencode.h:
23968 plugins: add base encoder element.
23969 vaapiencode element is based on GstVideoEncoder APIs.
23970 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23972 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
23974 * gst-libs/gst/vaapi/Makefile.am:
23975 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23976 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23977 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23978 encoder: add mpeg2 encoder.
23979 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
23980 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23982 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
23984 * gst-libs/gst/vaapi/Makefile.am:
23985 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23986 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23987 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23988 encoder: add h264 encoder.
23989 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23991 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
23994 * gst-libs/gst/vaapi/Makefile.am:
23995 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23996 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23997 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23998 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23999 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24000 Add initial infrastructure for video encoding.
24001 Add initial API for video encoding: only basic interfaces and small
24002 encoder objects are implemented so far.
24003 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24005 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
24008 * gst-libs/gst/Makefile.am:
24009 * gst-libs/gst/base/Makefile.am:
24010 * gst-libs/gst/base/gstbitwriter.c:
24011 * gst-libs/gst/base/gstbitwriter.h:
24012 * gst-libs/gst/vaapi/Makefile.am:
24013 libs: add generic bitstream writer.
24014 GstBitWriter provides a bit writer that can write any number of bits
24015 to a pre-allocated memory buffer. Helper functions are also provided
24016 to write any number of bits from 8, 16, 32 and 64 bit variables.
24017 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24019 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24021 * gst-libs/gst/vaapi/gstvaapicontext.c:
24022 * gst-libs/gst/vaapi/gstvaapicontext.h:
24023 libs: add support for rate-control to GstVaapiContext.
24024 Extend GstVaapiContextInfo structure to hold the desired rate control
24025 mode for encoding purposes. For decoding purposes, this field is not
24026 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24027 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24029 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24031 * gst-libs/gst/vaapi/gstvaapitypes.h:
24032 * gst-libs/gst/vaapi/gstvaapiutils.c:
24033 * gst-libs/gst/vaapi/gstvaapiutils.h:
24034 * gst-libs/gst/vaapi/gstvaapivalue.c:
24035 * gst-libs/gst/vaapi/gstvaapivalue.h:
24036 libs: add rate-control attributes.
24037 Add GstVaapiRateControl types and GType values in view to supporting
24038 rate controls for encoding. This is meant to be used for instance in
24040 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24042 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24045 Bump version for development.
24047 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24049 * gst/vaapi/Makefile.am:
24050 build: fix for Wayland headers not in standard include dirs.
24051 Fix build when Wayland headers don't live in plain system include dirs
24052 like /usr/include but rather in /usr/include/wayland for instance.
24053 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24054 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24056 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24058 * gst-libs/gst/vaapi/Makefile.am:
24059 build: link libgstvaapi-wayland against videoutils.
24060 This library is using symbols that don't exist in GStreamer 0.10 so
24061 it needs to link to built-in implementation (libgstvaapi-videoutils).
24062 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24063 Signed-off-by: Ross Burton <ross.burton@intel.com>
24064 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24066 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24068 * gst-libs/gst/vaapi/gstvaapifilter.c:
24069 * gst/vaapi/gstvaapipostproc.c:
24070 vaapostproc: fix memory leaks.
24071 Destroy VPP output surface pool on exit. Also avoid a possible crash
24072 in double-free situation caused by insufficiently reference counted
24073 array of formats returned during initialization.
24075 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24077 * gst/vaapi/gstvaapipostproc.c:
24078 * gst/vaapi/gstvaapipostproc.h:
24079 vaapipostproc: fix and optimize advanced deinterlacing mode.
24080 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24081 reference buffers. This used to be 3 past reference buffers but this
24082 doesn't fit with the existing decode pipeline that only has 4 extra
24084 Also optimize references tracking to be only enabled when needed, i.e.
24085 when advanced deinterlacing mode is used. This means that we don't
24086 need to track past references for basic bob or weave deinterlacing.
24088 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24090 * gst/vaapi/gstvaapipostproc.c:
24091 vaapipostproc: fix "mixed" mode deinterlacing.
24092 In "mixed" interlaced streams, the buffer contains additional flags that
24093 specify whether the frame contained herein is interlaced or not. This means
24094 that we can alternatively get progressive or interlaced frames. Make sure
24095 to disable deinterlacing at the VPP level when the source buffer is no longer
24098 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24100 * gst/vaapi/gstvaapipostproc.c:
24101 vaapipostproc: fix memory leaks with advanced deinterlacing.
24102 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24103 of past buffers. Completely reset the deinterlace state, thus destroying
24104 any buffer currently held, on _start(), _stop() and _destroy().
24106 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24110 - GStreamer 1.2 APIs are supported ;
24111 - Video Processing (VA/VPP) features.
24113 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24116 README: update for GStreamer >= 1.0.x and VPP features.
24118 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24120 * gst-libs/gst/vaapi/glibcompat.h:
24121 * gst-libs/gst/vaapi/gstvaapicontext.h:
24122 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24123 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24124 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24125 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24126 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24127 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24128 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24129 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24130 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24131 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24132 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24133 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24134 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24135 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24136 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24137 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24138 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24139 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24140 * gst-libs/gst/vaapi/gstvaapiimage.c:
24141 * gst-libs/gst/vaapi/gstvaapiimage.h:
24142 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24143 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24144 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24145 * gst-libs/gst/vaapi/gstvaapiobject.c:
24146 * gst-libs/gst/vaapi/gstvaapiobject.h:
24147 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24148 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24149 * gst-libs/gst/vaapi/gstvaapisurface.h:
24150 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24151 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24152 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24153 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24154 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24155 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24156 * gst-libs/gst/vaapi/gstvaapitexture.c:
24157 * gst-libs/gst/vaapi/gstvaapitexture.h:
24158 * gst-libs/gst/vaapi/gstvaapitypes.h:
24159 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24160 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24161 * gst-libs/gst/vaapi/gstvaapivalue.c:
24162 * gst-libs/gst/vaapi/gstvaapivalue.h:
24163 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24164 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24165 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24166 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24167 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24168 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24169 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24170 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24171 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24172 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24173 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24174 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24175 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24176 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24177 * gst/vaapi/gstvaapi.c:
24178 * gst/vaapi/gstvaapidecode.h:
24179 * gst/vaapi/gstvaapidownload.h:
24180 * gst/vaapi/gstvaapipluginutil.c:
24181 * gst/vaapi/gstvaapipluginutil.h:
24182 * gst/vaapi/gstvaapipostproc.h:
24183 * gst/vaapi/gstvaapisink.h:
24184 * gst/vaapi/gstvaapivideoconverter_glx.h:
24188 * tests/test-display.c:
24189 * tests/test-jpeg.c:
24190 * tests/test-jpeg.h:
24191 * tests/test-mpeg4.c:
24192 * tests/test-mpeg4.h:
24193 * tests/test-surfaces.c:
24194 * tests/test-windows.c:
24195 legal: update copyright notice dates.
24197 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24199 * gst-libs/gst/vaapi/glibcompat.h:
24200 * gst-libs/gst/vaapi/gstcompat.h:
24201 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24202 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24203 * gst-libs/gst/vaapi/gstvaapicompat.h:
24204 * gst-libs/gst/vaapi/gstvaapicontext.c:
24205 * gst-libs/gst/vaapi/gstvaapicontext.h:
24206 * gst-libs/gst/vaapi/gstvaapidebug.h:
24207 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24208 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24209 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24210 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24211 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24212 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24213 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24214 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24215 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24216 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24217 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24218 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24219 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24220 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24221 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24222 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24223 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24224 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24225 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24226 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24227 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24228 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24229 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24230 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24231 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24232 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24233 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24234 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24235 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24236 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24237 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24238 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24239 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24240 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24241 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24242 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24243 * gst-libs/gst/vaapi/gstvaapifilter.c:
24244 * gst-libs/gst/vaapi/gstvaapifilter.h:
24245 * gst-libs/gst/vaapi/gstvaapiimage.c:
24246 * gst-libs/gst/vaapi/gstvaapiimage.h:
24247 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24248 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24249 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24250 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24251 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24252 * gst-libs/gst/vaapi/gstvaapiobject.c:
24253 * gst-libs/gst/vaapi/gstvaapiobject.h:
24254 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24255 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24256 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24257 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24258 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24259 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24260 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24261 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24262 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24263 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24264 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24265 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24266 * gst-libs/gst/vaapi/gstvaapisurface.c:
24267 * gst-libs/gst/vaapi/gstvaapisurface.h:
24268 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24269 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24270 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24271 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24272 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24273 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24274 * gst-libs/gst/vaapi/gstvaapitexture.c:
24275 * gst-libs/gst/vaapi/gstvaapitexture.h:
24276 * gst-libs/gst/vaapi/gstvaapitypes.h:
24277 * gst-libs/gst/vaapi/gstvaapiutils.c:
24278 * gst-libs/gst/vaapi/gstvaapiutils.h:
24279 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24280 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24281 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24282 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24283 * gst-libs/gst/vaapi/gstvaapivalue.c:
24284 * gst-libs/gst/vaapi/gstvaapivalue.h:
24285 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24286 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24287 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24288 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24289 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24290 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24291 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24292 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24293 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24294 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24295 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24296 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24297 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24298 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24299 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24300 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24301 * gst-libs/gst/vaapi/sysdeps.h:
24302 * gst-libs/gst/vaapi/video-format.c:
24303 * gst-libs/gst/vaapi/video-format.h:
24304 * gst/vaapi/gstvaapi.c:
24305 * gst/vaapi/gstvaapidecode.c:
24306 * gst/vaapi/gstvaapidecode.h:
24307 * gst/vaapi/gstvaapidownload.c:
24308 * gst/vaapi/gstvaapidownload.h:
24309 * gst/vaapi/gstvaapipluginutil.c:
24310 * gst/vaapi/gstvaapipluginutil.h:
24311 * gst/vaapi/gstvaapipostproc.c:
24312 * gst/vaapi/gstvaapipostproc.h:
24313 * gst/vaapi/gstvaapisink.c:
24314 * gst/vaapi/gstvaapisink.h:
24315 * gst/vaapi/gstvaapiupload.c:
24316 * gst/vaapi/gstvaapiupload.h:
24317 * gst/vaapi/gstvaapiuploader.c:
24318 * gst/vaapi/gstvaapiuploader.h:
24319 * gst/vaapi/gstvaapivideobuffer.c:
24320 * gst/vaapi/gstvaapivideobuffer.h:
24321 * gst/vaapi/gstvaapivideobufferpool.c:
24322 * gst/vaapi/gstvaapivideobufferpool.h:
24323 * gst/vaapi/gstvaapivideocontext.c:
24324 * gst/vaapi/gstvaapivideocontext.h:
24325 * gst/vaapi/gstvaapivideoconverter_glx.c:
24326 * gst/vaapi/gstvaapivideoconverter_glx.h:
24327 * gst/vaapi/gstvaapivideoconverter_x11.c:
24328 * gst/vaapi/gstvaapivideoconverter_x11.h:
24329 * gst/vaapi/gstvaapivideomemory.c:
24330 * gst/vaapi/gstvaapivideomemory.h:
24331 * gst/vaapi/gstvaapivideometa.c:
24332 * gst/vaapi/gstvaapivideometa.h:
24333 * gst/vaapi/gstvaapivideometa_texture.c:
24334 * gst/vaapi/gstvaapivideometa_texture.h:
24343 * tests/simple-decoder.c:
24344 * tests/test-decode.c:
24345 * tests/test-decode.h:
24346 * tests/test-display.c:
24347 * tests/test-filter.c:
24348 * tests/test-h264.c:
24349 * tests/test-h264.h:
24350 * tests/test-jpeg.c:
24351 * tests/test-jpeg.h:
24352 * tests/test-mpeg2.c:
24353 * tests/test-mpeg2.h:
24354 * tests/test-mpeg4.c:
24355 * tests/test-mpeg4.h:
24356 * tests/test-surfaces.c:
24357 * tests/test-textures.c:
24358 * tests/test-vc1.c:
24359 * tests/test-vc1.h:
24360 * tests/test-windows.c:
24361 legal: add per-file authorship information.
24362 Credit original authors on a per-file basis as we cannot expect people
24363 to know all country-specific rules, or bother browsing through the git
24366 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24372 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24377 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24379 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24380 decoder: don't include obsolete headers.
24381 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24382 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24385 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24387 * gst/vaapi/Makefile.am:
24388 * gst/vaapi/gstvaapi.c:
24389 * gst/vaapi/gstvaapipostproc.c:
24390 vaapipostproc: add initial support for GStreamer 1.2.
24391 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24392 right now so that to cope with auto-plugging issues/regressions. e.g.
24393 this happens when the correct set of expected caps are being exposed.
24394 This means that, currently, the proposed caps are not fully accurate.
24396 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24398 * gst/vaapi/gstvaapipostproc.c:
24399 * gst/vaapi/gstvaapipostproc.h:
24400 vaapipostproc: add support for denoise and sharpen filters.
24401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24403 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24405 * gst/vaapi/gstvaapipostproc.c:
24406 * gst/vaapi/gstvaapipostproc.h:
24407 vaapipostproc: add support for advanced deinterlacing.
24408 Add initial support for advanced deinterlacing. The history buffer
24409 size is arbitrarily set to 3 references for now.
24411 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24413 * gst/vaapi/gstvaapipostproc.c:
24414 vaapipostproc: fix deinterlacing with VPP.
24415 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24416 for the first field. Render flags were supplied instead of the actual
24417 deinterlacing flags (deint_flags).
24419 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24421 * gst/vaapi/gstvaapipostproc.c:
24422 vaapipostproc: fix transform caps.
24423 Fix GstBaseTransform::transform_caps() implementation to always return
24424 the complete set of allowed sink pad caps (unfixated) even if the src
24425 pad caps we are getting are fixated. Rationale: there are just so many
24426 possible combinations, and it was wrong to provide a unique set anyway.
24427 As a side effect, this greatly simplifies the ability to derive src pad
24428 caps from fixated sink pad caps.
24430 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24432 * docs/reference/libs/libs-sections.txt:
24433 * gst-libs/gst/vaapi/gstvaapifilter.c:
24434 * gst-libs/gst/vaapi/gstvaapifilter.h:
24435 filter: add helper to specify references for deinterlacing.
24436 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24437 list of surfaces used for forward or backward reference in advanced
24438 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24439 The list of surfaces used as deinterlacing references shall be live
24440 until the next call to gst_vaapi_filter_process().
24441 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24443 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24445 * gst-libs/gst/vaapi/gstvaapifilter.c:
24446 * gst-libs/gst/vaapi/gstvaapifilter.h:
24447 * gst-libs/gst/vaapi/gstvaapiutils.c:
24448 * gst/vaapi/gstvaapipostproc.c:
24449 * tests/test-filter.c:
24450 filter: fix semantics of deinterlacing flags.
24451 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24452 flag is meant to specify the organization of reference frames used in
24453 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24454 to specify that the top-field of the supplied input surface is to be
24455 used for deinterlacing. Conversely, if not set, this means that the
24456 bottom field of the supplied input surface will be used instead.
24458 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24460 * docs/reference/libs/libs-sections.txt:
24461 * gst-libs/gst/vaapi/gstvaapifilter.c:
24462 * gst-libs/gst/vaapi/gstvaapifilter.h:
24463 filter: add helpers to check for supported/active operation.
24464 Add a couple of helper functions:
24465 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24466 advertises support for the supplied operation ;
24467 - gst_vaapi_filter_use_operation(): checks whether the supplied
24468 operation was already enabled to its non-default value.
24470 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24472 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24473 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24474 The user-defined destroy notify function is meant to be called only when
24475 the surface proxy was fully released, i.e. once it actually released the
24476 VA surface back to the underlying pool.
24478 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24480 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24481 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24482 libs: make GstVaapiVideoPool thread-safe.
24483 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24484 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24486 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24488 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24489 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24490 libs: robustify decoder objects and surface proxy initialization.
24491 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24492 sequences to have the expected default values set beforehand in case of an
24493 error raising up further during creation. i.e. make it possible to cleanly
24494 destroy those partially initialized objects.
24495 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24496 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24498 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24500 * gst/vaapi/gstvaapidecode.c:
24501 vaapidecode: fix decoder flush.
24502 There are situations where gst_video_decoder_flush() is called, and
24503 this subsequently produces a gst_video_decoder_reset() that kills the
24504 currently active GstVideoCodecFrame. This means that it no longer
24505 exists by the time we reach GstVideoDecoder::finish() callback, thus
24506 possibly resulting in a crash if we assumed spare data was still
24507 available for decode (current_frame_size > 0).
24508 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24509 that means a flush, thus performing the actual operations there like
24510 calling gst_video_decoder_have_frame() if pending data is available.
24512 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24514 * gst/vaapi/gstvaapidecode.c:
24515 * gst/vaapi/gstvaapidecode.h:
24516 vaapidecode: fix dead-locks with decoder task.
24517 Review all interactions between the main video decoder stream thread
24518 and the decode task to derive a correct sequence of operations for
24519 decoding. Also avoid extra atomic operations that become implicit under
24520 the GstVideoDecoder stream lock.
24522 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24524 * gst/vaapi/gstvaapidecode.c:
24525 vaapidecode: fix hard reset for seek cases.
24526 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24527 and completely purge any decoded output frame that may come out from
24528 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24529 state to start decoding over new buffers.
24530 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24532 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24534 * gst/vaapi/gstvaapidecode.c:
24535 * gst/vaapi/gstvaapidecode.h:
24536 vaapidecode: drop decode timeout, always wait for a free surface.
24537 vaapidecode used to wait up to one second past the expected time of
24538 presentation for the last decoded frame. This is not realistic in
24539 practice when it comes to video pause/resume. Changed behaviour to
24540 unconditionnally wait for a free VA surface prior to continuing the
24541 decoding. The decode task will continue pushing the output frames to
24542 the downstream element while also reporting errors at the same time
24543 to the main thread.
24544 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24545 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24547 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24549 * gst/vaapi/gstvaapidecode.c:
24550 vaapidecode: fix srcpad caps for GStreamer 1.2.
24551 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24552 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24553 that it relied on possibly un-initialized data. Fix srcpad caps to be
24554 initialized from a sanitized copy of GstVideoDecoder output state caps.
24555 Note: the correct way to expose the srcpad caps triggers an additional
24556 issue in core GStreamer auto-plugging capabilities as the correct caps
24557 to be exposed should be format=ENCODED with memory:VASurface caps feature
24558 at the minimum. In some situations, we could determine the underlying
24559 VA surface format, but this is not always possible. e.g. cases where it
24560 is not allowed to expose the underlying VA surface data, or when the
24561 VA driver implementation cannot actually provide such information.
24563 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24565 * gst/vaapi/gstvaapidecode.c:
24566 * gst/vaapi/gstvaapisink.c:
24567 plugins: streamline VA formats exposed in caps to a realistic set.
24568 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24569 output formats for GStreamer 1.2 in caps to a realistic subset. This
24570 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24571 underlying VA surface format, or if it is actually not allowed to get
24572 access to the surface contents.
24574 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24576 * gst/vaapi/gstvaapidecode.c:
24577 * gst/vaapi/gstvaapisink.c:
24578 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24579 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24580 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24581 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24582 we really don't support that for rendering.
24583 https://bugzilla.gnome.org/show_bug.cgi?id=711828
24585 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24588 configure: automatically detect GStreamer API version.
24589 Automatically detect GStreamer API version. The --with-gstreamer-api
24590 configure option now defaults to "autodetect" and configure then tries
24591 to derive the GStreamer API version from the highest version based on
24592 what pkg-config --modversion would report.
24593 https://bugzilla.gnome.org/show_bug.cgi?id=711657
24595 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
24597 * gst/vaapi/gstvaapipostproc.c:
24598 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24599 Fix raw YUV data uploaded as in the following pipeline:
24600 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24601 The main reason why it failed was that the videoparse element simply
24602 allocates GstBuffer with raw data chunk'ed off the sink pad without
24603 any prior knowledge of the actual frame info. i.e. it basically just
24604 calls gst_adapter_take_buffer().
24605 We could avoid the extra copy performed in vaapipostproc if the videoparse
24606 element was aware of the downstream pool and bothers copying line by
24607 line, for each plane. This means that, for a single frame per buffer,
24608 the optimizatin will be to allocate the video buffer downstream, map
24609 it, and copy each line that is coming through until we need to fills
24610 in the successive planes.
24611 Still, optimized raw YUV uploads already worked with the following:
24612 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24613 https://bugzilla.gnome.org/show_bug.cgi?id=711250
24614 [clean-ups, fixed error cases to unmap and unref outbuf]
24615 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24617 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24619 * gst/vaapi/gstvaapipostproc.c:
24620 vaapipostproc: try to downgrade deinterlace-method when needed.
24621 If the currently selected deinterlacing method is not supported by the
24622 underlying hardware, then try to downgrade the method to a supported one.
24623 At the minimum, basic bob-deinterlacing shall always be supported.
24625 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24627 * gst/vaapi/gstvaapipostproc.c:
24628 vaapipostproc: add initial support for deinterlacing with VPP.
24629 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24630 this only covers bob-deinterlacing when the output pixel format is
24633 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24635 * gst/vaapi/gstvaapipostproc.c:
24636 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24637 The size argument for GstBaseTransform::transform_size() hook is a
24638 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24640 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24642 * gst/vaapi/gstvaapipostproc.c:
24643 * gst/vaapi/gstvaapipostproc.h:
24644 vaapipostproc: add initial support for scaling.
24645 Add initial support for basic scaling with size specified through the
24646 "width" and "height" properties. If either user-provided dimension is
24647 zero and "force-aspect-ratio" is set to true (the default), then the
24648 other dimension is scaled to preserve the aspect ratio.
24650 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24652 * gst/vaapi/gstvaapipostproc.c:
24653 * gst/vaapi/gstvaapipostproc.h:
24654 vaapipostproc: add initial support for color conversion.
24655 If VPP is available, we always try to implicitly convert the source
24656 buffer to the "native" surface format for the underlying accelerator.
24657 This means that no optimization is performed yet to propagate raw YUV
24658 buffers to the downstream element as is, if VPP is available. i.e. it
24659 will always cause a color conversion.
24661 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24663 * gst/vaapi/gstvaapipostproc.c:
24664 vaapipostproc: fix bug when user disabled deinterlacing.
24665 Fix pipeline error / hang when the user disabled deinterlacing through
24666 the deinterlace-mode=disabled property setting.
24668 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24670 * gst/vaapi/gstvaapipostproc.c:
24671 * gst/vaapi/gstvaapipostproc.h:
24672 vaapipostproc: factor out operations to be applied into flags.
24673 Even if we only support deinterlacing for now, use flags to specify
24674 which filters are to be applied to each frame we receive in transform().
24675 This is preparatory work for integrating new filters.
24677 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24679 * gst/vaapi/gstvaapipostproc.c:
24680 * gst/vaapi/gstvaapipostproc.h:
24681 vaapipostproc: add support for raw YUV video source buffers.
24682 Allow video processing from raw YUV buffers coming from the sink pad,
24683 while still producing a VA surface for the downstream elements.
24685 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24687 * gst/vaapi/gstvaapipluginutil.c:
24688 * gst/vaapi/gstvaapipluginutil.h:
24689 * gst/vaapi/gstvaapipostproc.c:
24690 vaapipostproc: add support for "mixed" interlace mode.
24691 Add support for "mixed" interlace-mode, whereby the video frame buffer
24692 shall be deinterlaced only if its flags mention that's actually an
24693 interlaced frame buffer.
24695 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24697 * gst-libs/gst/vaapi/gstcompat.h:
24698 * gst/vaapi/gstvaapipostproc.c:
24699 * gst/vaapi/gstvaapipostproc.h:
24700 * gst/vaapi/gstvaapivideobuffer.c:
24701 * gst/vaapi/gstvaapivideobuffer.h:
24702 vaapipostproc: rework plug-in element.
24703 Rewrite the vaapipostproc plug-in element so that it derives from
24704 GstBaseTransform, thus simplifying the caps negotiation process.
24706 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24708 * gst/vaapi/gstvaapivideobufferpool.c:
24709 * gst/vaapi/gstvaapivideomemory.c:
24710 * gst/vaapi/gstvaapivideomemory.h:
24711 plugins: fix and optimize check for buffer pool allocator params.
24712 Reset the buffer pool allocator only if the config caps changed in a
24713 sensible way: format or resolution change. i.e. don't bother with
24714 other caps like colorimetry et al. as this doesn't affect the way to
24715 allocate VA surfaces or images.
24717 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24719 * gst/vaapi/gstvaapivideomemory.c:
24720 plugins: enable memory maps for read & write with direct-rendering.
24721 Enable read and write mappings only if direct-rendering is supported.
24722 Otherwise, this means that we may need to download data from the VA
24723 surface first for correctness, even if the VA surface doesn't need to
24724 be read at all. i.e. sometimes, READWRITE mappings are meant for
24725 surfaces that are written to first, and read afterwards for further
24727 https://bugzilla.gnome.org/show_bug.cgi?id=704078
24729 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24731 * gst/vaapi/gstvaapivideomemory.c:
24732 plugins: fix check for direct-rendering support.
24733 Fix check for direct-rendering if the creation of VA surfaces with
24734 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24735 that we tried to allocate a VA surface based on the corresponding
24736 chroma type. i.e. in that particular case, we have to make sure that
24737 the derived image has actually the expected format.
24739 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24741 * gst/vaapi/gstvaapivideobufferpool.c:
24742 * gst/vaapi/gstvaapivideomemory.c:
24743 * gst/vaapi/gstvaapivideomemory.h:
24744 plugins: fix buffer pool reset_buffer() to reset memory resources.
24745 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24746 memory resources, and more particularly the VA surface proxy. Most
24747 importantly, the GstVaapiVideoMeta is retained. Cached surface in
24748 memory are released, thus triggering a new allocation the next time
24749 we need to map the buffer.
24751 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24753 * gst/vaapi/gstvaapivideomemory.c:
24754 * gst/vaapi/gstvaapivideomemory.h:
24755 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24756 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24757 pool stored in the parent VA memory allocator.
24758 This fixes the following scenario:
24759 - VA video buffer 1 is allocated from a buffer pool
24760 - Another video buffer is created, and inherits info from buffer 1
24761 - Buffer 1 is released, thus pushing it back to the buffer pool
24762 - New buffer alloc request comes it, this yields buffer 1 back
24763 - At this stage, buffers 1 and 2 still share the same underlying VA
24764 surface, but buffer 2 was already submitted downstream for further
24765 processing, thus conflicting with additional processing we were
24766 about to perform on buffer 1.
24767 Maybe the core GstBufferPool implementation should have been fixed
24768 instead to actually make sure that the returned GstBuffer memory we
24769 found from the pool is writable?
24771 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24773 * gst/vaapi/gstvaapiuploader.c:
24774 plugins: create a proxy for GstVaapiUploader allocated buffers.
24775 Always make sure to allocate a VA surface proxy for GstVaapiUploader
24776 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24778 This fixes cases where we want to retain the underlying surface longer,
24779 instead of releasing it back to the surface pool right away.
24781 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24783 * gst/vaapi/gstvaapidecode.c:
24784 * gst/vaapi/gstvaapipluginutil.c:
24785 * gst/vaapi/gstvaapipluginutil.h:
24786 * gst/vaapi/gstvaapipostproc.c:
24787 plugins: add helper function to disable deinterlacing in caps.
24788 Add gst_caps_set_interlaced() helper function that would reset the
24789 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24790 interlaced field to "false" for GStreamer 0.10.
24792 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24794 * gst-libs/gst/vaapi/gstvaapifilter.c:
24795 filter: fix memory leak of VPP operations.
24796 Fix ensure_operations() to release the VPP operations array if non
24797 NULL, prior to returning to the caller. The former function was also
24798 renamed to a more meaningful get_operations() since the caller owns
24799 the returned array that needs to be released.
24801 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24803 * gst-libs/gst/vaapi/gstvaapifilter.c:
24804 filter: fix first-time operation lookup.
24805 Fix first-time operation lookup through find_operation() if the set
24806 of supported operations was not initially determined through the
24807 gst_vaapi_filter_get_operations() helper function.
24808 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24810 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24812 * gst-libs/gst/vaapi/gstvaapifilter.c:
24813 filter: fix colorbalance related subtypes.
24814 Fix intiialization of GstVaapiFilterOpData for colorbalance related
24815 operations. In particular, fill in the va_subtype field accordingly.
24816 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24818 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24820 * gst-libs/gst/vaapi/gstvaapifilter.c:
24821 filter: fix VA-API 0.34.0 symbol guards.
24822 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24823 that need to be guarded for libva 0.34 and 0.33, respectively.
24824 https://bugzilla.gnome.org/show_bug.cgi?id=709102
24825 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24827 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24829 * gst/vaapi/gstvaapidecode.c:
24830 * gst/vaapi/gstvaapipluginutil.c:
24831 * gst/vaapi/gstvaapisink.c:
24832 plugins: hanle the context query in any pad.
24833 Also this patch simplifies the code, since now the query is common for the
24834 decoder and the sink.
24835 https://bugzilla.gnome.org/show_bug.cgi?id=709200
24837 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24839 * gst/vaapi/gstvaapivideocontext.c:
24840 plugins: query upstream element for a GstContext.
24841 Fix gst_vaapi_video_context_prepare() to also query upstream elements
24842 for a valid GstContext. Improve comments regarding the steps used to
24843 lookup or build that context, thus conforming to the GstContext API
24845 https://bugzilla.gnome.org/show_bug.cgi?id=709112
24846 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24848 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24851 * debian.upstream/control.in:
24852 Fix detection and packaging of GStreamer 1.2.x builds.
24853 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24854 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24855 purposes, update the versioning to -1.2 suffix instead.
24857 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24859 * gst/vaapi/Makefile.am:
24860 * gst/vaapi/gstvaapidecode.c:
24861 * gst/vaapi/gstvaapidecode.h:
24862 * gst/vaapi/gstvaapisink.c:
24863 * gst/vaapi/gstvaapivideometa_texture.c:
24864 * gst/vaapi/gstvaapivideometa_texture.h:
24865 plugins: add support for GstVideoGLTextureUploadMeta.
24866 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
24867 requested, and more specifically under a GLX configuration, then add
24868 the GstVideoGLTextureUploadMeta to the output buffer.
24869 https://bugzilla.gnome.org/show_bug.cgi?id=703236
24870 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24872 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24874 * gst/vaapi/gstvaapidecode.c:
24875 * gst/vaapi/gstvaapisink.c:
24876 * gst/vaapi/gstvaapivideomemory.h:
24877 plugins: add support for GstCaps features.
24878 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
24879 as expressed in caps, to the more standard use of caps features. i.e.
24880 add "memory:VASurface" feature attribute to the associated caps.
24881 https://bugzilla.gnome.org/show_bug.cgi?id=703271
24882 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24884 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24886 * gst/vaapi/gstvaapidecode.c:
24887 * gst/vaapi/gstvaapisink.c:
24888 plugins: improve ::query() debugging messages.
24889 Fix gst_vaapidecode_query() to correctly display the query type name,
24890 instead of randomly displaying that we shared the underlying display.
24891 Also add debug info for the GstVaapiSink::query() handler, i.e. the
24892 supplied query type name actually.
24893 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24895 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24897 * gst/vaapi/gstvaapidecode.c:
24898 * gst/vaapi/gstvaapisink.c:
24899 plugins: add support for GstContext API.
24900 Add support for the new GstContext API from GStreamer 1.2.x.
24901 - implement the GstElement::set_context() hook ;
24902 - reply to the `context' query from downstream elements.
24903 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24904 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24906 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24908 * gst/vaapi/Makefile.am:
24909 * gst/vaapi/gstvaapipluginutil.c:
24910 * gst/vaapi/gstvaapivideocontext.c:
24911 * gst/vaapi/gstvaapivideocontext.h:
24912 plugins: add compat layer for GstVideoContext.
24913 Add thin compatibility layer for the deprecated GstVideoContext API.
24914 For GStreamer API >= 1.2, this involves the following two functions:
24915 - gst_vaapi_video_context_prepare(): queries if a context is already
24916 set in the pipeline ;
24917 - gst_vaapi_video_context_propagate(): propagates the newly-created
24918 context to the rest of the pipeline.
24919 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24920 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24922 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24925 * gst/vaapi/Makefile.am:
24926 * gst/vaapi/gstvaapi.c:
24927 * gst/vaapi/gstvaapidecode.c:
24928 * gst/vaapi/gstvaapipluginutil.c:
24929 * gst/vaapi/gstvaapisink.c:
24930 * gst/vaapi/gstvaapivideobuffer.c:
24931 plugins: initial port to GStreamer 1.2.
24932 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
24933 is rather minimalistic so that to test the basic functionality.
24934 Disable vaapipostproc plugin for now as further polishing is needed.
24935 Also disable GstVideoContext interface support since this API is now
24936 gone in 1.2.x. This is preparatory work for GstContext support.
24937 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24938 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24940 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24942 * tests/simple-decoder.c:
24943 tests: simple-decoder: fix for non-X11 backends.
24944 Don't try to create pixmaps if we have not requested that feature. This
24945 fixes execution for non-X11 backends, and most specifically DRM video
24948 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24950 * ext/codecparsers:
24951 codecparsers: update to gst-vaapi-branch commit b33bd32.
24952 b33bd32 jpeg: fix and optimize scan for next marker code
24954 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24956 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24957 jpeg: fix calculation of MCU count.
24958 Fix calculation of MCU count for image sizes that are not a multiple
24959 of 8 pixels in either dimension, but also for non-common sampling
24960 factors like 4:2:2 in non-interleaved mode.
24962 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24964 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24965 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24966 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24967 jpeg: add support for multiscan images.
24968 Add support for images with multiple scans per frame. The Huffman table
24969 can be updated before SOS, and thus possibly requiring multiple uploads
24970 of Huffman tables to the VA driver. So, the latter must be able to cope
24971 with multiple VA buffers of type 'huffman-table' and with the correct
24974 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24976 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24977 jpeg: improve robustness when packets are missing.
24978 Improve robustness when some expected packets where not received yet
24979 or that were not correctly decoded. For example, don't try to decode
24980 a picture if there was no valid frame headers.
24982 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24984 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24985 jpeg: minor clean-ups.
24986 Improve debugging and error messages. Rename a few variables to fit the
24987 existing naming conventions. Change some fatal asserts to non-fatal
24990 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24992 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24993 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24994 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24995 jpeg: rework and optimize parser.
24996 Split the input buffer data into decoder units that represent a JPEG
24997 segment. Handle scan decoder unit specifically so that it can include
24998 both the scan header (SOS) but also any other ECS or RSTi segment.
24999 That way, we parse the input buffer stream only once at the gst-vaapi
25000 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25001 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25002 determine segment boundaries and decode them.
25003 In practice, this is a +15 to +25% performance improvement.
25005 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25007 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25008 jpeg: handle comment segments.
25009 Fix decode_buffer() function to gracefully skip comment (COM) segments.
25010 This fixes decoding of streams generated by certain cameras, e.g. like
25011 the Logitech Pro C920.
25012 https://bugzilla.gnome.org/show_bug.cgi?id=708208
25013 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25015 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25017 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25018 jpeg: fix determination of image bounds.
25019 Look for the exact image bounds characterised by the <SOI> and <EOI>
25020 markers. Use the gst_jpeg_parse() codec parser utility function to
25021 optimize the lookup for the next marker segment.
25022 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25024 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25026 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25027 jpeg: fix calculation of offset to next marker segment.
25028 Fix calculation of the offset to the next marker segment since the
25029 correction of the codecparser part to match the API specification.
25030 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25031 of the segment minus any marker prefix.
25032 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25033 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25035 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25037 * ext/codecparsers:
25038 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25039 23c7dde jpeg: fix calculation of segment size
25041 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25044 Bump version for development.
25046 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25052 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25057 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25060 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25061 configure: fix detection of VA/JPEG decoding API.
25062 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25063 More precisely, some packages were shipping with a <va/va.h> header that
25064 did not include <va/va_dec_jpeg.h>.
25065 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25066 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25068 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25070 * gst/vaapi/gstvaapisink.c:
25071 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25072 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25073 is setup in case upstream elements allocate buffers themselves without
25074 honouring our GstVaapiSink::bufer_alloc() hook.
25075 In particular, this fixes support for OGG video streams with WebKit.
25076 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25077 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25079 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25081 * gst/vaapi/gstvaapisink.c:
25082 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25083 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25086 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25088 * gst/vaapi/gstvaapisink.c:
25089 * gst/vaapi/gstvaapisink.h:
25090 vaapisink: handle raw buffers not created from VA video buffer pool.
25091 Handle raw video buffers that were not created from a VA video buffer
25092 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25093 builds instead of the GstVaapiUploader.
25094 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25096 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25098 * gst/vaapi/gstvaapidecode.c:
25099 vaapidecode: remove extraneous size information from allowed caps.
25100 Fix _getcaps() implementation to not report codecs with size information
25101 filled in the returned caps. That's totally useless nowadays. Ideally,
25102 this is a hint to insert a video parser element, thus allowing future
25103 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25104 which is able to parse the elementary bitstreams itself.
25105 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25107 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25109 * gst/vaapi/gstvaapidecode.c:
25110 * gst/vaapi/gstvaapidecode.h:
25111 vaapidecode: submit the last frame from output adapter to decoder.
25112 If there is no frame delimiter at the end of the stream, e.g. no
25113 end-of-stream or end-of-sequence marker, and that the current frame
25114 was fully parsed correctly, then assume that last frame is complete
25115 and submit it to the decoder.
25116 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25117 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25118 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25120 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25122 * gst/vaapi/gstvaapidecode.c:
25123 * gst/vaapi/gstvaapidecode.h:
25124 vaapidecode: push all decoded frames from within the task.
25125 Make sure to push all decoded frames from the task so that the unlying
25126 VA surfaces could all be rendered from the same thread.
25128 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25130 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25131 wayland: render the raw surface if VPP failed.
25132 As a last resort, if video processing capabilities (VPP) are not available,
25133 or they did not produce anything conclusive enough, then try to fallback to
25134 the original rendering code path whereby the whole VA surface is rendered
25135 as is, no matter of video cropping or deinterlacing requests.
25136 Note: under those conditions, the visual outcome won't be correct but at
25137 least, something gets displayed instead of bailing out.
25139 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25141 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25142 wayland: add supporting for video processing.
25143 Try to use VA/VPP processing capabilities to handle video cropping and
25144 additional rendering flags that may not be directly supported by the
25145 underlying hardware when exposing a suitable Wayland buffer for the
25146 supplied VA surface. e.g. deinterlacing, different color primaries than
25149 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25151 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25152 wayland: add new frame redraw infrastructure.
25153 Update the frame redraw infrastructure with a new FrameState stucture
25154 holds all the necessary information used to display the next pending
25156 While we are at it, delay the sync operation down to when it is actually
25157 needed. That way, we keep performing additional tasks meanwhile.
25159 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25161 * docs/reference/libs/libs-sections.txt:
25162 * gst-libs/gst/vaapi/gstvaapifilter.c:
25163 * gst-libs/gst/vaapi/gstvaapifilter.h:
25164 filter: allow specification of render target regions.
25165 Add support for rendering the source surface to a particular region within
25166 the supplied target surface. The default background color is black.
25168 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25170 * gst/vaapi/gstvaapivideobuffer.c:
25171 decode: fix creation of GLX video buffers for GStreamer 0.10.
25172 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25173 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25175 This fixes support for cluttersink with GStreamer 0.10 builds.
25177 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25179 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25180 mpeg2: disable video cropping as picture_display_extension() is missing.
25181 Disable video cropping in MPEG-2 codec because it is partially implemented
25182 and actually because nobody implements it that way, and the standard spec
25183 does not specify the display process either anyway.
25184 Most notably, there are two possible use cases for sequence_display_extension()
25185 horizontal_display_size & vertical_display_size: (i) guesstimating the
25186 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25187 in conjunction with picture_display_extension() information.
25188 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25190 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25192 * gst/vaapi/gstvaapisink.c:
25193 * gst/vaapi/gstvaapisink.h:
25194 vaapisink: allow scaling to ignore aspect ratio.
25195 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25196 which allows you to say that you don't want the sink to respect aspect
25197 ratio. Add the same property to vaapisink.
25198 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25199 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25201 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25203 * gst/vaapi/gstvaapisink.c:
25204 vaapisink: fix memory leak of GstVaapiUploader instance.
25205 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25206 of a former GstVaapiUploader instance prior to forcibly creating a
25208 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25210 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25212 * gst/vaapi/gstvaapisink.c:
25213 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25214 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25215 by honouring the filter caps argument. More precisely, this fixes the
25216 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25217 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25218 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25219 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25221 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25223 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25224 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25225 This fixes the following issue:
25226 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25227 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25228 'GstVaapiDecoderMpeg4Class'
25229 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25230 'GstVaapiDecoderMpeg4Class' was here
25231 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25232 make[5]: Leaving directory
25233 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25234 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25236 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25238 * tests/test-filter.c:
25239 tests: filter: add support for deinterlacing.
25240 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25241 deinterlacing filter. However, if --deinterlace option is not set but the
25242 --deinterlace-flags option is set with "top-field-first", then the very
25243 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25245 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25247 * tests/test-filter.c:
25248 tests: filter: add support for denoising and sharpening.
25249 Add --denoise option to enable noise reduction with the level specified
25250 as the option value (float). Likewise, add --sharpen option to enable
25252 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25254 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25256 * tests/test-filter.c:
25257 tests: filter: add support for frame cropping.
25258 Add support for frame cropping through the --crop-rect|-c argument.
25259 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25260 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25262 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25264 * tests/test-filter.c:
25265 tests: filter: dump supported operations and formats.
25267 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25269 * tests/Makefile.am:
25270 * tests/test-filter.c:
25271 tests: add initial test for video processing.
25272 Add minimal test case for video processing: scaling and color format
25274 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25276 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25278 * docs/reference/libs/libs-sections.txt:
25279 * gst-libs/gst/vaapi/gstvaapifilter.c:
25280 * gst-libs/gst/vaapi/gstvaapifilter.h:
25281 * gst-libs/gst/vaapi/gstvaapiutils.c:
25282 * gst-libs/gst/vaapi/gstvaapiutils.h:
25283 * gst/vaapi/gstvaapipostproc.c:
25284 * gst/vaapi/gstvaapipostproc.h:
25285 filter: add initial support for deinterlacing.
25286 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25287 the selected field from the input surface is kept for the target surface.
25288 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25289 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25290 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25291 to libgstvaapi core library.
25292 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25294 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25296 * docs/reference/libs/libs-sections.txt:
25297 * gst-libs/gst/vaapi/gstvaapifilter.c:
25298 * gst-libs/gst/vaapi/gstvaapifilter.h:
25299 filter: add support for color balance adjustment.
25300 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25301 and contrast. The respective range for each filter shall be the same as
25302 for the VA display attributes.
25303 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25305 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25307 * docs/reference/libs/libs-sections.txt:
25308 * gst-libs/gst/vaapi/gstvaapifilter.c:
25309 * gst-libs/gst/vaapi/gstvaapifilter.h:
25310 filter: add support for sharpening.
25311 Sharpening is configured with a float value. The supported range is
25312 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25314 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25316 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25318 * docs/reference/libs/libs-sections.txt:
25319 * gst-libs/gst/vaapi/gstvaapifilter.c:
25320 * gst-libs/gst/vaapi/gstvaapifilter.h:
25321 filter: add support for denoising.
25322 Noise reduction is configured with a float value. The supported range
25323 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25325 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25327 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25329 * docs/reference/libs/libs-sections.txt:
25330 * gst-libs/gst/vaapi/gstvaapifilter.c:
25331 * gst-libs/gst/vaapi/gstvaapifilter.h:
25332 filter: add support for frame cropping.
25333 Frame cropping is defined with a GstVaapiRectangle value. The default
25334 behaviour is to treat the source surface as a whole
25336 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25338 * gst-libs/gst/vaapi/gstvaapifilter.c:
25339 filter: add helper functions.
25340 Add helper functions to ensure an operation VA buffer is allocated to
25341 the right size; that filter caps get parsed and assigned to the right
25342 operation too; and that float parameters are correctly scaled to fit
25343 the reported range from the VA driver.
25345 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25348 * docs/reference/libs/libs-docs.xml.in:
25349 * docs/reference/libs/libs-sections.txt:
25350 * gst-libs/gst/vaapi/Makefile.am:
25351 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25352 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25353 * gst-libs/gst/vaapi/gstvaapifilter.c:
25354 * gst-libs/gst/vaapi/gstvaapifilter.h:
25355 Add initial infrastructure for video processing.
25356 Add initial API for video processing: only scaling and color format
25357 conversion operations are supported.
25359 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25361 * gst-libs/gst/vaapi/video-format.c:
25362 * gst-libs/gst/vaapi/video-format.h:
25363 libs: add gst_vaapi_video_format_from_string() helper.
25364 Add gst_vaapi_video_format_from_string() helper function to convert from
25365 a video format string representation to a suitable GstVideoFormat. This
25366 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25367 builds, and a proper iteration over all GstVideoFormat string representations
25368 otherwise for earlier GStreamer 0.10.x builds.
25370 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25372 * gst-libs/gst/vaapi/video-format.c:
25373 * gst-libs/gst/vaapi/video-format.h:
25374 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25375 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25376 VA fourcc value to a suitable GstVideoFormat.
25378 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25380 * gst-libs/gst/vaapi/gstvaapivalue.c:
25381 * gst-libs/gst/vaapi/gstvaapivalue.h:
25382 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25383 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25384 structures as a standard GType. This could be useful to have them
25385 described as a GValue later on.
25387 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25389 * docs/reference/libs/libs-docs.xml.in:
25390 * docs/reference/libs/libs-sections.txt:
25391 * gst-libs/gst/vaapi/Makefile.am:
25392 * gst-libs/gst/vaapi/gstvaapicontext.h:
25393 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25394 libs: drop some public APIs.
25395 Don't expose GstVaapiContext APIs and make them totally private to
25396 libgstvaapi core library. That API would also tend to disappear in
25397 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25398 but keep symbols visible so that the various render backends could
25399 share a common display cache implementation in libgstvaapi.
25400 Try to clean-up the documentation from any stale entry too.
25402 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25406 tests: image: allow creation of images with interleaved patterns.
25407 Add image_generate_full() function to create interleaved color rectangles.
25408 If flags is zero, the whole frame is generated with a unique pattern. If
25409 flags is non-zero, then each field is handled individually.
25411 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25414 tests: image: fix conversion from RGB to YUV.
25415 Fix RGB to YUV conversion to preserve full data range.
25417 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25420 tests: image: try to upload images through vaDeriveImage() too.
25421 On some platforms, vaPutImage() would fail even if it does not involve
25422 color format conversion or scaling, whereas copying raw pixels through
25423 vaDeriveImage() could work instead.
25425 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25428 tests: image: add support for packed YUV formats.
25429 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25431 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25434 tests: image: fix generation of I420/YV12 images.
25435 U/V planes were reversed, thus producing invalid images.
25437 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25440 tests: image: fix string representation for GstVideoFormat.
25442 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25444 * docs/reference/libs/libs-sections.txt:
25445 * gst-libs/gst/vaapi/Makefile.am:
25446 * gst-libs/gst/vaapi/gstvaapiimage.c:
25447 * gst-libs/gst/vaapi/gstvaapiimage.h:
25448 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25449 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25450 * gst-libs/gst/vaapi/gstvaapisurface.c:
25451 image: clean image API up.
25452 Don't expose functions that reference a GstVaapiImageRaw, those are
25453 meant to be internal only for implementing subpictures sync. Also add
25454 a few private definitions to avoid functions calls for retrieving
25455 image size and format information.
25457 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25459 * docs/reference/libs/libs-sections.txt:
25460 * gst-libs/gst/vaapi/gstvaapiimage.c:
25461 * gst-libs/gst/vaapi/gstvaapiimage.h:
25462 image: add gst_vaapi_image_copy() helper.
25463 Add gst_vaapi_image_copy() helper function to copy images of same format
25466 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25468 * gst/vaapi/gstvaapivideoconverter_x11.c:
25469 plugins: handle video cropping in X11 pixmap converter.
25470 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25471 we could decode from the stream.
25473 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25475 * gst/vaapi/Makefile.am:
25476 * gst/vaapi/gstvaapivideobuffer.c:
25477 * gst/vaapi/gstvaapivideoconverter_glx.c:
25478 * gst/vaapi/gstvaapivideoconverter_x11.c:
25479 * gst/vaapi/gstvaapivideoconverter_x11.h:
25480 plugins: add support for "x11-pixmap" video converter type.
25481 Install a new video converter that supports X11 pixmap targets for X11
25482 backends only, or make the GLX converter creation function chain up to
25483 the X11 converter whenever requested.
25485 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25487 * tests/simple-decoder.c:
25488 tests: simple-decoder: add support for pixmap API.
25489 Add support for the new render-to-pixmap API. Avoid flickering on
25490 platforms supporting video overlay by keeping up to 2 intermediate
25493 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25495 * tests/simple-decoder.c:
25496 tests: simple-decoder: add support for video cropping.
25497 Handle video cropping information attached to a VA surface proxy.
25499 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25503 * tests/test-decode.c:
25504 tests: add support for render-to-pixmap.
25505 Add --pixmap option to test-decode so that to allow copies of VA
25506 surface to an intermediate pixmap and rendering from that pixmap.
25507 Only X11 backends are supported for now.
25509 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25512 * gst-libs/gst/vaapi/Makefile.am:
25513 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25514 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25515 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25516 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25517 x11: implement pixmap rendering with RENDER extension.
25518 Use hardware accelerated XRenderComposite() function, from the RENDER
25519 extension, to blit a pixmap to screen. Besides, this can also support
25520 cropping and scaling.
25522 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25524 * docs/reference/libs/libs-docs.xml.in:
25525 * docs/reference/libs/libs-sections.txt:
25526 * gst-libs/gst/vaapi/Makefile.am:
25527 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25528 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25529 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25530 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25531 x11: implement pixmap API.
25532 Implement the new render-to-pixmap API. The only supported pixmap format
25533 that will work is xRGB, with native byte ordering. Others might work but
25534 they were not tested.
25536 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25538 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25539 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25540 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25541 x11: update x11_get_geometry() helper function with depth output.
25542 Allow x11_get_geometry() utility function to also return the depth
25543 assigned to the X drawable.
25545 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25547 * docs/reference/libs/libs-docs.xml.in:
25548 * docs/reference/libs/libs-sections.txt:
25549 * gst-libs/gst/vaapi/Makefile.am:
25550 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25551 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25552 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25553 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25554 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25555 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25556 Add initial Pixmap API.
25557 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25558 render a native pixmap, for completeness. In general, rendering to
25559 pixmap would only be useful to certain VA drivers and use cases on
25560 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25563 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25565 * docs/reference/libs/libs-sections.txt:
25566 * gst-libs/gst/vaapi/gstvaapiimage.c:
25567 * gst-libs/gst/vaapi/gstvaapisurface.c:
25568 * gst-libs/gst/vaapi/video-format.c:
25569 * gst-libs/gst/vaapi/video-format.h:
25570 libs: add and expose gst_vaapi_video_format_to_string() helper.
25571 This is just a wrapper over gst_video_format_to_string() for older
25572 GStreamer 0.10 builds.
25574 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25576 * gst/vaapi/gstvaapipluginutil.c:
25577 plugins: fix display type comparison in gst_vaapi_create_display().
25578 After the code got moved to create the gst_vaapi_create_display() helper,
25579 this comparison was not updated to dereference the newly-created
25580 pointer, so the code was comparing the pointer itself to the type, and
25581 therefore failing to retrieve the VA display.
25582 This fixes the following error (and gets gst-vaapi decoding again):
25583 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25584 https://bugzilla.gnome.org/show_bug.cgi?id=704410
25585 Signed-off-by: Emilio López <emilio@elopez.com.ar>
25587 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25590 Bump version for development.
25592 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25594 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25595 mpeg2: don't output dummy pictures.
25596 Mark dummy pictures as output already so that we don't try to submit
25597 them to the upper layer since this is purely internal / temporary
25598 picture for helping the decoder.
25600 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25602 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25603 decoder: dispose GstVideoCodecFrame earlier.
25604 Once the picture was output, it is no longer necessary to keep an extra
25605 reference to the underlying GstVideoCodecFrame. So, we can release it
25606 earlier, and maybe subsequently release the associate surface proxy
25609 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25615 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25617 * docs/reference/libs/libs-sections.txt:
25618 * gst-libs/gst/vaapi/Makefile.am:
25619 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25620 * gst-libs/gst/vaapi/gstvaapiimage.c:
25621 * gst-libs/gst/vaapi/gstvaapisurface.c:
25622 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25623 * gst-libs/gst/vaapi/video-format.c:
25624 * gst-libs/gst/vaapi/video-format.h:
25625 * gst/vaapi/gstvaapidownload.c:
25626 * gst/vaapi/gstvaapiuploader.c:
25628 * tests/test-display.c:
25629 Fix new video format API.
25630 Fix new internal video format API, based on GstVideoFormat, to not
25631 clobber with system symbols. So replace the gst_video_format_* prefix
25632 with gst_vaapi_video_format_ prefix, even if the format type remains
25635 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25638 Bump library major version.
25639 Bump the library major version due to API/ABI changes that occurred in
25640 the imaging API. In particular, GstVaapiImageFormat type was replaced
25641 with the standard GstVideoFormat type. All dependent APIs were updated
25642 to match this change.
25644 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25649 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25651 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25652 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25653 decoder: fix memory leak when processing interlaced pictures.
25654 Fix memory leak when processing interlaced pictures and that occurs
25655 because the first field, represented as a GstVideoCodecFrame, never
25656 gets released. i.e. when the picture is completed, this is generally
25657 the case when the second field is successfully decoded, we need to
25658 propagate the GstVideoCodecFrame of the first field to the original
25659 GstVideoDecoder so that it could reclaim memory.
25660 Otherwise, we keep accumulating the first fields into GstVideoDecoder
25661 private frames list until the end-of-stream is reached. The frames
25662 are eventually released there, but too late, i.e. too much memory
25663 may have been consumed.
25664 https://bugzilla.gnome.org/show_bug.cgi?id=701257
25666 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25668 * gst/vaapi/gstvaapipluginutil.c:
25669 plugins: simlpify gst_vaapi_create_display() helper.
25670 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25671 performs the necessary validation checks for the underlying VA display
25672 prior to returning to the caller. So, if an error occurred, then NULL is
25673 really returned in that case.
25675 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25677 * gst/vaapi/gstvaapipluginutil.c:
25678 plugins: add gst_vaapi_create_display() helper.
25679 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25680 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25682 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25684 * gst/vaapi/gstvaapivideobufferpool.c:
25685 plugins: don't reallocate pool allocator for the same caps.
25686 If the video buffer pool config doesn't have new caps, then it's not
25687 necessary to reinstantiate the allocator. That could be a costly
25688 operation as we could do some extra heavy checking in there.
25690 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25692 * gst/vaapi/gstvaapivideomemory.c:
25693 plugins: fix ref counting of GstVaapiVideoMemory allocator.
25694 Fix reference counting issue whereby gst_memory_init() does not hold
25695 an extra reference to the GstAllocator. So, there could be situations
25696 where the last instance of GstVaapiVideoAllocator gets released before
25697 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25699 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25701 * gst/vaapi/gstvaapiuploader.c:
25702 vaapiupload: use implicit color conversion to NV12.
25703 Always perform conversion of sources buffers to NV12 since this is
25704 the way we tested for this capability in ensure_allowed_caps(). This
25705 also saves memory bandwidth for further rendering. However, this may
25706 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25708 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25710 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25711 pool: fix deallocation of video pools.
25712 The queue of free objects to used was deallocated with g_queue_free_full().
25713 However, this convenience function shall only be used if the original queue
25714 was allocated with g_queue_new(). This caused memory corruption, eventually
25715 leading to a crash.
25716 The correct solution is to pair the g_queue_init() with the corresponding
25717 g_queue_clear(), while iterating over all free objects to deallocate them.
25719 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
25721 * gst/vaapi/gstvaapidownload.c:
25722 vaapidownload: fix src caps format error.
25723 This fixes direct linking of vaapidownload element to xvimagesink with
25724 VA drivers supporting vaGetImage() from the native VA surface format to
25725 a different VA image format. i.e. color conversion during download.
25726 http://bugzilla.gnome.org/show_bug.cgi?id=703937
25727 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25729 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25731 * gst/vaapi/gstvaapidownload.c:
25732 vaapidownload: fix debug string for image formats.
25733 The image is now expressed as a standard GstVideoFormat, which is not
25734 a FOURCC but rather a regular enum value.
25735 This is a regression introduced in commit 09397fa.
25737 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
25739 * gst-libs/gst/vaapi/gstvaapiimage.c:
25740 image: add support for raw YUY2/UYVY image copies.
25741 Implement raw image copies for YUY2 format. Add support for UYVY format
25742 too, with the same copy function as for YUY2. Even though components
25743 ordering differs, copying line strides is essentially the same.
25744 https://bugzilla.gnome.org/show_bug.cgi?id=703939
25745 https://bugzilla.gnome.org/show_bug.cgi?id=703940
25746 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25748 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25750 * gst/vaapi/gstvaapiuploader.c:
25751 plugins: clean-up video uploader helper.
25752 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25753 were already negotiated beforehand, and they are not used from the
25754 buffer in upstream elements.
25755 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25756 represented as a GstVideoInfo.
25758 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25760 * gst/vaapi/gstvaapiuploader.c:
25761 plugins: use GstVideoInfo in video uploader helper.
25763 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25765 * gst/vaapi/gstvaapivideomemory.c:
25766 plugins: allow creation of VA surfaces with explicit pixel format.
25767 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25768 with an explicit pixel format. This allows for direct rendering to
25769 VA surface memory from a software decoder.
25771 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25773 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25774 surface: fix surface pool creation with an explicit pixel format.
25775 Fix creation of surface pool objects to honour explicit pixel format
25776 specification. If this operation is not supported, then fallback to
25777 the older interface with chroma format.
25779 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25781 * gst-libs/gst/vaapi/gstvaapisurface.c:
25782 surface: try to determine the underlying VA surface format.
25783 If a VA surface was allocated with the chroma-format interface, try to
25784 determine the underlying pixel format on gst_vaapi_surface_get_format(),
25785 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25787 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25789 * docs/reference/libs/libs-sections.txt:
25790 * gst-libs/gst/vaapi/gstvaapisurface.c:
25791 * gst-libs/gst/vaapi/gstvaapisurface.h:
25792 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25793 surface: allow creation with explicit pixel format.
25794 Make it possible to create VA surfaces with a specific pixel format.
25795 This is a new capability brought in by VA-API >= 0.34.0. If that
25796 capability is not built-in (e.g. using VA-API < 0.34.0), then
25797 gst_vaapi_surface_new_with_format() will return NULL.
25799 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25801 * docs/reference/libs/libs-sections.txt:
25802 * gst-libs/gst/vaapi/video-format.c:
25803 * gst-libs/gst/vaapi/video-format.h:
25804 surface: add helper function to get chroma type from GstVideoFormat.
25805 Add gst_video_format_get_chroma_type() helper function to determine
25806 the GstVaapiChromaType from a standard GStreamer video format. It is
25807 possible to reconstruct that from GstVideoFormatInfo but it is much
25808 simpler (and faster?) to use the local GstVideoFormatMap table.
25810 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25812 * gst-libs/gst/vaapi/gstvaapisurface.c:
25813 * gst-libs/gst/vaapi/gstvaapisurface.h:
25814 * gst-libs/gst/vaapi/gstvaapiutils.c:
25815 * gst-libs/gst/vaapi/gstvaapiutils.h:
25816 surface: add new chroma formats.
25817 Add new chroma formats available with VA-API >= 0.34.0. In particular,
25818 this includes "RGB" chroma formats, and more YUV subsampled formats.
25819 Also add a new from_GstVaapiChromaType() helper function to convert
25820 libgstvaapi chroma type to VA chroma format.
25822 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25824 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25825 pool: fix image pool to check for the video format to use.
25826 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25827 image pool object, only if the underlying VA display does support the
25828 requested VA image format.
25830 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25832 * gst-libs/gst/vaapi/gstvaapicontext.c:
25833 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25834 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25835 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25836 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25837 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25838 * gst/vaapi/gstvaapidownload.c:
25839 * gst/vaapi/gstvaapiuploader.c:
25840 * tests/Makefile.am:
25841 * tests/test-surfaces.c:
25842 Use GstVideoInfo for video pools.
25843 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25844 structures instead. Those are smaller, and allows for streamlining
25847 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25849 * gst-libs/gst/vaapi/gstvaapiimage.c:
25850 * gst-libs/gst/vaapi/video-format.c:
25851 Add more video formats.
25852 Add new video format mappings to VA image formats:
25853 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25854 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25856 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25858 * gst-libs/gst/vaapi/gstvaapiimage.c:
25859 image: fix debug message with video format.
25860 Fix debug message string with image format expressed with GstVideoFormat
25861 instead of the obsolete format that turned out to be a fourcc.
25862 This is a regression from git commit e61c5fc.
25864 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25868 * tests/test-display.c:
25869 * tests/test-textures.c:
25870 * tests/test-windows.c:
25871 tests: port to new video format API.
25873 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25875 * gst/vaapi/gstvaapidownload.c:
25876 * gst/vaapi/gstvaapiuploader.c:
25877 * gst/vaapi/gstvaapivideomemory.c:
25878 plugins: port to new video format API.
25880 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25882 * gst-libs/gst/vaapi/gstvaapiimage.c:
25883 libs: use GstVideoInfo wherever possible.
25884 In particular, use gst_video_info_from_caps() helper function in VA image
25885 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
25886 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
25888 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25890 * docs/reference/libs/libs-docs.xml.in:
25891 * docs/reference/libs/libs-sections.txt:
25892 * gst-libs/gst/vaapi/Makefile.am:
25893 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25894 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25895 libs: drop GstVaapiImageFormat helpers.
25896 Drop GstVaapiImageFormat helpers since everything was moved to the new
25897 GstVideoFormat based API. Don't bother with backwards compatibility and
25898 just bump the library major version afterwards.
25900 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25902 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25903 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25904 * gst-libs/gst/vaapi/gstvaapiimage.c:
25905 * gst-libs/gst/vaapi/gstvaapiimage.h:
25906 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25907 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25908 libs: port to new video format API.
25910 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25912 * docs/reference/libs/libs-docs.xml.in:
25913 * docs/reference/libs/libs-sections.txt:
25914 * gst-libs/gst/vaapi/Makefile.am:
25915 * gst-libs/gst/vaapi/video-format.c:
25916 * gst-libs/gst/vaapi/video-format.h:
25917 Add new video format API.
25918 Leverage GstVideoFormat utilities from core GStreamer to provide an
25919 adaptation layer to VA image formats.
25921 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25926 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25928 * gst/vaapi/gstvaapisink.c:
25929 vaapisink: fix creation of GLX texture.
25930 Fix creation of GLX texture, to not depend on the GstCaps video size that
25931 could be wrong, especially in presence of frame cropping. So, use the size
25932 from the source VA surfaces.
25933 An optimization could be to reduce the texture size to the actual visible
25934 size on screen. i.e. scale down the texture size to match the screen dimensions,
25935 while preserving the VA surface aspect ratio. However, some VA drivers don't
25938 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25940 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25941 mpeg2: add support for video cropping.
25942 If the stream has a sequence_display_extenion, then attach the
25943 display_horizontal/display_vertical dimension as the cropping
25944 rectangle width/height to the GstVaapiPicture.
25945 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25947 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25949 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25950 vc1: add support for video cropping.
25951 If the Advanced profile has display_extension fields, then set the display
25952 width/height dimension as cropping rectangle to the GstVaapiPicture.
25953 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25955 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25957 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25958 h264: add support for video cropping.
25959 If the encoded stream has the frame_cropping_flag set, then associate
25960 the cropping rectangle to GstVaapiPicture.
25961 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25963 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25967 * tests/test-decode.c:
25968 * tests/test-subpicture.c:
25969 tests: add basic support for video cropping.
25970 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
25971 instead of a plain GstVaapiSurface. This means that we can now retrieve
25972 the frame cropping rectangle from the surface proxy, along with additional
25973 information if ever needed.
25975 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25977 * gst/vaapi/gstvaapidecode.c:
25978 * gst/vaapi/gstvaapisink.c:
25979 * gst/vaapi/gstvaapivideometa.c:
25980 plugins: add support for video cropping.
25981 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
25982 specific meta information to hold video cropping details. Make the sink
25983 support video cropping in X11 and GLX modes.
25985 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25987 * gst/vaapi/gstvaapivideometa.c:
25988 * gst/vaapi/gstvaapivideometa.h:
25989 plugins: add helper functions to set the render rectangle.
25990 Some video clips may have a clipping region that needs to propogate to
25991 the renderer. These helper functions make it possible to attach that
25992 clipping region, as a GstVaapiRectangle, the the video meta associated
25994 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25995 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25997 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25999 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26000 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26001 surfaceproxy: allow for NULL cropping rectangle.
26002 Make it possible associate an empty cropping rectangle to the surface
26003 proxy, thus resetting any cropping rectangle that was previously set.
26004 This allows for returning plain NULL when no cropping rectangle was
26005 initially set up to the surface proxy, or if it was reset to defaults.
26007 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26009 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26010 surfaceproxy: clean-up helper macros.
26011 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26012 proxy macro argument to a GstVaapiSurfaceProxy pointer.
26014 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26016 * gst-libs/gst/vaapi/gstvaapisurface.c:
26017 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26018 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26019 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26020 surface: add simple surface info accessors as helper macros.
26021 Add helper macros to retrieve the VA surface information like size
26022 (width, height) or chroma type. This is a micro-optimization to avoid
26023 useless function calls and NULL pointer re-checks in internal routines.
26025 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26027 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26028 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26029 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26030 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26031 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26032 decoder: add support for video cropping.
26033 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26034 cropping information from raw bitstreams to each picture being decoded.
26035 Also add helper function to surface proxy to propagate that information
26036 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26037 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26038 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26040 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26042 * ext/codecparsers:
26043 codecparsers: update to gst-vaapi-branch commit f90de0a.
26044 f90de0a h264: fix calculation of the frame cropping rectangle
26045 535515c h264: parse the cropping rectangle separately
26047 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26049 * ext/codecparsers:
26050 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26051 0f68a71 mpeg2: fix video packet header size checks
26053 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26055 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26056 mpeg2: reset quantization matrices on new sequence headers.
26057 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26058 shall be reset to their default values when a Sequence_Header() is
26060 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26062 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26065 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26066 mpeg2: cope with latest codecparser changes.
26067 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26068 used in individual header parsers. Also use the new slice parsing API.
26070 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26072 * ext/codecparsers:
26073 codecparsers: update to gst-vaapi-branch commit dddd182.
26074 dddd182 mpeg2: add slice header parsing API
26075 94e6228 mpeg2: add sequence scalable extension parsing API
26076 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26077 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26079 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26081 * gst/vaapi/gstvaapisink.c:
26082 vaapisink: expose the raw video formats in static caps template.
26083 Expose all raw video formats in the static caps template since the
26084 vaapisink is supporting raw data. We will get the exact set of formats
26085 supported by the driver dynamically through the _get_caps() routine.
26086 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26087 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26088 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26090 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26092 * gst/vaapi/gstvaapisink.c:
26093 * gst/vaapi/gstvaapisink.h:
26094 vaapisink: add "use-glx" property for OpenGL rendering.
26095 Now that VA/GLX capable buffers are generated by default on X11, thus
26096 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26097 rendering since it is faster.
26098 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26099 enabling "fancy" effects to play with. This has no real value. So,
26100 disable OpenGL rendering by default.
26102 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26104 * gst/vaapi/gstvaapipluginutil.c:
26105 plugins: try to allocate a GLX display first over an X11 one.
26106 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26107 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26109 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26111 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26114 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26115 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26116 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26117 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26119 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26121 * gst-libs/gst/vaapi/gstvaapiimage.c:
26122 image: fix wrong check for rect bounds in copy_image().
26124 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26127 Bump version for development.
26129 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26135 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26140 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26143 * gst-libs/gst/codecparsers/Makefile.am:
26144 configure: always build the MPEG-4 parser.
26145 Always build the MPEG-4 parser for now as there are also core fixes
26146 included in the parser that cannot be tested for with API checks.
26148 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26151 configure: add --enable-builtin-codecparsers [default="yes"] option.
26152 Add flag to have all codecparsers built-in, thus ensuring that the
26153 resulting binaries have all the necessary bug fixes and this is what
26154 the QA has been testing anyway.
26155 Of course, for a completely up-to-date Linux distribution, you could
26156 also opt for --disable-builtin-codecparsers and use the system ones.
26157 Though, some core fixes could be missing, and those cannot be tested
26158 for with API checks.
26160 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26162 * ext/codecparsers:
26163 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26164 843ce3e jpeg: fix default Huffman tables generation.
26165 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26166 21099dc mpeg2: actually store video bitrate values
26167 dd02087 mpeg2: fix picture packet extension size check
26168 25948e9 mpeg2: increase min size for picture coding ext
26169 f1f5a40 ensure the debug category is properly initialized
26171 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26173 * debian.upstream/Makefile.am:
26174 debian: fix list of generated files for .deb packaging.
26176 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26179 * debian.upstream/Makefile.am:
26180 * debian.upstream/control.in:
26181 debian: fix libgstvaapi -dev package name.
26182 Fix libgstvaapi -dev package name so that to allow installation of both
26183 GStreamer 0.10 and 1.0.x based packages.
26185 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26190 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26192 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26193 wayland: fix memory leak of display resources.
26195 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26197 * gst/vaapi/gstvaapisink.c:
26198 vaapisink: fix build without VA/GLX support.
26200 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26202 * gst/vaapi/gstvaapivideomemory.c:
26203 * gst/vaapi/gstvaapivideomemory.h:
26204 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26205 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26206 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26207 caller. This is the only sensible enough thing to do in this mode as
26208 the underlying surface pixels need to be extracted through an explicit
26209 call to the gst_video_frame_map() function instead.
26210 A possible use-case of this is to implement a "handoff" signal handler
26211 to fakesink or identity element for further processing.
26213 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26215 * gst/vaapi/gstvaapivideomemory.c:
26216 plugins: silence check for direct-rendering mode in video memory.
26217 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26218 mode support, and not trigger fatal-criticals if either test surface or
26219 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26220 supported by most hardware vs. I420 supported by most software decoders.
26222 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26224 * gst/vaapi/gstvaapivideomemory.c:
26225 plugins: improve video memory flags safety checks.
26226 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26227 support for now. Likewise, on unmap, make sure that the VA image is
26228 unmapped for either read or write, while still committing it to the
26229 VA surface if write was requested.
26231 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26233 * gst-libs/gst/vaapi/gstvaapisurface.c:
26234 surface: fix memory leak through unreleased parent context.
26235 Break the circular references between GstVaapiContext and its children
26236 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26237 context, which holds a reference to its VA surfaces, then none of those
26239 How does this impact support for subpictures?
26240 The only situation when the parent context needs to disappear is when
26241 it is replaced with another one because of a resolution change in the
26242 video stream for instance, or a normal destroy. In this case, it does
26243 not really matter to apply subpictures to the peer surfaces since they
26244 are either gone, or those that are left in the pipe can probably bear
26245 a reinstantiation of the subpictures for it.
26246 So, parent_context is set to NULL when the parent context is destroyed,
26247 other VA surfaces can still get subpictures attached to them, individually
26248 not as a whole. i.e. subpictures for surface S1 will be created from
26249 active composition buffers and associated to S1, subpictures for S2 will
26250 be created from the next active composition buffers, etc. We don't try
26251 to cache the subpictures in those cases (pending surfaces until EOS
26252 is reached, or pending surfaces until new surfaces matching new VA context
26253 get to be used instead).
26255 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26257 * gst/vaapi/gstvaapisink.c:
26258 vaapisink: fix one-time initialization when display property is set.
26259 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26260 tasks even if the `display' property was explicitly set.
26262 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26264 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26265 window: fix GLX window initialization.
26266 Make sure to create the GLX context once the window object has completed
26267 its creation. Since gl_resize() relies on the newly created window size,
26268 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26269 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26270 window object is created in the gst_vaapi_window_glx_new*() functions.
26272 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26274 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26275 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26276 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26277 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26278 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26279 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26280 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26281 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26282 * gst-libs/gst/vaapi/gstvaapitexture.c:
26283 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26284 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26285 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26286 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26287 display: validate display types.
26289 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26291 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26292 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26293 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26294 display: drop internal NAME_PREFIX, store the real display name.
26295 Always store a valid display name/device path, instead of adding a
26296 particular prefix. i.e. make it simply a strdup(), or "" if it was
26299 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26301 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26302 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26303 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26304 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26305 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26306 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26307 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26308 display: make it possible to lookup the display cache by type.
26309 Make it possible to add extra an extra filter to most of display cache
26310 lookup functions so that the GstVaapiDisplay instance can really match
26311 a compatible and existing display by type, instead of relying on extra
26312 string tags (e.g. "X11:" prefix, etc.).
26314 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26316 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26317 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26318 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26319 display: cope with new display cache API.
26321 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26323 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26324 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26325 display: rework display cache API.
26326 Simplify display cache API, while making it more flexible. We can now create
26327 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26329 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26331 * tests/test-display.c:
26332 tests: improve check for display cache.
26333 Improve check for display cache infrastructure. In particular, for X11 and
26334 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26335 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26336 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26337 already exists will have to generate different VA displays.
26339 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26341 * gst/vaapi/gstvaapiuploader.c:
26342 uploader: fix memory leak in GStreamer 0.10 builds.
26343 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26344 but it exhibited a memory leak because the surface generated for the
26345 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26346 possible to release that surface back to the parent pool when the meta
26347 gets released, and the memory consumption kept growing.
26348 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26350 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26352 * gst/vaapi/gstvaapivideometa.c:
26353 plugins: fix gst_vaapi_video_meta_new_from_pool().
26354 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26355 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26356 was hereby totally broken. Fixed this regression by using the newly
26357 provided gst_vaapi_video_pool_get_object_type() function.
26359 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26361 * gst/vaapi/gstvaapiuploader.c:
26362 * gst/vaapi/gstvaapivideomemory.c:
26363 * gst/vaapi/gstvaapivideometa.c:
26364 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26366 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26369 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26371 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26373 * docs/reference/libs/libs-sections.txt:
26374 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26375 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26376 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26377 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26378 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26379 libs: add query for GstVaapiVideoPool object types.
26380 Add API to identify the underlying GstVaapiVideoPool object type.
26382 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26384 * docs/reference/libs/libs-sections.txt:
26385 * gst-libs/gst/vaapi/gstvaapicontext.c:
26386 * gst-libs/gst/vaapi/gstvaapicontext.h:
26387 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26388 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26389 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26390 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26391 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26392 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26393 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26394 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26395 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26396 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26397 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26398 * gst-libs/gst/vaapi/gstvaapiimage.c:
26399 * gst-libs/gst/vaapi/gstvaapiimage.h:
26400 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26401 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26402 * gst-libs/gst/vaapi/gstvaapiobject.c:
26403 * gst-libs/gst/vaapi/gstvaapiobject.h:
26404 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26405 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26406 * gst-libs/gst/vaapi/gstvaapisurface.c:
26407 * gst-libs/gst/vaapi/gstvaapisurface.h:
26408 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26409 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26410 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26411 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26412 * gst-libs/gst/vaapi/gstvaapitexture.c:
26413 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26414 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26415 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26416 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26417 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26418 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26419 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26420 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26421 libs: drop GST_VAAPI_IS_xxx() helper macros.
26422 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26423 deriving from GObject and so those were only checking for whether the
26424 argument was NULL or not. This is now irrelevant, and even confusing
26425 to some extent, because we no longer have type checking.
26426 Note: this incurs more type checking (review) but the libgstvaapi is
26427 rather small, so this is manageable.
26429 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26432 Bump library major version.
26433 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26434 This is a fundamental change that requires a new SONAME. More changes are
26435 underway to streamline the core libraries.
26436 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26437 On one particular test (sintel HD trailer), the total number of executed
26438 instruction was reduced by 8%.
26440 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26442 * docs/reference/libs/Makefile.am:
26443 * docs/reference/libs/libs-docs.xml.in:
26444 * docs/reference/libs/libs-sections.txt:
26445 * docs/reference/libs/libs.core.types:
26446 * docs/reference/libs/libs.glx.types:
26447 * docs/reference/libs/libs.x11.types:
26448 docs: cope with removed APIs.
26449 Some APIs are dead because they are no longer based on GObject.
26451 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26453 * gst/vaapi/gstvaapidecode.c:
26454 * gst/vaapi/gstvaapidownload.c:
26455 * gst/vaapi/gstvaapipluginutil.c:
26456 * gst/vaapi/gstvaapipostproc.c:
26457 * gst/vaapi/gstvaapisink.c:
26458 * gst/vaapi/gstvaapiupload.c:
26459 * gst/vaapi/gstvaapiuploader.c:
26460 * gst/vaapi/gstvaapivideobufferpool.c:
26461 * gst/vaapi/gstvaapivideoconverter_glx.c:
26462 * gst/vaapi/gstvaapivideomemory.c:
26463 * gst/vaapi/gstvaapivideometa.c:
26464 plugins: cope with new GstVaapiMiniObject objects.
26466 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26471 * tests/simple-decoder.c:
26472 * tests/test-decode.c:
26473 * tests/test-display.c:
26474 * tests/test-subpicture.c:
26475 * tests/test-surfaces.c:
26476 * tests/test-textures.c:
26477 * tests/test-windows.c:
26478 tests: cope with new GstVaapiMiniObject objects.
26480 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26482 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26483 display: fix set_synchronous() to lock display.
26485 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26487 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26488 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26489 videopool: simplify creation of video objects pool.
26491 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26493 * gst-libs/gst/vaapi/gstvaapiobject.c:
26494 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26495 * gst-libs/gst/vaapi/gstvaapitypes.h:
26496 libs: simplify GstVaapiID definitions.
26497 Make GstVaapiID a gsize instead of guessing an underlying integer large
26498 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26499 this is plain zero and that it is no longer passed as varargs.
26501 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26503 * gst-libs/gst/vaapi/Makefile.am:
26504 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26505 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26506 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26507 * gst-libs/gst/vaapi/gstvaapivalue.c:
26508 * gst-libs/gst/vaapi/gstvaapivalue.h:
26509 libs: drop obsolete function helpers and objects.
26510 Drop obsolete GstVaapiID related function helpers for passing them as
26513 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26515 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26516 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26517 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26518 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26519 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26520 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26521 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26522 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26523 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26524 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26525 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26526 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26527 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26528 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26529 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26530 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26531 * gst-libs/gst/vaapi/gstvaapiobject.c:
26532 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26533 libs: use GstVaapiMiniObject for display objects.
26535 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26537 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26538 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26539 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26540 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26541 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26542 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26543 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26544 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26545 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26546 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26547 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26548 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26549 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26550 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26551 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26552 libs: use GstVaapiMiniObject for video decoders.
26553 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26554 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26555 helper function to let the user add a callback to a function triggered
26556 whenever the codec state (e.g. caps) changes.
26558 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26560 * docs/reference/libs/libs-sections.txt:
26561 * gst-libs/gst/vaapi/Makefile.am:
26562 * gst-libs/gst/vaapi/gstvaapicontext.c:
26563 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26564 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26565 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26566 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26567 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26568 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26569 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26570 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26571 libs: use GstVaapiMiniObject for video object pools.
26572 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26573 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26574 no longer used for a long time. Make object allocators static, i.e.
26575 local to the shared library.
26577 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26579 * gst-libs/gst/vaapi/gstvaapitexture.c:
26580 * gst-libs/gst/vaapi/gstvaapitexture.h:
26581 libs: use GstVaapiObject for texture objects.
26583 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26585 * gst-libs/gst/vaapi/Makefile.am:
26586 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26587 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26588 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26589 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26590 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26591 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26592 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26593 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26594 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26595 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26596 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26597 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26598 libs: use GstVaapiObject for window objects.
26600 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26602 * gst-libs/gst/vaapi/gstvaapicontext.c:
26603 * gst-libs/gst/vaapi/gstvaapicontext.h:
26604 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26605 * gst-libs/gst/vaapi/gstvaapiimage.c:
26606 * gst-libs/gst/vaapi/gstvaapiimage.h:
26607 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26608 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26609 * gst-libs/gst/vaapi/gstvaapisurface.c:
26610 * gst-libs/gst/vaapi/gstvaapisurface.h:
26611 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26612 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26613 libs: use GstVaapiObject for VA objects.
26615 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26617 * gst-libs/gst/vaapi/Makefile.am:
26618 * gst-libs/gst/vaapi/gstvaapiobject.c:
26619 * gst-libs/gst/vaapi/gstvaapiobject.h:
26620 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26621 Port GstVaapiObject to GstVaapiMiniObject.
26623 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26625 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26626 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26627 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26628 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26629 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26630 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26631 libs: refine GstVaapiMiniObject.
26632 Drop support for user-defined data since this capability was not used
26633 so far and GstVaapiMiniObject represents the smallest reference counted
26634 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26635 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26636 is also possible to further simplify the layout of the object. i.e. merge
26637 GstVaapiMiniObjectBase into GstVaapiMiniObject.
26639 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26641 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26642 decoder: update picture size from the bitstream.
26643 Propagate the picture size from the bitstream to the GstVaapiDecoder,
26644 and subsequent user who installed a signal on notify::caps. This fixes
26645 decoding of TS streams when the demuxer failed to extract the required
26648 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26650 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26651 decoder: fix raw decoding mode.
26652 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26653 surface proxy to the caller.
26655 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26657 * docs/reference/libs/libs-sections.txt:
26658 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26659 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26660 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26661 * gst/vaapi/gstvaapidecode.c:
26662 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26663 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26664 wait for a frame to be decoded, until the specified timeout in microseconds,
26665 prior to returning to the caller.
26666 This is a fix to performance regression from 851cc0, whereby the vaapidecode
26667 loop executed on the srcpad task was called to often, thus starving all CPU
26670 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26673 Bump version for development.
26675 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26681 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26686 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26688 * gst/vaapi/gstvaapidecode.c:
26689 vaapidecode: rework heuristics to detect decode timeout.
26690 Rework heuristics to detect when downstream element ran into errors,
26691 and thus failing to release any VA surface in due time for the current
26692 frame to get decoded. In particular, recalibrate the render time base
26693 when the first frame gets submitted downstream, or when there is no
26694 timestamp that could be inferred.
26696 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26698 * gst-libs/gst/vaapi/gstcompat.h:
26699 * gst/vaapi/gstvaapidecode.c:
26700 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26701 Rework GstVideoDecoder::handle_frame() to decode the current frame,
26702 while possibly waiting for a free surface, and separately submit all
26703 decoded frames from a task. This makes it possible to pop and render
26704 decoded frames as soon as possible.
26706 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26708 * gst/vaapi/gstvaapidecode.c:
26709 * gst/vaapi/gstvaapidownload.c:
26710 * gst/vaapi/gstvaapisink.c:
26711 * gst/vaapi/gstvaapiupload.c:
26712 plugins: use gst_object_unref() wherever applicable.
26713 Use gst_object_unref() wherever applicable, e.g. objects derived from
26714 GstElement, GstVideoPool, etc.
26716 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26718 * docs/reference/plugins/plugins-docs.xml.in:
26719 * docs/reference/plugins/plugins-sections.txt:
26720 * docs/reference/plugins/plugins.types:
26721 docs: drop obsolete plug-ins.
26722 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26723 i.e. vaapiupload and vaapidownload are no longer the recommended
26726 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26728 * debian.upstream/rules:
26729 debian: fix build of GStreamer 0.10 packages.
26730 Fix build of Debian packages to scan the actual GStreamer API version
26731 from the generated changelog file.
26733 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26735 * gst/vaapi/gstvaapipostproc.c:
26736 vaapipostproc: minor clean-ups.
26737 Use g_clear_object() wherever appropriate and remove dead-code.
26739 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26741 * gst/vaapi/gstvaapipostproc.c:
26742 vaapipostproc: fix reference counting buf for passthrough mode.
26743 Fix reference counting bug for passthrough mode, whereby the input buffer
26744 was propagated as is downstream through gst_pad_push() without increasing
26745 its reference count before. The was a problem when gst_pad_push() returns
26746 an error and we further decrease the reference count of the input buffer.
26748 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26750 * gst-libs/gst/vaapi/gstcompat.h:
26751 * gst/vaapi/Makefile.am:
26752 * gst/vaapi/gstvaapi.c:
26753 * gst/vaapi/gstvaapidecode.c:
26754 * gst/vaapi/gstvaapipluginutil.h:
26755 * gst/vaapi/gstvaapipostproc.c:
26756 vaapipostproc: port to GStreamer 1.0.
26757 Add support for interlaced streams with GStreamer 1.0 too. Basically,
26758 this enables vaapipostproc, though it is not auto-plugged yet. We also
26759 make sure to reply to CAPS queries, and happily handle CAPS events.
26761 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26763 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26764 decoder: fix GstVideoCodecFrame flags for interlaced contents.
26765 Fix support for interlaced contents with GStreamer 0.10. In particular,
26766 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26768 This is a regression from commit 87e5717.
26770 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26772 * gst-libs/gst/vaapi/Makefile.am:
26773 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26774 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26775 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26776 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26777 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26778 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26779 structure was only useful to parsing and a proper GstvaapiDecoderFrame
26780 instance will be created instead.
26782 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26784 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26785 decoder: export presentation timestamp for raw decoding mode.
26786 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26787 held any information about the expected presentation timestamp, frame
26788 duration or additional flags like interlaced or top-field-first.
26790 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26792 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26793 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26794 decoder: use new GstVaapiSurfaceProxy utility functions.
26795 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26796 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26797 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26798 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26799 than gst_vaapi_picture_output().
26801 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26803 * docs/reference/libs/libs-sections.txt:
26804 * gst-libs/gst/vaapi/Makefile.am:
26805 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26806 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26807 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26808 surfaceproxy: add more attributes for raw decoding modes.
26809 Add more attributes for raw decoding modes, i.e. directly through the
26810 libgstvaapi helper library. In particular, add presentation timestamp,
26811 duration and a couple of flags (interlaced, TFF, RFF, one-field).
26813 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26815 * docs/reference/libs/libs-sections.txt:
26816 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26817 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26818 * gst/vaapi/gstvaapidecode.c:
26819 * tests/simple-decoder.c:
26820 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26821 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26822 to call some user-provided function when the surface proxy is released.
26824 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26827 * gst-libs/gst/vaapi/Makefile.am:
26828 build: link libgstvaapi-glx-1.0.so against libdl.
26829 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26830 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26832 https://bugzilla.gnome.org/show_bug.cgi?id=698046
26833 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26835 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26837 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26838 decoder: fix gst_vaapi_decoder_get_codec_state().
26839 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26840 supposed to make GstVaapiDecoder own the return GstVideoCodecState
26841 object. Only comment was updated, not the actual code.
26843 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26845 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26846 * gst/vaapi/gstvaapidecode.c:
26847 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26848 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26849 i.e. make the GstVaapiDecoder object own the return state so that callers
26850 that want an extra reference to it would just gst_video_codec_state_ref()
26851 it before usage. This aligns the behaviour with what we had before with
26852 gst_vaapi_decoder_get_caps().
26853 This is an ABI incompatible change, library major version was bumped from
26854 previous release (0.5.2).
26856 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26858 * gst/vaapi/gstvaapivideobufferpool.h:
26859 * gst/vaapi/gstvaapivideoconverter_glx.h:
26860 plugins: mark a few more functions as internal.
26861 Mark the following functions are internal, i.e. private to the vaapi plug-in:
26862 - gst_vaapi_video_buffer_pool_get_type()
26863 - gst_vaapi_video_converter_glx_get_type()
26864 - gst_vaapi_video_converter_glx_new()
26866 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26868 * gst/vaapi/gstvaapivideobuffer.c:
26869 plugins: implement GstSurfaceMeta API.
26870 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
26871 an unstable/deprecated API, this makes it possible to support Clutter
26872 sink with minimal changes. Tested against clutter-gst 1.9.92.
26874 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26876 * gst/vaapi/gstvaapisink.c:
26877 vaapisink: optimize GstVideoOverlayInterface::expose().
26878 When render-mode is "overlay", then it is not really useful to peek into
26879 the GstBaseSink::last_buffer, since we have our own video_buffer already
26880 recorded and maintained into GstVaapiSink.
26882 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26884 * gst/vaapi/gstvaapisink.c:
26885 vaapisink: fix memory leak of GstSample objects.
26886 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
26887 This also fixes extra unreferencing of the underlying GstBuffer in the common
26888 path afterwards (for both 0.10 or 1.0).
26890 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26892 * gst-libs/gst/vaapi/gstcompat.h:
26893 * gst/vaapi/gstvaapi.c:
26894 plugins: fix description for gst-inspect.
26895 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
26896 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
26897 incorrectly uses #name for creating the plug-in name, instead of using macro
26898 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
26900 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26904 Update build requirements for GStreamer 1.0.x support. Add section for
26905 ways to report bugs.
26907 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26912 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26914 * gst-libs/gst/vaapi/Makefile.am:
26915 * gst/vaapi/Makefile.am:
26916 Fix make dist to include all source files, in any case.
26917 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
26918 sure to include all source files in either case while generating source
26921 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26924 Bump library major version.
26925 Bump library major version, while preserving a major version of 0 for
26926 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
26927 0.10 based librarieS.
26929 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26931 * gst/vaapi/gstvaapivideomemory.c:
26932 * gst/vaapi/gstvaapivideomemory.h:
26933 plugins: implement direct-rendering mode for raw YUV buffer uploads.
26934 Allow direct-rendering (writes) into target VA surfaces.
26936 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26938 * gst/vaapi/gstvaapivideobufferpool.c:
26939 * gst/vaapi/gstvaapivideomemory.c:
26940 * gst/vaapi/gstvaapivideomemory.h:
26941 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
26942 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
26943 the last component is unmapped. Downloads are not supported yet. The aim
26944 was to first support SW decoding + HW accelerated rendering (vaapisink).
26947 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26949 * gst/vaapi/gstvaapidecode.c:
26950 vaapidecode: submit all decoded frames before decoding a new one.
26951 Make sure to purge all pending frames that were already decoded prior
26952 to decoding a new one. This helps release VA surfaces as early as
26955 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26957 * gst/vaapi/gstvaapidecode.c:
26958 vaapidecode: reply to CAPS queries.
26959 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
26960 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
26961 This fixes fallback to SW decoding if no HW decoder is available.
26963 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26965 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26966 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26967 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26968 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26969 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26970 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26971 decoder: fix unpaired GstBuffer map/unmaps.
26972 This possibly fixes a few memory leaks along the way.
26974 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26977 * gst-libs/gst/vaapi/gstcompat.h:
26978 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26979 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26980 * gst/vaapi/Makefile.am:
26981 * gst/vaapi/gstvaapi.c:
26982 * gst/vaapi/gstvaapidecode.c:
26983 * gst/vaapi/gstvaapisink.c:
26984 * gst/vaapi/gstvaapisink.h:
26985 * gst/vaapi/gstvaapiuploader.c:
26987 Allow build against either GStreamer API (0.10 or 1.0).
26988 Introduce a new configure option --with-gstreamer-api that determines
26989 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
26990 Also integrate more compatibility glue into gstcompat.h and plugins.
26992 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26994 * gst/vaapi/gstvaapidecode.c:
26995 * gst/vaapi/gstvaapisink.c:
26996 * gst/vaapi/gstvaapisink.h:
26997 plugins: use new video buffer pools.
26998 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
26999 GstBaseSink::propose_allocation() to expose that pool to upstream
27000 elements; and also implement GstVideoDecoder::decide_allocation() to
27001 actually use that pool (from downstream), if any, or create one.
27002 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27004 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27006 * gst/vaapi/Makefile.am:
27007 * gst/vaapi/gstvaapivideobufferpool.c:
27008 * gst/vaapi/gstvaapivideobufferpool.h:
27009 * gst/vaapi/gstvaapivideomemory.c:
27010 * gst/vaapi/gstvaapivideomemory.h:
27011 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27012 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27013 object currently holds a reference to GstVaapiVideoMeta.
27014 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27016 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27018 * gst/vaapi/gstvaapivideometa.c:
27019 * gst/vaapi/gstvaapivideometa.h:
27020 plugins: allow copies of GstVaapiVideoMeta objects.
27021 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27022 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27023 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27026 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27028 * gst/vaapi/gstvaapivideometa.c:
27029 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27030 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27031 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27032 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27035 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27037 * gst/vaapi/Makefile.am:
27038 * gst/vaapi/gstvaapi.c:
27039 * gst/vaapi/gstvaapidecode.c:
27040 * gst/vaapi/gstvaapidownload.c:
27041 * gst/vaapi/gstvaapipluginutil.c:
27042 * gst/vaapi/gstvaapipostproc.c:
27043 * gst/vaapi/gstvaapisink.c:
27044 * gst/vaapi/gstvaapiupload.c:
27045 * gst/vaapi/gstvaapiuploader.c:
27046 * gst/vaapi/gstvaapivideobuffer.c:
27047 * gst/vaapi/gstvaapivideoconverter_glx.c:
27048 * gst/vaapi/gstvaapivideometa.c:
27049 * gst/vaapi/gstvaapivideometa.h:
27050 plugins: initial port to GStreamer 1.0.
27051 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27052 is rather minimalistic so that to test the basic functionality.
27053 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27054 needs polishing wrt. to GStreamer 1.x functionality and the former are
27055 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27056 which are yet to be implemented.
27057 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27059 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27061 * gst-libs/gst/vaapi/gstcompat.h:
27064 * tests/simple-decoder.c:
27065 * tests/test-subpicture.c:
27066 tests: add support for GStreamer 1.0.
27068 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27071 * gst-libs/gst/vaapi/gstcompat.h:
27072 * gst-libs/gst/vaapi/gstvaapicontext.c:
27073 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27074 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27075 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27076 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27077 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27078 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27079 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27080 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27081 * gst-libs/gst/vaapi/gstvaapiimage.c:
27082 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27083 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27084 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27085 * gst-libs/gst/vaapi/gstvaapisurface.h:
27086 Add initial support for GStreamer 1.0.
27087 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27088 core decoding library. The changes are kept rather minimal here so that
27089 the library retains as little dependency as possible on core GStreamer
27091 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27093 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27095 * gst/vaapi/gstvaapisink.c:
27096 vaapisink: improve check for raw YUV format mode.
27097 Improve check for raw YUV format modes by avoiding checks against strings
27098 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27099 GstBaseSink::set_caps() is called first and if VA surface format mode is
27100 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27101 called before set_caps(), then we just make a full check. This one is
27102 pretty rare though, e.g. it usually happens once for custom pipelines.
27104 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27106 * gst/vaapi/gstvaapipluginutil.c:
27107 plugins: don't fail if there is no overlay composition to apply.
27108 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27109 was found. i.e. return success (TRUE). This was harmless though extra
27110 debug messages are not nice.
27111 This is a regression introduced by commit 95b8659.
27113 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27115 * gst/vaapi/gstvaapidecode.c:
27116 * gst/vaapi/gstvaapidecode.h:
27117 vaapidecode: expose the exact set of supported HW decoders.
27118 Don't return static caps that don't mean anything for the underlying codecs
27119 that are actually supported for decoding. i.e. always allocate a VA display
27120 and retrieve the exact set of HW decoders available. That VA display may be
27121 re-used later on during negotiation through GstVideoContext "prepare-context".
27122 This fixes fallback to SW decoding if no HW decoder is available.
27124 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27126 * docs/reference/libs/libs-sections.txt:
27127 * gst-libs/gst/vaapi/gstvaapicontext.c:
27128 * gst-libs/gst/vaapi/gstvaapicontext.h:
27129 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27130 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27131 decoder: drop obsolete functions.
27132 Drop the following functions that are now obsolete:
27133 - gst_vaapi_context_get_surface()
27134 - gst_vaapi_context_put_surface()
27135 - gst_vaapi_context_find_surface_by_id()
27136 - gst_vaapi_surface_proxy_new()
27137 - gst_vaapi_surface_proxy_get_context()
27138 - gst_vaapi_surface_proxy_set_context()
27139 - gst_vaapi_surface_proxy_set_surface()
27140 This is an API change.
27142 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27144 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27145 decoder: delegate surface size check to VA context reset.
27146 Now that the surface pool is reference counted in the surface proxy wrapper,
27147 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27148 Besides, this check is already performed in gst_vaapi_context_reset_full().
27150 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27152 * docs/reference/libs/libs-sections.txt:
27153 * gst-libs/gst/vaapi/gstvaapicontext.c:
27154 * gst-libs/gst/vaapi/gstvaapicontext.h:
27155 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27156 * gst-libs/gst/vaapi/gstvaapisurface.h:
27157 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27158 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27159 decoder: simplify acquisition/release of spare surface.
27160 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27161 proxy from the context surface pool. This change also makes sure to retain
27162 the parent surface pool in the proxy.
27163 Besides, it was also totally useless to attach/detach parent context to
27164 VA surface each time we acquire/release it. Since the whole context owns
27165 all associated VA surfaces, we can mark this as such only once and for all.
27167 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27170 Bump version for development.
27172 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27178 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27183 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27185 * gst/vaapi/gstvaapipluginutil.c:
27186 * gst/vaapi/gstvaapisink.c:
27187 plugins: fix usage of gst_vaapi_reply_to_query().
27188 Make gst_vaapi_reply_to_query() first check whether the query argument
27189 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27190 Then, make sure vaapisink propagates the query to the parent class if
27191 it is not a video-context query.
27193 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27195 * gst/vaapi/gstvaapivideobuffer.c:
27196 * gst/vaapi/gstvaapivideobuffer.h:
27197 plugins: streamline video buffers.
27198 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27199 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27200 gst_vaapi_video_buffer_get_meta().
27202 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27204 * docs/reference/libs/libs-sections.txt:
27205 * gst-libs/gst/vaapi/Makefile.am:
27206 * gst/vaapi/Makefile.am:
27207 * gst/vaapi/gstvaapidecode.c:
27208 * gst/vaapi/gstvaapidownload.c:
27209 * gst/vaapi/gstvaapipostproc.c:
27210 * gst/vaapi/gstvaapisink.c:
27211 * gst/vaapi/gstvaapiupload.c:
27212 * gst/vaapi/gstvaapiuploader.c:
27213 * gst/vaapi/gstvaapivideobuffer.h:
27214 * gst/vaapi/gstvaapivideoconverter_glx.c:
27215 * gst/vaapi/gstvaapivideometa.c:
27216 * gst/vaapi/gstvaapivideometa.h:
27217 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27218 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27219 actual plugin elements. That's only useful there. Also inline reference
27220 counting code from GstVaapiMiniObject.
27222 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27224 * gst/vaapi/Makefile.am:
27225 * gst/vaapi/gstvaapidecode.c:
27226 * gst/vaapi/gstvaapidownload.c:
27227 * gst/vaapi/gstvaapipluginbuffer.c:
27228 * gst/vaapi/gstvaapipluginbuffer.h:
27229 * gst/vaapi/gstvaapipostproc.c:
27230 * gst/vaapi/gstvaapiupload.c:
27231 * gst/vaapi/gstvaapiuploader.c:
27232 * gst/vaapi/gstvaapivideobuffer.c:
27233 * gst/vaapi/gstvaapivideobuffer.h:
27234 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27235 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27236 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27238 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27240 * docs/reference/libs/libs-sections.txt:
27241 * docs/reference/libs/libs.core.types:
27242 * gst-libs/gst/vaapi/Makefile.am:
27243 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27244 * gst/vaapi/Makefile.am:
27245 * gst/vaapi/gstvaapidownload.h:
27246 * gst/vaapi/gstvaapipluginbuffer.c:
27247 * gst/vaapi/gstvaapipostproc.h:
27248 * gst/vaapi/gstvaapivideobuffer.c:
27249 * gst/vaapi/gstvaapivideobuffer.h:
27250 * gst/vaapi/gstvaapivideoconverter_glx.h:
27251 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27252 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27253 actual plugin elements. That's only useful there.
27255 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27257 * gst/vaapi/gstvaapipluginutil.c:
27258 * gst/vaapi/gstvaapipluginutil.h:
27259 * gst/vaapi/gstvaapisink.c:
27260 * gst/vaapi/gstvaapivideoconverter_glx.c:
27261 plugins: use common helper function to apply compositions.
27262 Use common gst_vaapi_apply_composition() helper function to apply compositions
27263 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27265 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27267 * gst-libs/gst/vaapi/Makefile.am:
27268 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27269 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27270 * gst/vaapi/Makefile.am:
27271 * gst/vaapi/gstvaapipluginbuffer.c:
27272 * gst/vaapi/gstvaapivideoconverter_glx.c:
27273 * gst/vaapi/gstvaapivideoconverter_glx.h:
27274 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27275 Make sure libgstvaapi core decoding library doesn't include un-needed
27276 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27277 Besides, even if the vaapisink element is not used, we are bound to have
27278 a correctly populated GstSurfaceBuffer from vaapidecode.
27279 Also clean-up the file along the way.
27281 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27283 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27284 vc1: fix use of possibly uninitialized variable.
27285 In decode_codec_data(), force initialization of format to zero so that
27286 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27287 fields, thus making it possible to gracefully fail in this case.
27289 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27291 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27292 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27294 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27296 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27297 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27299 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27300 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27301 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27302 decoder: sanitize codec-data decoding.
27303 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27304 codec-data in the decoder sub-class. Provide a common shared helper
27305 function to do the actual work and delegating further to the sub-class.
27307 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27309 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27310 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27311 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27312 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27313 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27314 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27315 useless nowadays as creating sub-buffers doesn't bring any value. It
27316 actually means more memory allocations. We can't do without that in
27317 JPEG and MPEG-4:2 decoders.
27319 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27321 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27322 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27323 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27324 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27325 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27326 decoder: sanitize uses of codec frame input buffer (cosmetics).
27327 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27330 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27332 * gst/vaapi/gstvaapisink.c:
27333 vaapisink: add helper function to apply a composition buffer.
27334 Simplify application of a composition buffer to a GstVaapiSurface, and
27335 all its peers, until that function is eventually promoted to libgstvaapi.
27337 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27339 * gst/vaapi/gstvaapisink.c:
27340 vaapisink: fix support for raw YUV buffers.
27341 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27342 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27343 However, we previously assumed in that case that it was a "native" VA buffer,
27344 thus not calling into GstVaapiUploader::process().
27346 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27348 * gst-libs/gst/vaapi/gstcompat.h:
27349 * gst/vaapi/gstvaapidecode.c:
27350 * gst/vaapi/gstvaapidownload.c:
27351 * gst/vaapi/gstvaapipostproc.c:
27352 * gst/vaapi/gstvaapisink.c:
27353 * gst/vaapi/gstvaapiupload.c:
27354 plugins: use modern GstElement metadata information.
27355 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27356 basically is the same as gst_element_class_set_details_simple() in
27357 GStreamer 0.10 context.
27359 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27361 * gst/vaapi/gstvaapidecode.c:
27362 * gst/vaapi/gstvaapidownload.c:
27363 * gst/vaapi/gstvaapipostproc.c:
27364 * gst/vaapi/gstvaapisink.c:
27365 * gst/vaapi/gstvaapiupload.c:
27366 plugins: move up interfaces (cosmetics).
27367 Move GstImplementsInterface and GstVideoContext support functions up
27368 so that to keep a clear separation between the plugin element and its
27371 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27373 * gst/vaapi/gstvaapisink.c:
27374 * gst/vaapi/gstvaapiuploader.c:
27375 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27376 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27377 Also use the newly added gst_vaapi_image_format_from_structure() helper
27378 in GstVaapiUploader::ensure_allowed_caps().
27380 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27382 * gst/vaapi/gstvaapipluginbuffer.c:
27383 plugins: fix creation of video buffer from another source buffer.
27384 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27385 buffer video meta since it would be unreference'd from the get_buffer()
27386 helper function. For other cases, we still use (steal) the newly created
27389 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27391 * gst/vaapi/gstvaapipluginbuffer.c:
27392 * gst/vaapi/gstvaapipluginutil.c:
27393 plugins: include "sysdeps.h" header instead of "config.h".
27395 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27397 * gst-libs/gst/vaapi/gstcompat.h:
27399 tests: modernize GstTypeFind functions.
27400 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27401 exactly correspond to the expected behaviour.
27403 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27407 * tests/test-decode.c:
27408 * tests/test-display.c:
27409 * tests/test-h264.c:
27410 * tests/test-h264.h:
27411 * tests/test-jpeg.c:
27412 * tests/test-jpeg.h:
27413 * tests/test-mpeg2.c:
27414 * tests/test-mpeg2.h:
27415 * tests/test-mpeg4.c:
27416 * tests/test-mpeg4.h:
27417 * tests/test-textures.c:
27418 * tests/test-vc1.c:
27419 * tests/test-vc1.h:
27420 * tests/test-windows.c:
27421 tests: fix license templates.
27423 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27425 * tests/test-display.c:
27426 tests: use gst_vaapi_image_format_from_structure() in test-display.
27427 Use gst_vaapi_image_format_from_structure() helper in test-display and
27428 then extract a VAImageFormat from it instead of relying on GstCaps for
27429 YUV and RGB formats.
27431 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27436 * tests/test-decode.c:
27437 * tests/test-display.c:
27438 * tests/test-subpicture.c:
27439 * tests/test-textures.c:
27440 * tests/test-windows.c:
27441 tests: include "sysdeps.h" header instead of "config.h".
27443 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27445 * gst-libs/gst/vaapi/gstcompat.h:
27446 * gst-libs/gst/vaapi/gstvaapicontext.c:
27447 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27448 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27449 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27450 function with GStreamer 0.10 compatible semantics, or that tries to
27451 approach the current meaning. Basically, this is also just about moving
27452 the helper to gstcompat.h.
27454 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27456 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27457 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27458 image: add gst_vaapi_image_format_from_structure() helper.
27459 Add helper function to convert video formats from a GstStructure to a
27460 plain GstVaapiImageFormat.
27462 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27464 * gst-libs/gst/vaapi/Makefile.am:
27465 * gst-libs/gst/vaapi/gstcompat.h:
27466 * gst-libs/gst/vaapi/sysdeps.h:
27467 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27469 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27471 * gst-libs/gst/vaapi/sysdeps.h:
27472 sysdeps: add more standard includes by default.
27474 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27477 configure: improve GStreamer API version checks.
27479 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27482 * debian.upstream/Makefile.am:
27483 * debian.upstream/changelog.in:
27484 * debian.upstream/control.in:
27485 * debian.upstream/gstreamer-vaapi-doc.install.in:
27486 * debian.upstream/libgstvaapi-dev.install.in:
27487 * debian.upstream/libgstvaapi-drm.install.in:
27488 * debian.upstream/libgstvaapi-glx.install.in:
27489 * debian.upstream/libgstvaapi-wayland.install.in:
27490 * debian.upstream/libgstvaapi-x11.install.in:
27491 * debian.upstream/libgstvaapi.install.in:
27492 * docs/reference/libs/Makefile.am:
27493 * docs/reference/libs/libs-docs.xml.in:
27494 * docs/reference/plugins/Makefile.am:
27495 * docs/reference/plugins/plugins-docs.xml.in:
27496 * gst-libs/gst/vaapi/Makefile.am:
27497 * gst/vaapi/Makefile.am:
27498 * pkgconfig/Makefile.am:
27499 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27500 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27501 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27502 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27503 * pkgconfig/gstreamer-vaapi.pc.in:
27504 * tests/Makefile.am:
27505 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27507 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27510 configure: improve check for H.264 codecparser.
27512 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27514 * gst/vaapi/gstvaapiuploader.c:
27515 vaapiupload: fix illegal write in ensure_image().
27516 Fix ensure_image() to only zero-initialize the first line of each plane.
27517 Properly initializing each plane to their full vertical resolution would
27518 require to actually compute it based on the image format.
27519 In particular, for NV12 images, the UV plane has half vertical resolution
27520 vs. the Y plane. So using the full image height to initialize the UV plane
27521 will obviously lead to a buffer overflow. Likewise for other YUV format.
27522 Since ensure_image() is only a helper function to initialize something,
27523 and not necessarily the whole thing, it is fine to initializ the first
27524 line only. Besides, the target surface is not rendered either.
27525 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27527 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27529 * gst-libs/gst/codecparsers/Makefile.am:
27530 * gst-libs/gst/video/Makefile.am:
27531 build: fix compiling of local GstVideoDecoder and codecparsers.
27532 Generated source files were missing a dependency on the complete set of
27533 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27534 to build and almost every codec parser source depends on parserutils.h.
27535 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27536 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27537 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27539 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27541 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27542 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27543 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27544 there is no pred_weight_table() that was parsed.
27545 This is a workaround for the VA intel-driver on Ivy Bridge.
27547 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27549 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27550 h264: use new profile definitions from codecparsers.
27552 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27554 * ext/codecparsers:
27555 codecparsers: update to gst-vaapi-branch commit 500bc02.
27556 500bc02 h264: add profile enums
27558 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27563 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27565 * ext/codecparsers:
27566 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27567 8957fb7 mpeg2: add helpers to convert quantization matrices
27568 07c4034 mpeg2: store quantization matrices in zigzag scan order
27570 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27572 * tests/simple-decoder.c:
27573 tests: simple-decoder: fix build on older platforms.
27574 Make simple-decoder build and execute correctly on older platforms,
27575 and more precisely older versions of glib.
27577 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27579 * gst-libs/gst/vaapi/glibcompat.h:
27580 glibcompat: add replacement for g_async_queue_timeout_pop().
27581 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27582 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27583 new data to arrive in the queue.
27585 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27587 * gst-libs/gst/vaapi/glibcompat.h:
27588 glibcompat: add replacement for g_cond_wait().
27590 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27592 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27593 mpeg2: fix decoding of 4K videos.
27594 Account for slice_vertical_position_extension when vertical_size > 2800.
27596 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27598 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27599 mpeg2: fix decoding of sequence_end().
27600 There shall be only one place to call decode_current_picture(), and this
27601 is in the end_frame() hook. The EOS unit is processed after end_frame()
27602 so this means we cannot have a valid picture to decode/output at this
27605 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27607 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27608 mpeg2: improve robustness when packets are missing.
27609 Improve robustness when some expected packets where not received yet
27610 or that were not correctly decoded. For example, don't try to decode
27611 a picture if there was no valid sequence or picture headers.
27613 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27615 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27616 decoder: handle decode-only frames in raw API mode.
27617 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27618 surface proxy, i.e. with a valid VA surface. This means that any frame
27619 marked as decode-only is simply skipped.
27621 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27623 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27624 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27625 decoder: allow frames to be dropped.
27626 If the decoder was not able to decode a frame because insufficient
27627 information was available, e.g. missing sequence or picture header,
27628 then allow the frame to be gracefully dropped without generating
27630 It is also possible that a frame is not meant to be displayed but
27631 only used as a reference, so dropping that frame is also a valid
27632 operation since GstVideoDecoder base class has extra references to
27633 that GstVideoCodecFrame that needs to be released.
27635 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27637 * gst/vaapi/gstvaapidecode.c:
27638 vaapidecode: handle decode-only frames.
27639 Decode-only frames may not have a valid surface proxy. So, simply discard
27640 them gracefully, i.e. don't create meta data information. GstVideoDecoder
27641 base class will properly handle this case and won't try to push any buffer
27642 to downstream elements.
27644 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27646 * gst/vaapi/gstvaapidecode.c:
27647 vaapidecode: add support for post-seek semantics reset.
27648 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27649 and the creation of a new VA decoder.
27650 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27652 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27655 Bump version for development.
27657 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27663 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27665 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27666 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27668 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27670 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27671 decoder: fix documentation for GstVaapiDecoderFrame.
27672 Drop superfluous reference to prev_slice member.
27674 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27676 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27677 decoder: assume current frame is complete at end-of-stream.
27678 Assume we got a complete frame when the end-of-stream is reached and that
27679 the current codec frame contains at least one slice data unit.
27681 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27685 * debian.upstream/copyright:
27686 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27687 * gst-libs/gst/vaapi/gstvaapicontext.c:
27688 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27689 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27690 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27691 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27692 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27693 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27694 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27695 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27696 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27697 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27698 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27699 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27700 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27701 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27702 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27703 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27704 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27705 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27706 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27707 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27708 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27709 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27710 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27711 * gst-libs/gst/vaapi/gstvaapisurface.c:
27712 * gst-libs/gst/vaapi/gstvaapiutils.c:
27713 * gst-libs/gst/vaapi/gstvaapiutils.h:
27714 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27715 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27716 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27717 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27718 * gst-libs/gst/vaapi/sysdeps.h:
27719 * gst/vaapi/gstvaapidecode.c:
27720 * gst/vaapi/gstvaapidownload.c:
27721 * gst/vaapi/gstvaapipluginbuffer.c:
27722 * gst/vaapi/gstvaapipluginbuffer.h:
27723 * gst/vaapi/gstvaapipostproc.c:
27724 * gst/vaapi/gstvaapisink.c:
27725 * gst/vaapi/gstvaapiupload.c:
27726 * gst/vaapi/gstvaapiuploader.c:
27728 * tests/test-decode.c:
27729 * tests/test-subpicture.c:
27730 legal: fix year for some copyright notices (2013).
27732 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27734 * gst-libs/gst/vaapi/gstvaapicontext.h:
27735 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27736 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27737 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27738 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27739 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27740 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27741 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27742 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27743 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27744 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27745 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27746 * gst-libs/gst/vaapi/gstvaapisurface.c:
27747 * gst-libs/gst/vaapi/gstvaapisurface.h:
27748 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27749 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27750 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27751 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27752 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27753 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27754 * gst/vaapi/gstvaapidecode.h:
27755 * gst/vaapi/gstvaapisink.h:
27756 * tests/test-subpicture.c:
27757 legal: fix year for some copyright notices (2012).
27759 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27761 * gst-libs/gst/vaapi/gstvaapicompat.h:
27762 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27763 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27764 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27765 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27766 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27767 * gst-libs/gst/vaapi/gstvaapiobject.c:
27768 * gst-libs/gst/vaapi/gstvaapiobject.h:
27769 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27770 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27771 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27772 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27773 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27774 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27775 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27776 * gst-libs/gst/vaapi/gstvaapitexture.c:
27777 * gst-libs/gst/vaapi/gstvaapitexture.h:
27778 * gst-libs/gst/vaapi/gstvaapitypes.h:
27779 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27780 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27781 * gst-libs/gst/vaapi/gstvaapivalue.c:
27782 * gst-libs/gst/vaapi/gstvaapivalue.h:
27783 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27784 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27785 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27786 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27787 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27788 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27789 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27790 * tests/test-display.c:
27791 * tests/test-surfaces.c:
27792 * tests/test-windows.c:
27793 legal: add Intel copyright on modified files.
27795 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27800 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27802 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27803 wayland: use a local event queue to avoid lock contention.
27804 This improves performance when rendering several surfaces from within
27805 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27807 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27809 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27810 wayland: fix thread-safe issues.
27811 The Wayland API is not fully thread-safe and client applications shall
27812 perform locking themselves on key functions. Besides, make sure to
27813 release the lock if the _render() function fails.
27815 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27817 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27818 wayland: really wait until the pending redraw completed.
27819 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27820 the completion of the redraw request. Use it in _render() function to
27821 actually block until the previous draw request is completed.
27823 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27825 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27826 wayland: fix frame_redraw callback.
27827 The redraw callback needs to be attached to the surface prior to the
27828 commit. Otherwise, the callback notifies the next surface repaint,
27829 which is not the desired behaviour. i.e. we want to be notified for
27830 the surface we have just filled.
27831 Another isse was the redraw_pending was reset before the actual completion
27832 of the frame redraw callback function, thus causing concurrency issues.
27833 e.g. the callback could have been called again, but with a NULL buffer.
27835 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27837 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27838 wayland: fix display sharing.
27839 When the Wayland display is shared, we still have to create our own local
27840 shell and compositor objects, since they are not propagated from the cache.
27841 Likewise, we also need to determine the display size or vaapisink would
27842 fail to account for the display aspect ratio, and will try to create a 0x0
27845 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27847 * ext/codecparsers:
27848 codecparsers: update to gst-vaapi-branch commit 21a098e.
27849 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27850 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27852 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27854 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27855 vc1: handle frames with multiple slices.
27857 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27859 * ext/codecparsers:
27860 codecparsers: update to gst-vaapi-branch commit 3fba492.
27861 3fba492 vc1: add API to parse slice headers
27863 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27865 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27866 vc1: handle CLOSED_ENTRY.
27867 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
27868 lack a reference anchor picture, these B pictures shall be discarded.
27869 https://bugs.freedesktop.org/show_bug.cgi?id=59505
27871 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27873 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27874 vc1: cope with latest codecparser changes.
27875 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
27876 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
27877 the actual value of DQPROFILE.
27879 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27881 * ext/codecparsers:
27882 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
27883 3d2c67c vc1: simplify GstVC1VopDquant structure
27885 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27887 * ext/codecparsers:
27888 codecparsers: update to gst-vaapi-branch commit 5d33da8.
27889 5d33da8 vc1: fix bitplanes decoding
27890 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
27891 0b13d2b vc1: fix calculation of ALTPQUANT
27892 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
27894 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27896 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27897 vc1: fix size of encapsulated BDU.
27898 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
27899 the size of the BDU data, starting from offset, i.e. after any start
27901 This fixes a buffer overflow during the unescaping process.
27903 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
27905 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27906 vc1: fix decoding of WMV3 videos in AVI format.
27907 The AVI demuxer (avidemux) does not set a proper "format" attribute
27908 to the generated caps. So, try to recover the video codec format from
27909 the "wmvversion" property instead.
27910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27912 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27914 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27915 vc1: review and report errors accordingly.
27916 Use GST_ERROR() to report real errors instead of hiding them into
27919 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27921 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27922 vc1: don't create GstBuffers for all decoder units.
27923 Don't create temporary GstBuffers for all decoder units, even if they
27924 are lightweight "sub-buffers", since it is not really necessary to keep
27925 the buffer data around.
27927 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27929 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27930 vc1: implement flush() hook.
27931 Make it a simple DPB flush.
27933 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27935 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27936 vc1: implement {start,end}_frame() hooks.
27937 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
27938 that to create new VA context earlier and submit VA pictures to the
27939 HW for decoding as soon as possible. i.e. don't wait for the next
27940 frame to start decoding the previous one.
27942 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27944 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27945 vc1: fix next POC for new sequence layers.
27946 Fix next POC when a new sequence layer is reached. At this point, we
27947 need to reset any previous reference picture, i.e. non B-frame.
27949 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27951 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27952 vc1: port to common GstVaapiDpb interface.
27953 Use GstVaapiDpb interface instead of maintaining our own prev and next
27954 picture pointers. While doing so, try to derive a sensible POC value.
27955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27957 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27959 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27960 vc1: fix decode_sequence_end() to return success, not EOS.
27962 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27964 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27965 decoder: simplify gst_vaapi_decoder_get_surface().
27966 Avoid extraenous branches, i.e. immediately return with success once we
27967 have a decoded frame available.
27969 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27971 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27972 decoder: optimize and clean decode_step() up.
27973 Avoid usage of goto. Simplify decode_step() process to first accumulate all
27974 pending buffers into the GstAdapter, and then parse and decode units from
27975 that input adapter. Stop the process once a frame is fully decoded or an
27978 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27980 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27981 display: move "vaapi" debug init to libgstvaapi_init_once().
27983 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27986 * gst-libs/gst/vaapi/Makefile.am:
27987 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27988 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
27989 display: dump gstreamer-vaapi version for debugging purposes.
27991 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27993 * tests/Makefile.am:
27994 tests: simple-decoder: fix build with built-in videoutils.
27995 Fix build with built-in videoutils, i.e. when system GStreamer installation
27996 does not know about GstVideoDecoder API.
27998 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28000 * tests/simple-decoder.c:
28001 tests: simple-decoder: flush decoded frames at EOS.
28002 Flush the remaining decoded frames when an end-of-stream is reached.
28004 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28006 * tests/simple-decoder.c:
28007 tests: simple-decoder: drop use of GstVaapiVideoMeta.
28008 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28009 in libgstvaapi forever. Rather, that'd move to plugin elements at some
28012 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28014 * tests/simple-decoder.c:
28015 tests: simple-decoder: add benchmark mode.
28016 Add --benchmark option to enable benchmark mode where rendering is not
28017 synchronized with presentation timestamps of the decoded surfaces.
28019 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28021 * tests/Makefile.am:
28022 * tests/simple-decoder.c:
28023 tests: simple-decoder: honour framerate from the bitstream.
28024 Try to honour the framerate from the bitstream, or cap the playback to
28027 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28029 * tests/simple-decoder.c:
28030 tests: simple-decoder: set window size to the surface dimensions.
28031 Set the window size to the decoded surface dimensions, if the user has
28032 not requested the application to run in full-screen mode. Besides, no
28033 effort is made to preserve aspect ratio or to center the video within
28036 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28038 * tests/Makefile.am:
28039 * tests/simple-decoder.c:
28040 tests: add simple decoder application.
28041 Add simple decoder application to show off decoding capabilities from
28042 raw bitstreams, for debugging or performance evaluation purposes.
28044 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28046 * tests/Makefile.am:
28049 tests: add codec helper utils.
28050 Add helper functions to determine the codec type from a specific file
28051 or utility functions to convert from codec type to GstCaps or from
28052 codec name to codec type.
28054 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28057 tests: allow fullscreen mode.
28058 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28060 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28062 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28063 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28065 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28067 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28068 h264: handle end-of-stream NALU.
28069 Handle <end-of-stream> NAL unit to actually flush any pending picture
28072 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28074 * gst/vaapi/gstvaapidecode.c:
28075 vaapidecode: handle EOS events.
28076 Flush all decoded frames to downstream when EOS is received. This is
28077 performed by implementing GstVideoDecoder::finish() hook.
28079 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28081 * gst/vaapi/gstvaapidecode.c:
28082 vaapidecode: split gvd_handle_frame() into decode/push frames.
28083 Split GstVideoDecoder::handle_frame() implementation into two functions:
28084 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28085 for purging all decoded frames and submit them downstream.
28087 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28089 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28090 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28091 decoder: add GstVaapiDecoder::flush() hook.
28093 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28095 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28096 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28097 decoder: fix check for end-of-stream in raw API mode.
28098 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28099 if the end-of-stream was already reached at the previous iteration.
28101 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28103 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28104 decoder: make decode_step() return once the frame is decoded.
28105 Make sure we always have a free surface left to use for decoding the
28106 current frame. This means that decode_step() has to return once a frame
28107 gets decoded. If the current adapter contains more buffers with valid
28108 frames, they will get parsed and decoded on subsequent iterations.
28110 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28112 * ext/codecparsers:
28113 codecparsers: update to gst-vaapi-branch commit b47983a.
28114 8840c2d h264: zero-initialize SPS VUI parameters
28116 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28119 Bump version for development.
28121 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28127 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28129 * docs/reference/libs/libs-docs.xml.in:
28130 * docs/reference/libs/libs-sections.txt:
28131 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28132 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28133 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28134 docs: expose new interfaces.
28136 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28141 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28143 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28144 dpb: cosmetics (clean-ups).
28146 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28148 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28149 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28150 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28151 dpb: port to GstVaapiMiniObject.
28153 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28155 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28156 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28157 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28158 dpb: drop GstVaapiDpb2 interface, keep only one class.
28159 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28160 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28161 around the specified picture POC.
28163 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28165 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28166 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28167 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28168 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28169 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28170 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28171 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28173 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28176 Bump version for pre-release.
28178 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28183 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28186 * gst-libs/gst/vaapi/gstvaapicontext.c:
28187 * gst-libs/gst/vaapi/gstvaapiutils.c:
28188 * gst-libs/gst/vaapi/sysdeps.h:
28189 * tests/test-subpicture.c:
28190 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28191 Check for global-alpha support in GstVideoOverlayComposition API.
28192 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28194 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28196 * tests/test-subpicture.c:
28197 tests: add support for global-alpha subpictures.
28198 Add --global-alpha option to test-subpicture.
28200 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28202 * tests/Makefile.am:
28203 * tests/test-subpicture.c:
28204 tests: use GstVideoOverlayComposition API for subpicture test.
28206 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28208 * tests/Makefile.am:
28209 * tests/test-subpicture.c:
28210 tests: use common decoder helpers for subpicture test.
28211 Use common decoder helpers for subpicture test, thus allowing to decode
28212 sample images in an alternate format.
28214 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28216 * tests/Makefile.am:
28219 * tests/test-decode.c:
28220 tests: add decoder helpers.
28222 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28224 * gst-libs/gst/vaapi/gstvaapicontext.c:
28225 overlay: fix ordering of composition layers.
28226 Make sure to maintain the association order of composition layers when
28227 GstVideoOverlayRectangle objects are kept around (cached).
28229 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28231 * gst-libs/gst/vaapi/gstvaapicontext.c:
28232 overlay: fix support for global-alpha.
28233 Fix support for global-alpha subpictures. The previous changes brought
28234 the ability to check for GstVideoOverlayRectangle changes by comparing
28235 the underlying pixel buffer pointers. If sequence number and pixel data
28236 did not change, then this is an indication that only the global-alpha
28237 value changed. Now, try to update the underlying VA subpicture global-alpha
28239 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28241 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28243 * gst-libs/gst/vaapi/gstvaapicontext.c:
28244 overlay: detect render-rect changes.
28245 Don't re-upload VA subpicture if only the render rectangle changed.
28246 Rather deassociate the subpicture and re-associate it with the new
28249 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28251 * gst-libs/gst/vaapi/gstvaapicontext.c:
28252 overlay: fix check for pixels buffer change.
28253 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28254 change. However, when global-alpha is supported, it is possible to re-use
28255 the same GstVideoOverlayRectangle but with a change to the global-alpha
28256 value. This process causes a change of sequence number, so we can no longer
28258 Still, if sequence numbers did not change, then there was no change in
28259 global-alpha either. So, we need a way to compare the underlying GstBuffer
28260 pointers. There is no API to retrieve the original pixels buffer from
28261 a GstVideoOverlayRectangle. So, we use the following heuristics:
28262 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28263 format flags from which the GstVideoOverlayRectangle was created. This
28264 will work if there was no prior consumer of the GstVideoOverlayRectangle
28265 with alternate (non-"native") format flags.
28266 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28267 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28268 with flags that match the subpicture. This is needed to cope with
28269 platforms that don't support global-alpha in HW, so the gst-video
28270 layer takes care of that and fixes this up with a possibly new
28271 GstBuffer, and hence pixels data (or) in-place by caching the current
28272 global-alpha value applied. So we have to determine the rectangle
28273 was previously used, based on what previous flags were used to
28274 retrieve the ARGB pixels buffer.
28276 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28278 * gst-libs/gst/vaapi/gstvaapicontext.c:
28279 overlay: optimize cache at the GstVideoOverlayRectangle level.
28280 We previously assumed that an overlay composition changed if the number
28281 of overlay rectangles in there actually changed, or that the rectangle
28282 was updated, and thus its seqnum was also updated.
28283 Now, we can cope with cases where the GstVideoOverlayComposition grew
28284 by one or a few more overlay rectangles, and the initial overlay rectangles
28287 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28289 * gst-libs/gst/vaapi/gstvaapicontext.c:
28290 overlay: simplify caching of GstVideoOverlayComposition objects.
28291 Create the GPtrArray once in the _init() function and destroy it only
28292 in the _finalize() function. Then use overlay_clear() to remove all
28293 subpicture associations for intermediate updates, don't recreate the
28295 Make GstVaapiOverlayRectangle a reference counted object. Also make
28296 sure that overlay_rectangle_new() actually creates and associates the
28299 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28301 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28302 * gst-libs/gst/vaapi/gstvaapiutils.c:
28303 * gst-libs/gst/vaapi/gstvaapiutils.h:
28304 overlay: add support for global-alpha.
28305 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28306 the same code path could also work for premultiplied-alpha but this
28308 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28310 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28312 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28313 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28314 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28315 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28316 * gst-libs/gst/vaapi/gstvaapisurface.c:
28318 * tests/test-subpicture.c:
28319 subpicture: add support for global-alpha.
28320 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28321 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28322 to address this feature.
28323 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28325 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28327 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28328 * gst-libs/gst/vaapi/gstvaapiutils.c:
28329 * gst-libs/gst/vaapi/gstvaapiutils.h:
28330 subpicture: add premultiplied-alpha and global-alpha feature flags.
28331 Add premultiplied-alpha and global-alpha feature flags, along with converters
28332 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28333 also necessary for GstVideoOverlayComposition API.
28335 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28337 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28338 display: allow image/subpicture formats with additional flags.
28339 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28340 and any additional flags needed. Currently, all flags are set to zero.
28342 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28344 * gst-libs/gst/codecparsers/Makefile.am:
28345 * gst-libs/gst/video/Makefile.am:
28346 * tests/Makefile.am:
28347 libs: fix build of submodule wrappers.
28348 Make sure to build codecparsers/ and videoutils/ sources against the
28349 newly generated headers when out-of-source builds are used.
28351 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28354 configure: fix checks for packages installed in non-standard roots.
28356 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28358 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28359 decoder: fix mini object implementation on 64-bit systems.
28360 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28361 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28362 Only a gsize can hold all bits of a pointer.
28363 Thanks to Ouping Zhang for spotting this error.
28365 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28367 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28368 mpeg2: optimize scan for the end of the frame.
28369 Heuristic: if the second start-code is available, check whether that
28370 one marks the start of a new frame because e.g. this is a sequence
28371 or picture header. This doesn't save much, since we already cache the
28374 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28376 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28377 mpeg2: optimize scan for start codes.
28378 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28379 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28380 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28381 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28382 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28383 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28384 4. xx == 00, yy == 00, zz == 1, we have match!
28385 This algorithm requires to peek bytes from the adapter. This increases the
28386 amount of bytes copied to a temporary buffer, but this process is much faster
28387 than scanning for all the bytes and using shift/masks. So, overall, this is
28390 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28392 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28393 mpeg2: drop useless gst_adapter_peek().
28394 Drop useless gst_adapter_peek() since the returned buffer was not used
28395 and this could incur superfluous memcpy().
28397 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28399 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28400 mpeg2: cosmetics: move parse_slice() down.
28402 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28404 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28405 mpeg2: avoid too many allocations of parser info objects.
28406 Move parsing back to decoding step, but keep functions separate for now.
28407 This is needed for future optimizations that may introduce some meta data
28408 for parsed info attached to codec frames.
28410 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28412 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28413 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28414 decoder: decoder units are no longer dynamically allocated objects.
28416 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28418 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28419 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28420 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28421 decoder: optimize pre-allocation of decoder units.
28422 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28423 memory reallocations. The heuristic used is that we could have around
28424 one slice unit per macroblock line.
28426 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28428 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28429 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28430 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28431 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28432 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28433 decoder: use an array of units instead of a single-linked list.
28434 Use a GArray to hold decoder units in a frame, instead of a single-linked
28435 list. This makes 'append' calls faster, but not that much. At least, this
28436 makes things clearer.
28438 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28440 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28441 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28442 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28443 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28444 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28445 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28446 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28447 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28448 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28449 decoder: refactor decoder unit API.
28450 Allocate decoder unit earlier in the main parse() function and don't
28451 delegate this task to derived classes. The ultimate purpose is to get
28452 rid of dynamic allocation of decoder units.
28454 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28456 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28457 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28458 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28459 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28461 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28463 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28464 h264: introduce parser info instead of H.264 specific decoder unit.
28465 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28466 from GstVaapiDecoderUnit for H.264 specific parser information.
28468 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28470 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28471 h264: set default values for some header fields.
28472 The SPS, PPS and slice headers are not fully zero-initialized in the
28473 codecparsers/ library. Rather, the standard upstream behaviour is to
28474 initialize only certain syntax elements with some inferred values if
28475 they are not present in the bitstream.
28476 At the gstreamer-vaapi decoder level, we need to further initialize
28477 certain syntax elements with some sensible default values so that to
28478 not complicate VA drivers that just pass those verbatim to the HW,
28479 and also avoid an memset() of the whole decoder unit.
28480 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28481 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28483 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28485 * ext/codecparsers:
28486 codecparsers: update to gst-vaapi-rebased commit b47983a.
28487 b47983a h264: add inferred value for slice_beta_offset_div2
28489 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28491 * gst/vaapi/gstvaapidecode.c:
28492 * gst/vaapi/gstvaapidownload.c:
28493 * gst/vaapi/gstvaapipluginbuffer.c:
28494 * gst/vaapi/gstvaapipluginbuffer.h:
28495 * gst/vaapi/gstvaapipostproc.c:
28496 * gst/vaapi/gstvaapisink.c:
28497 * gst/vaapi/gstvaapiupload.c:
28498 * gst/vaapi/gstvaapiuploader.c:
28499 plugins: cope with new GstVaapiVideoMeta API.
28500 Update plugin elements with the new GstVaapiVideoMeta API.
28501 This also fixes support for subpictures/overlay because GstVideoDecoder
28502 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28503 is marked as read-only. However, when comes in the textoverlay element
28504 for example, it checks whether the input buffer is writable. Since that
28505 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28506 does not preserve the parent field, the generated buffer in textoverlay
28507 is not exploitable because we lost all VA specific information.
28508 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28509 all information are preserved through gst_buffer_copy() since the latter
28510 does copy metadata (qdata in this case).
28512 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28514 * gst-libs/gst/vaapi/Makefile.am:
28515 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28516 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28517 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28518 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28519 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28520 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28521 videobuffer: wrap video meta into a surface buffer.
28522 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28523 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28524 expecting a GstSurfaceBuffer like Clutter.
28526 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28528 * gst-libs/gst/vaapi/Makefile.am:
28529 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28530 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28531 videobuffer: add video meta information.
28532 Add new GstVaapiVideoMeta object that holds all information needed to
28533 convey gst-vaapi specific data as a GstBuffer.
28535 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28537 * gst/vaapi/gstvaapidecode.c:
28538 vaapidecode: fix calculation of the time-out value.
28539 Fix calculation of the time-out value for cases where no VA surface is
28540 available for decoding. In this case, we need to wait until downstream
28541 sink consumed at least one surface. The time-out was miscalculated as
28542 it was always set to <current-time> + one second, which is not suitable
28543 for streams with larger gaps.
28545 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28547 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28548 decoder: always use the calculated presentation timestamp.
28549 Use PTS value computed by the decoder, which could also be derived from
28550 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28551 the original one was miscomputed or only represented a DTS instead.
28553 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28555 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28556 h264: don't create sub-buffer for slice data.
28558 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28560 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28561 decoder: create new context when encoded resolution changes.
28562 Create a new VA context if the encoded surface size changes because we
28563 need to keep the underlying surface pool until the last one was released.
28564 Otherwise, either of the following cases could have happened: (i) release
28565 a VA surface to an inexistent pool, or (ii) release VA surface to an
28566 existing surface pool, but with different size.
28568 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28570 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28571 mpeg2: don't create sub-buffer for slice data.
28572 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28573 frame input buffer data. This is possible because the codec frame is valid
28574 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28575 slice data buffer is copied into the VA buffer when it is created.
28577 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28579 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28580 mpeg2: minor clean-ups.
28581 Drop explicit initialization of most fields that are implicitly set to
28582 zero. Remove some useless checks for NULL pointers.
28584 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28586 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28587 mpeg2: optimize scan for the second start code.
28588 Optimize scan for the second start code, on the next parse() call so that
28589 to avoid scanning again earlier bytes where we didn't find any start code.
28591 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28593 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28594 mpeg2: use sequence_display_extension() to compute PAR.
28595 Also compute pixel-aspect-ratio from sequence_display_extension(),
28596 should it exist in the bitstream.
28598 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28600 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28601 mpeg2: handle sequence_display_extension().
28603 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28605 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28606 mpeg2: implement {start,end}_frame() hooks.
28607 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28608 that to create new VA context earlier and submit VA pictures to the
28609 HW for decoding as soon as possible. i.e. don't wait for the next
28610 frame to start decoding the previous one.
28612 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28614 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28615 mpeg2: parse slice() header earlier.
28616 Parse slice() header and first macroblock position earlier in _parse()
28617 function instead of waiting for the _decode() stage. This doesn't change
28618 anything but readability.
28620 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28622 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28623 mpeg2: add codec specific decoder unit.
28624 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28625 GstMpegVideoPacket and additional parsed header info. Besides, we now
28626 parse as early as in the _parse() function so that to avoid un-necessary
28627 creation of sub-buffers in _decode() for video packets that are not slices.
28629 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28631 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28632 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28633 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28634 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28635 decoder: introduce lists of units to decode before/after frame.
28636 Theory of operations: all units marked as "slice" are moved to the "units"
28637 list. Since this list only contains slice data units, the prev_slice pointer
28638 was removed. Besides, we now maintain two extra lists of units to be decoded
28639 before or after slice data units.
28640 In particular, all units in the "pre_units" list will be decoded before
28641 GstVaapiDecoder::start_frame() is called and units in the "post_units"
28642 list will be decoded after GstVaapiDecoder::end_frame() is called.
28644 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28646 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28647 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28648 decoder: drop useless checks for codec objects.
28649 Codec objects are used internally only and they are bound to be created
28650 with a valid GstVaapiDecoder object.
28652 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28654 * gst/vaapi/gstvaapidecode.c:
28655 vaapidecode: use GST_ERROR to print error messages.
28657 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28659 * gst/vaapi/gstvaapidecode.c:
28660 vaapidecode: avoid double release of frame on error.
28661 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28662 was already called before and it returned an error. In that case, we were
28663 releasing the frame again, thus leading to a "double-free" condition.
28665 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28672 * gst-libs/gst/Makefile.am:
28673 * gst-libs/gst/vaapi/Makefile.am:
28674 * gst-libs/gst/video/Makefile.am:
28675 * gst/vaapi/Makefile.am:
28676 Add videoutils submodule for GstVideoDecoder APIs.
28678 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28681 configure: check for GstVideoDecoder API.
28682 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28683 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28684 parties may either use upstream git 0.10 branch or backport the necessary support
28685 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28687 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28689 * docs/reference/libs/libs.core.types:
28690 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28691 GstVaapiSurfaceProxy is no longer based on the GType system.
28693 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28695 * docs/reference/libs/libs-sections.txt:
28696 docs: fix entries for GstVaapiSurfaceProxy.
28698 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28703 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28706 * gst-libs/gst/vaapi/Makefile.am:
28707 Bump library major version.
28708 Increase library major so that to cope with API/ABI incompatible changes
28709 since 0.4.x series and avoid user issues.
28711 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28713 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28714 surfaceproxy: minor clean-ups.
28716 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28718 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28719 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28720 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28721 surfaceproxy: drop accessors to obsolete attributes.
28722 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28723 VA surface. i.e. drop any other attribute like timestamp, duration,
28724 interlaced or top-field-first.
28726 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28728 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28729 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28730 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28731 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28732 * gst/vaapi/gstvaapidecode.c:
28733 decoder: maintain decoded frames as GstVideoCodecFrame objects.
28734 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28735 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28736 the strict minimum: a context and a surface.
28738 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28740 * gst/vaapi/gstvaapidecode.c:
28741 vaapidecode: output all decoded frames as soon as possible.
28742 Make sure to push all decoded frames downstream as soon as possible.
28743 This makes sure we don't need to wait for a new frame to be ready to
28744 be decoded before receiving new decoded frames.
28745 This also separates the decode process and the output process. The latter
28746 could be moved to a specific GstTask later on.
28748 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28750 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28751 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28752 decoder: add gst_vaapi_decoder_get_frame() API.
28753 Add new gst_vaapi_decoder_get_frame() function meant to be used with
28754 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28755 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28756 as the user-data object.
28758 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28760 * gst/vaapi/gstvaapipostproc.c:
28761 vaapipostproc: use GstBuffer flags for TFF.
28762 Determine whether the buffer represents the top-field only by checking for
28763 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28764 flag. Also trust "interlaced" caps to determine whether the input frame
28765 is interleaved or not.
28767 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28769 * gst/vaapi/gstvaapipostproc.c:
28770 vaapipostproc: handle video sub-buffers.
28771 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28772 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28774 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28776 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28777 h264: optimize initialization process of decoder units.
28778 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28779 The latter don't require zero-initialization since the codecparsers/ lib
28780 will do so for key variables already. This is not a great value per se but
28781 at least it makes it possible to check whether the default initialization
28782 decisions made in the codecparsers/ lib were right or not.
28783 This can be reverted if this exposes too many issues.
28785 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28787 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28788 h264: minor clean-ups.
28789 Drop explicit initialization of most fields that are implicitly set to
28790 zero. Drop helper macros for casting to GstVaapiPictureH264 or
28791 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28793 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28795 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28796 h264: drop GstVaapiSliceH264 object.
28797 Use standard GstVaapiSlice object from now on since we already have
28798 parsed and recorded the slice headers (GstH264SliceHdr decode units).
28800 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28802 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28803 h264: detect new pictures from decode-units.
28804 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28805 of assuming frame boundaries when first_mb_in_slice is zero.
28807 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28809 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28810 h264: implement {start,end}_frame() hooks.
28811 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28812 that to create new VA context earlier and submit VA pictures to the
28813 HW for decoding as soon as possible. i.e. don't wait for the next
28814 frame to start decoding the previous one.
28816 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28818 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28819 h264: optimize scan for the second start code.
28820 Optimize scan for the second start code, on the next parse() call so that
28821 to avoid scanning again earlier bytes where we didn't find any start code.
28823 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28825 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28826 h264: add codec specific decoder unit.
28827 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28828 NAL unit header (GstH264NalUnit) and additional parsed header info.
28829 Besides, we now parse headers as early as in the _parse() function so
28830 that to avoid un-necessary creation of sub-buffers in _decode() for
28831 NAL units that are not slices.
28832 This is a performance win by ~+1.1% only.
28834 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28836 * gst/vaapi/gstvaapisink.c:
28837 vaapisink: handle sub video-buffers.
28838 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28839 for non raw YUV cases. Make sure vaapisink now understands those buffers.
28841 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28843 * gst/vaapi/gstvaapidecode.c:
28844 vaapidecode: use gst_vaapi_decoder_get_codec_state().
28845 Directly use the GstVideoCodecState associated with the VA decoder
28846 instead of parsing caps again.
28847 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28848 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28850 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28852 * gst/vaapi/gstvaapidecode.c:
28853 vaapidecode: use more standard helpers.
28854 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28857 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28859 * gst/vaapi/gstvaapidecode.c:
28860 * gst/vaapi/gstvaapidecode.h:
28861 vaapidecode: move to GstVideoDecoder base class.
28862 Make vaapidecode derive from the standard GstVideoDecoder base element
28863 class. This simplifies the code to the strict minimum for the decoder
28864 element and makes it easier to port to GStreamer 1.x API.
28865 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28866 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28868 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28870 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28871 jpeg: initial port to new GstVaapiDecoder API
28873 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28875 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28876 vc1: initial port to new GstVaapiDecoder API
28878 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28880 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28881 h264: initial port to new GstVaapiDecoder API
28883 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28885 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28886 mpeg4: initial port to new GstVaapiDecoder API
28888 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28890 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28891 mpeg2: initial port to new GstVaapiDecoder API.
28893 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28895 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28896 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28897 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28898 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28899 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28900 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28901 decoder: use GstVideoCodecState.
28902 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
28903 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
28904 it possible to drop picture size (width, height) information, framerate
28905 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
28906 and interlace mode (is_interlaced field).
28907 This is a new API with backwards compatibility maintained. In particular,
28908 gst_vaapi_decoder_get_caps() is still available.
28909 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28912 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28914 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28915 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28916 * tests/test-decode.c:
28917 * tests/test-subpicture.c:
28918 decoder: update gst_vaapi_decoder_get_surface() semantics.
28919 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
28920 API. That is, return a GstVaapiDecoderStatus and the decoded surface
28921 as a handle to GstVaapiSurfaceProxy in parameter.
28922 This is an API/ABI change.
28924 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28926 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28927 decoder: use standard helper functions.
28928 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
28929 whenever necessary.
28931 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28933 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28934 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28935 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28936 decoder: expose new parse/decode API.
28937 Introduce new decoding process whereby a GstVideoCodecFrame is created
28938 first. Next, input stream buffers are accumulated into a GstAdapter,
28939 that is then passed to the _parse() function. The GstVaapiDecoder object
28940 accumulates all parsed units and when a complete frame or field is
28941 detected, that GstVideoCodecFrame is passed to the _decode() function.
28942 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
28943 process was successful.
28945 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28947 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28948 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28949 decoder: add {start,end}_frame() hooks.
28950 The start_frame() hook is called prior to traversing all decode-units
28951 for decoding. The unit argument represents the first slice in the frame.
28952 Some codecs (e.g. H.264) need to wait for the first slice in order to
28953 determine the actual VA context parameters.
28955 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28957 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28958 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28959 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28960 decoder: add new GstVaapiDecoder API.
28961 Split decoding process into two steps: (i) parse incoming bitstreams
28962 into simple decoder-units until the frame or field is complete; and
28963 (ii) decode the whole frame or field at once.
28964 This is an ABI change.
28966 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28968 * gst-libs/gst/vaapi/Makefile.am:
28969 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28970 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28971 decoder: add new "decoder-frame" object.
28972 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
28973 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
28974 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
28975 as the user-data member element.
28976 This is a libgstvaapi internal object.
28978 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28980 * gst-libs/gst/vaapi/Makefile.am:
28981 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28982 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28983 decoder: add new "decoder-unit" object.
28984 Introduce GstVaapiDecoderUnit which represents a fragment of the source
28985 stream to be decoded. For instance, a decode-unit will be a NAL unit for
28986 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
28988 This is a libgstvaapi internal object.
28990 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28992 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28993 Port GstVaapiFrameStore to GstVaapiMiniObject.
28995 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28997 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28998 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
28999 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29000 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29001 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29002 Port codec objects to GstVaapiMiniObject.
29004 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29006 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29007 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29008 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29009 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29010 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29011 * gst/vaapi/gstvaapidecode.c:
29012 * gst/vaapi/gstvaapipluginbuffer.c:
29013 * tests/test-decode.c:
29014 * tests/test-subpicture.c:
29015 surfaceproxy: port to GstVaapiMiniObject.
29016 GstVaapiSurfaceProxy does not use any particular functionality from
29017 GObject. Actually, it only needs a basic object type with reference
29019 This is an API and ABI change.
29021 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29023 * gst-libs/gst/vaapi/Makefile.am:
29024 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29025 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29026 Add GstVaapiMiniObject.
29027 Introduce a new reference counted object that is very lightweight and
29028 also provides flags and user-data functionalities. Initialization and
29029 finalization times are reduced by up to a factor 5x vs GstMiniObject
29030 from GStreamer 0.10 stack.
29031 This is a libgstvaapi internal object.
29033 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29035 * tests/Makefile.am:
29036 * tests/test-decode.c:
29037 * tests/test-mpeg4.c:
29038 * tests/test-mpeg4.h:
29039 tests: add test for MPEG-4:2 decoding.
29041 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29043 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29044 h264: initialize VA context before allocating the first slice.
29045 Fix decode_slice() to ensure a VA context exists prior to creating a
29046 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29047 context ID. i.e. the latter was not initialized, thus causing failures
29048 on Cedar Trail for example.
29050 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29053 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29054 If GST_PLUGIN_PATH environment variable exists and points to a valid
29055 directory, then use it as the system installation path for gst-vaapi
29057 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29059 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29062 configure: downgrade glib required version to 2.28.
29064 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29066 * gst-libs/gst/vaapi/glibcompat.h:
29067 * gst/vaapi/gstvaapi.c:
29068 libs: fix compatibility with glib 2.28.
29069 Always prefer non deprecated APIs by default and provide compatibility
29070 glue for older glib versions when necessary.
29072 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29074 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29075 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29076 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29077 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29078 libs: use glib >= 2.32 semantics for mutexes.
29079 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29080 and termination. Basically, the new mutex objects can be used as static
29081 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29083 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29085 * gst-libs/gst/vaapi/Makefile.am:
29086 libs: only export gst_vaapi_*() symbols.
29087 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29088 library and the system-provided one, mainly used by videoparses/. Now,
29089 only symbols with the gst_vaapi_* prefix will be exported, if they are
29090 not marked as "hidden" to libgstvaapi.
29092 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29094 * gst/vaapi/gstvaapiuploader.c:
29095 vaapiupload: reset direct-rendering to zero when changing caps.
29096 Make sure to reset direct-rendering flag to zero when caps are changed,
29097 and only derive it to one when the next checks succeed.
29099 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29101 * gst/vaapi/gstvaapiupload.c:
29102 vaapiupload: fix sink caps to report the supported set of YUV caps.
29103 Try to allocate the GstVaapiUploader helper object prior to listing the
29104 supported image formats. Otherwise, only a single generic caps is output
29105 with no particular pixel format referenced in there.
29107 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29109 * gst/vaapi/gstvaapiupload.c:
29110 * gst/vaapi/gstvaapiupload.h:
29111 vaapiupload: use new GstVaapiUploader helper.
29112 Use GstVaapiUploader helper that automatically handles direct rendering
29113 mode, thus making the "direct-rendering" property obsolete and hence it
29115 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29116 really well supported and it could actually trigger degraded performance.
29117 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29119 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29121 * gst/vaapi/gstvaapisink.c:
29122 * gst/vaapi/gstvaapiuploader.c:
29123 * gst/vaapi/gstvaapiuploader.h:
29124 vaapisink: compute and expose the supported set of YUV caps.
29125 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29126 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29127 of supported YUV caps as source (for images). This function actually
29128 tries to zero and upload each image to a 64x64 test surface. Of course,
29129 this relies on VA drivers to not claim success if vaPutImage() is not
29130 correctly supported.
29132 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29135 * gst/vaapi/Makefile.am:
29136 * gst/vaapi/gstvaapisink.c:
29137 * gst/vaapi/gstvaapisink.h:
29138 * gst/vaapi/gstvaapiuploader.c:
29139 * gst/vaapi/gstvaapiuploader.h:
29140 vaapisink: add support for raw YUV buffers.
29141 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29142 It is up to the caller to negotiate source caps (for images) and output
29143 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29144 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29145 GstBuffer on sink pads.
29146 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29147 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29149 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29151 * gst-libs/gst/vaapi/gstvaapiimage.c:
29152 image: fix GstVaapiImage map and unmap.
29153 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29154 structure correctly filled in if the image was already mapped.
29155 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29156 was already unmapped.
29158 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29161 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29162 videobuffer: fix memory leak for surface and image.
29163 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29164 thus resulting on actual memory leak of GstVaapiImage when using them
29165 for downloads/uploads from VA surfaces and more specifically surfaces
29166 when the pipeline is shutdown. i.e. vaTerminate() was never called
29167 because the resources were not unreferenced, and thus not deallocated
29169 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29171 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29176 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29178 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29179 h264: fix picture size in macroblocks.
29180 The picture size signalled by sps->{width,height} is the actual size with
29181 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29182 and pic_height_in_map_units_minus1. VA driver expects that original size,
29184 There is another issue pending: frame cropping information needs to be
29187 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29189 * gst-libs/gst/codecparsers/Makefile.am:
29190 codecparsers: always build parserutils first.
29191 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29192 This is needed since that's the common dependency for actual codec
29193 parsers (gstvc1parser.c for instance).
29195 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29197 * gst-libs/gst/codecparsers/Makefile.am:
29198 codecparsers: always build the VC-1 parser library.
29199 ... this is useful to make sure pixel-aspect-ratio and framerate
29200 information are correctly parsed since we have no means to detect
29201 that at configure time.
29203 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29206 * gst-libs/gst/codecparsers/Makefile.am:
29207 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29208 mpeg2: fix PAR calculation from commit bd11bae.
29209 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29210 correct PAR values. While doing so, require a newer version of the
29211 bitstream parser library.
29212 Note: it may be necessary to also parse the Sequence_Display_Extension()
29214 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29215 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29217 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29219 * gst-libs/gst/vaapi/Makefile.am:
29220 Fix build with the GNU gold linker.
29221 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29222 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29224 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29227 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29228 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29229 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29230 wayland: port to 1.0 version of the protocol.
29231 This patch updates to relect the 1.0 version of the protocol. The main
29232 changes are the switch to wl_registry for global object notifications
29233 and the way that the event queue and file descriptor is processed.
29234 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29236 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29238 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29239 h264: fix incorrect integration of previous commit (4d31e1e).
29240 git am got confused somehow, though the end result doesn't change at
29241 all since we require both SPS and PPS to be parsed prior to decoding
29244 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29246 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29247 h264: start decoding slices after first SPS/PPS activation.
29248 Only start decoding slices when at least one SPS and PPS got activated.
29249 This fixes cases when a source represents a substream of another stream
29250 and no SPS and PPS was inserted before the first slice of the generated
29253 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29255 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29256 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29257 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29258 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29259 16 reference frames, thus including both fields.
29261 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29264 h264: fix interlaced stream decoding with MMCO.
29265 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29266 is equal to 1, i.e. when memory management control operations are used. In
29267 particular, when field_pic_flag is set to 0, the new reference flags shall
29268 be applied to both fields.
29270 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29272 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29273 h264: add initial support for interlaced streams.
29274 Decoded frames are only output when they are complete, i.e. when both
29275 fields are decoded. This also means that the "interlaced" caps is not
29276 propagated to vaapipostproc or vaapisink elements. Another limitation
29277 is that interlaced bitstreams with MMCO are unlikely to work.
29279 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29281 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29282 h264: split remove_reference_at() into finer units.
29283 Split remove_reference_at() into a function that actually removes the
29284 specified entry from the short-term or long-term reference picture array,
29285 and a function that sets reference flags to the desired value, possibly
29286 zero. The latters marks the picture as "unused for reference".
29288 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29290 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29291 decoder: fix gst_vaapi_picture_new_field() object type.
29292 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29293 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29294 shall generate a GstVaapiPictureH264 object.
29296 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29299 h264: add picture structure for reference picture marking process.
29300 Introduce new `structure' field to the H.264 specific picture structure
29301 so that to simplify the reference picture marking process. That local
29302 picture structure is derived from the original picture structure, as
29303 defined by the syntax elements field_pic_flag and bottom_field_flag.
29305 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29307 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29308 h264: introduce new frame store structure.
29309 The frame store represents a Decoded Picture Buffer entry, which can
29310 hold up to two fields. So far, the frame store is only used to hold
29313 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29315 * ext/codecparsers:
29316 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29317 73d6aab h264: fix rbsp_more_data() implementation
29318 25d04cf h264: fix error code for invalid size parsed in SPS
29319 84798e5 fix FSF address
29321 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29324 h264: minor clean-ups.
29325 Move DPB flush up if the current picture to decode is an IDR. Besides,
29326 don't bother to check for IDR pictures in dpb_add() function since an
29327 explicit DPB flush was already performed in this case.
29329 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29331 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29332 h264: simplify reference picture marking process.
29333 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29334 of maintaining them separately. This avoids refs/unrefs while making it
29335 possible to generate the list based on the actual picture structure.
29336 This also ensures that the list of generated ReferenceFrames[] actually
29337 matches what reference frames are available in the DPB. i.e. short_ref[]
29338 and long_ref[] entries are implied from the DPB, so there is no risk of
29339 having "dangling" references.
29341 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29343 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29344 h264: introduce per-field POC in GstVaapiPictureH264.
29345 Use the POC member available in the GstVaapiPicture base class and
29346 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29347 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29348 initialized to INT_MAX, so that to simplify picture POC calculation
29349 for non frame pictures.
29351 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29353 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29354 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29355 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29356 reference bits, thus simplifying the reference picture marking process
29357 to only track a single set of reference flags. Also introduce a new
29358 long_term_frame_idx member.
29360 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29362 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29363 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29365 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29367 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29368 h264: fill in GstVaapiPicture structure.
29369 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29371 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29373 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29374 h264: add vaapi_fill_picture() helper.
29375 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29376 to VAPictureH264 structure. This is preparatory work to get rid of the
29377 local VAPictureH264 member in GstVaapiPictureH264.
29379 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29381 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29382 h264: fix activation order of picture and sequence parameters.
29383 Delay ensure_context() until we actually need a VA context for allocating
29384 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29385 of a new picture parameter set occurs, thus also implying an activation
29386 of the related sequence parameter set.
29387 The most important thing was to drop the global pps and sps pointers since
29388 they may not have matched the currently activated picture parameter or
29389 sequence parameter sets at the specified decode point.
29390 Anoter positive side-effect is that this cleans up all occurrences of
29391 decode_current_picture() to only keep those useful in decode_picture(),
29392 before a new picture is allocated, or in decode_sequence_end() when
29393 an end-of-stream or end-of-sequence condition occurred.
29395 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29397 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29398 h264: fix scaling list generation.
29399 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29400 array was partially copied to the VAIQMatrixBufferH264. While we are
29401 at it, also improve bounds checking and avoid copying 8x8 scaling
29402 lists if transform_8x8_mode_flag is set to 0.
29404 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29406 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29407 h264: fix detection of picture boundaries.
29408 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29409 unit of a primary coded picture.
29411 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29413 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29414 h264: optimize handling of scaling lists.
29415 Don't copy scaling lists twice to an intermediate state. Rather, directly
29416 use the scaling lists from GstH264PPS since they would match those provided
29417 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29418 available in the bitstream.
29420 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29422 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29423 h264: simplify code when MMCO is 5.
29424 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29425 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29426 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29428 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29430 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29431 h264: fix MMCO-based reference picture marking process.
29432 Fix adaptive memory control decoded reference picture marking process
29433 implementation for operations 2 to 6, thus also fixing support for
29434 long-term reference pictures.
29436 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29438 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29439 h264: move MMCO handlers out of the loop (cosmetics).
29440 This change only splits each individual MMCO handler into several functions
29441 dedicated for each operation. This is needed to perform further work later
29444 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29447 debian: fix make dist for packaging.
29448 bzip2 tarballs are now used, so update the deb.upstream dependencies
29449 to include dist-bzip2 instead of plain old dist, and use the correct
29450 tar extract options to handle that format.
29452 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29455 configure: generate bzip2 tarballs in ustar format by default.
29457 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29460 configure: bump glib required version to 2.31.2.
29461 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29462 rather than g_mutex_new() and g_cond_new() respectively.
29464 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29466 * gst/vaapi/gstvaapidecode.c:
29467 * gst/vaapi/gstvaapidecode.h:
29468 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29469 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29470 inside the structure they are locking.
29471 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29472 allocation functions.
29473 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29474 initialise inside the GObject _init function and clear inside the _finalize
29475 which is guaranteed to only be called once and after the object is no longer
29478 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29480 * gst/vaapi/gstvaapidecode.c:
29481 vaapidecode: fix compiler warnings.
29482 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29483 during destruction of the element. Don't print out (uninitialised)
29484 error code when allocation of video buffer failed.
29486 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29488 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29489 h264: add flag to compile with strict DPB ordering mode.
29490 Allow build with strict DPB ordering mode whereby evicted entries
29491 are replaced by the next entries, in order instead of optimizing
29492 it away with the last entry in the DPB.
29493 This is only useful for debugging purpose, against a reference SW
29494 decoder for example.
29496 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29498 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29499 h264: drop extra code covered by built-in codecparsers.
29500 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29501 a newer version of codecparsers/ are used if the system provided one is
29502 now recent enough to have those required extensions.
29504 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29506 * gst-libs/gst/codecparsers/Makefile.am:
29507 codecparsers: fix generation of symlinks.
29508 Try to improve dependencies while generating symlinks to externally
29509 maintained copy of codecparsers (derived from upstream git master
29512 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29514 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29515 vc1: use framerate information from bitstream parser.
29517 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29519 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29520 vc1: use pixel-aspect-ratio from bitstream parser.
29521 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29522 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29524 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29526 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29527 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29528 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29529 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29531 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29534 * gst-libs/gst/codecparsers/Makefile.am:
29535 codecparsers: h264: use submodule sources.
29536 Use newer sources from the codecparsers/ submodule for
29537 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29538 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29540 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29544 * gst-libs/gst/codecparsers/Makefile.am:
29545 * gst-libs/gst/codecparsers/gstjpegparser.c:
29546 * gst-libs/gst/codecparsers/gstjpegparser.h:
29547 * gst-libs/gst/vaapi/Makefile.am:
29548 codecparsers: jpeg: use submodule sources.
29550 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29557 * ext/codecparsers:
29558 Add codecparsers submodule.
29560 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29563 .gitignore: updates.
29565 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29568 autogen: fix check for gtkdocize and autoreconf.
29569 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29570 script would fail to report that correctly because test -z was not passed
29571 any argument (empty string "" in this case).
29573 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29575 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29576 h264: use pixel-aspect-ratio from SPS header.
29577 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29578 from the sequence headers.
29579 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29580 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29582 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29584 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29585 h264: add decode_nalu() helper function.
29586 Split decode_buffer() into the core infrastructure that determines
29587 the NAL units contained in the adapter and the actual function that
29588 decodes the NAL unit.
29590 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29592 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29593 h264: fix end-of-stream conditions (flush).
29594 Decode pending data in the adapter prior to processing the actual
29595 code for end-of-stream.
29597 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29600 mpeg2: add decode_packet() helper function.
29601 Split decode_buffer() into the core infrastructure that determines
29602 the packets contained in the adapter and the actual function that
29603 decodes the packet data.
29605 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29607 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29608 mpeg2: fix end-of-stream conditions (flush).
29609 Decode pending data in the adapter prior to processing the actual
29610 code for end-of-stream. Initial code from Feng Yuan.
29612 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29614 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29615 mpeg2: fix memory leak of empty packets.
29616 Fix memory leakage of empty packets, i.e. packets that only contain
29617 the start code prefix. In particular, free empty user-data packets.
29618 Besides, the codec parser will already fail gracefully if the packet
29619 to parse does not have the minimum required size. So, we can also
29620 completely drop the block of code that used to handle packets of size 4
29621 (including the start code).
29623 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29625 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29626 mpeg2: fix return value for "no-data" conditions.
29627 Fix return value when the second scan for start code fails. This means
29628 there is not enough data to determine the full extents of the current
29629 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29630 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29632 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29634 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29635 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29636 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29637 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29638 or with a size equals to zero. In this case, that buffer is simply
29639 skipped and the function returns TRUE. A NULL buffer argument still
29640 marks the end-of-stream.
29642 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29644 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29645 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29646 decoder: drop unused functions.
29648 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
29650 * gst/vaapi/gstvaapidecode.c:
29651 vaapidecode: flush buffers when receiving EOS.
29652 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29654 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29656 * debian.upstream/Makefile.am:
29657 debian: fix make dist for packaging.
29659 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29661 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29662 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29663 wayland: cosmetics (remove tabs).
29665 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
29667 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29668 wayland: add support for windowed mode.
29669 Rather than always making the surface fullscreen instead implement the
29670 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29671 fullscreen on not depending on that.
29672 Reviewed-by: Joe Konno <joe.konno@intel.com>
29673 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29675 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29678 Bump version for development.
29680 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29684 Fix and document build dependencies better.
29686 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29688 * debian.upstream/control.in:
29689 debian: fix GStreamer build dependencies.
29691 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29694 * debian.upstream/control.in:
29695 debian: fix Wayland build dependencies.
29697 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29699 * debian.upstream/control.in:
29700 debian: fix conditional build of packages.
29701 Make it still possible to build package even if one of the build dependencies
29702 for a specific video backend is not available.
29704 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29706 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29707 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29708 utils: drop unused GLX helpers.
29709 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29710 extensions since they are not used throughout gstreamer-vaapi.
29712 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29714 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29715 utils: fix build with <GL/glext.h> version >= 85.
29716 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29717 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29718 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29719 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29720 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29721 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29722 newer versions of the <GL/glext.h> header.
29724 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29727 configure: update VA-API version requirements.
29728 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29730 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29732 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29733 h264: review and report errors accordingly.
29734 Use GST_ERROR() to report real errors instead of hiding them into
29737 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29739 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29740 h264: exclusively use GstAdapter, drop sub-buffer hack.
29741 Maintaining the sub-buffer is rather suboptimal especially since we
29742 were also maintaining a GstAdapter. Now, we only use the GstAdapter
29743 thus requiring minor extra parsing when receiving avcC buffers.
29745 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29750 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29755 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29757 * debian.upstream/gstreamer-vaapi.install.in:
29758 debian: fix packaging on recent Ubuntu platforms.
29759 Use explicit GStreamer plugins path.
29761 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29763 * docs/reference/libs/libs-docs.xml.in:
29764 * docs/reference/libs/libs.core.types:
29765 docs: fix build for make dist.
29767 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
29769 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29770 wayland: set opaque region for YUV surface.
29771 This allows the compositor to optimize redraws and cull away changes
29772 obscured by the video surface.
29773 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29775 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29778 configure: fix check for libva-glx and libva-drm.
29780 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29782 * gst-libs/gst/vaapi/glibcompat.h:
29783 glibcompat: add replacement for g_cond_wait_until().
29785 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29787 * gst/vaapi/gstvaapidecode.c:
29788 * gst/vaapi/gstvaapidownload.c:
29789 * gst/vaapi/gstvaapipostproc.c:
29790 * gst/vaapi/gstvaapisink.c:
29791 * gst/vaapi/gstvaapiupload.c:
29792 plugins: include "sysdeps.h" instead of "config.h".
29794 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29796 * gst-libs/gst/codecparsers/gstjpegparser.c:
29797 codecparsers: jpeg: add missing includes.
29799 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29801 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29802 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29803 * gst/vaapi/gstvaapidecode.c:
29804 vaapidecode: don't reset decoder if codec type is the same.
29805 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29806 if the underlying codec type actually changed. This makes it possible
29807 to be more tolerant with certain MPEG-2 streams that get parsed to
29808 form caps that are compatible with the previous state but minor changes
29811 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29813 * gst/vaapi/gstvaapidecode.c:
29814 vaapidecode: simplify codec lookup from caps.
29815 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29816 the specified caps. Don't globally expose this function since this is
29817 really trivial and only used in the vaapidecode element.
29819 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29821 * gst/vaapi/gstvaapidecode.c:
29822 * gst/vaapi/gstvaapidecode.h:
29823 vaapidecode: improve "no free surface" conditions.
29824 Previously, vaapidecode would wait up to one second until a free surface
29825 is available, or it aborts decoding. Now, vaapidecode waits until the
29826 last decoded surface was to be presented, plus one second. Besides, end
29827 times are now expressed relative to the monotonic clock.
29829 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29831 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29832 * gst/vaapi/gstvaapidecode.c:
29833 decoder: propagate buffer duration downstream.
29835 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29837 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29838 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29839 surfaceproxy: add "duration" property.
29841 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29843 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29844 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29845 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29846 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29847 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29848 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29849 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29850 decoder: cope with new GstVaapiContextInfo based API.
29851 Update decoders to report the maximum number of reference frames to use.
29853 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29855 * gst-libs/gst/vaapi/gstvaapicontext.c:
29856 context: JPEG codec does not need any reference frame.
29858 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29860 * gst-libs/gst/vaapi/gstvaapicontext.c:
29861 * gst-libs/gst/vaapi/gstvaapicontext.h:
29862 context: allow number of reference frames to be set.
29863 Make it possible to specify the maximum number of references to use within
29864 a single VA context. This helps reducing GPU memory allocations to the useful
29865 number of references to be used.
29867 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29869 * gst/vaapi/gstvaapipostproc.c:
29870 vaapipostproc: fix deinterlace-{mode,method} types definition.
29872 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29874 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29875 mpeg4: fix debug info for unsupported profile.
29877 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29879 * gst-libs/gst/vaapi/gstvaapicontext.c:
29880 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29881 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29882 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29883 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29884 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29885 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29886 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29887 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
29888 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
29889 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29890 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29891 * gst-libs/gst/vaapi/gstvaapiimage.c:
29892 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
29893 * gst-libs/gst/vaapi/gstvaapiobject.c:
29894 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29895 * gst-libs/gst/vaapi/gstvaapisurface.c:
29896 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
29897 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29898 * gst-libs/gst/vaapi/gstvaapitexture.c:
29899 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29900 * gst-libs/gst/vaapi/gstvaapivalue.c:
29901 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29902 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
29903 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29904 * gst-libs/gst/vaapi/gstvaapivideopool.c:
29905 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29906 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
29907 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29908 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29909 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29910 libs: fix build in strict ISO C mode.
29912 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29914 * gst/vaapi/gstvaapi.c:
29915 * gst/vaapi/gstvaapidecode.c:
29916 * gst/vaapi/gstvaapidownload.c:
29917 * gst/vaapi/gstvaapipostproc.c:
29918 * gst/vaapi/gstvaapisink.c:
29919 * gst/vaapi/gstvaapiupload.c:
29920 plugins: fix build in strict ISO C mode.
29922 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29924 * pkgconfig/gstreamer-vaapi-glx.pc.in:
29925 * pkgconfig/gstreamer-vaapi-x11.pc.in:
29926 * pkgconfig/gstreamer-vaapi.pc.in:
29927 pkgconfig: fix dependencies and slightly improve description.
29928 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
29929 descriptions with clearer renderer names.
29931 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
29933 * gst/vaapi/gstvaapidecode.c:
29934 vaapidecode: acquire lock only if the mutex exists.
29935 When playback stops the GstVaapiDecode object is reset into a clean
29936 state. However, surfaces may still be referenced by library users and
29937 unreferencing them after the reset triggers an access to an unset mutex.
29938 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29940 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29942 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29943 decoder: drop extraneous return for void function.
29945 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29947 * gst-libs/gst/vaapi/gstvaapiimage.c:
29948 image: don't use (void *) pointer arithmetic.
29950 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
29952 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29953 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29954 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29955 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29956 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29957 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29958 * gst-libs/gst/vaapi/gstvaapisurface.h:
29959 * gst-libs/gst/vaapi/gstvaapitypes.h:
29960 * gst/vaapi/gstvaapipostproc.h:
29961 Do not forward declare enums.
29962 Forward declaring enums is not allowed by the C standard and aborts
29963 compilation if the header file is included in a C++ project.
29964 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29966 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29969 configure: fix check for VA/DRM API.
29971 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29973 * gst/vaapi/gstvaapisink.c:
29974 vaapisink: fix calculation of window size.
29975 If either dimension is out-of-bounds, then scale window to fit the
29976 display size, even if the output is to be rotated. Use the standard
29977 gst_video_sink_center_rect() function to center and scale the window
29978 wrt. the outer (display) bounds.
29980 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
29982 * gst/vaapi/gstvaapisink.c:
29983 * gst/vaapi/gstvaapisink.h:
29984 vaapisink: add video rotation support.
29985 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29987 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29989 * gst/vaapi/gstvaapipluginutil.h:
29990 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
29991 This macro helps swapping variables while maintaining the correct underlying
29992 and primitive type.
29994 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29996 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29997 display: fix display aspect ratio when display is rotated.
29999 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30002 * gst-libs/gst/vaapi/Makefile.am:
30003 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30004 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30005 display: fix physical display size when display is rotated.
30007 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30009 * gst-libs/gst/vaapi/gstvaapivalue.c:
30010 display: fix GstVaapiRotation enumeration of values.
30012 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30014 * docs/reference/libs/libs-docs.xml.in:
30015 * docs/reference/libs/libs-sections.txt:
30016 * gst-libs/gst/vaapi/Makefile.am:
30017 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30018 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30019 * gst/vaapi/gstvaapidecode.c:
30020 * gst/vaapi/gstvaapidownload.c:
30021 * gst/vaapi/gstvaapipostproc.c:
30022 * gst/vaapi/gstvaapisink.c:
30023 * gst/vaapi/gstvaapiupload.c:
30024 vaapisink: drop obsolete GstVaapiVideoSink interface.
30025 This interface was deprecated since 0.3.x series when the GstVideoContext
30026 interface was added to the main GStreamer APIs.
30028 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30030 * gst/vaapi/gstvaapisink.c:
30031 * gst/vaapi/gstvaapisink.h:
30032 vaapisink: automatically detect overlay rendering mode.
30033 Retain the VA surface until another surface is to be displayed only
30034 if VA display rendering mode is determined to be "overlay" mode.
30036 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30038 * gst/vaapi/gstvaapisink.c:
30039 * gst/vaapi/gstvaapisink.h:
30040 vaapisink: retain VA surface until another one is displayed.
30041 Keep VA surface proxy associated with the surface that is currently
30042 being displayed. This makes sure that surface is not released back
30043 to the pool of surfaces free to use for decoding. This is necessary
30044 with VA driver implementations that support rendering to an overlay
30045 pipe. Otherwise, there could be cases where we are decoding into a
30046 surface that is being displayed, hence some flickering.
30048 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30050 * gst/vaapi/gstvaapisink.h:
30051 vaapisink: fix build with older toolchains.
30052 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30054 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30056 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30057 display: partially revert 8ebe4d6.
30058 Don't try to fix up the initial values, this could make things worse.
30059 Simply assume the driver does not support the capability in this case.
30061 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30063 * tests/test-display.c:
30064 tests: dump VA display properties.
30066 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30068 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30069 display: fix validation process of properties during discovery.
30070 Some VA drivers (e.g. EMGD) can have completely random values for initial
30071 display attributes. So, try to improve the discovery process to check the
30072 initial display attribute values actually fall within valid bounds. If not,
30073 try to reset those to some sensible values like the default value reported
30074 through vaQueryDisplayAttributes().
30076 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30078 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30079 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30080 display: add color balance properties.
30081 Add support for hue, saturation, brightness and contrast attributes.
30083 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30085 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30086 display: initialize default attribute values.
30087 Ensure the display attribute is actually supported by trying to retrieve
30088 its current value during GstVaapiDisplay creation.
30090 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30092 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30093 display: raise "notify" for property changes.
30095 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30097 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30098 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30099 display: expose display attributes as GObject properties.
30100 Expose VA display "render-mode" and "rotation" attributes as standard
30101 GObject properties.
30103 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30105 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30106 display: install properties in batch.
30107 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30108 It is useful to maintain properties as GParamSpec so that to be able to raise
30109 "notify" signals by id instead of by name in the future.
30111 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30113 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30114 display: fix gst_vaapi_display_has_property().
30115 Append the "render-mode" and "rotation" properties, should they be supported
30116 by the underlying VA driver.
30118 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30120 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30121 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30122 * gst-libs/gst/vaapi/gstvaapitypes.h:
30123 * gst-libs/gst/vaapi/gstvaapiutils.c:
30124 * gst-libs/gst/vaapi/gstvaapiutils.h:
30125 * gst-libs/gst/vaapi/gstvaapivalue.c:
30126 * gst-libs/gst/vaapi/gstvaapivalue.h:
30127 display: add support for rotation modes.
30128 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30130 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30132 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30133 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30134 * gst-libs/gst/vaapi/gstvaapitypes.h:
30135 * gst-libs/gst/vaapi/gstvaapivalue.c:
30136 * gst-libs/gst/vaapi/gstvaapivalue.h:
30137 display: add support for rendering modes.
30138 A rendering mode can be "overlay" or "texture"'ed blit.
30139 The former mode implies that a VA surface used for rendering can't be
30140 re-used right away for decoding, so the sink shall make provisions to
30141 retain the associated surface proxy until the next surface is to be
30143 The latter mode implies that the VA surface is implicitly copied to an
30144 intermediate backing store, or back buffer of a frame buffer, so the
30145 associated surface proxy can be disposed right away.
30147 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30149 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30150 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30151 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30152 display: add initial support for display attributes.
30153 The VA display attributes are mapped to properties so that to maintain the
30154 GStreamer terminology. Properties are to be identified by name, but internal
30155 functions are available to lookup the property by the actual VA display
30158 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30160 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30161 jpeg: fix end-of-image (EOI) handler.
30162 decode_current_picture() was converted to return a gboolean instead
30163 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30164 loop as expected, or could cause an error instead.
30165 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30167 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30169 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30170 mpeg2: include start code into VA slice data buffer.
30171 Integrate the start code prefix in the slice data buffer that is submitted
30172 to the hardware. VA-API specifies that slice_data_offset is the offset to
30173 the first byte of slice data. And, for MPEG-2, slice() data begins with
30174 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30176 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30179 autogen: fix configure script generation when srcdir != builddir.
30180 This patch allows for regenerating the configure script from a build
30181 directory that is not the actual source directory.
30182 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30184 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30187 configure: use new libtool syntax.
30188 This now requires libtool >= 2.2 to regenerate the configure script.
30189 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30191 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30193 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30194 decoder: use g_object_notify_by_pspec().
30195 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30196 avoid a property name lookup. i.e. this makes notifications faster to
30197 the `vaapidecode' element.
30198 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30200 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30202 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30203 wayland: handle de-interlacing flags.
30204 VA/Wayland API was updated to allow flags for bob deinterlacing.
30205 More elaborated filters will require a complete VA/VPP pipeline.
30207 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30209 * gst-libs/gst/codecparsers/gstjpegparser.c:
30210 jpeg: fix default quantization tables.
30211 Two elements in the luminance quantization table were wrong. So,
30212 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30213 in zig-zag order from the standard ones (Tables K.1 and K.2).
30215 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30217 * gst-libs/gst/codecparsers/gstjpegparser.c:
30218 jpeg: compute default Huffman tables.
30219 ... instead of having them pre-calculated. This saves around 1.5 KB
30220 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30221 to do more work. Though, the client application may have to call that
30222 function at most once, only.
30224 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30226 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30227 display: drop VAProfileNone entries from debug messages.
30229 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30231 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30232 display: query for supported display attributes.
30233 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30235 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30237 * gst-libs/gst/vaapi/gstvaapiutils.c:
30238 * gst-libs/gst/vaapi/gstvaapiutils.h:
30239 utils: add string_of_VADisplayAttributeType() helper.
30240 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30242 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30244 * gst/vaapi/gstvaapisink.c:
30245 vaapisink: handle VA/DRM API.
30246 This is not useful in practice but for raw performance evaluation when
30247 the sink is invoked with display=drm sync=false. fakesink could also be
30250 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30252 * gst/vaapi/Makefile.am:
30253 * gst/vaapi/gstvaapipluginutil.c:
30254 plugins: add support for headless pipelines.
30256 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30258 * tests/Makefile.am:
30260 * tests/test-display.c:
30261 * tests/test-windows.c:
30262 tests: add support for headless decoding.
30264 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30268 * debian.upstream/Makefile.am:
30269 * debian.upstream/control.in:
30270 * debian.upstream/libgstvaapi-drm.install.in:
30271 * gst-libs/gst/vaapi/Makefile.am:
30272 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30273 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30274 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30275 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30276 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30277 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30278 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30279 * pkgconfig/Makefile.am:
30280 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30281 Add initial support for VA/DRM.
30283 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30286 * gst-libs/gst/vaapi/Makefile.am:
30287 Fix build without X11 (again).
30288 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30289 files list wrt. x11, glx and wayland backends.
30291 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30294 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30295 * gst-libs/gst/vaapi/gstvaapicompat.h:
30296 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30297 jpeg: update to the latest VA-API changes (0.32.1+).
30299 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30301 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30302 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30303 * gst/vaapi/gstvaapisink.c:
30304 wayland: implement display ::get_size*() hooks.
30306 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30308 * gst/vaapi/gstvaapipluginutil.c:
30309 plugins: prefer X11 rendering over GLX.
30310 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30311 for rendering instead of texturing.
30313 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30315 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30316 wayland: use scale fullscreen method.
30317 This makes the compositor scale the surface to fit and preserves aspect
30319 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30321 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30323 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30324 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30325 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30327 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30329 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30330 wayland: fix double disconnect of display.
30332 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30334 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30335 wayland: mangle display name for cache lookups.
30337 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30340 * debian.upstream/Makefile.am:
30341 * debian.upstream/control.in:
30342 * debian.upstream/libgstvaapi-wayland.install.in:
30343 * pkgconfig/Makefile.am:
30344 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30345 wayland: add packaging files.
30347 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30349 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30350 * gst/vaapi/gstvaapipluginutil.c:
30351 * gst/vaapi/gstvaapisink.c:
30352 * pkgconfig/Makefile.am:
30353 Fix build without X11.
30355 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30357 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30358 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30359 * gst/vaapi/Makefile.am:
30360 * gst/vaapi/gstvaapipluginutil.c:
30361 * gst/vaapi/gstvaapisink.c:
30362 plugins: add support for Wayland.
30364 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30366 * tests/Makefile.am:
30368 * tests/test-display.c:
30369 * tests/test-windows.c:
30370 tests: add support for Wayland.
30372 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30376 * gst-libs/gst/vaapi/Makefile.am:
30377 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30378 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30379 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30380 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30381 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30382 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30383 Add initial support for VA/Wayland.
30384 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30386 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30388 * gst/vaapi/gstvaapipluginbuffer.c:
30389 plugins: fix creation of video buffer from surface proxy.
30390 Fix a regression introduced with commit 8ef490a.
30392 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30394 * gst/vaapi/gstvaapipluginbuffer.c:
30395 * gst/vaapi/gstvaapipluginutil.c:
30396 plugins: use new display types more.
30397 In particular, simplify gst_vaapi_reply_to_query() with display types.
30398 Likewise for creating new video buffers.
30400 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30402 * gst/vaapi/gstvaapidecode.c:
30403 * gst/vaapi/gstvaapidownload.c:
30404 * gst/vaapi/gstvaapipluginutil.c:
30405 * gst/vaapi/gstvaapipluginutil.h:
30406 * gst/vaapi/gstvaapipostproc.c:
30407 * gst/vaapi/gstvaapisink.c:
30408 * gst/vaapi/gstvaapiupload.c:
30409 plugins: fix display type selection and propagation.
30410 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30411 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30412 queries from vaapidecode shall get a valid answer from vaapisink.
30414 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30416 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30417 display: fix destruction of mutex.
30419 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30421 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30422 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30423 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30424 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30425 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30426 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30427 * gst/vaapi/gstvaapipluginutil.c:
30428 * gst/vaapi/gstvaapipluginutil.h:
30429 * gst/vaapi/gstvaapisink.c:
30430 display: add display types.
30431 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30432 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30433 type to "any", and add a "display-type" attribute.
30435 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30437 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30438 display: use prefixed display names for cache lookups.
30439 This improves display name comparisons by always allocating a valid display
30440 name. This also helps to disambiguate lookups by name in the global display
30441 cache, should a new backend be implemented.
30443 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30445 * gst/vaapi/gstvaapipluginutil.h:
30446 plugins: declare helper functions as internal.
30448 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30450 * docs/reference/libs/libs-sections.txt:
30451 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30452 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30453 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30454 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30455 * gst/vaapi/Makefile.am:
30456 * gst/vaapi/gstvaapidecode.c:
30457 * gst/vaapi/gstvaapidownload.c:
30458 * gst/vaapi/gstvaapipluginbuffer.c:
30459 * gst/vaapi/gstvaapipluginbuffer.h:
30460 * gst/vaapi/gstvaapipostproc.c:
30461 * gst/vaapi/gstvaapiupload.c:
30462 videobuffer: drop deprecated functions.
30463 Move video buffer creation routines to plugin elements. That exclusively
30464 uses *_typed_new*() variants.
30466 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30468 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30469 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30470 videobuffer: mark video buffer creation routines as deprecated.
30471 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30472 plugin elements. So deprecate any explicit creation routines that are not the
30473 new *_typed_new*() variants.
30475 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30477 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30478 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30479 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30480 videobuffer: factor out base and GLX implementations.
30481 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30482 This avoids duplication of code, and makes it possible to further implement
30483 generic video buffer creation routines that automatically map to base or GLX
30486 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30488 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30489 utils: fix gl_create_context() with parent context set.
30490 If GLX window was created from a foreign Display, then that same Display shall
30491 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30492 will now use the same Display that the parent, if available.
30493 This fixes cluttersink with the Intel GenX VA driver.
30495 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30497 * gst/vaapi/gstvaapidecode.c:
30498 * gst/vaapi/gstvaapidownload.c:
30499 * gst/vaapi/gstvaapipluginutil.c:
30500 * gst/vaapi/gstvaapipluginutil.h:
30501 * gst/vaapi/gstvaapipostproc.c:
30502 * gst/vaapi/gstvaapisink.c:
30503 * gst/vaapi/gstvaapiupload.c:
30504 pluginutils: improve automatic display type selection.
30506 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30508 * gst/vaapi/gstvaapipluginutil.c:
30509 * gst/vaapi/gstvaapipluginutil.h:
30510 pluginutils: cosmetics (indentation fixes).
30512 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30515 configure: simplify video outputs summary.
30517 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30520 * gst/vaapi/gstvaapipluginutil.c:
30521 * gst/vaapi/gstvaapipluginutil.h:
30522 * gst/vaapi/gstvaapisink.c:
30523 * gst/vaapi/gstvaapisink.h:
30524 configure: drop check for --enable-vaapisink-glx.
30525 vaapisink is now built with support for multiple display types, whenever
30526 they are enabled. The new "display" attribute is used to select a particular
30529 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30532 * gst-libs/gst/vaapi/gstvaapicompat.h:
30533 * gst/vaapi/Makefile.am:
30534 * gst/vaapi/gstvaapidecode.c:
30535 * gst/vaapi/gstvaapidownload.c:
30536 * gst/vaapi/gstvaapipluginutil.c:
30537 * gst/vaapi/gstvaapipostproc.c:
30538 * gst/vaapi/gstvaapiupload.c:
30539 * tests/test-display.c:
30540 configure: drop check for --enable-vaapi-glx.
30541 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30542 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30543 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30544 we now default to use TFP+FBO.
30545 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30546 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30547 API shall be used as it covers most usages. e.g. AMD driver can't render to
30550 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30553 tests: allow GLX output, if available and selected.
30555 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30557 * tests/Makefile.am:
30560 * tests/test-decode.c:
30561 * tests/test-subpicture.c:
30562 * tests/test-surfaces.c:
30563 tests: use common display and window creation routines.
30564 Add new --output option to select the renderer. Use --list-outputs to
30565 print a list of supported renderers.
30567 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30569 * tests/Makefile.am:
30570 tests: move encoded bitstreams to libutils.la.
30572 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30574 * tests/Makefile.am:
30575 tests: build convenience library for common utilities.
30577 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30579 * tests/Makefile.am:
30580 * tests/test-display.c:
30581 tests: simplify build with various display options.
30583 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30586 configure: improve checks for X11.
30588 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30590 * tests/Makefile.am:
30591 configure: fix previous commit for GLX deps.
30593 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30596 * gst-libs/gst/vaapi/Makefile.am:
30597 configure: improve checks for GLX.
30599 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30602 * gst-libs/gst/vaapi/gstvaapicompat.h:
30603 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30604 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30605 * gst-libs/gst/vaapi/gstvaapiutils.h:
30606 Drop support for obsolete VA-API versions < 0.30.4.
30608 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30611 * gst-libs/gst/Makefile.am:
30612 * gst-libs/gst/gstutils_version.h.in:
30613 * gst/vaapi/gstvaapisink.c:
30614 vaapisink: drop checks for new APIs used by default.
30615 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30616 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30617 are no longer necessary.
30619 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30622 configure: cosmetics and some minor changes.
30623 - Better grouping of feature checks
30624 - Sort list of config files to generate
30626 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30629 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30630 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30631 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30632 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30633 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30634 * gst-libs/gst/vaapi/gstvaapiutils.h:
30635 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30636 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30637 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30639 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30641 * gst-libs/gst/vaapi/Makefile.am:
30642 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30643 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30644 Drop obsolete GstVaapiTSB.
30645 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30647 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30649 * docs/reference/libs/libs-sections.txt:
30650 docs: add missing entries for the JPEG decoder.
30652 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30655 * gst-libs/gst/vaapi/Makefile.am:
30656 * gst/vaapi/gstvaapidecode.c:
30657 * tests/test-decode.c:
30658 * tests/test-subpicture.c:
30659 Drop all references to USE_CODEC_PARSERS.
30661 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30665 * docs/reference/libs/libs-sections.txt:
30666 * docs/reference/libs/libs.core.types:
30667 * gst-libs/gst/vaapi/Makefile.am:
30668 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30669 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30670 * gst/vaapi/gstvaapidecode.c:
30671 * gst/vaapi/gstvaapidecode.h:
30672 * tests/test-decode.c:
30673 * tests/test-subpicture.c:
30674 Drop FFmpeg-based decoders.
30675 GStreamer codecparsers-based decoders are the only supported decoders now.
30676 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30678 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
30681 * debian.upstream/control.in:
30682 configure: bump glib required version to 2.28.
30683 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30685 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
30687 * gst/vaapi/gstvaapidecode.h:
30688 * gst/vaapi/gstvaapidownload.h:
30689 * gst/vaapi/gstvaapipostproc.h:
30690 * gst/vaapi/gstvaapisink.h:
30691 * gst/vaapi/gstvaapiupload.h:
30692 plugins: declare _get_type() functions as const.
30693 Declaring a function as const enables better optimization of calls to
30695 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30697 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
30699 * gst/vaapi/gstvaapidecode.c:
30700 * gst/vaapi/gstvaapidownload.c:
30701 * gst/vaapi/gstvaapipostproc.c:
30702 * gst/vaapi/gstvaapisink.c:
30703 * gst/vaapi/gstvaapiupload.c:
30704 plugins: use g_clear_object() wherever applicable.
30705 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30707 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
30709 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30710 * gst-libs/gst/vaapi/gstvaapicontext.h:
30711 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30712 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30713 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30714 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30715 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30716 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30717 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30718 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30719 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30720 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30721 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30722 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30723 * gst-libs/gst/vaapi/gstvaapiimage.h:
30724 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30725 * gst-libs/gst/vaapi/gstvaapiobject.h:
30726 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30727 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30728 * gst-libs/gst/vaapi/gstvaapisurface.h:
30729 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30730 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30731 * gst-libs/gst/vaapi/gstvaapitexture.h:
30732 * gst-libs/gst/vaapi/gstvaapivalue.h:
30733 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30734 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30735 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30736 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30737 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30738 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30739 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30740 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30741 libs: declare _get_type() functions as const.
30742 Declaring a function as const enables better optimization of calls
30744 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30746 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
30748 * gst-libs/gst/vaapi/glibcompat.h:
30749 * gst-libs/gst/vaapi/gstvaapicontext.c:
30750 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30751 * gst-libs/gst/vaapi/gstvaapiobject.c:
30752 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30753 * gst-libs/gst/vaapi/gstvaapisurface.c:
30754 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30755 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30756 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30757 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30758 libs: use g_clear_object() wherever applicable.
30759 This is a preferred thread-safe version. Also add an inline version of
30760 g_clear_object() if compiling with glib < 2.28.
30761 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30763 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
30767 * docs/reference/libs/Makefile.am:
30768 * gst-libs/gst/vaapi/Makefile.am:
30769 * gst-libs/gst/vaapi/gstvaapimarshal.list:
30770 * gst-libs/gst/vaapi/gstvaapiobject.c:
30771 libs: use generic g_cclosure_marshal_VOID__VOID().
30772 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30774 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30777 * gst-libs/gst/vaapi/glibcompat.h:
30778 glibcompat: drop explicit check for g_list_free_full().
30780 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30783 Bump version for development.
30785 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30787 * gst-libs/gst/codecparsers/Makefile.am:
30788 jpeg: fix make dist.
30790 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
30794 * docs/Makefile.am:
30795 configure: fix build without gtk-doc support.
30796 Also do not generate tamplate files as all the documentation is inline.
30797 Drop un-needed code in autogen.sh as well.
30798 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30800 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
30805 configure: put m4 macros and autogenerated files into m4/ directory.
30806 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30808 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
30811 configure: drop deprecated autoconf macros.
30812 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30813 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30815 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
30818 configure: don't use AC_SUBST for some variables.
30819 PKG_CHECK_MODULES already does this for us.
30820 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30822 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30824 * gst/vaapi/gstvaapidecode.c:
30825 * gst/vaapi/gstvaapidownload.c:
30826 * gst/vaapi/gstvaapipostproc.c:
30827 * gst/vaapi/gstvaapiupload.c:
30828 plugins: add support for GstImplementsInterface.
30830 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
30833 * gst/vaapi/gstvaapidecode.c:
30834 * gst/vaapi/gstvaapidownload.c:
30835 * gst/vaapi/gstvaapipostproc.c:
30836 * gst/vaapi/gstvaapisink.c:
30837 * gst/vaapi/gstvaapiupload.c:
30838 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30839 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30841 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30844 * gst/vaapi/gstvaapisink.c:
30845 plugins: do not use deprecated GStreamer -base symbols.
30846 Bump GStreamer plugins -base required version to 0.10.31, needed for
30847 gst_x_overlay_got_window_handle().
30848 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30850 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30853 * gst/vaapi/gstvaapidecode.c:
30854 * gst/vaapi/gstvaapidownload.c:
30855 * gst/vaapi/gstvaapipostproc.c:
30856 * gst/vaapi/gstvaapisink.c:
30857 * gst/vaapi/gstvaapiupload.c:
30858 plugins: do not use deprecated core GStreamer symbols.
30859 Bump GStreamer required version to 0.10.14, needed for
30860 gst_element_class_set_details_simple().
30861 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30863 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30865 * tests/test-decode.c:
30866 tests: fix build without JPEG decoder support.
30868 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30870 * tests/Makefile.am:
30871 * tests/test-decode.c:
30872 * tests/test-jpeg.c:
30873 * tests/test-jpeg.h:
30874 tests: add test for JPEG decoding.
30876 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30878 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30879 jpeg: update to match latest parser API.
30881 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30883 * gst-libs/gst/codecparsers/gstjpegparser.c:
30884 * gst-libs/gst/codecparsers/gstjpegparser.h:
30885 codecparsers: jpeg: tweak parser API.
30886 ... to allow for more consistent parsing API among various codec parsers.
30887 In particular, drop use of GList.
30889 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30892 jpeg: fix configure check for VA/JPEG decoding API.
30894 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30896 * gst-libs/gst/vaapi/gstvaapiprofile.c:
30897 jpeg: fix build with VA-API < 0.32.0.
30899 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30904 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30907 Bump version for development.
30909 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30915 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30920 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
30922 * gst/vaapi/gstvaapipluginutil.c:
30923 vaapiplugin: fix build when compiling without GLX.
30924 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30926 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30929 configure: disable FFmpeg-based decoders.
30930 FFmpeg decoders are still available through the --enable-ffmpeg option
30931 but are no longer maintained.
30933 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30935 * gst-libs/gst/vaapi/Makefile.am:
30936 Fix build with recent GStreamer stack.
30938 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30941 * gst-libs/gst/vaapi/gstvaapicompat.h:
30942 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30943 jpeg: update to current VA/JPEG decoding API.
30945 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30947 * gst-libs/gst/codecparsers/gstjpegparser.c:
30948 * gst-libs/gst/codecparsers/gstjpegparser.h:
30949 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30950 codecparsers: jpeg: track valid quantization and Huffman tables.
30951 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
30952 to determine whether a table actually changed since the last user
30953 synchronization point. That way, this makes it possible for some
30954 hardware accelerated decoding solution to upload only those tables
30957 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
30959 * gst-libs/gst/codecparsers/gstjpegparser.c:
30960 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
30961 Use GstByteReader *_unchecked() variants as much as possible.
30962 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30964 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
30966 * gst-libs/gst/codecparsers/gstjpegparser.c:
30967 * gst-libs/gst/codecparsers/gstjpegparser.h:
30968 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30969 jpeg: add new GstJpegHuffmanTables structure.
30970 Add new GstJpegHuffmanTables helper structure to hold all possible
30971 AC/DC Huffman tables available to all components.
30972 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30974 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
30976 * gst-libs/gst/codecparsers/gstjpegparser.c:
30977 * gst-libs/gst/codecparsers/gstjpegparser.h:
30978 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30979 jpeg: make gst_jpeg_parse() support multiple scans.
30980 gst_jpeg_parse() now gathers all scans available in the supplied
30981 buffer. A scan comprises of the scan header and any entropy-coded
30982 segments or restart marker following it. The size and offset to
30983 the associated data (ECS + RST segments) are append to a new
30984 GstJpegScanOffsetSize structure.
30985 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30987 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
30989 * gst-libs/gst/codecparsers/gstjpegparser.c:
30990 * gst-libs/gst/codecparsers/gstjpegparser.h:
30991 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30992 jpeg: update to match latest parser API.
30993 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30995 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30997 * gst-libs/gst/codecparsers/gstjpegparser.h:
30998 jpeg: simplify and optimize parser API.
31000 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
31002 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31003 mpeg: fix picture used to determine backward_reference_vop_coding_type.
31004 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31005 but Gwenole did not apply all the bits.
31006 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31008 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
31010 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31011 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31012 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31014 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31016 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31017 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31018 Gracefully skip non VOP coded frames.
31019 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31021 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31023 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31024 mpeg4: fix timestamp issues on too fast playback.
31025 Improve generation of presentation timestamps to be less sensitive
31026 to input stream errors. In practise, GOP is also a synchronization
31027 point for PTS calculation.
31028 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31030 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31032 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31033 Fix build without JPEG decoder.
31035 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31037 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31038 mpeg4: fix VOP coding type of backward reference pictures.
31039 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31041 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31043 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31044 mpeg4: fix handling of temporal reference distances.
31045 TRD and TRB fields are not large enough to hold the difference of PTS
31046 expressed with nanosecond resolution. So, compute them from the original
31048 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31050 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31052 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31053 dpb: mpeg2: cosmetics.
31054 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31056 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31059 * gst-libs/gst/vaapi/Makefile.am:
31060 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31061 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31062 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31063 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31064 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31065 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31066 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31067 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31068 * gst/vaapi/gstvaapidecode.c:
31069 Add initial JPEG decoder.
31070 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31072 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31075 * gst-libs/gst/Makefile.am:
31076 * gst-libs/gst/codecparsers/Makefile.am:
31077 * gst-libs/gst/codecparsers/gstjpegparser.c:
31078 * gst-libs/gst/codecparsers/gstjpegparser.h:
31079 * gst-libs/gst/vaapi/Makefile.am:
31080 codecparsers: add JPEG parser.
31081 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31083 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31085 * gst/vaapi/gstvaapidecode.c:
31086 vaapidecode: fix VA display type.
31087 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31089 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31091 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31093 * gst/vaapi/gstvaapidecode.c:
31094 vaapidecode: fix includes when compiling for a single API.
31096 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31099 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31100 mpeg2: fix calculation of macroblock_offset.
31101 Fix decoding of streams with extra slice() information before the first
31102 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31104 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31106 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31107 mpeg2: fix interpolation of GOP TSN from new PTS.
31108 New GOP TSN base could be mis-calculated. In particular, this fixes
31109 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31111 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31114 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31115 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31116 mpeg2: fix decoding of high profile streams.
31117 Allow MPEG-2 High profile streams only if the HW supports that profile
31118 or no High profile specific bits are used, and thus Main profile could
31119 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31120 set to 11 and no sequence_scalable_extension() was parsed.
31122 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31125 * gst/vaapi/gstvaapidecode.c:
31126 vaapidecode: report unsupported codec profiles.
31127 Try to gracefully abort when the HW does not support the requested
31128 profile. There is no fallback unless profiles are correctly parsed
31129 and matched through caps beforehand.
31131 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31134 * gst/vaapi/gstvaapisink.c:
31135 vaapisink: don't resize a 'foreign' X-window.
31136 Don't forcibly resize foreign X windows. The user is responsible for
31137 their size and vaapisink shall not change this.
31138 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31140 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31143 * gst/vaapi/gstvaapisink.c:
31144 * gst/vaapi/gstvaapisink.h:
31145 vaapisink: recalculate render rect only if caps are negotiated.
31146 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31147 caps got negotiated. Besides, when a foreign window is provided by the
31148 user, so should the render rect.
31149 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31151 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31154 Bump version for development.
31156 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31161 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31163 * docs/reference/libs/libs-docs.xml.in:
31164 * docs/reference/libs/libs-sections.txt:
31165 * docs/reference/plugins/plugins-docs.xml.in:
31166 * docs/reference/plugins/plugins-sections.txt:
31167 * docs/reference/plugins/plugins.types:
31168 * gst-libs/gst/vaapi/gstvaapiimage.c:
31169 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31170 * gst/vaapi/gstvaapipostproc.c:
31171 Fix a few documentation issues.
31173 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31177 Update introduction and changelog.
31179 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31181 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31182 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31183 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31184 mpeg2: allocate dummy picture for first field based I-frame.
31185 In P-pictures, prediction shall be made from the two most recently
31186 decoded reference fields. However, when the first I-frame is a field,
31187 the next field of the current picture could be a P-picture but only a
31188 single field was decoded so far. In this case, create a dummy picture
31189 with POC = -1 that will be used as reference.
31190 Some VA drivers would error out if P-pictures don't have a forward
31191 reference picture. This is true in general but not in this very specific
31194 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31196 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31197 mpeg2: fix simple to main profile fallback.
31198 Allow fallback from simple to main profile when the HW decoder does
31199 not support the former profile and that no sequence_header_extension()
31200 is available to point out this.
31202 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31204 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31205 mpeg4: improve error checking while decoding packets.
31206 decode_picture() could return an error when an MPEG-4 profile is not
31207 supported for example. In this case, the underlying VA context is not
31208 allocated and no other proper action can be taken. Likewise on exit
31209 from decode_slice().
31210 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31212 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31214 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31215 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31216 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31217 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31218 decoder: use POC to maintain the DPB.
31219 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31220 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31221 video streaming at 60 Hz.
31222 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31223 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31225 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31227 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31228 mpeg2: rework generation of presentation timestamps.
31229 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31230 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31231 max PTS from past pictures, then try to fix it up based on the duration of
31233 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31234 reconstruct a current time. Also now handle wrapped TSN correctly.
31236 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31238 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31239 mpeg2: ignore empty user-data packets.
31240 Fix tcela-8.bits conformance test.
31242 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31244 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31245 mpeg2: review and report errors accordingly.
31246 Use GST_ERROR() to report real errors instead of hiding them into
31249 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31251 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31252 mpeg2: fix invalid interlaced frame in progressive sequence.
31253 Some streams, badly constructed, could have signaled an interlaced
31254 frame while the sequence was meant to be progressive. Warn and force
31255 frame to be progressive in this case.
31257 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31259 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31260 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31261 mpeg2: add support for interlaced streams.
31262 Pictures are submitted to the HW for rendering only when both fields
31263 are decoded or current picture is a full frame.
31265 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31267 * gst-libs/gst/vaapi/Makefile.am:
31268 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31269 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31270 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31271 mpeg2: add new decoded picture buffer infrastructure.
31272 Decoded pictures are now maintained into DPB, similarly to H.264.
31273 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31275 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31277 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31278 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31279 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31280 decoder: add first-field flag to picture.
31281 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31282 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31283 as the first field. Any subsequent allocated field will become the second field.
31285 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31287 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31288 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31289 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31290 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31291 decoder: allow pictures to be cloned for field decoding.
31292 Add gst_vaapi_picture_new_field() function that clones a picture, while
31293 preserving the parent picture surface. i.e. the surface proxy reference
31294 count is increased and other fields copied as is. Besides, the picture
31295 is reset into a "non-output" mode.
31297 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31299 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31300 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31301 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31302 decoder: rework picture field flags.
31303 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31304 could be propagated to the surface proxy when it is pushed for rendering.
31305 Besides, top and bottom fields are now expressed with picture structure flags
31306 from GstVaapiSurfaceRenderFlags.
31308 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31310 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31311 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31312 decoder: add OUTPUT flag to pictures.
31313 Allow pictures to be marked as output gst_vaapi_picture_output().
31315 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31317 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31318 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31319 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31320 decoder: fix semantics of SKIPPED pictures.
31321 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31322 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31323 has nothing to do with rendering. This only means that the currently decoded
31324 picture is just a copy of its reference picture.
31326 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31328 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31329 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31330 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31331 * gst/vaapi/gstvaapipostproc.c:
31332 vaapipostproc: get "interlaced" attribute from surface proxy.
31333 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31334 vaapipostproc so that to handles cases where bitstream is interlaced
31335 but almost only frame pictures are generated. In this case, we should
31336 not be alternating between top/bottom fields.
31338 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31341 * debian.upstream/control.in:
31342 * gst/vaapi/Makefile.am:
31343 * gst/vaapi/gstvaapi.c:
31344 * gst/vaapi/gstvaapipostproc.c:
31345 * gst/vaapi/gstvaapipostproc.h:
31346 vaapipostproc: add new element for video postprocessing.
31347 Add vaapipostproc element for video postprocessing. So far, only basic
31348 bob deinterlacing is implemented. Interlaced mode is automatically
31349 detected based on sink caps ("interlaced" field).
31351 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31353 * docs/reference/libs/libs-sections.txt:
31354 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31355 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31356 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31357 * gst/vaapi/gstvaapisink.c:
31358 videobuffer: add surface render flags.
31359 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31360 to be set to the video buffer. In particular, this is mostly useful for
31361 basic deinterlacing.
31363 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31365 * gst-libs/gst/vaapi/gstvaapicompat.h:
31366 compat: add compatibility glue with VA-API 0.34+ (WIP).
31368 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31370 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31371 h264: skip all Filler Data NALs.
31373 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31375 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31376 mpeg4: check for decoder status prior to decoding packet.
31377 Make sure there is a VA surface free prior to decoding the current frame.
31378 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31380 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31382 * gst/vaapi/gstvaapidecode.c:
31383 * gst/vaapi/gstvaapidecode.h:
31384 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31385 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31386 is created and a NEWSEGMENT event arrives, downstream element may not
31387 be ready yet. So, delay this event until next element is chained in,
31388 otherwise basesink could output "Received buffer without a new-segment.
31389 Assuming timestamps start from 0".
31390 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31392 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31394 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31395 mpeg2: fix GOP timestamps when incorrect data is received.
31396 Some streams have incorrect GOP timestamps, or nothing set at all.
31397 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31398 from demuxer timestamps, which are monotonic.
31399 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31401 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31403 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31404 mpeg2: don't decode anything before the first sequence_header().
31405 Skip all pictures prior to the first sequence_header(). Besides,
31406 skip all picture_data() if there was no prior picture_header().
31407 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31409 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31411 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31412 ffmpeg: add support for interlaced streams.
31413 Evaluate interlaced stream properties.
31414 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31416 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31418 * gst/vaapi/gstvaapidecode.c:
31419 vaapidecode: propagate interlaced and TFF properties downstream.
31420 Propagate "interlaced" caps downstream and set "tff" buffer flag
31421 appropriately to output buffers for interlaced pictures.
31422 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31424 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31426 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31427 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31428 decoder: maintain caps for interlaced streams.
31429 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31431 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31433 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31435 * docs/reference/libs/libs-sections.txt:
31436 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31437 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31438 surfaceproxy: add TFF property.
31439 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31440 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31442 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31445 AUTHORS: update to match current authors.
31447 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31449 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31450 mpeg2: fix is_first_field calculation.
31451 Reset is_first_field for frame pictures. Factor out locations where
31452 the flag is updated.
31454 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31456 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31457 mpeg2: catch incorrect picture_structure from bitstreams.
31458 Assume "frame" picture structure if the syntax element was zero or if
31459 progressive_frame is set.
31461 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31463 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31464 mpeg2: fix slice_vertical_position calculation (again).
31465 VA-API expects slice_vertical_position as the initial position from the
31466 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31469 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31471 * gst/vaapi/gstvaapidecode.c:
31472 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31473 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31474 For gst_element_class_get_pad_template(), no unreferencing is necessary
31475 according to the GStreamer documentation.
31477 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31480 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31481 h264: fix slice_data_bit_offset calculation.
31482 Unlike what VA-API documentation defines, the slice_data_bit_offset
31483 represents the offset to the first macroblock in the slice data, minus
31484 any emulation prevention bytes in the slice_header().
31485 This fix copes with binary-only VA drivers that won't be fixed any
31486 time soon. Besides, this aligns with the current FFmpeg behaviour
31487 that was based on those proprietary drivers implementing the API
31490 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31492 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31493 h264: skip all Access Unit (AU) NALs.
31494 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31496 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31498 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31499 h264: fix modification process of reference picture lists.
31500 Construction of RefPicList0/1 could be off by one element.
31501 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31503 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31505 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31506 mpeg2: fix size calculation from sequence_extension().
31507 Original values from sequence_header() are 12-bit and the remaining
31508 2 most significant bits are coming from sequence_extension().
31509 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31511 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31513 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31514 mpeg2: fix slice_vertical_position calculation.
31515 Make sure to adjust slice_vertical_position if picture structure
31516 is a top or bottom field.
31518 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31520 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31521 decoder: add picture structure flags.
31523 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31525 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31526 mpeg2: fix decoding at end-of-sequence.
31528 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31530 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31531 mpeg2: fix slice_horizontal_position calculation.
31533 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31535 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31536 mpeg2: drop useless mb_y and mb_height members.
31538 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31540 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31541 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31542 6.3.15 says that "some slices may have the same slice_vertical_position,
31543 since slices may start and finish anywhere". So, we can't submit the current
31544 picture to the HW right away since subsequent slices would be missing.
31546 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31548 * gst-libs/gst/vaapi/gstvaapiimage.c:
31549 image: fix source stride in picture copy.
31551 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31553 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31554 decoder: fix double buffer free with some VA drivers.
31555 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31556 push the VA buffer object into a list of free buffers to be re-used. However,
31557 reference pictures (and data) that was kept would explicitly release the VA
31558 buffer object later on, thus possibly destroying a valid (re-used) object.
31559 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31560 semantics for VA buffers disposal and would leak memory if there is no explicit
31561 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31562 right after vaRenderPicture(). All VA drivers need to be aligned.
31564 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31566 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31567 h264: complete any current picture decoder before SPS / PPS change.
31568 This ensures the VA context is clear when the encoded resolution
31569 changes. i.e. make sure older picture is decoded with the older
31570 VA context before it changes.
31572 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31574 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31575 h264: create VA context earlier when SPS is parsed.
31577 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31579 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31580 h264: don't allocate too big data structures on stack.
31582 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31584 * gst-libs/gst/vaapi/glibcompat.h:
31585 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31586 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31587 glib: map deprecated API to glib >= 2.32 equivalents.
31588 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31589 GRecMutex, which no longer require any prior call to g_thread_init().
31591 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31593 * gst-libs/gst/vaapi/gstvaapiutils.h:
31594 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31595 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31596 glib: fix includes.
31598 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31600 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31601 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31602 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31603 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31604 cosmetics: fix warnings (drop unused variables).
31606 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31608 * gst/vaapi/gstvaapidecode.c:
31609 vaapidecode: fix another pad template ref leak.
31611 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31613 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31614 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31615 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31616 mpeg2: fix crash when there is no free surface to decode into.
31618 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
31620 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31621 display: skip profiles which have no entrypoints.
31622 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31624 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31626 * gst/vaapi/gstvaapiupload.c:
31627 vaapiupload: use g_object_unref() for GstVaapiImage.
31629 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31631 * gst/vaapi/gstvaapidecode.c:
31632 * gst/vaapi/gstvaapidownload.c:
31633 * gst/vaapi/gstvaapisink.c:
31634 * gst/vaapi/gstvaapiupload.c:
31635 plugins: fix pad template ref leaks.
31637 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31640 Bump version for development.
31642 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31648 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31652 Mention codecparsers-based decoders, FFmpeg is now optional. Update
31653 list of support HW.
31655 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31660 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31662 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31663 decoder: allocate proxy surface earlier.
31664 This simplifies gst_vaapi_picture_output() to only update the presentation
31665 timestamp and submit the proxy to the decoder for output.
31667 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31669 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31670 decoder: fix memory leak of VA objects on exit.
31671 On sequence end, if the last decoded picture is not output for rendering,
31672 then the proxy surface is not created. In this case, the original surface
31673 must be released explicitly to the context.
31675 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31677 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31678 mpeg2: use GstAdapter to track input sequence.
31679 This fixes possible memory leaks and improves performance by removing
31682 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31685 * gst-libs/gst/vaapi/Makefile.am:
31686 * gst-libs/gst/vaapi/glibcompat.h:
31687 * gst-libs/gst/vaapi/sysdeps.h:
31688 Add glib compatibility glue for older versions.
31690 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31692 * gst-libs/gst/vaapi/Makefile.am:
31693 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31694 * gst-libs/gst/vaapi/gstvaapicontext.c:
31695 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31696 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31697 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31698 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31699 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31700 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31701 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31702 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31703 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31704 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31705 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31706 * gst-libs/gst/vaapi/gstvaapiimage.c:
31707 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31708 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31709 * gst-libs/gst/vaapi/gstvaapiobject.c:
31710 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31711 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31712 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31713 * gst-libs/gst/vaapi/gstvaapisurface.c:
31714 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31715 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31716 * gst-libs/gst/vaapi/gstvaapitexture.c:
31717 * gst-libs/gst/vaapi/gstvaapiutils.c:
31718 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31719 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31720 * gst-libs/gst/vaapi/gstvaapivalue.c:
31721 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31722 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31723 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31724 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31725 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31726 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31727 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31728 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31729 * gst-libs/gst/vaapi/sysdeps.h:
31730 Add header for system-dependent definitions.
31732 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31734 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31735 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31736 * gst-libs/gst/vaapi/gstvaapiutils.c:
31737 * gst-libs/gst/vaapi/gstvaapiutils.h:
31738 decoder: optimize slice data buffers initialization.
31739 VA drivers may have a faster means to transfer user buffers to GPU
31740 buffers than using memcpy(). In particular, on Intel Gen graphics, we
31741 can use pwrite(). This provides for faster upload of bitstream and can
31742 help higher bitrates.
31743 vaapi_create_buffer() helper function was also updated to allow for
31744 un-mapped buffers and pre-initialized data for buffers.
31746 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31748 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31749 h264: simplify RefPicList reconstruction.
31751 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31753 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31754 h264: flush DPB when the end of the sequence is reached.
31756 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31758 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31759 h264: handle Decoded Picture Buffer (DPB).
31761 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31763 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31764 h264: fix pred_weight_table() reconstruction.
31765 Only the explicit pred_weight_table(), possibly with the inferred default
31766 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31767 is not set for P/SP slices.
31769 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31771 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31772 h264: execute reference picture marking process (MMCO).
31774 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31776 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31777 h264: fix presentation timestamps.
31779 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31781 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31782 h264: execute reference picture marking process (sliding window).
31784 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31786 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31787 h264: handle avcC format for decoding buffers.
31789 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31791 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31792 h264: handle codec-data.
31793 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31795 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31797 * gst-libs/gst/vaapi/Makefile.am:
31798 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31799 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31800 * gst/vaapi/gstvaapidecode.c:
31801 * tests/test-decode.c:
31802 Add initial H.264 decoder.
31804 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31806 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31807 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31808 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31809 Keep a valid reference to the proxy in GstVaapiPicture so that frames
31810 marked as "used for reference" could be kept during the lifetime of the
31811 picture. i.e. don't release them too soon as they could be re-used right
31814 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31816 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31817 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31818 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31819 decoder: properly reference count pictures.
31820 This fixes cases where a GstVaapiPicture would be destroyed whereas
31821 there is still a valid instance of it in either prev, current or
31824 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31826 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31827 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31828 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31829 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31830 decoder: simplify output of decoded frames.
31831 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31832 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31833 is already set correctly and reference count increased, if necessary.
31835 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31837 * gst-libs/gst/vaapi/Makefile.am:
31838 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31839 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31840 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31841 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31842 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31843 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31844 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31845 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31846 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31847 decoder: rework the internal VA objects API.
31848 The new API simplifies a lot reference counting and makes it more
31849 flexible for future additions/changes. The GstVaapiCodecInfo is
31850 also gone. Rather, new helper macros are provided to allocate
31851 picture, slice and quantization matrix parameter buffers.
31853 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31855 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31856 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31857 decoder: allow slices to be attached to pictures later.
31859 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31861 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31862 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31863 decoder: add ref_count to GstVaapiPicture.
31865 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31867 * gst/vaapi/gstvaapisink.c:
31868 vaapisink: cap window size to the maximum display size.
31870 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
31872 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31873 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31874 profile: match video/x-h263 as H.263 Baseline profile.
31875 HACK: qtdemux does not report profiles for H.263. So, assume plain
31876 "video/x-h263" is H.263 Baseline profile.
31877 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31879 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31881 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31882 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31883 display: report H.263 Baseline profile.
31884 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
31885 profile (VAProfileMPEG4Simple) is supported.
31887 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31889 * gst-libs/gst/vaapi/Makefile.am:
31890 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31891 Add template for workarounds.
31893 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31895 * tests/test-decode.c:
31896 tests: error out if FFmpeg|codecparsers are not supported.
31898 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31900 * docs/reference/libs/libs-sections.txt:
31901 * gst-libs/gst/vaapi/gstvaapisurface.h:
31902 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31903 surface: don't expose gst_vaapi_surface_get_parent_context().
31904 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
31905 It's just an internal helper function. However, it's still possible to get
31906 the parent context through the "parent-context" property.
31908 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31910 * tests/Makefile.am:
31911 * tests/test-subpicture.c:
31912 tests: fix build without FFmpeg.
31914 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31917 Bump version for development.
31919 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31925 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31928 * debian.upstream/copyright:
31929 * gst-libs/gst/vaapi/gstvaapicontext.c:
31930 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31931 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31932 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31933 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31934 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31935 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31936 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31937 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31938 * gst-libs/gst/vaapi/gstvaapiimage.c:
31939 * gst-libs/gst/vaapi/gstvaapiimage.h:
31940 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31941 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31942 * gst-libs/gst/vaapi/gstvaapiutils.c:
31943 * gst-libs/gst/vaapi/gstvaapiutils.h:
31944 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31945 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31946 * gst/vaapi/gstvaapi.c:
31947 * gst/vaapi/gstvaapidecode.c:
31948 * gst/vaapi/gstvaapidownload.c:
31949 * gst/vaapi/gstvaapidownload.h:
31950 * gst/vaapi/gstvaapipluginutil.c:
31951 * gst/vaapi/gstvaapipluginutil.h:
31952 * gst/vaapi/gstvaapisink.c:
31953 * gst/vaapi/gstvaapiupload.c:
31954 * gst/vaapi/gstvaapiupload.h:
31955 * tests/test-decode.c:
31956 legal: fix year for some copyright notices.
31958 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31960 * gst-libs/gst/vaapi/gstvaapicontext.c:
31961 * gst-libs/gst/vaapi/gstvaapicontext.h:
31962 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31963 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31964 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31965 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31966 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31967 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31968 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31969 * gst-libs/gst/vaapi/gstvaapiimage.c:
31970 * gst-libs/gst/vaapi/gstvaapiimage.h:
31971 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31972 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
31973 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31974 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31975 * gst-libs/gst/vaapi/gstvaapisurface.c:
31976 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31977 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31978 * gst-libs/gst/vaapi/gstvaapiutils.c:
31979 * gst-libs/gst/vaapi/gstvaapiutils.h:
31980 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31981 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31982 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31983 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31984 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31985 * gst/vaapi/gstvaapidownload.h:
31986 * gst/vaapi/gstvaapisink.h:
31987 * gst/vaapi/gstvaapiupload.h:
31988 * tests/test-decode.c:
31989 legal: add Intel copyright on modified files.
31991 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31993 * gst-libs/gst/vaapi/gstvaapi_priv.h:
31994 * gst-libs/gst/vaapi/gstvaapicompat.h:
31995 * gst-libs/gst/vaapi/gstvaapicontext.c:
31996 * gst-libs/gst/vaapi/gstvaapicontext.h:
31997 * gst-libs/gst/vaapi/gstvaapidebug.h:
31998 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31999 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32000 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32001 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32002 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32003 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32004 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32005 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32006 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32007 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32008 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32009 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32010 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32011 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32012 * gst-libs/gst/vaapi/gstvaapiimage.c:
32013 * gst-libs/gst/vaapi/gstvaapiimage.h:
32014 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32015 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32016 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32017 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32018 * gst-libs/gst/vaapi/gstvaapiobject.c:
32019 * gst-libs/gst/vaapi/gstvaapiobject.h:
32020 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32021 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32022 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32023 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32024 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32025 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32026 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32027 * gst-libs/gst/vaapi/gstvaapisurface.c:
32028 * gst-libs/gst/vaapi/gstvaapisurface.h:
32029 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32030 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32031 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32032 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32033 * gst-libs/gst/vaapi/gstvaapitexture.c:
32034 * gst-libs/gst/vaapi/gstvaapitexture.h:
32035 * gst-libs/gst/vaapi/gstvaapitypes.h:
32036 * gst-libs/gst/vaapi/gstvaapiutils.c:
32037 * gst-libs/gst/vaapi/gstvaapiutils.h:
32038 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32039 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32040 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32041 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32042 * gst-libs/gst/vaapi/gstvaapivalue.c:
32043 * gst-libs/gst/vaapi/gstvaapivalue.h:
32044 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32045 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32046 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32047 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32048 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32049 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32050 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32051 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32052 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32053 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32054 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32055 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32056 * gst/vaapi/gstvaapidecode.c:
32057 * gst/vaapi/gstvaapidecode.h:
32058 * gst/vaapi/gstvaapidownload.c:
32059 * gst/vaapi/gstvaapidownload.h:
32060 * gst/vaapi/gstvaapisink.c:
32061 * gst/vaapi/gstvaapisink.h:
32062 * gst/vaapi/gstvaapiupload.c:
32063 * gst/vaapi/gstvaapiupload.h:
32066 * tests/test-decode.c:
32067 * tests/test-decode.h:
32068 * tests/test-display.c:
32069 * tests/test-h264.c:
32070 * tests/test-h264.h:
32071 * tests/test-mpeg2.c:
32072 * tests/test-mpeg2.h:
32073 * tests/test-surfaces.c:
32074 * tests/test-textures.c:
32075 * tests/test-vc1.c:
32076 * tests/test-vc1.h:
32077 * tests/test-windows.c:
32078 legal: fix copyright notices to include "Copyright" term.
32080 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32082 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32083 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32084 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32085 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32087 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32089 * gst-libs/gst/vaapi/Makefile.am:
32090 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32091 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32092 * gst/vaapi/gstvaapidecode.c:
32093 Add initial MPEG-4 decoder.
32094 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32096 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32098 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32099 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32100 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32101 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32103 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32105 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32106 vc1: fix codec-data decoding for WMV3 format.
32108 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32110 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32111 vc1: fix presentation timestamps.
32113 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32115 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32116 vc1: fix MV mode packing.
32118 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32120 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32121 vc1: handle codec-data.
32123 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32125 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32126 vc1: handle encapsulated bitstreams.
32128 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32130 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32131 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32132 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32133 vc1: fix bitplanes decoding.
32135 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32137 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32138 vc1: fix BFRACTION reconstruction.
32140 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32142 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32143 vc1: fix framerate calculation.
32145 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32147 * gst-libs/gst/vaapi/Makefile.am:
32148 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32149 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32150 * gst/vaapi/gstvaapidecode.c:
32151 * tests/test-decode.c:
32152 Add initial VC-1 decoder.
32154 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32156 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32157 mpeg2: fix first field detection.
32158 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32160 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32162 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32163 mpeg2: fix quantisation matrix construction.
32165 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32167 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32168 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32169 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32170 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32172 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32174 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32175 mpeg2: fix packets spanning over two buffers.
32177 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32179 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32180 mpeg2: ignore system start codes (PES headers).
32182 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32184 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32185 mpeg2: handle closed_gop.
32187 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32189 * gst-libs/gst/vaapi/Makefile.am:
32190 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32191 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32192 * gst/vaapi/gstvaapidecode.c:
32193 * tests/test-decode.c:
32194 Add initial MPEG-2 decoder.
32196 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32199 * gst-libs/gst/vaapi/Makefile.am:
32200 * gst/vaapi/gstvaapidecode.c:
32201 * tests/test-decode.c:
32202 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32204 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32206 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32207 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32208 Add VA decoder helpers.
32210 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32212 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32213 decoder: add new error codes.
32214 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32215 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32217 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32219 * gst-libs/gst/vaapi/Makefile.am:
32220 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32221 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32222 Add timestamp buffer store helper utils.
32224 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32226 * gst-libs/gst/vaapi/gstvaapiutils.c:
32227 * gst-libs/gst/vaapi/gstvaapiutils.h:
32228 Add VA buffer helpers.
32230 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32232 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32233 utils: slight improvements to gl_bind_texture().
32235 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32237 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32238 utils: pretty-print output of gl_get_error_string().
32240 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32242 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32243 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32245 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32247 * gst-libs/gst/vaapi/gstvaapiutils.c:
32248 utils: simplify string of VAProfile/VAEntrypoint.
32250 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32252 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32253 * gst-libs/gst/vaapi/gstvaapiutils.c:
32254 * gst-libs/gst/vaapi/gstvaapiutils.h:
32255 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32257 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32262 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32264 * tests/test-decode.c:
32265 tests: check for shared VA displays (display cache).
32267 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32269 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32270 display: always free VA display cache if it is empty.
32272 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32274 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32275 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32276 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32277 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32278 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32279 display: use VA display cache for X11 and GLX winsys.
32281 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32283 * gst-libs/gst/vaapi/Makefile.am:
32284 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32285 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32286 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32287 display: implement a VA display cache.
32289 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32291 * gst/vaapi/gstvaapipluginutil.c:
32292 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32293 This ensures the display name provided to gst_vaapi_display_*_new()
32294 maps to the system defaults, instead of forcing "" that could be different
32295 from the current DISPLAY name.
32297 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32299 * gst/vaapi/gstvaapiupload.c:
32300 vaapiupload: only set caps on newly created buffers.
32301 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32303 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32305 * gst/vaapi/gstvaapisink.c:
32306 vaapisink: ensure VA display in GstBaseSink::start() hook.
32307 This ensures a VA display is ready by the time upstream elements request
32310 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32312 * gst/vaapi/gstvaapisink.c:
32313 vaapisink: don't leak GL texture.
32314 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32316 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32318 * gst/vaapi/gstvaapisink.c:
32319 vaapisink: fix calculation of render region.
32321 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32323 * gst/vaapi/gstvaapisink.c:
32324 vaapisink: automatically fit video to window.
32326 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32328 * gst/vaapi/gstvaapisink.c:
32329 vaapisink: implement GstXOverlay::set_render_rectangle().
32331 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32333 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32334 window: always check geometry when the window is mapped.
32336 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32338 * gst-libs/gst/vaapi/gstvaapiutils.c:
32339 Add missing profiles from VA-API 0.32.0.
32340 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32342 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32345 .gitignore: add test-subpicture.
32347 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32350 Bump version for development.
32352 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32358 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32360 * tests/Makefile.am:
32361 tests: fix make dist (ship with test-subpicture-data.h).
32363 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32368 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32370 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32371 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32372 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32373 decoder: fix possible leak of VA surfaces.
32374 Under some circumstances, we could have leaked a surface, thus not
32375 releasing it to the pool of available surfaces in the VA context.
32376 The strategy is now to use a proxy earlier and automatically ref/unref
32377 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32379 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32381 * docs/reference/libs/libs-sections.txt:
32382 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32383 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32384 surfaceproxy: add helper to retrieve the VA surface ID.
32386 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32388 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32389 surfaceproxy: simplify destruction.
32390 Also make sure to always make sure to release the surface back to the
32391 pool of surfaces in the associated VA context, if any.
32393 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32395 * gst/vaapi/gstvaapidecode.c:
32396 vaapidecode: fix deinitialization order.
32398 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32400 * gst-libs/gst/vaapi/gstvaapicontext.c:
32401 context: avoid self reference loops with surfaces.
32403 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32405 * debian.upstream/control.in:
32406 debian: update control.in description for new plugins.
32408 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32410 * gst/vaapi/gstvaapiupload.c:
32411 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32412 This also fixes extra structures, beyond the one at index 0, to hold
32413 the right additional values.
32415 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32417 * gst/vaapi/gstvaapiupload.c:
32418 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32420 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32423 * docs/reference/plugins/plugins-docs.xml.in:
32424 * docs/reference/plugins/plugins-sections.txt:
32425 * docs/reference/plugins/plugins.types:
32426 * gst/vaapi/Makefile.am:
32427 * gst/vaapi/gstvaapi.c:
32428 * gst/vaapi/gstvaapidownload.c:
32429 * gst/vaapi/gstvaapidownload.h:
32430 vaapidownload: add new plugin to download pixels from VA surfaces.
32432 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32434 * gst/vaapi/gstvaapipluginutil.c:
32435 * gst/vaapi/gstvaapipluginutil.h:
32436 vaapipluingutils: add helper to append surface caps to YUV caps.
32438 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32440 * docs/reference/libs/libs-sections.txt:
32441 * gst-libs/gst/vaapi/gstvaapiimage.c:
32442 * gst-libs/gst/vaapi/gstvaapiimage.h:
32443 image: add helpers to extract pixels to user buffers.
32445 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32447 * gst-libs/gst/vaapi/gstvaapiimage.c:
32448 image: simplify initialization of raw images from video buffers.
32450 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32452 * gst-libs/gst/vaapi/gstvaapiimage.c:
32453 image: fix update from NV12 buffers.
32455 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32457 * gst/vaapi/gstvaapiupload.c:
32458 vaapiupload: fix memory leak in _init() function.
32460 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32464 * debian.upstream/control.in:
32465 * docs/reference/plugins/plugins-docs.xml.in:
32466 * docs/reference/plugins/plugins-sections.txt:
32467 * docs/reference/plugins/plugins.types:
32468 * gst/vaapi/Makefile.am:
32469 * gst/vaapi/gstvaapi.c:
32470 * gst/vaapi/gstvaapiupload.c:
32471 * gst/vaapi/gstvaapiupload.h:
32472 Rename vaapiconvert element to vaapiupload.
32474 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32477 Bump version for development.
32479 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32485 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32490 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32492 * gst-libs/gst/vaapi/gstvaapisurface.c:
32493 * gst-libs/gst/vaapi/gstvaapisurface.h:
32494 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32495 * gst/vaapi/gstvaapisink.c:
32496 surface: apply composition to the parent context, if requested.
32498 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32500 * docs/reference/libs/libs-sections.txt:
32501 * gst-libs/gst/vaapi/gstvaapicontext.c:
32502 * gst-libs/gst/vaapi/gstvaapicontext.h:
32503 context: make it possible to apply composition globally.
32505 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32507 * gst-libs/gst/vaapi/gstvaapisurface.c:
32508 surface: fix associate subpicture to not report deassociation errors.
32510 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32512 * gst-libs/gst/vaapi/gstvaapisurface.c:
32513 surface: fix typo in debug message.
32515 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32517 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32518 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32519 * gst-libs/gst/vaapi/gstvaapisurface.c:
32520 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32522 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32524 * docs/reference/libs/libs-sections.txt:
32525 * gst-libs/gst/vaapi/Makefile.am:
32526 * gst-libs/gst/vaapi/gstvaapicontext.c:
32527 * gst-libs/gst/vaapi/gstvaapisurface.c:
32528 * gst-libs/gst/vaapi/gstvaapisurface.h:
32529 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32530 surface: record parent context.
32532 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32534 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32535 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32536 * gst/vaapi/gstvaapidecode.c:
32537 * gst/vaapi/gstvaapisink.c:
32540 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32542 * gst-libs/gst/vaapi/gstvaapisurface.c:
32543 * gst-libs/gst/vaapi/gstvaapisurface.h:
32544 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32545 * gst/vaapi/gstvaapisink.c:
32546 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32548 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32551 configure: check for GstVideoOverlayComposition.
32553 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32558 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32560 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32561 converter: add support for GstVideoOverlayComposition planes.
32562 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32564 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32566 * gst/vaapi/gstvaapisink.c:
32567 vaapisink: handle GstVideoOverlayComposition planes.
32568 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32570 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32572 * gst-libs/gst/vaapi/gstvaapisurface.c:
32573 surface: use unscaled overlay rectangle for blending.
32575 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32577 * gst-libs/gst/vaapi/gstvaapisurface.c:
32578 surface: fix VA image leak when an error occurred.
32580 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32582 * gst-libs/gst/vaapi/gstvaapisurface.c:
32583 * gst-libs/gst/vaapi/gstvaapisurface.h:
32584 surface: add helper to handle GstVideoOverlayComposition.
32585 This helper resets the subpictures to reflect the current composition
32586 layers provided with the buffers.
32587 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32589 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32591 * docs/reference/libs/libs-sections.txt:
32592 * gst-libs/gst/vaapi/Makefile.am:
32593 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32594 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32595 * gst/vaapi/gstvaapiconvert.c:
32596 image: add gst_vaapi_image_format_from_video() helper.
32598 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32600 * gst-libs/gst/vaapi/gstvaapiimage.c:
32601 * gst-libs/gst/vaapi/gstvaapiimage.h:
32602 image: allow updates from GstVaapiImageRaw.
32604 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32606 * gst-libs/gst/vaapi/gstvaapiimage.c:
32607 * gst-libs/gst/vaapi/gstvaapiimage.h:
32608 * gst/vaapi/gstvaapiconvert.c:
32609 * tests/test-subpicture.c:
32610 image: allow partial updates.
32612 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32614 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32615 subpicture: fix doc for gst_vaapi_subpicture_set_image().
32617 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32619 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32620 display: fix has_image_format() to check against subpicture formats.
32622 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32624 * tests/test-subpicture.c:
32625 tests: fix subpicture test.
32627 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32629 * tests/Makefile.am:
32630 * tests/test-subpicture-data.c:
32631 * tests/test-subpicture-data.h:
32632 * tests/test-subpicture.c:
32633 tests: add test for subpictures.
32634 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32636 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32638 * gst/vaapi/gstvaapiconvert.c:
32639 * gst/vaapi/gstvaapidecode.c:
32640 Add missing video context queries.
32641 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32643 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32646 Bump version for development.
32648 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32650 * gst-libs/gst/video/Makefile.am:
32651 * gst-libs/gst/video/gstbasevideocodec.c:
32652 * gst-libs/gst/video/gstbasevideocodec.h:
32653 * gst-libs/gst/video/gstbasevideodecoder.c:
32654 * gst-libs/gst/video/gstbasevideodecoder.h:
32655 * gst-libs/gst/video/gstbasevideoutils.c:
32656 * gst-libs/gst/video/gstbasevideoutils.h:
32657 Drop unused copy of GstBaseVideoDecoder.
32659 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32665 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32668 README: update dependencies.
32670 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32675 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32678 configure: check for GstBaseSink 'query' vfunc.
32680 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32682 * gst/vaapi/Makefile.am:
32683 vaapiplugin: include local build dir to CFLAGS for generated files.
32685 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32688 autogen: don't configure if NO_CONFIGURE variable is set.
32690 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32692 * gst/vaapi/gstvaapidecode.c:
32693 * gst/vaapi/gstvaapidecode.h:
32694 vaapidecode: return sink caps template if decoder is in NULL state.
32695 Otherwise, the decoder would always create its own X display instead
32696 of probing it from the downstream element, which is not reliable.
32697 e.g. DISPLAY is not :0 or when running on Wayland.
32698 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32700 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32702 * gst/vaapi/gstvaapiconvert.c:
32703 * gst/vaapi/gstvaapidecode.c:
32704 vaapiplugin: properly set surface type to "vaapi" in caps.
32706 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32708 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32709 decoder: drop unused headers.
32711 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32713 * gst/vaapi/gstvaapiconvert.c:
32714 * gst/vaapi/gstvaapidecode.c:
32715 vaapiplugin: properly set opengl support in caps.
32716 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32718 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32720 * gst/vaapi/gstvaapiconvert.c:
32721 * gst/vaapi/gstvaapidecode.c:
32722 vaapiplugin: allocate GLX buffers when supported.
32723 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32725 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32727 * gst-libs/gst/vaapi/Makefile.am:
32728 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32729 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32730 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32731 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32732 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32733 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32734 videobuffer: add GLX buffer support.
32735 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32737 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32739 * gst-libs/gst/vaapi/Makefile.am:
32740 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32741 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32742 Port to GstSurfaceBuffer interface.
32743 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32745 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32747 * gst/vaapi/gstvaapidecode.c:
32748 * gst/vaapi/gstvaapisink.c:
32749 Don't use downstream buffer allocation.
32750 With the new video/x-surface abstraction, we can't rely on having a VA
32751 specific sink downstream. Also, there was no particular reason to do that.
32752 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32754 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32756 * gst-libs/gst/vaapi/Makefile.am:
32757 * gst-libs/gst/vaapi/gstvaapicontext.c:
32758 * gst-libs/gst/vaapi/gstvaapisurface.h:
32759 * gst/vaapi/gstvaapiconvert.c:
32760 * gst/vaapi/gstvaapisink.c:
32761 * tests/Makefile.am:
32762 * tests/test-surfaces.c:
32763 Change caps to use new video/x-surface generic type.
32764 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32766 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32769 * gst-libs/gst/vaapi/Makefile.am:
32770 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32771 * gst/vaapi/Makefile.am:
32772 * gst/vaapi/gstvaapiconvert.c:
32773 * gst/vaapi/gstvaapidecode.c:
32774 * gst/vaapi/gstvaapipluginutil.c:
32775 * gst/vaapi/gstvaapipluginutil.h:
32776 * gst/vaapi/gstvaapisink.c:
32777 * gst/vaapi/gstvaapisink.h:
32778 Port to GstVideoContext interface.
32779 This new interface allows for upstream and downstream display sharing
32780 that works in both static and dynamic pipelines.
32781 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32783 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32785 * gst/vaapi/gstvaapisink.c:
32786 vaapisink: use GST_ERROR to print error messages.
32788 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32790 * gst/vaapi/Makefile.am:
32791 vaapiplugin: link against VA/GLX when enabled.
32793 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32795 * gst/vaapi/gstvaapiconvert.c:
32796 * gst/vaapi/gstvaapisink.c:
32797 Add Intel copyright information.
32799 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32801 * gst/vaapi/gstvaapisink.c:
32802 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32804 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32808 * gst-libs/gst/Makefile.am:
32809 * gst-libs/gst/gstutils_version.h.in:
32810 Add new GStreamer version check utilities.
32812 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32814 * gst/vaapi/gstvaapisink.c:
32815 vaapisink: replace the deprecated xoverlay API with the new one.
32816 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32818 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32821 configure: allow for pre-releases.
32823 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32825 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32826 display: destroy display on creation failure.
32827 This allows element to detect that the display creation has actually
32829 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32831 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32833 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32834 display: don't crash when config is empty.
32835 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32837 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32840 * debian.upstream/copyright:
32841 doc: mention Collabora copyrights.
32843 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32846 .gitignore: refine for generated docs.
32848 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32851 * docs/reference/plugins/Makefile.am:
32853 * gst/vaapi/Makefile.am:
32854 * gst/vaapi/gstvaapi.c:
32855 * gst/vaapi/gstvaapiconvert.c:
32856 * gst/vaapi/gstvaapiconvert.h:
32857 * gst/vaapi/gstvaapidecode.c:
32858 * gst/vaapi/gstvaapidecode.h:
32859 * gst/vaapi/gstvaapisink.c:
32860 * gst/vaapi/gstvaapisink.h:
32861 * gst/vaapiconvert/Makefile.am:
32862 * gst/vaapidecode/Makefile.am:
32863 Group all plugins into the same bundle
32864 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32866 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32869 Bump version for development.
32871 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32874 * debian.upstream/control.in:
32875 debian: build against upstream libva packages.
32877 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32879 * docs/reference/libs/Makefile.am:
32880 * docs/reference/plugins/Makefile.am:
32881 * tests/Makefile.am:
32882 Fix build on Ubuntu 11.10 (Oneric).
32884 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32889 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32893 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32895 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32897 * gst/vaapiconvert/gstvaapiconvert.c:
32898 * gst/vaapidecode/gstvaapidecode.c:
32899 * gst/vaapisink/gstvaapisink.c:
32900 Update license in plugin definition
32901 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32903 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32906 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32907 decoder: fix use of invalid data at the end-of-stream.
32909 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32911 * gst/vaapiconvert/gstvaapiconvert.c:
32912 vaapiconvert: fix some warnings.
32914 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32917 * debian.upstream/changelog.in:
32918 * debian.upstream/control.in:
32919 * debian.upstream/copyright:
32920 * gst/vaapiconvert/gstvaapiconvert.c:
32921 * gst/vaapidecode/gstvaapidecode.c:
32922 * gst/vaapisink/gstvaapisink.c:
32923 Update with my current e-mail address.
32925 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32929 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
32931 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
32935 * tests/test-decode.c:
32936 * tests/test-decode.h:
32937 * tests/test-display.c:
32938 * tests/test-h264.c:
32939 * tests/test-h264.h:
32940 * tests/test-mpeg2.c:
32941 * tests/test-mpeg2.h:
32942 * tests/test-surfaces.c:
32943 * tests/test-textures.c:
32944 * tests/test-vc1.c:
32945 * tests/test-vc1.h:
32946 * tests/test-windows.c:
32947 switch tests licence to LGPL v2.1+
32949 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
32953 * debian.upstream/copyright:
32954 * gst/vaapiconvert/gstvaapiconvert.c:
32955 * gst/vaapiconvert/gstvaapiconvert.h:
32956 * gst/vaapidecode/gstvaapidecode.c:
32957 * gst/vaapidecode/gstvaapidecode.h:
32958 * gst/vaapisink/gstvaapisink.c:
32959 * gst/vaapisink/gstvaapisink.h:
32960 move plugins to LGPL v2.1+
32962 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32964 * gst/vaapidecode/gstvaapidecode.c:
32965 vaapidecode: fix sink caps to not expose size information.
32966 This fixes this particular issue:
32967 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
32968 a real subset of its template caps
32970 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32973 * gst/vaapidecode/gstvaapidecode.c:
32974 vaapidecode: fix decoding of MPEG-2 PS files.
32976 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32978 * gst-libs/gst/vaapi/Makefile.am:
32979 Cosmetics (sort source files).
32981 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32983 * gst/vaapiconvert/gstvaapiconvert.c:
32984 * gst/vaapiconvert/gstvaapiconvert.h:
32985 vaapiconvert: fix direct-rendering caps detection.
32987 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32989 * gst-libs/gst/vaapi/gstvaapiimage.c:
32990 Fix gst_vaapi_image_new_with_image().
32992 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32994 * gst/vaapiconvert/gstvaapiconvert.c:
32995 vaapiconvert: warn when surface failed to be updated with image.
32997 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32999 * gst/vaapiconvert/gstvaapiconvert.c:
33000 vaapiconvert: fix autodetection for vaDeriveImage() support.
33002 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33004 * gst/vaapiconvert/gstvaapiconvert.c:
33005 vaapiconvert: fix memory leak (VA surface image).
33007 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33010 * gst/vaapiconvert/gstvaapiconvert.c:
33011 vaapiconvert: fix direct-rendering mode.
33013 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33015 * docs/reference/libs/libs-sections.txt:
33016 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33017 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33018 Add gst_vaapi_video_buffer_new_from_buffer().
33019 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33020 Any image, surface or surface proxy will be inherited from the source buffer
33021 if it is a GstVaapiVideoBuffer.
33023 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33025 * gst/vaapiconvert/gstvaapiconvert.c:
33026 vaapiconvert: protect access to direct_rendering.
33028 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33030 * gst/vaapiconvert/gstvaapiconvert.c:
33031 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33033 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33037 * debian.upstream/copyright:
33038 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33039 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33040 * gst-libs/gst/vaapi/gstvaapisurface.h:
33041 * gst/vaapidecode/gstvaapidecode.c:
33042 * gst/vaapidecode/gstvaapidecode.h:
33043 Add Intel copyright information.
33045 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33050 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33052 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33053 Fix build with newer FFmpeg versions.
33055 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33057 * gst/vaapidecode/gstvaapidecode.c:
33058 * gst/vaapidecode/gstvaapidecode.h:
33059 Fix decoding of MPEG-2 TS files.
33061 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33063 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33064 Report caps update only once per video resolution change.
33066 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33068 * gst-libs/gst/vaapi/gstvaapisurface.h:
33069 Add canonical form (type name) of VA surface caps.
33071 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33074 Bump version for development.
33076 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33079 Use pretty build output with automake >= 1.11.
33081 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33083 * gst/vaapiconvert/Makefile.am:
33084 * gst/vaapidecode/Makefile.am:
33085 * gst/vaapisink/Makefile.am:
33086 * tests/Makefile.am:
33087 Fix build with libva headers not in a standard include dir.
33089 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33094 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33096 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33097 * gst-libs/gst/vaapi/gstvaapicompat.h:
33098 * gst-libs/gst/vaapi/gstvaapicontext.c:
33099 * gst-libs/gst/vaapi/gstvaapicontext.h:
33100 * gst-libs/gst/vaapi/gstvaapidebug.h:
33101 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33102 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33103 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33104 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33105 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33106 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33107 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33108 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33109 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33110 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33111 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33112 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33113 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33114 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33115 * gst-libs/gst/vaapi/gstvaapiimage.c:
33116 * gst-libs/gst/vaapi/gstvaapiimage.h:
33117 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33118 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33119 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33120 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33121 * gst-libs/gst/vaapi/gstvaapiobject.c:
33122 * gst-libs/gst/vaapi/gstvaapiobject.h:
33123 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33124 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33125 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33126 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33127 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33128 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33129 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33130 * gst-libs/gst/vaapi/gstvaapisurface.c:
33131 * gst-libs/gst/vaapi/gstvaapisurface.h:
33132 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33133 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33134 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33135 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33136 * gst-libs/gst/vaapi/gstvaapitexture.c:
33137 * gst-libs/gst/vaapi/gstvaapitexture.h:
33138 * gst-libs/gst/vaapi/gstvaapitypes.h:
33139 * gst-libs/gst/vaapi/gstvaapiutils.c:
33140 * gst-libs/gst/vaapi/gstvaapiutils.h:
33141 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33142 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33143 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33144 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33145 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33146 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33147 * gst-libs/gst/vaapi/gstvaapivalue.c:
33148 * gst-libs/gst/vaapi/gstvaapivalue.h:
33149 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33150 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33151 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33152 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33153 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33154 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33155 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33156 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33157 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33158 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33159 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33160 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33161 * gst/vaapiconvert/gstvaapiconvert.c:
33162 * gst/vaapiconvert/gstvaapiconvert.h:
33163 * gst/vaapidecode/gstvaapidecode.c:
33164 * gst/vaapidecode/gstvaapidecode.h:
33165 * gst/vaapisink/gstvaapisink.c:
33166 * gst/vaapisink/gstvaapisink.h:
33169 * tests/test-decode.c:
33170 * tests/test-decode.h:
33171 * tests/test-display.c:
33172 * tests/test-h264.c:
33173 * tests/test-h264.h:
33174 * tests/test-mpeg2.c:
33175 * tests/test-mpeg2.h:
33176 * tests/test-surfaces.c:
33177 * tests/test-textures.c:
33178 * tests/test-vc1.c:
33179 * tests/test-vc1.h:
33180 * tests/test-windows.c:
33181 Update copyright notice.
33183 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33186 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33187 * gst-libs/gst/vaapi/gstvaapisurface.c:
33188 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33189 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33190 * gst-libs/gst/vaapi/gstvaapitexture.c:
33191 * gst-libs/gst/vaapi/gstvaapiutils.c:
33192 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33193 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33194 * gst-libs/gst/vaapi/gstvaapivalue.c:
33195 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33196 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33197 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33198 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33199 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33200 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33201 Fix licensing terms.
33203 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33208 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33210 * debian.upstream/copyright:
33211 Fix license terms...
33213 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33215 * gst/vaapisink/gstvaapisink.c:
33216 Render pretty background only in use-reflection=true mode.
33218 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33223 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33225 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33226 Drop the GLX 1.3 requirement.
33228 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33230 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33231 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33232 Call the GLX/Pixmap related functions through the vtable.
33234 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33238 * gst-libs/gst/vaapi/Makefile.am:
33239 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33240 Drop dependency on libavformat.
33242 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33244 * gst-libs/gst/video/gstbasevideodecoder.c:
33245 * gst-libs/gst/video/gstbasevideodecoder.h:
33246 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33248 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33250 * gst-libs/gst/video/gstbasevideodecoder.c:
33251 * gst-libs/gst/video/gstbasevideoutils.c:
33252 * gst-libs/gst/video/gstbasevideoutils.h:
33253 Drop superfluous functions.
33255 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33257 * gst-libs/gst/video/gstbasevideodecoder.c:
33258 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33260 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33262 * gst-libs/gst/video/gstbasevideodecoder.c:
33263 Further drop dependency on libgstvideo.
33265 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33267 * gst-libs/gst/video/Makefile.am:
33268 * gst-libs/gst/video/gstbasevideocodec.c:
33269 * gst-libs/gst/video/gstbasevideocodec.h:
33270 * gst-libs/gst/video/gstbasevideodecoder.c:
33271 * gst-libs/gst/video/gstbasevideodecoder.h:
33272 * gst-libs/gst/video/gstbasevideoutils.c:
33273 * gst-libs/gst/video/gstbasevideoutils.h:
33274 Add GstBaseVideoDecoder from gst-plugins-bad git.
33276 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33278 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33279 Fix GLX version check.
33281 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33285 Bump version for development.
33287 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33290 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33291 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33293 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33298 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33300 * gst-libs/gst/vaapi/gstvaapicompat.h:
33301 Fix build with older VA-API 0.29-sds.
33303 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33305 * gst/vaapisink/gstvaapisink.c:
33306 * gst/vaapisink/gstvaapisink.h:
33307 Fix upscaling in foreign window (Totem).
33309 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33311 * gst/vaapisink/gstvaapisink.c:
33312 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33314 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33317 * gst/vaapisink/gstvaapisink.c:
33318 Fix video rendering rect within an embedder window (Totem).
33320 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33323 * gst/vaapisink/gstvaapisink.c:
33324 Disable GLX rendering when vaapisink uses a foreign X window.
33326 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33328 * gst/vaapisink/gstvaapisink.c:
33329 Simplify GLX rendering code.
33331 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33334 Bump version for development.
33336 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33341 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33343 * gst/vaapidecode/gstvaapidecode.c:
33344 Wait for at most one second for a VA surface to become available.
33346 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33350 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33352 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33356 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33357 Fix decoder caps to report codec aliases.
33359 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33362 * gst/vaapidecode/gstvaapidecode.c:
33363 * gst/vaapidecode/gstvaapidecode.h:
33364 Fix VC-1 decoding through the playbin2 pipeline.
33366 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33368 * docs/reference/libs/libs-sections.txt:
33369 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33370 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33371 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33372 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33373 Regularly update and expose decoder caps.
33375 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33377 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33378 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33379 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33380 Add mechanism to reinsert buffer leftovers into the queue.
33382 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33385 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33386 Fix memory leak of encoded buffers.
33388 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33390 * docs/reference/libs/libs-sections.txt:
33391 * gst-libs/gst/vaapi/gstvaapicontext.c:
33392 * gst-libs/gst/vaapi/gstvaapicontext.h:
33393 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33394 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33395 Check for out-of-free-surfaces condition.
33397 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33399 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33400 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33402 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33404 * gst/vaapisink/gstvaapisink.c:
33405 Improve debug info for gst_vaapisink_ensure_render_rect().
33407 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33410 Bump version for development.
33412 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33417 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33419 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33420 Improve previous fix.
33422 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33425 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33426 Fix a crash in the FFmpeg decoder on close.
33428 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33431 Sort platforms by name.
33433 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33437 Bump version for development.
33439 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33441 * gst/vaapisink/gstvaapisink.c:
33442 Add debug info for _show_frame().
33444 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33447 Nuke older build dir.
33449 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33451 * debian.upstream/control.in:
33452 Fix packaging deps.
33454 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33459 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33462 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33463 Fix OpenGL texture internal format (Clutter).
33465 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33470 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33472 * gst/vaapisink/gstvaapisink.c:
33473 Debug video & display PARs.
33475 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33477 * gst/vaapisink/gstvaapisink.c:
33478 Use XGetGeometry() to retrieve the window size.
33480 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33482 * gst/vaapisink/gstvaapisink.c:
33485 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33487 * gst/vaapisink/gstvaapisink.c:
33488 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33490 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33493 Drop obsolete comment.
33495 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33500 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33502 * gst/vaapidecode/gstvaapidecode.c:
33503 Fix GstVaapiDisplay refcounting in vaapidecode.
33505 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33507 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33510 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33512 * gst/vaapisink/gstvaapisink.c:
33513 * gst/vaapisink/gstvaapisink.h:
33514 Fix render rect when the foreign window size changes.
33516 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33520 * gst/vaapisink/Makefile.am:
33521 * gst/vaapisink/gstvaapisink.c:
33522 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33524 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33527 Update deps to match configure.ac versions.
33529 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33531 * gst/vaapiconvert/gstvaapiconvert.c:
33532 * gst/vaapidecode/gstvaapidecode.c:
33533 * gst/vaapisink/gstvaapisink.c:
33536 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33539 * gst/vaapidecode/Makefile.am:
33540 * gst/vaapidecode/gstvaapidecode.c:
33541 * gst/vaapidecode/gstvaapidecode.h:
33542 Fix vaapidecode to expose the HW supported caps only.
33544 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33546 * gst/vaapidecode/gstvaapidecode.c:
33547 Initialize decoder earlier.
33549 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33553 * gst/vaapidecode/gstvaapidecode.c:
33554 Fix integration within the playbin2 pipeline.
33556 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33558 * docs/reference/libs/Makefile.am:
33559 Exclude gstvaapiutils_gst.h from docs for now.
33561 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33563 * gst/vaapiconvert/gstvaapiconvert.c:
33564 * gst/vaapidecode/gstvaapidecode.c:
33565 * gst/vaapisink/gstvaapisink.c:
33566 Raise VA-API plugins ranks.
33568 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33570 * gst-libs/gst/vaapi/Makefile.am:
33571 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33572 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33573 Add gst_vaapi_display_lookup_downstream() helper.
33575 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33577 * gst/vaapidecode/gstvaapidecode.c:
33578 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33580 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33582 * docs/reference/libs/libs-sections.txt:
33583 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33584 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33585 * gst/vaapisink/gstvaapisink.c:
33586 Expose VA display through GstVaapiVideoBuffer.
33588 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33590 * gst/vaapidecode/gstvaapidecode.c:
33591 Simplify gst_vaapidecode_set_caps() and fix memory leak.
33593 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33595 * docs/reference/libs/libs-sections.txt:
33596 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33597 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33598 Expose video pool display.
33600 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33602 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33603 Stop iteration if there is no more element to examine.
33605 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33607 * gst/vaapiconvert/gstvaapiconvert.c:
33608 * gst/vaapidecode/gstvaapidecode.c:
33609 * gst/vaapisink/gstvaapisink.c:
33610 Improve plugin details.
33612 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33614 * gst-libs/gst/vaapi/gstvaapisurface.h:
33615 * gst/vaapiconvert/gstvaapiconvert.c:
33616 * gst/vaapidecode/gstvaapidecode.c:
33617 * gst/vaapisink/gstvaapisink.c:
33618 Factor out VA surface caps.
33620 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33622 * gst/vaapidecode/gstvaapidecode.c:
33623 Add gst_vaapidecode_ensure_display() helper for set-caps.
33625 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33628 Bump version for development.
33630 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33633 Really make it 0.2.0.
33635 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33640 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33642 * docs/reference/libs/Makefile.am:
33643 Don't exclude GstVaapiParamSpecs.
33645 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33647 * docs/reference/libs/Makefile.am:
33648 * docs/reference/libs/libs-sections.txt:
33649 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33650 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33653 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33655 * gst/vaapiconvert/gstvaapiconvert.c:
33656 * gst/vaapidecode/gstvaapidecode.c:
33657 * gst/vaapisink/gstvaapisink.c:
33658 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.
33660 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33662 * gst-libs/gst/vaapi/Makefile.am:
33663 Really link all helper libraries with libtool -no-undefined.
33665 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33667 * gst-libs/gst/vaapi/Makefile.am:
33668 Link helper libraries with libtool -no-undefined.
33670 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33673 * debian.upstream/gstreamer-vaapi.install.in:
33674 * gst/vaapiconvert/Makefile.am:
33675 * gst/vaapidecode/Makefile.am:
33676 * gst/vaapisink/Makefile.am:
33677 Don't build plugins with SONAME. Make them plain *.so.
33679 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33682 Improve documentation for release.
33684 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33686 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33687 Fix build with older VA-API 0.29.
33689 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33694 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33696 * tests/Makefile.am:
33699 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33701 * docs/reference/libs/Makefile.am:
33702 * docs/reference/libs/libs-docs.xml.in:
33703 * docs/reference/libs/libs-sections.txt:
33704 * docs/reference/libs/libs.core.types:
33705 * docs/reference/plugins/Makefile.am:
33706 * docs/reference/plugins/plugins-docs.xml.in:
33707 * docs/reference/plugins/plugins-sections.txt:
33708 * docs/reference/plugins/plugins.types:
33711 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33713 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33716 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33718 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33719 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33720 * gst/vaapidecode/gstvaapidecode.c:
33721 * tests/test-decode.c:
33722 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33724 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33726 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33727 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33728 Extract framerate information from caps.
33730 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33732 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33733 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33734 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33735 Move caps initialization to parent class.
33737 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33739 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33742 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33744 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33747 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33749 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33750 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33751 More simplifications.
33753 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33755 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33756 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33757 * tests/test-decode.c:
33758 Simplify GstVaapiDecoder API.
33760 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33762 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33763 Drop obsolete defs.
33765 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33767 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33768 Drop obsolete decls.
33770 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33772 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33773 * gst/vaapidecode/gstvaapidecode.c:
33774 Add more aliases for MPEG-4 decoding.
33776 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33778 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33779 Use avctx->coded_{width,height} info to create the VA context.
33781 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33783 * tests/test-decode.c:
33784 * tests/test-decode.h:
33785 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33787 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33789 * tests/test-decode.c:
33790 * tests/test-decode.h:
33791 * tests/test-h264.c:
33792 * tests/test-h264.h:
33793 * tests/test-mpeg2.c:
33794 * tests/test-mpeg2.h:
33795 * tests/test-vc1.c:
33796 * tests/test-vc1.h:
33797 Simplify tests info.
33799 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33801 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33802 Try to improve heuristics to use an AVCodecContextParser.
33804 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33806 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33807 Fix VC-1 decoding, it does not require any specific parser.
33809 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33811 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33812 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33814 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33816 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33817 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33818 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33820 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33822 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33823 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33824 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33825 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33826 * gst/vaapidecode/gstvaapidecode.c:
33827 * gst/vaapidecode/gstvaapidecode.h:
33828 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33830 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33832 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33833 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33834 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33835 Improve WMV3 detection yet further.
33837 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33839 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33840 Fix detection of plain old WMV3 contents.
33842 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33844 * tests/test-vc1.c:
33845 Add End-of-Sequence start code.
33847 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33849 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33850 * gst/vaapidecode/gstvaapidecode.c:
33851 Fix VC-1 detection.
33853 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33855 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33856 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33858 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33860 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33861 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33862 Drop obsolete (and wrong) code.
33864 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33866 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33867 Cosmetics (spelling).
33869 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33871 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33872 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33873 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33874 Try to fix timestamps (step 1). Looks OK on H55.
33876 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33878 * debian.upstream/Makefile.am:
33879 Ship with COPYING.LIB.
33881 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33886 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33887 * gst-libs/gst/vaapi/gstvaapicompat.h:
33888 * gst-libs/gst/vaapi/gstvaapicontext.c:
33889 * gst-libs/gst/vaapi/gstvaapicontext.h:
33890 * gst-libs/gst/vaapi/gstvaapidebug.h:
33891 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33892 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33893 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33894 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33895 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33896 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33897 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33898 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33899 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33900 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33901 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33902 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33903 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33904 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33905 * gst-libs/gst/vaapi/gstvaapiimage.c:
33906 * gst-libs/gst/vaapi/gstvaapiimage.h:
33907 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33908 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33909 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33910 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33911 * gst-libs/gst/vaapi/gstvaapiobject.c:
33912 * gst-libs/gst/vaapi/gstvaapiobject.h:
33913 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33914 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33915 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33916 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33917 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33918 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33919 * gst-libs/gst/vaapi/gstvaapisurface.h:
33920 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33921 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33922 * gst-libs/gst/vaapi/gstvaapitexture.h:
33923 * gst-libs/gst/vaapi/gstvaapitypes.h:
33924 * gst-libs/gst/vaapi/gstvaapiutils.h:
33925 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33926 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33927 * gst-libs/gst/vaapi/gstvaapivalue.h:
33928 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33929 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33930 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33931 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33932 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33933 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33934 Relicense gst-libs/ code to LGPL v2.1+.
33936 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33938 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33939 Drop extraneous comma.
33941 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33943 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33944 Drop variant=itu field to help codec detection.
33946 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33948 * gst/vaapidecode/gstvaapidecode.c:
33949 Decode as many surfaces as possible in gst_vaapidecode_step().
33951 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33953 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33954 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33955 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33956 * gst/vaapidecode/gstvaapidecode.c:
33957 * gst/vaapidecode/gstvaapidecode.h:
33958 * tests/test-decode.c:
33959 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
33961 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33966 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33968 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33969 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
33971 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33973 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33974 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33975 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
33977 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33979 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33980 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33981 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
33983 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33985 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33986 Document H.264 / AVC1 format case better.
33988 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33990 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33991 Fix H.264 decoding with AVC1 format bitstreams.
33993 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33995 * gst/vaapidecode/gstvaapidecode.c:
33996 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
33998 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34000 * gst/vaapisink/gstvaapisink.c:
34001 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34003 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34005 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34006 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34007 Export gst_vaapi_video_buffer_new().
34009 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34011 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34012 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34014 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34019 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34024 * gst/vaapidecode/Makefile.am:
34025 * gst/vaapidecode/gstvaapidecode.c:
34026 * gst/vaapidecode/gstvaapidecode.h:
34027 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34029 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34031 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34032 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34033 Add gst_vaapi_decoder_pause().
34035 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34037 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34038 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34039 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34040 Use a GstTask with start/stop semantics for the decoder thread.
34042 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34044 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34045 Drop extraneous var.
34047 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34049 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34050 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34051 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34053 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34055 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34056 Fix gst_vaapi_decoder_get_surface() status.
34058 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34060 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34061 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34062 Try to set correct timestamps to the decoded surface proxy.
34064 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34066 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34067 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34068 * tests/test-decode.c:
34069 Add timestamps to GstVaapiSurfaceProxy.
34071 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34073 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34074 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34076 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34078 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34079 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34081 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34083 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34084 Prefer profile from codec-data if any was found there.
34086 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34088 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34089 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34091 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34093 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34094 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34096 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34098 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34099 Fix VC-1 codec initialization, it really needs an extradata buffer.
34101 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34103 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34104 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34105 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.
34107 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34109 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34110 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34112 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34114 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34115 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34116 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34117 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34118 * tests/test-decode.c:
34119 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34121 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34123 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34124 Cosmetics (weird indentation).
34126 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34128 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34129 Cosmetics (extraneous variable, debug message).
34131 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34134 Fix check for VA-API enabled FFmpeg.
34136 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34138 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34139 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34140 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34141 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34142 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34144 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34146 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34147 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34148 Add more error codes. Fix documentation.
34150 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34152 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34153 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34155 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34157 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34158 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34159 * tests/test-decode.c:
34160 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34162 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34164 * tests/test-vc1.c:
34165 Drop useless End-of-Sequence marker.
34167 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34169 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34170 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.
34172 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34174 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34175 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34176 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.
34178 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34180 * tests/test-h264.c:
34181 * tests/test-vc1.c:
34182 Regenerate correct clips.
34184 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34186 * tests/Makefile.am:
34187 * tests/test-decode.c:
34188 * tests/test-h264.c:
34189 * tests/test-h264.h:
34190 * tests/test-mpeg2.c:
34191 * tests/test-mpeg2.h:
34192 * tests/test-vc1.c:
34193 * tests/test-vc1.h:
34194 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34195 XXX: only VC-1 decoding works at this time because of awful
34196 bugs left in GstVaapiDecoderFfmpeg et al.
34198 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34201 * gst-libs/gst/vaapi/Makefile.am:
34202 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34203 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34204 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34205 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34206 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34207 Add initial (multithreaded) decoder based on FFmpeg.
34208 There are tons of bugs left:
34209 - Decoder API not nice enough with error conditions
34210 - FFmpeg parser is sometimes broken
34211 - Packets queue can be lost
34213 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34215 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34216 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34217 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34219 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34221 * gst-libs/gst/vaapi/gstvaapicontext.c:
34222 * gst-libs/gst/vaapi/gstvaapicontext.h:
34223 Add VA context abstraction.
34225 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34227 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34228 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34230 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34232 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34233 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34234 Add a means to cap the number of objects allocated in the pool.
34236 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34238 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34239 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34240 Add VA entrypoint abstraction.
34242 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34244 * docs/reference/libs/libs-docs.xml.in:
34245 * docs/reference/libs/libs-sections.txt:
34246 * gst-libs/gst/vaapi/Makefile.am:
34247 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34248 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34249 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34250 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34251 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34252 * tests/test-display.c:
34253 Add VA profile abstraction.
34255 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34257 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34258 Fix OpenGL rendering on G45 systems.
34260 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34262 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34263 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34265 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34267 * gst-libs/gst/vaapi/gstvaapitexture.c:
34268 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34269 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34270 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.
34272 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34274 * gst-libs/gst/vaapi/gstvaapitexture.c:
34275 Fix get-out conditions.
34277 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34279 * gst-libs/gst/vaapi/gstvaapitexture.c:
34280 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34281 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.
34283 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34285 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34288 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34290 * docs/reference/libs/libs-sections.txt:
34291 * gst-libs/gst/vaapi/Makefile.am:
34292 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34293 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34294 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34295 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34296 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34297 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34298 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34299 * gst-libs/gst/vaapi/gstvaapitexture.c:
34300 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34301 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34302 * tests/test-windows.c:
34303 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34305 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34307 * gst-libs/gst/vaapi/Makefile.am:
34308 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34309 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34310 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34311 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34312 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34313 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34314 * gst-libs/gst/vaapi/gstvaapiimage.c:
34315 * gst-libs/gst/vaapi/gstvaapiobject.c:
34316 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34317 * gst-libs/gst/vaapi/gstvaapisurface.c:
34318 * gst-libs/gst/vaapi/gstvaapitexture.c:
34319 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34320 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34321 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34322 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34324 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34326 * gst-libs/gst/vaapi/gstvaapitexture.c:
34327 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34328 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34329 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34330 Improve handling of GL contexts.
34332 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34337 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34340 Bump version for development.
34342 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34345 * debian.upstream/Makefile.am:
34346 * debian.upstream/control.in:
34347 Rename -dev package to libgstvaapi-dev.
34349 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34355 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34357 * gst-libs/gst/vaapi/gstvaapiutils.c:
34358 Fix build with VA-API < 0.30.
34360 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34363 * gst-libs/gst/vaapi/gstvaapicompat.h:
34364 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34365 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34366 * gst-libs/gst/vaapi/gstvaapitexture.c:
34367 * tests/test-display.c:
34368 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34370 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34372 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34373 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34374 Add TFP and FBO helpers.
34376 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34378 * gst-libs/gst/vaapi/gstvaapiutils.c:
34379 * gst-libs/gst/vaapi/gstvaapiutils.h:
34380 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34382 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34384 * gst-libs/gst/vaapi/gstvaapitexture.c:
34385 * gst-libs/gst/vaapi/gstvaapiutils.c:
34386 * gst-libs/gst/vaapi/gstvaapiutils.h:
34387 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34388 Use a shorter function name.
34390 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34392 * docs/reference/libs/libs-sections.txt:
34393 * gst-libs/gst/vaapi/gstvaapisurface.c:
34394 * gst-libs/gst/vaapi/gstvaapisurface.h:
34395 * gst-libs/gst/vaapi/gstvaapiutils.c:
34396 * gst-libs/gst/vaapi/gstvaapiutils.h:
34397 Add gst_vaapi_surface_query_status() wrapper.
34399 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34401 * docs/reference/plugins/Makefile.am:
34402 Fix leftover during migration.
34404 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34408 * docs/reference/plugins/Makefile.am:
34410 * gst/vaapiconvert/Makefile.am:
34411 * gst/vaapiconvert/gstvaapiconvert.c:
34412 * gst/vaapiconvert/gstvaapiconvert.h:
34413 * gst/vaapisink/Makefile.am:
34414 * gst/vaapisink/gstvaapisink.c:
34415 * gst/vaapisink/gstvaapisink.h:
34416 Rename to gst/ as sys/ was too vague.
34418 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34420 * gst-libs/gst/vaapi/gstvaapiimage.c:
34421 * gst-libs/gst/vaapi/gstvaapiimage.h:
34422 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34423 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34424 * gst-libs/gst/vaapi/gstvaapisurface.c:
34425 * gst-libs/gst/vaapi/gstvaapisurface.h:
34426 Try to not reference VA-API types directly.
34428 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34430 * sys/vaapisink/gstvaapisink.c:
34431 Fix reflection code to preserve aspect ratio.
34433 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34435 * sys/vaapisink/gstvaapisink.c:
34436 * sys/vaapisink/gstvaapisink.h:
34437 Fix fullscreen mode.
34439 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34441 * sys/vaapisink/gstvaapisink.c:
34442 * sys/vaapisink/gstvaapisink.h:
34443 Add OpenGL reflection effect ("use-reflection").
34445 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34448 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34449 Use a projection suitable for rotation around the Y axis.
34451 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34454 * sys/vaapisink/Makefile.am:
34455 * sys/vaapisink/gstvaapisink.c:
34456 * sys/vaapisink/gstvaapisink.h:
34457 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34459 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34462 * debian.upstream/Makefile.am:
34463 * debian.upstream/control.in:
34464 * debian.upstream/libgstvaapi-glx.install.in:
34465 Add libgstvaapi-glx-0 package.
34467 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34469 * pkgconfig/Makefile.am:
34470 Really fix make distclean.
34472 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34474 * docs/reference/libs/Makefile.am:
34477 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34479 * pkgconfig/Makefile.am:
34480 Fix make distclean.
34482 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34484 * tests/Makefile.am:
34487 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34489 * docs/reference/libs/Makefile.am:
34490 * docs/reference/libs/libs.core.types:
34491 * docs/reference/libs/libs.glx.types:
34492 * docs/reference/libs/libs.x11.types:
34495 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34497 * sys/vaapisink/gstvaapisink.h:
34498 Fix build without GLX.
34500 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34505 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34507 * sys/vaapisink/Makefile.am:
34508 * sys/vaapisink/gstvaapisink.c:
34509 * sys/vaapisink/gstvaapisink.h:
34510 Add VA/GLX support to vaapisink.
34512 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34514 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34515 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34516 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34517 Add glXSwapBuffers() workaround for NVIDIA.
34519 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34521 * tests/Makefile.am:
34522 * tests/test-textures.c:
34523 Improve VA/GLX textures test.
34525 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34527 * gst-libs/gst/vaapi/gstvaapitexture.c:
34528 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34529 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34530 Fix texture rendering.
34532 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34534 * docs/reference/libs/libs-docs.xml.in:
34535 * docs/reference/libs/libs-sections.txt:
34536 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34537 * gst-libs/gst/vaapi/gstvaapitexture.c:
34540 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34542 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34543 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34544 Add gst_vaapi_window_glx_put_texture() helper.
34546 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34548 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34551 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34555 * tests/test-windows.c:
34558 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34560 * gst-libs/gst/vaapi/Makefile.am:
34561 * gst-libs/gst/vaapi/gstvaapitexture.c:
34562 * gst-libs/gst/vaapi/gstvaapitexture.h:
34563 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34564 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34565 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34567 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34569 * docs/reference/libs/libs-sections.txt:
34570 * gst-libs/gst/vaapi/gstvaapiobject.c:
34571 * gst-libs/gst/vaapi/gstvaapiobject.h:
34572 Add gst_vaapi_object_{,un}lock_display() helpers.
34574 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34576 * tests/Makefile.am:
34579 * tests/test-windows.c:
34580 Factor out image utilities.
34582 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34584 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34585 MT-Safe: lock display.
34587 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34589 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34590 Make sure window resize completed prior to resizing the GL viewport.
34592 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34594 * gst-libs/gst/vaapi/Makefile.am:
34595 gstvaapicompat.h is a private header, don't install it.
34597 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34599 * docs/reference/libs/libs-sections.txt:
34600 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34601 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34602 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34603 Add gst_vaapi_display_{sync,flush}() helpers.
34605 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34607 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34608 * sys/vaapisink/gstvaapisink.c:
34609 * sys/vaapisink/gstvaapisink.h:
34610 Add "synchronous" mode.
34612 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34614 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34615 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34616 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34618 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34620 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34621 Restore GLX context only if there is one.
34623 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34625 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34626 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34627 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34628 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34629 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34631 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34633 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34634 Check GstVaapiWindow::render() is available prior to calling it.
34636 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34638 * tests/Makefile.am:
34639 * tests/test-display.c:
34640 * tests/test-textures.c:
34641 Add VA/GLX display tests.
34643 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34646 * gst-libs/gst/vaapi/Makefile.am:
34649 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34651 * docs/reference/libs/Makefile.am:
34652 * docs/reference/libs/libs-docs.xml.in:
34653 * docs/reference/libs/libs-sections.txt:
34654 * docs/reference/libs/libs.types:
34655 Add missing API documentation.
34657 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34660 * gst-libs/gst/vaapi/Makefile.am:
34661 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34662 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34663 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34664 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34665 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34666 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34667 * pkgconfig/Makefile.am:
34668 * pkgconfig/gstreamer-vaapi-glx.pc.in:
34669 * tests/Makefile.am:
34670 * tests/test-textures.c:
34671 Add initial VA/GLX support.
34673 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34675 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34676 Add missing includes (for vaapi_check_status()).
34678 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34680 * gst-libs/gst/vaapi/gstvaapidebug.h:
34681 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34683 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34685 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34686 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34687 Add gst_vaapi_window_x11_is_foreign_xid() helper.
34689 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34691 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34692 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34693 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34694 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34695 Allow derived classes to specify custom Visual and Colormap.
34697 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34699 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34700 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34701 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34702 Allow window creation with a specific visual (e.g. for GLX support).
34704 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34706 * gst-libs/gst/vaapi/gstvaapiimage.c:
34707 Fix return value on error (though it's the same in the end).
34709 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34711 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34712 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34713 Simplify initialization of VADisplay.
34715 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34718 Move __attribute__((visibility("hidden"))) check down.
34720 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34722 * docs/reference/libs/libs-sections.txt:
34723 * gst-libs/gst/vaapi/gstvaapiimage.c:
34724 * gst-libs/gst/vaapi/gstvaapiimage.h:
34725 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34726 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34727 * gst-libs/gst/vaapi/gstvaapisurface.c:
34728 * gst-libs/gst/vaapi/gstvaapisurface.h:
34729 * tests/test-surfaces.c:
34730 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34732 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34734 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34735 Use the parent display object, no need to maintain another one.
34736 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34738 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34740 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34741 Add more internal helpers.
34743 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34745 * gst-libs/gst/vaapi/gstvaapiimage.c:
34746 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34747 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34748 * gst-libs/gst/vaapi/gstvaapisurface.c:
34749 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34750 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34751 Rename to GST_VAAPI_OBJECT_DISPLAY().
34753 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34755 * docs/reference/libs/libs-sections.txt:
34756 * gst-libs/gst/vaapi/gstvaapiimage.c:
34757 * gst-libs/gst/vaapi/gstvaapiobject.c:
34758 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34759 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34760 * gst-libs/gst/vaapi/gstvaapisurface.c:
34761 * gst-libs/gst/vaapi/gstvaapitypes.h:
34762 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34763 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34765 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34767 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34768 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34769 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34770 Make GstVaapiWindow* derive from GstVaapiObject.
34772 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34775 Factor out use gstreamer-vaapi (PACKAGE name).
34777 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34780 Improve versioning summary.
34782 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34784 * gst-libs/gst/vaapi/Makefile.am:
34785 gstvaapicompat.h is now a private header (not installed).
34787 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34789 * gst-libs/gst/vaapi/gstvaapiimage.c:
34790 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34791 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34792 * gst-libs/gst/vaapi/gstvaapiobject.c:
34793 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34794 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34795 Include gstvaapicompat.h in source files only, not headers.
34797 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34800 * gst-libs/gst/vaapi/Makefile.am:
34801 * sys/vaapiconvert/Makefile.am:
34802 * sys/vaapisink/Makefile.am:
34803 * tests/Makefile.am:
34804 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34806 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34810 * gst-libs/gst/vaapi/Makefile.am:
34811 * gst-libs/gst/vaapi/gstvaapicompat.h:
34812 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34813 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34814 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34815 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34816 * gst-libs/gst/vaapi/gstvaapisurface.c:
34817 * gst-libs/gst/vaapi/gstvaapiutils.c:
34818 * gst-libs/gst/vaapi/gstvaapiutils.h:
34819 * pkgconfig/gstreamer-vaapi-x11.pc.in:
34820 * pkgconfig/gstreamer-vaapi.pc.in:
34821 * sys/vaapiconvert/Makefile.am:
34822 * sys/vaapisink/Makefile.am:
34823 * tests/Makefile.am:
34824 Add compatibility with the original VA-API 0.29.
34826 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34828 * gst-libs/gst/vaapi/gstvaapivalue.h:
34829 Add missing file (gstvaapivalue.h).
34831 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34833 * gst-libs/gst/vaapi/gstvaapiimage.c:
34834 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34835 * gst-libs/gst/vaapi/gstvaapisurface.c:
34836 Fix g_warning() invocation.
34838 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34840 * gst-libs/gst/vaapi/gstvaapisurface.c:
34841 Deassociate subpictures while destroying the surface.
34843 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34845 * gst-libs/gst/vaapi/gstvaapisurface.c:
34846 Fix destruction order of subpictures. They should be destroyed first.
34848 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34851 * gst-libs/gst/vaapi/gstvaapiimage.c:
34852 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34853 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34854 * tests/test-windows.c:
34855 Add support for AYUV format.
34857 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34859 * tests/test-windows.c:
34860 Simplify upload process and fallback to subpictures.
34862 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34864 * docs/reference/libs/libs-docs.xml.in:
34865 * docs/reference/libs/libs-sections.txt:
34866 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34869 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34871 * gst-libs/gst/vaapi/Makefile.am:
34872 * gst-libs/gst/vaapi/gstvaapiobject.c:
34873 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34874 * gst-libs/gst/vaapi/gstvaapitypes.h:
34875 * gst-libs/gst/vaapi/gstvaapivalue.c:
34876 Move GValue specific stuff to a dedicated file.
34878 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34880 * tests/test-surfaces.c:
34881 Cosmetics (lowercase for consistency).
34883 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34885 * gst-libs/gst/vaapi/gstvaapiobject.c:
34886 Cosmetics (vertical alignment).
34888 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34890 * gst-libs/gst/vaapi/gstvaapiobject.c:
34891 Fix return value on error.
34893 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34895 * docs/reference/libs/libs-sections.txt:
34896 * gst-libs/gst/vaapi/gstvaapiimage.c:
34897 * gst-libs/gst/vaapi/gstvaapiimage.h:
34898 * gst-libs/gst/vaapi/gstvaapiobject.c:
34899 * gst-libs/gst/vaapi/gstvaapiobject.h:
34900 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34901 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34902 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34903 * gst-libs/gst/vaapi/gstvaapisurface.c:
34904 * gst-libs/gst/vaapi/gstvaapisurface.h:
34905 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34906 * tests/test-surfaces.c:
34907 Move "id" down to the GstVaapiObject base.
34909 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34911 * gst-libs/gst/vaapi/gstvaapitypes.c:
34912 Cosmetics (drop extraneous empty line).
34914 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34916 * gst-libs/gst/vaapi/Makefile.am:
34917 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34918 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34919 Add GParamSpecs for GstVaapiID.
34921 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34923 * docs/reference/libs/libs.types:
34924 Drop gst_vaapi_id_get_type().
34926 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34928 * docs/reference/libs/libs-sections.txt:
34929 * gst-libs/gst/vaapi/gstvaapitypes.h:
34930 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
34932 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34934 * docs/reference/libs/libs-sections.txt:
34935 * docs/reference/libs/libs.types:
34936 * gst-libs/gst/vaapi/Makefile.am:
34937 * gst-libs/gst/vaapi/gstvaapitypes.c:
34938 * gst-libs/gst/vaapi/gstvaapitypes.h:
34939 Add GstVaapiID abstraction.
34941 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34943 * docs/reference/libs/libs.types:
34946 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34948 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34949 * gst-libs/gst/vaapi/gstvaapiimage.c:
34950 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34951 * gst-libs/gst/vaapi/gstvaapisurface.c:
34952 Drop useless include (<va/va_backend.h>).
34954 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34956 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34957 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
34959 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34961 * gst-libs/gst/vaapi/Makefile.am:
34962 * gst-libs/gst/vaapi/gstvaapiimage.c:
34963 * gst-libs/gst/vaapi/gstvaapiobject.c:
34964 * gst-libs/gst/vaapi/gstvaapiobject.h:
34965 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34966 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34967 * gst-libs/gst/vaapi/gstvaapisurface.c:
34968 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34969 Move private definitions and accessors to gstvaapiobject_priv.h.
34971 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34973 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34974 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34975 * gst-libs/gst/vaapi/gstvaapiimage.c:
34976 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34977 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34978 * gst-libs/gst/vaapi/gstvaapiobject.c:
34979 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34980 * gst-libs/gst/vaapi/gstvaapisurface.c:
34981 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
34982 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34983 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34984 * gst-libs/gst/vaapi/gstvaapivideosink.c:
34985 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34986 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34987 Fix short descriptions.
34989 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34993 * debian.upstream/Makefile.am:
34994 * debian.upstream/changelog.in:
34995 * debian.upstream/compat:
34996 * debian.upstream/control.in:
34997 * debian.upstream/copyright:
34998 * debian.upstream/gstreamer-vaapi-doc.install.in:
34999 * debian.upstream/gstreamer-vaapi.install.in:
35000 * debian.upstream/libgstvaapi-dev.install.in:
35001 * debian.upstream/libgstvaapi-x11.install.in:
35002 * debian.upstream/libgstvaapi.install.in:
35003 * debian.upstream/rules:
35004 Generate upstream packages through make deb.upstream.
35006 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35009 Bump version for development.
35011 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35013 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35014 Use a black background for new windows.
35016 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35021 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35024 * docs/reference/libs/libs.types:
35025 * gst-libs/gst/vaapi/Makefile.am:
35026 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35027 * gst-libs/gst/vaapi/gstvaapiobject.c:
35028 * gst-libs/gst/vaapi/gstvaapiobject.h:
35029 * tests/test-surfaces.c:
35030 Add "destroy" signal.
35032 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35034 * docs/reference/libs/libs-docs.xml.in:
35035 Improve gst-plugins-vaapi Library reference template.
35037 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35039 * docs/reference/libs/libs-docs.xml.in:
35040 * docs/reference/libs/libs-sections.txt:
35041 * gst-libs/gst/vaapi/Makefile.am:
35042 * gst-libs/gst/vaapi/gstvaapiimage.c:
35043 * gst-libs/gst/vaapi/gstvaapiimage.h:
35044 * gst-libs/gst/vaapi/gstvaapiobject.c:
35045 * gst-libs/gst/vaapi/gstvaapiobject.h:
35046 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35047 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35048 * gst-libs/gst/vaapi/gstvaapisurface.c:
35049 * gst-libs/gst/vaapi/gstvaapisurface.h:
35050 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35051 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35053 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35055 * sys/vaapisink/gstvaapisink.c:
35058 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35060 * sys/vaapisink/gstvaapisink.c:
35061 Make sure VA display is valid when created with an explicit "display" name.
35063 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35065 * sys/vaapisink/gstvaapisink.c:
35066 Use plain "display" property for the X11 display name.
35068 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35070 * sys/vaapiconvert/gstvaapiconvert.c:
35071 * sys/vaapisink/gstvaapisink.c:
35072 Document vaapiconvert & vaapisink plugins.
35074 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35077 * docs/reference/Makefile.am:
35078 * docs/reference/plugins/Makefile.am:
35079 * docs/reference/plugins/plugins-docs.xml.in:
35080 * docs/reference/plugins/plugins-overrides.txt:
35081 * docs/reference/plugins/plugins-sections.txt:
35082 * docs/reference/plugins/plugins.types:
35083 Add plugins documentation template.
35085 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35087 * sys/vaapisink/gstvaapisink.c:
35088 * sys/vaapisink/gstvaapisink.h:
35089 Don't export gst_vaapisink_get_display().
35091 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35094 * docs/reference/libs/libs-docs.xml.in:
35095 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35096 * gst-libs/gst/vaapi/gstvaapiimage.c:
35097 * gst-libs/gst/vaapi/gstvaapisurface.c:
35098 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35099 Drop introspection annotations since they require gtk-doc >= 1.12.
35101 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35103 * gst-libs/gst/vaapi/gstvaapisurface.c:
35104 Add note about the fact that the surface holds an extra reference to the subpicture.
35106 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35108 * gst-libs/gst/vaapi/gstvaapiimage.c:
35109 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35110 * gst-libs/gst/vaapi/gstvaapisurface.c:
35111 Improve debugging messages.
35113 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35115 * tests/test-windows.c:
35116 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35118 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35120 * docs/reference/libs/libs-sections.txt:
35121 * gst-libs/gst/vaapi/gstvaapisurface.c:
35122 * gst-libs/gst/vaapi/gstvaapisurface.h:
35123 * tests/test-windows.c:
35124 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35126 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35128 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35129 Wait for MapNotify or UnmapNotify events on foreign windows too.
35131 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35133 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35134 Check whether the foreign XID is mapped at binding time.
35136 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35138 * sys/vaapisink/gstvaapisink.c:
35139 Add missing includes.
35141 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35144 * debian/Makefile.am:
35145 * debian/control.in:
35146 * debian/gstreamer-vaapi-doc.install.in:
35150 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35152 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35153 Fix warnings (drop extraneous var).
35155 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35157 * docs/reference/libs/libs-sections.txt:
35158 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35159 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35161 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35163 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35166 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35168 * gst-libs/gst/vaapi/Makefile.am:
35169 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35170 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35171 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35172 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35173 Try to improve switch to fullscreen mode.
35175 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35177 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35178 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35179 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35180 Improve display locking and rework X event wait functions.
35182 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35184 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35185 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35186 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35188 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35190 * gst-libs/gst/vaapi/Makefile.am:
35191 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35192 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35193 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.
35195 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35197 * docs/reference/libs/libs-sections.txt:
35198 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35199 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35200 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35202 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35204 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35205 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35206 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35207 Add gst_vaapi_window_get_display() to base.
35209 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35211 * docs/reference/libs/libs-docs.xml.in:
35212 * docs/reference/libs/libs-sections.txt:
35213 * gst-libs/gst/vaapi/Makefile.am:
35214 * gst-libs/gst/vaapi/gstvaapitypes.h:
35215 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35216 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35217 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35218 * sys/vaapisink/gstvaapisink.c:
35219 * sys/vaapisink/gstvaapisink.h:
35220 Add GstVaapiPoint & GstVaapiRectangle data structures.
35222 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35227 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35230 * sys/vaapisink/gstvaapisink.c:
35231 * sys/vaapisink/gstvaapisink.h:
35232 Allow `vaapisink` to render videos in fullscreen mode.
35234 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35236 * docs/reference/libs/libs-sections.txt:
35237 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35238 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35239 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35240 Add gst_vaapi_window_set_fullscreen() API.
35242 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35244 * sys/vaapisink/gstvaapisink.c:
35245 Size window so that to respect the video and pixel aspect ratio.
35247 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35249 * docs/reference/libs/libs-sections.txt:
35250 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35251 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35252 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35253 * tests/test-display.c:
35254 Add gst_vaapi_display_get_pixel_aspect_ratio().
35256 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35258 * docs/reference/libs/libs-sections.txt:
35261 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35263 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35264 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35265 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35266 * tests/test-display.c:
35267 Add display size accessors.
35269 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35272 * debian/control.in:
35273 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35275 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35277 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35278 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35279 * gst-libs/gst/vaapi/gstvaapiimage.h:
35280 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35281 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35282 * gst-libs/gst/vaapi/gstvaapisurface.h:
35283 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35284 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35285 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35286 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35287 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35288 Fix documentation of *Class'es.
35290 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35292 * gst-libs/gst/vaapi/gstvaapiutils.c:
35293 * gst-libs/gst/vaapi/gstvaapiutils.h:
35294 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35295 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35297 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35299 * docs/reference/libs/libs-sections.txt:
35300 * gst-libs/gst/vaapi/gstvaapisurface.h:
35301 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35302 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35304 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35306 * docs/reference/libs/libs-sections.txt:
35307 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35308 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35309 * sys/vaapisink/gstvaapisink.c:
35310 * tests/test-windows.c:
35311 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35313 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35315 * docs/reference/libs/Makefile.am:
35316 Fix make dist for --enable-gtk-doc builds.
35318 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35321 Improve autogen.sh.
35323 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35327 Generate gtk-doc.make from gtkdocize.
35329 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35334 * docs/Makefile.am:
35335 * docs/reference/Makefile.am:
35336 * docs/reference/libs/Makefile.am:
35337 * docs/reference/libs/libs-docs.xml.in:
35338 * docs/reference/libs/libs-overrides.txt:
35339 * docs/reference/libs/libs-sections.txt:
35340 * docs/reference/libs/libs.types:
35341 Document public API for libgstvaapi-*.so.*.
35343 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35345 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35346 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35347 Document GstVaapiVideoBuffer.
35349 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35351 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35352 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35353 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35354 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35355 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35356 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35357 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35359 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35361 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35362 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35363 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35364 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35365 * gst-libs/gst/vaapi/gstvaapiimage.c:
35366 * gst-libs/gst/vaapi/gstvaapiimage.h:
35367 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35368 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35369 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35370 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35371 * gst-libs/gst/vaapi/gstvaapisurface.c:
35372 * gst-libs/gst/vaapi/gstvaapisurface.h:
35373 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35374 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35375 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35376 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35377 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35378 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35379 Add tedious documentation.
35381 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35383 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35384 Beautify append_formats().
35386 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35388 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35389 Simplify GstVaapiDisplay (use GArray).
35391 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35394 * sys/vaapiconvert/gstvaapiconvert.c:
35395 * sys/vaapiconvert/gstvaapiconvert.h:
35396 Factor out direct-rendering infrastructure.
35398 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35400 * sys/vaapiconvert/gstvaapiconvert.c:
35401 * sys/vaapiconvert/gstvaapiconvert.h:
35402 Allow user to specify inout-buffers & derive-image optimizations.
35404 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35406 * sys/vaapiconvert/gstvaapiconvert.c:
35407 Reduce number of debug messaged printed out.
35409 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35411 * sys/vaapiconvert/gstvaapiconvert.c:
35412 * sys/vaapiconvert/gstvaapiconvert.h:
35413 Add vaDeriveImage() optimization.
35415 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35417 * gst-libs/gst/vaapi/gstvaapiimage.c:
35418 Fix gst_vaapi_image_create() from a foreign VA image.
35420 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35422 * gst-libs/gst/vaapi/gstvaapiimage.c:
35423 * gst-libs/gst/vaapi/gstvaapiimage.h:
35424 * gst-libs/gst/vaapi/gstvaapisurface.c:
35425 * gst-libs/gst/vaapi/gstvaapisurface.h:
35426 Add gst_vaapi_surface_derive_image() API.
35428 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35430 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35431 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35432 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35433 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().
35435 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35437 * tests/test-windows.c:
35438 Try YV12 & I420 image formats too.
35440 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35442 * gst-libs/gst/vaapi/gstvaapiimage.c:
35443 Split map/unmap functions into internal functions that don't check preconditions.
35445 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35447 * gst-libs/gst/vaapi/gstvaapiimage.c:
35448 Improve gst_vaapi_image_new() sanity checks.
35450 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35452 * tests/test-windows.c:
35455 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35457 * sys/vaapiconvert/gstvaapiconvert.c:
35458 Check if our inout buffer is still alive or default to a separate output buffer.
35460 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35462 * sys/vaapiconvert/gstvaapiconvert.c:
35463 * sys/vaapiconvert/gstvaapiconvert.h:
35464 Factor out buffers negotiation and optimization checks.
35466 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35468 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35469 * gst-libs/gst/vaapi/gstvaapiimage.c:
35470 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35471 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35472 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35473 * sys/vaapiconvert/gstvaapiconvert.h:
35476 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35478 * gst-libs/gst/vaapi/gstvaapiimage.c:
35479 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35481 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35483 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35484 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35485 * gst-libs/gst/vaapi/gstvaapiimage.c:
35486 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35487 * gst-libs/gst/vaapi/gstvaapisurface.c:
35488 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35489 Add VA display locking utilities.
35491 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35493 * sys/vaapisink/gstvaapisink.c:
35494 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35496 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35498 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35499 * tests/test-windows.c:
35500 Don't show window by default during creation.
35502 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35504 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35505 Fix gst_vaapi_window_x11_destroy().
35507 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35509 * sys/vaapiconvert/gstvaapiconvert.c:
35510 * sys/vaapiconvert/gstvaapiconvert.h:
35511 Alias sink & src pad buffers whenever possible.
35513 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35515 * gst-libs/gst/vaapi/gstvaapiimage.c:
35516 * gst-libs/gst/vaapi/gstvaapiimage.h:
35517 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35519 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35521 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35522 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35523 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35525 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35527 * sys/vaapiconvert/gstvaapiconvert.c:
35528 Fix image & surface size cache.
35530 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35533 Move gstreamer-vaapi package versioning to the top.
35535 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35538 Bump version for development.
35540 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35543 Cosmetics (shorten lines).
35545 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35551 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35553 * debian/Makefile.am:
35554 * debian/changelog.in:
35556 * debian/control.in:
35557 * debian/copyright:
35558 * debian/gstreamer-vaapi.install.in:
35559 * debian/libgstvaapi-dev.install.in:
35560 * debian/libgstvaapi-x11.install.in:
35561 * debian/libgstvaapi.install.in:
35563 Add debian packaging.
35565 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35569 Add debian packaging.
35571 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35573 * pkgconfig/Makefile.am:
35574 Silence GNU make extensions warning.
35576 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35579 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'
35581 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35585 * pkgconfig/Makefile.am:
35586 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35587 * pkgconfig/gstreamer-vaapi.pc.in:
35588 Add pkgconfig files.
35590 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35593 * gst-libs/gst/vaapi/Makefile.am:
35594 * sys/vaapisink/Makefile.am:
35595 * tests/Makefile.am:
35596 Split X11 support to libgstvaapi-x11-*.so.*
35598 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35600 * gst-libs/gst/vaapi/Makefile.am:
35601 Don't install private headers.
35603 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35605 * gst-libs/gst/vaapi/gstvaapidebug.h:
35606 * gst-libs/gst/vaapi/gstvaapiutils.c:
35607 * gst-libs/gst/vaapi/gstvaapiutils.h:
35610 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35612 * gst-libs/gst/vaapi/Makefile.am:
35613 * gst-libs/gst/vaapi/gstvaapidebug.h:
35614 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35615 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35616 * gst-libs/gst/vaapi/gstvaapiimage.c:
35617 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35618 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35619 * gst-libs/gst/vaapi/gstvaapisurface.c:
35620 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35621 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35622 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35623 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35624 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35625 Rename vaapi_debug.h to gstvaapidebug.h.
35627 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35629 * gst-libs/gst/vaapi/Makefile.am:
35630 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35631 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35632 * gst-libs/gst/vaapi/gstvaapiimage.c:
35633 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35634 * gst-libs/gst/vaapi/gstvaapisurface.c:
35635 * gst-libs/gst/vaapi/gstvaapiutils.c:
35636 * gst-libs/gst/vaapi/gstvaapiutils.h:
35637 * gst-libs/gst/vaapi/vaapi_debug.h:
35638 Move vaapi_utils.* to gstvaapiutils.*
35640 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35642 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35643 Cosmetics (remove an extra line).
35645 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35647 * gst-libs/gst/vaapi/Makefile.am:
35648 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35649 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35650 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35651 Move X11 utilties to gstvaapiutils_x11.[ch].
35653 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35655 * gst-libs/gst/vaapi/Makefile.am:
35656 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35657 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35658 * sys/vaapiconvert/gstvaapiconvert.c:
35659 * sys/vaapisink/gstvaapisink.c:
35660 Rename GstVaapiSinkBase to GstVaapiVideoSink.
35662 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35665 * tests/Makefile.am:
35666 * tests/examples/Makefile.am:
35667 * tests/examples/generic/Makefile.am:
35668 * tests/test-display.c:
35669 * tests/test-surfaces.c:
35670 * tests/test-windows.c:
35671 Move tests to top-level tests/ directory.
35673 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35675 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35676 * gst-libs/gst/vaapi/gstvaapiimage.c:
35677 * sys/vaapiconvert/gstvaapiconvert.c:
35678 * sys/vaapiconvert/gstvaapiconvert.h:
35679 Handle I420 formats internally in GstVaapiImage.
35681 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35683 * sys/vaapiconvert/gstvaapiconvert.c:
35684 * sys/vaapiconvert/gstvaapiconvert.h:
35685 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35687 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35689 * gst-libs/gst/vaapi/gstvaapiimage.c:
35690 Implement I420 and YV12 if the underlying implementation does not.
35692 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35694 * sys/vaapiconvert/Makefile.am:
35695 * sys/vaapiconvert/gstvaapiconvert.c:
35696 * sys/vaapiconvert/gstvaapiconvert.h:
35697 Add initial vaapiconvert plugin.
35699 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35701 * sys/vaapisink/gstvaapisink.c:
35702 * sys/vaapisink/gstvaapisink.h:
35705 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35707 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35710 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35712 * tests/examples/generic/test-windows.c:
35713 Generate R/G/B rects.
35715 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35717 * gst-libs/gst/vaapi/gstvaapisurface.c:
35718 * gst-libs/gst/vaapi/gstvaapisurface.h:
35719 Add gst_vaapi_surface_sync().
35721 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35723 * gst-libs/gst/vaapi/gstvaapiimage.c:
35724 Cosmetics (reverse args order).
35726 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35728 * gst-libs/gst/vaapi/gstvaapiimage.c:
35729 * gst-libs/gst/vaapi/gstvaapiimage.h:
35730 * gst-libs/gst/vaapi/gstvaapisurface.c:
35733 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35735 * gst-libs/gst/vaapi/Makefile.am:
35736 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35737 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35738 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35739 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35740 * tests/examples/generic/Makefile.am:
35741 * tests/examples/generic/test-windows.c:
35742 Add VA/X11 window abstraction.
35744 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35746 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35747 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35748 Add VA and X11 display accessors.
35750 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35752 * gst-libs/gst/vaapi/gstvaapiimage.c:
35755 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35757 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35760 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35762 * gst-libs/gst/vaapi/gstvaapiimage.c:
35763 * gst-libs/gst/vaapi/gstvaapiimage.h:
35764 * gst-libs/gst/vaapi/gstvaapisurface.c:
35765 * gst-libs/gst/vaapi/gstvaapisurface.h:
35766 Add gst_vaapi_{get,put}_image() API.
35768 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35770 * gst-libs/gst/vaapi/gstvaapiimage.c:
35771 * gst-libs/gst/vaapi/gstvaapiimage.h:
35772 Add gst_vaapi_image_update_from_buffer() helper.
35774 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35776 * sys/vaapisink/Makefile.am:
35777 * sys/vaapisink/gstvaapisink.c:
35778 * sys/vaapisink/gstvaapisink.h:
35779 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35781 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35783 * tests/examples/generic/Makefile.am:
35784 * tests/examples/generic/test-surfaces.c:
35787 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35789 * gst-libs/gst/vaapi/Makefile.am:
35790 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35791 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35792 Add basic GstVaapiVideoBuffer.
35794 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35796 * gst-libs/gst/vaapi/Makefile.am:
35797 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35798 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35799 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35800 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35801 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35802 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35803 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35805 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35807 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35808 Simplify format conversion code.
35810 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35812 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35813 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35814 Add gst_vaapi_image_format_from_caps() helper.
35816 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35818 * gst-libs/gst/vaapi/Makefile.am:
35819 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35820 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35821 Add VA surface pool (lazy allocator).
35823 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35825 * gst-libs/gst/vaapi/gstvaapisurface.c:
35826 * gst-libs/gst/vaapi/gstvaapisurface.h:
35827 Add gst_vaapi_surface_get_size() helper.
35829 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35831 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35832 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35834 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35836 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35837 Reset display-name if the user provided his own X11 display.
35839 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35841 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35842 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35843 * tests/examples/generic/test-display.c:
35844 Add gst_vaapi_display_x11_new_with_display() API.
35846 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35848 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35849 * gst-libs/gst/vaapi/gstvaapiimage.h:
35850 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35851 * gst-libs/gst/vaapi/gstvaapisurface.h:
35852 Fix *_GET_CLASS() definitions...
35854 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35856 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35857 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35858 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35859 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35860 * tests/examples/generic/test-display.c:
35861 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
35863 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35865 * gst-libs/gst/vaapi/gstvaapisurface.c:
35866 * gst-libs/gst/vaapi/gstvaapisurface.h:
35867 Use GstVaapiChromaType abstraction.
35869 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35871 * gst-libs/gst/vaapi/gstvaapiimage.c:
35872 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35873 * gst-libs/gst/vaapi/gstvaapisurface.c:
35874 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
35876 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35878 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35879 Don't warn on failure, just return an appropriate error or value.
35881 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35883 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35884 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35885 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35886 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
35888 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35890 * gst-libs/gst/vaapi/Makefile.am:
35891 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
35892 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
35893 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
35895 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35897 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35898 * gst-libs/gst/vaapi/gstvaapiimage.c:
35899 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35900 * gst-libs/gst/vaapi/gstvaapisurface.c:
35901 * gst-libs/gst/vaapi/vaapi_debug.h:
35904 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35906 * gst-libs/gst/vaapi/gstvaapiimage.c:
35907 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35908 Fix GstVaapiImage and GstVaapiSubpicture initialization.
35910 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35912 * gst-libs/gst/vaapi/gstvaapisurface.c:
35913 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
35915 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35917 * tests/examples/generic/test-display.c:
35920 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35922 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35923 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35924 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35925 Fix GstVaapiDisplay initialization.
35927 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35929 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35930 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35931 Get VA image & subpicture formats as GstCaps.
35933 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35935 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35936 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35937 Add helper to convert from GstVaapiImageFormat to GstCaps.
35939 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35941 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35942 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35943 * gst-libs/gst/vaapi/gstvaapisurface.c:
35944 Cosmetics (drop unused variables).
35946 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35949 * sys/vaapiconvert/Makefile.am:
35950 * sys/vaapiconvert/gstvaapiconvert.c:
35951 * sys/vaapiconvert/gstvaapiconvert.h:
35952 * sys/vaapisink/Makefile.am:
35953 * sys/vaapisink/gstvaapisink.c:
35954 * sys/vaapisink/gstvaapisink.h:
35955 Add boilerplate for vaapiconvert and vaapisink elements.
35957 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35961 * sys/vaapiconvert/Makefile.am:
35962 Add vaapiconvert element hierarchy.
35964 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35966 * sys/vaapisink/Makefile.am:
35967 Rename to vaapisink.
35969 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35971 * gst-libs/gst/vaapi/gstvaapisurface.c:
35972 Shorter code (and more correct).
35974 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35976 * gst-libs/gst/vaapi/gstvaapisurface.c:
35977 * gst-libs/gst/vaapi/gstvaapisurface.h:
35978 Add helper to get GstVaapiDisplay from a surface.
35980 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35982 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35983 Fix subpicture formats list length.
35985 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35987 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35988 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35989 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
35991 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35993 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35994 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35995 Cosmetics (more checks, includes).
35997 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35999 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36000 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36001 Really add VA subpicture abstraction.
36003 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36005 * gst-libs/gst/vaapi/Makefile.am:
36006 * gst-libs/gst/vaapi/gstvaapiimage.c:
36007 * gst-libs/gst/vaapi/gstvaapiimage.h:
36008 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36009 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36010 * gst-libs/gst/vaapi/gstvaapisurface.c:
36011 * gst-libs/gst/vaapi/gstvaapisurface.h:
36012 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36014 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36017 * gst-libs/gst/vaapi/Makefile.am:
36018 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36019 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36020 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36021 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36022 * gst-libs/gst/vaapi/vaapi_debug.h:
36023 * gst-libs/gst/vaapi/vaapi_utils.c:
36024 * gst-libs/gst/vaapi/vaapi_utils.h:
36025 * tests/examples/generic/Makefile.am:
36026 * tests/examples/generic/test-display.c:
36027 Add initial VA display abstraction.
36029 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36033 * tests/Makefile.am:
36034 * tests/examples/Makefile.am:
36035 * tests/examples/generic/Makefile.am:
36036 Add tests infrastructure.
36038 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36041 Clean up VA-API checks.
36043 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36046 Check for __attribute__((visibility("hidden"))).