1 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
3 * tests/check/meson.build:
4 meson: update for meson.build_root() and .build_source() deprecation
5 -> use meson.project_build_root() or .global_build_root() instead.
6 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
8 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
11 * gst-libs/gst/vaapi/meson.build:
13 * tests/check/meson.build:
14 meson: update for dep.get_pkgconfig_variable() deprecation
15 ... in favour of dep.get_variable('foo', ..) which in some
16 cases allows for further cleanups in future since we can
17 extract variables from pkg-config dependencies as well as
18 internal dependencies using this mechanism.
19 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
21 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
24 meson: bump meson requirement to >= 0.59
25 For monorepo build and ugly/bad, for advanced feature
26 option API like get_option('xyz').required(..) which
27 we use in combination with the 'gpl' option.
28 For rest of modules for consistency (people will likely
29 use newer features based on the top-level requirement).
30 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
32 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
35 Docs: Fix a typo for Intel's vaapi driver name.
36 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
38 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
41 doc: update IRC links to OFTC
42 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
44 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
48 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
50 === release 1.19.2 ===
52 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
57 * gstreamer-vaapi.doap:
61 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
63 * gst/vaapi/gstvaapidecode.c:
64 vaapi: decoder: modify the condition to judge whether dma buffer is supported
65 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
66 return false even if this platform support the mem_type dma buffer.
67 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
68 on Gen12(such as TGL).
69 Without this patch, The command such as:
70 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
71 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
72 will return not-negotiated.
73 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
74 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
76 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
78 * gst-libs/gst/vaapi/gstvaapidisplay.c:
79 * gst/vaapi/gstvaapivideocontext.c:
80 Display: Add a property to export the VA display handle.
81 Just like what we do in VA plugins. The display can be seen as a
82 generic gst object and we can add a property to get the internal
84 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
86 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
88 * gst/vaapi/gstvaapivideomemory.c:
89 * gst/vaapi/gstvaapivideomemory.h:
90 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
91 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
92 peek the surface of the VA buffers. The old flag 0 just peek the
93 surface proxy, which may not be convenient for the users who do not
94 want to include our headers.
95 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
97 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
99 * gst/vaapi/gstvaapi.c:
100 * gst/vaapi/gstvaapidecode.c:
101 Revert "vaapi: Demote vaapidecodebin to rank NONE."
102 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
103 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
105 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
107 * gst/vaapi/gstvaapiencode.c:
108 plugins: encode: fix a deadlock because of _drain()
109 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
110 whose context does not hold the stream lock of the encoder. The
111 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
112 lock count to the stream lock of encoder and causes hang later.
113 We just remove the gst_vaapiencode_drain() and expand its logic
114 correctly according to the lock/unlock context.
115 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
117 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
119 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
120 libs: decoder: av1: Clean the film_grain_info field.
121 We need to clean all film_grain_info fields when the film grain
122 feature is not enabled. It may have random data because the picture
123 parameter buffer is not cleaned.
124 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
126 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
128 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
129 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
130 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
131 The MPEG2 spec has amendment 3 to introduce a new level highP, which
132 is used for 1080@50p/60p streams. We need to add this level to avoid
133 encoding failure because of the level check.
135 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
137 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
139 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
140 Decoder: H264: Add the support for frame packing arrangement SEI message.
141 Frame packing arrangement SEI message is an alternative simple stereo 3D
142 manner for AVC. We need to recognize that SEI message and report the correct
144 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
146 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
148 * gst-libs/gst/vaapi/gstvaapifilter.c:
150 Use g_memdup2() where available and add fallback for older GLib versions
151 Alloc size is based on existing allocations and struct sizes.
152 g_memdup() is deprecated since GLib 2.68 and we want to avoid
153 deprecation warnings with recent versions of GLib.
154 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
156 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
161 === release 1.19.1 ===
163 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
168 * gstreamer-vaapi.doap:
172 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
174 * gst/vaapi/gstvaapi.c:
175 * gst/vaapi/gstvaapidecode.c:
176 vaapi: Demote vaapidecodebin to rank NONE.
177 One of the main reasons of vaapidecodebin was because it mitigated the
178 possible surface exhaustion. But that problem is currently
179 solved. Nowadays, vaapidecodebin brings more problems than it
180 solves. Thus this patch demotes vaapidecodebin to NONE rank while
181 bumping PRIMARY + 1 the most common decoders.
182 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
184 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
186 * gst/vaapi/gstvaapi.c:
187 * gst/vaapi/gstvaapioverlay.c:
188 plugins: Demote rank of vaapipostproc and vaapioverlay.
189 Since almost all video filters have rank NONE, these both elements
191 This is useful for autovideoconvert and other bins, and users might
192 force to use these by setting the environment variable
193 GST_PLUGIN_FEATURE_RANK.
194 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
196 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
198 * tests/check/elements/vaapioverlay.c:
199 Use gst_element_request_pad_simple...
200 Instead of the deprecated gst_element_get_request_pad.
201 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
203 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
205 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
206 libs: encoder: VP9: fix > 4k encode fail issue
207 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
208 width of a tile in units of superblocks. So the max width of one tile
209 should not be larger than 64x64=4096. When the width exceeds 4k, we
210 need to split it into multiple tiles in columns. The current vp9 encoder
211 does not handle this correctly.
213 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
214 vaapivp9enc ! fakesink
216 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
218 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
220 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
221 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
222 Otherwise user will be misled that the specified device is using
223 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
224 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
226 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
228 * gst-libs/gst/vaapi/gstvaapiencoder.c:
229 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
230 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
231 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
232 If ROI is enabled, the CUs within the ROI region may have different
233 QP from the other part of the picture. This needs us to enable the
234 cu_qp_delta_enabled_flag even in the CQP mode.
235 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
237 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
239 * gst-libs/gst/vaapi/gstvaapicontext.c:
240 * gst-libs/gst/vaapi/gstvaapicontext.h:
241 * gst-libs/gst/vaapi/gstvaapiencoder.c:
242 * gst-libs/gst/vaapi/gstvaapifilter.c:
243 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
244 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
245 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
246 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
247 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
248 * gst-libs/gst/vaapi/gstvaapivalue.c:
249 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
250 * gst/vaapi/gstvaapipluginbase.c:
251 * gst/vaapi/gstvaapisink.c:
252 * gst/vaapi/gstvaapisink.h:
253 * gst/vaapi/gstvaapivideocontext.c:
254 * gst/vaapi/gstvaapivideomemory.c:
255 * tests/internal/simple-decoder.c:
256 gst: don't use volatile to mean atomic
257 volatile is not sufficient to provide atomic guarantees and real atomics
258 should be used instead. GCC 11 has started warning about using volatile
259 with atomic operations.
260 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
261 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
262 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
264 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
266 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
267 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
268 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
269 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
271 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
273 * gst/vaapi/gstvaapipostproc.c:
274 plugins: postproc: Fix a problem of propose_allocation when passthrough.
275 We should query the downstream element to answer a precise allocation
276 query when the passthrough mode is enabled.
277 The current way still decides the allocation by the postproc itself. The
279 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
280 vaapipostproc ! fakevideosink silent=false sync=true
281 will lose some info such as the GST_VIDEO_META_API_TYPE.
282 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
284 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
286 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
287 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
288 * gst/vaapi/gstvaapivideocontext.c:
289 libs: display: drm: support gst.vaapi.app.Display context for drm backend
290 Attributes for drm backend:
291 - va-display : ponter of VADisplay
292 - drm-device-fd : the DRM device file descriptor
293 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
295 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
298 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
299 libs: display: drm: allow user specify a drm device via an env variable
300 Currently the default drm device is always used on a system with
301 multiple drm devices. This patch allows user to specify the required
302 drm device via GST_VAAPI_DRM_DEVICE env variable
304 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
305 vaapih264enc ! fakesink
306 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
308 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
310 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
311 libs: display: drm: fix set_device_path_from_fd
312 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
313 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
314 so we can't get the right device path. Running test-display will get the
316 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
318 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
319 issue because a special permission is required for SET_VERSION ioctl.
320 This patch retrieves the device path from file descriptor via
322 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
323 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
325 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
327 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
328 glx: Iterate over FBConfig and select 8 bit color size
329 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
330 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
331 over it to find the correct config with supported values.
332 This also adds 8 bit alpha size to the framebuffer configuration which is
333 required to get it working properly.
334 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
336 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
338 * gst-libs/gst/vaapi/gstvaapiutils.c:
339 vaapipostproc: fix code style.
340 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
342 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
344 * gst-libs/gst/vaapi/gstvaapidisplay.c:
345 * gst-libs/gst/vaapi/gstvaapidisplay.h:
346 * gst-libs/gst/vaapi/gstvaapifilter.c:
347 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
348 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
350 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
352 * gst-libs/gst/vaapi/gstvaapiutils.c:
353 vaapipostproc: Added gstreamer BT2020 color standard support.
354 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
356 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
358 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
359 decoder: AV1: Fix a static analysis problem of update_state().
360 No need to check the picture pointer after we have already dereferenced it.
362 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
364 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
366 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
367 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
368 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
369 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
370 The AV1 film_graim feature needs two surfaces the same time for
371 decoding. One is for recon surface which will be used as reference
372 later, and the other one is for display. The GstVaapiPicture should
373 contain the surface for display, while the vaBeginPicture() need
374 the recon surface as the target.
375 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
377 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
379 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
381 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
382 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
383 * gst-libs/gst/vaapi/gstvaapiprofile.c:
384 * gst-libs/gst/vaapi/gstvaapiprofile.h:
385 * gst-libs/gst/vaapi/gstvaapiutils.c:
386 * gst-libs/gst/vaapi/meson.build:
387 * gst/vaapi/gstvaapidecode.c:
389 libs: decoder: AV1: Add the av1 decoder support.
390 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
392 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
394 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
395 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
396 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
397 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
398 libs: codecobject: Add number of elements when create codec object.
399 One slice data may need several slice parameter buffers at one time.
400 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
402 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
404 * gst/vaapi/gstvaapidecodebin.c:
405 * gst/vaapi/gstvaapipluginbase.c:
406 * gst/vaapi/gstvaapivideobufferpool.c:
407 vaapi: use gst_clear_object instead of g_clear_object
408 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
410 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
412 * gst/vaapi/gstvaapiencode.c:
413 plugins: encode: unlock the stream lock before _flush()
414 The current encoder will hang when EOS comes. When we call the
415 gst_vaapi_encoder_encode_and_queue(), we should release the stream
416 lock, just like what we do in gst_vaapiencode_handle_frame().
417 The deadlock happens when: The input thread holding the stream lock
418 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
419 buffer, while the output thread which holding the coded buffer resource
420 is acquiring the stream lock in _push_frame() to push the data to
422 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
424 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
426 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
427 libs: encoder: H264: Fix one assert in get_pending_reordered().
428 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
429 case for HIERARCHICAL_B mode. The pipeline:
430 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
431 keyframe-period=32 ! fakesink
433 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
434 assertion failed: (count != 0)
435 The last few B frames are not fetched in correct order when HIERARCHICAL_B
437 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
438 make the last several frames encoded in reverse order. The NAL of last few
439 frames come in reverse order in the bit stream, though it can still output
441 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
443 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
445 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
446 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
447 libs: encoder: H265: Add screen content coding extensions support.
448 In scc mode, the I frame can ref to itself and it needs the L0 reference
449 list enabled. So we should set the I frame to P_SLICE type. We do not need
450 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
451 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
452 the driver consider the current frame as reference. For bits conformance,
453 the NumRpsCurrTempList0 should be incremented by one to include the current
454 picture as the reference frame. We manually do it when packing the slice header.
456 gst-launch-1.0 videotestsrc num-buffers=10 ! \
457 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
458 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
459 filesink location=out.265
460 Can be used to specify that the encoder should use SCC profiles.
461 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
463 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
465 * gst/vaapi/gstvaapiencode_vp9.c:
466 plugin: encode: vp9: Implement the set_config().
467 We store the allowed profiles list to encoder in set_config().
468 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
470 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
472 * gst/vaapi/gstvaapiencode_vp9.c:
473 plugin: encode: vp9: Add the profile into output caps.
474 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
476 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
478 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
479 libs: encoder: vp9: no need to ensure_hw_profile.
480 Once we decide the profile and can get the valid entrypoint for
481 that profile, hw must already support this profile/entrypoint pair.
482 No need to check it again in set_context_info().
483 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
485 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
487 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
488 libs: encoder: vp9: Improve the manner to decide the profile.
489 We should decide the VP9 encoder's profile based on the chroma and
490 depth of the input format, then make sure it is included in the
492 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
494 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
496 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
497 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
498 libs: util: vpx: add get_chroma_format_idc for VP9
499 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
501 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
503 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
504 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
505 libs: encoder: vp9: Add allowed_profiles.
506 We need the allowed_profiles to store the allowed profiles in down
509 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
511 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
513 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
515 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
517 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
518 libs: decoder: H265: Fix a typo in scc reference setting.
519 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
521 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
523 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
524 * gst-libs/gst/vaapi/gstvaapiprofile.c:
525 * gst-libs/gst/vaapi/gstvaapiprofile.h:
526 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
527 * gst-libs/gst/vaapi/video-format.c:
528 * gst/vaapi/gstvaapidecode.c:
529 libs: decoder: H265: Add MAIN_422_12 profile supporting.
530 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
532 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
534 * gst-libs/gst/vaapi/gstvaapiimage.c:
535 * gst-libs/gst/vaapi/video-format.c:
536 * gst-libs/gst/vaapi/video-format.h:
537 video-format: Add Y212_LE format.
538 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
539 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
541 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
543 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
545 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
546 * gst-libs/gst/vaapi/gstvaapiprofile.c:
547 * gst-libs/gst/vaapi/gstvaapiprofile.h:
548 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
549 * gst-libs/gst/vaapi/video-format.c:
550 * gst/vaapi/gstvaapidecode.c:
551 libs: decoder: H265: Add MAIN_444_12 profile supporting.
552 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
554 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
556 * gst-libs/gst/vaapi/gstvaapiimage.c:
557 * gst-libs/gst/vaapi/video-format.c:
558 * gst-libs/gst/vaapi/video-format.h:
559 video-format: Add Y412_LE format.
560 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
561 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
563 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
565 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
567 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
568 libs: decoder: h265: fill missing predictor_palette_size field.
569 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
570 forgotten and need to be filled when streams have palettes.
571 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
573 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
575 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
576 libs: utils: h265: Use get_profile_from_sps to get profile.
577 We now use gst_h265_get_profile_from_sps() to replace the old way
578 of gst_h265_profile_tier_level_get_profile() to get more precise
579 profile. The new function consider the unstandard cases and give
580 a more suitable profile decision.
581 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
583 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
585 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
586 libs: decoder: vp9: 0xff segment pred probs if no temporal update
587 According to the spec (6.2.11 Segmentation params syntax)
588 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
589 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
591 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
593 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
594 libs: decoder: vp9: avoid reference rewriting
595 The removed code set all the reference frames to the current frame it is a key
596 one, but later, all the reference frames were rewritten with the decoded picture
597 buffers or VA_INVALID_SURFACE if they were not available.
598 Basically, all this time the first reference frame assignment has been ignored,
599 and it's not described by the spec, and this patch removes that code.
600 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
602 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
604 * gst/vaapi/gstvaapidecode.c:
605 decoder: don't reply src caps query with allowed if pad is fixed
606 If the pad is already fixed the caps query have to be reply with the
607 current fixed caps. Otherwise the query has to be replied with the
608 autogeneratd src caps.
609 This path fix this by falling back to the normal caps query processing
610 if the pad is already fixed. Otherwise it will fetch the allowed src
612 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
614 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
616 * gst/vaapi/gstvaapidecode.c:
617 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
618 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
620 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
622 * gst/vaapi/gstvaapisink.c:
623 vaapisink: when updating the caps, reset rotation
624 When an element upstream changes settings (e.g. crop), new caps are sent
625 to vaapisink. When vaapisink was rotating the image, it needs to
626 re-evaluate if the sink needs to rotate the image.
627 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
629 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
632 ci: include template from gst-ci master branch again
634 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
639 === release 1.18.0 ===
641 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
647 * gstreamer-vaapi.doap:
651 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
653 * gst-libs/gst/vaapi/gstvaapifilter.c:
654 Update for gst_video_transfer_function_*() function renaming
655 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
657 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
659 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
660 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
661 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
662 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
663 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
665 === release 1.17.90 ===
667 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
672 * gstreamer-vaapi.doap:
676 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
678 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
679 libs: surface: egl: guard memory type
680 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
682 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
684 * gst/vaapi/gstvaapidecode.c:
685 plugin: decode: Fix two mem leaks because of caps.
686 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
688 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
690 * gst/vaapi/gstvaapivideomemory.c:
691 plugin: allocator: No need to ref allocator when create mem.
692 We do not need to ref the allocator when creating GstVaapiVideoMemory
693 kind memory, and then release it in _free(). The framework already
695 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
697 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
699 * gst/vaapi/gstvaapiencode_h264.c:
700 vaapiencode: h264: ignore level without breaking negotiation
701 Since commit 9f627ef2 if the user sets level in the encoder src caps
702 the caps negotiation is rejected.
703 But since the same commit the same encoder set the autoconfigured
704 level in caps. Some change in the base class might fixed the operation
705 order so now the caps are set and later negotiated.
706 This patch removes the level check.
708 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
710 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
712 * gst-libs/gst/vaapi/egl_vtable.h:
713 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
714 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
715 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
716 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
717 This code path is used when frames are rendered as textures through
718 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
719 Originally the EGLImage was exported as GEM, which was handled by
720 Intel drivers, but Gallium ones cannot create VA surfaces from
721 GEM buffers, only DMABuf.
722 This patch checks the memory types supported by VA driver to choose
723 the render the EGLImages from GEM or DMABuf, because GEM is still
724 better where supported.
725 DMABuf is well handled either by intel-vaapi-driver and gallium.
727 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
729 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
731 * gst-libs/gst/vaapi/gstvaapifilter.c:
732 * gst-libs/gst/vaapi/gstvaapifilter.h:
733 libs: filter: gst_vaapi_filter_get_memory_types()
734 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
736 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
738 * gst/vaapi/gstvaapipluginbase.c:
739 * gst/vaapi/gstvaapipluginbase.h:
740 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
741 Since nobody uses it, just remove it.
742 Thus extract_allowed_surface_formats() is refactored to attend only
743 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
744 Now a surface is created when the image chorma is different from the
745 previous one. And if the driver has the quirk, it outputs all the
746 supported image formats without trying them.
747 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
749 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
751 * gst/vaapi/gstvaapidecode.c:
752 vaapidecode: expose raw src caps with same chroma
753 The try-and-error approach for getting the possible image formats from
754 a surface has brought several problems in different drivers, from
755 crashes to drop in performance.
756 Instead of that we change the algorithm to determine the possible
757 image formats based in the surface chroma: only those available image
758 formats with same chroma are exposed as possible raw caps.
759 Do this is important to avoid performance degrading in raw sinks
760 which doesn't handle NV12 but it does YV12 or I420.
761 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
763 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
765 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
766 libs: util: h265: use common parser API to get vaapi profiles.
767 We can reuse H265 parser's API to recognize the correct profile and
768 then just need to convert them to VAAPI profiles.
769 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
771 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
773 * gst-libs/gst/vaapi/meson.build:
774 * gst/vaapi/meson.build:
776 build: update for gl pkg-config file split
777 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
779 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
781 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
782 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
783 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
784 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
786 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
788 * gst-libs/gst/vaapi/gstvaapiencoder.c:
789 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
790 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
791 libs: encoder: H265: Enable Main 12 profile support.
792 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
794 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
796 * gst-libs/gst/vaapi/video-format.c:
797 video format: Fix P012_LE's chrome type typo.
798 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
800 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
802 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
803 gstvaapiminiobject.c: fix clang 10 warnings
804 the typesystem checks in g_atomic_pointer_compare_and_exchange
805 seem to trigger some false positives with clang 10
806 similar to gstreamer!584
807 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
809 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
811 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
812 libs: window: wayland: destroy all wayland buffers during finalize
813 Some buffers and the associated FrameState state may still be pending at
814 that point. If the wayland connection is shared, then messages for the
815 buffer may still arrive. However, the associated event queue is already
816 deleted. So the result is a crash.
817 With a private connection the associated memory is leaked instead.
818 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
820 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
822 * tests/examples/test-vaapicontext.c:
823 test: vaapicontext: fix draw callback with multiple videos
824 The callback is called for both windows. So make sure that
825 gst_video_overlay_set_render_rectangle() is called for the correct one.
826 Otherwise, the left video will be randomly moved behind the right video.
827 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
829 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
831 * tests/examples/meson.build:
832 * tests/examples/test-vaapicontext.c:
833 test: vaapicontext: support wayland display
834 On Wayland, The whole gtk window is one Wayland surface. So
835 gtk_widget_get_window() must be called on the top-level widget.
836 For any other widget the following gdk_window_ensure_native() may create a
837 new top-level Wayland surface that is never visible.
838 As a result, the coordinates passed to
839 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
840 window. Otherwise the video is placed incorrectly.
841 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
842 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
844 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
846 * tests/examples/test-vaapicontext.c:
847 test: vaapicontext: use playbin to test files
848 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
850 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
852 * tests/examples/test-vaapicontext.c:
853 test: vaapicontext: add PLAY and NULL buttons
854 They only appear when only one sink is instanciated and their purpose
855 is to test the NULL-PLAY use case in context sharing.
856 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
858 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
860 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
861 libs: wayland: update the opaque region in set_render_rect
862 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
863 thread. That thread may be responsible for making the window visible.
864 At that point another thread will block in gst_vaapi_window_wayland_sync()
865 because the frame callback will not be called until the window is visible.
866 If that happens, then acquiring the display lock in
867 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
868 Cache the size of the opaque rectangle separately and create the opaque
869 region right before applying it to the surface.
870 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
872 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
874 * gst-libs/gst/vaapi/gstvaapiwindow.c:
875 * gst-libs/gst/vaapi/gstvaapiwindow.h:
876 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
877 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
878 * gst/vaapi/gstvaapisink.c:
879 libs: window: implements gst_vaapi_window_set_render_rectangle
880 Implements new vmethod gst_vaapi_window_set_render_rectangle,
881 which is doing set the information of the rendered rectangle set by
883 This is necessary on wayland at least to get exact information of
885 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
887 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
889 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
891 * gst/vaapi/gstvaapisink.c:
892 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
893 Implements gst_vaapisink_wayland_create_window_from_handle() to support
894 using external wl_surface.
895 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
897 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
899 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
900 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
901 * gst-libs/gst/vaapi/gstvaapiwindow.c:
902 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
903 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
904 libs: wayland: implement video overlay API
905 The Wayland sub-surfaces API is used to embed the video into an application
907 See Appendix A. Wayland Protocol Specification as the following.
909 The aim of sub-surfaces is to offload some of the compositing work
910 within a window from clients to the compositor. A prime example is
911 a video player with decorations and video in separate wl_surface
913 This should allow the compositor to pass YUV video buffer processing to
914 dedicated overlay hardware when possible.
916 Added new method gst_vaapi_window_wayland_new_with_surface()
917 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
918 Zhao Halley <halley.zhao@intel.com>
919 changzhix.wei@intel.com
920 Hyunjun Ko <zzoon@igalia.com>
921 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
923 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
925 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
926 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
927 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
929 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
931 * gst-libs/gst/vaapi/gstvaapidisplay.c:
932 libs: display: always call close_display()
933 All close_display() have their own checks for use_foreign_display and only
934 destroy locally created objects in that case.
935 Without this objects other than the actuall foreign display itself are
937 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
939 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
941 * gst-libs/gst/vaapi/video-format.h:
942 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
943 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
945 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
947 * gst/vaapi/gstvaapidecode.c:
948 * gst/vaapi/gstvaapipluginutil.c:
949 * gst/vaapi/gstvaapipluginutil.h:
950 plugins: add gst_vaapi_caps_set_width_and_height_range()
951 This utility function is called internally by
952 gst_vaapi_build_caps_from_formats() and can be used outside.
953 This function sets frame size and framerates ranges.
954 Also gst_vaapi_build_caps_from_formats() is simplified.
955 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
957 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
959 * gst-libs/gst/vaapi/gstvaapidecoder.c:
960 libs: decoder: fix a crash issue when get_surface_formats.
961 Some context does not report any valid format that we can support.
962 For example, the HEVC 444 12 bits decoder context, all the formats
963 it reports is not supported now, which make the formats list a NULL
964 array. We should check that pointer before we use it.
965 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
967 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
969 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
970 libs: encoder: h265: choose the profile based on allowed list.
971 We can decide the profile in ensure_profile(), based on allowed list
972 passed by the encode. We also need to check whether the entrypoint is
973 available. Once it is decided, no need to check the hw entrypoint
975 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
977 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
979 * gst/vaapi/gstvaapiencode_h265.c:
980 plugins: encode: h265: set all allowed profiles to encoder.
981 We should collect all allowed profiles and pass them to the inside
982 encoder, rather than just calculate the max profile idc.
983 The allowed profiles should also be supported by the HW.
984 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
986 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
988 * gst-libs/gst/vaapi/gstvaapidisplay.c:
989 * gst-libs/gst/vaapi/gstvaapidisplay.h:
990 libs: display: Add a helper function to get profiles by codec.
991 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
993 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
995 * gst/vaapi/gstvaapiencode_h265.c:
996 plugins: encode: h265: collect all allowed profiles to encoder.
997 We should collect all allowed profiles and pass them to the inside
998 encoder, rather than just calculate the max profile idc.
999 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1001 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1003 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1004 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1005 * gst/vaapi/gstvaapiencode_h265.c:
1006 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1007 In h265, bigger profile idc may not be compatible with the small profile
1008 idc. And more important, there are multi profiles with the same profile
1009 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1011 So recording the max profile idc is not enough, the encoder needs to know
1012 all allowed profiles when deciding the real profile.
1013 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1015 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1017 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1018 libs: encoder: h265: No need to check hw_max_profile.
1019 In h265, higher profile idc number does not mean better compression
1020 performance and may be not compatible with the lower profile idc.
1021 So, it is not suitable to find the heighest idc for hw to ensure the
1023 On the other side, when the entrypoint of the selected profile is valid,
1024 it means the hw really support this profile, no need to check it again.
1025 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1027 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1029 * gst/vaapi/gstvaapipostproc.c:
1030 vaapipostproc: early return if fixate srcpad caps fails
1031 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1033 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1035 * gst/vaapi/gstvaapipluginutil.c:
1036 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1037 Generalize the way how the preferred color format is chosen. Also
1038 use new GStreamre API as syntatic sugar.
1039 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1041 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1043 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1044 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1045 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1046 * gst/vaapi/gstvaapidecode.c:
1047 * gst/vaapi/gstvaapiencode.c:
1048 libs: profile: Use get_codec_from_caps to get codec type.
1049 There is no need to get a profile from the caps and then convert
1050 that profile into codec type. We can get the codec type by caps's
1052 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1054 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1056 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1057 libs: profile: h265: Fix return value of from_codec_data_h265.
1058 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1059 The codec data of caps contain the profile IDC, but the mapping between
1060 profile IDC and GstVaapiProfile is wrong.
1061 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1063 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1065 * gst/vaapi/gstvaapiencode_vp9.c:
1066 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1067 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1069 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1071 * gst/vaapi/gstvaapiencode_h264.c:
1072 * gst/vaapi/gstvaapiencode_h265.c:
1073 * gst/vaapi/gstvaapipluginutil.c:
1074 * gst/vaapi/gstvaapipluginutil.h:
1075 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1076 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1077 as VP9 also needs to use this function.
1078 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1080 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1082 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1083 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1084 * gst-libs/gst/vaapi/meson.build:
1085 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1086 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1088 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1090 * gst-libs/gst/vaapi/gstvaapicontext.c:
1091 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1092 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1093 libs: display, context: handle broken jpeg decoder for i965 driver
1094 JPEG decoding in i965 driver is pretty much broken, and the driver is
1095 deprecated which mean authors only accept trivial fixes.
1096 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1097 format which is not a common format in GStreamer. It can export it to
1098 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1099 This patch artificially adds NV12 to the context format list when it's
1100 JPEG decoder for i965 and force the usage of old VA-API for surface
1101 creation without specifying color format. Also it artificially
1102 disables the DMABuf announcement.
1103 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1104 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1106 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1108 * gst-libs/gst/vaapi/gstvaapicontext.c:
1109 libs: context: change function to internal code style
1110 Instead of a getter the function `get_preferred_format()` to
1111 `ensure_preferred_format()` which aligns to the code style.
1112 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1114 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1116 * gst/vaapi/gstvaapidecode.c:
1117 vaapidecode: always merge profile caps in sink caps
1118 This commit fixes a regression of e962069d, where if the profile's
1119 caps doesn't have a caps profile, it's ignored.
1120 This patch add a conditional jump if the caps doesn't have a profile
1123 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1125 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1128 build: request libdrm >= 2.4.98 and fallback
1130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1132 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1134 * gst/vaapi/gstvaapidecode.c:
1135 vaapidecode: dma caps only use reported color format
1136 This fix pipelines without vaapipostproc after vaapi decoder, such as
1137 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1138 On EGL platforms, so DMABuf is used.
1139 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1141 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1143 * gst/vaapi/gstvaapidecode.c:
1144 vaapidecode: use allowed srcpad caps for caps query
1145 Instead of using just the template caps use the current allowed
1146 srcpad caps, which is created considering the current decoder
1148 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1150 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1152 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1153 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1154 * gst/vaapi/gstvaapidecode.c:
1155 vaapidecode: build allowed srcpad caps from va context
1156 Instead of generating allowed srcpad caps with generic information,
1157 now it takes the size an formats limits from the decoder's context.
1158 This is possible since srcpad caps are generated after the internal
1160 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1161 gst_vaapi_decoder_get_suface_attributes().
1162 From these attributes, formats are only used for VASurface memory
1163 caps feature. For system memory caps feature, the old
1164 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1165 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1166 And for the other caps features (dmabuf and texture upload) the
1167 same static list are used.
1168 This patch also adds DMABuf caps feature only if the context
1169 supports that memory type. Nonetheless, we keep the pre-defined
1170 formats since they are the subset of common derive formats formats
1171 supported either by amd/gallium and both intel drivers, since,
1172 when exporting the fd through vaAcquireBufferHandle()/
1173 vaReleaseBufferHandle(), the formats of the derivable image cannot
1174 be retriebable from the driver. Later we'll use the attribute
1175 formats for the DMABuf feature too, when the code be ported to
1176 vaExportSurfaceHandle().
1177 Finally, the allowed srcpad caps are removed if the internal decoder
1178 is destroyed, since context attribues will change.
1179 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1181 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1183 * gst/vaapi/gstvaapidecode.c:
1184 vaapidecode: reorder src caps template
1185 Since negotiation depends on caps order, first is VA, then DMABuf,
1186 later GLUploadTexture (deprecated) and finally raw.
1187 Also, for decoders, the possible available color formats for DMABuf
1188 is extended to all the possible VA color formats.
1189 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1191 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1193 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1194 libs: window: wayland: use dmabuf protocol if available
1195 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1196 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1197 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1198 compatible with a Wayland server that uses the iris Mesa driver.
1199 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1200 protocol. Formats and modifiers supported by the Wayland server are taken
1201 into account. If necessary, VPP is enabled to convert the buffer into a
1203 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1205 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1207 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1209 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1210 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1211 libs: window: allow choosing the format for the vpp pool
1212 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1213 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1215 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1217 * gst-libs/gst/vaapi/video-format.c:
1218 * gst-libs/gst/vaapi/video-format.h:
1219 video-format: add DRM formats to the mapping table
1220 This will be needed for the DMABuf protocol support to map DRM formats to
1221 vaapi and gstreamer formats.
1222 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1224 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1226 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1227 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1228 * gst-libs/gst/vaapi/meson.build:
1229 libs: display: wayland: add basic dmabuf protocol support
1230 This is just the basic infrastructure. Hook up the interface and collect
1231 all supported formats.
1232 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1234 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1236 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1237 libs: window: wayland: wait for configure before committing the first buffer
1238 Committing the first buffer for a surface must not be done before
1239 ack_configure() has been sent for the xdg_surface.
1240 With weston, the commit will fail with "error 3: xdg_surface has never been
1242 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1244 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1246 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1248 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1249 libs: encoder: h265: set no P frame automatically.
1250 The double reference lists may be required by drivers and there should
1251 be no P frames in the of stream. The old way of converting P frames to
1252 B frames is by setting `low-delay-b` property, which is unconvenient
1253 and has bad user experience, since most of the users do not know when
1254 to set this property, and if it is not set correctly, the encoding
1255 pipeline fails or even hangs on some platforms. VA driver now provides
1256 a attribute to query whether both reference lists must be un-NULL for
1257 a profile/entrypoint pair.
1258 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1260 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1262 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1263 libs: encoder: h265: Deprecate the low-delay-b property.
1264 In HEVC, P and B definitions are different from AVC: P frames have
1265 just one reference list and so 1 MV, while B frames have two reference
1266 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1267 forward/backward reference. So P and B can both have bi-directions
1268 dependency, the difference is just their reference list
1269 number (i.e. MV number). This is different from the AVC.
1270 The *low delay b mode* refers to a special HEVC mode, in which the
1271 stream just contain I and B frames, without P frames, and all B frames
1272 only have forward direction dependencies (i.e. all inter frames have 2
1273 reference lists but no backward reference in both lists). This is
1274 similar to AVC I/P mode, but changing the P to the forward dependent
1276 The `low-delay-b` property is now just used to simply convert all P
1277 frames to B frames when driver does not support P frames (so both
1278 reference lists have the same references frames). This is a little
1279 different from the meaning of low delay b mode (the two ref lists may
1280 have the different reference frames). And the driver now can report
1281 whether it supports P frames correctly, so there is no need to use
1282 this property and deprecate it.
1283 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1285 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1287 * gst/vaapi/gstvaapipostproc.c:
1288 postproc: reconfigure after changing cropping values
1289 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1291 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1293 * gst/vaapi/gstvaapiencode.h:
1294 * gst/vaapi/gstvaapiencode_h264.c:
1295 * gst/vaapi/gstvaapiencode_h265.c:
1296 * gst/vaapi/gstvaapiencode_jpeg.c:
1297 * gst/vaapi/gstvaapiencode_mpeg2.c:
1298 * gst/vaapi/gstvaapiencode_vp8.c:
1299 * gst/vaapi/gstvaapiencode_vp9.c:
1300 plugin: encode: Add static caps for template documentation.
1301 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1303 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1305 * gst/vaapi/gstvaapiencode_vp9.c:
1306 plugin: encode: vp9: Use the dynamically built src template caps.
1307 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1309 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1311 * gst/vaapi/gstvaapiencode_vp8.c:
1312 plugin: encode: vp8: Use the dynamically built src template caps.
1313 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1315 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1317 * gst/vaapi/gstvaapiencode_jpeg.c:
1318 plugin: encode: jpeg: Use the dynamically built src template caps.
1319 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1321 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1323 * gst/vaapi/gstvaapiencode_mpeg2.c:
1324 plugin: encode: mpeg2: Use the dynamically built src template caps.
1325 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1327 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1329 * gst/vaapi/gstvaapiencode_h265.c:
1330 plugin: encode: h265: Use the dynamically built src template caps.
1331 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1333 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1335 * gst/vaapi/gstvaapiencode_h264.c:
1336 plugin: encode: h264: Use the dynamically built src template caps.
1337 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1339 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1341 * gst/vaapi/gstvaapiencode.h:
1342 * gst/vaapi/gstvaapiencode_h264.c:
1343 * gst/vaapi/gstvaapiencode_h265.c:
1344 * gst/vaapi/gstvaapiencode_jpeg.c:
1345 * gst/vaapi/gstvaapiencode_mpeg2.c:
1346 * gst/vaapi/gstvaapiencode_vp8.c:
1347 * gst/vaapi/gstvaapiencode_vp9.c:
1348 plugin: encode: Store the coded caps in type's init data.
1349 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1351 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1353 * gst/vaapi/gstvaapipluginutil.c:
1354 * gst/vaapi/gstvaapipluginutil.h:
1355 plugin: util: add helper function build_template_coded_caps_by_codec()
1356 Like build_template_raw_caps_by_codec(), this function can detect and
1357 build the caps for specified codec based on the query of the profiles.
1358 The result is coded caps such as video/x-h265, video/x-h264. The result
1359 can be used as the template of encode's src or decode's sink.
1360 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1362 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1364 * gst/vaapi/gstvaapiencode.h:
1365 * gst/vaapi/gstvaapipluginutil.c:
1366 * gst/vaapi/gstvaapipluginutil.h:
1367 plugins: utils: rename build_template_caps_by_codec.
1368 Rename the function build_template_caps_by_codec() to the name of
1369 build_template_raw_caps_by_codec(). It can be used to collect all
1370 raw video formats for encode's sink and decode's src.
1371 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1373 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1375 * gst/vaapi/gstvaapidecode.c:
1376 * gst/vaapi/gstvaapipluginutil.c:
1377 * gst/vaapi/gstvaapipluginutil.h:
1378 vaapidecode: merge common profiles before setting size range
1379 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1380 added at the end of processing all available VA profiles. This
1381 generated an non-optimal caps for negotiation, since the synthetic
1382 profiles don't have frame size ranges.
1383 This patch adds those possible synthetic profiles when the associated
1384 profile is processed, with its frame size ranges.
1385 Now allowed sink caps are simpler.
1386 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1388 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1390 * gst/vaapi/gstvaapipluginutil.c:
1391 plugin: util: Add the missing DMA buffer input in template caps.
1392 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1393 and lose the DMA feature in caps.
1394 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1396 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1398 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1399 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1400 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1401 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1402 * gst-libs/gst/vaapi/video-format.c:
1403 * gst/vaapi/gstvaapidecode.c:
1404 libs: decoder: H265: Add MAIN_12 profile supporting.
1405 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1407 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1409 * gst-libs/gst/vaapi/gstvaapiimage.c:
1410 * gst-libs/gst/vaapi/video-format.c:
1411 video-format: Add P012_LE format.
1412 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1413 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1415 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1417 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1419 * gst/vaapi/gstvaapidecode.c:
1420 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1421 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1422 contains all profiles of the whole VAAPI, like:
1423 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1424 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1425 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1426 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1427 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1428 constrained-high, progressive-high, baseline }; video/x-h265,
1429 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1430 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1431 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1432 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1433 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1434 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1435 height=(int)[ 0, 3840 ]
1436 Which is verbose and may have latent problems. It should only contains
1437 the profiles belong to its codec type. For example, h265 should only
1439 video/x-h265, profile=(string){ main, main-intra },
1440 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1441 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1443 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1445 * gst/vaapi/gstvaapidecodebin.c:
1446 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1447 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1449 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1451 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1452 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1453 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1455 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1457 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1458 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1459 * gst/vaapi/gstvaapidecode.c:
1460 * gst/vaapi/gstvaapidecode.h:
1461 * tests/internal/simple-decoder.c:
1462 vaapidecode: Remove NO_SURFACE error handling
1463 Since surfaces are not bounded to decoding context it makes no sense
1464 to keep the surface semaphore. This patch removes the handling of
1466 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1468 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1470 * gst/vaapi/gstvaapidecode.c:
1471 * gst/vaapi/gstvaapidecode.h:
1472 Revert "vaapidecode: drop non-keyframe in reverse playback"
1473 Since the number of surfaces are not bounded to decoder context,
1474 this hack is no longer needed.
1475 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1476 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1478 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1480 * gst-libs/gst/vaapi/gstvaapicontext.c:
1481 libs: decoder: context: remove surfaces binding from context.
1482 The vaCreateContext do not need to specify the surfaces for the
1483 context creation now. So we do not need to bind any surface to the
1484 context anymore. Surfaces should be the resource belong to display
1485 and just be used in encoder/decoder context.
1486 The previous manner has big limitation for decoder. The context's
1487 surface number is decided by dpb size. All the surfaces in dpb will
1488 be attached to a gstbuffer and be pushed to down stream, and the
1489 decoder need to wait down stream free the surface and go on if not
1490 enough surface available. For more and more use cases, this causes
1491 deadlock. For example,
1492 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1493 ! x264enc ! filesink location=./output.h264
1494 will cause deadlock and make the whole pipeline hang.
1495 the x264enc encoder need to cache more than dpb size surfaces.
1496 The best solution is seperating the surfaces number and the dpb size.
1497 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1498 And let the surfaces_pool in context maintain the re-use of all surfaces.
1499 For encoder, the situation is better, all the surfaces are just used
1500 as reference frame and no need to be pushed to down stream. We can
1501 just reserve and set the capacity of the surfaces_pool to meet the
1505 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1506 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1508 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1511 * scripts/extract-release-date-from-doap-file.py:
1512 meson: set release date from .doap file for releases
1513 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1515 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1517 * gst/vaapi/gstvaapipluginbase.c:
1518 plugins: use VA allocator by default on raw caps
1519 Instead of using dmabuf allocator in source pad, when raw video caps
1520 are negotiated, it uses VA allocator as before, since it is stable
1521 in more use cases, for example transcoding, and more backend drivers.
1522 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1523 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1525 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1527 * gst/vaapi/gstvaapi.c:
1528 vaapisink: rank it as secondary
1529 iHD doesn't provide a full implemention for rendering surfaces and
1530 i965 has problems in wayland. And I suspect this path is followed
1531 by other driver implementations.
1532 This patch demotes the rank of vaapisink to secondary, so it will
1533 not be autoplugged avoiding bad experience of users.
1534 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1536 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1538 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1539 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1540 libs: decoder: h264, h265: in context at least 16 reference surfaces
1541 Registering only stream's DBP size number of surfaces for decoding VA
1542 surfaces brings issues for certain streams. This change register all
1543 possible number of reference surfaces in a stream, which is 16.
1546 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1548 * gst/vaapi/gstvaapiencode_h265.c:
1549 plugins: encode: h265: Add profile,level,tier to output caps.
1550 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1552 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1554 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1555 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1556 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1558 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1560 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1561 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1562 0 is a valid value for h265 tier.
1563 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1565 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1567 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1568 libs: encoder: h265: no need to check the high compression tune.
1569 The h265 encoder just support tune mode:
1571 (3): low-power - Low power mode
1572 So, no need to check and set the high compression parameters.
1573 And by the way, the current ensure_tuning_high_compression manner
1574 of choosing the hightest profile idc as the best compression profile
1575 is not correct. Unlike h264, in h265 the higher profile idc number
1576 does not mean it has more compression tools, and so it has better
1577 compression performance. It may even be un-compatible with the lower
1578 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1579 9 is not compatible with 3D_MAIN profile with idc 8.
1580 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1582 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1587 === release 1.17.2 ===
1589 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
1594 * gstreamer-vaapi.doap:
1598 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
1600 * docs/gst_plugins_cache.json:
1601 * gst/vaapi/gstvaapiencode.c:
1602 docs: Mark parent classes as plugin API
1604 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1607 meson: mark plugins cache target as always stale
1609 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
1611 * docs/gst_plugins_cache.json:
1612 doc: Stop documenting properties from parents
1614 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
1619 === release 1.17.1 ===
1621 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
1626 * gstreamer-vaapi.doap:
1630 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
1632 * docs/gst_plugins_cache.json:
1633 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1634 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1635 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1636 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1637 Update plugin docs and add more plugins
1638 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1640 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1642 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1643 libs: wayland: display: only handle the first output
1644 Right now, all outputs are handled. The means that the registry object for
1645 all but the last are leaked. As a result the sizes are not used correctly.
1646 With two outputs, at first the mode and physical size of the second output
1647 are used. If the first output changes the mode, then the physical size of
1648 the second output is used in combination with the resolution of the first
1649 output. The resulting pixel aspect ratio is incorrect.
1650 There seems to be no way to determine on which output the window is shown,
1651 so just use the first one to get consistent results.
1652 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1654 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
1656 * gst/vaapi/gstvaapipluginbase.c:
1657 plugins: pluginbase: Do not destroy display when _close()
1658 When the element's state changes to NULL, it can still receive
1659 queries, such as the image formats. The display is needed in such
1660 queries but not well protected for MT safe.
1661 For example, ensure_allowed_raw_caps() may still use the display
1662 while it is disposed by gst_vaapi_plugin_base_close() because of
1664 We can keep the display until the element is destroyed. When the
1665 state changes to NULL, and then changes to PAUSED again, the display
1666 can be correctly set(if type changes), or leave untouched.
1668 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1670 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1672 * gst-libs/gst/vaapi/gstvaapicontext.c:
1673 libs: context: use correct printing modifier
1674 GstVaapiID is an alias of gsize, thus its modifier is platform
1676 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1678 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1680 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1681 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1682 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1683 * gst-libs/gst/vaapi/gstvaapifilter.c:
1684 * gst-libs/gst/vaapi/gstvaapivalue.c:
1685 plugins: uddate gst_type_mark_as_plugin_api() calls
1687 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
1689 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1690 libs: encoder: h265: Enable tile in VA command.
1691 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1693 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
1695 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1696 libs: encoder: h265: Add ensure_tile to calculate tiles.
1697 We need consider tiles and slices together, separate tiles uniformly
1698 and then assign slices uniformly to each tiles.
1699 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1701 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
1703 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1704 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1705 libs: display: add a quirk for iHD driver tile encoding.
1706 The iHD driver has a requirement that one slice can not span tiles
1707 when tile is enabled, which is not required by hevc spec.
1708 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1710 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
1712 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1713 libs: encoder: h265: Add tile info to bitstream.
1714 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1716 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
1718 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1719 libs: encoder: h265: promote level if tile is enabled.
1720 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1722 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
1724 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1725 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1726 libs: encoder: h265: Add num-tile-cols/rows properties.
1727 These properties are used for support of tile encoding. We just
1728 support uniform mode of tile encoding, that is, separating picture
1729 equally by (num-tile-cols X num-tile-rows).
1730 According to HEVC spec A1, the max number of tiles in column is 20
1731 and in rows is 22, so add two constant definitions.
1732 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1734 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
1736 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1737 libs: encoder: h265: extract slice creation from add_slice_headers
1738 extract slice creation details from add_slice_headers, and let the
1739 add_slice_headers just focuses on calculating slice start address
1741 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1743 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
1745 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1746 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1747 libs: encoder: Add a helper function to check the tile support.
1748 Encoding by tiles separation now is a very common feature for all
1749 relative new codecs, such as HEVC, AV1, and VP9. Just make this
1750 check as a common helper function of the encoder base class.
1751 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1753 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
1755 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1756 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1757 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1758 * gst-libs/gst/vaapi/gstvaapiutils.c:
1759 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1760 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1761 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1763 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
1765 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1766 libs: decoder: update reference list for SCC.
1767 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1769 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
1771 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1772 libs: decoder: H265: Fill picture and slice SCC parameters.
1773 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1775 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
1777 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1778 libs: util: H265: recognize the SCC profiles.
1779 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1781 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
1783 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1784 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1785 * gst-libs/gst/vaapi/gstvaapiutils.c:
1786 libs: profile: Add screen extended main/main10/main444 define.
1787 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1789 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
1791 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1792 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1793 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1794 * gst/vaapi/gstvaapiencode_h265.c:
1795 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1796 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1797 streams and using Y210 as the input of the encoder can generate main
1798 4:2:2 10 bit streams.
1799 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1801 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
1803 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1804 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1805 We need to use the chroma_format_idc as the index for getting the
1806 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1807 The wrong SubWidthC or SubHeightC make us calculate a wrong right
1808 or bottom offset for crop size and generate garbage in output.
1809 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1811 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
1813 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1814 libs: encoder: h265: Fix chrome idc for 444 10 bits
1815 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1816 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1817 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1819 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
1822 doc: Require hotdoc >= 0.11.0
1824 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
1826 * gst/vaapi/gstvaapipostproc.c:
1827 doc: Fix wrong link to GstVideoDirectionMethod
1829 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
1831 * docs/gst_plugins_cache.json:
1832 * meson_options.txt:
1833 docs: Update plugin cache with the new format
1834 And fix the default URL which should not be inside quotes.
1836 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
1838 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1839 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1840 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1841 * gst-libs/gst/vaapi/gstvaapifilter.c:
1842 * gst-libs/gst/vaapi/gstvaapivalue.c:
1843 * gst/vaapi/gstvaapipostproc.c:
1844 Use gst_type_mark_as_plugin_api() for all non-element plugin types
1846 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
1848 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1849 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1850 * gst-libs/gst/vaapi/gstvaapicontext.h:
1851 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1852 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1853 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1854 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1855 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1856 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1857 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1858 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1859 * gst-libs/gst/vaapi/gstvaapiimage.h:
1860 * gst-libs/gst/vaapi/gstvaapiobject.c:
1861 * gst-libs/gst/vaapi/gstvaapiobject.h:
1862 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
1863 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1864 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1865 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1866 * gst-libs/gst/vaapi/gstvaapisurface.h:
1867 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1868 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1869 * gst-libs/gst/vaapi/meson.build:
1870 libs: delete all gstvaapiobject related files.
1871 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1873 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
1875 * gst-libs/gst/vaapi/gstvaapisurface.c:
1876 libs: surface: return fail immediately if can not create subpicture
1877 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1879 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
1881 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1882 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1883 * gst-libs/gst/vaapi/gstvaapisurface.c:
1884 * tests/internal/image.c:
1885 libs: subpicture: Make subpicture a standard GstMiniObject.
1886 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1888 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
1890 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1891 libs: decoder: h264: Add ref flags for splited field.
1892 When split one frame into fields, the second field should also
1893 copy the reference flags.
1894 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
1896 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1898 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1899 libs: decoder: h264: disallow multiple slice group
1900 As far as we know there are no VAAPI drivers supporting FMO, which
1901 migth be used in baseline streams.
1902 This commit is a continuation of
1903 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
1904 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
1906 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1908 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1909 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1910 * gst/vaapi/gstvaapidecode.c:
1911 * gst/vaapi/gstvaapidecode_props.c:
1912 * gst/vaapi/gstvaapidecode_props.h:
1913 vaapidecoder: h264: remove baseline as constrained property
1914 From now on always the baseline is going to be treated as constrained without
1915 need of setting a property.
1916 Since the property was added along the development cycle (1.17 / commit
1917 866a9f06) and never released, we assume that it is safe to remove it.
1919 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
1921 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1924 README: update VP9 decoder and encoder
1925 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
1927 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
1929 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1930 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
1931 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
1932 so let's align this plugin with other libraries / softwares.
1933 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
1935 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1937 * gst/vaapi/gstvaapivideobufferpool.c:
1938 vaapivideobufferpool: fix meta overwrite
1939 commit 7ac2a207 added a regression by erroneously assumed that
1940 GstVaapiVideoMeta is actually a GstMeta, which is not.
1941 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
1943 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1945 * gst/vaapi/gstvaapivideobufferpool.c:
1946 * gst/vaapi/gstvaapivideometa_texture.c:
1947 * gst/vaapi/gstvaapivideometa_texture.h:
1948 vaapivideopool: Set pooled flag to added metas.
1949 So this could hint filters how to use these metas.
1950 Had to change the return value for texutre upload meta in order
1952 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
1954 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1956 * gst-libs/gst/vaapi/gstvaapicontext.c:
1957 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1958 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1959 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
1960 * gst-libs/gst/vaapi/gstvaapisurface.c:
1961 libs: use array_unref() rather than array_free()
1962 It is more convinience and thread-safe.
1963 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
1965 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
1967 * gst/vaapi/gstvaapi.c:
1968 plugin: use register_type to replace get_type for encode init.
1969 xxx_register_type will detect the template sink caps and is needed
1970 to be called at init time.
1971 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1973 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
1975 * gst/vaapi/gstvaapiencode_vp9.c:
1976 * gst/vaapi/gstvaapiencode_vp9.h:
1977 plugins: encode: Modify sink template of vp9 encode.
1978 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1979 Also implement gst_vaapiencode_vp9_register_type, which should be
1980 called at plugin register time.
1981 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1983 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
1985 * gst/vaapi/gstvaapiencode_vp8.c:
1986 * gst/vaapi/gstvaapiencode_vp8.h:
1987 plugins: encode: Modify sink template of vp8 encode.
1988 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1989 Also implement gst_vaapiencode_vp8_register_type, which should be
1990 called at plugin register time.
1991 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1993 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
1995 * gst/vaapi/gstvaapiencode_mpeg2.c:
1996 * gst/vaapi/gstvaapiencode_mpeg2.h:
1997 plugins: encode: Modify sink template of mpeg2 encode.
1998 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1999 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2000 called at plugin register time.
2001 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2003 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2005 * gst/vaapi/gstvaapiencode_h265.c:
2006 * gst/vaapi/gstvaapiencode_h265.h:
2007 plugins: encode: Modify sink template of h265 encode.
2008 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2009 Also implement gst_vaapiencode_h265_register_type, which should be
2010 called at plugin register time.
2011 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2013 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2015 * gst/vaapi/gstvaapiencode_h264.c:
2016 * gst/vaapi/gstvaapiencode_h264.h:
2017 plugins: encode: Modify sink template of h264 encode.
2018 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2019 Also implement gst_vaapiencode_h264_register_type, which should be
2020 called at plugin register time.
2021 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2023 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2025 * gst/vaapi/gstvaapiencode_jpeg.c:
2026 * gst/vaapi/gstvaapiencode_jpeg.h:
2027 plugins: encode: Modify sink template of jpeg encode.
2028 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2029 Also implement gst_vaapiencode_jpeg_register_type, which should be
2030 called at plugin register time.
2031 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2033 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2035 * gst/vaapi/gstvaapiencode.h:
2036 plugin: encode: add a helper macro to register encode type.
2037 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2039 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2041 * gst/vaapi/gstvaapipluginutil.c:
2042 * gst/vaapi/gstvaapipluginutil.h:
2043 plugins: util: Add a helper function to detect supported caps.
2044 This helper function iterate all profiles and entrypoints belong
2045 to the specified codec, query the VAConfigAttribRTFormat and list
2046 all possible video formats.
2047 This function is used by each codec to get the template sink caps
2048 (for encode) or src caps(for decode) at register time, when just
2049 all possible formats are listed and no need to be very accurate.
2050 So there is no context created for the performance reason. Most
2051 codecs just use YUV kinds of formats as the input/output, so we do
2052 not include RGB kinds of formats. User can specified more formats
2053 in extra_fmts(For example, jpeg may need BGRA) if needed.
2054 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2056 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2058 * gst/vaapi/gstvaapiencode.c:
2059 * gst/vaapi/gstvaapipluginutil.c:
2060 * gst/vaapi/gstvaapipluginutil.h:
2061 plugin: encode: extract the allowed caps maker as a helper function.
2062 Extract all logic about making caps for encode's sink as a standalone
2063 helper function. It can be reused.
2064 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2066 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2068 * gst-libs/gst/vaapi/video-format.c:
2069 * gst-libs/gst/vaapi/video-format.h:
2070 libs: video-format: add a helper function of get_formats_by_chroma.
2071 The function iterates all supported video formats and returns the
2072 formats belong to the specified chroma type.
2073 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2075 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2077 * gst-libs/gst/vaapi/gstvaapitexture.c:
2078 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2079 libs: texture: remove unused headers include
2080 This is continuation of
2081 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2082 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2084 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2086 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2087 * gst-libs/gst/vaapi/gstvaapiimage.h:
2088 * gst-libs/gst/vaapi/gstvaapisurface.h:
2089 libs: removed duplicated function declarations
2090 Some headers had duplicated inlined function declaration. This was
2091 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2092 documentation is not generated. So let's remove these extra lines.
2093 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2095 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2097 * gst-libs/gst/vaapi/gstvaapitexture.c:
2098 * gst-libs/gst/vaapi/gstvaapitexture.h:
2099 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2100 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2101 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2102 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2103 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2104 * gst/vaapi/gstvaapivideometa_texture.c:
2105 * tests/internal/test-textures.c:
2106 libs: texture: Make texture a standard GstMiniObject.
2107 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2108 the qdata of miniobject and avoid extending the base texture class.
2109 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2111 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2115 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2117 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2119 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2120 libs: display: drm: use g_strcmp0 to be null safe
2121 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2123 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2125 * gst/vaapi/gstvaapipluginutil.c:
2126 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2127 We may build this plugin with window system support but run it without
2128 window system. Without this patch, the following pipeline will trigger a
2129 segfault when running it without window system.
2130 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2131 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2133 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2136 build: use join_paths() for driverdir
2138 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2141 README: Update supported hardware
2142 Added the AMD hardware list to the "Hardware Requirements" section.
2144 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2146 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2147 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2148 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2149 libs: bufferproxy: remove GstMemory reference
2150 Since bufferproxy and surface are not referenced circularly, there's
2151 no need to keep, in the buffer proxy, a reference to the GstMemory
2152 where it is held. This patch removes that handling.
2154 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2156 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2157 * gst-libs/gst/vaapi/gstvaapisurface.c:
2158 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2159 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2160 * gst/vaapi/gstvaapivideomemory.c:
2161 libs,plugin: break surface-bufferproxy circular reference
2162 The bufferproxy may reference the surface and the surface may also
2163 reference the bufferproxy, producing a circular reference, which might
2164 lead to serious resource leak problems.
2165 Now make the relationship clearer, the bufferproxy's references is
2166 transfered to surface, while bufferproxy just keeps the surface's
2167 address without increasing its reference count.
2168 The surface can be created through a bufferproxy like in
2169 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2170 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2171 both cases the surface holds a bufferproxy's reference.
2173 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2175 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2176 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2177 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2178 libs: bufferproxy: rename parent memeber as surface
2180 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2182 * gst/vaapi/gstvaapivideobufferpool.c:
2183 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2184 The old way of refer memory by bufferproxy is not a good one, since it
2185 make the logic error prone.
2186 Now it is established a map between surface-bufferproxy and its GstMemory,
2187 caching the memory bound by a surface looked for the specified surface.
2189 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2191 * gst/vaapi/gstvaapivideobufferpool.c:
2192 * gst/vaapi/gstvaapivideobufferpool.h:
2193 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2194 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2195 In fact, no one is using that flag, and all vaapi buffers should
2196 have GstVaapiVideoMeta.
2198 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2200 * gst/vaapi/gstvaapipostproc.c:
2201 * gst/vaapi/gstvaapipostproc.h:
2202 vaapipostproc: enable HDR10 tone mapping
2204 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2206 * gst-libs/gst/vaapi/gstvaapifilter.c:
2207 * gst-libs/gst/vaapi/gstvaapifilter.h:
2208 libs: filter: HDR10 tone mapping support
2209 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2211 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2213 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2214 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2215 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2216 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2217 * gst/vaapi/gstvaapiencode_h265.c:
2218 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2219 Using Y410 as the input of the encoder can generate main_444_10 bit
2222 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2224 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2225 libs: encoder: fix an inexact trace info in chroma type check.
2227 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2229 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2230 libs: encoder: make sure format array is not NULL when returning TRUE
2231 This fixed segfault when running the pipeline below with iHD driver
2232 (commit efe5e9a) on ICL
2233 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2236 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2238 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2239 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2240 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2241 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2242 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2243 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2244 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2245 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2246 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2247 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2248 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2249 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2250 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2251 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2252 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2253 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2254 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2255 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2256 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2257 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2258 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2259 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2260 * gst-libs/gst/vaapi/gstvaapifilter.h:
2261 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2262 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2263 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2264 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2265 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2266 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2267 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2268 libs: extend g_autoptr support
2270 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2272 * gst/vaapi/gstvaapivideometa.c:
2273 vaapivideometa: remove compiler warning
2275 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2278 * meson_options.txt:
2279 build: Add meson's option package-origin.
2280 This options is added to synchronize with other gstreamer packages
2281 build configuration.
2282 Though, to avoid breaking distro configuration it is set, as default,
2283 the issues gitlab's url, instead of the used string
2284 "Unkown package origin".
2285 Also, set_quoted is used for string based cdata.
2287 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2289 * gst/vaapi/gstvaapipostproc.c:
2290 vaapipostproc: deprecate format, width and size parameters
2291 Since they should only be controlled by caps negotiation.
2293 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2295 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2296 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2297 * gst/vaapi/gstvaapidecode.c:
2298 libs,plugins: decoder: Add -intra profile support for hevc.
2299 In hevc, we can consider the -intra profile a subset of the none
2300 -intra profile. The -intra profiles just contain I frames and we
2301 definitely can use the none -intra profiles's context to decode
2303 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2305 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2307 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2308 libs: encoder: h265: support ICQ/QVBR BRC
2309 Enable support for ICQ and QVBR bitrate control.
2310 The code is essentially the same for h264 ICQ/QVBR support
2311 which was added in commit 9e0c133a2403.
2313 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2315 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2316 libs: encoder: set VA HRD param before RC param
2317 This is a workaround for intel-media-driver bug
2318 https://github.com/intel/media-driver/issues/865
2319 The driver will force the RC method to CBR for HEVCe
2320 when it parses the HRD param. Thus, any RC method
2321 param submitted "prior" to the HRD param will be lost.
2322 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2323 effectively enabled if the RC method param "precedes"
2325 To work around this issue, set the HRD param before
2326 the RC method param so the driver will parse the RC
2327 method param "after" the HRD param.
2328 Afaict, other codecs in the driver (and other drivers)
2329 do not appear to be dependent on the order of HRD and
2330 RC param submission.
2332 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2334 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2335 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2336 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2337 vaapijpegenc: Add a quantization quirk for iHD driver
2338 iHD driver shifts the value by 50 when calculating quantization for JPEG
2339 encoding, so we should add 50 in this plugin for iHD driver too.
2341 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2343 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2344 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2345 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2346 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2347 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2348 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2349 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2350 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2351 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2352 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2353 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2354 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2355 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2356 * gst-libs/gst/vaapi/meson.build:
2358 * tests/internal/output.c:
2359 * tests/internal/output.h:
2360 * tests/internal/simple-decoder.c:
2361 * tests/internal/test-decode.c:
2362 libs: remove GstVaapiPixmap
2363 GstVaapiPixmap is an abstract base class which only implementation
2364 were GstVaapiPixmapX11. This class were used for a special type of
2365 rendering in the tests apps, utterly unrelated in GStreamer.
2366 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2367 we should remove this unused API.
2368 This removal drops libxrender dependency.
2370 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2372 * gst-libs/gst/vaapi/gstvaapiutils.c:
2373 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2374 HEVCMain444_10 is already a supported profile and misses the strings.
2376 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2378 * gst/vaapi/gstvaapi.c:
2379 plugin: don't error if cannot create display
2380 This might generated errors on automatic tools such as CI. Let's
2381 rather just raise a warning and let continue.
2383 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2385 * tests/check/meson.build:
2386 test: fix a ninja test failure for vaapioverlay.
2387 That test case only works with drm display, so the build such as
2388 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2390 gets a failure when run ninja test. Just enable this test when drm
2393 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2395 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2396 libs: videopool: fix a condition race for pool allocate.
2398 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2400 * gst/vaapi/gstvaapivideobufferpool.c:
2401 vaapivideobufferpool: force video meta if sizes are different
2402 The strides and offsets could be the same, but the allocation
2403 size might be different (e.g. alignment). Thus, ensure we also
2404 set the flag to copy from VA memory to system memory when alloc
2408 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2410 * gst/vaapi/gstvaapidecode.c:
2411 vaapidecode: don't set base sink caps twice
2412 Base class's sink pad caps are already set when calling set_format().
2413 There's no need to call it again in gst_vaapidecode_negotiate().
2415 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2417 * gst/vaapi/gstvaapidecode.c:
2418 vaapidecode: unlock stream if caps update fails
2419 If caps update fail a dead lock occurs since the stream mutex is not
2422 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2424 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2425 libs: decoder: h265: parser state after update dependent slice
2426 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2427 So we need check the slice type after we call populate_dependent_slice_hdr
2429 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2431 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2432 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2433 libs: display: force RGBA image format for i965 driver
2434 Since commit 32bf6f1e GLTextureUpload is broken because i965
2435 doesn't report properly RGBA support. It could be possible to use RGBx
2436 but GLTextureUpload only regotiates RGBA.
2437 The simplest fix to this regression is adding synthetically the RGBA
2438 format in the internal format map.
2440 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2442 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2443 libs: display: iterate all quirks table
2444 Instead of break at the fist foud quirk in the table, iterate all over
2445 so it would be feasible to add several quirks for one driver per
2448 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2450 * gst-libs/gst/vaapi/gstvaapifilter.c:
2451 libs: filter: handle RGB to/from YUV color primary driver quirk
2452 The intel-media-driver (iHD) can't convert output color
2453 primaries when doing YUV to/from RGB CSC. Thus, we must
2454 keep the output color primaries the same as the input
2455 color primaries for this case.
2458 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2460 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2461 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2462 libs: display: add YUV to/from RGB color primary quirk
2463 The intel-media-driver (iHD) can't convert output color
2464 primaries when doing YUV to/from RGB CSC.
2466 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2468 * gst/vaapi/gstvaapivideomemory.c:
2469 Revert "vaapivideomemory: Store surface allocation flags."
2470 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2471 it rewrites the buffer size whilst surface allocation flags are
2472 stored when allocator_params_init() is called since fab890ce.
2475 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2477 * gst/vaapi/gstvaapivideomemory.c:
2478 vaapivideomemory: Try surface with allocation flags.
2479 When a vaapi allocator is instantiated, it first try to generate a
2480 surface with the specified configuration.
2481 This patch adds, in this tried buffer, the requested allocation flags.
2483 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2485 * gst/vaapi/gstvaapivideomemory.c:
2486 vaapivideomemory: Store surface allocation flags.
2487 Store surface allocation flags passed to the vaapi allocator in
2488 GObject's qdata, because it might be used by the vaapivideobufferpool
2489 when recreating the allocator given any resolution change.
2491 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2493 * gst-libs/gst/vaapi/gstvaapisurface.c:
2494 * gst-libs/gst/vaapi/gstvaapisurface.h:
2495 libs: surface: Add hints to allocation flags.
2496 When creating surfaces it is possible to pass to VA hints of its usage,
2497 so the driver may do some optimizations.
2498 This commit adds the handling of encoding/decoding hints.
2500 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2502 * gst-libs/gst/vaapi/gstvaapicontext.c:
2503 * gst-libs/gst/vaapi/gstvaapisurface.c:
2504 * gst-libs/gst/vaapi/gstvaapisurface.h:
2505 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2506 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2507 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2508 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2509 * tests/internal/test-filter.c:
2510 * tests/internal/test-surfaces.c:
2511 libs: surface: surfacepool: Add allocation flags in constructors.
2513 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2516 build: let the build fail if none if X11, wayland or drm.
2517 In fact, gst_vaapi_create_test_display only test x11, wayland and
2518 drm, no glx and egl entries. So if none of them is enabled, no
2519 vaapi element can be detected.
2521 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2523 * tests/internal/test-display.c:
2524 test: avoid unused warning for test-display
2525 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2526 -Dwith_glx=no buildir
2527 generate unused warnings.
2529 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2532 build: fix meson build error when without x11.
2533 meson -Dwith_x11=no build_dir
2534 can not success build the project because the glx is still enabled.
2535 We need to disable GLX when X11 is disabled.
2537 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2539 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2540 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2541 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2542 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2543 other HWs if other HWs may support other values
2544 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2546 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2548 * gst/vaapi/gstvaapipostproc.c:
2549 * gst/vaapi/gstvaapipostprocutil.c:
2550 vaapipostproc: do not compensate for crop/direction if no VPP
2551 If we do not have functional VPP, then cropping and video
2552 direction is non-functional and we should avoid calling
2553 any of the gst_vaapi_filter* APIs.
2555 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2557 * gst/vaapi/gstvaapipostproc.c:
2558 vaapipostproc: only set VPP colorimetry when VPP is available
2559 If we don't have functional vpp then we should not call
2560 gst_vaapi_filter_set_colorimetry.
2562 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2564 * gst/vaapi/gstvaapivideobufferpool.c:
2565 * gst/vaapi/gstvaapivideomemory.c:
2566 * gst/vaapi/gstvaapivideomemory.h:
2567 videobufferpool: don't reset surface when created internally
2568 The bug fixing, in commit 89f202ea, just considers the case when
2569 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2570 which is typically a decoder's behavior. But vaapipostproc doesn't
2571 provide any surface when calling gst_buffer_pool_acquire_buffer(),
2572 thus a surface is created when GstMemory is allocated.
2573 If the surface proxy in buffer's meta is reset at
2574 buffer_pool_reset_buffer(), that surface will be destroyed and it
2575 won't be available anymore. But GstBuffers are cached in the buffer
2576 pool and they are reused again, hence only those images are rendered
2580 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2582 * gst-libs/gst/vaapi/gstvaapiblend.c:
2583 * gst-libs/gst/vaapi/gstvaapifilter.c:
2584 * gst/vaapi/gstvaapi.c:
2585 libs: blend: filter: handle finalize() if display isn't assigned
2586 I've just discovered iHD driver in Skylake doesn't have VideoProc
2587 entry point, hence, in this platform, when vaapioverlay is tried to be
2588 registered, critical warnings are raised because blend doesn't have a
2590 As it is possible to have drivers without EntryPointVideoProc it is
2591 required to handle it gracefully. This patch does that: only tries to
2592 register vaapioverlay if the testing display has VPP and finalize()
2593 vmethods, in filter and blend, bail out if display is NULL.
2595 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2597 * gst-libs/gst/vaapi/gstvaapifilter.c:
2598 * gst-libs/gst/vaapi/gstvaapiutils.c:
2599 libs: filter: guard all color properties to VA-API 1.2.0
2600 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2601 Thus, guard all colorimetry -> VA-API support to version
2605 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2607 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2608 libs: decoder: h265: set parser info state at decoding codec data
2609 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2610 parser info in sps array. If that parser info comes from decoding
2611 codec data, that parser info will have an undefined state which might
2613 This patch sets the parser info state, at decoding codec data, with
2614 the internal parser state. This is similar with h264 decoder apprach.
2615 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2617 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2619 * gst/vaapi/gstvaapipostproc.c:
2620 vaapipostproc: demote log message to trace level
2622 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2624 * gst-libs/gst/vaapi/video-format.c:
2625 libs: video-format: set general vaapi log category
2626 Instead of logging in an unspecified category, set the default vaapi.
2628 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2630 * gst-libs/gst/vaapi/gstvaapiutils.c:
2631 libs: utils: guard EncSliceLP for VA-API < 0.39.1
2634 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
2636 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2637 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2639 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2641 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2642 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2643 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2644 libs: remove crumbs of libva < 0.39
2645 All these guarded code seem like leftovers of commit 920b1ec7a. This
2646 patch completes that missing clean up.
2648 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2650 * gst-libs/gst/vaapi/gstvaapifilter.c:
2651 * gst-libs/gst/vaapi/gstvaapiutils.c:
2652 libs: VA explicit color standard not supported until 1.2.0
2653 VAProcColorStandardExplicit and associated VAProcColorProperties
2654 (primaries, transfer and matrix) are not supported until
2656 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2660 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2662 * gst-libs/gst/vaapi/gstvaapiutils.c:
2663 libs: utils: WA: use explicit for sRGB colorimetry
2664 Addresses #228 on iHD side. It seems iHD can't handle
2665 VAProcColorStandardSRGB in all situations for vpp. But
2666 it has no problem when we specify the sRGB parameters
2667 via VAProcColorStandardExplicit parameters.
2669 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2671 * gst-libs/gst/vaapi/gstvaapifilter.c:
2672 libs: filter: set vpp input/output color range
2673 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2674 And, the [iHD] driver essentially computes the same color
2675 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2676 cases were gstreamer computes it automatically. But,
2677 if the user wants to make it explicit, we should try
2680 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2682 * gst-libs/gst/vaapi/gstvaapiutils.c:
2683 * gst-libs/gst/vaapi/gstvaapiutils.h:
2684 libs: utils: map GstVideoColorRange to VAAPI VPP
2686 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2688 * gst/vaapi/gstvaapidecode.c:
2689 vaapidecode: don't remove chroma-site nor colorimetry
2690 Since now they can be handled by vaapipostproc.
2692 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2694 * gst/vaapi/gstvaapipostprocutil.c:
2695 vaapipostproc: use sink resolution to calculate src colorimetry
2696 The default output colorimetry is persuaded by the output
2697 resolution, which is too naive when doing VPP cropping
2698 and/or scaling. For example, scaling 4K(sink)->1080P(src)
2699 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2700 colorimetry selection and some drivers don't support that
2702 Thus, if output (i.e. downstream) does not specify a
2703 colorimetry then we use the input resolution instead of the
2704 output resolution to create the default colorimetry. Also,
2705 note that we still use the output format since it may be a
2706 different color space than the input. As in the example
2707 above, this will result in bt2020(sink)->bt2020(src)
2708 colorimetry selection and all drivers (afaik) should support
2711 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2713 * gst/vaapi/gstvaapipostprocutil.c:
2714 vaapipostproc: set srcpad colorimetry unconditionally
2715 We always need a srcpad colorimetry for VAAPI VPP
2717 Also, check the return value of _set_colorimetry.
2719 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2721 * gst/vaapi/gstvaapipostprocutil.c:
2722 vaapipostproc: do not override explicit srcpad colorimetry
2723 If colorimetry has been set by a capsfilter (e.g.
2724 vaapipostproc ! video/x-raw,colorimetry=bt709) then
2725 don't try to override it. Previously, the aforementioned
2726 capsfilter will fail to negotiate if default colorimetry
2727 is not the same as the capsfilter (e.g. 4K resolutions).
2729 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2731 * gst/vaapi/gstvaapipostproc.c:
2732 vaapipostproc: set vpp filter colorimetry
2733 Set the input and output colorimetry for vpp filter.
2735 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2737 * gst-libs/gst/vaapi/gstvaapifilter.c:
2738 * gst-libs/gst/vaapi/gstvaapifilter.h:
2739 libs: filter: support vpp input/output color standard
2740 Add API function to allow setting the input and output vpp
2741 color standard from GstVideoColorimetry.
2743 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2745 * gst-libs/gst/vaapi/gstvaapiutils.c:
2746 * gst-libs/gst/vaapi/gstvaapiutils.h:
2747 libs: utils: map GstVideoColorimetry to VAAPI VPP
2748 Fallback to VAProcColorStandardExplicit if there is no
2751 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2753 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2754 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2755 libs: display: add vpp color standard quirk for i965 driver
2756 The i965 does not properly report supported vpp color
2759 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2761 * gst/vaapi/gstvaapivideobufferpool.c:
2762 vaapivideobufferpool: dmabuf implies allocator
2763 Some code can be optimized since only if the dmabuf allocator is set,
2764 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2765 the allocator address.
2767 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2769 * gst/vaapi/gstvaapivideobufferpool.c:
2770 vaapivideobufferpool: reject configuration if allocator isn't vaapi
2771 If the requested allocator in set_config() is not a VAAPI valid one,
2772 reject the configuration, instead of lying and using a private one.
2773 This patch superseeds !254 and !24
2775 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2777 * gst/vaapi/gstvaapivideobufferpool.c:
2778 vaapivideobufferpool: add explanation for allocator reconfig
2780 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2782 * gst/vaapi/gstvaapivideobufferpool.c:
2783 vaapivideobufferpool: check for vaapi meta first
2784 If the configured meta doesn't request vaapi meta then it is not a
2785 vaapi buffer pool. Bail out as soon as possible.
2787 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2789 * gst/vaapi/gstvaapivideobufferpool.c:
2790 vaapivideobufferpool: turn errors into warnings
2791 set_config() vmethod should fail gracefully, thus upstream could
2792 negotiate another pool if possible.
2793 Instead of sending error messages to the bus, let demote the level
2796 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2798 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2799 libs: display: log out vendor string when available
2800 This is useful while asking for logs to know the used driver.
2802 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2804 * gst-libs/gst/vaapi/gstvaapisurface.c:
2805 libs: surface: initialize VASurfaceAttribExternalBuffers
2806 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2807 rather than using memset().
2809 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2811 * gst-libs/gst/vaapi/gstvaapisurface.c:
2812 libs: surface: merge two loops into one
2813 Merge two loops into one for setting offsets and strides in the
2814 external buffer descriptor.
2816 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2818 * gst-libs/gst/vaapi/gstvaapisurface.c:
2819 * gst-libs/gst/vaapi/gstvaapisurface.h:
2820 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2821 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2822 libs: surface: surfacepool: rename variable for clearity
2823 In order to be readable, the meaningless 'flags' is renamed to
2824 surface_allocation_flags, which is clearer.
2826 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2828 * gst/vaapi/gstvaapivideobufferpool.c:
2829 vaapivideobufferpool: Reuse internal allocator is possible.
2830 Instead of creating a new allocator when upstream requests a different
2831 allocator, this patch tries to reuse the internal allocator if it was
2832 already initializated.
2833 If the stream changes, then either one will be unref and a new
2834 allocator is created.
2836 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2838 * gst/vaapi/gstvaapivideobufferpool.c:
2839 vaapivideobufferpool: Log messages in proper category.
2840 The log messages where logged in the GstBufferPool category because
2841 the instance was not properly casted. This fix that situation.
2843 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2845 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2846 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2847 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2848 * gst/vaapi/gstvaapipluginbase.c:
2849 libs: display: driver quirks mechanism
2850 This mechanism comes from ffmpeg vaapi implementation, where they have
2852 A specific driver is identified by a substring present in the vendor
2853 string. If that substring is found, a set of bitwise flags are store.
2854 These flags can be accessed through the function
2855 gst_vaapi_display_has_driver_quirks().
2856 The purpose for this first quirks is to disable the put image try for
2857 AMD Gallium driver (see [1]).
2858 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
2860 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2862 * gst/vaapi/gstvaapipluginutil.c:
2863 plugins: renable Mesa Gallium driver
2865 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2867 * gst/vaapi/gstvaapivideobufferpool.c:
2868 vaapivideobufferpool: validate returned meta
2869 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
2870 the acquired buffer is not null.
2871 This situation should be very "pathological", but still it is better
2872 be safe since that meta might be used later to create a new dma
2875 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2877 * gst/vaapi/gstvaapivideobufferpool.c:
2878 vaapivideobufferpool: always update/release the underlying surface proxy
2879 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
2880 releases the last reference on an exported DMA buffer. This should
2881 release the underlying surface proxy. To avoid releasing the wrong
2882 surface due to a stale surface proxy reference in the buffer's
2883 GstVaapiVideoMeta, always update the reference to the correct surface
2884 in gst_vaapi_video_buffer_pool_acquire_buffer().
2886 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2888 * gst-libs/gst/vaapi/gstvaapicontext.c:
2889 * gst-libs/gst/vaapi/gstvaapicontext.h:
2890 * gst-libs/gst/vaapi/gstvaapisurface.c:
2891 * gst-libs/gst/vaapi/gstvaapisurface.h:
2892 libs: context: select vaCreateSurfaces version according attributes
2893 This commit tries to centralize the selection of vaCreateSurfaces
2894 version, instead of having fallbacks everywhere.
2895 These fallbacks are hacks, added because new drivers use the latest
2896 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
2897 old drivers (or profiles as JPEG decoder in i965) might rather use the
2899 In order to select which method, there's detected hack: each config
2900 context has a list of valid formats, in the case of JPEG decoder the
2901 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
2902 handled correctly by the current gstreamer-vaapi code [2].
2903 The hack consist in identify if the format list contains an arbitrary
2904 preferred format (which is suposedly well supported by
2905 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
2906 the the old version of vaCreateSurfaces is used, and the surfaces wil
2907 be mapped into a image with their own color format.
2908 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
2909 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
2911 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2913 * gst-libs/gst/vaapi/gstvaapicontext.c:
2914 libs: context: add debug category for context
2916 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2918 * gst-libs/gst/vaapi/gstvaapiblend.c:
2919 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
2921 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2923 * gst/vaapi/gstvaapiencode_h264.c:
2924 vaapiencode: promote info to warning
2925 Let's notify user about using constrained-baseline instead on
2926 requested basline profile.
2928 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2930 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2931 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2932 * gst/vaapi/gstvaapidecode.c:
2933 * gst/vaapi/gstvaapidecode_props.c:
2934 * gst/vaapi/gstvaapidecode_props.h:
2935 vaapih264dec: Add a property to assume constrained-baseline
2936 When baseline-as-constrained is set, the decoder will expose support
2937 for baseline decoding and assume that the baseline content is
2938 constrained-baseline. This can be handy to decode streams in hardware
2939 that would otherwise not be possible to decode. A lot of baseline
2940 content is in fact constrained.
2942 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2944 * gst/vaapi/gstvaapiencode_h264.c:
2945 * gst/vaapi/gstvaapipluginutil.c:
2946 vaapih264enc: accept baseline as constrained baseline compatible
2948 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2950 * gst/vaapi/gstvaapiencode_h264.c:
2951 vaapih264enc: update level in src caps
2952 And, if downstream requests a specific level, the caps are not
2953 negotiated, because there is no mechanism right now to specify a
2954 custom level in the internal encoder.
2956 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2958 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2959 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
2961 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2963 * gst/vaapi/gstvaapiencode_h264.c:
2964 vaapih264enc: force byte-stream if avc isn't supported
2965 Removing the validation in gst_vaapiencode_h264_get_caps() since that
2966 ought be handled in gst_vaapiencode_h264_set_config()
2968 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2970 * gst/vaapi/gstvaapiencode_h264.c:
2971 vaaph264enc: suppress avc if the driver does not support packed headers
2972 Do not negotiate AVC output if the driver does not support it.
2974 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2976 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2977 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2978 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
2979 AVC output requires packed header support in the driver.
2981 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2983 * gst/vaapi/gstvaapiencode_h264.c:
2984 vaapih264enc: intersect the new proposed caps
2985 Instead of just leave to keep the proposed caps, with the best profile
2986 in the allowed caps, is its intersected again.
2988 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2990 * gst/vaapi/gstvaapiencode_h264.c:
2991 vaapih264enc: propose new profile caps and fixate it
2992 When the available caps doesn't intersect with the allowed caps in the
2993 pipeline, a new caps is proposed rather than just expecting to
2995 Later, the intersected caps (profile_caps) is fixated in order to
2996 extract the configuration.
2998 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3000 * gst/vaapi/gstvaapiencode_h264.c:
3001 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3002 Add a common fail code path for gst_vaapiencode_h264_set_config().
3004 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3006 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3007 libs: encoder: unref formats array if none
3008 The formats array is always created, in order to keep the logic and
3009 to avoid broken caps, if this formats array doesn't contain any
3010 elements, it has to be unref and the function should return NULL.
3012 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3014 * gst/vaapi/gstvaapiencode_h264.c:
3015 vaapih264enc: fix log message
3016 Before the log wasn't processed because wrong instance pointer.
3018 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3020 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3021 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3022 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3023 * gst/vaapi/gstvaapiencode_h265.c:
3024 plugin: encode: Add H265 main-444 profile.
3025 Expose the main-444 profile to h265enc caps, when the upstream
3026 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3029 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3031 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3032 libs: encoder: h265: Consider main-444 profile when encoding.
3033 Add support of main-444 profile for parameter setting and packed header
3036 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3038 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3039 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3040 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3041 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3042 * gst/vaapi/gstvaapiencode.c:
3043 vaapiencode: DMABuf only if PRIME is available
3044 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3045 memory type is available in the VA surface attributes of codec
3048 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3050 * hooks/pre-commit.hook:
3051 Add hooks/pre-commit.hook
3052 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3053 Copied and pasted pre-commit.hook from other gstreamer modules to make
3054 sure gstreamer-vaapi follows the same code style
3056 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3058 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3059 libs: encoder: h265: Set encoder paramters base on entrypoint.
3060 When the tune is NONE, we now can choose entrypoint freely. So the
3061 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3063 We also delay CTU size calculation after entrypoint has been decided.
3065 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3067 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3068 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3069 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3070 * gst-libs/gst/vaapi/gstvaapicontext.c:
3071 * gst-libs/gst/vaapi/gstvaapicontext.h:
3072 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3073 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3074 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3075 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3076 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3077 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3078 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3079 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3080 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3081 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3082 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3083 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3084 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3085 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3086 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3087 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3088 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3089 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3090 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3091 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3092 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3093 * gst-libs/gst/vaapi/meson.build:
3094 * gst/vaapi/gstvaapi.c:
3095 * gst/vaapi/gstvaapiencode.c:
3096 * gst/vaapi/gstvaapiencode.h:
3097 * gst/vaapi/gstvaapiencode_h264_fei.c:
3098 * gst/vaapi/gstvaapiencode_h264_fei.h:
3099 * gst/vaapi/gstvaapifeivideometa.c:
3100 * gst/vaapi/gstvaapifeivideometa.h:
3101 * gst/vaapi/meson.build:
3103 * tests/internal/meson.build:
3104 * tests/internal/test-fei-enc-in.c:
3105 * tests/internal/test-fei-enc-out.c:
3106 Remove all FEI related
3107 FEI encoders are not actively mantained neither tested, and it is
3108 using infrastructure that is changing and FEI is stopping this
3110 Also it is required to rethink how FEI can be used in GStreamer.
3112 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3114 * gst/vaapi/gstvaapioverlay.c:
3115 vaapioverlay: ensure sinkpad has current buffer
3116 Use the gst_video_aggregator_pad_has_current_buffer API
3117 to check if the current sinkpad has a queued buffer before
3118 attempting to obtain a input buffer from the base plugin.
3119 If the sinkpad does not have a current buffer, then it is
3120 either not producing them yet (e.g. current time < sinkpad
3121 start time) or it has reached EOS.
3122 Previously, we only handled EOS case.
3124 gst-launch-1.0 videotestsrc num-buffers=100 \
3125 ! vaapipostproc ! vaapioverlay name=overlay \
3126 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3127 num-buffers=100 ! video/x-raw,width=160,height=120 \
3130 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3132 * gst/vaapi/gstvaapioverlay.c:
3133 vaapioverlay: unroll the recursive call
3134 Recursive functions are elegant but dangerous since they might
3135 overflow the stack. It is better to turn them into a list tranversal
3136 if possible, as this case.
3138 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3140 * gst-libs/gst/vaapi/gstvaapiblend.c:
3141 * gst/vaapi/gstvaapioverlay.c:
3142 vaapioverlay: add minimal documentation
3144 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3146 * gst-libs/gst/vaapi/gstvaapiblend.c:
3147 * gst-libs/gst/vaapi/gstvaapiblend.h:
3148 * gst/vaapi/gstvaapioverlay.c:
3149 libs: blend: simplify generator API
3150 Instead of using a parent structure that has to be derived by API
3151 consumers, this change propse a simplification by using the common
3152 pattern of GTK of passing a function pointer and user data which will
3153 be passed as its parameter. That user data contains the state and the
3154 function will be called to update that state.
3156 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3158 * gst-libs/gst/vaapi/gstvaapiblend.c:
3159 * gst-libs/gst/vaapi/gstvaapiblend.h:
3160 libs: blend: remove begin/render/end API
3161 This API was risky and is superseded by the surface
3162 generator (process) API.
3165 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3167 * gst/vaapi/gstvaapioverlay.c:
3168 vaapioverlay: use blend surface generator API
3171 2020-01-10 09:54:30 -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: add surface generator API
3176 This new API allows the user to call a single method (process)
3177 which handles the [display] lock/unlock logic internally for
3179 This API supersedes the risky begin, render, end API.
3180 It eliminates the need for the user to call a lock method
3181 (process_begin) before processing the input buffers
3182 (process_render) and calling an unlock method (process_end)
3186 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3188 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3189 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3190 * gst/vaapi/gstvaapiencode.c:
3191 * gst/vaapi/gstvaapiencode.h:
3192 * gst/vaapi/gstvaapiencode_h264.c:
3193 * gst/vaapi/gstvaapiencode_h265.c:
3194 plugin: encode: List all possible profiles to detect input formats.
3195 The current get_profile just return one possible profile for the encode,
3196 which is not enough. For example, if we want to support HEVC 4:4:4
3197 profile, the input of encode should be VYUA rather than NV12 in HEVC
3198 main profile. So the command line:
3199 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3200 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3201 tune=low-power init-qp=30 ! fakesink
3202 can not work because vaapih265enc just report NV12 in sink caps, we need
3203 to specify the profile obviously like:
3204 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3205 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3206 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3207 profile=main-444 ! fakesink
3208 The encode should have the ability to choose the profile based on input
3209 format automatically. If the input video format is VUYA, the main-444
3210 profile should be auto choosed.
3211 We modify to let get_allowed_profiles of each encode sub class to return
3212 an array of all supported profiles based on downstream's allowed caps, or
3213 return NULL if no valid profiles specified by downstream.
3214 If no allowed profiles found, all profiles which belong to the current
3215 encoder's codec will be the candidates.
3216 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3217 attributes for that profile list we just get.
3218 So for this case, both NV12 and VUYA should be returned.
3219 TODO: some codec like VP9, need to implement the get_profile() function.
3221 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3223 * gst/vaapi/gstvaapipluginutil.c:
3224 * gst/vaapi/gstvaapipluginutil.h:
3225 plugin: util: add helper function to detect profiles in caps.
3227 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3229 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3230 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3231 libs: encoder: add a helper function to get all supported profiles
3233 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3235 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3236 libs: decoder: Don't unref null object
3237 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3238 gst_vaapi_context_unref: assertion 'context != NULL' failed
3240 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3242 * gst/vaapi/gstvaapioverlay.c:
3243 plugins: overlay: use proper NULL check on double pointer
3244 Check the address of the variable is not NULL,
3245 not the address of the pointer.
3247 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3249 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3250 libs: codedbuf: delete a useless field.
3251 The context field in GstVaapiCodedBuffer is not inited correctly
3252 and is never used, just delete it.
3254 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3256 * gst/vaapi/gstvaapipluginutil.c:
3257 plugins: add iHD driver in whitelist
3259 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3261 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3262 libs: encoder: modify 265 SPS header's profile compatibility flag.
3263 Make the SPS profile compatibility flags more precisely conform to
3266 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3268 * tests/check/elements/vaapioverlay.c:
3269 test: vaapioverlay: bail test if not available
3270 vaapioverlay is only registered if the VA driver support the blend
3272 This patch only executes the test if vaapioverlay is available,
3273 otherwise the test is bail out without raising an error.
3275 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3277 * tests/check/elements/vaapioverlay.c:
3278 tests: vaapioverlay: force drm backend
3280 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3282 * gst-libs/gst/vaapi/gstvaapiblend.c:
3283 libs: blend: update to new mini-object API
3285 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3287 * tests/check/elements/vaapioverlay.c:
3288 * tests/check/meson.build:
3289 tests: check: add basic vaapioverlay test
3290 Add test_overlay_position test to verify sink_1 input
3291 is overlayed onto sink_0 input at the appropriate
3294 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3296 * gst/vaapi/gstvaapi.c:
3297 * gst/vaapi/gstvaapioverlay.c:
3298 * gst/vaapi/gstvaapioverlay.h:
3299 * gst/vaapi/meson.build:
3300 plugins: add vaapioverlay plugin
3301 A plugin similar to the base compositor element but
3302 uses VA-API VPP blend functions to accelerate the
3303 overlay/compositing.
3305 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3306 ! tee name=testsrc ! queue \
3307 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3308 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3310 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3312 * gst-libs/gst/vaapi/gstvaapiblend.c:
3313 * gst-libs/gst/vaapi/gstvaapiblend.h:
3314 * gst-libs/gst/vaapi/meson.build:
3315 libs: add a vaapi blend class
3316 Support for the VA-API VPP blend functions.
3318 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3320 * gst/vaapi/gstvaapipluginbase.c:
3321 * gst/vaapi/gstvaapipluginbase.h:
3322 plugins: base: add GstVideoAggregator subclass support
3324 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3326 * gst-libs/gst/vaapi/gstvaapiimage.c:
3327 libs: image: init all image fields correctly.
3329 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3331 * gst/vaapi/gstvaapipostproc.c:
3332 doc: fix pipeline typo in vaapipostproc
3334 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3336 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3337 libs: encoder: modify 265 VPS header fields.
3338 vps_base_layer_internal_flag and vps_base_layer_available_flag
3339 have been clearly defined now.
3341 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3343 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3344 libs: display: fix a resource leak in X11 pixmap format.
3346 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3348 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3349 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3350 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3352 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3354 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3355 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3356 * gst/vaapi/gstvaapiencode.c:
3357 libs: encoder: get surfaces resolution the same time with formats.
3358 We can get all the information about the video format at one shot
3359 when we create the test context for getting the supported formats.
3360 The current way to get the width and height ranges are inefficient,
3361 since it calls the function gst_vaapi_profile_caps_append_encoder()
3362 and it creates another temporal context to detect the resolution
3364 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3366 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3368 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3369 libs: encoder: vp9: fix code style
3371 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3373 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3374 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3375 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3376 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3377 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3378 libs: encoder: set entrypoint based on tune automatically
3379 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3380 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3382 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3383 every time when we need to use this kind of profile. Or we can not
3384 create the encoder context successfully.
3385 2. More seriously, we set the entrypoint to a fixed value in
3386 init_context_info() and so the create_test_context_config() can not
3387 create the test context for these profile and can not get the
3388 supported video formats, either.
3389 We now change the entrypoint setting based on the tune option of the
3390 encoder. If no tune property provided, we just choose the first
3391 available entrypoint.
3393 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3395 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3396 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3397 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3398 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3399 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3400 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3401 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3402 libs: encoder: set context info profile by encoder
3403 Instead of init_context_info() setting the passed profile, it is
3404 assumed that it has to be set by each encoder.
3405 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3407 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3409 * gst-libs/gst/vaapi/gstvaapicontext.c:
3410 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3411 libs: context: add invalid entrypoint symbol
3412 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3413 zero, which was already used as an invalid value tacitly. This patch
3414 only makes it explicit.
3415 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3417 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3419 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3420 libs: pixmap: Fix a pixmap creation crash.
3421 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3422 pixmap creation, which causes crash if we run the internal test case
3424 test-decode --pixmap
3426 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3428 * gst/vaapi/gstvaapiencode.c:
3429 plugin: encode: set allowed_sinkpad_caps to empty.
3430 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3431 surfaces formats. This causes two problem:
3432 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3433 which changes its behavior. It will use encode's sinkpad template
3434 rather than empty caps to do the clip job. So even if we fail to set
3435 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3437 2. We should just set the allowed_sinkpad_caps once. The NULL point
3438 make the ensure_allowed_sinkpad_caps function works again and again.
3440 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3442 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3443 libs: encoder: Add NULL pointer check for context when finalize.
3444 Context may be NULL if pipeline fail in early stage, and the
3445 ensure_context will not be called. Need to add a pointer protection
3448 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3450 * gst/vaapi/gstvaapipluginbase.c:
3451 plugins: base: do not reset can_dmabuf
3452 Don't reset the can_dmabuf field. This restores the
3453 close/reset logic that existed prior to commit
3454 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3456 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3457 once during startup, but may need to reset the other private
3458 fields multiple times during negotiation. Thus, can_dmabuf
3459 should be exempt from the resets.
3462 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3464 * gst/vaapi/gstvaapiencode.c:
3465 plugin: encode: Refine encode's sink caps.
3466 The old manner to get the encode's sink caps is not correct.
3467 Such as 264 encode, it gets:
3468 video/x-raw(memory:VASurface),
3469 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3470 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3471 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3472 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3473 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3474 framerate=(fraction)[ 0/1, 2147483647/1 ];
3475 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3476 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3477 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3478 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3479 input format for encoder.
3481 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3482 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3483 video/x-raw(memory:VASurface), format=(string){ NV12 },
3484 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3485 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3486 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3487 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3488 as the correct result.
3490 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3492 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3493 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3494 libs: display: code clean up
3496 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3498 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3499 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3500 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3501 libs: display: refine the profile/entrypoint map.
3502 The old way make the one config for each profile/entrypoint pair,
3503 which is not very convenient for description the relationship
3504 between them. One profile may contain more than one entrypoints
3505 to within it, so a set like data structure should be more suitable.
3507 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3509 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3510 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3511 * gst-libs/gst/vaapi/gstvaapicontext.c:
3512 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3513 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3514 * gst-libs/gst/vaapi/gstvaapifilter.c:
3515 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3516 * gst-libs/gst/vaapi/gstvaapisurface.c:
3517 * gst-libs/gst/vaapi/gstvaapisurface.h:
3518 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3519 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3520 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3521 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3522 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3523 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3524 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3525 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3526 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3527 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3528 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3529 * gst/vaapi/gstvaapipluginbase.c:
3530 * gst/vaapi/gstvaapivideomemory.c:
3531 * gst/vaapi/gstvaapivideometa.c:
3532 * gst/vaapi/gstvaapivideometa_texture.c:
3533 * tests/internal/image.c:
3534 * tests/internal/test-filter.c:
3535 * tests/internal/test-surfaces.c:
3536 * tests/internal/test-windows.c:
3537 libs: surface: port to GstMiniObject
3538 GstVaapiMiniObject and GstVaapiObject are deprecated.
3539 This is the first step to remove them by porting GstVaapiSurface as
3540 a GstMiniBuffer descendant.
3541 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3543 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3545 * gst-libs/gst/vaapi/gstvaapisurface.c:
3546 libs: surface: rename create function names to init
3547 There are several internal functions with 'create' name, but they
3548 don't create any new structure, but rather it initializes that
3549 structure. Renaming those function to reflect better their purpose.
3551 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3553 * gst-libs/gst/vaapi/gstvaapisurface.c:
3554 libs: surface: use macro accessors
3556 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3558 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3559 libs: surface: fix internal documentation
3561 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3563 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3564 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3565 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3566 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3567 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3568 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3569 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3570 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3571 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3572 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3573 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3574 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3575 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3576 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3577 libs: codedbuffer: port to GstMiniObject
3578 GstVaapiMiniObject and GstVaapiObject are deprecated.
3579 This is the first step to remove them by porting GstVaapiCodedBuffer
3580 as a GstMiniBuffer descendant.
3581 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3583 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
3585 * gst-libs/gst/vaapi/gstvaapiimage.c:
3586 * gst-libs/gst/vaapi/gstvaapiimage.h:
3587 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3588 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3589 * gst-libs/gst/vaapi/gstvaapisurface.c:
3590 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3591 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3592 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3593 * gst/vaapi/gstvaapipluginbase.c:
3594 * gst/vaapi/gstvaapivideomemory.c:
3595 * gst/vaapi/gstvaapivideometa.c:
3596 * tests/internal/image.c:
3597 * tests/internal/simple-encoder.c:
3598 * tests/internal/test-fei-enc-in.c:
3599 * tests/internal/test-filter.c:
3600 * tests/internal/test-windows.c:
3601 libs: image: port to GstMiniObject base class
3602 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3603 first step to remove them, by porting GstVaapiImage as a
3605 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3607 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
3609 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3610 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3611 * gst-libs/gst/vaapi/gstvaapicontext.c:
3612 * gst-libs/gst/vaapi/gstvaapicontext.h:
3613 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3614 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3615 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3616 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3617 libs: context: port to a plain C structure
3618 The GstVaapiMiniObject is obsolete and we need to replace it. This
3619 patch turns GstVaapiContext into a plain C structure with its own
3620 reference counting mechanism.
3621 Also this patch removes unused overlays attributes.
3622 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3624 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
3626 * gst/vaapi/gstvaapiencode_h264.c:
3627 * gst/vaapi/gstvaapiencode_h264_fei.c:
3628 * gst/vaapi/gstvaapiencode_h265.c:
3629 * gst/vaapi/gstvaapiencode_jpeg.c:
3630 * gst/vaapi/gstvaapiencode_mpeg2.c:
3631 * gst/vaapi/gstvaapiencode_vp8.c:
3632 * gst/vaapi/gstvaapiencode_vp9.c:
3633 plugin: encode: change the dmabuf caps to all supported formats.
3634 The encode's dmabuf caps definition is obsolete, it can support
3635 more formats now. Re-define it to include all supported formats
3636 in video format map.
3638 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3640 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3641 libs: encoder: h264fei: remove unnecessary check
3642 Issue detected by Coverity
3643 `info_to_pack.h264_slice_header` is always allocated by
3644 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3645 in doesn't make much sense. But it requires to be free on the error
3647 There may be a null pointer dereference, or else the comparison
3648 against null is unnecessary.
3649 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3650 pointer comparison already dereference the pointer earlier
3652 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3654 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3655 libs: encoder: h264fei: remove unnecessary assert
3656 Issue detected by Coverity
3657 An unsigned value can never be negative, so this test will always
3658 evaluate the same way.
3659 In add_slice_headers: An unsigned value can never be less than 0
3661 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3663 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3664 libs: encoder: h264fei: remove unnecessary check
3665 Issue detected by Coverity
3666 There may be a null pointer dereference, or else the comparison
3667 against null is unnecessary.
3668 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3669 pointer comparison already dereference the pointer earlier
3671 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3673 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3674 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3675 libs: encoder: h264fei: don't free memory on stack
3676 Issue detected by Coverity
3677 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3678 declared in the stack, but it is free in
3679 gst_vaapi_feienc_h264_encode() as if declared on the heap.
3680 This patch initializes the structure and removes the free.
3681 A non-heap pointer is placed on the free list, likely causing a crash
3683 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3684 expression, which can never be heap allocated.
3686 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3688 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3689 libs: encoder: h264fei: fix surface leak
3690 Issue detected by Coverity
3691 If the FEI mode is not handled the created resources should be
3692 released and return and error code.
3693 The system resource will not be reclaimed and reused, reducing the
3694 future availability of the resource.
3695 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3698 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3700 * tests/check/elements/vaapipostproc.c:
3701 tests: check return calling of gst_navigation_event_parse.*
3702 This issue was detected by Coverity.
3703 If the function returns an error value, the error value may be mistaken
3705 In cb_mouse_event: Value returned from a function is not checked for
3706 errors before being used
3708 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
3710 * gst/vaapi/gstvaapiencode_h264.c:
3711 * gst/vaapi/gstvaapiencode_h264_fei.c:
3712 * gst/vaapi/gstvaapiencode_h265.c:
3713 * gst/vaapi/gstvaapiencode_jpeg.c:
3714 * gst/vaapi/gstvaapiencode_mpeg2.c:
3715 * gst/vaapi/gstvaapiencode_vp8.c:
3716 * gst/vaapi/gstvaapiencode_vp9.c:
3717 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3718 Then encode plugin just supports raw formats declared in vaapi video
3719 format map. This modification makes the template caps more precise.
3721 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3723 * gst/vaapi/gstvaapipluginbase.c:
3724 plugins: base: add GstPad param to internal helper functions
3725 The base plugin public API function implementations determine
3726 which pad should be passed to the internal helper functions.
3727 Currently, only the base plugin static sinkpad and static
3728 srcpad are supported/used. However, this change enables future
3729 API functions to be added that can accept a pad (i.e. request pad)
3730 from an element subclass (e.g. a GstVideoAggregator subclass).
3732 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3734 * gst/vaapi/gstvaapipluginbase.c:
3735 * gst/vaapi/gstvaapipluginbase.h:
3736 plugins: base: manage pad-specific data in a single struct
3737 Define a struct (GstVaapiPadPrivate) to encapsulate the
3738 pad-specific data (i.e. buffer pool, allocator, info,
3740 Add an interface to retrieve the data struct for a given
3742 Finally, update the base plugin to use the data struct
3743 throughout the implementation.
3744 This will enable us to easily extend the base plugin in the
3745 future to allow for N-to-1 pad subclasses (e.g. overlay/
3748 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3750 * gst/vaapi/gstvaapidecode.c:
3751 * gst/vaapi/gstvaapiencode.c:
3752 * gst/vaapi/gstvaapipluginbase.h:
3753 * gst/vaapi/gstvaapipostproc.c:
3754 plugins: use plugin base macros to access pad specific data
3755 Don't access base struct fields directly since the underlying
3756 definition can change. Instead, use the accessor macros.
3758 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
3760 * gst/vaapi/gstvaapidecode.c:
3761 libs: decoder: Modify decode src's template raw formats
3762 We do not need to maintain a standalone list of decoder's output
3763 template for raw formats and that is easy to make mistake(for
3764 example, the AYVU is wrong in that list, should be VUYA).
3765 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3768 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
3770 * gst/vaapi/gstvaapipostproc.c:
3771 libs: postproc: Modify src/sink template raw formats
3772 We need to provide more precise template caps for postproc's src
3773 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3774 available which are really superfluous.
3776 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
3778 * tests/check/elements/vaapipostproc.c:
3779 Do not mix declaration and code
3781 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3783 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3784 libs: decoder: h265: skip all pictures prior the first I-frame
3785 Don't try to decode until the first I-frame is received within the
3786 currently active sequence. i965 H265 decoder don't show any artifact
3790 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3792 * gst-libs/gst/vaapi/video-format.c:
3793 libs: video-format: remove dead code
3795 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
3797 * gst-libs/gst/vaapi/video-format.c:
3798 * gst-libs/gst/vaapi/video-format.h:
3799 * gst/vaapi/gstvaapipluginutil.h:
3800 libs: video-format: add GST_VAAPI_FORMATS_ALL
3801 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3802 as a caps template string, and make them available in caps with
3803 memory:VASurface feature.
3806 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
3808 * gst-libs/gst/vaapi/video-format.c:
3809 * tests/internal/test-windows.c:
3810 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3811 We only support VUYA format in gst vaapi now, need to correct
3814 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3816 * tests/check/elements/vaapipostproc.c:
3817 tests: check: vaapipostproc test_orientation_mouse_events
3818 Test that vaapipostproc properly translates mouse events
3819 when using video-direction (orientation).
3821 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3823 * tests/check/elements/vaapipostproc.c:
3824 * tests/check/meson.build:
3825 tests: check: vaapipostproc test_crop_mouse_events
3826 Test that vaapipostproc properly translates mouse events
3829 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3832 * meson_options.txt:
3833 * tests/check/elements/vaapipostproc.c:
3834 * tests/check/meson.build:
3835 * tests/meson.build:
3836 tests: check: initial unit test support
3837 Add minimal unit test toolchain files and a simple
3838 vaapipostproc unit test.
3840 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3843 * tests/examples/meson.build:
3844 * tests/examples/test-roi.c:
3845 * tests/examples/test-vaapicontext.c:
3846 * tests/examples/test-vaapipostproc.c:
3847 * tests/examples/test-vaapisink.c:
3848 * tests/internal/codec.c:
3849 * tests/internal/codec.h:
3850 * tests/internal/decoder.c:
3851 * tests/internal/decoder.h:
3852 * tests/internal/image.c:
3853 * tests/internal/image.h:
3854 * tests/internal/meson.build:
3855 * tests/internal/output.c:
3856 * tests/internal/output.h:
3857 * tests/internal/simple-decoder.c:
3858 * tests/internal/simple-encoder.c:
3859 * tests/internal/test-decode.c:
3860 * tests/internal/test-decode.h:
3861 * tests/internal/test-display.c:
3862 * tests/internal/test-fei-enc-in.c:
3863 * tests/internal/test-fei-enc-out.c:
3864 * tests/internal/test-filter.c:
3865 * tests/internal/test-h264.c:
3866 * tests/internal/test-h264.h:
3867 * tests/internal/test-jpeg.c:
3868 * tests/internal/test-jpeg.h:
3869 * tests/internal/test-mpeg2.c:
3870 * tests/internal/test-mpeg2.h:
3871 * tests/internal/test-mpeg4.c:
3872 * tests/internal/test-mpeg4.h:
3873 * tests/internal/test-subpicture-data.c:
3874 * tests/internal/test-subpicture-data.h:
3875 * tests/internal/test-subpicture.c:
3876 * tests/internal/test-surfaces.c:
3877 * tests/internal/test-textures.c:
3878 * tests/internal/test-vc1.c:
3879 * tests/internal/test-vc1.h:
3880 * tests/internal/test-windows.c:
3881 * tests/internal/y4mreader.c:
3882 * tests/internal/y4mreader.h:
3883 * tests/meson.build:
3884 tests: move examples and tests to subfolders
3885 This makes way for adding unit (check) tests.
3887 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
3895 * gst-libs/Makefile.am:
3896 * gst-libs/gst/Makefile.am:
3897 * gst-libs/gst/vaapi/Makefile.am:
3899 * gst/vaapi/Makefile.am:
3901 * tests/Makefile.am:
3902 * tests/elements/Makefile.am:
3903 Remove autotools build
3905 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3907 * gst/vaapi/gstvaapipostproc.c:
3908 vaapipostproc: fix off-by-one coord translations
3909 When translating navigation x,y coordinates for
3910 video-direction, it is necessary to subtract 1
3911 when using the video dimensions to compute the
3912 new x,y coordinates. That is, a 100x200 image
3913 should map coordinates in x=[0-99],y=[0-199].
3914 This issue was found with unit tests provided
3917 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3919 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3920 libs: window: x11: Avoid usage of deprecated API
3922 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3925 build: halt meson configuration if no renderer API
3926 We should halt meson configuration if there is no render API
3927 installed (either DRM, Wayland or X11).
3928 That behavior was already in autotools but missed in meson. This patch
3932 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3934 * gst-libs/gst/vaapi/gstvaapifilter.c:
3935 libs: filter: fix default orientation regression
3936 Fix regression introduced in f232f87f7082
3938 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3940 * gst-libs/gst/vaapi/gstvaapifilter.c:
3941 libs: filter: use OP_DATA_DEFAULT_VALUE macro
3943 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3945 * gst-libs/gst/vaapi/gstvaapifilter.c:
3946 libs: filter: use macro for returning op default value
3947 The code is essentially the same for getting all op default
3948 values. Thus, use a macro to help minimize code duplication
3949 and [hopefully] encourage using the same mechanism for all
3952 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3954 * gst-libs/gst/vaapi/gstvaapifilter.c:
3955 libs: filter: query param spec for default scale method
3958 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3960 * gst-libs/gst/vaapi/gstvaapifilter.c:
3961 libs: filter: query param spec for default skin-tone values
3964 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3966 * gst-libs/gst/vaapi/gstvaapifilter.c:
3967 libs: filter: query param spec for default video-direction
3970 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3975 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
3977 * gst-libs/gst/vaapi/gstvaapifilter.c:
3978 * gst-libs/gst/vaapi/gstvaapifilter.h:
3979 * gst/vaapi/gstvaapipostproc.c:
3980 * gst/vaapi/gstvaapipostproc.h:
3981 vaapipostproc: Use level value for skin-tone-enhancement filter.
3982 Currently the parameter of skin-tone-enhancement filter is forced
3983 to zero. In fact it could be set different value by the user.
3984 So create a new property named as "skin-tone-enhancement-level"
3985 for accepting the used defined parameter value.
3986 At the same time, skin-tone-enhancement is marked as deprecated.
3987 When skin-tone-enhancement-level is set, skin-tone-enhancement
3990 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3992 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3993 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3994 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
3995 g_return_val_fail() documentations says:
3996 If expr evaluates to FALSE, the current function should be
3997 considered to have undefined behaviour (a programmer error).
3998 The only correct solution to such an error is to change the
3999 module that is calling the current function, so that it avoids
4000 this incorrect call.
4001 So it was missused in a couple parts of the H264 and H265 internal
4002 decoders. This patch changes that to plain conditionals.
4003 Also, it was included a couple code-style fixes.
4005 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4007 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4008 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4009 * tests/simple-encoder.c:
4010 * tests/test-fei-enc-in.c:
4011 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4012 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4013 need to keep a custom ref()/unref() methods. This patch deletes them.
4015 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4017 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4018 libs: encoder: correct encoder's ref/unref function.
4019 GstVaapiEncoder now is a standard gstobject and need to use
4020 gst_object_ref/unref functions.
4022 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4024 * gst/vaapi/gstvaapiencode_h264_fei.c:
4025 gst: encode: h264_fei: remove useless comparison
4026 The expression "len >= 0" is always true since "len"
4027 is an unsigned type. And it is clear that the writers
4028 intention was not to write "len > 0" since we handle
4029 len == 0 in the ensuing "if (len < 3)" conditional
4032 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4034 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4035 libs: encoder: h264_fei: fix potential overflow before widen
4036 Found by static analysis. encoder->mb_width * encoder->mb_height
4037 is evaluated using 32-bit arithmetic before widen. Thus, cast
4038 at least one of these to guint64 to avoid overflow.
4040 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4042 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4043 libs: encoder: h264_fei: remove dead error condition
4044 Found by static analysis. The feipak is always null
4045 when we reach the error target.
4047 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4049 * gst-libs/gst/vaapi/gstvaapiutils.c:
4050 libs: utils: add missing break in switch
4052 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4054 * gst-libs/gst/vaapi/video-format.c:
4055 libs: video-format: Make all YUV format available
4056 The YUV formats have no ambiguity for drivers, so we can add them all.
4057 Some old driver(i965) does not implement full get/put image functions
4058 but can use derive image funtions for the YUV format. It does not
4059 report that kind of formats correctly in image query, but will derive
4060 that YUV format image from surface. The dynamic mapping of YUV format
4061 will block that manner.
4062 Adding more YUV format mapping has no side effect. So considering the
4063 legacy driver conformance, we add all YUV formats mapping statically
4064 and dynamic mapping RBG formats
4068 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4070 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4071 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4072 egl: Fix racyness in display thread creation
4073 Multiple different scenarios could break the display thread creation and
4074 end up blocking waiting for thread o be created. Fix them all by
4075 correctly waiting for a new boolean to become valid.
4077 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4079 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4080 egl: don't advertise a wrapped EGLContext as actually wrapped
4081 It's not actually wrapped as we create a new EGLContext from the passed
4082 in EGLContext. As a result, the created EGLContext was never destroyed.
4084 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4086 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4087 libs: h264decoder: do not return error for unhandled NAL unit.
4088 Some streams have error data introducing unknown NAL type. There are
4089 also kinds of NAL types we do not want to handle. The old manner will
4090 set a decoder error when encounter this, which cause a latent crash bug.
4091 The decoder may successfully decode the picture and insert it into DPB.
4092 But there are error NAL units after the AU which cause the post unit error
4093 and make that frame dropped. The later output of the picture still want
4094 to ref that frame and crash.
4095 No need to set decoder error when can not recognize or handle the NAL
4096 unit, just skip it and continue.
4099 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4101 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4102 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4103 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4104 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4105 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4106 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4107 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4108 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4109 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4110 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4111 * gst/vaapi/gstvaapiencode.c:
4112 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4113 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4114 param in encoders to decide which parameters to expose. Thus
4115 gstreamer-vaapi will not interfere with any change in GStreamer in the
4117 Also, the internal symbol was change to
4118 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4120 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4122 * gst-libs/gst/vaapi/gstvaapiimage.c:
4123 * gst-libs/gst/vaapi/video-format.c:
4124 libs: Add BGR10A2_LE support for color space conversion.
4127 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4129 * gst-libs/gst/vaapi/gstvaapisurface.c:
4130 libs: surface: add pointer check for surface_new_from_formats.
4132 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4133 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4134 will crash on i965 driver because of no pointer check.
4135 We now generate the video format map between GST format and VA format
4136 dynamically based on the image format returned by vaQueryImageFormats.
4137 i965 driver does to report image format of 444P and Y800 forcc, while
4138 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4139 not recognize these format and pass a NULL pointer to
4140 gst_vaapi_surface_new_from_formats.
4141 We need to add a pointer check here and let the fallback logic handle
4142 this case correctly.
4143 Other drivers work well.
4145 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4147 * gst-libs/gst/vaapi/gstvaapiutils.c:
4148 libs: utils: guard the VAEntrypointFEI symbol
4149 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4151 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4153 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4154 * gst-libs/gst/vaapi/video-format.c:
4155 * gst-libs/gst/vaapi/video-format.h:
4156 libs: video-format: Refine the video format mapping.
4157 Improve the mapping between va format and gst format. The new map
4158 will be generated dynamically, based on the query result of image
4159 format in VA driver. Also consider the ambiguity of RGB color
4162 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4164 * gst/vaapi/gstvaapipluginutil.c:
4165 pluginutil: Remove Mesa from drivers white list
4166 The Mesa Gallium driver is poorly tested currently, leading to bad user
4167 experience for AMD users. The driver can be added back to the white list at
4168 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4170 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4172 * gst/vaapi/gstvaapipostproc.c:
4173 * gst/vaapi/gstvaapipostproc.h:
4174 * gst/vaapi/gstvaapipostprocutil.c:
4175 vaapipostproc: allow cropping via properties
4176 Add crop-left, crop-right, crop-top and crop-bottom
4177 properties to vaapipostproc.
4179 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4181 * gst/vaapi/gstvaapipostproc.c:
4182 vaapipostproc: rotate outbuf and crop meta if forwarding
4183 When forwarding crop meta to downstream, the output
4184 buffer and crop meta need to be rotated, too.
4186 for i in 90r 180 90l vert horiz ul-lr ur-ll
4188 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4189 ! videocrop top=100 bottom=30 left=40 right=20 \
4190 ! vaapipostproc video-direction=$i \
4192 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4193 ! videocrop top=100 bottom=30 left=40 right=20 \
4194 ! vaapipostproc video-direction=$i \
4195 ! identity drop-allocation=true \
4199 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4201 * gst/vaapi/gstvaapipostproc.c:
4202 vaapipostproc: fix output buffer WxH for crop meta forwarding
4203 Adding crop meta x,y to w,h only compensates for left,top
4204 cropping. But we also need to compensate for right,bottom
4206 The video meta contains the appropriate w,h (uncropped)
4207 values, so use it instead.
4209 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4210 ! videocrop top=50 bottom=30 left=40 right=20 \
4211 ! vaapipostproc ! vaapisink & \
4212 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4213 ! videocrop top=50 bottom=30 left=40 right=20 \
4214 ! vaapipostproc ! identity drop-allocation=1 \
4217 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4219 * gst/vaapi/gstvaapipostproc.c:
4220 vaapipostproc: handle size and direction together in src events
4221 Mapping a pointer event needs to consider both size and
4222 video-direction operations together, not just one or the other.
4223 This fixes an issue where x,y were not being mapped correctly
4224 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4225 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4226 the first condition in the pointer event handling was entered and
4227 x,y scale factor were incorrectly computed due to srcpad WxH
4229 This also fixes all cases where both video-direction and scaling
4230 are enabled at the same time.
4231 Test that all pointer events map appropriately:
4234 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4235 ! vaapipostproc video-direction=${i} width=300 \
4237 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4238 ! vaapipostproc video-direction=${i} width=300 height=200 \
4240 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4241 ! vaapipostproc video-direction=${i} height=200 \
4243 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4244 ! vaapipostproc video-direction=${i} \
4248 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4250 * gst/vaapi/gstvaapipostproc.c:
4251 * gst/vaapi/gstvaapipostproc.h:
4252 vaapipostproc: advertise crop meta is handled
4253 Advertise to upstream that vaapipostproc can handle
4255 When used in conjunction with videocrop plugin, the
4256 videocrop plugin will only do in-place transform on the
4257 crop meta when vaapipostproc advertises the ability to
4258 handle it. This allows vaapipostproc to apply the crop
4259 meta on the output buffer using vaapi acceleration.
4260 Without this advertisement, the videocrop plugin will
4261 crop the output buffer directly via software methods,
4262 which is not what we desire.
4263 vaapipostproc will not apply the crop meta if downstream
4264 advertises crop meta handling; vaapipostproc will just
4265 forward the crop meta to downstream. If crop meta is
4266 not advertised by downstream, then vaapipostproc will
4267 apply the crop meta.
4269 1. vaapipostproc will forward crop meta to vaapisink
4270 gst-launch-1.0 videotestsrc \
4271 ! videocrop left=10 \
4274 2. vaapipostproc will do the cropping
4275 gst-launch-1.0 videotestsrc \
4276 ! videocrop left=10 \
4278 ! identity drop-allocation=1 \
4281 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4283 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4284 libs: encoder: clean two virtual func in encoder class
4285 set_property and get_default_properties functions are no longer
4286 needed for encoder class.
4288 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4290 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4291 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4292 libs: encoder: delete old set_property and property enum feienc264
4294 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4296 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4297 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4298 libs: encoder: delete old set_property and property enum in h264 fei
4300 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4302 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4303 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4304 libs: encoder: delete old set_property and property enum in vp9
4306 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4308 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4309 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4310 libs: encoder: delete old set_property and property enum in vp8
4312 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4314 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4315 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4316 libs: encoder: delete old set_property and property enum in mpeg2
4318 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4320 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4321 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4322 libs: encoder: delete old set_property and property enum in jpeg
4324 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4326 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4327 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4328 libs: encoder: delete old set_property and property enum in h265
4330 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4332 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4333 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4334 libs: encoder: delete old set_property and property enum in h264
4336 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4338 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4339 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4340 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4341 libs: encoder: delete EncoderPropInfo related functions
4343 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4345 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4346 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4347 libs: encoder: delete encoder_set_property
4348 We no longer need this obsolete set_property function now after
4349 switch to standard gobject's property manner.
4350 Also delete the old encoder's property enum in the header file.
4352 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4354 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4355 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4356 libs: encoder: delete properties_get_default for base class
4358 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4360 * gst/vaapi/gstvaapiencode.c:
4361 * gst/vaapi/gstvaapiencode.h:
4362 plugin: encode: delete useless init_properties.
4363 Also delete the get_properties function in encode class. We now
4364 use g_object_class_list_properties to get all properties for
4365 internal encoder class.
4367 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4369 * gst/vaapi/gstvaapiencode.c:
4370 * gst/vaapi/gstvaapiencode.h:
4371 plugin: encode: delete set/get_property func in encode class
4372 Use standard gobject's property functions to replace the old way.
4374 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4376 * gst/vaapi/gstvaapiencode.c:
4377 * gst/vaapi/gstvaapiencode.h:
4378 plugin: encode: delete gst_vaapiencode_init_properties
4379 No need to init the properties got by get_default_properties func
4380 now. The properties are inited correctly in internal encoder class.
4382 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4384 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4385 libs: encoder: delete 3 useless init macro
4387 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4389 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4390 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4391 libs: encoder: delete get_default_properties of feienc
4393 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4395 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4396 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4397 libs: encoder: delete get_default_properties of H264 Fei
4399 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4401 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4402 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4403 libs: encoder: delete get_default_properties of VP9
4405 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4407 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4408 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4409 libs: encoder: delete get_default_properties of VP8
4411 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4413 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4414 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4415 libs: encoder: delete get_default_properties of MPEG2
4417 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4419 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4420 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4421 libs: encoder: delete get_default_properties of JPEG
4423 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4425 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4426 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4427 libs: encoder: delete get_default_properties of H265
4429 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4431 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4432 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4433 libs: encoder: delete get_default_properties of H264
4435 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4437 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4438 libs: encoder: delete the useless constructed func for encoder.
4440 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4442 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4443 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4444 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4445 libs: encoder: implement get_view_ids for h264 encoder.
4447 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4449 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4450 * gst/vaapi/gstvaapiencode.c:
4451 * gst/vaapi/gstvaapiencode_h264.c:
4452 * gst/vaapi/gstvaapiencode_h264_fei.c:
4453 * gst/vaapi/gstvaapiencode_h265.c:
4454 * gst/vaapi/gstvaapiencode_jpeg.c:
4455 * gst/vaapi/gstvaapiencode_mpeg2.c:
4456 * gst/vaapi/gstvaapiencode_vp8.c:
4457 * gst/vaapi/gstvaapiencode_vp9.c:
4458 gst: encode: enable new type of property mechanism.
4460 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4462 * gst/vaapi/gstvaapiencode.c:
4463 * gst/vaapi/gstvaapiencode.h:
4464 gst: encode: add property help functions for encoder properties.
4465 The encoder is a true gstobject now and all the properties are using
4466 gobject's properties mechanism. Add help functions to handle the properties
4467 between encode and encoder class.
4468 The basic idea is mapping the same property between encoder and encode. All
4469 the encoder's properties will have the same name, the same type in encode.
4470 The set/get property function just forward the property setting/getting to
4471 the encoder using the same property name and value. Because the encoder is
4472 created on needed, we need to cache the property setting in encode.
4474 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4476 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4477 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4478 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4479 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4480 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4481 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4482 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4483 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4484 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4485 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4486 libs: encoder: add flags to all encoder properties.
4487 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4488 need to init the properties manually.
4489 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4490 flag, means need to expose the property to according encode class.
4492 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4494 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4495 libs: encoder: Add properties for h264 encoder fei.
4496 Install properties for h264 encoder fei class. Also set the new get/set
4497 property functions for gobject class. Still use the old properties
4498 way now and this new feature will be enabled later.
4500 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4502 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4503 libs: encoder: Add properties for h264 fei encoder.
4504 Install properties for h264 fei encoder class. Also set the new get/set
4505 property functions for gobject class. Still use the old properties
4506 way now and this new feature will be enabled later.
4508 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4510 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4511 libs: encoder: Add properties for vp9 encoder.
4512 Install properties for vp9 encoder class. Also set the new get/set
4513 property functions for gobject class. Still use the old properties
4514 way now and this new feature will be enabled later.
4516 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4518 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4519 libs: encoder: Add properties for vp8 encoder.
4520 Install properties for vp8 encoder class. Also set the new get/set
4521 property functions for gobject class. Still use the old properties
4522 way now and this new feature will be enabled later.
4524 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4526 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4527 libs: encoder: Add properties for mpeg2 encoder.
4528 Install properties for mpeg2 encoder class. Also set the new get/set
4529 property functions for gobject class. Still use the old properties
4530 way now and this new feature will be enabled later.
4532 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4534 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4535 libs: encoder: Add properties for jpeg encoder.
4536 Install properties for jpeg encoder class. Also set the new get/set
4537 property functions for gobject class. Still use the old properties
4538 way now and this new feature will be enabled later.
4540 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4542 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4543 libs: encoder: Add properties for h265 encoder.
4544 Install properties for h265 encoder class. Also set the new get/set
4545 property functions for gobject class. Still use the old properties
4546 way now and this new feature will be enabled later.
4548 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4550 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4551 libs: encoder: Add properties for h264 encoder.
4552 Install properties for h264 encoder class. Also set the new get/set
4553 property functions for gobject class. Still use the old properties
4554 way now and this new feature will be enabled later.
4556 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4558 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4559 libs: encoder: add properties and prop help functions
4560 Add all common properties to encoder base class. rate-control and
4561 tune are moved to sub class.
4563 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4565 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4566 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4567 libs: encoder: delete useless gst_vaapi_encoder_new func.
4568 GstVaapiEncoder is a abstract gobject and never be created directly.
4570 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
4572 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4573 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4574 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4575 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4576 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4577 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4578 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4579 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4580 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4581 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4582 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4583 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4584 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4585 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4586 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4587 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4588 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4589 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4590 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4591 lib: encoder: gstobjectfy all vaapi encoders.
4592 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4593 Let the gstobject common logic to handle all the init and finalize
4594 works. But the property install/set/get still use the old way, need
4595 to be improved later.
4597 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4599 * gst/vaapi/gstvaapipostproc.c:
4600 vaapipostproc: check for filter before appending caps
4601 While ensuring the allowed sink pad caps, the filter attributes set
4602 the frame size restriction, but it is not ensured, at that moment,
4603 that the filter is already instantiaded.
4604 In order to silence the glib logs, this patch add only calls
4605 gst_vaapi_filter_append_caps() if the filter is instantiated.
4607 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
4609 * gst/vaapi/gstvaapidecodebin.c:
4610 Classify vaapidecodebin as a hardware decoder
4612 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
4614 * gst/vaapi/gstvaapipostproc.c:
4615 libs: postproc: fix a memory leak point.
4616 filter_ops and filter_formats should already have valid value when
4617 the function gst_vaapipostproc_ensure_filter_caps re-enter
4619 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
4621 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4622 libs: util: Fix a memory leak in config_surface_attributes_get
4624 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
4626 * gst/vaapi/gstvaapidecode.c:
4627 vaapidecode: support transform ROI meta
4628 This will benefit the use case like:
4629 src ---> encode ---> decode ---> circle ROI ---> sink
4634 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
4636 * gst/vaapi/gstvaapidecodedoc.c:
4637 docstrings: port ulinks to markdown links
4639 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4641 * gst-libs/gst/vaapi/Makefile.am:
4642 * gst-libs/gst/vaapi/gstvaapicontext.c:
4643 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4644 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4645 * gst-libs/gst/vaapi/meson.build:
4646 libs: remove context's overlay
4647 The context overlay was an optimization to apply a video composition
4648 to all the surfaces bound to a context.
4649 But since commit 18031dc6 this optimization was disabled, so it is
4650 better just get rid of it.
4652 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4654 * gst-libs/gst/vaapi/gstvaapicontext.c:
4655 * gst-libs/gst/vaapi/gstvaapisurface.c:
4656 * gst-libs/gst/vaapi/gstvaapisurface.h:
4657 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4658 * gst/vaapi/gstvaapipluginutil.c:
4659 * tests/test-subpicture.c:
4660 libs: remove surface's parent context
4661 In commit 18031dc6 surface's parent context is not assigned because of
4662 circular references. Since then (2013), there's has no issue with
4663 subpictures attached to a context, the current only users of this API.
4664 This patch cleans up all of related code with the unused surface's
4667 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4669 * gst/vaapi/gstvaapidecode.c:
4670 vaapidecode: guard if no structure is available in caps
4672 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4674 * gst-libs/gst/vaapi/gstvaapifilter.c:
4675 * gst-libs/gst/vaapi/gstvaapifilter.h:
4676 * gst/vaapi/gstvaapipostproc.c:
4677 vaapipostproc: append frame size restrictions in caps
4679 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4681 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4682 libs: profilecaps: refactor common code
4684 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4686 * gst/vaapi/gstvaapiencode.c:
4687 vaapiencode: set frame size restrictions in caps
4690 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4692 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4693 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4694 * gst/vaapi/gstvaapiencode.c:
4695 vaapiencode: enhance how the profile is defined
4696 This code doesn't define the profile used by the internal encoder, but
4697 it used to "predict" which is going to be used and to get the caps
4699 Before the profile was predicted by checking the donwstream caps, but
4700 sometimes they are not defined, setting an unknown profile. In order
4701 to enhances this situation, the encoder asks to internal encoder if it
4702 has one. If so, it is used.
4703 To ask the internal encoder's profile a new accessor function was
4704 added: gst_vaapi_encoder_get_profile()
4706 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4708 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4709 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4710 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4711 Previously it was just a boilerplate. Now it is real implementation.
4713 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4715 * gst-libs/gst/vaapi/gstvaapiutils.c:
4716 libs: utils: treat va_rt_format as bitwise flag
4717 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4718 is a bitwise flag with *all* the supported chroma types.
4719 Previously it was assumed that the return value was a single value,
4720 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4721 simple case. But it is wrong.
4722 This patch changes the case block with a sequence of ifs testing the
4723 bitwise. For now we assume a "priority" list in the testing sequence.
4725 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4727 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4728 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4729 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4730 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4731 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4732 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4733 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4734 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4735 * tests/test-display.c:
4736 libs: profile: add gst_vaapi_profile_get_va_name()
4737 gst_vaapi_profile_get_name() returns a proper name for
4738 GstCaps. Nonetheless, there are many profiles which don't have a name
4739 representation for that realm.
4740 gst_vaapi_profile_get_va_name() returns the name of the profile
4741 according to its VAProfile name.
4742 This new funtion is used in the encoder error message.
4744 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4746 * gst-libs/gst/vaapi/Makefile.am:
4747 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4748 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4749 * gst-libs/gst/vaapi/meson.build:
4750 * gst/vaapi/gstvaapidecode.c:
4751 libs: profilecaps: move caps config into a new file
4752 Implement all the appending of frame size restrictions in caps, for
4753 encoders and decoders, in a new source file.
4755 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4757 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4758 libs: decoder: ref the caps as property
4760 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4762 * gst-libs/gst/vaapi/gstvaapicontext.c:
4763 * gst-libs/gst/vaapi/gstvaapicontext.h:
4764 libs: context: add gst_vaapi_context_get_surface_attributes()
4765 This function copies the surface attributes from the context's object
4768 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4770 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4771 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4772 * gst-libs/gst/vaapi/gstvaapiutils.c:
4773 * gst-libs/gst/vaapi/gstvaapiutils.h:
4774 libs: move memory types conversions to gstvaapiutils
4775 And add more supported memory types by current VA.
4777 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4779 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4780 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4781 libs: utils: remove unused function gst_vaapi_get_surface_formats()
4783 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4785 * gst-libs/gst/vaapi/gstvaapicontext.c:
4786 * gst-libs/gst/vaapi/gstvaapicontext.h:
4787 * gst-libs/gst/vaapi/gstvaapifilter.c:
4788 libs: context, filter: use new surface attributes API
4790 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4792 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4793 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4794 libs: utils: add gst_vaapi_config_surface_attributes_get()
4795 To extract the surface restrictions per config using a new structure:
4796 GstVaapiConfigSurfaceAttributes
4798 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4800 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4801 Split the surface attribute retrieval
4803 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4805 * gst/vaapi/gstvaapipostproc.c:
4806 vaapipostproc: handle navigation downstream event
4807 When navigation events contains coordiantes those have to be mapped
4808 to the new size and/or orientation.
4810 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4812 * tests/elements/test-vaapisink.c:
4813 test-vaapisink: also use vaapipostproc to change orientation
4815 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4817 * gst-libs/gst/vaapi/gstvaapifilter.c:
4818 * gst-libs/gst/vaapi/gstvaapifilter.h:
4819 * gst/vaapi/gstvaapipostproc.c:
4820 * gst/vaapi/gstvaapipostproc.h:
4821 * gst/vaapi/gstvaapipostprocutil.c:
4822 vaapipostproc: handle image-orientation upstream event
4823 Now that vaapipostproc can possible handle video-direction, it
4824 should also handle the image-orientation event from upstream if
4825 video-direction property is set to auto.
4827 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4829 * gst/vaapi/gstvaapipostproc.c:
4830 vaapipostproc: add missing locks when adding flags
4832 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4834 * gst/vaapi/gstvaapipostproc.c:
4835 vaapipostproc: update filter before fixate caps
4836 It is requiered to know if postproc is capable to change the video
4837 direction before fixating the source caps.
4838 In order to do it, it'ss required to know if there's a functional VPP,
4839 but that's checked at create() vmethod, which occurs after caps
4841 This patch checks for a functional VPP at fixate caps and, if so,
4842 checks for the enabled filtes and later do the caps fixations.
4844 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4846 * gst-libs/gst/vaapi/gstvaapifilter.c:
4847 * gst-libs/gst/vaapi/gstvaapivalue.c:
4848 * gst-libs/gst/vaapi/gstvaapivalue.h:
4849 * gst/vaapi/gstvaapipostproc.c:
4850 vaapipostproc: element warning if video direction is unsupported
4851 If the video direction is unsupported by the driver, an element
4852 warning is posted in the bus to notify the application.
4853 gst_vaapi_enum_type_get_nick() was added in the library thus it can
4854 be used elsewhere. It retrives the nick from an enum gtype.
4856 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4858 * gst-libs/gst/vaapi/gstvaapifilter.c:
4859 libs: filter: check mirror and rotation caps only once
4860 This patch locks the display before querying the pipeline caps and
4861 stores the mirror and rotation capabilities, thus they are not queried
4862 every time the video direction is set.
4864 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4866 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4867 libs: encoder: vp9: set VP9_0 profile as default
4868 Commit 0afc8131 introduced a regression and only NV12 format were
4869 admitted, failing in any other valid color format.
4870 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
4872 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4874 * gst-libs/gst/vaapi/gstvaapifilter.c:
4875 libs: filter: fail if first color balance value is invalid
4877 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
4879 * gst-libs/gst/vaapi/gstvaapifilter.c:
4880 * gst-libs/gst/vaapi/gstvaapiutils.c:
4881 * gst-libs/gst/vaapi/gstvaapiutils.h:
4882 libs: filter: set all color balance values
4883 When set multiple settings of color balance like hue, saturation,
4884 brightness and contrast for vaapipostproc, they should be set as
4885 parameters of color balance filter, at the same color balance
4887 Otherwise, multiple color balance filter calling will cause
4888 previous setting get reset by the last calling with default value.
4890 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
4892 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
4894 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4895 libs: h265dec: remove limitation of get iq matrix
4896 According hevc spec, scaling_list_data is not related
4897 to chroma_format_idc.
4899 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
4901 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4902 libs: videopool: fix undocumented behavior and counting
4903 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
4904 because it locks twice the same mutex.
4905 Also, n had different meanings in the current code: as an increase
4906 value and as a new total of allocated surfaces.
4907 This patche removes the undocumented behavoir (usually a deadlock) and
4908 fixes the meaning of n as the new total of allocated surfaces.
4909 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4911 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
4913 * gst-libs/gst/vaapi/gstvaapiutils.c:
4914 libs: utils: Add missing entries for string_of_VAEntrypoint.
4916 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
4918 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4919 libs: encoder: Consider vp9 profiles based on input format.
4920 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
4923 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4925 * gst/vaapi/gstvaapivideomemory.c:
4926 vaapivideomemory: demote error message to info
4927 The main reason to demote the message's level is because it is not an
4928 error, it's a possible output of the trial and there's a code path
4930 Secondly, it's very annoying when using gallium driver for radeon.
4932 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
4934 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4935 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4936 * gst-libs/gst/vaapi/gstvaapitypes.h:
4937 * gst-libs/gst/vaapi/gstvaapiutils.c:
4938 * gst-libs/gst/vaapi/gstvaapivalue.c:
4939 libs: encoder: h264: support ICQ/QVBR bitrate control mode
4940 ICQ is Intelligent Constant Quality. It will use the initial QP
4941 vaule of icq-quality-factor to adjust QP at MB level intelligently
4942 to improve subjective quality.
4943 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
4944 adjust QP for each MB to get enough quality picture without waste
4947 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
4949 * gst-libs/gst/vaapi/gstvaapitypes.h:
4950 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
4951 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
4952 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
4953 deal with unsigned int. Otherwise there may be an error of out of
4954 range of integer if we define few more rate-control mode.
4956 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4958 * gst/vaapi/gstvaapidecodebin.c:
4959 vaapidecodebin: set queue's max size buffers to 1
4960 Otherwise the queue will swallow all the available decoder's surfaces
4961 reaching a dead-lock.
4962 This setting might impact the bin's peformance, but it's a trade-off.
4964 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4966 * gst/vaapi/gstvaapidecodebin.c:
4967 vaapidecodebin: set properties default values
4969 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4971 * gst/vaapi/gstvaapidecode.c:
4972 vaapidecode: don't error if can't push buffers downtream
4973 When the code path goes to push buffers downstream when no surface
4974 available in decoder context, and it fails the code bails out with a
4976 That behavior is wrong, since it shouldn't be fatal. The use case is
4977 when the video stream is disabled.
4978 This patch just ignores the errors in this situation and demotes the
4979 level of a log message.
4981 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
4983 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4984 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4985 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4986 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4987 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4988 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4989 libs: encoder: h264,h265: add new property "max-qp"
4990 Add new property "max-qp" to allow set the maximum quantisation
4993 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
4995 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4996 libs: encoder: vp9: add low power mode encode
4997 By now, this feature only support by media-driver on Ice Lake
4998 platform, more information you can reference:
4999 https://github.com/intel/media-driver
5001 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5003 * gst/vaapi/gstvaapipostprocutil.c:
5004 vaapipostproc: update PAR when rotating
5005 When rotating, swap pixel-aspect-ratio during
5009 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5011 * gst-libs/gst/vaapi/gstvaapifilter.c:
5012 * gst-libs/gst/vaapi/gstvaapiutils.c:
5013 * gst-libs/gst/vaapi/gstvaapiutils.h:
5014 * gst/vaapi/gstvaapipostprocutil.c:
5015 vaapipostproc: add rotation support
5016 Adds vpp rotation support to vaapipostproc. Uses
5017 property video-direction. Default is identity (no
5021 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5023 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5024 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5025 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5026 cu_qp_delta_enabled_flag enabled.
5029 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5031 * gst-libs/gst/vaapi/gstvaapiutils.c:
5032 libs: encoder: Add MB ratecontrol mode to get its string
5034 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5036 * gst-libs/gst/vaapi/gstvaapiutils.c:
5037 libs: encoder: refine guard of bitrate control mode
5038 Remove useless guard of all bitrate control mode's guard except MB
5039 which is define in VA-API version 0.39.1.
5041 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5043 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5044 h264: Update for parse_vui_params parameter removal.
5045 Update calls to the h264 parser lib for removal of the
5046 parse_vui_params parameter.
5048 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5050 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5051 libs: dec: vp9: do not use display size as decoded size
5052 If display size is smaller than current frame size, then the crop size
5053 will be set as display size, which either crashes the pipeline or the
5054 output MD5 does not match. Rather it should use the actual decoded size.
5055 This patch removes the cropping set. For rendering we can use aspect
5056 ratio to set display size.
5058 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5059 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5061 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5066 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5068 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5069 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5070 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5071 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5072 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5073 than 8 bits, which cause using the wrong NV12 surface as the render target
5077 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5079 * gst/vaapi/gstvaapidecode.c:
5080 vaapidecode: set initial decode format according surface chroma type
5081 For surfaces with different chroma type, it is prefer to initialize
5082 a format which chroma type should be same with surface chroma type
5083 instead of using fixed NV12.
5085 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5087 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5088 * gst-libs/gst/vaapi/gstvaapiimage.c:
5089 * gst-libs/gst/vaapi/video-format.c:
5090 * gst/vaapi/gstvaapidecode.c:
5091 * gst/vaapi/gstvaapipluginutil.h:
5092 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5093 When create vaapi surface, it is better to use the chroma type get
5094 from jpeg file instead of using fixed 420 format. And the correct
5095 chroma type can be determined by horizontal_factor/vertical_factor
5096 flags that get from jpegparse.
5098 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5100 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5101 libs: dec: h265: Fix profile_idc mapping.
5102 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5103 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5104 happened to be the correct value.
5105 We only support Annex A profile_idc (1-4).
5107 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5109 * gst/vaapi/gstvaapipluginbase.c:
5110 plugins: remove last negotiated video info if caps are same
5111 If the allocation caps and negotiated caps are the same,
5112 then ensure any previously negotiated video info is also
5113 removed. This can occur when multi-resolution video
5114 decoding returns to it's original resolution.
5117 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5119 * gst/vaapi/gstvaapivideomemory.c:
5120 vaapivideomemory: allow negotiated info to be removed
5121 Allow NULL negotiated_vinfo to be passed into
5122 gst_allocator_set_vaapi_negotiated_video_info to allow
5123 any previously set info to be removed.
5125 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5127 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5128 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5129 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5130 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5131 counter, hence the newly created frame could become a P-frame, leading to some
5132 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5133 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5134 GstVaapiEncoderVP9 implementations.
5136 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5138 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5139 libs: encoder: increase bitrate prop max value
5140 There are many profile levels that can support
5141 more than 102400 kbps. Thus, increase the max
5142 allowed bitrate property value from 102400 kbps
5143 to 2048000 kbps (same as msdk encoder plugins).
5145 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5147 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5148 libs: mpeg2 encoder: No packed header for SPS and PPS
5149 Dislable passing down packed PPS and PPS to driver if driver does
5153 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5158 meson: Bump minimal GLib version to 2.44
5159 This means we can use some newer features and get rid of some
5160 boilerplate code using the G_DECLARE_* macros.
5161 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5163 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5165 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5166 libs: dec: vp9: clear parser pointer after release
5167 Fix an use-after-release of the parser pointer in VP9 decoder.
5169 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5171 * gst/vaapi/gstvaapiencode.c:
5172 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5173 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5174 srcpad's chain function was locked waiting for available buffers. Since the
5175 coded buffers in codedbuf_queue become available after sinkpad consume the
5176 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5177 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5178 available buffers and holds the stream_lock of the srcpad.
5180 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5182 * gst-libs/gst/vaapi/gstvaapitypes.h:
5183 * gst/vaapi/gstvaapidecodebin.c:
5184 * gst/vaapi/gstvaapidecodedoc.c:
5185 * gst/vaapi/gstvaapiencode_h264.c:
5186 * gst/vaapi/gstvaapiencode_h264_fei.c:
5187 * gst/vaapi/gstvaapiencode_h265.c:
5188 * gst/vaapi/gstvaapiencode_jpeg.c:
5189 * gst/vaapi/gstvaapiencode_mpeg2.c:
5190 * gst/vaapi/gstvaapiencode_vp8.c:
5191 * gst/vaapi/gstvaapiencode_vp9.c:
5192 * gst/vaapi/gstvaapipostproc.c:
5193 * gst/vaapi/gstvaapisink.c:
5194 doc: remove xml from comments
5196 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5198 * gst-libs/gst/vaapi/gstvaapifilter.c:
5199 * gst-libs/gst/vaapi/gstvaapifilter.h:
5200 * gst-libs/gst/vaapi/gstvaapiutils.c:
5201 * gst-libs/gst/vaapi/gstvaapiutils.h:
5202 * gst/vaapi/gstvaapipostproc.c:
5203 * gst/vaapi/gstvaapipostproc.h:
5204 vaapipostproc: add mirror support
5205 Adds vpp mirroring support to vaapipostproc. Use
5206 property video-direction. Valid values are identity,
5207 horiz or vert. Default is identity (no mirror).
5209 v2: Use GstVideoOrientationMethod enum
5210 v3: Don't warn for VA_MIRROR_NONE.
5211 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5212 v4: Query VAAPI caps when setting mirror value
5213 instead of during per-frame processing.
5214 v5: Return TRUE in warning cases when setting mirror value.
5216 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5218 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5219 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5220 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5221 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5222 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5223 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5224 * gst/vaapi/gstvaapidecodebin.c:
5225 * gst/vaapi/gstvaapisink.c:
5226 doc: fix some incorrect gtk-doc links
5228 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5230 * docs/gst_plugins_cache.json:
5231 docs: Update plugin cache
5232 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5234 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5236 * gst-libs/gst/vaapi/gstvaapisurface.h:
5237 libs: surface: fix documentation format
5239 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5241 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5242 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5243 When enable low delay B, the reference list 1 will be same with
5244 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5245 to num_ref_idx_l0_active_minus1.
5248 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5251 meson: Fix call to wrong function
5253 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5258 * docs/gst_plugins_cache.json:
5261 * docs/plugins/Makefile.am:
5262 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5263 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5264 * docs/plugins/gstreamer-vaapi-plugins.types:
5265 * docs/plugins/inspect/plugin-vaapi.xml:
5266 * docs/plugins/running.xml:
5268 * docs/version.entities.in:
5269 * gst/vaapi/meson.build:
5271 * meson_options.txt:
5272 docs: Port to hotdoc
5274 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5276 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5277 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5278 libs: encoder: not call ensure_num_slices inside g_assert
5279 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5280 defined. The function inside the g_assert will take no effect and
5281 we will fail to set the correct slice number.
5283 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5285 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5286 libs: h265: dec: Add extension flags setting.
5287 Use VAPictureParameterBufferHEVCExtension&
5288 VASliceParameterBufferHEVCExtension to pass extension setting from
5289 some extension profile clips which may include these information.
5290 The hevc extension setting only supported after libva release 2.2.0
5293 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5295 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5296 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5297 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5298 libs: encoder: add target-percentage property
5299 Allow users to set the target-percentage for
5300 variable rate controls. The default value is
5301 70 (as hard-coded prior).
5302 v2: minimum allowed value changed from 0 to 1
5303 v3: target-percentage unchanged if CBR used
5306 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5308 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5309 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5311 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5313 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5314 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5315 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5316 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5317 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5318 libs: encoder: Enable trellis quantization method.
5319 The advanced trellis algorithm is supported in VA driver. We add
5320 its support as a property named "trellis" of encoder.
5321 It only works for H264 now, should be more in future.
5323 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5325 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5326 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5327 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5328 type, so we need to add subsampling_x&subsampling_y to fix it.
5329 Here is the relationship between chroma type and profile and
5330 subsampling_x&subsampling_y according to vp9 spec:
5331 ------------------------------------------
5332 Profile | Bit depth | Chroma subsampling |
5333 ------------------------------------------
5335 ------------------------------------------
5336 1 | 8 | 422,440,444 |
5337 ------------------------------------------
5339 ------------------------------------------
5340 3 | 10, 12 | 422,440,444 |
5341 ------------------------------------------
5342 -----------------------------------------------
5343 Subsampling_x | Subsampling_y | Chroma format |
5344 -----------------------------------------------
5346 -----------------------------------------------
5348 -----------------------------------------------
5350 -----------------------------------------------
5352 -----------------------------------------------
5354 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5356 * gst-libs/gst/vaapi/gstvaapiimage.c:
5357 * gst-libs/gst/vaapi/video-format.c:
5358 libs: Add packed 24 RGB format support.
5359 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5360 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5361 type. This kind of surface will just be created by new API with fourcc
5362 and no old style chrome based creation is available.
5365 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5367 * gst/vaapi/gstvaapiencode.c:
5368 * gst/vaapi/gstvaapiencode_h264.c:
5369 * gst/vaapi/gstvaapiencode_h264_fei.c:
5370 * gst/vaapi/gstvaapiencode_h265.c:
5371 * gst/vaapi/gstvaapiencode_jpeg.c:
5372 * gst/vaapi/gstvaapiencode_mpeg2.c:
5373 * gst/vaapi/gstvaapiencode_vp8.c:
5374 * gst/vaapi/gstvaapiencode_vp9.c:
5375 vaapiencode: handle DMABuf caps feature in sink pad
5376 Add DMABuff caps features in all encoders' sink pad.
5378 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5380 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5381 libs: encoder: continue if roi meta is NULL
5383 If the function actually returns a null value, a null pointer
5384 dereference will occur.
5385 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5386 function which returns null is dereferenced without checking
5388 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5390 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5391 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5392 The decoder's surface chroma type should depend on the bit depth
5393 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5394 10 bits surface as the decoder result.
5397 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5399 * gst/vaapi/gstvaapipostprocutil.c:
5400 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5401 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5402 with commit 3e992d8a
5403 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5404 from caps negotiation, different from the default one (NV12), the
5405 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5406 feature is negotiated, no color transformation shall be done.
5407 Nonetheless, with commit 3e992d8a the requested format changes
5408 firstly, because there's no video sink yet, so ANY caps are
5409 negotiated; but later, when there's a video sink and a caps
5410 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5411 format conversion still ongoing. It is required to reset that
5413 This patch force default color format when GL_TEXTURE_UPLOAD is
5414 selected as preferred, thus avoiding the color conversion.
5417 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5419 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5420 libs: surface: fix double free when dmabuf export fails
5421 Happens if vaAcquireBufferHandle fails.
5423 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5425 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5426 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5428 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5432 * docs/plugins/inspect/plugin-vaapi.xml:
5436 === release 1.16.0 ===
5438 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5444 * gstreamer-vaapi.doap:
5448 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5450 * docs/plugins/inspect/plugin-vaapi.xml:
5453 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5455 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5456 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5457 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5458 libs: encoder: h264,h265: guard VA version for max_qp property
5459 This patch fixes a regression from commit 5b1fe9c6.
5460 max_qp, in rate control configuration, appeared in libva release
5461 2.1 (API 1.1), thus it is required to guard the VA API version.
5464 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5466 * gst-libs/gst/vaapi/gstvaapiimage.c:
5467 * gst-libs/gst/vaapi/video-format.c:
5468 libs: Add RGB565 image format support.
5470 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5473 build: configure: delay USE_GTK conditional until check libva-x11
5474 libva-x11 is used for X11 applications, so it is required to build
5475 any GTK application.
5476 Later, when Wayland test is added, we should change this.
5478 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5481 build: configure: disable GLX if libva-x11 is not found
5483 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5485 * gst-libs/gst/vaapi/gstvaapiutils.c:
5486 libs: utils: avoid macro evaluation when stringify
5487 string_of_va_chroma_format() gets a wrong string format description.
5488 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5489 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5490 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5492 To avoid the macro evaluation, it is changed to show only the color
5493 format without VA_RT_FORMAT_ prefix.
5495 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5497 * gst-libs/gst/vaapi/gstvaapiutils.c:
5498 libs: utils: use glib's macros
5499 Don't reinvent the wheel.
5501 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5503 * gst/vaapi/gstvaapipluginutil.c:
5504 plugins: find the preferred format from right caps.
5505 When the downstream has any caps, then raw video feature will
5506 be used. At this situation, the preferred format should be chose
5507 from caps which contains "vide/x-raw" feature instead of from
5508 the fist allowed caps.
5511 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5513 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5514 libs: encoder: h265: fill tier in va seq param buf
5515 Now that tier is calculated in commit 58e74f9440fe (!68),
5516 ensure we fill in the general_tier_flag in the
5517 VAEncSequenceParameterBufferHEVC.
5519 === release 1.15.90 ===
5521 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5527 * gstreamer-vaapi.doap:
5531 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5533 * docs/plugins/inspect/plugin-vaapi.xml:
5536 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5538 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5539 libs: encoder: h265: Recognize the correct level and tier.
5540 The current manner can not recognize the correct level and always
5541 set the tier to main. Need to add frame rate check to recognize
5542 levels such as 4.1, 6.2, etc. We also add a logic to check main
5543 and high tier based on bitrate.
5546 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5548 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5549 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5550 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5551 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5552 media-driver currently fails to set a correct value of max_qp when
5553 min_qp is different to zero, in CBR and VBR mode, generating full
5554 quality frames, thus unexpected huge output.
5555 This patch sets max_qp to an arbitrary value to avoid this output
5559 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5561 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5562 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5563 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5564 libs: encoder: h264,h265: initial and minimal QP can be zero
5565 Currently the minimal value for either min_qp and init_qp are 1,
5566 but VA documentation specifiy that zero is also valid and means
5567 to ignore the quantiser.
5568 The default value is not changed though to avoid behaivor changes
5571 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5573 * tests/elements/meson.build:
5574 meson: build test-vaapicontext when using X11
5575 x11_dep and libva_x11_dep are optional and meson ignores these
5576 dependencies even if they are added into the dependency list.
5577 This fixes the error below when libva-x11 is not avaiblabe:
5578 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5579 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5580 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5581 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5582 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5583 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5584 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5585 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5586 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5587 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5588 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5589 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5590 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5591 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5592 -DHAVE_CONFIG_H -MD -MQ
5593 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5595 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5597 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5598 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5599 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5600 error: va/va_x11.h: No such file or directory
5601 #include <va/va_x11.h>
5603 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
5605 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5606 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5607 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5608 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5609 GValueArray is deprecated. Use GstValueArray instead.
5611 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
5613 * gst/vaapi/gstvaapipluginutil.c:
5614 vaapipluginutil: Fix #endif for USE_X11
5616 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5618 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5619 libs: encoder: h264: simplify the view-ids setting
5621 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
5623 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5624 libs: encoder: h264: Use gst_param_spec_array for view-ids
5625 GValueArray is deprecated. Use GstValueArray instead.
5626 gst_param_spec_array can be deserialized from command line using:
5627 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5628 While the g_param_spec_value_array() can not, and always get
5629 error: "gst_value_deserialize_g_value_array: unimplemented"
5630 Also fixed an out-of-range bug.
5632 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
5634 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5635 libs: Change the parameter setting order when encode picture.
5636 The order in gst_vaapi_enc_picture_encode when encoding one
5637 picture is not very correct. The misc parameters are set before
5638 the picture parameters. Some of the misc parameters such as
5639 ROI may change the current picture parameters. But the later
5640 setting of picture parameter will re-init all picture related
5641 parameters and clear the previous setting. The right order
5642 should be picture parameter first and then misc parameters.
5643 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5645 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
5647 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5648 libs: decoder: jpeg: support dynamic resolution change decode.
5649 Add size_changed flag to watch out resolution. if change, reset
5650 jpeg decoder's context.
5652 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
5654 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5655 libs: encoder: h265: add low power mode encode.
5656 By now, this feature only support by media-driver on Ice Lake
5657 platform, more information you can reference:
5658 https://github.com/intel/media-driver
5660 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
5662 * gst/vaapi/gstvaapiencode.c:
5663 vaapiencode: gobject's prop_id differ from vaapi encoder
5664 The vaapi internal encoder's property id are negative, thus they are
5665 different from GObject's property ids.
5666 gst_vaapi_encoder_set_property() should map to the internal encoder
5667 property id, assigned in gst_vaapiencode_default_set_property().
5669 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
5672 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5674 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
5677 meson: use new 'python' module instead of deprecated 'python3' one
5679 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
5682 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5683 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5685 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
5690 * docs/plugins/inspect/plugin-vaapi.xml:
5694 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
5696 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5697 libs: Fix a typo in comments.
5698 Fix a typo in function description of
5699 gst_vaapi_surface_pool_new_with_chroma_type.
5700 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5702 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5704 * gst/vaapi/gstvaapipluginutil.c:
5705 plugin: if any caps in downstream, negotiate raw video
5706 When downstream has any caps, vaapi should not shovel vaapi featured
5707 buffers, but rather plain raw video, assuming always the worst case
5708 scenario (downstream cannot handle featured video memory but raw
5709 system memory buffers).
5710 This patch query the peer caps without any filter, to know if
5711 donwstream just ask for any caps, if so jump to the color space
5712 checking, otherwise do the caps intersection and continue with the
5713 feature selection algorithm.
5716 === release 1.15.2 ===
5718 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5724 * gstreamer-vaapi.doap:
5728 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5730 * docs/plugins/inspect/plugin-vaapi.xml:
5733 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
5735 * gst/vaapi/gstvaapivideomemory.c:
5736 vaapivideomemory: Prefer same format for surface and image
5737 We prefer to use the same format between image and surface for gst
5738 vaapi allocator. The old way may choose different formats between
5739 image and surface. For example, the RGBA image may have a NV12 surface.
5740 So we need to do format conversion when we put/get image to surface.
5741 Some drivers such as iHD can not support such conversion and always
5742 cause a data flow error. There may also have some performance cost
5743 for format conversion when put/get images.
5744 So we prefer to use the same format for image and surface in the
5745 allocator. If the surface can not support that format, we then
5746 fallback to find a best one as the surface format.
5747 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5749 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
5751 * gst-libs/gst/vaapi/video-format.c:
5752 libs: Delete the duplicated ARGB video format.
5753 Two ARGB formats with the same format information.
5754 Should be verbose and delete one.
5755 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5757 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
5760 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5761 glx: Stop specifying GLX_DEPTH_SIZE
5762 This code is just confused. It's asking for at least as many bits of
5763 (z-axis) depth as the root window has bits of (color) depth. For rgb565
5764 or rgb888 this is harmless, but at 10 bits per channel this demands a
5765 30-bit or deeper Z buffer. While some hardware could in principle do a
5766 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5768 We're not actually using the Z buffer, so just stop asking for one.
5770 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
5773 * gst-libs/gst/vaapi/Makefile.am:
5774 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5775 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5776 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5777 * gst-libs/gst/vaapi/meson.build:
5778 * gst/vaapi/gstvaapisink.c:
5780 libs: wayland: add support for XDG-shell protocol
5781 [wl_shell] is officially [deprecated], so provide support for the
5782 XDG-shell protocol should be provided by all desktop-like compositors.
5783 (In case they don't, we can of course fall back to wl_shell).
5784 Note that the XML file is directly provided by the `wayland-protocols`
5785 dependency and generates the protocol marshalling code.
5786 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5787 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5789 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
5791 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5792 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5793 It will help us to distinguish from other Wayland shell surface
5794 (such as XDG-shell) later on.
5796 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
5798 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5799 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5800 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5801 libs: wayland: Prefix wl_shell field with `wl_`
5802 It will help us to distinguish from other Wayland shells (such as
5803 XDG-shell) later on.
5805 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
5807 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5808 libs: display: lock ensure_profile()
5809 Thread safety patch for ensure_profile() function
5812 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5815 meson: bump the minimum wayland version requirement to 1.11.0
5816 This was missed on commit 77bb3424
5818 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5820 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5821 * gst/vaapi/gstvaapisink.c:
5822 vaapisink: x11: trap WM_DELETE_WINDOW message
5823 Register the WM_DELETE_WINDOW message from window manager and
5824 trap it to stop the pipeline cleanly.
5825 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5827 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5829 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5830 libs: window: remove native-id property
5831 native-id property is problematic since the variable that stores it is
5832 gsize, which is platform specific, and in some is bigger than unsigned
5833 long, and there are not way to handle gsize properties.
5834 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5835 like to keep using it for this scope.
5836 This patch removes the native-id property and set it manually in
5837 gst_vaapi_window_new_internal().
5839 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5841 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5842 libs: window: use G_GSIZE_MODIFIER for window id
5843 gsize type is not equal in all platforms, then the 'l' print modifier
5844 shall not be used always.
5845 This issue was found in Debian builds.
5847 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
5849 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5850 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5851 encoder: h264/h265: set SPS cbr_flag with correct value.
5852 The flag only set as 1 when the rate-control mode is CBR.
5854 === release 1.15.1 ===
5856 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5862 * gstreamer-vaapi.doap:
5866 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5868 * docs/plugins/inspect/plugin-vaapi.xml:
5871 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5873 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5874 libs: encoder: refactor to avoid code duplication
5875 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
5876 the same code segment where the coded buffer is created, the picture
5877 encoded on it and pushed to the async queue.
5878 The function gst_vaapi_encoder_encode_and_queue() refactor this.
5880 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5882 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5883 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5884 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5885 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5886 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5887 libs: encoder: h264/h265: flush pending ordered pictures
5888 In order to flush the pending pictures, a new internal encoder vmethod
5889 is used: get_pending_reordered()
5890 This method follows an iterator pattern which will return the next
5891 picture to encode and push.
5892 The base encoder will call this function in a loop when flush() is called.
5893 For now, only H.264 and H.265 encoders implement this flushing mechanism.
5895 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.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 libs: encoder: h264/h265: fix encode lose frame issue.
5902 Instead of dropping all remain frames in reorder_frame_list during
5903 flush, keep encoding.
5904 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
5906 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
5908 * gst/vaapi/gstvaapipostproc.c:
5909 vaapipostproc: before set surface proxy, check if it already been created and exist.
5910 Fix the deinterlace black frame when playing with glimagesink:
5911 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
5912 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
5914 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
5916 * gst-libs/gst/vaapi/gstvaapiutils.c:
5917 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
5919 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5921 * gst-libs/gst/vaapi/meson.build:
5922 * gst/vaapi/meson.build:
5924 * tests/meson.build:
5925 meson: build h264 fei encoder if possible
5927 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
5930 configure: bump the minimum wayland version requirement to 1.11.0
5932 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
5935 * gst-libs/gst/vaapi/Makefile.am:
5936 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5937 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
5938 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
5939 * gst-libs/gst/vaapi/gstvaapicompat.h:
5940 * gst-libs/gst/vaapi/gstvaapicontext.c:
5941 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5942 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5943 * gst-libs/gst/vaapi/gstvaapifilter.c:
5944 * gst-libs/gst/vaapi/gstvaapiprofile.c:
5945 * gst-libs/gst/vaapi/gstvaapisurface.c:
5946 * gst-libs/gst/vaapi/gstvaapiutils.c:
5947 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5948 * gst-libs/gst/vaapi/meson.build:
5949 * gst/vaapi/Makefile.am:
5950 * gst/vaapi/gstvaapi.c:
5951 * gst/vaapi/gstvaapidecode.c:
5952 * gst/vaapi/gstvaapidecodebin.c:
5953 * gst/vaapi/gstvaapipluginbase.c:
5954 * gst/vaapi/meson.build:
5957 * tests/simple-decoder.c:
5958 vaapi: bump the minimum vaapi version requirement to 0.39.0
5959 And reduce unnecessary API version and structures check as well.
5960 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
5962 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5964 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5965 * gst-libs/gst/vaapi/gstvaapiwindow.h:
5966 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5967 * tests/test-decode.c:
5968 * tests/test-filter.c:
5969 * tests/test-subpicture.c:
5970 * tests/test-textures.c:
5971 * tests/test-windows.c:
5972 libs: window: remove custom ref() and unref()
5973 Use gst_object_ref() and gst_object_unref() instead.
5975 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5977 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5978 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
5979 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5980 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5981 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5982 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5983 libs: window: use its own debug category
5985 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5987 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5988 * gst-libs/gst/vaapi/gstvaapiwindow.h:
5989 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
5990 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
5991 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5992 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
5993 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5994 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
5995 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
5996 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5997 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
5998 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5999 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6000 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6001 libs: window: refactor as gobject
6002 This is another step in the gobjectification of the internal library
6003 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6005 The idea is to minimize the changeset keeping the same design as
6007 GstVaapiWindow is defined as an abstract class with two properties:
6008 the GstVaapiDisplay and the native ID. Thus, many of the
6009 GstVaapiObject macros were copied as GstVaapiWindow macros.
6010 The function gst_vaapi_window_new_internal() is kept as a decorator
6011 of for calling gst_vaapi_window_create() and the possibility of
6013 The descendant classes, such as glx, still use the private
6014 structures, but through the gobject mechanism.
6016 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6018 * gst-libs/gst/vaapi/gstvaapifilter.c:
6019 libs: filter: use its own debug category
6021 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6023 * gst/vaapi/gstvaapidecode.c:
6024 * gst/vaapi/gstvaapipluginbase.c:
6025 * gst/vaapi/gstvaapipluginbase.h:
6026 * gst/vaapi/gstvaapipostproc.c:
6027 * gst/vaapi/gstvaapisink.c:
6028 plugins: Add more check for allowed raw caps.
6029 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6030 pad and src pad, which cause some bugs. For sink pad, we need to verify
6031 vaPutImage() while for the src pad we need to verify vaGetImage().
6032 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6033 to verify whether the decoded result(in some surface, NV12 format most
6034 of the time) can be vaGetImage to some raw image format. Add more check
6035 to fix all these problems.
6036 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6037 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6039 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6041 * gst/vaapi/gstvaapipostproc.c:
6042 vaapipostproc: fix csc fail when only change width or height.
6044 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6046 * tests/elements/meson.build:
6047 meson: Add gtk guard
6049 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6051 * gst/vaapi/gstvaapiencode_h264.c:
6052 libs: enc: h264: set max profile idc with correct profile.
6053 Use the highest rank of available profile as the max profile to
6055 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6057 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6059 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6060 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6061 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6062 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6063 This gets rid of the strange `do_init` macro and makes the intent a bit
6066 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6069 Automatic update of common submodule
6070 From ed78bee to 59cb678
6072 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6074 * gst-libs/gst/vaapi/gstvaapiimage.c:
6075 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6076 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6077 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6078 * gst-libs/gst/vaapi/video-format.c:
6079 * gst/vaapi/gstvaapidecode.c:
6080 * gst/vaapi/gstvaapipluginutil.h:
6081 libs: dec: h265: support decode for main-444 10bit streams.
6082 Add 444 10bit yuv format Y410, which can be used to decode
6083 main-444 10bit streams. Currently, this feature is only
6084 supported by media-driver in Icelake.
6086 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6088 * gst/vaapi/gstvaapidecode.c:
6089 * gst/vaapi/gstvaapisink.c:
6090 Run gst-indent through the files
6091 This is required before we enabled an indent test in the CI.
6092 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6094 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6096 * gst/vaapi/gstvaapipluginbase.c:
6097 plugins: modify image check of extract_allowed_surface_formats.
6098 The extract_allowed_surface_formats function just check whether
6099 we can support some kind of surface/image format pair. We just
6100 need to create a surface, create an image with the same video-format
6101 and putImage from image to surface. All these operations success,
6102 that kind of video-format is supported.
6103 The old manner do not work for some kind of video-format. For example,
6104 the RGBA kind of format will create a NV12 surface and RGBA image,
6105 and the putImage will fail because the format is not same. And so
6106 the RGBA format is not supported but actually it is supported.
6108 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6110 * gst/vaapi/gstvaapipostproc.c:
6111 vaapipostproc: add some missing locking
6112 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6113 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6115 This is needed when the pipeline is stopped during startup.
6117 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6119 * gst/vaapi/gstvaapivideomemory.c:
6121 Otherwise it will result in resource leak when failed to create
6124 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6126 * gst/vaapi/gstvaapiencode.c:
6127 vaapiencode: don't start src pad task in set_format
6128 Otherwise the task may be restarted during shutdown. Start the task in
6129 gst_vaapiencode_handle_frame() instead.
6131 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6133 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6134 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6135 * gst-libs/gst/vaapi/gstvaapiutils.c:
6136 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6137 * gst/vaapi/gstvaapidecode.c:
6138 * gst/vaapi/gstvaapipluginutil.h:
6139 libs: dec: h265: support decode for main-444 8bit streams.
6140 Add 444 8bit yuv format AYUV, which can be used to decode
6141 main-444 8bit streams. Currently, this feature is only
6142 supported by media-driver in Icelake.
6143 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6145 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6148 Add Gitlab CI configuration
6149 This commit adds a .gitlab-ci.yml file, which uses a feature
6150 to fetch the config from a centralized repository. The intent is
6151 to have all the gstreamer modules use the same configuration.
6152 The configuration is currently hosted at the gst-ci repository
6153 under the gitlab/ci_template.yml path.
6154 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6156 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6158 * gst-libs/gst/vaapi/gstvaapisurface.h:
6159 * gst-libs/gst/vaapi/gstvaapiutils.c:
6160 libs: Sync the GstVaapiChromaType to VA header file.
6161 Add more kinds of chrometype which will be used to describe
6162 new video formats. Sync it with 1.4.0 version header file.
6163 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6164 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6166 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6168 * gst-libs/gst/vaapi/meson.build:
6169 meson: link with -lm
6170 Fixes #117 hopefully.
6172 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6175 meson: bump meson required to 0.47 for feature options
6177 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6179 * gst-libs/gst/vaapi/video-format.c:
6180 libs: Modify the video format of endianness.
6181 We lack some video format because endianness declare.
6182 The video format should not directly relate to endianness. For example,
6183 ARGB on big endian should not be simplely seen as BGRA on little endian
6184 machine. We should provide endianess convert or format convert help
6185 functions if endianness does not match.
6186 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6187 Signed-off-by: Junyan He <junyan.he@intel.com>
6189 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6191 * gst/vaapi/gstvaapipluginutil.c:
6192 plugins: Fix build error when GL is enabled while EGL is disabled.
6193 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6194 unused-variable warning and may block build when Werror enabled.
6195 Several functions like gst_vaapi_display_egl_new_with_native_display
6196 have no prototype warning and link error when GL is enabled but EGL
6197 is disabled. Fix all these warning and link error.
6198 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6199 Signed-off-by: Junyan He <junyan.he@intel.com>
6201 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6203 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6204 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6205 libs: encoder: h264/h264fei: remove unuseless code.
6206 The variable are set twice, remove previous one.
6207 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6209 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6211 * tests/simple-encoder.c:
6212 * tests/test-fei-enc-in.c:
6213 tests: check return value when using gst_buffer_map.
6214 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6216 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6219 * meson_options.txt:
6220 * tests/elements/meson.build:
6221 * tests/meson.build:
6222 build: meson: build examples
6224 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6226 * gst-libs/gst/vaapi/meson.build:
6227 build: meson: declare headers for libgstvaapi
6228 Thus handling its recompilation if needed.
6230 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6233 Update common submodule location
6234 Remove the git directory
6236 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6239 * gstreamer-vaapi.doap:
6240 Clone the code from gitlab
6241 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6243 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6245 * gst-libs/gst/vaapi/gstvaapiimage.c:
6246 * gst-libs/gst/vaapi/gstvaapisurface.h:
6247 * gst-libs/gst/vaapi/gstvaapiutils.c:
6248 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6249 * gst-libs/gst/vaapi/video-format.c:
6250 * gst/vaapi/gstvaapidecode.c:
6251 * gst/vaapi/gstvaapipluginutil.h:
6252 libs: dec: h265: support decode for main-10-422 10bit streams.
6253 Add 422 10bit yuv format Y210, which can be used to decode
6254 main-10-422 10bit streams. Currently, this feature is only
6255 supported by media-driver in Icelake.
6256 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6258 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6260 * gst-libs/gst/vaapi/gstvaapicontext.c:
6261 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6262 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6263 rate control mode is set as CQP. In CQP mode, it shouldn't check
6264 roi_rc_qp_delta_support return value from driver backend.
6265 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6267 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6269 * gst/vaapi/gstvaapipostproc.c:
6270 vaapipostproc: fix classification string
6271 The classification string is splitted by '/' and then looks for the
6273 This patch removes the ';' by unifying all the components.
6275 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6277 * gst/vaapi/gstvaapipostproc.c:
6278 vaapipostproc: Add Hardware classifier to metadata
6280 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6282 * gst-libs/gst/vaapi/gstvaapicontext.c:
6283 libs: context: create context first before using it to create surface.
6284 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6285 sure to create it first before allocating its associated surfaces.
6286 This patch fixes a regression introduced in commit 82872f4 because
6287 the formats available in the current context now are ensured before
6288 creating the context's surfaces.
6289 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6291 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6293 * docs/plugins/inspect/plugin-vaapi.xml:
6294 * gst/vaapi/gstvaapidecode.c:
6295 * gst/vaapi/gstvaapiencode_h264.c:
6296 * gst/vaapi/gstvaapiencode_h264_fei.c:
6297 * gst/vaapi/gstvaapiencode_h265.c:
6298 * gst/vaapi/gstvaapiencode_jpeg.c:
6299 * gst/vaapi/gstvaapiencode_mpeg2.c:
6300 * gst/vaapi/gstvaapiencode_vp8.c:
6301 * gst/vaapi/gstvaapiencode_vp9.c:
6302 gst: Advertise elements interacting with hardware devices
6304 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6306 * gst-libs/gst/vaapi/gstvaapicontext.c:
6307 * gst-libs/gst/vaapi/gstvaapisurface.c:
6308 * gst-libs/gst/vaapi/gstvaapisurface.h:
6309 libs: context: query surface format before context to create surface.
6310 Before using context to create surface, the supported surface format
6311 should be checked first.
6312 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6314 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6316 * gst-libs/gst/vaapi/gstvaapiimage.c:
6317 * gst-libs/gst/vaapi/gstvaapivalue.c:
6318 libs: replace g_error with GST_ERROR
6319 And handle those errors rather than halting.
6321 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6323 * gst-libs/gst/vaapi/gstvaapiimage.c:
6324 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6325 * gst-libs/gst/vaapi/gstvaapisurface.c:
6326 libs: replace g_warning with GST_WARNING
6328 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6330 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6331 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6332 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6333 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6334 libs: Move from g_debug to GST_DEBUG.
6335 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6337 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6339 * gst/vaapi/gstvaapipostproc.c:
6340 vaapipostproc: change the way of handling deinterlace
6341 The current vaapipostproc calls driver's video processing
6342 pipeline for deinterlacing only if it is Advance deinterlacing.
6343 Modify in the way that it always tries with driver's video
6344 processing pipeline for deinterlacing, and falls back to software
6345 method of appending picture structure meta data only if it fails
6346 with driver's method.
6347 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6349 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6351 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6352 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6353 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6354 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6355 from T-REC-H.264-201704.
6356 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6358 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6360 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6361 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6362 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6363 * gst-libs/gst/vaapi/gstvaapisurface.c:
6364 * gst-libs/gst/vaapi/gstvaapiutils.c:
6365 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6366 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6367 * gst-libs/gst/vaapi/video-format.c:
6368 * gst-libs/gst/vaapi/video-format.h:
6369 * gst/vaapi/gstvaapidecode.c:
6370 * gst/vaapi/gstvaapipluginbase.c:
6371 * gst/vaapi/gstvaapipluginutil.h:
6372 libs: dec: h265: add 422 chroma format support.
6373 Add main-422-10 profile which support 422 chroma format stream.
6374 Currently, this feature is only supported by media-driver in Icelake.
6375 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6377 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6379 * tests/y4mreader.c:
6380 tests: include sysdeps.h in compilation unit
6381 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6382 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6384 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6386 * tests/y4mreader.c:
6387 * tests/y4mreader.h:
6388 tests: fix compilation
6389 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6391 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6393 * tests/y4mreader.h:
6394 tests: don's use sysdeps.h in header
6396 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6398 * gst-libs/gst/vaapi/gstvaapiutils.h:
6399 libs: utils: no need of include config.h
6401 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6405 * tests/test-decode.c:
6406 * tests/test-subpicture.c:
6407 tests: remove already include string.h
6408 Since sysdeps.h includes string.h there's no need to include it again.
6410 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6412 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6413 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6414 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6415 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6416 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6417 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6418 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6419 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6420 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6421 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6422 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6423 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6424 * gst-libs/gst/vaapi/gstvaapiimage.c:
6425 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6426 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6427 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6428 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6429 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6430 libs: remove already include string.h
6431 Since sysdeps.h includes string.h there's no need to include it again.
6433 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6435 * gst-libs/gst/vaapi/gstvaapiobject.h:
6436 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6437 * gst/vaapi/gstvaapivideometa_texture.c:
6438 libs: object: separation of internal API and plugins
6439 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6440 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6442 The purpose is readability.
6443 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6445 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6447 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6448 libs: parser_frame: change macros for inlined functions
6449 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6451 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6453 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6454 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6455 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6456 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6457 libs: videopool: remove unneeded code
6458 The removed code comes frome the bad practice of copy&paste. Better
6459 move it as internal function.
6460 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6462 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6464 * gst-libs/gst/vaapi/Makefile.am:
6465 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6466 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6467 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6468 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6469 * gst-libs/gst/vaapi/gstvaapiobject.c:
6470 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6471 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6472 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6473 * gst-libs/gst/vaapi/gstvaapitexture.c:
6474 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6475 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6476 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6477 * gst-libs/gst/vaapi/meson.build:
6478 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6479 This conditional code was when libgstvaapi was intended to be library
6480 used outside GStreamer. This not the case anymore, thus removing it.
6481 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6483 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6485 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6486 libs: dec: h265: fix the macros used for IDC profile
6487 profile_idc flag in SPS only indicate the IDC profile, which may
6488 need some other flags together to get the real profile.
6489 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6491 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6493 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6494 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6495 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6496 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6497 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6498 libs: use g_clear_pointer() when possible
6499 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6501 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6503 * gst-libs/gst/vaapi/gstvaapifilter.h:
6504 libs: filter: add gobject's cleanup function
6506 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6508 * gst-libs/gst/vaapi/gstvaapifilter.c:
6509 * gst-libs/gst/vaapi/gstvaapifilter.h:
6510 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6511 * tests/test-filter.c:
6512 libs: filter: remove custom ref() and unref()
6513 Replacing them by gst_object_ref() and gst_object_unref()
6514 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6516 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6518 * gst-libs/gst/vaapi/gstvaapifilter.c:
6519 * gst-libs/gst/vaapi/gstvaapifilter.h:
6520 libs: filter: refactor filter as gobject
6521 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6523 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6525 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6526 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6527 libs: decoder: remove destoy() and create() callbacks
6528 They were all replaced by reset()
6529 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6531 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6533 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6534 libs: decoder: vp9: implement reset() callback
6535 remove destroy() and create() callback
6536 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6538 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6540 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6541 libs: decoder: vp8: implement reset() callback
6542 remove create() and destroy() callbacks
6543 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6545 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6547 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6548 libs: decoder: vc1: implement reset() callback
6549 remove destroy() and create() callbacks
6550 use g_clear_pointer for rbdu_buffer
6552 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6554 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6556 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6557 libs: decoder: mpeg4: implement reset() callback
6558 remove destroy() and create() callback
6559 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6561 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6563 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6564 libs: decoder: mpeg2: implement reset() callback
6565 remove create() and destroy() callbacks
6566 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6568 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6570 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6571 libs: decoder: jpeg: implement reset() callback
6572 and remove create() and destroy() callbacks.
6573 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6575 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6577 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6578 libs: decoder: h265: implement reset() callback
6579 and remove create() and destroy()
6580 and use g_clear_pointer for dpb structure
6581 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6583 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6585 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6586 libs: decoder: h264: remove create() and destroy() callbacks
6587 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6589 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6591 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6592 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6593 * tests/test-decode.c:
6594 * tests/test-subpicture.c:
6595 libs: decoder: remove gst_vaapi_decoder_unref()
6596 Replaced by gst_object_unref() in tests
6597 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6599 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6601 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6602 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6603 libs: decoder: remove gst_vaapi_decoder_ref()
6604 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6606 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6608 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6609 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6610 libs: decoder: remove gst_vaapi_decoder_new()
6611 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6613 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6615 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6616 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6617 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6618 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6619 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6620 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6621 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6622 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6623 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6624 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6625 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6626 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6627 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6628 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6629 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6630 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6631 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6632 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6633 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6634 libs: decoder: refactor decoders as gobject
6635 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6637 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6639 * gst/vaapi/gstvaapidecode.c:
6640 vaapidecode: Requests upstream a key unit at parse or decode error.
6641 This is done to resume decoding after a parse error or decode error.
6642 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6644 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6646 * gst/vaapi/gstvaapidecode.c:
6647 vaapidecode: sets return value in failure case.
6648 In gst_vaapidecode_handle_frame, when there is a decode error
6649 there is a code path the returns an uninitialized value.
6650 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6652 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6654 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6655 libs: display: lock at extracting available image formates
6656 When running several vaapi elements at the concurrently, at
6657 initialization, there is a race condition when extractin the avaible
6658 formats for images and subpictures.
6659 This patch add a lock when the those arrays are filled.
6660 https://bugzilla.gnome.org/show_bug.cgi?id=797039
6662 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
6665 meson: Sync libversion and osxversion code from other repos
6666 gstreamer-vaapi does not build any libraries, only plugins, so this is
6667 not used, but sync it just in case someone does add it in the future.
6669 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6671 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6672 libs: encoder: h265: trivial documentation fix
6674 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
6676 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6677 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6678 libs: encoder: h265: add low delay B frame support.
6679 Low delay B frame provide the function of transforming
6680 P frame into low delay B frame which frame type is B, but
6681 only reference predictive frames. This can be used when P
6682 frame unsupported. Especially for P and B both unsupported,
6683 in this case, I and low delay B frame can be encoded in a
6685 https://bugzilla.gnome.org/show_bug.cgi?id=796984
6687 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6689 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6690 libs: decoder: h264: Avoid using picture after it has been free
6691 In some cases, the found_picture ended up being evicted and freed, which
6692 would lead to a use after free when accessing picture->base.poc. In this
6693 fix, we take a ref on the picture before calling dpb_evict.
6694 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6696 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6698 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6699 h264decoder: Fail decoding slice with missing inter-view reference
6700 Similarly to previous patch, we have no error concealment. As a side
6701 effect, it's better to skip slices with missing references then passing
6702 NULL pointers to the accelerator. Passing NULL pointer would lead to
6703 major visual artifact, a behaviour that is likely undefined.
6704 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6706 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
6708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6709 libs: decoder: h264: reset context when the number of view is increased
6710 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6711 That's why it resets context without this patch.
6712 But for some media it doesn't increase dpb size. Even in this case we
6713 should reset context to deal with MVC decoding.
6714 Otherwise, it leads to assert.
6715 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6717 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6719 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6720 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6721 * gst/vaapi/gstvaapidecode.c:
6722 vaapidecode: Skip unparsable units from adapter
6723 If the unit could not be parsed, just skip this nal and keep parsing
6724 what is left in the adapter. We need to flush the broken unit in the
6725 decoder specific parser because the generic code does not know about
6726 units boundary. This increases error resilliance.
6727 Before this, the broken unit would stay in the adapter and EOS would be
6728 returned. Which stopped the streaming. Just removing the EOS would have
6729 lead to the adapter size growing indefinitely.
6730 https://bugzilla.gnome.org/show_bug.cgi?id=796863
6732 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6734 * gst/vaapi/gstvaapidecode.c:
6735 vaapidecoder: Don't error out on decode errors
6736 This is problematic on live pipeline where loosing network can
6737 cause an important amount of errors.
6738 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6740 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6742 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6743 h265decoder: Don't scan empty buffer
6744 Same as what we did for H264 decoder, this is to avoid an assertion
6746 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6748 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6750 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6751 libs: h264: renable the vaapi category for logging
6752 h264 log messages were logged in default category because a regression
6753 in code. This patch renable the usage of vaapi logging category.
6754 This regression was introduced in commit 7c365bdd.
6756 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6758 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6759 h264decoder: Fail decoding slice if modification process failed
6760 This patch chains up failure to executing the modification process. The
6761 end result is that we now fail decoding the slice if this process fails.
6762 This avoid sending a corrupted state to the accelerator. In some special
6763 cases, this could lead to unrecoverable errors.
6764 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6766 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6768 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6769 h264decoder: Don't scan empty buffer
6770 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6771 try and scan in that case. This fixes assertion that would some times
6772 happen when the stream is corrupted.
6773 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6775 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
6777 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6778 libs: encoder: jpeg: set component id and Tqi
6779 This change is due a problem encoding JPEGs with Intel's
6780 media-driver: green/black image when playback jpeg
6781 This patch sets component identifier and quantization table
6782 destination selector in frame header to support packing headers
6783 by Intel's media-driver that does not accept packed header
6785 https://bugzilla.gnome.org/show_bug.cgi?id=796705
6787 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
6789 * gst/vaapi/gstvaapipluginutil.c:
6790 pluginutil: downgrade unsupported driver logging
6791 On systems with an Nvidia card, this error is output each time
6792 the registry is rebuilt, which happens pretty often when
6793 using gst-build as a development environment.
6794 https://bugzilla.gnome.org/show_bug.cgi?id=796663
6796 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
6798 * gst/vaapi/gstvaapivideobufferpool.c:
6799 Update for g_type_class_add_private() deprecation in recent GLib
6801 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6803 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6804 h264dec: Remove false assumption about parity order
6805 The decoder was trying to detect earlier that a field was lost base
6806 on guessing the parity order. This breaks in streams were the parity
6808 This patch reverts the field order prediction code added by commit
6810 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6812 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6814 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6815 h264dec: Properly set sentinel in ref frame list
6816 This ensure that we always have sentinels set in the reference
6817 pictures arrays. The code wasn't unsafe, this simply improve the
6818 tracing, so instead of printing 32 lines of zeros, va tracer
6819 prints proper empty lists.
6820 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6822 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6824 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6825 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6826 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6827 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6828 * gst-libs/gst/vaapi/gstvaapifilter.c:
6829 * gst-libs/gst/vaapi/gstvaapiobject.c:
6830 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6831 * gst/vaapi/gstvaapipluginbase.c:
6832 * gst/vaapi/gstvaapivideometa.c:
6833 * tests/test-decode.c:
6834 libs: display: remove gst_vaapi_display_ref()
6835 Replace it with gst_object_ref()
6836 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6838 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6840 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6841 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6842 * gst/vaapi/gstvaapi.c:
6843 * gst/vaapi/gstvaapidecode.c:
6844 * gst/vaapi/gstvaapiencode.c:
6845 * gst/vaapi/gstvaapipluginbase.c:
6846 * gst/vaapi/gstvaapipluginutil.c:
6848 * tests/simple-encoder.c:
6849 * tests/test-decode.c:
6850 * tests/test-display.c:
6851 * tests/test-fei-enc-in.c:
6852 * tests/test-filter.c:
6853 * tests/test-subpicture.c:
6854 * tests/test-surfaces.c:
6855 * tests/test-textures.c:
6856 * tests/test-windows.c:
6857 libs: display: remove gst_vaapi_display_unref()
6858 Use gst_object_unref() instead.
6859 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6861 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6863 * gst/vaapi/gstvaapivideobufferpool.c:
6864 vaapibufferpool: declare parameter display as object
6865 We have neglected to update this code since GstVaapiDisplay turned
6866 into a GstObject descendant.
6867 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6869 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
6871 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6872 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6873 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6874 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
6875 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6876 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6877 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6878 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
6879 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
6880 But still something breaking GObject code convention remains, which is
6881 calling gst_vaapi_display_new() in each decendants.
6882 This patch replaces it with gst_vaapi_display_config(), defined in private
6884 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6886 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6888 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6889 libs: display: redefine gst_vaapi_display_create()
6890 The function name was gst_vaapi_display_create_unlocked(), nonetheless
6891 it wasn't called unlocked. In order to keep the semantics this patch
6892 renames the gst_vaapi_display_create_unlocked() as
6893 gst_vaapi_display_create(), removing the previous function
6894 gst_vaapi_display_create().
6895 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6897 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6900 Revert "build: meson: libva gst-uninstall friendly"
6901 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
6903 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6905 * gst/vaapi/gstvaapipluginutil.c:
6906 plugins: fix compilation
6907 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
6909 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6912 build: meson: libva gst-uninstall friendly
6913 Make gstreamer-vaapi to use libva uninstalled.
6915 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6917 * gst/vaapi/gstvaapipluginutil.c:
6918 plugins: refactor gst_vaapi_create_display_from_gl_context()
6919 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
6920 This path refactors it, in order to make the code readable and
6922 https://bugzilla.gnome.org/show_bug.cgi?id=796564
6924 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6926 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6927 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6928 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6929 libs: display: resurrect parent private member
6930 This is, practically, a revert of commit dcf135e2.
6931 The parent logic is useful for the EGL display, which is a decorator
6932 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
6933 calling vaInitialize() and vaTerminate() twice.
6934 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6936 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6938 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6939 libs: display: egl: initialize params structure
6940 Statically initialise the internal params structure.
6941 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6943 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6945 * gst/vaapi/gstvaapipluginutil.c:
6946 plugins: handle EGL when creating VAAPI display from gl
6947 If GstGL reports a EGL platform force to create a EGL display using
6948 the native EGL display.
6949 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6951 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
6953 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6954 * gst/vaapi/gstvaapipluginutil.c:
6955 display: egl: create VaapiDisplayEGL with native EGL display
6956 gst_vaapi_display_egl_new_with_native_display() has been broken since
6958 Currently it's needed to call this API to create a display providing
6959 the EGL display, so it could avoid duplicated calls to the native
6960 display (eg. eglTerminate).
6961 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
6962 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6964 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
6966 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6967 libs: decoder: release VA buffers after vaEndPicture
6968 This change is due a problem decoding JPEGs with Intel's media-driver:
6969 no image was generated.
6970 This patch relases the VA buffers after vaEndPicture() is called,
6971 and not before (after vaRenderPicture()).
6972 https://bugzilla.gnome.org/show_bug.cgi?id=796505
6974 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
6976 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6977 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6978 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6979 meson: fix build when xrender or xrandr are not available
6980 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
6982 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
6984 * gst/vaapi/gstvaapipostproc.c:
6985 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
6986 Otherwise a reference to a DMABuf input buffer is kept until the output
6988 https://bugzilla.gnome.org/show_bug.cgi?id=796399
6990 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
6992 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6993 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6994 libs: display: remove unnecessary legacy code since gobjectification
6995 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6997 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
6999 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7000 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7001 libs: display: remove unused code
7002 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7004 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7006 * gst/vaapi/gstvaapiencode_h264.c:
7007 vaapiencode: h264: log output caps
7009 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7011 * gst/vaapi/gstvaapiencode_h264.c:
7012 vaapiencode: h264: find profile in available and allowed caps
7013 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7014 find best profile in those available") changed the code to pick a profile
7015 that is actually supported by the hardware. Unfortunately it dropped the
7016 downstream constraints. This can cause negotiation failures under certain
7018 The fix is split in two cases:
7019 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7021 * The best allowed profile (pipeline's caps) is set as the encoding
7022 target profile (it will be adjusted later by the available profiles
7024 2\ the available VA-API caps does intersect with pipeline's allowed
7026 * The intersected caps are fixed, and its profile is set as the
7027 encoding target profile. In this case the is not the best profile,
7028 but the minimal one (if VA-API reports the profiles in order).
7029 Setting the minimal profile of the intersected caps is better for
7031 This patch fixes other tests related with caps negotiation, for
7032 example, it handles baseline profile, even when VA only supports
7033 constrained-baseline.
7034 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7035 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7037 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7039 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7040 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7041 The specification says,
7042 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7043 This patch changes the upper limit from 6 to 12.
7044 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7046 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7048 * gst/vaapi/gstvaapipluginutil.c:
7049 plugins: guard GstGL code
7051 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7053 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7054 libs: decoder: h264: use g_clear_pointer()
7056 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7058 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7059 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7060 libs: decoder: mpeg4, vc1: remove unused header
7062 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7064 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7065 libs: decoder: remove unused forward declaration
7067 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7070 fix configure.ac regression
7071 Fixes regression introduced by 77527d67abe
7072 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7074 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7076 * gst-libs/gst/Makefile.am:
7077 * gst-libs/gst/base/Makefile.am:
7078 * gst-libs/gst/base/gstbitwriter.c:
7079 * gst-libs/gst/base/gstbitwriter.h:
7080 * gst-libs/gst/base/meson.build:
7081 * gst-libs/gst/meson.build:
7082 * gst-libs/gst/vaapi/Makefile.am:
7083 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7084 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7085 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7086 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7087 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7088 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7089 * gst-libs/gst/vaapi/meson.build:
7090 libs: remove gstbitwriter
7091 Since it is deployed in gstreamer-core, there is no need to use
7093 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7095 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7097 * gst/vaapi/gstvaapidecode.c:
7098 vaapih264dec: add constrained and progressive profiles
7099 Those profiles have been added in the version 2012-01
7100 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7101 Both are supported by VAProfileH264High
7102 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7104 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7106 * gst/vaapi/gstvaapipluginbase.c:
7107 * gst/vaapi/gstvaapipluginutil.c:
7108 * gst/vaapi/gstvaapivideocontext.c:
7109 * gst/vaapi/gstvaapivideocontext.h:
7110 plugin: remove custom GstGL context handling
7111 Instead of using our own context handling for looking for GstGL
7112 parameters (display, context and other context), this patch changes
7113 the logic to use the utility function offered by GstGL.
7114 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7116 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7118 * gst/vaapi/gstvaapipluginbase.c:
7119 plugins: GstGL API must use the member variables
7120 This commit basically is a revert of commits 8092537 and fc1c415
7121 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7123 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7125 * gst/vaapi/gstvaapipluginbase.c:
7126 plugins: pass members as parameters of gst_gl_ensure_element_data()
7127 The parameters of gst_gl_ensure_element_data() have to be not
7128 local variable since they are going to be used to see if they're
7129 set in gst_element_set_context() inside the API.
7130 This is basically a revert of commit 3d56306c
7131 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7133 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7136 meson: fix USE_GLES_VERSION_MASK
7137 1. The macro in the code is USE_GLES_VERSION_MASK
7138 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7140 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7142 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7144 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7145 libs: egl: utils: mark context as wrapped when it is
7146 The returning egl context may be null, so we should check the
7148 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7150 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7152 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7153 libs: egl: utils: fix usage of GstGL macros
7154 Include gl.h for the required GstGL symbols.
7155 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7157 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7160 meson: use -Wl,-Bsymbolic-functions where supported
7161 Just like the autotools build.
7163 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7166 meson: use get_pkgconfig_variable()
7167 Use get_pkgconfig_variable() method, of dependency class, rather
7168 than using run_command().
7170 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7172 * gst-libs/gst/base/meson.build:
7173 * gst-libs/gst/vaapi/meson.build:
7175 meson: fix miscellaneous meson warnings
7176 WARNING: Passed invalid keyword argument "rqeuired".
7177 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7178 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7179 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7180 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7182 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7184 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7185 display: drm: Allow finding DRM paths out of the PCI subsystem
7186 This removes hard-coded checks on the parent subsystem of potential DRM
7187 devices. These checks were set to exlude devices that do not originate
7188 from the PCI bus, which is only a valid approach on x86 devices.
7189 Other devices may have a DRM device originating from the platform
7190 subsystem, so the checks that were previously restricted to PCI are
7191 extended to cover platform devices as well.
7192 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7193 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7195 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7197 * gst/vaapi/gstvaapivideocontext.c:
7198 videocontext: support wl-display in "gst.vaapi.app.Display"
7199 Through "gst.vaapi.app.Display" context, users can set their own
7200 VADisplay and native display of their backend.
7201 So far we support only X11 display, from now we also support Wayland
7204 - wl-display : pointer of struct wl_display .
7205 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7207 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7209 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7210 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7211 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7212 Implements new API function so that users could create GstVaapiDisplay
7213 with their own VADisplay within a native display as backend.
7214 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7216 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7218 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7219 wayland: don't poll if there are no pending frames
7220 Otherwise the following poll may not return for an arbitrary amount of
7221 time. This can happen if another wayland event queue has flushed and read
7223 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7225 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7227 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7228 libs: encoder: h265: 16 bit rounding of picture width and height
7229 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7231 In addition, codedbuf_size must be calculated according to this change.
7232 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7234 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7237 Automatic update of common submodule
7238 From 3fa2c9e to ed78bee
7240 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7242 * gst/vaapi/gstvaapiencode_h264.c:
7243 vaapiencode: h264: find best profile in those available
7244 Instead to look for the best profile in the allowed profiles by
7245 downstream, the encoder should look for the base profile in the
7246 available profile in VA-API.
7247 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7249 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7254 * docs/plugins/inspect/plugin-vaapi.xml:
7258 === release 1.14.0 ===
7260 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7265 * gstreamer-vaapi.doap:
7269 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7271 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7272 libs: decoder: h264: ensure num_ref_frames is greater than 0
7273 Even if it is the h264parse fault or bad video file, vaapih264dec
7274 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7275 as the driver might use it.
7276 Also see "info.ref_frames = dpb_size;" in
7277 gstvaapidecoder_h264.c::ensure_context
7278 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7280 === release 1.13.91 ===
7282 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7287 * gstreamer-vaapi.doap:
7291 === release 1.13.90 ===
7293 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7298 * gstreamer-vaapi.doap:
7302 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7304 * gst/vaapi/gstvaapipostproc.c:
7305 vaapipostproc: change how the metadata is copied
7306 Instead of copying the metada in prepare_output_buffer() vmethod,
7307 it is done in append_output_buffer_metadata() thus deinterlaced
7308 buffers could also have the proper metas.
7309 GstVideoCropMeta now it is copied internally and it is decided via
7310 transform_meta() vmethod.
7311 A new internal method, copy_metadata() was added to handle VPP
7312 transformation where non-GstVideoVaapiMeta metas were lost.
7314 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7316 * gst/vaapi/gstvaapipostproc.c:
7317 postproc: Copy meta data from input to output
7318 This will ensure that meta data without memory tags will be copied. This
7319 was noticed when testing ROI.
7320 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7322 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7324 * tests/elements/test-roi.c:
7325 tests: element: rewrite ROI test
7326 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7327 than injecting GstEvents. These meta are added as a pad probe in
7330 * Use of navigation messages to control de test
7331 * Use signal watch for processing messages
7332 * Change to H265 rather than H264 since current intel-vaapi-driver
7333 only supports ROI on kabylake.
7334 TODO: add a parameter to change the encoder/decoder to test.
7335 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7337 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7339 * gst-libs/gst/vaapi/gstvaapicontext.c:
7340 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7341 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7342 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7343 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7344 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7345 libs: encoder: reimplement ROI using meta
7346 Check input buffers for ROI metas and pass them to VA. Also added a
7347 new "default-roi-delta-qp" property in order to tell the encoder what
7348 delta QP should be applied to ROI by default.
7349 Enabled it for H264 and H265 encoders.
7350 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7352 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7354 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7355 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7356 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7357 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7358 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7359 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7361 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7363 * tests/simple-encoder.c:
7364 Revert "tests: simple-encoder: add an option to set ROI"
7365 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7366 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7368 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7370 * gst/vaapi/gstvaapiencode.c:
7371 * gst/vaapi/gstvaapiencode_h264.c:
7372 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7373 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7374 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7376 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7378 * gst/vaapi/gstvaapipluginbase.c:
7379 plugins: copy input buffer metas
7380 When importing buffers to a VA-base buffer, it is required to copy
7381 the metas in the original buffer, otherwise information will be
7382 lost, such as GstVideoRegionOfInterestMeta.
7383 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7385 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7387 * gst-libs/gst/vaapi/gstvaapisurface.c:
7388 libs: surface: cast to uintptr_t pointer
7389 According to Debian package auto-building, uintptr_t is not an
7390 unsigned long in i386 arch, raising an "incompatible pointer type"
7392 This patch adds a casting for compiler's satisfaction in i386.
7394 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7396 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7397 libs: encoder: add zero as valid value for periodic keyframe.
7398 Enabled zero as valid value for keyframe-period property.
7399 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7401 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7403 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7404 libs: encoder: code-style fix
7406 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7408 * gst/vaapi/gstvaapidecode.c:
7409 vaapidecode: generate system allocated buffers
7410 Generate system allocated output buffers when downstream doesn't
7411 support GstVideoMeta.
7412 The VA buffer content is copied to the new output buffer, and it
7413 replaces the VA buffer.
7414 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7416 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7418 * gst/vaapi/gstvaapipostproc.c:
7419 vaapipostproc: handle system allocated buffers when required
7420 When downstream can't handle GstVideoMeta it is required to send
7421 system allocated buffers.
7422 The system allocated buffers are produced in prepare_output_buffer()
7423 vmethod if downstream can't handl GstVideoMeta.
7424 At transform() vmethod if the buffer is a system allocated buffer,
7425 a VA buffer is instanciated and replaces the out buffer. Later
7426 the VA buffer is copied to the system allocate buffer and it
7427 replaces the output buffer.
7428 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7430 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7432 * gst/vaapi/gstvaapipluginbase.c:
7433 * gst/vaapi/gstvaapipluginbase.h:
7434 plugins: add gst_vaapi_copy_va_buffer()
7435 This helper function aims to copy buffers with VA memory to dumb
7436 buffers, when GstVideoMeta is not available dowstream.
7437 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7439 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7441 * gst/vaapi/gstvaapipluginbase.c:
7442 * gst/vaapi/gstvaapipluginbase.h:
7443 plugins: add COPY_OUTPUT_FRAME flag
7444 This patch add the member copy_output_frame and set it TRUE when
7445 when downstream didn't request GstVideoMeta API, the caps are raw
7446 and the internal allocator is the VA-API one.
7447 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7449 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7451 * gst/vaapi/gstvaapipluginbase.c:
7452 * gst/vaapi/gstvaapipluginbase.h:
7453 plugins: store the first downstream allocator if available
7454 The allocator will be required if we need to allocate a buffer
7455 to store the frame with the expected strides.
7456 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7458 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7460 * gst/vaapi/gstvaapivideobufferpool.c:
7461 * gst/vaapi/gstvaapivideobufferpool.h:
7462 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7463 This function will inform the element if it shall copy the generated
7464 buffer by the pool to a system allocated buffer before pushing it
7466 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7468 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7470 * gst/vaapi/gstvaapivideobufferpool.c:
7471 vaapibufferpool: don't change config when forcing video meta
7472 VA-API based buffer might need a video meta because of different
7473 strides. But when donwstream doesn't support video meta we need to
7474 force the usage of video meta.
7475 Before we changed the buffer pool configuration, but actually this
7476 is a hack and we cannot rely on that for downstream.
7477 This patch add a check fo raw video caps and allocator is VA-API,
7478 then the option is enabled without changing the pool configuration.
7479 In this case the element is responsible to copy the frame to a
7480 simple buffer with the expected strides.
7481 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7483 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7485 * gst/vaapi/gstvaapipostproc.c:
7486 vaapipostproc: set discont flag at vpp deinterlacing
7487 When deinterlacing with VPP the discont flag was not forwarded to
7488 the new created buffer. This patch sets the discont flag if input
7491 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7493 * gst/vaapi/gstvaapivideobufferpool.h:
7494 vaapibufferpool: remove wrong gcc annotation
7496 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7498 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7499 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7500 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7501 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7502 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7503 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7504 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7505 libs: encoder: h264,h265: extend max periodic keyframe.
7506 Increased max values of periodic key frame for h26x codecs.
7507 This allow more fine tunning of encoder that in certian scenario
7508 want higher periodic key frame.
7509 For example: it doesn't want a key frame each 10 seconds but
7511 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7513 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7519 === release 1.13.1 ===
7521 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7526 * gstreamer-vaapi.doap:
7530 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7532 * gst/vaapi/Makefile.am:
7533 vaapi: dist new header
7535 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7537 * gst/vaapi/gstvaapi.c:
7538 vaapi: register vaapisink as marginal on wayland
7539 vaapsink, when used with the Intel VA-API driver, tries to display
7540 surfaces with format NV12, which are handled correctly by
7541 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7542 pipelines on mutter.
7543 This shall be solved either by COGL or by making the driver to paint
7544 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7545 marginal when the Wayland environment is detected, no matter if it is
7547 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7549 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7551 * gst/vaapi/gstvaapipluginutil.c:
7552 plugins: update mesa's vendor string in whitelist
7553 Mesa has updated its VA-API Gallium driver vendor string:
7554 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7555 This patch tries to cover both, the old and the new one.
7556 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7558 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7561 meson: make version numbers ints and fix int/string comparison
7562 WARNING: Trying to compare values of different types (str, int).
7563 The result of this is undefined and will become a hard error
7564 in a future Meson release.
7566 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7568 * gst/vaapi/gstvaapipluginbase.c:
7569 plugins: handle vaapi allocator in allocation query
7570 In propose_allocation() if the numer of allocation params is zero, the
7571 system's allocator is added first, and lastly the native VA-API
7573 In decide_allocation(), the allocations params in query are travered,
7574 looking for a native VA-API allocator. If it is found, it is reused as
7575 src pad allocator. Otherwise, a new allocator is instantiated and
7576 appended in the query.
7577 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7579 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7581 * gst/vaapi/gstvaapivideomemory.h:
7582 vaapivideomemory: remove unused macro
7583 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7584 was never used, since the native VA-API allocator name has been
7585 GST_VAAPI_VIDEO_MEMORY_NAME.
7586 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7587 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7589 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
7591 * gst/vaapi/gstvaapisink.c:
7592 vaapisink: don't mask button events for foreign windows
7593 Don't subscribe to button press events when using a foreing window,
7594 because the user created window would trap those events, preveting the
7596 https://bugzilla.gnome.org/show_bug.cgi?id=791615
7598 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
7601 autotools: use -fno-strict-aliasing where supported
7602 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7604 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
7607 meson: use -fno-strict-aliasing where supported
7608 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7610 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
7612 * gst/vaapi/gstvaapi.c:
7613 vaapi: add NULL-sentinel to kernel_names
7614 The array needs to be NULL-terminated according to the
7615 gst_plugin_add_dependency() documentation.
7617 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7619 * gst/vaapi/gstvaapipostprocutil.c:
7620 vaapipostproc: remove spurious code
7621 This assignation is dead code, since gst_video_info_from_caps() set
7623 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7625 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7627 * gst/vaapi/gstvaapipostprocutil.c:
7628 vaapipostproc: if no p-a-r in out caps define a range
7629 Instead of copying the pixel-aspect-ratio from the sink caps, define
7630 an open range for the src caps pixel-aspect-ratio. Later it will be
7632 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7634 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7636 * gst/vaapi/gstvaapisink.c:
7637 vaapisink: check for display's color-balance properties
7638 Check for display's color-balance properties, available by the VA-API
7639 driver, before setting them.
7640 Also logs an info message of those unavailable properties.
7641 https://bugzilla.gnome.org/show_bug.cgi?id=792638
7643 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7645 * gst/vaapi/gstvaapipluginbase.c:
7646 plugins: re-using buffer pool breaks renegotiation
7647 at propose_allocation() we should not reuse the proposed buffer,
7648 because it could break renegotiation.
7649 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7651 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7653 * gst/vaapi/gstvaapipluginbase.c:
7654 plugins: use g_clear_object() to unref sinkpad_buffer_pool
7655 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7657 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7659 * gst-libs/gst/vaapi/meson.build:
7660 build: meson: add missing GstGL dependency
7662 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7664 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7665 libs: utils: egl: add missing guards for GstGL
7667 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7669 * gst/vaapi/gstvaapipluginbase.c:
7670 plugins: remove dmabuf-import hack
7671 Remove the hack to check if an upstream element has enabled the
7672 property io-mode enabled as dmabuf-import.
7673 https://bugzilla.gnome.org/show_bug.cgi?id=792034
7675 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7677 * gst-libs/gst/vaapi/Makefile.am:
7678 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7679 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7680 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7681 libs: egl: utils: use eglGetPlatformDisplay()
7682 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
7683 eglGetDisplay() is rather fragile, and it is recommended to use
7684 eglGetPlatformDisplay() when possible.
7685 In order to do that, this patch uses the helper in GstGL. If
7686 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7688 https://bugzilla.gnome.org/show_bug.cgi?id=790493
7690 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
7692 * gst/vaapi/gstvaapipostproc.c:
7693 vaapipostproc: lock ensure_filter with postproc_lock
7694 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7695 and allowed_sinkpad_caps. This can race with copying these caps in
7696 gst_vaapipostproc_transform_caps and lead to segfaults.
7697 The gst_vaapipostproc_transform_caps function already locks
7698 postproc_lock before copying the caps. Make sure that calls to
7699 gst_vaapipostproc_ensure_filter also acquire this lock.
7700 https://bugzilla.gnome.org/show_bug.cgi?id=791404
7702 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7704 * tests/test-filter.c:
7705 tests: test-filter: fix dereference before null check
7706 Null-checking op_info suggests that it may be null, but it has already
7707 been dereferenced on all paths leading to the check.
7708 There may be a null pointer dereference, or else the comparison
7709 against null is unnecessary.
7711 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7713 * tests/y4mreader.c:
7714 tests: y4mreader: fix string state checkup
7715 str cannot be null in that moment, but it may be the end of string.
7717 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7719 * tests/y4mreader.c:
7720 tests: y4mreader: use int for fgetc
7721 Assigning the return value of fgetc to char truncates its value.
7722 It will not be possible to distinguish between EOF and a valid
7725 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7727 * tests/y4mreader.c:
7728 tests: y4mreader: fix incompatible cast
7729 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7730 they are dereferenced as a wider long (64 bits, signed). This may lead
7731 to memory corruption.
7733 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7736 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7738 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
7741 Automatic update of common submodule
7742 From e8c7a71 to 3fa2c9e
7744 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7746 * gst/vaapi/gstvaapivideocontext.c:
7747 videoconvert: gst_element_post_message() is transfer full on msg
7748 For this reson we need not to unref the message, even if it failed.
7750 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7752 * gst/vaapi/gstvaapivideocontext.c:
7753 Revert "vaapivideocontext: possible memleak when no bus attached"
7754 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7756 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7758 * tests/elements/test-vaapicontext.c:
7759 test: vaapicontext: process have-context bus message
7761 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7763 * tests/elements/test-vaapicontext.c:
7764 test: vaapicontext: app context is not persistent
7766 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7768 * gst/vaapi/gstvaapipluginbase.c:
7769 * gst/vaapi/gstvaapivideocontext.c:
7770 * gst/vaapi/gstvaapivideocontext.h:
7771 vaapivideocontext: only vaapisink process app context
7772 gst.vaapi.app.Display context is made for applications that will
7773 provide the VA display and the native display to used by the
7774 pipeline, when are using vaapisink as overlay. There are no use
7775 case for encoders, decoders, neither for the postprocessor.
7776 In the case of the vaapisink, it shall query for gst.vaapi.Display
7777 upstream first, and then, if there is no reply,
7778 gst.vaapi.app.Display context will be posted in the bus for the
7779 application. If the application replies, a GstVaapiDisplay object
7780 is instantiated given the context info, otherwise a
7781 GstVaapiDisplay is created with the normal algorithm to guess the
7782 graphics platform. Either way, the instantiated GstVaapiDisplay
7783 is propagated among the pipeline and the have-message bus message.
7784 Also only vaapisink will process the gst.vaapi.app.Display, if
7785 and only if, it doesn't have a display already set. This is
7786 caused because if vaapisink is in a bin (playsink, for example)
7787 the need-context is posted twice, leading to an error state.
7788 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7790 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7792 * gst/vaapi/gstvaapivideocontext.c:
7793 vaapivideocontext: log the name of GstVaapiDisplay
7794 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7796 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7798 * gst/vaapi/gstvaapivideocontext.c:
7799 vaapivideocontext: possible memleak when no bus attached
7800 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7802 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7804 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7805 libs: window: wayland: remove unused header include
7806 Remove wayland-client.h include since there is no exposed symbols from
7809 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7811 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7812 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7813 libs: encoder: h264,h265: guard rate control's macroblock
7814 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7816 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
7819 Automatic update of common submodule
7820 From 3f4aa96 to e8c7a71
7822 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7824 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7825 libs: encoder: h264: Add Hierarchical-B encode
7826 Frames are encoded as different layers. Frame in a particular
7827 layer will use pictures in lower or same layer as references.
7828 Which means decoder can drop the frames in upper layer but still
7829 decode lower layer frames.
7830 B-frames, except the one in top most layer, are reference frames.
7831 All the base layer frames are I or P.
7832 eg: with 3 temporal layers
7836 T1, T2, T3: Temporal Layers
7839 T1: I0->P4 , P4->P8 etc..
7841 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7842 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7843 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7845 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7847 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7848 libs: encoder: h264: Add Hierarchical-P encode
7849 Frames are encoded as different layers. A frame in a particular
7850 layer will use pictures in lower or same layer as references.
7851 Which means decoder can drop the frames in upper layer but still
7852 decode lower layer frames.
7853 eg: with 3 temporal layers
7857 T1, T2, T3: Temporal Layers
7859 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
7860 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7861 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7863 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7865 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7866 libs: encoder: h264: Fix frame_num generation
7867 The frame_num generation was not correctly implemented.
7868 According to h264 spec, frame_num should get incremented
7869 for each frame if previous frame is a referece frame.
7870 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
7871 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7872 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7874 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7876 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7877 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7878 libs: encoder: h264: Add new property "prediction-type"
7879 Adds new property "prediction-type" to select different reference
7880 picture selection modes like hierarchical-p, hierarchical-b etc.
7881 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7882 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7884 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
7886 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7887 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7888 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
7889 Adds some basic building blocks to ease the implementation
7890 of hierarchical prediction modes.
7891 -- add an utility method to find temporal level of each frame
7892 -- define max_ref_frame count based on temporal level count
7893 -- add temporal_level_div[] for finding temporal level each frame
7895 -- find ip_period based on temporal level count
7896 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7897 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7899 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
7901 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7902 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7903 libs: encoder: h264: Add property "temporal-levels"
7904 Adds new property "temporal-levels" to select the number of
7905 temporal levels to be included in the encoded stream.
7906 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7907 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7909 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
7911 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7912 libs: encoder: objects: Add a reference flag
7913 We can have p-frame as non-ref and also b-frame as ref
7914 which are not supported yet. Reference flag
7915 is the first machinery needed for more advanced
7916 reference picture selection modes.
7917 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7918 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7920 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
7922 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
7923 libs: surface: egl: add comment
7924 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
7925 where the creation of surfaces from GEM fd may fail.
7926 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7928 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7930 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7931 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
7932 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7933 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
7934 Adds a new function that changes the internal EGL display to the
7935 current one (eglGetCurrentDisplay()) and sets the current context
7936 too (eglGetCurrentContext()).
7937 This new function is called by gst_vaapi_texture_egl_create() updating
7938 the GstVaapiDisplayEGL with the current EGL display.
7939 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7941 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7943 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7944 libs: texture: egl: update EGL display and context
7945 It is required to use the context of the calling thread when wrapping
7946 a foreign texture. According the documentation of
7947 GstVideoGLTextureUploadMeta:
7948 "The caller of gst_video_gl_texture_upload_meta_upload() must
7949 have OpenGL set up and call this from a thread where it is valid
7950 to upload something to an OpenGL texture."
7951 This patch updates the EGL display and context in GstVaapiDisplay
7952 instance to the one used by te renderer that uploads the texture.
7953 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
7954 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7956 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7958 * gst/vaapi/gstvaapipluginbase.c:
7959 plugins: centralize assignation of GL objects
7960 Add plugin_set_gst_gl() where the GstGL objects are assigned.
7961 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7963 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7965 * gst/vaapi/gstvaapipluginbase.c:
7966 plugins: set GL objects if ensured
7967 Only set the GL display and GL other context if they are ensured.
7968 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7970 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7972 * gst/vaapi/gstvaapipluginbase.c:
7973 plugins: set GL objects if context is handled
7974 Only set the GL display and GL other context if they are extracted
7975 correctly from the gstreamer's context.
7976 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7978 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7980 * gst/vaapi/gstvaapipluginbase.c:
7981 plugins: fix memory leak when GL context is created
7982 When the GL display and context are created inside an VAAPI element
7983 the created GL context is leaked.
7984 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7986 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7988 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7989 libs: display: egl: free leaked memory
7990 The EGL VAAPI display forgot to release the egl display, context and
7991 proxied VAAPI display.
7992 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7994 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7996 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7997 libs: texture: egl: code style
7998 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8000 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8002 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8003 libs: surface: egl: error message if no extension
8004 Instead of silently fail to export the image if there is not available
8005 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8007 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8009 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8011 * gst/vaapi/gstvaapipluginbase.c:
8012 plugins: direct rendering on memory:VASurface
8013 As buffers negotiated with memory:VASurface caps feature can also be
8014 mapped, they can also be configured to use VA derived images, in other
8015 words "direct rendering".
8016 Also, because of the changes in dmabuf allocator as default allocator,
8017 the code for configuring the direct rendering was not clear.
8018 This patch cleans up the code and enables direct rendering when the
8019 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8020 even then the memory:VASurface cap feature is negotiated.
8021 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8023 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8025 * gst/vaapi/gstvaapipluginbase.c:
8026 * gst/vaapi/gstvaapipluginutil.c:
8027 plugins: only dmabuf on srcpad if downstream
8028 Set if source pad can handle dmabuf only if the GstGL context comes
8030 It is possible to know that at two moments:
8031 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8032 downstream pool reports back gst.gl.GstGLContext.
8033 2\ When GstGLContext is found as GstContext from dowstream.
8034 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8036 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8038 * gst/vaapi/gstvaapivideocontext.c:
8039 vaapivideocontext: add inline documentation
8040 Document function gst_vaapi_find_gl_local_context().
8041 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8043 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8045 * gst/vaapi/gstvaapipluginutil.c:
8046 * gst/vaapi/gstvaapivideocontext.c:
8047 * gst/vaapi/gstvaapivideocontext.h:
8048 vaapivideocontext: return the direction of gl context
8049 In function gst_vaapi_find_gl_context() add a direction parameter to
8050 return back the direction where the GstGL context was found.
8051 This is going to be useful when checking if downstream can import
8052 dmabuf-based buffers.
8053 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8055 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8057 * gst/vaapi/gstvaapipluginbase.c:
8058 * gst/vaapi/gstvaapipluginbase.h:
8059 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8060 This patch refactors the code by adding the function
8061 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8062 GstGLContext can handle dmabuf-based buffers.
8063 The function is exposed publicly since it is intended to be used later
8064 at GstVaapiDisplay instantiation.
8065 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8067 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8069 * gst/vaapi/gstvaapiencode.c:
8070 vaapiencode: allow to set property on runtime
8071 Tis patch, allows some properties that we want to be set on
8072 runtime. (eg. bitrate)
8073 Note that all properties are under control by num_codedbuf_queued.
8074 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8076 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8078 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8079 libs: encoder: allow to set bitrate on runtime
8080 In case of streaming, controlling bitrate dynamically for encoder might be
8081 important to manage quality of the streaming.
8082 This patch is to support such a scenario.
8083 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8085 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8087 * gst/vaapi/gstvaapi.c:
8088 * gst/vaapi/gstvaapi.h:
8089 * gst/vaapi/gstvaapidecodebin.c:
8090 vaapidecodebin: Register element if no VPP support is available too
8091 VPP support is only needed for advanced deinterlacing, which is not
8092 enabled by default either. Error out if it is selected but VPP is not
8093 supported, and otherwise just work without VPP support.
8094 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8096 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8098 * gst/vaapi/gstvaapipluginutil.c:
8099 Avoid infinite loop when vaapi_create_display fails
8100 Which might be the case when using, for example, xvfb.
8102 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8104 * gst-libs/gst/vaapi/gstvaapiutils.c:
8105 libs: utils: log warn if display fail
8106 gstreamer-vaapi initializes the display by trial-and-error, thus
8107 logging an error message if the display initialisation fails the user
8108 may be weary of the error message in the screen, if using VA-API 1.0
8109 This commit set the VA error log handler to GStreamer warning level
8110 while calling vaInitialize() and set it to error after that.
8111 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8113 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8115 * gst/vaapi/gstvaapipluginutil.c:
8116 plugins: try to create test display in order
8117 When creating the test display for querying capabilites, it try in
8118 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8119 since they are either composited with X11 or Wayland.
8120 The reason for this is to reduce the posibility of failure that could
8121 blacklist the plugin.
8122 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8124 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8126 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8127 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8128 libs: display: delay getting screen resolution
8129 Instead of extracting the screen resolution at GstVaapiDisplay
8130 creation, this patch delay it until the screen size is requested for
8132 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8134 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8136 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8137 libs: display: egl: avoid two vaDisplay instantiates
8138 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8139 or Wayland. Nonetheless it created another vaDisplay for it, instead
8140 of using the wrapped one.
8141 This patch enables the reuse of the wrapped vaDisplay avoiding
8143 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8145 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8147 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8148 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8149 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8150 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8151 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8152 libs: display: remove display_type from display info
8153 Since it's no required to pass the display type in the display info,
8154 the structure member is removed.
8155 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8157 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8159 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8160 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8161 libs: display: remove display_type member
8162 It is not used any more since GstVaapiDisplay was ported as a
8163 GstObject-based. This information is part of the class information.
8164 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8166 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8168 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8169 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8170 libs: display: remove parent member
8171 Parent was a crumb left from display cache.
8172 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8174 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8176 * gst/vaapi/gstvaapi.c:
8177 vaapi: Also register vaapipostproc without VPP support
8178 It can still do simple deinterlacing then.
8180 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8182 * gst/vaapi/gstvaapipostproc.c:
8183 vaapipostproc: Allow running without VPP support
8184 We returned FALSE from ::start() if VPP support is not available, but it
8185 is only really needed for complex filters and during transform we check
8186 for that. For simple deinterlacing it is not needed.
8188 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8190 * gst/vaapi/gstvaapipostproc.c:
8191 vaapipostproc: use scoped variable for return value
8192 Instead of reusing a parameter variable for the return value of
8193 gst_vaapipostproc_transform_caps(), this patch uses the function
8194 scoped pointer. Thus, the code is cleaner.
8195 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8197 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8199 * gst/vaapi/gstvaapipostproc.c:
8200 vaapipostproc: removed unused parameter
8201 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8202 helper function since the it is not used.
8203 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8205 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8207 * gst/vaapi/gstvaapipostproc.c:
8208 vaapipostproc: use scoped variable for return value
8209 Instead of reusing a parameter variable for the return value of
8210 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8211 pointer. Thus, the code is cleaner.
8212 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8214 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8216 * gst/vaapi/gstvaapipluginutil.h:
8217 plugins: memory:DMABuf only handles planar formats
8218 When glimagesink negotiates the caps feature memory:DMABuf the
8219 exported dmabufs buffers with NV12 format are not well rendered, thus
8220 setting only planar.
8221 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8223 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8225 * gst/vaapi/gstvaapiencode.c:
8226 vaapiencode: flush pending frames before set format
8227 Flush pending frames, if any, in the internal encorder, before setting
8228 the new negotiated format.
8229 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8231 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8233 * gst/vaapi/gstvaapidecode.c:
8234 vaapidecode: drain pending frames before set format
8235 Drain pending frames, if any, in the internal decoder before setting
8236 the new negotiated format.
8237 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8239 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8241 * tests/test-display.c:
8242 tests: display: use GObject getter
8243 Instead of using the gst_vaapi_display_get_property(), this patch
8244 replaces it with g_object_get_property() to dump the available VA
8246 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8248 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8250 * gst/vaapi/gstvaapisink.c:
8251 vaapisink: use GObject setter and getter
8252 Instead of using gst_vaapi_display_set_property() or
8253 gst_vaapi_display_get_property(), this patch set replace it usage
8254 with g_object_set() or g_object_get().
8255 Also the internal helper cb_set_value() is removed since it is not
8257 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8259 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8261 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8262 libs: display: initialize value if they are not yet
8263 This is a difference between the GObject API and the GstVaapi one: the
8264 GValue passed to get a property value, in GObject has to be
8265 initialized with g_value_init(), but in GstVaapi is has not.
8266 In order to overcome this mismatch, this patch call g_value_init()
8267 internally only in the passed one is not already initialized.
8268 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8270 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8272 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8273 libs: display: optimize properties setters and getters
8274 Shuffled some code to avoid to find the properties descriptor in the
8275 array twice, adding the internal functions _set_property() and
8277 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8279 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8281 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8282 libs: display: install properties in class
8283 Install the properties in the class as a normal GObject. Implement
8284 set_property() and get_property() vmethods.
8285 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8287 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8289 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8290 libs: display: remove gst_vaapi_display_properties_init()
8291 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8292 gst_vaapi_display_class_init()
8293 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8295 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8297 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8298 libs: display: remove libgstvaapi_init_once()
8299 It is not required since it can be unrolled in
8300 gst_vaapi_display_class_init()
8301 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8303 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8305 * tests/test-display.c:
8306 tests: test-display: remove display cache tests
8307 Since commit ec3e10f6, display cache was removed. This patch removes
8308 this leftovers in the display test.
8310 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8312 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8313 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8314 libs: decoder: h264/h265: decode codec data only if opened
8315 Fixes regression introduced by commit 2eb2b26a.
8316 There is a use case when the decoder set the src caps and immediatly
8317 tries to process the media codec_data, this happens before decoder is
8318 even opened, thus priv->parser is not instantiated yet.
8319 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8321 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8323 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8324 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8325 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8326 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8327 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8328 libs: encoder: change mbbrc from uint to enum
8329 Instead of handling the macroblock bitrate control as a integer, this
8330 patch changes it as a enum, which is more self documented in the
8332 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8334 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8336 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8337 Fix a typo in the prop string for compliance-mode
8339 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8341 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8342 libs: encoder: don't unref properties
8343 This patch fixes a regression introduced in commit 148f867c, since the
8344 props variable is set to object's member variable
8345 encoder->properties. And it is set in the instance initialization,
8346 thus it will not be leaked.
8347 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8349 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8351 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8352 * gst/vaapi/gstvaapiencode.c:
8353 vaapiencode/libs: encoder: fix leaks of properties
8354 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8356 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8358 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8359 libs: decoder: at update_caps() decode codec_data
8360 When updating the caps in decoder, if the caps has codec_data (avC
8361 format), it has to be parsed to update the state of the decoder.
8362 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8364 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8366 * gst-libs/gst/vaapi/gstvaapicontext.c:
8367 libs: context: fix wrong counter of the array of attributes
8368 The counter value passed to vaCreateConfig is always +1.
8369 This is a regression caused by commit e42ec3ad.
8370 The present patch fixes wrong counting of the array of attributes.
8371 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8373 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8375 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8376 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8377 libs: encoder: h265: support I/P/B QP setting seperatedly
8378 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8380 and set slice_qp_delta for each frame according to the value provided.
8381 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8383 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8385 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8386 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8387 libs: encoder: h264: support I/P/B QP setting seperatedly
8388 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8390 and set slice_qp_delta for each frame according to the value provided.
8391 In addition, remove the limitation of (<= 4) when setting
8393 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8395 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8397 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8398 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8399 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8400 Creates new variable for QP for I frame and keep it at configuration and
8401 use this for pic_init_qp and slice_qp_delta setting.
8402 Since changing min qp doesn't make sense, keep min qp as is.
8403 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8405 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8407 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8408 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8409 libs: encoder: h265: Add mbbrc property
8410 This property supports Macroblock level Bitrate Control as the
8411 following (same as h264 encoder):
8415 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8417 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8419 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8420 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8421 libs: encoder: h264: Add mbbrc property
8422 This property supports Macroblock level Bitrate Control as the
8427 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8429 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8431 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8432 libs: encoder: h265: add multi reference support
8433 This is doing the same as h264 encoder as the following:
8434 Using num_ref_frames provided and the result of the Query
8435 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8436 and perform encoding with multi reference frames as the following:
8437 1\ The num_ref_frames is being considered as the number of
8438 reference picture list0
8439 2\ Encoder adds 1 reference frame more to the reference picture list1
8440 internally if b-frame encoding.
8441 3\ If num_ref_frames is bigger than the number of refrence frames
8442 supported in the driver, it will be lowered.
8443 Also this patch includes:
8444 - Set num_negative_pics and num_positive_pics according to the number of
8446 - Set delta_poc according to the number of refs.
8447 - Increase max_dec_pic_buffering according to the number of refs
8448 - Change max_num_reorder_pics according to num of bframes
8449 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8451 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8453 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8454 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8455 libs: encoder: h265: add refs property
8456 Users can provide the number of reference frame by this property,
8457 which is exaclty same as h264.
8458 The value of the property will be considered as the number of
8459 reference picture list0 and will add 1 reference frame more to the
8460 reference picture list1 internally if b-frame encoding.
8461 If the value provided is bigger than the number of refrence frames
8462 supported in the driver, it will be lowered.
8463 The maximum value is aligned to the value of the driver supported now.
8464 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8466 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8468 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8469 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8470 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8471 Follows the specification as below:
8472 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8473 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8474 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8475 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8477 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8478 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8480 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8482 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8484 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8485 libs: encoder: h265: keep idr_period equal to keyframe period
8486 Remove FIXME code, which makes previous assignation spurious.
8487 This also means to make idr_period equal to keyframe period,
8488 which is same as h264 encoder.
8489 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8491 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8493 * gst/vaapi/gstvaapipluginbase.c:
8494 Request minimum buffer even if need_pool is FALSE
8495 When tee is used, it will not request a pool, but still it wants to
8496 know how many buffers are required.
8497 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8499 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8501 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8502 libs: encoder: h264_fei: VA-API 1.0 compat
8503 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8505 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8506 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8508 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8510 * gst/vaapi/gstvaapisink.c:
8511 vaapisink: Fix rendering in drm display
8512 Make sure vaapisink create a va surface backed buffer pool and all
8513 required attributes get assigned correctly for drm display type.
8514 This is needed to make the below pipeline working:
8515 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8516 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8517 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8519 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8521 * tests/Makefile.am:
8522 * tests/test-fei-enc-in.c:
8523 * tests/test-fei-enc-out.c:
8524 FEI: Add test applications to showcase fei use case
8525 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8527 ./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
8528 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8530 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8531 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8532 from saved files is still not working
8534 Wang, Yi <yi.a.wang@intel.com>
8535 Leilei <leilei.shang@intel.com>
8536 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8537 xiaominc <xiaomin.chen@intel.com>
8538 Li, Jing B <jing.b.li@intel.com>
8539 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8540 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8542 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8544 * gst/vaapi/Makefile.am:
8545 * gst/vaapi/gstvaapi.c:
8546 * gst/vaapi/gstvaapiencode_h264_fei.c:
8547 * gst/vaapi/gstvaapiencode_h264_fei.h:
8548 FEI: plugin: Add vaapih264feienc element
8549 A new FEI based encoder element for h264 is added: vaapih264feienc
8550 FEI is a an extension to VA-API which is providing low level
8551 advanced control over different stages of encoding.
8552 Extending vaapih264enc with fei support is possible, but it will
8553 make the code too much complicated and will be difficult
8554 to debug. So adding the new encoder element, but keeping
8555 the rank as 0 , vaapih264enc will stay as the primary
8556 encoder for normal use cases.
8557 The vaaih264feienc is mainly useful for customers who want to play
8558 with MotionVectors and Macroblock Predictions. Also user can
8559 do one stage of encoding(eg: only the Motion Vector Calculation)
8560 in software and offload trasformation/entroy-coding etc to
8561 Hardware (which is what PAK module is doing) using FEI element.
8562 vaapih264feienc can work in different modes using fei-mode properoty
8563 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8564 Important Note: ENC only mode won't produce any encoded data which is expected.
8565 But ENC alwys requires the output of PAK in order to do the inter-prediction
8566 over reconstructed frames.
8567 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8568 upstream element providing those buffers, PAK only won't work as expected.
8569 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8570 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8571 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8572 separately in vaapih264feienc.
8574 Wang, Yi <yi.a.wang@intel.com>
8575 Leilei <leilei.shang@intel.com>
8576 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8577 xiaominc <xiaomin.chen@intel.com>
8578 Li, Jing B <jing.b.li@intel.com>
8579 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8580 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8581 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8583 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
8585 * gst/vaapi/gstvaapiencode.c:
8586 * gst/vaapi/gstvaapiencode.h:
8587 FEI: plugin: Add virtual methods to base encode
8588 Two new virtual methods are added to gstvaapiencode.
8589 load_control_data(): load the FEI input buffers set by the upstream elements
8590 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8591 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8592 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8593 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8595 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
8597 * gst/vaapi/Makefile.am:
8598 * gst/vaapi/gstvaapifeivideometa.c:
8599 * gst/vaapi/gstvaapifeivideometa.h:
8600 FEI: plugin: Add fei specific video meta
8601 GstVaapiFeiVideoMeta holds the below fei codec objects:
8602 GstVaapiEncFeiMbCode
8604 GstVaapiEncFeiMvPredictor
8605 GstVaapiEncFeiMbControl
8607 GstVaapiEncFeiDistortion
8608 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8609 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8610 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8612 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8614 * gst-libs/gst/vaapi/Makefile.am:
8615 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8616 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8617 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8618 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8619 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8620 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8621 FEI: libs: Add FEI encoder
8622 Adding FEI encoder to core lib.
8623 The code is splitted into three session:
8624 1: gstvaapiencoder_h264_fei.{h,c}
8625 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8626 All the modes ENC, PAK and ENC_PAK are running based
8627 the code in these files.
8628 2: gstvaapifeienc_h264.{h,c}
8629 Abstract implementation intended for ENC (only VME) operation.
8630 3: gstvaapifeipak_h264.{h,c}
8631 Abstrct implementation intended for PAK (only the PAK module)
8632 Right now ENC_PAK, ENC and PAK are running based on code
8633 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8634 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8635 needed if user request for ENC+PAK mode operation.
8636 ENC+PAK: Here we need to invoke two sequence of
8637 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8638 first for the ENC only and the second for PAK only.
8639 Each mode associated with separate context ,but same pool of surfaces are
8640 shared between the modes.
8641 This is more useful once we have custom BRC algorithms.
8643 Wang, Yi <yi.a.wang@intel.com>
8644 Leilei <leilei.shang@intel.com>
8645 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8646 xiaominc <xiaomin.chen@intel.com>
8647 Li, Jing B <jing.b.li@intel.com>
8648 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8649 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8651 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8653 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8654 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8655 FEI: libs: Add fei codec objects to GstVaapiEncPicture
8656 All the codec objects(vaapi buffers) supposed to be
8657 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8658 for each frame, follow the same design for FEI too.
8659 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8660 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8662 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8664 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8665 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8666 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8667 FEI: libs: Add fei codec objects in codedbufferproxy
8668 MbCode, MV and Distortion buffers (fei codec objects)
8669 can be treated as output of different fei modes based user request.
8670 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8671 can be dumped as output in ENC_PAK mode for analysis purpose.
8672 So treating them as a part of CodedBufferProxy too.
8673 Here we avoided Qp, MbControl and MvPredictor codec objects since
8674 there is no practical use case of treating them as "output buffers".
8676 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8677 xiaominc <xiaomin.chen@intel.com>
8678 Leilei <leilei.shang@intel.com>
8679 Li, Jing B <jing.b.li@intel.com>
8680 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8681 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8683 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8685 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8686 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8687 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8688 FEI: libs: Add fei codec objects to surface proxy
8689 Add fei codec objects to surface proxy since handling the
8690 fei buffers(codec objects here) external to gstvaapisurfaceproxy
8691 will make the code complicated. Especially considering the behavior
8692 of encoder where the input frame order from upstream and output
8693 frame order to the downstream are not sequential.
8695 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8696 xiaominc <xiaomin.chen@intel.com>
8697 Leilei <leilei.shang@intel.com>
8698 Li, Jing B <jing.b.li@intel.com>
8699 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8700 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8702 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8704 * gst-libs/gst/vaapi/Makefile.am:
8705 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8706 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8707 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8708 FEI: Add codec objects for fei usecase
8709 There are 6 new va buffer types, each defined as a specific codec object.
8710 Borrowed the code from gstvaapicodecobject , but made a clear separation
8711 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8712 feicodecobjects can be shared between elements and also can be accessed
8713 from different thread.
8714 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8715 object is not shared between elements.So we utilize the already
8716 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8717 in gstvaapfei_objects_priv.h in order to have a better
8720 -- Probably we need _locked_map() and _unlocked_map()
8721 -- Context can be associated with PreEnc(not just Enoder)
8722 once we have the proper support inplace, but for now we don't have
8723 PreEnc support, so should be safe enough to use GstVaapiEncoder.
8724 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8725 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8727 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8729 * gst-libs/gst/vaapi/Makefile.am:
8730 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8731 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8732 FEI: libs: add H264 fei specific utility functions
8733 Added enum/flag type definitions for a number of FEI
8734 input and output parameters.
8735 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8736 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8737 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8738 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8739 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8741 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8743 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8744 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8745 FEI: libs: Add virtual method for secondary context creation.
8746 Add a new vitrual method ensure_secondary_context to the
8747 base encoder which is only required for the FEI entrypoint, that too
8748 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8749 supported directly by libva or driver, but this can be enabled
8750 from the middleware.
8751 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8752 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8753 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8754 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8755 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8756 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8758 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8760 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8761 FEI: libs: make sure the default context creation works as expected.
8762 Current code always guess the entrypoint during init phase in case
8763 if there is no entrypoint already configured in GstVaapiContextInfo.
8764 Make sure FEI Entrypoint is not messing up with this logic.
8765 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8766 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8768 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8770 * gst-libs/gst/vaapi/gstvaapicontext.c:
8771 * gst-libs/gst/vaapi/gstvaapicontext.h:
8772 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8773 FEI: libs: Add FEI functional mode configuration
8774 FEI Entrypoint can work in either one of the 3 different modes:
8775 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8776 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8777 functioal mode configuration.
8778 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8779 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8781 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8783 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8784 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8785 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8786 FEI: libs: Add FEI Entrypoint mapping
8787 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8788 for VAEntrypointFEI.
8789 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8790 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8792 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8795 FEI: Add support for FEI conditional build
8796 FEI(Flexible Encoding Infrastructure) is an extension
8797 to VA API. Define USE_H264_FEI_ENCODER based on
8798 fei header file and required structures availability.
8799 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8800 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8802 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
8804 * gst/vaapi/gstvaapidecode.c:
8805 vaapidecode: force add h264 SVC profiles in caps
8806 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8808 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8809 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8811 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
8813 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8814 libs: decoder: h264: decode SVC base layer only
8815 Drops non-base NALs when the base-only property is set to TRUE.
8816 This modifies the behavior for MVC streams with base-only too: All the
8817 non-base units are dropped before they are decoded instead of dropping
8818 the non-base frames.
8819 The relevant part from the H264 spec is:
8820 > Decoders that conform to one or more of the profiles specified in
8821 Annex A rather than the profiles specified in Annexes G or H shall
8822 ignore (remove from the bitstream and discard) the contents of all NAL
8823 units with nal_unit_type equal to 14, 15, or 20.
8824 To eliminate side effects from the offending units:
8825 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8827 - The NAL parsing is skipped and their flags are set to
8828 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8829 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8830 use them even if they are flagged to be skipped. Subset SPS's and slice
8831 extension units are not stored there either.
8832 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8833 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8835 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
8837 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8838 libs: decoder: h264: check nalu validity in parser info finalize
8839 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8840 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8842 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8844 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8845 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8846 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8847 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8848 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8849 libs: encoder: remove unused cast macro
8850 Remove internal macro to cast structure that are already declared
8853 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8855 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8856 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8857 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8858 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8859 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8860 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8861 Revert "libs: encoders: remove unused cast macros"
8862 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
8864 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8866 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8867 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8868 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8869 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8870 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8871 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8872 libs: encoders: remove unused cast macros
8873 They are only used inside the code, where another macro is defined.
8874 Thus these exported macros have no use.
8876 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8878 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8879 libs: decoder: h264: improve code-style
8880 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8882 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8884 * gst-libs/gst/vaapi/gstvaapicompat.h:
8885 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8886 libs: encoder: h264: handle deprecated enum
8887 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
8888 instead VAEncPackedHeaderRawData should be used.
8889 This patch creates a compatibility symbol,
8890 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
8892 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8894 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8896 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8897 * gst-libs/gst/vaapi/gstvaapiutils.c:
8898 libs: guard deprecated symbols
8899 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
8900 guards the H.264 baseline usage. Consider this commit as a
8901 continuation of commit e0e0a474
8902 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8904 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8908 * meson_options.txt:
8909 Revert "build: check for libva-2.0"
8910 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
8911 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8913 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8915 * gst-libs/gst/vaapi/gstvaapicompat.h:
8916 * gst-libs/gst/vaapi/gstvaapicontext.c:
8917 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8918 libs: macro to get a renamed value in VA-API 1.0
8919 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
8920 renamed one member from roi_value_is_qp_delat to
8921 roi_value_is_qp_delta, which is the correct name.
8922 In order to keep back compatibility a macro has added to access this
8924 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8926 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8928 * gst/vaapi/gstvaapipluginbase.h:
8929 * gst/vaapi/gstvaapipluginutil.c:
8930 plugins: include main gstgl header
8931 Instead including particular gstgl header files in a header file
8932 that doesn't export a gstgl symbol, the main gstgl header file is
8933 included in gstvaapipluginutil.c where the symbols are used.
8934 https://bugzilla.gnome.org/show_bug.cgi?id=786597
8936 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8938 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8939 libs: encoder: h264: fix enum namespace
8941 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
8944 Automatic update of common submodule
8945 From 48a5d85 to 3f4aa96
8947 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8949 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8950 libs: encoder: h264: remove spurious assignation
8952 An assigned value that is never used may represent unnecessary
8953 computation, an incorrect algorithm, or possibly the need for cleanup
8955 ip_period is assigned first to be rewritter inmediatly after. The
8956 first assignation is spurious.
8958 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
8960 * gst/vaapi/gstvaapidecode.c:
8961 vaapidecode: fix mismatch of the return type
8962 https://bugzilla.gnome.org/show_bug.cgi?id=786307
8964 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8966 * gst-libs/gst/vaapi/Makefile.am:
8967 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
8968 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
8969 * gst-libs/gst/vaapi/gstvaapiutils.h:
8970 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8971 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
8972 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8973 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
8974 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
8975 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
8976 * gst-libs/gst/vaapi/meson.build:
8977 libs: remove unused header
8978 Since libgstvaapi is not distributed, there is no need to check for
8979 private header inclusion. Thus removing it.
8980 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8982 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8984 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
8985 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
8986 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
8987 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8988 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
8989 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
8990 libs: utils: move gstvaapisurface.h to private headers
8991 Since the utils don't expose API defined in gstvaapisource.h, it is
8992 moved to their private headers where they are used.
8993 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8995 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8997 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
8998 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
8999 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9000 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9001 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9002 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9003 libs: utils: remove va.h include in header
9004 And include gstvaapicompat.h in the C files, since the VA-API is not
9005 exposed in the headers.
9006 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9008 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9010 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9011 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9012 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9013 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9014 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9015 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9016 libs: encoder: remove va.h include
9017 Since it is already managed by gstvaapicompat.h
9018 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9020 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9022 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9023 * gst-libs/gst/vaapi/gstvaapicompat.h:
9024 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9025 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9026 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9027 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9028 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9029 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9030 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9031 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9032 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9033 * gst-libs/gst/vaapi/gstvaapifilter.c:
9034 * gst-libs/gst/vaapi/gstvaapiutils.c:
9036 build: consolidate the VA sub API includes
9037 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9038 since they are all already included in va.h after VA-API 0.38.
9039 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9041 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9045 build: check for va_vpp.h
9046 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9047 allow us to handle the inclusion of the header better.
9048 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9050 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9053 meson: don't export symbols by default
9054 Only plugin entry points should be exported.
9056 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9058 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9059 libs: decoder: h265: remove spurious code
9061 Logically dead code: The indicated dead code may have performed some
9062 action; that action will never occur.
9063 By using pointer arithmetic is impossible to get NULL.
9065 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9067 * gst-libs/gst/vaapi/gstvaapicontext.c:
9068 libs: context: use attribs index instead pointers
9070 Out-of-bounds write. This could cause an immediate crash or incorrect
9072 Coverity basically found that it is possible to assign more than 4
9073 attribs in the array.
9074 In my opinion this was produced because code pattern used pointer
9075 arithmetic, which is not readable nor maintainable.
9076 This patch refactors config_create() to use an array index rather than
9077 pointer arithmetic. Also a run-time check for index size was added.
9079 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9081 * gst/vaapi/gstvaapiencode_h264.c:
9082 vaapiencode: h264: remove spurious code
9084 An unsigned value can never be negative, so this test will always
9085 evaluate the same way.
9086 As len is guint32, there is no need to check it if it is equal or
9089 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9091 * gst/vaapi/gstvaapidecode.c:
9092 vaapidecode: initialize variable
9094 The variable will contain an arbitrary value left from earlier
9096 Variable base_only is fetched from base-only property, and it may be
9097 not assigned. It needs to be initialized.
9099 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9101 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9102 libs: windows: wayland: fail if cannot remove last frame
9104 If the function returns an error value, the error value may be
9105 mistaken for a normal value.
9106 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9107 not the last one, the function fails. Thus, logging an info message.
9109 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9111 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9112 libs: utils: glx: check return value
9114 If the function returns an error value, the error value may be
9115 mistaken for a normal value.
9116 Function sscanf returns the number of assignations done. Validate this
9117 return value with the number of expected variables to match.
9119 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9121 * gst-libs/gst/vaapi/gstvaapiobject.c:
9122 libs: vaapi: object: remove unrequired NULL check
9124 Dereference after null check: Either the check against null is
9125 unnecessary, or there may be a null pointer dereference.
9126 Variable klass has been validated as non-NULL several time before in
9127 gst_vaapi_object_new() function, so there is no need to check it
9130 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9132 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9133 libs: encoder: h265: remove spurious assignation
9135 An assigned value that is never used may represent unnecessary
9136 computation, an incorrect algorithm, or possibly the need for cleanup
9138 ip_period is assigned first to be rewritter inmediatly after. The
9139 first assignation is spurious.
9141 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9143 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9144 libs: encoder: h264: fix copy & paste error
9146 The copied code will not have its intended effect.
9147 This is a bug from commit cdaf15b2, where the intention is to
9148 initialize RefPicList1 while setting RefPicList0.
9150 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9152 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9153 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9154 libs: encoder: h265: fix possible integer overflow
9156 Unintentional integer overflow. The expression's value may not be what
9157 the programmer intended, because the expression is evaluated using a
9158 narrow (i.e. few bits) integer type.
9159 Cast operator to guint64 before computation to avoid narrowing.
9162 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9164 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9165 libs: decoder: mpeg4: fail if return value is not OK
9167 An assigned value that is never used may represent unnecessary
9168 computation, an incorrect algorithm, or possibly the need for cleanup
9170 In the return value of decode_slice() or
9171 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9172 decode_packet() function.
9174 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9176 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9177 libs: decoder: h265: check for null
9179 Dereference after null check: Either the check against null is
9180 unnecessary, or there may be a null pointer dereference.
9181 While looking for hte lowest poc, according to rest of the code, the
9182 picture in the dbp (decoded picture buffer) might be NULL, thus we
9183 could check for a NULL picture before assigned as found.
9184 Also, split a comma operator because it is considered as a bad
9185 practice because it possible side effects.
9187 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9189 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9190 libs: decoder: h265: untaint loop control variable
9192 Scalars (for example, integers) are not properly
9193 bounds-checked (sanitized) before being used as array or pointer
9194 indexes, loop boundaries, or function arguments are considered as
9196 In this case, num_nals were not checked before used as loop control.
9198 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9200 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9201 libs: decoder: h264: remove unrequired NULL check
9203 Dereference after null check: Either the check against null is
9204 unnecessary, or there may be a null pointer dereference.
9205 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9206 prev_picture could be NULL, that's why the code did a null check. But,
9207 since commit 52adebe7, the previous reference frames are tracked, thus
9208 there is no need to check null anymore.
9210 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9212 * gst/vaapi/gstvaapidecode.c:
9213 vaapidecode: fix gst_caps_new_simple call
9214 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9216 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9218 * gst/vaapi/gstvaapidecode.c:
9219 vaapidecode: force add h264 MVC profiles in caps
9220 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9222 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9224 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9226 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9227 libs: decoder: h264: decode MVC base view only
9228 If processed SPS has mvc profile and the configuration is set to
9229 base-only, the frame is drop.
9230 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9232 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9234 * gst/vaapi/gstvaapidecode.c:
9235 * gst/vaapi/gstvaapidecode_props.c:
9236 vaapidecode: set h264 base-only to decoder
9237 Set the base-only value when property is set and the internal
9238 decoder is already instantiated or when the internal decoder
9240 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9242 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9244 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9245 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9246 libs: decoder: h264: add setter for base-only mode
9247 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9249 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9251 * gst/vaapi/gstvaapidecode_props.c:
9252 * gst/vaapi/gstvaapidecode_props.h:
9253 vaapidecode_props: h264: add base-only property
9254 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9256 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9258 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9259 libs: encoder: h264: missing property enum documentation
9261 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9263 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9264 libs: encoder: h264: add multi reference support
9265 Using num_ref_frames provided and the result of the Query
9266 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9267 and perform encoding with multi reference frames as the following:
9268 1\ The num_ref_frames is being considered as the number of
9269 reference picture list0
9270 2\ Encoder adds 1 reference frame more to the reference picture list1
9271 internally if b-frame encoding.
9272 3\ If num_ref_frames is bigger than the number of refrence frames
9273 supported in the driver, it will be lowered.
9274 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9276 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9278 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9279 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9280 libs: encoder: h264: add refs property
9281 Users can provide the number of reference frame by this property.
9282 The value of the property will be considered as the number of
9283 reference picture list0 and will add 1 reference frame more to the
9284 reference picture list1 internally if b-frame encoding.
9285 If the value provided is bigger than the number of refrence frames
9286 supported in the driver, it will be lowered.
9287 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9289 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9291 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9292 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9293 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9294 This function will query VAConfigAttribEncMaxRefFrames to get the
9295 maximum number of reference frames supported in the driver.
9296 This will be used for h264/h265 encoding.
9297 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9299 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9301 * gst/vaapi/gstvaapiencode_h265.c:
9302 vaapiencode: h265: compare an unsigned int if not zero
9303 An unsigned value can never be negative, so this test (greater than
9304 zero) will always evaluate the same way. Thus change it to just if
9307 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9309 * gst/vaapi/gstvaapipluginbase.c:
9310 plugins: check gst_gl_ensure_element_data() return value
9311 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9312 the return value of gst_gl_ensure_element_data(). The result is a code
9315 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9317 * gst/vaapi/gstvaapipluginutil.c:
9318 plugins: avoid dead code detection
9319 By using #elif macro, the static code analysis would stop to detect
9320 these lines as dead code. Also it is inforced the mutually exclusive
9323 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9325 * gst/vaapi/gstvaapivideobufferpool.c:
9326 vaapivideobufferpool: don't shift by negative since it's undefined
9327 The function g_bit_nth_lsf() may return -1 if the request bit position
9328 is not avaible. Thus, this patch check if the return value is not -1
9329 in order to continue.
9331 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9333 * gst/vaapi/gstvaapisink.c:
9334 vaapisink: fix memory leak
9336 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9338 * gst/vaapi/gstvaapipostprocutil.c:
9339 vaapipostproc: fix memory leaks
9341 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9343 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9344 libs: display: when appending formats change pointers to indexes
9345 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9347 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9349 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9351 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9352 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9353 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9354 Added a new property "compliance-mode", which default is the normal
9355 strict compliant mode.
9356 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9357 allocation size to improve performance in some specific Intel
9358 platforms (there is asignificant performance improvement in parallel
9359 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9360 pre-calculating the coded-buffer size.
9361 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9363 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9365 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9366 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9367 libs: utils_h264: Extend LevelLimit table with MinCR field
9368 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9370 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9372 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9374 * gst-libs/gst/vaapi/gstvaapiutils.c:
9375 libs: utils: libva 1.0 changed the logging
9376 The logging mechanism in libva has changed it's functions
9377 signatures. This patch updates that for libva versions >= 1.0
9378 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9380 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9382 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9383 libs: decoder: h264: libva 1.0 deprecated baseline
9384 libva 1.0 deprecated H.264 baseline profile and FMO support
9386 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9388 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9392 * meson_options.txt:
9393 build: check for libva-2.0
9394 Check for libva-2.0 since libva's developers decided to increase the
9395 library's version number.
9396 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9398 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9402 build: blacklist only libva 0.99.0
9403 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9404 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9406 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9408 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9410 * gst-libs/gst/vaapi/meson.build:
9411 build: meson: remove gstvaapidisplaycache.c
9412 This is a missing bit of commit ec3e10f6
9414 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9417 configure: do not break configure if gtk+-3.0 devel missing
9418 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9419 set USE_GTK=0 if gtk+-3.0 is not available.
9420 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9421 Author: Hyunjun Ko <zzoon@igalia.com>
9422 Date: Wed Jul 5 15:59:43 2017 +0900
9423 tests: elements: add testsuite of vaapi context
9424 ...configure fails if gtk+-3.0 development files are missing.
9425 The "with_gtk" option defaults to "check" in configure.ac
9426 which implies that if it is not explicitly requested then
9427 configure will only enable it if it's available on the system.
9428 However, the PKG_CHECK_MODULES rule that get's activated on
9429 "check" condition did not provide default when gtk+-3.0 devel
9430 packages are not found on the system. Thus, it resulted in
9432 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9433 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9435 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9438 * tests/elements/Makefile.am:
9439 * tests/elements/test-vaapicontext.c:
9440 tests: elements: add testsuite of vaapi context
9441 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9442 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9444 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9446 * gst/vaapi/gstvaapisink.c:
9447 vaapisink: fail if surface display is different
9448 Replacing GstVaapiDisplay during rendering might be hiding problems
9449 at some cases, even though it's safe currently since we use cache
9451 Play safe by failing if this happens.
9452 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9454 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9456 * gst/vaapi/gstvaapivideocontext.c:
9457 * gst/vaapi/gstvaapivideocontext.h:
9458 videocontext: support "gst.vaapi.app.Display" context
9459 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9460 and native display of their backend.
9462 - display : pointer of VADisplay
9463 - x11-display : pointer of X11 display (Display *), if they're using.
9464 This patch creates GstVaapidisplayX11 if information provided through
9465 "gst.vaapi.app.Display"
9466 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9468 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9470 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9471 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9472 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9473 Implements new API function so that users could create GstVaapiDisplay
9474 with their own VADisplay within a native display as backend.
9475 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9477 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9479 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9480 libs: display: pass display info when foreign display
9481 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9482 with that display, it also requires native display of the backend.
9483 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9485 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9487 * gst-libs/gst/vaapi/Makefile.am:
9488 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9489 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9490 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9491 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9492 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9493 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9494 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9495 libs: display: remove cache
9496 Remove a bunch of code that handles the VADisplay cache, since the
9497 context sharing should be doing this correctly.
9498 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9500 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9502 * tests/elements/Makefile.am:
9503 * tests/elements/test-vaapipostproc.c:
9504 tests: elements: add test for vaapipostproc
9505 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9507 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9509 * gst/vaapi/gstvaapipostproc.c:
9510 postproc: reconfigure when width or height changes
9511 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9513 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9515 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9516 libs: encoder: vp9: array terminated in zeros
9517 There is a crash when setting ref-pic-mode since the #GEnumValue
9518 array is not terminated with a structured with all memvers being
9520 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9522 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9524 * gst/vaapi/gstvaapiencode_h264.c:
9525 vaapiencode: h264: add plugin documentation
9526 Comment how the profile is set and other parameters.
9528 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9530 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9531 libs: decoder: h264: push frames as soon as possible
9532 Push frames downstream as soon as possible instead of waiting until
9533 they are ejected from the DPB.
9534 This patch makes the decoder not comply with the H.264 specification,
9535 but it is required for some video cameras.
9536 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9537 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9539 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9541 * gst/vaapi/gstvaapidecode_props.c:
9542 vaapidecode_props: h264: set low-latency in decoder
9543 Set the low-latency property if the H264 decoder is already
9544 instantiated, thus you could change the behavior in run-time.
9545 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9547 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9549 * gst/vaapi/gstvaapidecode.c:
9550 vaapidecode: set h264 low latency to decoder
9551 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9553 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9555 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9556 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9557 libs: decoder: h264: add getter/setter for low latency mode
9558 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9560 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9562 * gst/vaapi/gstvaapidecode_props.c:
9563 * gst/vaapi/gstvaapidecode_props.h:
9564 vaapidecode_props: h264: add low latency property
9565 Adding support for private data.
9566 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9568 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9570 * gst/vaapi/Makefile.am:
9571 * gst/vaapi/gstvaapidecode.c:
9572 * gst/vaapi/gstvaapidecode_props.c:
9573 * gst/vaapi/gstvaapidecode_props.h:
9574 * gst/vaapi/meson.build:
9575 vaapidecode_props: add skeleton for h264 decoder properties
9576 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9578 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9580 * gst/vaapi/gstvaapidecode.c:
9581 vaapidecode: properties callback in decoders map
9582 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9584 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
9587 meson: find python3 via python3 module
9588 https://bugzilla.gnome.org/show_bug.cgi?id=783198
9590 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
9592 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9593 libs: encoder: h264: submit sps in case of IDR picture
9594 If the picture is IDR, also submit a SPS header.
9595 This means when frame number reaches to keyframe-period or an force
9596 key unit event arrives, we insert SPS/PPS again.
9597 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9599 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
9601 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9602 libs: encoder: h264: set the frame as IDR if forced key unit
9603 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9604 the `frame-lost` event in the case of streaming, such as RTP.
9605 In case of this event, it is needed to start new GOP rather than just
9607 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9609 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9611 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9612 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9613 libs: encoder: h264: insert AU delimiter
9614 Insert an AUD as the first NAL of each encoded frame.
9615 Some applications require Access Unit Delimiter for decoding the
9617 The AU delimeter insertion is done only when the aud parameter is
9618 TRUE (by default is disabled). The reason of this it is because this
9619 header is only available from Intel Gen9 and the VA intel driver
9620 should be 1.8 or superior. Otherwise, the output will be corrupted.
9621 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9622 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9624 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9626 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9627 libs: encoder: h264: initialize all elements of view_ids
9628 Currently when num_views is changed by multiview-mode on sink caps, it produces
9629 wrong MVC encoded stream since the array view_ids is not set properly according
9630 to changed num_views.
9631 So this patch initializes all of the array sequentially to handle this case.
9632 Side effect is not going to happen by this patch since this array is being
9633 handled by num_views.
9634 https://bugzilla.gnome.org/show_bug.cgi?id=784321
9636 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
9638 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9639 Revert "encoder: h264: Use high profile by default"
9640 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9641 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9643 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
9645 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9646 libs: encoder: h264: set profile via capsfilter
9647 Until now, the encoder ignored the profile in src caps and chose one
9648 according with the given parameters. But the encoder must honor the
9649 profile specifed in src caps.
9650 This patch do that, and if the encoder needs to choose the profile,
9651 it will do it by following these rules:
9652 1\ If given parameters are not compatible with given profile, the
9653 encoder will bail out with an error.
9654 2\ The encoder will choose the higher profile indicated in the
9656 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9658 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
9660 * gst/vaapi/gstvaapiencode_h264.c:
9661 vaapiencode: h264: set profile to src caps
9662 So far vaapi encoder does not set profile to src caps. This patch makes it
9663 setting profile to src caps, which is determined by itself.
9664 In addition, if encoder chose different profile, which is not negotiated with
9665 downstream, we should set compatible profile to make negotiation working.
9666 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9668 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9670 * gst/vaapi/gstvaapiencode_h264.c:
9671 * gst/vaapi/gstvaapiencode_h264.h:
9672 vaapiencode: h264: verify if requested profile is supported
9673 Check if the requested profile in source caps, is supported by the
9674 VA driver. If it is not, an info log message is send saying that
9675 another (compatible?) profile will be used.
9676 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9678 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9680 * gst/vaapi/gstvaapiencode_h264.c:
9681 vaapiencode: h264: improve set_config() vmethod
9682 First check if downstream requests ANY caps. If so, byte-stream is
9683 used and the profile will be choose by the encoder. If dowstream
9684 requests EMPTY caps, the negotiation will fail.
9685 Lately, byte-stream and profile are looked in the allowed caps.
9686 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9688 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9690 * gst/vaapi/gstvaapiencode_h264.c:
9691 vaapiencode: h264: check for avc in set_config()
9692 The check for avc stream format was done in the vaapi encoder's
9693 vmethod get_caps(), but that is wrong since it has to be check
9694 when encoder set_format().
9695 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9697 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
9699 * gst/vaapi/gstvaapipostprocutil.c:
9700 vaapipostproc: set multivew-mode flags to src caps
9701 vaapipostproc didn't negotiate the proper multiview caps losing
9702 downstream information.
9703 This patch enables the playing of MVC encoded stream by setting
9704 the proper multiview mode/flags and views to src caps, according
9706 https://bugzilla.gnome.org/show_bug.cgi?id=784320
9708 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
9710 * gst/vaapi/gstvaapipostproc.c:
9711 vaapipostproc: add support for DMABuf caps feature
9712 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9713 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9715 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9717 * gst/vaapi/gstvaapidecode.c:
9718 vaapidecode: add support for DMABuf caps feature
9719 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9720 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9722 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9724 * gst/vaapi/gstvaapipluginbase.c:
9725 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9726 Instantiate all dmabuf allocator for src pad buffer pool if the
9727 src caps ask for memory:DMABuf feature.
9728 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9730 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
9732 * gst/vaapi/gstvaapipluginutil.c:
9733 * gst/vaapi/gstvaapipluginutil.h:
9734 vaapipluginutil: add support for DMABuf caps feature
9735 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9736 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9737 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9738 vaapipluginutil: add support for DMABuf caps feature
9740 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9742 * gst/vaapi/gstvaapipluginbase.c:
9743 vaapipluginbase: dmabuf memory map trial for raw caps
9744 Only push dmabuf-based buffers with raw caps if gst_memory_map()
9745 succeeds. Otherwise, use the the vaapi surfaces allocator.
9746 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9747 https://bugzilla.gnome.org/show_bug.cgi?id=774649
9748 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9750 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9752 * gst/vaapi/gstvaapivideomemory.c:
9753 * gst/vaapi/gstvaapivideomemory.h:
9754 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9755 This new method checks the specified allocator can create GstMemory that can
9757 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9759 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9761 * gst/vaapi/gstvaapivideobufferpool.c:
9762 vaapivideobufferpool: fix regression with video metas
9763 There is another regression with 7a206923 when setting the video
9764 info for the video meta, it should be the one from the image's
9765 allocator rather from the allocation caps.
9767 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9768 ! tee ! videoconvert ! videoscale \
9769 ! video/x-raw, width=1920, height=1080 ! xvimagesink
9771 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9773 * gst/vaapi/gstvaapipluginbase.c:
9774 * gst/vaapi/gstvaapivideobufferpool.c:
9775 plugins: update buffer size with the one reported by allocator
9776 There is a regression in 7a206923, since the buffer pool ditches all
9777 the buffers generated by them because the pool config size is
9778 different of the buffer's size.
9780 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9781 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
9782 --gst-debug=GST_PERFORMANCE:5
9783 The allocator may update the buffer size according to the VA surface
9784 properties. In order to do this, the video info is modified when the
9785 allocator is created, which reports through the allocation info the
9786 updated size, and set it to the pool config.
9788 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
9790 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9791 libs: decoder: h264: initialize active_sps/pps in reset
9792 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9793 they introduced regression in seek.
9794 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9795 But since the commits landed, it doesn't drop P-frame and does try to
9796 decode it continuously because active_sps is still alive. See ensure_sps function.
9797 But there are prev_frames and prev_ref_frames reset already, then it
9799 So it's necessary to reset active_sps/pps also in reset method.
9800 https://bugzilla.gnome.org/show_bug.cgi?id=783726
9802 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9804 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9805 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9806 libs: encoder: fix compilation with old versions of libva
9807 There are some symbols that are not used when compiling with old
9808 version of libva and those generates a compilation error.
9809 Original-patch-by: Matt Staples <staples255@gmail.com>
9811 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9813 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9814 libs: encoder: Fix the quality level clamping
9815 Change the hard-coded range of quality-level from {1-8} to {1-7},
9816 since it is the range Intel Open source driver supports.
9817 Also perform the range clamping only if the user provided
9818 quality-level is greater than the max-range suppored by the driver,
9819 because there could be non-intel drivers giving lower value than
9820 the hard-coded max value 7.
9821 https://bugzilla.gnome.org/show_bug.cgi?id=783567
9823 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9825 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9826 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9827 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9828 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9829 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9830 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9831 libs: encoder: log out the name of the profile
9832 Instead of printing a number, it is more readable to log out, in
9833 case of error, the name of the failing profile.
9835 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
9837 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9838 libs: encoder: h264: changes raw number of profile to macro name of its
9839 Changes raw number of profile to macro name of its to improve readability.
9840 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9842 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9844 * gst/vaapi/gstvaapivideobufferpool.c:
9845 vaapivideobufferpool: remove allocation_vinfo private attribute
9846 There is no need to keep this attribute internally since it is
9847 already managed by the allocator.
9848 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9850 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9852 * gst/vaapi/gstvaapivideobufferpool.c:
9853 vaapivideobufferpool: refactor set_config()
9854 Refactor the set_config() virtual method considering a cleaner
9855 approach to allocator instanciation, if it it not set or if it is
9856 not valid for the pool.
9857 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9859 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9861 * gst/vaapi/gstvaapipluginbase.c:
9862 * gst/vaapi/gstvaapivideobufferpool.c:
9863 * gst/vaapi/gstvaapivideomemory.c:
9864 * gst/vaapi/gstvaapivideomemory.h:
9865 plugins: distinguish allocation and negotiation caps
9866 The vaapi video decoders might have different allocation caps from
9867 the negotiation caps, thus the GstVideoMeta shall use the negotiation
9868 caps, not the allocation caps.
9869 This was done before reusing gst_allocator_get_vaapi_video_info(),
9870 storing there the negotiation caps if they differ from the allocation
9871 ones, but this strategy felt short when the allocator had to be reset
9872 in the vaapi buffer pool, since we need both.
9873 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
9874 gst_allocator_get_vaapi_negotiated_video_info() to store the
9875 negotiated video info in the allocator, and distinguish it from
9876 the allocation video info.
9877 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9879 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9881 * gst/vaapi/gstvaapivideomemory.c:
9882 * gst/vaapi/gstvaapivideomemory.h:
9883 vaapivideomemory: rename qdata quarks and ids
9884 Also the parameter names were renamed to reflect their origin
9886 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9888 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9890 * gst/vaapi/gstvaapivideobufferpool.c:
9891 vaapivideobufferpool: rename local variables
9892 Renamed local video info structure names in set_config() vitual
9893 method. The purpose of their renaming is to clarify the origin
9894 of those structures, whether come from passed caps parameter
9895 (new_allocation_vinfo) or from the configured allocator
9897 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9899 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9901 * gst/vaapi/gstvaapivideobufferpool.c:
9902 vaapivideobufferpool: rename video info structures
9903 Renamed private GstVideoInfo structure video_info to allocation_vinfo
9904 and alloc_info to negotiated_vinfo.
9905 The purpose of these renaming is to clarify the origin and purpose of
9906 these private variables:
9907 video_info (now allocation_vinfo) comes from the bufferpool
9908 configuration. It describes the physical video resolution to be
9909 allocated by the allocator, which may be different from the
9911 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
9912 the pipeline. It represents how the frame is going to be mapped
9913 using the video meta.
9914 In Intel's VA-API backend, the allocation_vinfo resolution is
9915 bigger than the negotiated_info.
9916 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9918 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9920 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9921 libs: encoder: set framerate if bigger than 0/1
9922 Just set the framerate parameter if the framerate numerator and
9923 denominator are bigger than zero.
9924 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
9926 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
9927 https://bugzilla.gnome.org/show_bug.cgi?id=783532
9929 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9931 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9932 libs: encoder: bitrate target percentage calculation
9933 If the rate control is set to Constant Bit Rate (CBR) the target
9934 percentage is 100%, otherwise is 70%
9936 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9938 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9939 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9940 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9941 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9942 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9943 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9944 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
9945 Centralize the common configuration for the Rate Control parameter,
9946 thus can be overloaded per each specific encoder.
9948 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9950 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9951 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9952 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9953 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9954 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9955 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9956 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
9957 Since the framerate VA parameter is calculated equally among all the
9958 encoders, it is better to handle it in the base encoder class.
9960 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9962 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9963 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9964 libs: encoder: vp9: Adds CBR and VBR Encoding support
9965 https://bugzilla.gnome.org/show_bug.cgi?id=766832
9966 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
9967 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9969 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9971 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9972 libs: encoder: vp8: Adds VBR Encoding support
9973 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9975 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
9977 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9978 libs: encoder: h265: Adds VBR Encoding support
9979 Enables Variable BitRate mode, which does set FrameRate and RateControl
9981 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9983 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
9985 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9986 libs: encoder: Describes more detail about the bitrate property
9987 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9989 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9991 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9992 libs: encoder: h265: add rate control parameter
9993 https://bugzilla.gnome.org/show_bug.cgi?id=783449
9995 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9997 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9998 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9999 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10000 libs: encoder: h264,h265,mpeg2: add framerate parameter
10001 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10003 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10005 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10006 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10007 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10008 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10009 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10010 Instead of recalculating the miscellaneous buffer parameters for
10011 every buffer, it is only done once, when the encoder is configured.
10012 And for every buffer, the same structures are just copied.
10013 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10015 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10017 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10018 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10019 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10020 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10021 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10022 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10023 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10024 This is patch pretends to decouple the assignation of the values
10025 in the parameter structures and the VA buffer's parameters setting.
10026 It may lead to some issues since HRD, framerate or controlrate may
10027 not be handled by the specific encoder, but they are set in
10028 the VA buffer's parameters.
10029 I leave as it because this patch is just a transitional patch.
10030 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10032 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10034 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10035 libs: encoder: vp8: fix frame rate calculation
10036 According to the VA documentation:
10037 The framerate is specified as a number of frames per second,
10038 as a fraction. The denominator of the fraction is given in
10039 the top half (the high two bytes) of the framerate field, and
10040 the numerator is given in the bottom half (the low two bytes).
10041 For example, if framerate is set to (100 << 16 | 750), this is
10042 750 / 100, hence 7.5fps.
10043 If the denominator is zero (the high two bytes are both zero)
10044 then it takes the value one instead, so the framerate is just
10045 the integer in the low 2 bytes.
10046 This patch fixes the the framerate calculation in vp8 encoder
10048 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10050 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10052 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10053 libs: encoder: vp8: refactor FrameRate parameter
10054 Move frame-rate parameter from ensure_misc_params() to
10055 ensure_contro_rate_param() since it only has meaning when the
10056 control rate is either VBR or CBR.
10057 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10059 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10061 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10062 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10063 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10064 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10065 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10066 Move the Hypothetical Reference Decoder (HRD) parameter, from
10067 ensure_misc_params() to ensure_control_rate_params(), since it
10068 only shall be defined when the control rate is either VBR or CBR.
10069 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10071 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10073 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10074 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10075 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10076 libs: encoder: h264,vp8,mpeg2: refactor control rate
10077 Instead of filling the control rate param in ensure_misc_params(),
10078 this patch refactor it out, as a first step to merge the same code
10079 for all the encoders.
10080 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10082 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10084 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10085 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10086 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10087 libs: encoder: h264, h265, mpeg2: remove assert
10088 Remove spurious asserts for misc parameters. If they cannot be
10089 allocated, FALSE is already returned.
10091 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10093 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10094 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10095 libs: encoder: use VA quality level structure
10096 Instead of using a proxy to story the buffer quality level, the
10097 encoder now uses the native VA structure, which is copied to the
10098 dynamically allocated VAEncMiscParameterBuffer.
10099 This approach is computationally less expensive.
10101 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10103 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10104 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10105 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10106 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10107 libs: standardize the FIXME comment
10108 This is a trivial patch that makes homogeneous the FIXME tag in
10110 For more info about these comment style:
10111 http://wiki.c2.com/?FixmeComment
10113 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10115 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10116 libs: encoder: vp8: set quality level regardless of rate control mode
10117 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10119 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10121 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10122 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10123 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10124 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10125 libs: encoder: check for maximum number of slices
10126 Right now, H264 and HEVC can set as a property the number of slices to
10127 process. But each driver can set a maximum number of slices, depending
10128 on the supported profile & entry point.
10129 This patch verifies the current num_slices to process against the maximum
10130 permitted by the driver and the media size.
10131 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10133 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10135 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10136 libs: utils: mark functions as internals
10137 The functions in this header are internal to the library.
10139 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10141 * gst-libs/gst/vaapi/gstvaapicontext.h:
10142 libs: context: add missing documentation
10143 Document the region-of-interest configuration variables.
10145 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10147 * tests/elements/test-vaapisink.c:
10148 tests: elements: vaapisink: handle nav events
10149 The test app can now handle navigation events to rotate the
10152 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10154 * tests/elements/test-vaapisink.c:
10155 tests: elements: clean up vaapisink test
10156 - Use gst_element_send_event() instead of gst_pad_push_event()
10157 - don't zero App structure
10158 - check for pipeline parsing error
10159 - only get vaapisink for property set
10161 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10163 * gst/vaapi/gstvaapisink.c:
10164 vaapisink: keep handle_events flag except that if user want to set
10165 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10166 flag is set to FALSE, and never recovered, and then event thread is never
10168 So we should allow to set the flag only when users try it.
10169 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10171 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10173 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10174 libs: window: x11: fix src rect info when using vpp
10175 Since we started using VPP in VaapiWindowX11, we need to care about
10176 the case that src rect and window's size are different.
10177 So, once VPP has converted to other format, we should honor the
10178 size of the VPP's surface as source rect. Otherwise, it is cropped
10179 according the previous size of the source rect.
10180 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10182 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10184 * gst/vaapi/gstvaapipluginutil.c:
10185 plugins: remove par from caps negotiation
10186 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10188 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10190 * tests/elements/Makefile.am:
10191 * tests/elements/test-roi.c:
10192 tests: elements: add an example for ROI
10193 This implements a pipleint to recognize difference between ROI and non-ROI.
10194 See comments in this code in detail.
10195 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10196 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10198 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10200 * gst/vaapi/gstvaapiencode.c:
10201 * gst/vaapi/gstvaapiencode_h264.c:
10202 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10203 Handles new custom event GstVaapiEncoderRegionOfInterest
10204 to enable/disable a ROI region.
10205 Writes a way to use new event to document.
10206 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10207 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10209 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10211 * tests/simple-encoder.c:
10212 tests: simple-encoder: add an option to set ROI
10213 $ simple-encoder -r inputfile.y4m
10214 And you'll got an output file in H264 with two regions of interest.
10215 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10216 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10218 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10220 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10221 libs: encoder: h264: set ROI params during encoding
10222 Set ROI params during encoding each frame, which are set via
10223 gst_vaapi_encoder_add_roi ()
10224 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10225 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10227 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10229 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10230 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10231 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10232 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10233 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10234 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10236 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10238 * gst-libs/gst/vaapi/gstvaapicontext.c:
10239 * gst-libs/gst/vaapi/gstvaapicontext.h:
10240 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10241 libs: encoder/context: query region of interest support
10242 Queries if the driver supports "Region of Interest" (ROI) during the config
10244 This attribute conveys whether the driver supports region-of-interest (ROI)
10245 encoding, based on user provided ROI rectangles. The attribute value is
10246 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10247 If ROI encoding is supported, the ROI information is passed to the driver
10248 using VAEncMiscParameterTypeROI.
10249 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10250 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10252 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10254 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10255 libs: encoder: fix a comment
10257 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10259 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10260 libs: encoder: guard quality level configuration
10261 The quality level appeared in VA-API 0.36. So let's guard its
10264 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10266 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10267 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10268 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10269 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10270 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10271 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10272 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10273 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10274 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10275 encoders: add quality level tuning
10276 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10277 in gstreamer-vaapi encoders:
10278 The encoding quality could be set through this structure, if the
10279 implementation supports multiple quality levels. The quality level set
10280 through this structure is persistent over the entire coded sequence, or
10281 until a new structure is being sent. The quality level range can be queried
10282 through the VAConfigAttribEncQualityRange attribute. A lower value means
10283 higher quality, and a value of 1 represents the highest quality. The quality
10284 level setting is used as a trade-off between quality and speed/power
10285 consumption, with higher quality corresponds to lower speed and higher power
10287 The quality level is set by the element's parameter "quality-level" with a
10288 hard-coded range of 1 to 8.
10289 Later, when the encoder is configured in run time, just before start
10290 processing, the quality level is scaled to the codec range. If
10291 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10292 the quality level is set to zero, which means "disabled".
10293 All the available codecs now process this parameter if it is available.
10294 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10295 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10297 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10301 Back to development
10303 === release 1.12.0 ===
10305 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10310 * gstreamer-vaapi.doap:
10314 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10316 * gst/vaapi/gstvaapidecodebin.c:
10317 Revert "vaapidecodebin: fix element's classification"
10318 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10320 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10324 build: Require libva < 0.99.0
10325 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10326 fail to configure instead of failing late in the build.
10327 This libva is bundled in msdk[1] and it is ahead in time with
10328 respect the official and open source libva[2]. GStreamer-VAAPI
10329 only supports the latter for now.
10330 1. https://software.intel.com/en-us/media-sdk/download
10331 2. https://github.com/01org/libva/
10332 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10334 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10336 * gst/vaapi/gstvaapidecodebin.c:
10337 vaapidecodebin: fix element's classification
10338 This bin should have similar classification as decodebin which is
10339 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10341 Signed-off-by: Victor Toso <victortoso@redhat.com>
10342 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10344 === release 1.11.91 ===
10346 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10351 * gstreamer-vaapi.doap:
10355 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10357 * gst/vaapi/gstvaapipluginutil.c:
10358 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10359 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10361 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10363 * gst/vaapi/gstvaapipluginutil.c:
10364 plugins: reject pixel-aspect-ratio with value 0/1
10365 Do not negotiate a pixel-aspect-ratio of 0/1.
10366 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10368 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10370 * gst/vaapi/gstvaapipostprocutil.c:
10371 * gst/vaapi/gstvaapisink.c:
10372 plugins: handle pixel-aspect-ratio with value 0/1
10373 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10374 calculations for resizing and formatting in vaapipostproc and
10375 vaapisink, respectively, failed, and thus the pipeline.
10376 This patch handles this situation by converting p-a-r of 0/1 to
10377 1/1. This is how other sinks, such as glimagesink, work.
10378 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10380 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10382 * gst/vaapi/gstvaapivideobufferpool.c:
10383 vaapivideobufferpool: fix leak of created allocator
10384 Since it's created by itself, it should be unref-counted
10385 after gst_buffer_pool_config_set_allocator call. Afterwards,
10386 this allocator will be ref-counted again when assigning to priv->allocator.
10387 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10389 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10391 * gst/vaapi/gstvaapivideobufferpool.c:
10392 vaapivideobufferpool: create or reconfig allocator
10393 Sometimes a video decoder could set different buffer pool
10394 configurations, because their frame size changes. In this case we
10395 did not reconfigure the allocator.
10396 This patch enables this use case, creating a new allocator inside
10397 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10398 If so, it is just reconfigured, since it doesn't have a surface pool.
10399 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10401 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10403 * tests/elements/Makefile.am:
10404 test: elements: fix compilation flags
10405 This issue was spotten on bug #766704
10406 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10408 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10410 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10411 libs: windows: wayland: fix leak if failure of sync
10412 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10413 during destruction.
10414 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10415 This surface is not attached to anything at this moment, so we should release
10417 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10419 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10422 Automatic update of common submodule
10423 From 60aeef6 to 48a5d85
10425 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10427 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10428 libs: window: wayland: mark frames as done
10429 When the frame listener callbacks 'done', the number of pending
10430 frames are decreased. Nonetheless, there might be occasions where
10431 the buffer listener callbacks 'release', without calling previously
10432 frame's 'done'. This leads to problem with
10433 gst_vaapi_window_wayland_sync() operation.
10434 This patch marks as done those frames which were callbacked, but if
10435 the buffer callbacks 'release' and associated frame is not marked
10436 as 'done' it is so, thus the number of pending frames keeps correct.
10437 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10438 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10440 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10442 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10443 libs: window: wayland: don't sync at destroy()
10444 Don't call gst_vaapi_window_wayland_sync() when destroying the
10445 wayland window instance, since it might lead to a lock at
10446 gst_poll_wait() when more than one instances of vaapisink are
10447 rendering in the same pipeline, this is because they share the
10449 Since now all the frames are freed we don't need to freed the
10450 private last_frame, since its address is invalid now.
10451 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10452 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10454 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10456 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10457 libs: window: wayland: null buffer at destroy()
10458 Fix leakage of the last wl buffer.
10459 VAAPI wayland sink needs to send a null buffer while destruction,
10460 it assures that all the wl buffers are released. Otherwise, the last
10461 buffer's callback might be not called, which leads to leak of
10463 This was inspired by gstwaylandsink.
10464 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10465 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10467 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10469 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10470 libs: window: wayland: rt event queue at destroy()
10471 The proxy object of wl_buffer for the last frame remains in the
10472 wl_map. Even though we call wl_buffer_destroy() in
10473 frame_release_callback(), the proxy object remains without being
10474 removed, since proxy object is deleted when wayland server sees the
10475 delete request and sends 'delete_id' event.
10476 We need to call roundtrip before destroying event_queue so that the
10477 proxy object is removed. Otherwise, it would be mess up as receiving
10478 'delete_id' event from previous play, when playing in the next
10479 va/wayland window with the same wl_display connection.
10480 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10481 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10483 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10485 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10486 libs: window: wayland: cancel read at poll message
10487 Always call wl_display_cancel_read() when an errno is set, but
10488 different to EAGAIN or EINTR.
10489 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10491 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10493 * gst/vaapi/gstvaapidecodebin.c:
10494 * gst/vaapi/gstvaapidecodebin.h:
10495 vaapidecodebin: skips configuration once it's done
10496 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10497 Otherwise, it always fails when it's trying to re-start playback.
10498 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10500 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10502 * gst/vaapi/gstvaapipostprocutil.c:
10503 vaapipostproc: fixes for memory leaks
10504 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10505 requires to clear the used GValue to avoid a memory leak.
10507 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10509 * gst/vaapi/gstvaapipluginbase.c:
10510 * gst/vaapi/gstvaapipluginbase.h:
10511 plugins: enable direct rendering with envvar
10512 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10513 performance in some Intel platforms (Haswell, for example) but in others
10514 (Skylake) is the opposite.
10515 In order to have some control, the patch enables the direct rendering
10516 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10517 Also it seems to generating some problems with gallium/radeon backend.
10519 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10521 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10523 * gst/vaapi/gstvaapidecode.c:
10524 vaapidecode: Don't renegotiate on every flush
10525 If caps don't actually change, don't update the
10526 decoder and don't set the do_renego flag forcing
10527 downstream renegotiation
10528 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10530 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10532 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10533 h264 decoder: Implement reset() for faster flush
10534 Implement a custom reset() function for faster flushes
10535 that just clear the reference pictures but don't reallocate
10536 the DPB or clear out SPS/PPS
10537 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10539 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10541 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10542 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10543 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10544 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10545 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10546 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10547 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10548 * gst/vaapi/gstvaapidecode.c:
10549 Implement decoder reset on flush, rather than recreating
10550 Clear decoders out on a flush but keep the same instance,
10551 rather than completely recreating them. That avoids
10552 unecessarily freeing and recreating surface pools
10553 and contexts, which can be quite expensive
10554 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10556 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10558 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10559 libs: window: don't add an unused function
10560 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10561 a function that is never used, thus when compiling we might see
10562 this warning (clang):
10563 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10564 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10566 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10568 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10570 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10571 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10572 libs: window: remove surface_format member
10573 Since we always convert to NV12, there is no need to keep a
10574 variable for that. Let us hard code it.
10575 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10577 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10579 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10580 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10581 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10582 libs: window: x11/wayland: use new api for conversion
10583 Since gst_vaapi_window_vpp_convert_internal is created,
10584 GstVaapiWindowX11/Wayland can use it for conversion.
10585 Note that once it chooses to use vpp, it's going to use vpp
10586 until the session is finished.
10587 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10589 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
10591 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10592 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10593 libs: window: add gst_vaapi_window_vpp_convert_internal()
10594 If a backend doesn't support specific format, we can use vpp for conversion
10595 and make it playing.
10596 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10597 so that GstVaapiWindowX11 could use it.
10598 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10600 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10602 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10603 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10604 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10605 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10606 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10607 libs: window: x11/wayland: chaining up to GstVaapiWindow
10608 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10609 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10610 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10612 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10614 * gst/vaapi/gstvaapipluginutil.c:
10615 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10616 When these definitions are false, they are undef in the
10617 preprocessor, not a defined value of 0. When they are unset the
10618 compile fails with:
10619 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10620 https://bugzilla.gnome.org/show_bug.cgi?id=780948
10622 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
10625 Automatic update of common submodule
10626 From 39ac2f5 to 60aeef6
10628 === release 1.11.90 ===
10630 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
10635 * gstreamer-vaapi.doap:
10639 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10641 * gst/vaapi/gstvaapiencode_h265.c:
10642 vaapiencode: h265: add main-10 in caps template
10643 This patch adds h265's main-10 profile in encoder src caps template.
10644 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10646 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10648 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10649 libs: encoder: h265: chroma and luma with format
10650 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10651 parameter buffer, shall be the color format bit depth minus 8, 10-8
10652 which is 2. Also for bit_depth_chroma_minus8.
10653 This patch gets the negotiated sink caps format and queries its
10654 luma's depth and uses that value to fill the mentioned parameters.
10655 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10657 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10659 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10660 libs: encoder: admit YUV420_10BPP as valid chroma
10661 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10663 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10665 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10667 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10668 libs: encoder: h265: ensures profile given format
10669 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10670 configured color format is P010_10LE.
10671 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10672 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10674 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10676 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10677 libs: encode: merge all possible surface formats
10678 When the function gst_vaapi_encoder_get_surface_formats() was added
10679 it was under the assumption that any VA profile of the specific codec
10680 supported the same format colors. But it is not, for example the
10681 profiles that support 10bit formats.
10682 In other words, different VA profiles of a same codec may support
10683 different color formats in their upload surfaces.
10684 In order to expose all the possible color formats, if no profile is
10685 specified via source caps, or if the encoder doesn't have yet a
10686 context, all the possible VA profiles for the specific codec are
10687 iterated and their color formats are merged.
10688 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10690 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10692 * gst/vaapi/gstvaapiencode.c:
10693 * gst/vaapi/gstvaapiencode.h:
10694 * gst/vaapi/gstvaapiencode_h264.c:
10695 * gst/vaapi/gstvaapiencode_h265.c:
10696 vaapiencode: add get_profile() vmethod
10697 This new virtual method, get_profile(), if implemented by specific
10698 encoders, will return the VA profile potentially determined by the
10700 Also it is implemented by h264 and h265 encoders, which are the main
10701 users of this vmethod.
10702 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10704 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10706 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10707 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10708 * gst/vaapi/gstvaapiencode.c:
10709 libs: encoder: pass profile to get_surface_formats()
10710 In order to get the supported surface formats within a specific
10711 profile this patch adds the GstVaapiProfile as property to
10712 gst_vaapi_encoder_get_surface_formats().
10713 Currently the extracted formats are only those related with the
10714 default profile of the element's codec.
10715 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10717 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10719 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10720 libs: encoder: dummy context for get_surface_formats()
10721 Instead of creating (if it doesn't exist, yet) the encoder's context
10722 the method gst_vaapi_encoder_get_surface_formats() now it creates
10723 dummy contexts, unless the encoder has it already created.
10724 The purpose of this is to avoid setting a encoder's context with a
10726 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10728 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10730 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10731 libs: encoder: refactor init_context_info()
10732 In order to generate vaapi contexts iterative, the function
10733 init_context_info() is refactored to pass, as parameters the
10734 GstVaapiContextInfo and the GstVaapiProfile.
10735 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10737 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10739 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10740 * gst-libs/gst/vaapi/gstvaapiutils.c:
10741 * gst-libs/gst/vaapi/gstvaapiutils.h:
10742 libs: encoder: initialize chroma_type
10743 Instead of initialize the chroma_type with a undefined value, which
10744 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10745 this patch queries the VA config, given the received
10746 GstVaapiContextInfo's parameters, and gets the first response.
10747 In order to get the GstVaapiChromaType value, also it was needed to
10748 add a new utility function: to_GstVaapiChromaType(), which, given a
10749 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10750 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10752 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10754 * gst/vaapi/gstvaapiencode.c:
10755 vaapiencode: enhance logs of negotiated caps
10756 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10758 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10760 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10761 libs: encoder: vp9: Fix initialization of ref_list
10762 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10763 'memset' used with length equal to number of elements without
10764 multiplication by element size [-Werror=memset-elt-size]
10765 https://bugzilla.gnome.org/show_bug.cgi?id=780947
10767 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10769 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10770 encoder: h264: Fix Backward ReferencePicture flag setting
10771 This is a regression introduced by e829b62 which
10772 override the reference flags and caused issues with
10773 latest intel-vaapi-driver.
10775 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10777 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10778 libs: encoder: h265: fix code style
10779 Trivial patch to remove a double ';' as end of instruction.
10781 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10783 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10784 encoder: h264: Fix B frame encoding artifacts
10785 The current implementation is updating the POC values only
10786 in Slice parameter Buffer.But we are not filling the
10787 picture order count and reference flags in VAPictureH264
10788 while populating VA Picture/Slice structures.The latest
10789 intel-vaapi-driver is directly accessing the above fields
10790 from VAPicutreH264 provided as RefPicLists, which resulted
10791 some wrong maths and prediction errors in driver.
10792 https://bugzilla.gnome.org/show_bug.cgi?id=780620
10794 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10796 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10797 libs: encoder: h265: remove unused macro definition
10798 Since the h265 encoder doesn't use GValueArray, there is no need to
10799 disable the Glib deprecation warnings, thus removing the macro
10802 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10804 * gst/vaapi/gstvaapidecode.c:
10805 * gst/vaapi/gstvaapiencode.c:
10806 * gst/vaapi/gstvaapipostproc.c:
10807 * gst/vaapi/gstvaapisink.c:
10808 plugins: when debug disabled, default category is NULL
10809 As in gstreamer-vaapi a common base class is used, the specific
10810 default category is passed to the base-plugin initializator, thus
10811 the log messages are categorized with the used plugin.
10812 Nonetheless, when the gst-debug is disabled in compilation time,
10813 it is needed to pass NULL to the base-plugin initializator. This
10815 https://bugzilla.gnome.org/show_bug.cgi?id=780302
10817 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
10819 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10820 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10821 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10822 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10823 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10824 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10825 unit length and data to a bitwriter.
10826 Note that this helper function applies EPB (Emulation Prevention
10827 Bytes), since otherwise produced codec_data might be broken when
10828 decoder/parser considering EPB, starts parsing.
10829 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10830 describes the emulation_prevention_three_byte.
10831 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10832 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10834 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
10836 * gst-libs/gst/vaapi/Makefile.am:
10837 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10838 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10839 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10840 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10841 * gst-libs/gst/vaapi/meson.build:
10842 libs: utils: h26x: create vaapiutils_h26x
10843 Since there is duplicated code in h264/265 encoder, we could
10844 refactor it to avoid duplicated code.
10845 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10846 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10848 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10850 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10851 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10852 libs: encoder: h264/5: fix wrong return value
10853 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10855 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10857 * gst/vaapi/gstvaapiencode_h264.c:
10858 * gst/vaapi/gstvaapiencode_h265.c:
10859 docs: h264/h265: put parser to the example pipeline
10860 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10862 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10864 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10865 libs: encoder: h265: fix reserved length of bits
10866 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
10867 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10869 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10871 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10872 * tests/test-display.c:
10873 O_CLOEXEC needs _GNU_SOURCE defined
10875 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
10876 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
10877 2.12, one can obtain their definitions by defining either
10878 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
10879 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
10880 2.11 and earlier, one obtains the definitions by defining
10882 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
10883 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
10884 gstreamer-vaapi with the uClibc C library.
10885 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10886 https://bugzilla.gnome.org/show_bug.cgi?id=779953
10888 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10891 README: fix "Sources" section
10892 Update the URL where the release source tarballs can be downloaded.
10894 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10897 README: fix "Reporting bugs" section
10898 The "Reporting bugs" section gives
10899 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
10900 link to report a bug, but this link says "Sorry, entering a bug into the
10901 product gstreamer-vaapi has been disabled.".
10902 This commit fixes the URL to point to the proper location, and also
10903 removes the following paragraph that is no longer correct.
10904 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10905 https://bugzilla.gnome.org/show_bug.cgi?id=779954
10907 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10909 * gst/vaapi/gstvaapipluginutil.c:
10910 plugins: retry to create the VA display
10911 Particularly in GNOME Wayland, the negotiated or created GL context
10912 defines a GLX environment, but VAAPI fails to create a GLX VA
10913 display because there is no a DRI2 connection.
10914 This patch retries to create the VA display if VA cannot create one
10915 with the GL context parameters. Now using the old list of display
10917 This should also work in the case of systems with two GPU, when the
10918 non-VAAPI has the graphics environment, and the VAAPI-enabled one
10919 shall work headless.
10920 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10922 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
10924 * gst/vaapi/gstvaapipostproc.c:
10925 vaapipostproc: texture upload if driver supports GL
10926 Removes GstVideoGLTextureUploadMeta caps feature if the driver
10927 doesn't support opengl.
10928 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10929 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10931 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10933 * gst/vaapi/gstvaapidecode.c:
10934 vaapidecode: texture upload if driver supports GL
10935 When the allowed source pad caps are generated, the GLTextureUpload caps are
10936 only inserted if the driver support OpenGL.
10937 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10939 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10942 configure: Add missing compiler flags
10943 The AC_CHECK_HEADERS macro was failing to locate some headers, in
10944 particular the va_enc_* headers due to missing compiler flags.
10945 https://bugzilla.gnome.org/show_bug.cgi?id=779101
10946 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10948 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
10950 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10951 libs: window: wayland: handle more VAStatus to use vpp
10952 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
10953 we should consider more returned VAStatus to use vpp.
10954 https://bugzilla.gnome.org/show_bug.cgi?id=779400
10956 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
10958 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10959 libs: encoder: ensure profile when context initialization
10960 We can't be sure that encoder's profile is assgined already or not
10961 at context initialization.
10962 https://bugzilla.gnome.org/show_bug.cgi?id=779120
10964 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10966 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10967 libs: encoder: set rate control info only when query succeed
10968 Currently, it set rate control information even when query fails.
10969 In addition, it doesn't update any more since the flag
10970 got_rate_control_mask is set to TRUE.
10971 https://bugzilla.gnome.org/show_bug.cgi?id=779120
10973 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
10976 meson: Update version
10978 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
10981 Back to development
10983 === release 1.11.2 ===
10985 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
10990 * gstreamer-vaapi.doap:
10993 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10995 * gst/vaapi/gstvaapiencode.c:
10996 vaapiencode: merge tags for downstream's info
10997 Add encoder and codec name and the bitrate into the output for
10998 informational purposes. Some muxers or application use it as
11000 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11002 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11004 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11005 libs: encoder: caps can change at any time
11006 The encoder should be able to change its caps even it is already
11007 processing a stream.
11008 This is suppose to happen after a flush so the codedbuf_queue should
11010 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11012 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11014 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11015 libs: encoder: h265: bail if nal unit type fails
11016 Bail out if the NAL unit type is not recognized.
11017 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11019 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11021 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11022 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11023 libs: decoder: h264,h265 avoid uninitialized variable
11024 Configuring GCC to verify possible usage of uninitialized variables,
11025 shows that found_index might be used without previous assignation.
11026 This patch assigns a initial value to found_index, also avoid a
11027 branching when returning the result value.
11028 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11030 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11033 * gst-libs/gst/vaapi/Makefile.am:
11034 * gst/vaapi/gstvaapidecode.c:
11035 * gst/vaapi/gstvaapidecodebin.c:
11036 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11037 Rename to be consistent with H.264 and also H.265 encoder. The
11038 meson build assumed this was already consistently named, and so
11039 previously was not able to actually build the H.265 decoder.
11040 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11042 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11045 meson: gstreamer-codecparsers is a required dep
11046 Just like in configure.ac.
11048 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11051 meson: dist meson build files
11052 Ship meson build files in tarballs, so people who use tarballs
11053 in their builds can start playing with meson already.
11055 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11057 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11058 libs: encoder: vp8: add CBR encoding mode
11059 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11060 Basically it adds the configuration parameters required by libva to
11062 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11063 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11065 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11067 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11068 libs: encoder: vp8: fix bitrate calculation
11069 Base encoder's unit of bitrate is in Kbps. We should honor it so
11070 we use the value of bitrate in VA, in which is expressed in bps.
11071 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11073 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11075 * gst/vaapi/gstvaapipluginbase.c:
11076 plugins: fix build when gcc
11077 In commit a8e482f9 we added a function without parameters, but gcc
11080 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11082 * gst-libs/gst/base/meson.build:
11083 * gst-libs/gst/meson.build:
11084 * gst-libs/gst/vaapi/meson.build:
11085 * gst-libs/meson.build:
11087 * gst/vaapi/meson.build:
11089 * meson_options.txt:
11090 vaapi: add meson build
11091 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11093 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11096 * gst-libs/gst/vaapi/Makefile.am:
11097 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11098 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11099 make: remove gstvaapiversion.h generation
11100 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11102 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11104 * gst/vaapi/gstvaapipluginbase.c:
11105 plugins: use linear storage if not the same device
11106 When dmabuf is negotiated downstream and decoding and rendering are
11107 not done on the same device, the layout has to be linear in order for
11108 the memory to be shared accross devices, since each device has its
11109 own way to do tiling.
11110 Right now this code is rather just a to-do comment, since we are not
11111 fetching the device ids.
11112 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11114 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11116 * gst-libs/gst/vaapi/gstvaapiutils.c:
11117 libs: utils: add HEVC profiles representation
11118 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11120 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11122 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11123 libs: decoder: h264: reduce frame number of gaps
11124 Reduce frame num gaps so that we don't have to create unnecessary
11125 dummy pictures, just throw them away.
11126 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11127 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11129 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11131 * gst/vaapi/gstvaapidecode.c:
11132 vaapidecode: don't GLTextureUpload if dmabuf
11133 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11134 element can handle dmabuf-based buffers, avoiding its negotiation.
11136 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11138 * gst/vaapi/gstvaapidecode.c:
11139 vaapidecode: make pool to export decoder's surface
11140 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11141 pass the current proxy/surface to the pool.
11142 The pool will will export thins given surface instead of exporting a
11143 brand new surface that will never be filled in with meaningfull data.
11144 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11146 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11148 * gst/vaapi/gstvaapipluginbase.c:
11149 plugins: decoder can negotiate dmabuf downstream
11151 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11153 * gst/vaapi/gstvaapivideobufferpool.c:
11154 vaapivideobufferpool: override acquire_buffer()
11155 Overriding the vmethod acquire_buffer() it is possible to attach the
11156 right GstMemory to the current acquired buffer.
11157 As a matter of fact, this acquired buffer may contain any instantiated
11158 GstFdmemory, since this buffer have been popped out from the buffer
11159 pool, which is a FIFO queue. So there is no garantee that this buffer
11160 matches with the current processed surface. Evenmore, the VA driver
11161 might not use a FIFO queue. Therefore, it is no way to guess on the
11163 In short, acquire_buffer on the VA driver and on the buffer pool return
11164 none matching data, we have to manually attach the right GstFdMemory to
11165 the acquired GstBuffer. The right GstMemory is the one associated with
11166 the current surface.
11167 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11169 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11171 * gst/vaapi/gstvaapivideobufferpool.c:
11172 * gst/vaapi/gstvaapivideomemory.c:
11173 vaapivideomemory: export surface if it is provided
11174 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11175 had to create that surface. Now it can also export an already provided
11176 surface. It is useful to export decoder's surfaces (from VA context).
11177 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11179 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11181 * gst/vaapi/gstvaapivideobufferpool.h:
11182 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11183 Useful to let the pool know the current surface proxy when calling
11184 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11185 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11187 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11189 * gst-libs/gst/vaapi/gstvaapisurface.c:
11190 * gst-libs/gst/vaapi/gstvaapisurface.h:
11191 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11192 These functions are useful when a dmabuf-based memory is instantiated in
11193 order to relate the generated buffer @proxy with the processed @surface.
11194 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11196 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11198 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11199 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11200 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11201 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11202 This patch adds a GstMemory as a variable member of the buffer proxy,
11203 because we will need to associate the buffer proxy with the memory
11204 which exposes it. Later, we will know which memory, in the video buffer
11205 pool, is attached to the processed surface.
11206 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11208 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11210 * gst/vaapi/gstvaapipostproc.c:
11211 vaapipostproc: don't GLTextureUpload if dmabuf
11212 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11213 element can handle dmabuf-based buffers, avoiding its negotiation.
11214 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11215 feature if can dmabuf"
11216 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11218 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11220 * gst/vaapi/gstvaapipluginbase.c:
11221 plugins: enable DMAbuf allocator to downstream
11222 If the negotiated caps are raw caps and downstream supports the
11223 EGL_EXT_image_dma_buf_import extension, then the created allocator
11224 is the DMAbuf, configured to downstream.
11225 At this moment, the only element which can push dmabuf-based buffers
11226 to downstream, is vaapipostproc.
11228 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11230 * gst/vaapi/gstvaapipluginbase.c:
11231 * gst/vaapi/gstvaapipluginbase.h:
11232 plugins: check if negotiate dmabuf with downstream
11233 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11234 plugin needs to check if downstream can import dmabuf buffers.
11235 This patch checks if downstream can handle dmabuf, by introspecting the
11236 shared GL context. If the GL context is EGL/GLES2 and have the extension
11237 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11238 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11240 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11242 * gst/vaapi/gstvaapivideomemory.c:
11243 vaapivideomemory: release proxy's data if downstream
11244 The surface created for downstream is going to be filled by VAAPI
11245 elements. So, the driver needs write access on that surface.
11246 This patch releases the derived image held by the proxy, thus the
11247 surface is unmarked as busy.
11248 This is how it has to be done as discussed on libva mailing list.
11249 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11251 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11253 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11254 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11255 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11256 Adds an API to request the user's data release in the buffer proxy.
11257 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11259 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11261 * gst/vaapi/gstvaapipluginbase.c:
11262 * gst/vaapi/gstvaapivideomemory.c:
11263 * gst/vaapi/gstvaapivideomemory.h:
11264 vaapivideomemory: add direction to dmabuf allocator
11265 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11266 we later could do different thing when the allocated memory is for
11267 upstream or dowstream, as required by VA-API.
11268 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11270 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11272 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11273 libs: utils: return NULL if failed to get surface formats
11274 Thus, when generating the allowed caps, the element will throw a
11275 warning and it will use its caps template.
11276 This behavior might be a bug in the VA driver.
11277 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11279 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11281 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11282 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11283 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11285 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11287 * gst/vaapi/gstvaapipostproc.c:
11288 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11289 A value of width/height property should be set to out caps,
11290 if negotiation had been going properly.
11291 So we can use srcpad_info when making decision of scaling.
11292 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11294 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11296 * gst/vaapi/gstvaapidecode.c:
11297 * gst/vaapi/gstvaapiencode.c:
11298 * gst/vaapi/gstvaapipluginutil.c:
11299 * gst/vaapi/gstvaapipluginutil.h:
11300 * gst/vaapi/gstvaapipostproc.c:
11301 * gst/vaapi/gstvaapisink.c:
11302 plugins: handle GL params through context query
11303 If the element instantiated the GL display and context, they should
11304 handle them too through the context query.
11305 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11307 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11309 * gst/vaapi/gstvaapipluginbase.c:
11310 * gst/vaapi/gstvaapipluginbase.h:
11311 * gst/vaapi/gstvaapipluginutil.c:
11312 plugins: create a GL context on certain conditions
11313 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11314 then VAAPI elements look for a local GstGLContext in gst context
11315 sharing mechanism ('gst.gl.local.context').
11316 If this GstGLContext not found either then, only the VAAPI decoders
11317 and the VAAPI post-processor, will try to instantiate a new
11319 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11320 be instantiated with the platform, API and windowing specified by the
11321 instantiated GstGLContext.
11322 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11323 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11325 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11327 * gst/vaapi/gstvaapivideocontext.c:
11328 vaapivideocontext: context type can be rejected
11329 Instead of calling g_return_val_if_fail() to check the context type, we
11330 should use a normal conditional, since it is possible that other context types
11331 can arrive and try to be assigned. Otherwise a critical log message is
11333 This happens when we use playbin3 with vaapipostproc as video-filter.
11334 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11336 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11338 * gst/vaapi/gstvaapipostprocutil.c:
11339 vaapipostproc: use sink caps par if not requested
11340 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11341 is not already set.
11342 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11344 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11346 * gst/vaapi/gstvaapipostproc.c:
11347 * gst/vaapi/gstvaapipostprocutil.c:
11348 vaapipostproc: set interlace mode
11349 if the vaapipostproc is configured to not do deinterlacing, the
11350 interlace-mode in the src caps should be the same as the input caps.
11351 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11353 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11355 * gst/vaapi/gstvaapisink.c:
11356 vaapisink: fix gcc compiler warning
11357 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11359 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11361 * gst/vaapi/gstvaapisink.c:
11362 vaapisink: don't use member variable outside lock
11363 Thus a race condition segfault is avoided.
11364 Original-patch-by: Matt Staples <staples255@gmail.com>
11365 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11367 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11369 * gst/vaapi/gstvaapipluginbase.c:
11370 * gst/vaapi/gstvaapipostproc.c:
11371 plugins: avoid log flood when activating pool
11372 Every time a new buffer is allocated, the pool is activated. This
11373 doesn't impact in performance since gst_buffer_pool_set_active()
11374 checks the current state of the pool. Nonetheless it logs out a
11375 message if the state is the same, and it floods the logging subsystem
11377 To avoid this log flooding first the pool state is checked before
11380 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11382 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11383 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11384 * gst/vaapi/gstvaapidecode.c:
11385 * gst/vaapi/gstvaapidecode.h:
11386 vaapidecode: update internal decoder sink caps
11387 When a new sink caps arrive the internal decoder state is updated
11388 and, if it is, request a downstream renegotiation.
11389 Previously, when new caps arrived the whole decoder where destroyed
11390 and recreated. Now, if the caps are compatible or has the same codec,
11391 the internal decoder is kept, but a downstream renegotiation is
11393 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11395 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11398 Back to development
11400 === release 1.11.1 ===
11402 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11407 * gstreamer-vaapi.doap:
11410 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11412 * gst-libs/gst/vaapi/gstvaapiutils.c:
11413 vaapi: bump ifdef to API 0.40.0 for log redirect
11414 vaSetInfoCallback() is not released yet. It is going to appear in
11417 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11419 * gst-libs/gst/vaapi/gstvaapiutils.c:
11420 vaapiutils: Fix compilation with latest and previous libva releases
11421 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11424 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11426 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11427 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11428 * gst-libs/gst/vaapi/gstvaapiutils.c:
11429 * gst-libs/gst/vaapi/gstvaapiutils.h:
11430 libs: display: redirect logging at initialize
11431 Redirect libva's logs to GStreamer logging mechanism. This is
11432 particularly useful when VA is initialized, because it always logs
11433 out the drivers details.
11434 In order to achieve this a new helper function was added as a wrapper
11435 for the vaInitialize() function.
11436 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11438 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11440 * gst/vaapi/gstvaapipluginbase.c:
11441 plugins: provide at least two buffers in sink pool
11442 Adds two buffers as the default value of minimum buffer.
11443 This would be used when creating and proposing vaapi bufferpool for
11444 sink pad, hence the upstream element will keep, at least, these two
11446 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11447 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11449 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11451 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11452 libs: decoder: h264: don't update cloned attributes
11453 If the frame is a cloned picture, its PTS comes from its parent
11454 picture. In addition, the base decoder doesn't set a valid PTS to
11455 the frame corresponding to the cloned picture.
11456 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11458 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11460 * gst/vaapi/gstvaapivideomemory.c:
11461 vaapivideomemory: check for display
11462 This patch fixes the check of display, rather than check for the
11463 meta, which it is known it exists.
11465 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11467 * gst/vaapi/gstvaapivideomemory.c:
11468 * gst/vaapi/gstvaapivideomemory.h:
11469 vaapivideomemory: rename dmabuf allocator parameters
11470 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11471 'surface_alloc_flags' respectively. The purpose of this change is
11472 to auto-document those parameters.
11473 Also, aligned to this patch, the local 'alloc_info' variable was
11474 renamed as 'surface_info', because it stores the possible surface's
11475 video info, not the allocate one.
11477 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11479 * gst/vaapi/gstvaapivideomemory.c:
11480 * gst/vaapi/gstvaapivideomemory.h:
11481 vaapivideomemory: rename vip to alloc_info parameter
11482 In order to auto-document the code, this patch renames the 'vip'
11483 parameter in the functions related to gst_vaapi_video_allocator_new ()
11484 to 'alloc_info', since it declares the allocation video info from
11485 the vaapi buffer pool.
11487 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11489 * gst/vaapi/gstvaapivideomemory.c:
11490 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11491 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11492 the video format string.
11494 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11496 * gst/vaapi/gstvaapivideomemory.c:
11497 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11498 gst_vaapi_surface_new_with_format() is a wrapper for
11499 gst_vaapi_surface_new_full (). In this case, the former is simpler
11500 than the first. This patch changes that.
11502 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11504 * gst/vaapi/gstvaapipostproc.c:
11505 vaapipostproc: notify if src pad caps changed
11506 If src pad caps have changed, it needs to notify it downstream. In
11507 addition, do not set passthrough if they have changed.
11508 Otherwise, transform sometimes starts processing before caps change.
11509 The passthrough value will be set in fixate later in this case.
11510 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11512 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11514 * gst/vaapi/gstvaapidecodebin.c:
11515 vaapidecodebin: capsfilter to optimize negotiation
11516 Add a capsfilter forcing the caps
11517 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11518 queue and the vaapipostproc so no renegotiation is required.
11519 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11521 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11523 * gst/vaapi/gstvaapivideomemory.c:
11524 vaapivideomemory: fail surface/image configuration
11525 To detect and handle errors during allocator_configure_surface_info()
11526 and allocator_conigure_image_info().
11527 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11528 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11530 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11532 * gst/vaapi/gstvaapisink.c:
11533 vaapisink: ensures raw caps at start()
11534 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11535 race conditions at get_caps(), especially with multiple src elements.
11536 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11538 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11540 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11541 libs: surface: fix error handling code style
11543 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11545 * gst/vaapi/gstvaapivideomemory.c:
11546 vaapivideomemory: add gst_video_info_update_from_surface()
11547 With this function is possible to refactor and remove duplicated code
11548 between dmabuf configuration and direct rendering/uploading
11551 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11553 * gst/vaapi/gstvaapivideomemory.c:
11554 vaapivideomemory: no log object at initialization
11555 When an instance of GstVaapiVideoAllocator fails at initializing, the
11556 log message should not include the allocator's object, because it is
11557 going to be unrefed.
11559 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11561 * gst/vaapi/gstvaapidecode.c:
11562 vaapidecode: lock stream when setting caps
11564 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11566 * gst/vaapi/gstvaapidecode.c:
11567 Revert "vaapidecode: implement negotiate() vmethod"
11568 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11569 videodecode's negotiate() vmethod is also called when events arrive,
11570 but this would mean that the proper configuration of sink pad might
11571 not be complete, thus we should not update the src pad.
11572 Let's keep the old non-vmethod negotitate().
11574 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11576 * gst/vaapi/gstvaapi.c:
11577 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11578 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11580 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
11582 * gst/vaapi/gstvaapiencode.c:
11583 * gst/vaapi/gstvaapiencode.h:
11584 vaapiencode: get surface formats in get_caps()
11585 Query for the supported surface formats in config at get_caps() vmethod.
11586 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11587 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11589 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
11591 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11592 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11593 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11594 This method will return the valid surface formats in the current
11595 config. If the are no VAConfig it is created with the information
11597 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11598 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11600 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
11602 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11603 libs: encoder: split set_context_info()
11604 Split set_context_info() adding init_context_info() which only
11605 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11606 required for VAConfig.
11607 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11608 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11610 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
11612 * gst-libs/gst/vaapi/gstvaapicontext.c:
11613 libs: context: skip VAContext if no frame size
11614 If GstVaapiContextInfo has just initial information, without frame's
11615 width and height, skip the creation of the VAContext, just keep the
11617 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11618 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11620 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11622 * gst-libs/gst/vaapi/gstvaapicontext.c:
11623 libs: context: split context_create()
11624 Split the funcion context_create() into context_create() and
11626 Decoupling VAConfig and VAContext during context creation, we could
11627 query the VAConfig for the supported surface's formats without creating
11629 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11631 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11633 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11634 libs: drm: find render node in hybrid system
11635 Originally the drm backend only tried to open the first render node
11636 found. But in hybrid system this first render node might not support
11637 VA-API (propietary Nvidia driver, for example).
11638 This patch tries all the available nodes until a finding one with a
11639 VA-API supported driver.
11640 https://bugzilla.gnome.org/show_bug.cgi?id=774811
11641 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11642 Reza Razavi <reza@userful.com>
11644 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11646 * gst/vaapi/gstvaapivideomemory.c:
11647 vaapivideomemory: refactor code for readability
11648 Added the inlined function allocator_configure_pools() moving out code
11649 from gst_vaapi_video_allocator_new() to make clear that it is a
11650 post-initalization of the object.
11652 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11654 * gst/vaapi/gstvaapivideomemory.c:
11655 vaapivideomemory: log error if not VA image
11656 Log an error message if the test image for surface downloading
11657 cannot be allocated or mapped.
11659 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11661 * gst/vaapi/gstvaapivideomemory.c:
11662 vaapivideomemory: remove unused macros
11663 These macros are not used. Let us remove them.
11665 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11667 * gst/vaapi/gstvaapivideomemory.c:
11668 * gst/vaapi/gstvaapivideomemory.h:
11669 vaapivideomemory: rename video for allocation_info
11670 Since video_info stores the GstVideoInfo of the allocation caps,
11671 it is clear if we rename it as allocation_info, to distinguish it
11672 later from negotiation_info.
11674 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11676 * gst/vaapi/gstvaapivideomemory.c:
11677 * gst/vaapi/gstvaapivideomemory.h:
11678 vaapivideomemory: add real GstVaapiDmaBufAllocator
11679 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11680 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11681 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11682 from GstDmaBufAllocator.
11683 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11684 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11686 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
11688 * gst/vaapi/gstvaapivideomemory.c:
11689 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11690 Add a helper function to initialize the gst_debug_vaapivideomemory,
11691 to use it either by the GstVaapiVideoAllocatorClass or
11692 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11693 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11694 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11696 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
11698 * gst/vaapi/gstvaapiencode.c:
11699 vaapiencode: release internal encoder at stop()
11700 As the internal encoder is created at start(), let's release it at
11701 stop() vmethod, to be consistent.
11702 gst_vaapiencode_destroy() is called since it also resets the input and
11703 output states, which is something that the base class does internally
11704 after calling stop() vmethod.
11705 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11706 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11708 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
11711 Automatic update of common submodule
11712 From f49c55e to 39ac2f5
11714 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
11716 * gst/vaapi/gstvaapiencode.c:
11717 vaapiencode: call ensure_encoder() at start()
11718 Currently, specific encoder is created during set_format(). This might
11719 lead to race condition when creating profiles with multiple encoders.
11720 This patch moves ensure_encoder() call to start() vmethod to ensure
11721 avoiding the race condition.
11722 https://bugzilla.gnome.org/show_bug.cgi?id=773546
11724 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11726 * gst/vaapi/gstvaapidecodebin.c:
11727 vaapidecodebin: bring back dynamic configuration
11728 In commit ca0c3fd6 we remove the dynamic configuration if the bin
11729 because we assumed that the bin will be always static as it is
11731 Nonetheless we were wrong, because it is possible to request, with a
11732 property, to avoid the use of the post-processor.
11733 Since we want to add a way to disable the post-processor through
11734 environment variables, this remove feature is required again.
11735 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11736 postprocessor inside of the vaapidecodebin is disabled, then
11737 vaapidecodebin is an alias of the old vaapidecode.
11738 https://bugzilla.gnome.org/show_bug.cgi?id=775041
11740 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11742 * gst/vaapi/gstvaapidecode.c:
11743 vaapidecode: implement negotiate() vmethod
11744 Instead of decorating the negotiate() method, let us override it,
11745 so the stream is locked while called.
11746 https://bugzilla.gnome.org/show_bug.cgi?id=775040
11748 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
11751 common: use https protocol for common submodule
11752 https://bugzilla.gnome.org/show_bug.cgi?id=775110
11754 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
11756 * gst-libs/gst/vaapi/Makefile.am:
11757 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11758 In case libva-wayland has its headers not installed in default
11759 locations (like /usr/include), the build fails to include "wayland-client.h":
11760 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
11761 In file included from gstvaapidisplay_wayland.h:27:0,
11762 from gstvaapidisplay_egl.c:35:
11763 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11764 #include <wayland-client.h>
11765 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11766 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11767 for libva-wayland.pc in configure and use this in other places as well. It is thus only
11768 correct and consequent, to do it also at this spot.
11769 https://bugzilla.gnome.org/show_bug.cgi?id=773946
11771 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11773 * gst/vaapi/gstvaapivideocontext.c:
11774 vaapivideocontext: log a message if no bus
11775 Raise a warning if there is no bus when the element tries to post a
11778 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11780 * gst/vaapi/gstvaapisink.c:
11781 vaapisink: create display at open()
11782 Instead of creating the VA display before setting the bus to the
11783 element, it is created when the element is opened.
11784 Basically, this commit is a revert of
11785 5e5d62cac79754ba60057fc2516135aad8d7de35
11786 That was done when the GStreamer's context sharing was not mature
11787 enough as now. There is no reason to keep this hack.
11789 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11791 * gst/vaapi/gstvaapidecode.c:
11792 vaapidecode: don't add video crop meta
11793 Since the differentiation of negotiation caps and allocation caps,
11794 there is no need to add a video crop meta with the negotiation caps.
11795 Hence, removing it.
11796 https://bugzilla.gnome.org/show_bug.cgi?id=773948
11798 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11800 * gst/vaapi/gstvaapivideobuffer.c:
11801 * gst/vaapi/gstvaapivideometa.c:
11802 * gst/vaapi/gstvaapivideometa.h:
11803 remove the video converter from vaapi buffer meta
11804 Since all the video converter were deprecated in gstreamer-1.2, we don't need
11805 to handle them anymore in the vaapi's buffer meta.
11806 This patch removes its usage and the buffer meta's API for that.
11807 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11809 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11811 * gst/vaapi/gstvaapipluginbase.c:
11812 plugins: destroy source pad allocator and pool
11813 First, deactivate source pad pool when the out caps change, and if so,
11814 destroy texture map, the source pad allocator and pool only if the
11815 new caps are different from the ones already set.
11817 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11819 * gst/vaapi/gstvaapipluginbase.c:
11820 plugins: don't destroy sink pad allocator
11821 Don't destroy sink pad allocator at _set_caps() because it will be done at
11822 ensure_sinkpad_buffer_pool() if it is required.
11824 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11826 * gst/vaapi/gstvaapipluginbase.c:
11827 plugins: first validate the out caps
11828 When calling _set_caps() first validate the out caps before doing
11831 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11833 * gst/vaapi/gstvaapidecode.c:
11834 vaapidecode: negotiate after destroying allocator
11835 This is related with bug 758907 when no vaapipostproc is used (no
11836 vaapidecodebin). In order to negotiate downstream we need to destroy
11837 the source pad allocator, otherwise the same allocated buffers are
11838 used, failing the mapping.
11840 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11842 * gst/vaapi/gstvaapivideomemory.c:
11843 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11844 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11845 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
11847 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11849 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11851 * gst/vaapi/gstvaapipluginbase.c:
11852 plugins: update the src pad allocator video info
11853 Update the size, stride and offset of the source pad allocator video
11854 info, so the pool could set the correct GstVideoMeta
11855 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11857 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11859 * gst/vaapi/gstvaapivideomemory.c:
11860 vaapivideomemory: add missing documentation
11861 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11863 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11865 * gst/vaapi/gstvaapipluginbase.c:
11866 plugins: use early return without goto
11867 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11869 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11871 * gst/vaapi/gstvaapipluginbase.c:
11872 * gst/vaapi/gstvaapivideomemory.c:
11873 * gst/vaapi/gstvaapivideomemory.h:
11874 plugins: add allocator to allocation query
11875 This patch adds the created allocator to the allocation query either
11876 in decide_allocation() and propose_allocation() vmehtods.
11877 With it, there's no need to set the modified allocator's size in the
11878 pool configuration.
11879 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11881 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
11883 * gst/vaapi/gstvaapivideobufferpool.c:
11884 vaapivideobufferpool: set correct buffer size
11885 We should set the correct buffer size when we are configuring the pool,
11886 otherwise the buffer will be discarded when it returns to the pool.
11887 Indeed when the ref-count of a buffer reaches zero, its pool will queue
11888 it back (and ref it) if, and only if, the buffer size matches the
11889 configured buffer size on the pool.
11890 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
11891 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11893 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11895 * gst/vaapi/gstvaapivideomemory.c:
11896 vaapivideomemory: check for memory allocator
11897 When calling gst_vaapi_video_memory_copy() the allocator of the memory
11898 to copy should be allocated by the vaapi allocator.
11899 This patch does this verification.
11901 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11903 * gst/vaapi/gstvaapivideomemory.c:
11904 vaapivideomemory: code style fixes
11905 A cosmetic commit for enhance readability of the casts and method
11908 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11910 * gst/vaapi/gstvaapivideomemory.c:
11911 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
11912 Instead of having a gst_vaapi_video_memory_free() that is only going to
11913 be called by gst_vaapi_video_allocator_free(), let's just remove the first
11914 and merged into the second.
11916 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11918 * gst/vaapi/gstvaapivideomemory.c:
11919 vaapivideomemory: avoid virtual methods casting
11920 Use the expected virtual method signatures for readability.
11922 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11924 * gst/vaapi/gstvaapivideomemory.c:
11925 vaapivideomemory: remove unimplemented methods
11926 Remove unimplemented method for allocator mem_share() and mem_is_span().
11928 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11930 * gst/vaapi/gstvaapivideomemory.c:
11931 vaapivideomemory: fail if frame map can't get plane
11932 If map() vmethod in GstVideMeta cannot get the plane data, return false,
11933 thus the caller will not try to read invalid memory.
11934 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11936 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11938 * gst/vaapi/gstvaapivideomemory.c:
11939 * gst/vaapi/gstvaapivideomemory.h:
11940 vaapivideomemory: lock map and unmap operations
11941 In order to avoid race condition when two threads call map/unmap the same
11942 VA surface, this patch mutex these operations.
11943 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11945 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11947 * gst/vaapi/gstvaapivideomemory.c:
11948 vaapivideomemory: refactor vaapi memory unmapping
11949 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
11950 gst_vaapi_video_memory_unmap() when unmapping.
11951 This patch refactors both methods adding the common function
11952 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
11953 is correctly reset.
11954 Additionally, only when mapping flag has the WRITE bit, it set the image as
11955 current, which was done in gst_video_meta_map_vaapi_memory() but no in
11956 gst_vaapi_video_memory_map().
11957 In order to make this, the mapping flags were required, so instead of
11958 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
11959 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11961 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11963 * gst/vaapi/gstvaapivideomemory.c:
11964 vaapivideomemory: refactor vaapi memory mapping
11965 There were duplicated code in gst_video_meta_map_vaapi_memory() and
11966 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
11967 This patch refactors both methods adding the common function
11968 map_vaapi_memory().
11969 Additionally, only when flag has the READ bit it calls
11970 ensure_images_is_current(), which was done in
11971 gst_video_meta_map_vaapi_memory() but no in
11972 gst_vaapi_video_memory_map().
11973 https://bugzilla.gnome.org/show_bug.cgi?id=772151
11975 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11977 * gst/vaapi/gstvaapidecode.c:
11978 vaapidecode: unref allowed_sinkpad_caps at close()
11979 The variable member allowed_sinkpad_caps is constructed querying the
11980 current VA display. Bearing that in mind, the variable shall be freed
11981 when the VA display changes or is removed.
11982 This patch moves the freeing of allowed_sinkpad_caps to close(), when
11983 the VA display is freed.
11985 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
11987 * gst/vaapi/gstvaapisink.c:
11988 vaapisink: finish event thread at stop()
11989 The thread that handles window's events should be finished during
11990 pipeline's shutdown, otherwise it will remain alive during pipeline
11991 re-activation, leading to unexpected problems.
11992 This patch fixes failures of intensive_state_change scenario of
11994 https://bugzilla.gnome.org/show_bug.cgi?id=774241
11996 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11998 * gst/vaapi/gstvaapipostproc.c:
11999 vaapipostproc: enhance debug message
12000 "gst_pad_push" is not a good description of the event.
12002 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12004 * gst/vaapi/gstvaapipostproc.c:
12005 postproc: honor gst_pad_push() return value
12006 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12007 deadlock during seek.
12008 This patch returns the same error of gst_pad_push() and log out the
12010 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12012 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12014 * gst/vaapi/gstvaapidecode.c:
12015 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12016 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12017 compiled with out EGL/GLX support: it shall not support
12018 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12019 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12020 allowed src caps for vaapedecode if EGL/GLX.
12022 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12024 * gst/vaapi/gstvaapivideomemory.c:
12025 vaapivideomemory: increment map counter only if succeeded
12026 Previously the frame map counter increased independently if the map succeeded
12027 or not. This leaded to critical messages and crashes if the frame was unable
12028 to be mapped, but the counter increased.
12029 This patch increases the map counter only if the map operation occurred.
12030 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12032 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12034 * gst/vaapi/gstvaapipluginbase.c:
12035 plugins: set negotiation caps in src allocator
12036 When the allocator is created, it stores the allocation caps. But sometimes
12037 the "allocation caps" may be different from the "negotiation caps".
12038 In this case, the allocator should store the negotiation caps since they
12039 are the ones used for frame mapping with GstVideoMeta.
12040 When vaapispostproc is used, this is not a problem since the element is assume
12041 to resize. But when using a vaapi decoder only, with a software renderer, it
12042 fails in this case.
12043 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12045 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12047 * gst/vaapi/gstvaapidecode.c:
12048 * gst/vaapi/gstvaapidecode.h:
12049 vaapidecode: generate source pad caps
12050 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12051 raw formats, so, the src caps can negotiate the exact caps that the context
12054 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12056 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12057 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12058 libs: decoder: add _get_surface_formats()
12059 This function exposes the available formats of the surfaces in the the current
12060 context to the plugins.
12062 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12064 * gst-libs/gst/vaapi/gstvaapicontext.c:
12065 * gst-libs/gst/vaapi/gstvaapicontext.h:
12066 libs: context: ensure context formats
12067 This patch ensures to get the formats, as filter does, available in the
12068 decoder / encoder context.
12069 The context fills up the array as soon it is created, otherwise the pipeline
12070 could get stalled (perhaps this is a bug in my HSW backend).
12071 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12073 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12075 * gst-libs/gst/vaapi/gstvaapifilter.c:
12076 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12077 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12078 libs: move get_surface_formats to utils_core
12079 The query of all the supported formats for a VA config were only used by the
12080 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12081 negotiate a suitable raw format with downstream, we need to query these
12082 formats against the decoder's config.
12083 This patch is the first step: moves the code in filter's ensure_image() to a
12084 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12085 shared later by the decoder.
12086 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12088 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12090 * gst/vaapi/gstvaapipluginbase.c:
12091 plugins: remove set_sinkpad_dmabuf_allocator()
12092 Since when the sink pad allocator is created, it is decided if the required
12093 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12096 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12098 * gst/vaapi/gstvaapipluginbase.c:
12099 plugins: ensure display when getting raw caps
12100 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12101 meanwhile it is transforming caps. The problem is that stop() calls
12102 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12103 the va display is used in tranform_caps() when it is extracting the possible
12104 format conversions. This display disappearing generates warning messages.
12105 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12106 hence it doesn't go away meanwhile it is used, even if the
12107 gst_vaapi_plugin_base_close() is called in other thread.
12108 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12110 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12112 * gst/vaapi/gstvaapiencode_h264.c:
12113 * gst/vaapi/gstvaapiencode_h265.c:
12114 plugins: fix code style for errors
12116 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12118 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12119 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12120 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12121 * gst-libs/gst/vaapi/gstvaapicontext.c:
12122 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12123 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12124 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12125 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12126 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12127 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12128 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12129 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12130 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12131 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12132 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12133 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12134 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12135 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12136 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12137 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12138 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12139 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12140 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12141 * gst-libs/gst/vaapi/gstvaapifilter.c:
12142 * gst-libs/gst/vaapi/gstvaapiimage.c:
12143 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12144 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12145 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12146 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12147 * gst-libs/gst/vaapi/gstvaapisurface.c:
12148 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12149 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12150 * gst-libs/gst/vaapi/gstvaapitexture.c:
12151 * gst-libs/gst/vaapi/gstvaapiutils.c:
12152 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12153 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12154 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12155 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12156 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12157 libs: fix code style for errors
12159 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12161 * gst/vaapi/gstvaapipluginbase.c:
12162 * gst/vaapi/gstvaapivideocontext.c:
12163 plugins: update GstGL deprecated symbol
12164 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12166 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12168 * gst/vaapi/gstvaapipluginbase.c:
12169 plugins: direct render when raw video
12170 Enable the direct rendering with linear surfaces if the negotiated src caps
12171 are video/x-raw without features.
12172 Pass also the caps, since they are needed to know the requested caps features.
12174 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12176 * gst/vaapi/gstvaapipluginbase.c:
12177 plugins: move src allocator error to instantiator
12178 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12179 into the ensure_srcpad_allocator() from the caller,
12180 gst_vaapi_plugin_base_decide_allocation()
12182 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12184 * gst/vaapi/gstvaapipluginbase.c:
12185 plugins: enable direct upload if raw video
12186 Enable the direct upload with linear surfaces if the negotiated sink caps are
12187 video/x-raw without features.
12189 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12191 * gst/vaapi/gstvaapipluginutil.c:
12192 * gst/vaapi/gstvaapipluginutil.h:
12193 pluginutil: add gst_caps_is_video_raw()
12195 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12197 * gst/vaapi/gstvaapipluginbase.c:
12198 plugins: receive caps in ensure_sinkpad_allocator()
12199 Instead of receiving the GstVideoInfo structure as parameter, get the original
12200 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12201 which allocator instantiate.
12203 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12205 * gst/vaapi/gstvaapivideomemory.c:
12206 vaapivideomemory: destroy derived image at unmap
12207 If the allocator was configured to use direct upload or rendering, the
12208 generated derived image created at mapping needs to be destroyed after
12209 unmapping, because, in order to process the surface, it should not be marked
12210 as "busy" by the driver.
12212 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12214 * gst/vaapi/gstvaapivideomemory.c:
12215 vaapivideomemory: enhance logs for direct modes
12216 Print, conditionally, only the enabled direct mode.
12218 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12220 * gst/vaapi/gstvaapivideomemory.c:
12221 * gst/vaapi/gstvaapivideomemory.h:
12222 vaapivideomemory: add direct upload flag
12223 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12224 GstVaapiVideoMemory.
12225 It still doesn't apply any functional change.
12227 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12229 * gst/vaapi/gstvaapipluginbase.c:
12230 * gst/vaapi/gstvaapivideomemory.c:
12231 * gst/vaapi/gstvaapivideomemory.h:
12232 vaapivideomemory: set direct rendering at run-time
12233 The way to experiment with the direct rendering is through and internal
12234 compiler pre-processor flag.
12235 The current change set enables a way to specified at run-time, as a flag
12236 passed to the allocator at instanciation time.
12238 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12240 * gst/vaapi/gstvaapivideomemory.c:
12241 vaapivideomemory: log in perf category when copy
12242 Log in performance category when the derive image handling fails, falling back
12245 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12247 * gst/vaapi/gstvaapivideomemory.c:
12248 vaapivideomemory: error log is derive image fails
12249 Instead of a silently failure of the derive image, this patch log an error
12250 message according to the failure.
12252 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12254 * gst/vaapi/gstvaapivideomemory.c:
12255 vaapivideomemory: store surface alloc flags in qdata
12256 For sake of consistency, we should add the requested surface allocation flags
12257 to the object's qdata structure.
12259 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12261 * gst/vaapi/gstvaapivideomemory.c:
12262 vaapivideomemory: category init when object define
12263 Move the Gstreamer debug category initialize to the GObject definition.
12265 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12267 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12268 libs: vaapitexturemap: trivial code-style fix
12270 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12272 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12273 libs: display: egl: avoid recreate native display
12274 Instead of passing the native descriptor of the display, just pass the received
12275 GstVaapiDisplay and reuse it.
12277 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12279 * gst/vaapi/gstvaapipluginbase.c:
12280 plugins: log the GstVaapiDisplay name
12281 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12282 name. Log it instead of the memory address.
12284 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12286 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12287 libs: window: egl: pass native va display
12288 When creating a GstVaapiWindowEGL, it also creates native window by its own
12289 native display. It should pass the native display, either X11 or Wayland.
12290 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12292 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12294 * gst-libs/gst/vaapi/gstvaapidebug.h:
12295 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12296 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12297 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12298 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12299 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12300 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12301 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12302 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12303 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12304 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12305 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12306 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12307 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12308 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12309 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12310 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12311 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12312 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12313 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12314 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12315 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12316 * gst/vaapi/gstvaapivideocontext.c:
12317 libs: display: GstVaapiDisplay as GstObject descendant
12318 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12319 instead of GstVaapiMiniObject. In this way we can use all the available
12320 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12321 In addition, a new debug category for GstVaapiDisplay is created to make it
12322 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12323 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12324 This patch is a step forward to expose GstVaapiDisplay for users in a future
12326 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12327 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12329 === release 1.11.0 ===
12331 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12334 Back to development
12336 === release 1.10.0 ===
12338 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12343 * gstreamer-vaapi.doap:
12346 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12348 * gst/vaapi/gstvaapidecodebin.c:
12349 vaapidecodebin: resurrect disable-vpp property
12350 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12352 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12354 * gst/vaapi/gstvaapidecodebin.c:
12355 vaapidecodebin: name the internal queue
12356 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12358 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12360 * gst/vaapi/gstvaapidecodebin.c:
12361 * gst/vaapi/gstvaapidecodebin.h:
12362 vaapidecodebin: remove unused variables
12363 Since vaapipostproc is only registered if the driver supports it, all the
12364 support for dynamic loading were removed. Though some leftovers remained.
12365 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12367 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12369 * docs/plugins/Makefile.am:
12370 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12371 * docs/plugins/running.xml:
12372 docs: document environment variables
12373 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12375 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12377 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12378 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12379 * gst/vaapi/Makefile.am:
12380 * gst/vaapi/gstvaapidecode.c:
12381 * gst/vaapi/gstvaapidecodebin.c:
12382 * gst/vaapi/gstvaapidecodedoc.c:
12383 docs: replace vaapidecode with each codec
12384 In the spirit of the codec split, this patch removes the documentation of
12385 vaapidecode and adds a page per each possible decoder.
12386 Nonetheless, only those available in the compilation system are going to be
12387 instrospected, because the rest are not registered.
12389 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12391 * gst/vaapi/gstvaapipluginutil.c:
12392 * gst/vaapi/gstvaapivideobuffer.c:
12393 * gst/vaapi/gstvaapivideometa.c:
12394 docs: add missing long descriptions
12396 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12398 * gst/vaapi/gstvaapipostproc.c:
12399 vaapipostproc: use GST_*_OBJECT when possible
12400 Since we can have several vaapipostproc operating in a pipeline, it is useful
12401 to know which one is generating the logging message.
12402 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12404 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12406 * gst/vaapi/gstvaapidecode.c:
12407 * gst/vaapi/gstvaapidecode.h:
12408 vaapidecode: rename member to allowed_sinkpad_caps
12409 vaapidecode has a member named allowed_caps, but this name is not enough
12410 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12411 No functional changes were included.
12412 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12414 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12416 * gst/vaapi/gstvaapiencode_h264.c:
12417 * gst/vaapi/gstvaapiencode_h265.c:
12418 * gst/vaapi/gstvaapisink.c:
12419 * gst/vaapi/gstvaapivideomemory.c:
12420 * gst/vaapi/gstvaapivideometa.c:
12421 * gst/vaapi/gstvaapivideometa_texture.c:
12422 plugins: fix code style for errors
12423 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12425 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12427 * gst/vaapi/gstvaapivideomemory.c:
12428 vaapivideomemory: comment style
12429 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12431 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12433 * gst/vaapi/gstvaapivideomemory.c:
12434 * gst/vaapi/gstvaapivideomemory.h:
12435 vaapivideomemory: rename input parameter
12436 In order to clarify the use of flag as input parameter, it is renamed to
12437 surface_alloc_flag, since it is used when creating a VA surface with certain
12439 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12441 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12443 * gst/vaapi/gstvaapidecode.c:
12444 vaapidecode: rename element description
12445 So encoders and decoders have similar descriptions.
12446 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12448 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12450 * gst/vaapi/gstvaapiencode_h264.c:
12451 * gst/vaapi/gstvaapiencode_h265.c:
12452 vaapiencode: h264, h265: rename codec name
12453 So encoder and decoders have the same codec name.
12454 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12456 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12458 * gst/vaapi/gstvaapipluginbase.c:
12459 plugins: simplify code
12460 Merge two lines of variable declarations.
12461 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12463 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12465 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12466 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12467 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12468 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12469 libs: minor correction for logical consistency
12470 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12471 use its methods, even though it doesn't change functionality.
12472 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12473 GstVaapiObject, hence its methods shall be used.
12474 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12476 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12478 * gst/vaapi/gstvaapivideomemory.c:
12479 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12480 In short GstFdMemory is configured to call close when using
12482 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12484 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12487 * gst-libs/gst/vaapi/Makefile.am:
12488 build: clean up the dlopen usage
12490 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12492 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12493 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12494 encoder: h264,h265: fix regression in offset count
12495 In commit dc35dafa a bug was introduced because I assumed that
12496 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12497 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12499 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12502 docs: update README
12504 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12506 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12507 libs: display: egl: remove unused header include
12508 The header gmodule.h is not used since the library dynamic loading for EGL
12509 display was removed.
12510 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12512 === release 1.9.90 ===
12514 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12520 * gstreamer-vaapi.doap:
12523 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12525 * gst/vaapi/gstvaapidecode.c:
12526 * gst/vaapi/gstvaapidecodebin.c:
12527 * gst/vaapi/gstvaapiencode_h264.c:
12528 * gst/vaapi/gstvaapiencode_h265.c:
12529 * gst/vaapi/gstvaapiencode_jpeg.c:
12530 * gst/vaapi/gstvaapiencode_mpeg2.c:
12531 * gst/vaapi/gstvaapiencode_vp8.c:
12532 * gst/vaapi/gstvaapipostproc.c:
12533 * gst/vaapi/gstvaapisink.c:
12534 vaapi: use new gst_element_class_add_static_pad_template()
12535 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12536 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12538 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12540 * gst/vaapi/gstvaapipluginbase.c:
12541 plugins: reset textures at negotiation/shutdown
12542 When caps reconfiguration is called, the new downstream frame size might be
12543 different. Thus, if the downstream caps change,the display's texture map is
12545 In addition, during pipeline shutdown, textures in texture map have to be
12546 released, since each one have a reference to the GstVaapiDisplay object, which
12547 is a dangerous circular reference.
12548 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12549 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12551 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12553 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12554 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12555 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12556 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12557 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12558 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12559 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12560 * gst/vaapi/gstvaapivideometa_texture.c:
12561 libs: display{egl,glx}: cache GstVaapiTextures
12562 instances when created and reuse
12563 This patch improves performance when glimagesink uploads a GL texture.
12564 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12565 instance of GstVaapiTextureMap, so our internal texture structure can be found
12566 by matching the GL texture id for each frame upload process, avoiding the
12567 internal texture structure creation and its following destruction.
12568 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12569 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12571 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
12573 * gst-libs/gst/vaapi/Makefile.am:
12574 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12575 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12576 libs: vaapitexturemap: implement GstVaapiTextureMap
12577 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12578 reused. Internally it is a hash table.
12579 Note that it is GstObject based rather than GstVaapiObject, as part of the future
12580 converstion to GstObject of most of the code.
12581 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12582 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12584 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12586 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12587 encoder: vp8: Increase the allocation size for coded buffer
12588 We are not getting enough compression for some streams and
12589 encoded frame end up with more size than allocated.
12590 Assuming a compression ratio of 4, which should be good enough
12591 for holding the frames.
12592 https://bugzilla.gnome.org/show_bug.cgi?id=771528
12594 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12596 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12597 encoder: vp9: Fix refresh frame flag setting
12598 While doing the mode-1 referece picture selection,
12599 the circular buffer logic was not correctly setting the
12600 refresh frame flags as per VP9 spec.
12601 Make sure refresh_flag[0] get updated correclty after
12602 each cycle of GST_VP9_REF_FRAMES.
12603 https://bugzilla.gnome.org/show_bug.cgi?id=771507
12605 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12607 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12608 vaapidecode: codec_data minimal size is 7
12609 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12610 stream, not in the codec_data, so the size of codec_data might be 7.
12611 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12612 https://bugzilla.gnome.org/show_bug.cgi?id=771441
12614 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12616 * gst/vaapi/gstvaapidecode.c:
12617 vaapidecode: reset decoder hard when set_format()
12618 set_format() is called by upstream when the stream capabilites has changed.
12619 Before, if the new stream is compatible with the old one the VA decoder was
12620 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12621 when the upstreamer parsers gets more details of the stream, such as the
12622 framerate. Hence, when the src caps are negotiates, the further sink caps
12623 updates are ignored.
12624 This patch forces the VA decoder destroying and recreation when set_format()
12626 https://bugzilla.gnome.org/show_bug.cgi?id=770921
12628 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
12631 configure: Depend on gstreamer 1.9.2.1
12633 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12635 * gst/vaapi/gstvaapivideomemory.c:
12636 Revert "vaapivideomemory: load VA Image when mapping to write"
12637 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12639 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
12642 Automatic update of common submodule
12643 From b18d820 to f980fd9
12645 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
12648 Automatic update of common submodule
12649 From f49c55e to b18d820
12651 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12653 * gst/vaapi/gstvaapipluginbase.c:
12654 plugins: set allocator's image size to sinkpad bufferpool
12655 Otherwise the buffer is always ditched by the bufferpool, losing performance.
12656 https://bugzilla.gnome.org/show_bug.cgi?id=771035
12658 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12660 * gst-libs/gst/vaapi/gstvaapisurface.c:
12661 libs: surface: ensure composite overlay is not bigger
12662 Ensure the composition overlay rectangle (subtitles) is not bigger than
12663 the surface where it is going to be composited and rendered.
12664 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12666 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
12668 * gst/vaapi/gstvaapivideomemory.c:
12669 vaapivideomemory: load VA Image when mapping to write
12670 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12671 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12673 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12675 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12677 * gst/vaapi/gstvaapidecode.c:
12678 vaapidecode: merge vc1 and wmv3 elements
12679 This patch merges vaapivc1dec and vaapiwmv3dec into a single
12680 vaapivc1dec. Also, removed the WMVA format, since it is not
12681 supported by libva.
12682 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12684 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12686 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12687 decoder: vc1: fails only on advanced profile
12688 In commit 2eb4394 the frame coding mode was verified for progressive
12689 regardless the profile. But the FCM is only valid in the advanced
12690 profile. This patch checks for the advanced profile before verifying FCM for
12692 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12694 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12696 * gst/vaapi/gstvaapi.c:
12697 vaapi: DISPLAY envvar as dependency
12698 In a multiple video cards system, a X11 environment may have different VA
12699 capabilities. This patch tracks the DISPLAY environment variable to
12700 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12701 https://bugzilla.gnome.org/show_bug.cgi?id=770357
12703 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12705 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12706 decoder: vc1: Fail only on actual interlaced frames
12707 In the earlier patch:
12708 f31d9f3 decoder: vc1: Print error on interlaced content
12709 Decoding would error out if the interlace flag was set in the
12710 sequence bdu. This isn't quite right because a video can have this
12711 flag set and yet not have any interlaced pictures.
12712 Here instead we error out when either parsing a field bdu or
12713 decoding a frame bdu which has fcm set to anything other than
12715 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12716 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12718 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
12721 Back to development
12723 === release 1.9.2 ===
12725 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
12730 * gstreamer-vaapi.doap:
12733 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
12735 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12736 decoder: vc1: Print error on interlaced content
12737 Interlaced video is as yet unsupported in the vc1 element. Print
12738 an error to make that more obvious.
12739 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12741 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12743 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12744 encoder: h264: fix C90 mixed declarations and code
12745 Commit 4259d1a introduced this compilation error. This patch fixes it.
12747 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12749 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12750 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12751 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12752 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12753 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12754 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12755 to avoid overflows, underflows and loss of precision.
12756 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12758 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12760 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12761 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12762 vaapiencode: h264,h265: validate fps numerator
12763 Validate that fps numerator is non-zero so it can be used to calculate
12764 the duration of the B frame.
12765 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12766 order to aviod overflows, underflows and loss of precision.
12767 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12769 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
12771 * gst/vaapi/gstvaapi.c:
12772 encoders: demote to RANK_NONE since not fit for autoplugging yet
12773 Encoders claim to support a whole bunch of input formats but then
12774 just error out if the format is not actually supported, even if
12775 there's a converter in front. This means they're not fit for
12776 autoplugging in encodebin or camerabin yet and therefore should
12777 not have a rank. People can still use them in custom pipelines.
12778 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12780 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12782 * gst/vaapi/gstvaapipluginbase.c:
12783 plugins: check dmabuf-import for sink pad allocator
12784 Check earlier if upstream video source has activated the dmabuf-import
12785 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12788 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12790 * gst/vaapi/gstvaapipluginbase.c:
12791 plugins: reset allocators if video info changed
12792 If the frame size or format, change, the allocators are reset, so a new ones
12793 can be created with the new video info.
12795 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12797 * gst/vaapi/gstvaapipluginbase.c:
12798 plugins: remove sink pad allocator if caps change
12799 If the negotiated sinkpad caps change, destroy the assignated allocator,
12800 because it is not valid anymore.
12802 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12804 * gst/vaapi/gstvaapipluginutil.c:
12805 * gst/vaapi/gstvaapipluginutil.h:
12806 pluginutil: const params to gst_video_info_changed()
12807 Since they are not modified, we should mark them as const.
12809 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12811 * gst/vaapi/gstvaapipluginbase.c:
12812 * gst/vaapi/gstvaapivideomemory.c:
12813 * gst/vaapi/gstvaapivideomemory.h:
12814 gstvaapivideomemory: allocator's image size getter
12815 Add the method gst_allocator_get_vaapi_image_size() for the
12816 GstVaapiVideoAllocator, which gets the size of the allocated images with the
12817 current video info.
12818 This method replaces the direct call to the allocator's image info when the
12819 pool is configured.
12821 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
12823 * gst/vaapi/gstvaapipluginbase.c:
12824 plugins: update buffer pool size with new allocator's image size
12825 Depends on media, video size is sometimes updated with new allocator.
12826 It leads to dismatch between bufferpool's set size and real allocated buffer size.
12827 In this case, it causes every buffer is freed during release in bufferpool,
12828 which should be reused. This affects performance.
12829 https://bugzilla.gnome.org/show_bug.cgi?id=769248
12831 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12834 configure: remove gmodule-2.0 EGL dependency
12835 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12836 thus the dependency to gmodule-2.0 is not mandatory anymore.
12838 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12841 configure: Fix non-fatal PKG_CHECK_MODULES invocations
12842 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12843 the package is missing, but action-if-not-found was given as an empty
12844 string which still causes the default action to run, which halts
12846 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12847 https://bugzilla.gnome.org/show_bug.cgi?id=769237
12849 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12851 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12852 libs: egl: remove dynamic library loading code
12853 Since the upstream of gstreamer-vaapi, the library is not a public shared
12854 object anymore. But the EGL support depended on this dynamic library, so the
12855 EGL support was broken.
12856 This patch removes the dynamic library loading code and instantiates the
12857 EGL display using either X11 or Wayland if available.
12858 https://bugzilla.gnome.org/show_bug.cgi?id=767203
12860 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12862 * gst/vaapi/gstvaapi.c:
12863 * gst/vaapi/gstvaapidecode.c:
12864 * gst/vaapi/gstvaapidecode.h:
12865 vaapidecode: register only the available decoders
12866 In order to register only the available decoders, this patch queries the
12867 created test VA display, which uses the currently used back-end (X11, Wayland,
12868 DRM, …) on the used display device.
12869 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12871 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12873 * gst/vaapi/gstvaapi.c:
12874 * gst/vaapi/gstvaapipluginutil.c:
12875 * gst/vaapi/gstvaapipluginutil.h:
12876 vaapi: register only the available encoders
12877 In order to register only the available encoders, this patch queries the
12878 created test VA display, which uses the currently used back-end (X11,
12879 Wayland, DRM, …) on the used display device.
12880 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12882 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12884 * gst/vaapi/gstvaapidecode.c:
12885 * gst/vaapi/gstvaapidecodebin.c:
12886 vaapidecode: split all the codecs
12887 Split the vaapidecode to all the supported codecs with the format
12889 vaapidecode is stil registered as a GObject type, but not as a
12890 GStreamer feature, so it can be used internally by vaapidecodebin without
12891 changing its code too much.
12892 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12894 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12896 * gst/vaapi/gstvaapidecodebin.c:
12897 vaapidecodebin: simplify the code
12898 Since the elements dependant of the VA video processor are now only registered
12899 if it is available, vaapidecodebin code can be simplified a lot, removing all
12900 the code required to check if the VA video processor was available.
12901 https://bugzilla.gnome.org/show_bug.cgi?id=768899
12903 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12905 * gst/vaapi/gstvaapidecode.c:
12906 vaapidecode: delay the GstVaapiDisplay instantiating
12907 Delay the GstVaapiDisplay instantiating until when changing the state from
12908 READY to PAUSE. In this way the element has more chances to find an already
12909 created GstVaapiDisplay, or a GL context, in the pipeline.
12910 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12912 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12914 * gst/vaapi/gstvaapipluginutil.c:
12915 pluginutil: set GLX display type
12916 The function gst_vaapi_create_display_from_gl_context() cretes a
12917 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
12918 when the GL platform was GLX, but a plain X11 VA display.
12919 This patch fixes that, by querying the GL platform earlier.
12920 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12922 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12924 * gst/vaapi/gstvaapipluginbase.c:
12925 * gst/vaapi/gstvaapivideocontext.c:
12926 * gst/vaapi/gstvaapivideocontext.h:
12927 plugins: add gst_vaapi_plugin_base_find_gl_context()
12928 Using the GstContext mechanism, it is possible to find if the pipeline
12929 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
12930 meta. This is interesting because we could negotiate system memory caps
12931 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
12932 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12934 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12936 * gst/vaapi/gstvaapipluginbase.c:
12937 * gst/vaapi/gstvaapipluginbase.h:
12938 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
12939 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
12942 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12944 * gst/vaapi/gstvaapipluginbase.h:
12945 plugins: remove common change_state() vmethod
12946 Remove the common change_state() vmethod for all the plugins, since no one is
12949 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12951 * gst/vaapi/gstvaapidecode.c:
12952 vaapidecode: remove change_state() vmethod
12953 Since the driver checkup is done at registering, there is no need to do it
12954 when changing the element state from NULL to READY. This patch remove this
12955 vmethod from vaapidecode.
12957 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12959 * gst/vaapi/gstvaapi.c:
12960 vaapi: register vaapipostproc only if supported
12961 Query the GstVaapiDisplay to know if the driver supports video
12962 postprocessing. If does, then register vaapipostproc and vaapidecodebin
12964 This patch will simplify the design of vaapidecodebin.
12965 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12967 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12969 * gst/vaapi/gstvaapi.c:
12970 vaapi: don't register if VA driver is unsupported
12971 Using the test VA display, the driver name is queried, and if it is not
12972 white-listed, the plugin rejects to register any element.
12973 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12975 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12977 * gst/vaapi/gstvaapipluginbase.c:
12978 * gst/vaapi/gstvaapipluginutil.c:
12979 * gst/vaapi/gstvaapipluginutil.h:
12980 plugins: add gst_vaapi_driver_is_whitelisted()
12981 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
12982 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
12983 when registering the plugin's feature set with the test VA display.
12984 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12986 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12988 * gst/vaapi/gstvaapi.c:
12989 vaapi: instantiate a VA display when registering
12990 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
12991 features, if it fails, no gstreamer-vaapi element is registering.
12992 The purpose of this patch is to avoid a situation where the user has
12993 gstreamer-vaapi installed but their VA-API setup is not functional, which may
12994 lead to unexpected behavior.
12995 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12997 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13000 * gst/vaapi/gstvaapi.c:
13001 vaapi: declare external dependencies
13002 There are two main external dependencies that define the feature set of this
13003 plugin: a) the kernel and b) the VA driver
13004 This patch tracks both dependencies, if any of them change, GStreamer will
13005 re-inspect the plugin.
13006 The kernel is tracked through the device files /dev/dri/card*
13007 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13008 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13009 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13010 since they modify the driver lookup.
13011 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13012 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13014 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13016 * gst/vaapi/gstvaapidecode.c:
13017 vaapidecode: remove unneeded initializations
13018 GObject's memory is set to zero, so there is no need to initialize to zero or
13019 NULL it's class variables.
13021 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13023 * gst/vaapi/gstvaapipluginbase.h:
13024 plugins: remove undefined macros
13026 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13028 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13029 Revert "gstvaapisurface_drm: release image when done"
13030 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13031 372a03a9e38acbf435eb80bf31d9a9844069e504.
13032 While the dmabuf handle is exported, the derive image must exist, otherwise
13033 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13034 leading into a file descriptors leak.
13036 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13038 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13039 encoder: h265: fix code-style
13041 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13043 * gst/vaapi/gstvaapipostproc.c:
13044 vaapipostproc: update filters at color balance
13045 This is a fix for a regression of previous commit, which updates the filters
13046 only when the property is set, because it is also required to update the
13047 filter when the color balance interface change its values.
13049 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13051 * gst/vaapi/gstvaapipostproc.c:
13052 * gst/vaapi/gstvaapipostproc.h:
13053 vaapipostproc: make it enable/disable pass-through mode
13054 In case that sink caps and src caps are same, and no filtering parameter set,
13055 pass-through mode is enabled.
13056 If new filtering parameter is set during playback, it makes it reconfiguring,
13057 so that pass-through mode is changed
13058 In addition, updating filter is performed during reconfiguration, if needed.
13059 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13061 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13063 * gst-libs/gst/vaapi/gstvaapifilter.c:
13064 * gst-libs/gst/vaapi/gstvaapifilter.h:
13065 * gst/vaapi/gstvaapipostproc.c:
13066 vaapipostproc: checking and updating filter parameter only when it's set
13067 This patch is to avoid checking filter value at every frame.
13068 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13070 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13072 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13073 decoder: h265: handle the SEI NAL units included in codec_data
13074 The prefix/suffix SEI nal units can appear in codec_data too
13075 which weren't handled before. Parse these SEI headers to
13077 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13079 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13081 * docs/plugins/Makefile.am:
13082 build: doc: do not redefine MAINTAINERCLEANFILES
13083 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13084 overload it, the files should be added.
13086 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13088 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13089 encoder: h264: Fix MVC encode while enabling dct8x8
13090 Pack the transform_8x8_mode_flag and other necessary rbsp data
13091 in packed_pps header for MVC encode.
13092 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13094 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13096 * gst/vaapi/gstvaapisink.c:
13097 vaapisink: demote a debug message to trace
13098 Reduces noise when debugging.
13100 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13102 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13103 wayland: Error check before using cached wl_display
13104 A planar(or some other) buffer allocation may fail on the driver, then
13105 the wayland connection becomes invalid, not able to send request or
13106 receive any event. So we need to set up a new wayland connection if
13107 there's an error detected on the cached wl_display.
13108 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13109 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13111 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13114 Automatic update of common submodule
13115 From ac2f647 to f49c55e
13117 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13119 * gst/vaapi/gstvaapiencode.c:
13120 vaapiencode: demote a log to trace level
13121 Removes noise when debugging.
13123 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13125 * gst/vaapi/gstvaapiencode.c:
13126 vaapiencode: implement flush() vmethod
13127 In order to handle correctly seek and other operations, vaapiencode should
13128 flush all the remaining data from the encoder without pushing it downstream.
13129 This patch implements the flush() vmethod, only after of pausing the
13130 source pad task, and restarting it again after the flush stop.
13131 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13132 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13134 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13136 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13137 decoder: vc1: flush dpb only if opened
13138 Flush the decode picture buffer, if and only if, the decoder is
13139 started. Otherwise the dpb structure might be NULL.
13140 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13142 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13144 * gst/vaapi/gstvaapidecode.c:
13145 * gst/vaapi/gstvaapidecode.h:
13146 vaapidecode: drop non-keyframe in reverse playback
13147 To avoid surface-exhausted situation during reverse playback,
13148 drop frames except for key frame.
13149 Also, to avoid the corruption of the parser state, flush() vmethod
13150 doesn't destroy the VA decoder when playing in reverse.
13151 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13152 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13154 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13156 * gst/vaapi/gstvaapidecode.c:
13157 vaapidecode: unref output frame earlier
13158 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13159 unref that extra reference earlier making the code simpler to follow.
13160 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13162 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13164 * gst/vaapi/gstvaapidecode.c:
13165 vaapidecode: remove gst_vaapidecode_internal_flush()
13166 As gst_vaapidecode_finish() is the only callee of
13167 gst_vaapidecode_internal_flush(), it is better to inline it.
13168 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13170 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13172 * gst/vaapi/gstvaapidecode.c:
13173 vaapidecode: flush output adapter at drain()
13174 Calling drain() vmethod means "decode any data it can at this point, but that
13175 more data may arrive after". Hence, vaapidecode should check if there is data
13176 in the output adapter and process them, without destroying the decoded picture
13178 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13179 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13180 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13182 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13184 * gst/vaapi/gstvaapidecode.c:
13185 vaapidecode: call purge at flush()
13186 Calling flush() vmethod means "to flush all remaining data from the decoder
13187 without pushing it downstream".
13188 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13189 gst_video_decoder_have_frame() if there is still something in the input
13190 adapter, which may push buffers to downstream by calling handle_frame().
13191 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13192 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13193 decoder and releases all the rest of decoded frames.
13194 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13196 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13198 * tests/elements/Makefile.am:
13199 * tests/elements/test-vaapisink.c:
13200 test: elements: remove spurious linkage
13201 Element tests only need to link against gstreamer libraries.
13203 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13206 configure: Require GLib >= 2.40 like everywhere else
13208 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13211 Back to development
13213 === release 1.9.1 ===
13215 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13221 * gstreamer-vaapi.doap:
13224 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13226 * tests/elements/test-vaapisink.c:
13227 tests: elements: rotate orientation event
13229 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13232 * tests/Makefile.am:
13233 * tests/elements/Makefile.am:
13234 * tests/elements/test-vaapisink.c:
13235 tests: elements: Add testsuite for vaapisink
13236 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13238 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13240 * gst-libs/gst/vaapi/gstvaapitypes.h:
13241 * gst-libs/gst/vaapi/gstvaapivalue.c:
13242 * gst/vaapi/gstvaapisink.c:
13243 * gst/vaapi/gstvaapisink.h:
13244 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13245 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13247 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13249 * gst/vaapi/gstvaapipostproc.c:
13250 vaapipostproc: return caps template if no display
13251 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13252 be able to return the available raw caps handled by the VA display, but that
13253 only should happen when there a VA display. If there's none, the element
13254 should use the caps template.
13255 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13257 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13259 * gst/vaapi/gstvaapipostproc.c:
13260 vaapipostproc: don't require a vaapi display for all caps queries
13261 This delays the requirement of having a GstVaapiDisplay until later
13262 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13264 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13266 * gst-libs/gst/vaapi/gstvaapiutils.c:
13267 utils: report VP9 profiles
13268 Add VP9Profile0-3 name mapping.
13270 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13272 * gst/vaapi/gstvaapi.c:
13273 vaapi: nest includes under USE_ENCODER macro
13274 This is a missed changeset from commit 1c05c53, since also header includes
13277 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13279 * gst/vaapi/gstvaapi.c:
13280 vaapi: nest encoders under USE_ENCODER macro
13281 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13282 macro, it is clearer to nest them, showing explicitly the dependency relation.
13284 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13286 * gst/vaapi/gstvaapivideocontext.c:
13287 vaapivideocontext: check if query context is NULL
13288 Under certain conditions the element might receive a positive context query
13289 but without a context instance. This situation will lead to a segmentation
13290 fault when traversing the context list in the pipeline.
13291 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13293 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13295 * gst-libs/gst/vaapi/Makefile.am:
13296 * gst-libs/gst/vaapi/glibcompat.h:
13297 * gst-libs/gst/vaapi/sysdeps.h:
13298 remove unused glibcompat.h
13299 glibcompat.h is no longer doing anything. Remove it.
13300 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13301 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13303 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13305 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13306 encoder: h264: Use high profile by default
13307 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13308 by default. This will cause the default profile to be high instead
13309 of baseline. In most situations this is the right decision, and
13310 the profile can still be lowered in the case of caps restrictions.
13311 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13312 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13314 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13316 * gst/vaapi/gstvaapidecodebin.c:
13317 vaapidecodebin: element warning if missing element
13318 Raise an element warning if a required element is not available, thus the
13319 pipeline will post a warning message and the application will be informed.
13321 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13323 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13324 decoder: h265: fix to release all dpb pictures
13325 Without this, all dpb pictures are not released during flush,
13326 because we used the global dpb_count variable for checking the
13327 dpb fullness which get decremented in dpb_remove_index()
13328 routine during each loop iteration.
13329 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13331 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13334 Automatic update of common submodule
13335 From ac2f647 to f363b32
13337 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13339 * gst/vaapi/gstvaapidecode.c:
13340 * gst/vaapi/gstvaapipostproc.c:
13341 vaapi: fix minor leaks
13342 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13344 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13346 * gst/vaapi/gstvaapi.c:
13347 vaapi: remove an already included header
13348 gst/gst.h is already included in gstcompat.h
13350 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13352 * gst/vaapi/gstvaapidecodebin.c:
13353 vaapidecodebin: add vp9 in sink pad template
13355 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13357 * gst/vaapi/gstvaapisink.c:
13358 vaapisink: return caps template if no display
13359 If vaapisink received a caps query before getting a VA display, it returned
13360 only the surfaces related caps. This behavior broke the autovideosink
13362 This patch returns the pad's template caps if no VA display, otherwise the
13363 caps are crafted as before.
13364 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13366 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13368 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13369 decoder: vp9: Update comment about context resets
13370 Clarify that vaapi context resets are never needed for vp9, but
13371 that ensure_context() needs called when the size increases so that
13372 new surfaces can be allocated.
13373 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13374 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13376 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13378 * gst-libs/gst/vaapi/gstvaapicontext.c:
13379 * gst-libs/gst/vaapi/gstvaapicontext.h:
13380 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13381 gstvaapicontext: control reset_on_resize with option
13382 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13383 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13385 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13387 * gst/vaapi/gstvaapivideobufferpool.c:
13388 vaapivideobufferpool: add video meta to config when needed
13389 In cases where we know the video meta must be present, add it to
13390 the pool configuration.
13391 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13392 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13394 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13396 * gst/vaapi/gstvaapipluginbase.c:
13397 plugins: retry pool config
13398 if gst_buffer_pool_set_config returns FALSE, check the modified
13399 config and retry set_config if the config is still acceptable.
13400 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13401 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13403 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13405 * gst/vaapi/gstvaapivideomemory.h:
13406 vaapivideomemory: internal attributes to methods
13407 Mark as internal the functions used by VA-API dmabuf allocator.
13409 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13411 * gst/vaapi/gstvaapipluginbase.c:
13412 plugins: remove precondition for decide_allocation()
13413 There's no need to check for the display in the plugin object when
13414 decide_allocation() vmethod is called, because the display will created or
13415 re-created along the method execution.
13417 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13419 * gst/vaapi/gstvaapipluginbase.c:
13420 plugins: avoid possible memory leaks
13421 Get the pool config just before use it, to avoid a memory leak if the
13422 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13423 cannot be set, avoid keep a not used allocator in the pool.
13425 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13427 * gst/vaapi/gstvaapipluginbase.c:
13428 plugins: use GstParentBufferMeta
13429 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13430 use the GStreamer's GstParentBufferMeta.
13431 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13433 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13435 * gst/vaapi/gstvaapipluginbase.c:
13436 plugins: cache VASurfaces from dmabufs
13437 This patch avoids the creation of a VASurface each time a new input buffer is
13438 processed, caching them in the input buffer itself.
13439 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13441 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13443 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13444 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13445 * gst/vaapi/gstvaapipluginbase.c:
13446 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13447 Instead of passing the data already in GstVideoInfo, let's just pass the
13448 GstVideoInfo structure.
13449 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13451 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13453 * gst/vaapi/gstvaapipluginbase.c:
13454 * gst/vaapi/gstvaapipluginbase.h:
13455 plugins: use an unique allocator per pad
13456 Instead of instantiating an allocator per vaapivideobufferpool, only one
13457 allocator is instantiated per element's pad and shared among future pools.
13458 If the pad's caps changes, the allocator is reset.
13459 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13461 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13463 * gst/vaapi/gstvaapipluginbase.c:
13464 * gst/vaapi/gstvaapivideobufferpool.c:
13465 * gst/vaapi/gstvaapivideobufferpool.h:
13466 vaapivideobufferpool: share options flag with pluginbase
13467 Originally, vaapivideobufferpool has a set of boolean variables for the
13468 buffer configuration options.
13469 This pach changes these boolean variables for a single bitwise, just as
13470 it is used in pluginbase. Hence, the internal enum was moved to
13471 vaapivideobufferpool header.
13472 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13474 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13476 * gst/vaapi/gstvaapipluginbase.c:
13477 plugins: add gst_vaapi_plugin_base_create_pool()
13478 This patch refactors the code in pluginbase in order to centralize the buffer
13479 pool instantiation. As the buffer pool config may have different options, these
13480 are gathered using a bitwise flag.
13481 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13483 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13485 pluginbase negotiates allocator with bufferpool
13486 Originally vaapivideobufferpool instantiates its own allocator regardless the
13487 received configuration, and it relies in custom configuration options to
13488 choose which kind of allocator instantiate.
13489 This patch transfers the responsibility of the allocator instantiate to
13490 vaapipluginbase and pass it to the vaapivideobufferpool through its
13492 * gst/vaapi/gstvaapipluginbase.c
13493 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13494 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13495 bufferpool configuration
13496 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13498 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13499 allocator in bufferpool configuration
13500 * gst/vaapi/gstvaapivideobufferpool.c
13501 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13502 allocator, process the received one through its configuration.
13503 * gst/vaapi/gstvaapivideobufferpool.h: removed
13504 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13505 * gst/vaapi/gstvaapivideomemory.c
13506 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13507 allocator with the vaapi qdata.
13508 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13510 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13512 * gst/vaapi/gstvaapivideobufferpool.c:
13513 vaapivideobufferpool: keep only current video info
13514 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13515 the current one, the negotiated. The old one is not needed at all.
13516 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13518 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13520 * gst/vaapi/gstvaapipluginbase.c:
13521 * gst/vaapi/gstvaapipluginutil.c:
13522 * gst/vaapi/gstvaapipluginutil.h:
13523 * gst/vaapi/gstvaapivideomemory.c:
13524 pluginutil: add gst_video_info_force_nv12_if_encoded()
13525 This lines repeat a couple times in the code, so it would be better to put it
13527 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13529 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13531 * gst/vaapi/gstvaapipluginutil.c:
13532 * gst/vaapi/gstvaapipluginutil.h:
13533 * gst/vaapi/gstvaapipostproc.c:
13534 * gst/vaapi/gstvaapivideobufferpool.c:
13535 pluginutil: add gst_video_info_changed() helper
13536 This function is shared among different elements, so let factorized it.
13537 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13539 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13541 * gst/vaapi/gstvaapipostprocutil.c:
13542 vaapipostproc: Add colorimetry attributes to src caps
13543 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13545 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13547 * gst/vaapi/gstvaapidecode.c:
13548 vaapidecode: remove chroma-site and colorimetry from src caps
13549 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13551 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13553 * gst/vaapi/gstvaapipostproc.c:
13554 * gst/vaapi/gstvaapipostproc.h:
13555 vaapipostproc: add postproc_lock to protect data members
13556 Add a mutex to postproc to protect concurrent access to data members.
13557 Previously set_caps() could release the allowed_srcpad_caps while
13558 transform_caps was in the middle of using it.
13559 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13560 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13562 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13564 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13565 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13566 encoder: vp9: Add simple algorithms for reference picture selection
13567 Added two modes(as properties) for reference picture selection:
13568 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13569 and LastRef is pointing to the previous frame.
13570 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13571 and n-2 th frame as AltRef
13572 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13574 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13576 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13577 encoder: vp9: Define Max frame width and height
13578 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13580 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13582 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13583 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13584 encoder: vp9: Add more propertis for tuning encode quality
13585 Added three tuning properties:
13588 3: luma ac quant-table index
13589 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13591 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13593 * gst/vaapi/Makefile.am:
13594 * gst/vaapi/gstvaapi.c:
13595 * gst/vaapi/gstvaapiencode_vp9.c:
13596 * gst/vaapi/gstvaapiencode_vp9.h:
13597 Add vp9 encode element to "vaapi" plugin
13598 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13600 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13602 * gst-libs/gst/vaapi/Makefile.am:
13603 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13604 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13605 Add vp9 encoder support in libgstvaapi
13606 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13608 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13611 build: Add check for VP9 encode API support in libva
13612 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13614 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13616 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13617 gstvaapisurface_drm: fix internal documentation
13619 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13621 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13622 gstvaapisurface_drm: fix code-style
13624 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13626 * gst/vaapi/gstvaapipluginbase.c:
13627 plugins: remove unused header
13628 Remove the include of gst/allocators/allocators.h since it is not used.
13630 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13632 * gst/vaapi/gstvaapivideobufferpool.h:
13633 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13634 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13635 keep compatibility definition.
13636 This patch removes the definition of
13637 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13638 gst-plugins-base version 1.2.2
13640 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13642 * gst/vaapi/gstvaapipluginbase.c:
13643 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13644 This is a helper function to improve the readability of
13645 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13648 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13650 * gst/vaapi/gstvaapipluginbase.c:
13651 plugins: deactivate buffer pool before unref
13652 This buffer pool may still be processing buffers when a caps renegotiation is
13653 done. This one-liner patch deactivates the pool to drain it before it
13656 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13658 * gst/vaapi/gstvaapipluginbase.c:
13659 plugins: no sinkpad bufferpool when decoder
13660 Right now, the decoders create a buffer pool for their sink pad which is not
13661 used at all, because the decoders have never proposed it to upstream.
13662 This patch avoids the buffer pool instantiating when the element inherits from
13663 the GstVideoDecoder class.
13665 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13667 * gst/vaapi/gstvaapipluginbase.c:
13668 plugins: avoid to get/set pool config twice
13669 This patch is a bit of optimization, since the bufferpool configuration is get
13670 when the pool is created. Hence, we only need to request it when the pool from
13671 the allocation query is reused.
13673 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13675 * gst/vaapi/gstvaapipluginbase.c:
13676 plugins: destroy pool earlier if non-vaapi
13677 If the offered pool in decide_allocation() vmethod doesn't have the
13678 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13679 so it could be created later.
13681 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13683 * gst/vaapi/gstvaapivideobufferpool.c:
13684 vaapivideobufferpool: split caps validation
13685 When validating the caps from bufferpool config, this patch distinguishes the
13686 error from no caps received (NULL) from the invalid caps (cannot be converted
13687 into GstVideoInfo structure).
13689 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13691 * gst/vaapi/gstvaapidecode.c:
13692 * gst/vaapi/gstvaapipluginbase.c:
13693 plugins: check for caps in query earlier
13694 Check for caps as soon gst_query_parse_allocation() returns.
13696 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13698 * gst/vaapi/gstvaapipluginbase.c:
13699 * gst/vaapi/gstvaapipluginbase.h:
13700 plugins: remove unused variables
13701 This variables stopped to be used since commit 001a5c63, which removed the
13704 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13706 * gst/vaapi/gstvaapipluginbase.c:
13707 plugins: fix potential memleak from commit 9159328
13708 If gst_video_info_from_caps() fails it is required to unref the instantiated
13711 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13713 * gst/vaapi/gstvaapipostproc.c:
13714 vaapipostproc: handle if gst_video_info_from_caps() fails
13715 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13718 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13720 * gst/vaapi/gstvaapipluginbase.c:
13721 plugins: handle if gst_video_info_from_caps() fails
13722 Let's play safe and return error if, somehow, the received caps are wrong.
13724 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13726 * gst/vaapi/gstvaapipluginbase.c:
13727 plugins: relate errors to instance
13728 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13729 will show the name of the vaapipluginbase instance that failed.
13730 Also, the code-style is fixed, where some error labels need to be surrounded
13733 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13735 * gst/vaapi/gstvaapipluginbase.c:
13736 * gst/vaapi/gstvaapipluginutil.c:
13737 * gst/vaapi/gstvaapisink.c:
13738 plugins: use GstVideoInfo accessors
13739 Instead of access to GstVideInfo members directly, use their accessors
13740 macros. This patch makes more resistance to future changes in GStreamer core.
13742 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13744 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13745 * gst/vaapi/gstvaapipluginbase.c:
13746 * gst/vaapi/gstvaapipostproc.c:
13747 * tests/simple-encoder.c:
13748 remove spurious gst_video_info_init()
13749 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13750 gst_video_info_init(), hence it is not required to call it before them. This
13751 patch removes these spurious calls.
13753 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13755 * gst/vaapi/gstvaapipluginbase.c:
13756 vaapipluginbase: code-style: rename goto label
13757 The error labels have error_ prefix, but this one.
13759 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13761 * gst/vaapi/gstvaapivideomemory.c:
13762 vaapivideomemory: use allocator custom alloc flag
13763 Instead of a dummy alloc() vmethod, the allocator instance set the flag
13764 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13765 gst_allocator_alloc() on the allocator.
13767 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13769 * gst/vaapi/gstvaapivideobufferpool.c:
13770 vaapivideobufferpool: relate errors to instance
13771 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13772 the vaapivideobufferpool instance that failed.
13774 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13776 * gst/vaapi/gstvaapipluginbase.c:
13777 plugins: remove gst_vaapi_plugin_base_set_pool_config()
13778 This function helper make sense for GStreamer 1.2, but it is not helpful for
13779 greater version since the validation is already done in the API implementation.
13780 Thus, it is removed.
13782 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13784 * gst/vaapi/gstvaapipluginbase.c:
13785 gstvaapipluginbase: Fix typo in doc
13787 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13789 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13790 encoder : h264: Disable b-frame encode in low-power mode
13791 This is a workaround since vaapi-intel-driver doesn't have
13792 support for B-frame encode when utilizing low-power-enc
13794 Fixme :We should query the VAConfigAttribEncMaxRefFrames
13795 instead of blindly disabling b-frame support and set b/p frame count,
13796 buffer pool size etc based on the query result.
13797 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13799 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13801 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13802 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13803 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13804 Remove the duplicate property "low-power-enc" and use the
13805 tune property for enabling low power encoding mode.
13806 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13808 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13810 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13811 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13812 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13814 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13816 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13817 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13818 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13819 encoder: h264: Add support of low power/high performance encoding mode
13820 Added a new property "low-power-enc" for enabling low power
13821 encoding mode. Certain encoding tools may not be available
13822 with the VAEntrypointEncSliceLP.
13823 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13825 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13827 * gst-libs/gst/vaapi/gstvaapitypes.h:
13828 * gst-libs/gst/vaapi/gstvaapiutils.c:
13829 * gst-libs/gst/vaapi/gstvaapivalue.c:
13830 Add mapping for Macroblock level rate control (VA_RC_MB)
13832 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13834 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13835 gstvaapidisplay: Add VAEntrypointEncSliceLP support
13836 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13838 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13840 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13841 * gst-libs/gst/vaapi/gstvaapiprofile.h:
13842 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13843 This is for implementations that supports low_power/high_performance
13844 variant for slice level encode.
13845 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13847 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13849 * gst/vaapi/gstvaapipostprocutil.c:
13850 vaapipostproc: negotiate frame size fixation
13851 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
13852 using the sink caps, also it use the next capsfilter.
13853 This code is a shameless copy of gst_video_scale_fixate_caps() from
13854 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
13855 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13857 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13859 * gst/vaapi/gstvaapipostprocutil.c:
13860 vaapipostproc: don't use GstVideoInfo for src caps
13861 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
13862 this patch enables the first step for caps negotiation with a possible
13863 following caps filter.
13864 _get_preferred_caps() will traverse the possible src caps looking for the one
13865 wit the preferred feature and the preferred color format. Then the color
13866 format, the frame size and the frame rate are fixated.
13867 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13869 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13871 * gst/vaapi/gstvaapipostproc.c:
13872 * gst/vaapi/gstvaapipostprocutil.c:
13873 * gst/vaapi/gstvaapipostprocutil.h:
13874 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
13875 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
13876 No functional changes.
13877 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13879 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13881 * gst/vaapi/gstvaapipostproc.c:
13882 vaapipostproc: simplify code
13883 Change a convoluted snippet to find the preferred color format in the peer
13885 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13887 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13889 * gst/vaapi/gstvaapipostproc.c:
13890 vaapipostproc: use othercaps for preferred caps
13891 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
13892 from fixate_caps() vmethod to find the preferred caps feature and color
13894 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13896 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13898 * gst/vaapi/gstvaapipostproc.c:
13899 vaapipostproc: add fixate_caps() vmethod
13900 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
13901 implements the fixate_caps() vmethod and moves code around.
13902 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13904 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13906 * gst/vaapi/Makefile.am:
13907 * gst/vaapi/gstvaapipostproc.c:
13908 * gst/vaapi/gstvaapipostprocutil.c:
13909 * gst/vaapi/gstvaapipostprocutil.h:
13910 vaapipostproc: set early properties restrictions
13911 When running transform_caps() vmethod, returning the srcpad caps, the caps are
13912 early restricted to the element properties set: width, height, format and
13914 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
13916 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13918 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13920 * gst/vaapi/gstvaapipostproc.c:
13921 vaapipostproc: log the caps transformation
13922 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13924 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13926 * gst/vaapi/gstvaapipostproc.c:
13927 vaapipostproc: no GLTextureUpload in sinkpad
13928 As the vaapipostproc does not process frames with the VideoGLTextureUpload
13929 meta, the feature is removed from the sink pad template.
13930 https://bugzilla.gnome.org/show_bug.cgi?id=765931
13932 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
13934 * gst/vaapi/gstvaapivideobufferpool.c:
13935 vaapibufferpool: do not create texture upload meta if dmabuf
13936 https://bugzilla.gnome.org/show_bug.cgi?id=755072
13938 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13941 build: update git.mk
13943 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13945 * gst/vaapi/gstvaapipluginbase.h:
13946 plugin: fix macro processor check
13947 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
13948 defined in config.h, but it would be 0 or 1 depending on the configure output.
13949 https://bugzilla.gnome.org/show_bug.cgi?id=765702
13951 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13953 * tests/test-display.c:
13954 tests: display: guard possible unused variables
13955 https://bugzilla.gnome.org/show_bug.cgi?id=765702
13957 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13963 * tests/simple-decoder.c:
13964 * tests/test-decode.c:
13965 * tests/test-display.c:
13966 * tests/test-filter.c:
13967 * tests/test-h264.c:
13968 * tests/test-jpeg.c:
13969 * tests/test-mpeg2.c:
13970 * tests/test-mpeg4.c:
13971 * tests/test-subpicture-data.c:
13972 * tests/test-subpicture.c:
13973 * tests/test-surfaces.c:
13974 * tests/test-textures.c:
13975 * tests/test-vc1.c:
13976 * tests/test-windows.c:
13977 tests: inforce gstreamer code-style
13979 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13981 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13982 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
13983 It seems driver requires enablement of cu_qp_delta_enabled_flag
13984 for modifying QP values to controll the CBR mode bitrate.
13985 https://bugzilla.gnome.org/show_bug.cgi?id=749852
13987 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13989 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13990 encoder: h265: Add CBR Encoding support
13991 https://bugzilla.gnome.org/show_bug.cgi?id=749852
13993 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
13995 * gst-libs/gst/vaapi/gstvaapisurface.c:
13996 gstvaapisurface: explicitely clear TILING flag if dmabuf
13997 https://bugzilla.gnome.org/show_bug.cgi?id=755072
13999 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14001 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14002 gstvaapisurface_drm: release image when done
14003 Otherwise intel-vaapi-driver will fail to process the exported surface because
14004 it will find it is currently derived, so considered as busy.
14005 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14007 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14009 * gst/vaapi/gstvaapipostproc.c:
14010 vaapipostproc: already have a surface proxy if dmabuf
14011 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14013 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14015 * gst/vaapi/gstvaapipostproc.c:
14018 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14020 * gst/vaapi/gstvaapidecode.c:
14021 * gst/vaapi/gstvaapipluginbase.c:
14022 * gst/vaapi/gstvaapipluginbase.h:
14023 vaapidecode: search driver in whitelist
14024 If the backend driver vendor string is not in a white-list, and the
14025 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14026 change it state from NULL to READY, hence the auto-plug mechanism will look
14027 for another decoder.
14028 This patch assumes the GstContext has already being shared along the pipeline
14029 and the element has a valid GstVaapiDisplay instance.
14030 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14032 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14034 * gst/vaapi/gstvaapidecode.c:
14035 * gst/vaapi/gstvaapiencode.c:
14036 * gst/vaapi/gstvaapipluginbase.c:
14037 * gst/vaapi/gstvaapipluginbase.h:
14038 * gst/vaapi/gstvaapipostproc.c:
14039 * gst/vaapi/gstvaapisink.c:
14040 plugins: rework set_context() vmethod definition
14041 In bug 757598 was added the set_context() vmethod chain up in
14042 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14043 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14044 No error has shown up since none of the element's base classes redefined
14045 set_context() vmethod from GstElement, so always the correct function was
14046 called. Still this code is wrong and this patch make it right.
14047 Since set_context() is the same code, a macro is used to implement that code
14048 in all the gst-vaapi elements.
14049 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14051 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14053 * gst/vaapi/gstvaapipostproc.c:
14054 vaapipostproc: resize if negotiated and allocation caps are different
14055 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14056 the negotiated caps.
14057 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14058 resize the frame to the negotiated, if and only if, some other parameter is
14059 activated to avoid the passthrough. If it is not, the surface won't be mapped
14060 into a image. If not, the image won't be resized and the output buffer would be
14062 This patch will break the passthrough if the allocation query is different
14063 from the negotiation caps, forcing the resizing.
14064 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14066 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14068 * gst/vaapi/gstvaapidecode.c:
14069 vaapidecode: improve code readability
14070 No functional changes.
14072 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14074 * gst/vaapi/gstvaapidecode.c:
14075 vaapidecode: move GstCapsFeatures near to its use
14076 Move the handling of the GstCapsFeatures just after it is used, in order to
14077 avoid handling its memory.
14079 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14081 * gst/vaapi/gstvaapidecode.c:
14082 vaapidecode: caps negotiation checks
14083 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14084 compiled with GL support.
14086 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14088 * gst/vaapi/gstvaapidecode.c:
14089 * gst/vaapi/gstvaapipluginbase.c:
14090 * gst/vaapi/gstvaapipluginbase.h:
14091 * gst/vaapi/gstvaapipostproc.c:
14092 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14094 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14096 * gst/vaapi/gstvaapidecode.c:
14097 vaapidecode: bail early if not caps in decide_allocation()
14099 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14101 * gst/vaapi/gstvaapidecode.c:
14102 * gst/vaapi/gstvaapipluginbase.c:
14103 * gst/vaapi/gstvaapipluginutil.c:
14104 * gst/vaapi/gstvaapipluginutil.h:
14105 * gst/vaapi/gstvaapipostproc.c:
14106 plugin: use allowed caps filter from element
14107 Instead of using the srcpad template caps for filtering the peer caps, the
14108 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14109 for the element's allowed caps.
14110 With this modification, the vaapipostproc element simplifies a bit its code.
14111 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14113 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14115 * gst/vaapi/gstvaapidecode.c:
14116 * gst/vaapi/gstvaapipluginbase.c:
14117 * gst/vaapi/gstvaapipluginutil.c:
14118 * gst/vaapi/gstvaapipluginutil.h:
14119 * gst/vaapi/gstvaapipostproc.c:
14120 plugin: remove function parameter
14121 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14122 saved if the out format is used for both: in and out. Thus the code is more
14124 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14126 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14128 * gst/vaapi/gstvaapidecode.c:
14129 vaapidecode: warns if driver will do color conversions
14130 If the downstream feature is system memory, the surface has to be mapped,
14131 hence a warning message is logged saying that the driver has to do color
14132 conversions. This might be troublesome because not all the color conversion
14133 combinations are supported by the VA-API drivers, and there is not a reliable
14134 way to know them before hand.
14135 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14137 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14139 * gst/vaapi/gstvaapipluginutil.c:
14140 plugin: honour negotiated format
14141 Instead of setting the requested format by the caller, the function
14142 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14143 the negotiated format.
14144 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14145 given the format list from the negotiated caps, will choose the best one, if
14146 possible, given the native format.
14147 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14149 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14151 * gst/vaapi/gstvaapipluginutil.c:
14152 plugin: simplify caps feature selection
14153 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14154 Instead of intersecting custom caps to find the preferred feature, the peer
14155 caps are traversed in order to find the preferred feature, according to an
14156 ordered feature priority list.
14157 In the case of GLTextureUploadMeta, the colour format is computed using
14158 GstVideoInfo of the selected fixed caps.
14159 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14161 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14163 * gst/vaapi/gstvaapidecode.c:
14164 vaapidecode: use macros for GstVideoInfo
14165 Instead of accessing directly to the members of the structure, use the macros.
14167 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14169 * gst/vaapi/gstvaapidecode.c:
14170 vaapidecode: refactor is_display_resolution_changed()
14171 Make the comparisons more readable and simple.
14172 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14174 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14176 * gst/vaapi/gstvaapidecode.c:
14177 * gst/vaapi/gstvaapidecode.h:
14178 vaapidecode: keep only display_{width,height}
14179 Instead of keeping the structure GstVideoInfo when we are using its width and
14180 height, we only keep these two guints.
14181 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14183 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14185 * gst/vaapi/gstvaapidecode.c:
14186 vaapidecode: decoded_info is valid at src caps update
14187 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14188 is called, then we don't need to verify or replace it with the sinkpad info
14190 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14192 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14194 * gst/vaapi/gstvaapidecode.c:
14195 vaapidecode: always a valid format in decoded_info
14196 Always set a valid format in decoded_info class variable.
14197 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14199 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14201 * gst/vaapi/gstvaapidecode.c:
14202 vaapidecode: code style fixes
14203 No functional changes.
14204 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14206 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14208 * gst/vaapi/gstvaapidecode.c:
14209 vaapidecode: init {decoded,display}_info at open()
14210 It is required to initialize {decoded,display}_info variables when the decoder
14211 is open, not only at instance initialization.
14212 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14214 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14216 * gst/vaapi/gstvaapidecode.c:
14217 * gst/vaapi/gstvaapidecode.h:
14218 vaapidecode: remove spurious class variables
14219 active, do_pool_renego and do_outstate_renego class variables were used to
14220 indicate when negotiate downstream once, but now that each time a new surface
14221 resolution is pop out a renegotation verified, these variable are not required
14223 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14225 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14227 * gst/vaapi/gstvaapidecode.c:
14228 * gst/vaapi/gstvaapipluginbase.c:
14229 * gst/vaapi/gstvaapipluginbase.h:
14230 * gst/vaapi/gstvaapipostproc.c:
14231 remove custom allocation query
14232 When resolving bug 753914, a custom allocation query was added, overlapping
14233 the responsibilities of GstVideoDecoder.
14234 But with the merge of the patches from bug 764421 this overlapping was not
14235 required anymore. This patch restores this situation setting the
14236 allocation_caps in the GstVideoCodecState when needed.
14237 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14239 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14242 Automatic update of common submodule
14243 From 6f2d209 to ac2f647
14245 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14247 * gst/vaapi/gstvaapidecode.c:
14248 * gst/vaapi/gstvaapidecodebin.c:
14249 * gst/vaapi/gstvaapipostproc.c:
14250 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14251 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14252 their caps templates if they were not compiled either with GLX or EGL support.
14254 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14256 * gst/vaapi/gstvaapipluginutil.c:
14257 plugins: fix compilation when EGL/GLX is disabled
14258 The compiler might complain of gst_vaapi_create_display_from_handle() being
14259 unused if both EGL and GLX are disabled. This patch avoid that compilation
14262 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14264 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14265 libs: fix deleting a GstVaapiCodedBufferPool object
14266 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14267 Otherwise it is not called when the pool is destroyed and all objects
14268 referenced by the GstVaapiVideoPool are never released.
14269 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14271 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14273 * gst-libs/gst/vaapi/gstvaapisurface.c:
14274 surface: destroy derived image
14275 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14276 destroyed, otherwise the surface cannot be processed because is being used.
14277 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14279 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14281 * gst/vaapi/gstvaapidecode.c:
14282 vaapidecode: add stop function
14283 Clear any status on the current stream:
14284 stored frames, caps and decoder configuration
14285 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14287 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14289 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14290 decoder: vp9: Align with the ABI changes in vp9 codecparser
14291 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14292 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14293 These fields are only present in keyframe or intra-only frame, no need to
14294 duplicate them for inter-frames.
14295 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14297 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14299 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14300 decoder: vp9 : Add 10bit decoding support (Profile2)
14301 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14303 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14305 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14306 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14307 gstvaapiporfile: Add more VP9 profile definitions
14308 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14310 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14314 build: possibility to disable tests
14315 The configuration option --disable-examples will disable the compilation of
14316 the sample apps in tests/ directory.
14318 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14320 * gst/vaapi/gstvaapiencode_h264.c:
14321 * gst/vaapi/gstvaapiencode_h265.c:
14322 * gst/vaapi/gstvaapiencode_jpeg.c:
14323 * gst/vaapi/gstvaapiencode_mpeg2.c:
14324 * gst/vaapi/gstvaapiencode_vp8.c:
14325 * gst/vaapi/gstvaapipluginutil.h:
14326 * gst/vaapi/gstvaapisink.c:
14327 unify caps template for VAAPI encoders and decoders
14328 There is no difference in VAAPI surface caps between encoders and decoders.
14329 Thus, the patch makes a simplification by removing encoders specific caps and
14330 shares the same definition of VAAPI surfaces caps for all the elements.
14332 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14334 * gst/vaapi/gstvaapidecode.c:
14335 vaapidecode: move gst_vaapidecode_negotiate() code
14336 With it we can remove a function declaration, making the code a bit
14338 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14340 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14342 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14343 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14344 * gst/vaapi/gstvaapidecode.c:
14345 docs: generate vaapijpegdec documentation
14346 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14348 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14350 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14351 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14352 The array_completeness, reserved bit and num_nal_units fields
14353 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14354 but not for each occurance of similar headers.
14355 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14357 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14359 * gst-libs/gst/vaapi/video-format.c:
14360 video-format: Keep the HW order preference while mapping to GstVideoFormats
14362 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14364 * gst/vaapi/gstvaapidecode.c:
14365 * gst/vaapi/gstvaapipluginbase.c:
14366 * gst/vaapi/gstvaapipluginutil.c:
14367 * gst/vaapi/gstvaapipluginutil.h:
14368 * gst/vaapi/gstvaapivideomemory.c:
14369 gst/vaapi: keep precedence for NV12 over I420
14370 Use NV12 as default "assumption" format all over.
14371 NV12 is the default high priority format used my most of the
14374 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14376 * gst/vaapi/gstvaapidecode.c:
14377 vaapidecode: Use video format derived from decoded surface as default src pad format
14378 Use the surface format derived from first decoded surface
14379 to negotiate the downstream video format capabilities.
14380 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14382 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14384 * gst-libs/gst/vaapi/gstvaapiimage.c:
14385 * gst-libs/gst/vaapi/video-format.c:
14386 * gst/vaapi/gstvaapidecode.c:
14387 * gst/vaapi/gstvaapipluginutil.h:
14388 * gst/vaapi/gstvaapisink.c:
14389 Add P010 video format support
14390 The P010 video format is the native format used by the vaapi intel driver
14391 for HEVCMain10 decode . Add support for planes and images of this video format.
14392 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14394 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14396 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14397 libs: x11: allows 30-bit colour depth
14398 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14399 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14400 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14402 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14404 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14406 * gst/vaapi/gstvaapivideometa_texture.c:
14407 gltextureupload: use an array for texture type
14408 Instead of using a single value for the texture type, use an array with 4
14409 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14411 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14413 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14415 * gst/vaapi/gstvaapidecode.c:
14416 * gst/vaapi/gstvaapipluginbase.c:
14417 vaapidecode: Fix decide_allocation handling
14418 Set the already configured pool in decide_allocation query
14419 in cases where pool renegotiation is not required.
14420 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14422 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14424 * gst/vaapi/gstvaapidecode.c:
14425 vaapidecode: Derive and save the decoded surface format
14426 After the decoding of first frame, try to extract the exact
14427 decoded surface format using vaDeriveImage and keep this
14428 as the format in decoded_info.
14429 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14431 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14433 * gst/vaapi/gstvaapidecode.c:
14434 * gst/vaapi/gstvaapidecode.h:
14435 * gst/vaapi/gstvaapipluginbase.c:
14436 * gst/vaapi/gstvaapipluginbase.h:
14437 * gst/vaapi/gstvaapipostproc.c:
14438 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14439 -- Maintaing decoded surface resoluton and actual display resoultion separately
14440 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14441 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14442 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14443 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14444 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14445 This is slight overhead, but safe enough. Optimization could be possible though.
14446 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14448 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14450 * gst/vaapi/gstvaapidecode.c:
14451 vaapidecode: Delay the output format setting until we have a decoded surface
14452 This will help to consoidate the out caps negotiation to a single place,
14453 which will make the code simpler, allows to get the exact decoded format
14454 if needed and the selected chroma type too.
14455 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14457 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14459 * gst/vaapi/gstvaapidecode.h:
14460 vaapidecode: GST_VAAPIDECODE macro is a cast
14461 This patch is the continuation of commit 1e1d3b1d because the function
14462 gst_vaapidecode_get_type() got undefined since then.
14463 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14464 structure. The rest of the GObject handling macros were deleted too.
14466 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14469 Back to development
14471 === release 1.8.0 ===
14473 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14478 * gstreamer-vaapi.doap:
14481 === release 1.7.91 ===
14483 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14488 * gstreamer-vaapi.doap:
14491 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14493 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14494 decoder: h265: Fix offset calculation in codec_data parsing
14495 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14497 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14499 * gst/vaapi/gstvaapidecodebin.c:
14500 vaapidecodebin: don't handle jpeg decoding
14501 As JPEG decoder has been split and demoted, it cannot be handled by
14503 Added a fixme comment regarding the future removal of vaapidecode.
14504 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14506 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14508 * gst/vaapi/gstvaapidecode.c:
14509 vaapidecode: split out jpeg decoder
14510 Split, as a different element, the JPEG decoder.
14511 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14513 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14515 * gst/vaapi/gstvaapi.c:
14516 * gst/vaapi/gstvaapidecode.c:
14517 * gst/vaapi/gstvaapidecode.h:
14518 vaapidecode: register decoder with internal GType
14519 Don't expose the the vaapidecode GType, instead expose a function
14520 which will register element.
14521 This is the first step to split the decoder by codecs.
14522 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14524 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14526 * gst/vaapi/gstvaapidecode.c:
14527 vaapidecode: remove unused function declaration
14528 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14529 code-style of the other pre-declared functions.
14531 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14533 * docs/plugins/Makefile.am:
14534 build: git ignore gtkdoc generated files
14536 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14539 build: handle git ignore in m4 directory
14541 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14543 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14544 vaapidecoder_h265: plug leak of h265 parsing info
14545 If something goes wrong while parsing, the info object is
14547 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14549 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14551 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14552 vaapidecoder_h264: plug leak of h264 parsing info
14553 If something goes wrong while parsing, the info object is
14555 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14557 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14559 * gst/vaapi/gstvaapipluginutil.c:
14560 plugins: fix gstgl and vaapi memory leaks
14561 1\ Unref gl_display and gl_window as soon they are not needed.
14562 2\ Remove an unneeded display type check, since is handled by
14563 gst_vaapi_created_display_from_handle()
14564 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14565 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14566 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14568 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
14570 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14571 vaapidisplay: Fix uninitialized value error for VA attribute
14572 https://bugzilla.gnome.org/show_bug.cgi?id=763362
14574 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14576 * gst/vaapi/gstvaapidecode.c:
14577 * gst/vaapi/gstvaapiencode.c:
14578 plugins: proxy information from downstream caps
14579 Propagate to upstream the downstream information, such as fps, par, etc.
14580 This will fix several "getcaps" critical warnings in gst-validate.
14581 https://bugzilla.gnome.org/show_bug.cgi?id=763300
14583 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14585 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14586 decoder: vp9: Assign values for profile and bit_depth from frame header
14587 bit_depth field has added only in VA-API 0.39.0, added version check.
14589 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
14592 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14593 https://bugzilla.gnome.org/show_bug.cgi?id=763067
14595 === release 1.7.90 ===
14597 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
14602 * gstreamer-vaapi.doap:
14605 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
14608 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14610 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14612 * gst/vaapi/gstvaapidecode.c:
14613 vaapidecode: intersect with filter in getcaps()
14614 In commit 6034734d I forgot to add the caps filter intersection in the
14615 getcaps() vmethod generating a regression when a capsfilter is set in the
14617 This commit adds the caps filter intersection.
14619 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14621 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14622 Add memset to initialize value for VAEncSliceParameterBufferJPEG
14623 https://bugzilla.gnome.org/show_bug.cgi?id=762850
14625 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
14628 Automatic update of common submodule
14629 From b64f03f to 6f2d209
14631 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14636 build: add m4 directory
14637 Instead of rely on the automatic creation of m4 directory by aclocal, we
14638 already control it. Later we could create our own m4 scripts in order to
14639 unclutter configure.ac
14640 https://bugzilla.gnome.org/show_bug.cgi?id=762528
14642 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14644 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14645 decoder: hevc: Fill dependent slice segment headers while parsing
14646 Copy the data into the dependent slice segment header from the
14647 corresponding independent slice segment header during parsing.
14648 Previously the reference to the "previous" independent header was
14649 held through the parsing phase and then dereferenced during the
14650 decoding phase. This caused all dependent headers to be populated
14651 with the data of the AU's last independent header instead of the
14652 proper corresponding header.
14653 https://bugzilla.gnome.org/show_bug.cgi?id=762352
14655 - Reworded commit message
14657 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14659 * gst/vaapi/gstvaapidecode.c:
14660 vaapidecode: use video decoder getcaps()
14661 The usage of getcaps() vmethod is preferred than to handle manually the sink's
14663 In order to avoid function declarations, this patch moves the class_init()
14664 method to the end of the file.
14666 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14668 * gst/vaapi/gstvaapipluginbase.c:
14669 plugins: remove deprecated code
14670 Since we are only supporting current GStreamer version, since 1.3
14671 gst_buffer_pool_config_add_option() checks if the option to add is
14672 already set. There is no need to do it ourselves.
14674 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14676 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14677 vaapidecoder_h265: fix parsing of NALU aligned data
14678 Don't assume the whole buffer is a single NAL, instead look for the
14679 next start code in case there are multiple NALs per buffer.
14680 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14682 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14684 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14685 vaapidecoder_h264: fix parsing of NALU aligned data
14686 Don't assume the whole buffer is a single NAL, instead look for the
14687 next start code in case there are multiple NALs per buffer.
14688 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14690 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
14692 * gst/vaapi/gstvaapisink.c:
14693 vaapisink: Fix event,pad,structure memory leaks
14694 https://bugzilla.gnome.org/show_bug.cgi?id=762229
14696 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14698 * gst/vaapi/gstvaapipluginbase.c:
14699 Add icamerasrc as dmabuf capable peer element
14700 icamerasrc is another gstreamer plugin using to capture RAW
14701 frames from camera device. It is based on libcamhal library.
14702 There are some properties available to control icamera behavior.
14703 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14704 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14705 https://bugzilla.gnome.org/show_bug.cgi?id=759481
14706 Fixme: This is the similar workaround we done for v4l2src.
14707 The workaround will be removed once we fix #755072
14709 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14711 * gst/vaapi/gstvaapipluginbase.c:
14712 vaapipluginbase: Fix structure memory leak
14713 config structure is not being freed in all cases
14714 https://bugzilla.gnome.org/show_bug.cgi?id=762172
14716 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
14718 * gst/vaapi/gstvaapidecode.c:
14719 vaapidecode: Fix videocodec state memory leak
14720 When state is not NULL and either width/height of video info is 0, then state leaks
14721 https://bugzilla.gnome.org/show_bug.cgi?id=762173
14723 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
14725 * gst/vaapi/gstvaapisink.c:
14726 vaapisink: post message for application for unhandled keyboard/mouse events
14727 Makes (most) keyboard shortcuts work in gst-play-1.0 when
14728 the video window has focus.
14730 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
14732 * gst/vaapi/gstvaapidecode.c:
14733 vaapidecode: Fix capsfeature memory leak
14734 https://bugzilla.gnome.org/show_bug.cgi?id=762116
14736 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
14738 * gst/vaapi/gstvaapisink.c:
14739 vaapisink: Fix capsfeature memory leak
14740 caps feature allocated is not being freeing in some cases
14741 https://bugzilla.gnome.org/show_bug.cgi?id=762111
14743 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
14746 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14747 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14748 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14749 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14750 * gst-libs/gst/vaapi/gstvaapifilter.c:
14751 * gst/vaapi/gstvaapidecodebin.c:
14752 * gst/vaapi/gstvaapipluginutil.c:
14753 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14755 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
14758 configure: Fix setting of extra compiler warning flags
14760 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14762 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14763 libs: fix build error
14764 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14765 functions are used only when libva's API version is greater than 0.36.0
14766 This patch guards those functions completely rather than just their
14767 content. The patch is a continuation of commit 38f8fea4
14768 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14769 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14771 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
14773 * tests/simple-encoder.c:
14774 tests: simple-encoder: fix build error
14775 argument mismatch of gsize with 'long unsigned int'
14776 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14778 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14780 * gst/vaapi/gstvaapisink.c:
14781 vaapisink: Fix wrong caps advertising
14782 The get_caps() should only report the supported formats.
14783 https://bugzilla.gnome.org/show_bug.cgi?id=761147
14785 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14788 Automatic update of common submodule
14789 From e97c9bb to b64f03f
14791 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14793 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14794 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14795 * gst/vaapi/gstvaapi.c:
14796 * gst/vaapi/gstvaapiencode_h264.c:
14797 * gst/vaapi/gstvaapiencode_h265.c:
14798 * gst/vaapi/gstvaapiencode_jpeg.c:
14799 * gst/vaapi/gstvaapiencode_mpeg2.c:
14800 * gst/vaapi/gstvaapiencode_vp8.c:
14801 rename encoders to vaapi{codec}enc
14802 Trying to comply with GStreamer's element names, this patch renames the
14803 encoders using the name format vaapi{codec}enc.
14804 In this way, the plugin documentation is linked correctly.
14805 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14807 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14810 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14811 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14813 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14816 build: remove vp9 parser check
14817 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14818 the check of the parser, as we did for the others.
14819 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14821 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14825 Back to development
14826 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14828 === release 1.6.0 ===
14830 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14835 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14837 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14838 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14839 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14840 libs: fix compiler warnings
14841 After setting the release flags, the compiler warns about a couple
14842 initialized variables.
14843 Also marked a couple of set variables as unused, because they are only
14844 used for assertion.
14845 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14847 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14849 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14850 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14851 * gst/vaapi/gstvaapidecode.c:
14852 * gst/vaapi/gstvaapidecodebin.c:
14853 * gst/vaapi/gstvaapiencode_h264.c:
14854 * gst/vaapi/gstvaapiencode_h265.c:
14855 * gst/vaapi/gstvaapiencode_jpeg.c:
14856 * gst/vaapi/gstvaapiencode_mpeg2.c:
14857 * gst/vaapi/gstvaapiencode_vp8.c:
14858 * gst/vaapi/gstvaapipostproc.c:
14859 * gst/vaapi/gstvaapisink.c:
14860 docs: update plugin documentation
14861 Update all the documentation of elements of the vaapi plugin.
14862 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14864 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14868 * docs/Makefile.am:
14869 * docs/plugins/Makefile.am:
14870 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14871 * docs/plugins/gstreamer-vaapi-plugins.types:
14872 * docs/reference/Makefile.am:
14873 * docs/reference/plugins/Makefile.am:
14874 * docs/reference/plugins/plugins-sections.txt:
14875 * docs/reference/plugins/plugins.types:
14876 * docs/version.entities.in:
14877 resurrect gtk-doc machinery
14878 Our auto-generated documentation has been a bit neglected. This patch replaces
14879 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
14880 plugins, elements and libraries.
14881 This patch also re-enables documentation generation.
14882 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14884 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14890 use gst-common submodule
14891 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
14892 GStreamer common submodule.
14893 The documentation generation has been disable temporarily since it needs a
14894 major rework, which will be done in the following commit.
14895 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14897 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14901 add gst-common submodule
14902 Pointing to branch 1.6
14903 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14905 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14907 * gstreamer-vaapi.doap:
14908 add doap descriptor
14909 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
14910 describe software projects, in particular free and open source software.
14911 The description is used in GStreamer as in many other open source projects.
14912 This patch adds the doap description of this project.
14913 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14915 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14917 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
14918 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14919 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
14920 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14921 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14922 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
14923 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14924 * gst-libs/gst/vaapi/gstvaapiimage.c:
14925 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
14926 * gst-libs/gst/vaapi/gstvaapipixmap.c:
14927 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
14928 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14929 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
14930 libs: humongous code style fix
14931 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
14932 umbrella, we need to comply with the project's code style. This meant to
14933 change a lot of code.
14934 It was decided to use a single massive patch to update the code style.
14935 I would like to apologize with the original developers of this code because of
14936 the history breakage.
14937 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14939 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14941 * gst-libs/gst/vaapi/gstvaapicontext.c:
14942 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14943 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
14944 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
14945 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14946 * gst/vaapi/gstvaapivideomemory.c:
14947 libs: small refactors to enhance the code style
14948 As gst-indent generated ugly code in these cases, this patch changes the used
14949 idiomatic into other one.
14950 No functional changes were introduced.
14951 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14953 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14955 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14956 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14957 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
14958 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14959 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14960 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14961 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14962 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14963 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14964 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14965 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14966 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
14967 * gst-libs/gst/vaapi/gstvaapifilter.c:
14968 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
14969 * gst-libs/gst/vaapi/gstvaapisurface.c:
14970 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
14971 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
14972 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
14973 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
14974 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14975 * gst-libs/gst/vaapi/gstvaapiwindow.c:
14976 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
14977 libs: small code style fixes
14978 This a set of small code style fixes detected as-is by gst-indent.
14979 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14981 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14983 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14984 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14985 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
14986 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
14987 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
14988 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
14989 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
14990 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
14991 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
14992 libs: trivial comment style fixes
14993 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14995 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14997 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
14998 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
14999 libs: avoid gst-indent mess up
15000 Guard pieces of code to avoid gst-ident to mess up the following code.
15001 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15003 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15005 * gst/vaapi/gstvaapidecode.c:
15006 * gst/vaapi/gstvaapidecodebin.c:
15007 * gst/vaapi/gstvaapipluginutil.c:
15008 * gst/vaapi/gstvaapisink.c:
15009 * gst/vaapi/gstvaapivideomemory.c:
15010 plugins: fix code style
15011 Minor code style changes by executing gst-indent in gst/vaapi directory.
15012 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15014 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15016 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15017 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15018 Fix some more compiler warning
15019 Two (false) compiler warnings about variables potentially
15020 being used uninitialized, and one about a variable being
15022 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15024 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15026 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15027 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15028 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15029 * gst-libs/gst/vaapi/gstvaapifilter.c:
15030 * gst/vaapi/gstvaapidecode.c:
15031 * gst/vaapi/gstvaapipluginbase.c:
15032 * gst/vaapi/gstvaapipluginutil.c:
15033 * gst/vaapi/gstvaapipostproc.c:
15034 * tests/simple-encoder.c:
15035 * tests/test-filter.c:
15036 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15037 Declare variables at the beginning of a code block, which
15038 is how it's done in GStreamer.
15039 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15041 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15043 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15044 decoder: vp9: Fix crop rectangle setting
15045 Align with software vp9dec behaviour: Add crop rectangle
15046 only if display_width/display_height is less than the
15047 frame_hdr->width/frame_hdr->height
15049 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15051 * gst/vaapi/gstvaapidecode.c:
15052 vaapidecode: Fix renegotiation for resolution change
15053 Always renegotiate the pool if the immediate frame which going
15054 to be pushed has a different un-cropped resolution than the already
15057 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15059 * gst/vaapi/gstvaapipluginbase.h:
15060 plugins: use the same pre-processor macro
15061 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15062 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15063 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15064 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15065 in the header file.
15066 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15068 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15070 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15071 decoder: update a deprecated function
15072 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15073 deprecated since GStreamer 1.0.
15074 This patch replace it with gst_adapter_prev_pts()
15075 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15077 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15080 build: honor configure's cache
15081 The user might enable --config-cache when calling configure script. If so, our
15082 configuration variables will not be correctly calculated.
15083 This patch extracts the value of our variables either from the cache or from
15084 the operation result.
15085 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15087 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15090 build: use common version variables
15091 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15093 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15096 build: hard-code an unneeded macro
15097 That macro is required for EGL's dynamic module loading, but since
15098 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15099 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15100 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15102 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15105 build: refactorization of dependency tracking
15106 This patch tries to avoid branching in configure.ac using a more functional
15107 approach in macros usage.
15108 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15110 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15113 build: check for OpenGL either GLX or EGL are requested
15114 Refactor some code in configure.ac to centralize $enable_opengl definition.
15115 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15117 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15120 build: indent and add square braces
15121 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15123 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15126 build: upgrade autotools version dependency
15127 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15129 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15132 build: enhance string comparisons
15133 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15134 the string is empty or undefined.
15135 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15137 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15140 build: remove unused variables
15141 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15143 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15146 build: remove check for old version of gstreamer
15147 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15149 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15152 build: remove GStreamer's parsers checks
15153 This patch removes almost all the parsers check since they are already in place,
15154 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15155 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15157 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15160 * gst/vaapi/Makefile.am:
15161 build: add gstreamer-pbutils dependency
15162 This dependency was added in gstvaapidecodebin with the call
15163 gst_missing_element_message_new().
15164 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15166 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15169 build: fix variable declaration
15170 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15172 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15174 * gst-libs/gst/vaapi/Makefile.am:
15175 build: fix when HEVC decoder is disabled
15176 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15178 The encoder needs functions that are only available when the decoder is
15180 This patch moves the utils functions into the generic sources, such as the
15182 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15184 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15186 * gst/vaapi/Makefile.am:
15187 build: remove unused EGL specific sources
15188 These Makefile variables are not used at all.
15189 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15191 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15193 * gst/vaapi/Makefile.am:
15194 build: remove check for GStreamer 1.2
15195 Since we are working for current stable GStreamer 1.6
15196 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15198 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15200 * gst/vaapi/gstvaapiparse.h:
15201 Remove more video parser crufts
15202 This header is not used anymore since it declares parsers that are
15203 already in GStreamer 1.6
15204 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15206 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15209 * docs/reference/Makefile.am:
15210 * docs/reference/libs/Makefile.am:
15211 * docs/reference/libs/libs-docs.xml.in:
15212 * docs/reference/libs/libs-overrides.txt:
15213 * docs/reference/libs/libs-sections.txt:
15214 docs: remove library documentation which is non-public now
15215 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15217 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15221 * debian.upstream/Makefile.am:
15222 * debian.upstream/changelog.in:
15223 * debian.upstream/compat:
15224 * debian.upstream/control.in:
15225 * debian.upstream/copyright:
15226 * debian.upstream/gstreamer-vaapi-doc.install.in:
15227 * debian.upstream/gstreamer-vaapi.install.in:
15228 * debian.upstream/rules:
15229 Remove debian.upstream packaging
15230 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15232 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15234 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15235 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15236 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15237 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15238 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15239 * gst/vaapi/gstcompat.h:
15240 * gst/vaapi/gstvaapi.c:
15241 * gst/vaapi/gstvaapidecode.c:
15242 * gst/vaapi/gstvaapiencode.c:
15243 * gst/vaapi/gstvaapipluginbase.c:
15244 * gst/vaapi/gstvaapipluginbase.h:
15245 * gst/vaapi/gstvaapipluginutil.c:
15246 * gst/vaapi/gstvaapisink.c:
15247 Remove old gst version guards
15248 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15249 all the old GStreamer version guards.
15250 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15252 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15254 * gst/vaapi/gstvaapiparse.c:
15255 Remove video parser crufts
15256 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15258 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15260 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15262 * docs/reference/libs/Makefile.am:
15263 * docs/reference/plugins/Makefile.am:
15264 * gst-libs/gst/vaapi/Makefile.am:
15265 * gst/vaapi/Makefile.am:
15266 * tests/Makefile.am:
15267 libs: remove versioning
15268 Since we don't install libraries anymore, it makes no sense to keep
15269 versioning them according to the gstreamer's version.
15270 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15272 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15275 * debian.upstream/Makefile.am:
15276 * debian.upstream/control.in:
15277 * debian.upstream/libgstvaapi-dev.install.in:
15278 * debian.upstream/libgstvaapi-drm.install.in:
15279 * debian.upstream/libgstvaapi-glx.install.in:
15280 * debian.upstream/libgstvaapi-wayland.install.in:
15281 * debian.upstream/libgstvaapi-x11.install.in:
15282 * debian.upstream/libgstvaapi.install.in:
15283 * gst-libs/gst/vaapi/Makefile.am:
15284 * tests/Makefile.am:
15285 libs: make libraries no installables
15286 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15288 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15290 * debian.upstream/libgstvaapi-dev.install.in:
15291 * gst-libs/gst/vaapi/Makefile.am:
15292 Do not install libgstvaapi headers
15293 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15295 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15299 * patches/Makefile.am:
15300 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15301 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15302 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15303 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15304 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15305 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15306 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15307 * patches/videoparsers/Makefile.am:
15308 * patches/videoparsers/series.frag:
15309 Remove videoparser patches
15311 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15315 * debian.upstream/libgstvaapi-dev.install.in:
15316 * pkgconfig/Makefile.am:
15317 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15318 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15319 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15320 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15321 * pkgconfig/gstreamer-vaapi.pc.in:
15322 Remove pkg-config files
15323 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15325 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15331 * ext/codecparsers:
15332 * gst-libs/gst/Makefile.am:
15333 * gst-libs/gst/codecparsers/Makefile.am:
15334 * gst-libs/gst/vaapi/Makefile.am:
15335 * gst/vaapi/Makefile.am:
15336 Remove codecparsers submodule
15337 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15339 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15344 * debian.upstream/libgstvaapi.install.in:
15346 * ext/libvpx/Makefile.am:
15347 * ext/libvpx/gstlibvpx.c:
15348 * ext/libvpx/gstlibvpx.h:
15349 * ext/libvpx/libgstcodecparsers_vpx.vers:
15350 * ext/libvpx/sources.frag:
15351 * ext/libvpx/upstream:
15352 * gst-libs/gst/codecparsers/Makefile.am:
15353 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15354 Remove libvpx submodule
15355 We will be using upstream codecparsers always.
15356 No more internal libvpx !
15358 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15361 build: fix check for GstJpegParser
15362 Right now the local JPEG parser is always compiled because the check for the
15363 upstreamed version is broken: it looks for an non existent symbol:
15365 This patch changes that check for< GstJpegFrameHdr.
15366 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15368 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15370 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15371 wayland: free the frame in frame_release_callback()
15372 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15373 decouple wl_buffer from frame).
15374 Otherwise the frame may be overwritten while it is still used by the
15376 The frame done callback (frame_done_callback()) is called, when the
15377 compositor is done processing the frame and hands it to the hardware.
15378 The buffer release callback (frame_release_callback()) is called when the
15379 buffer memory is no longer used.
15380 This can be quite some time later: E.g. if weston (with the DRM backend)
15381 puts the buffer on a hardware plane, then then buffer release callback is
15382 called when the kernel is done with the buffer. This is usually when the
15383 next frame is shown, so most likely after the frame done callback for the
15385 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15386 destroy()" the mentioned possible leak should no longer be a problem, so
15387 reverting this change should cause no leaking buffers.
15388 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15389 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15390 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15392 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15394 * gst/vaapi/gstvaapipostproc.c:
15395 vaapipostproc: check ANY caps at transform_caps()
15396 When transforming downstream caps we should check for ANY caps from peer pad,
15397 otherwise we get a segmentation fault.
15398 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15399 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15401 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15403 * gst/vaapi/gstvaapisink.c:
15404 vaapisink: ignore frame if its upload failed
15405 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15406 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15407 ignored by the vaapisink, leading to a segmentation fault.
15408 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15409 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15410 segmentation fault, but doing and effort to continue rendering. This is
15411 the same behavior of ximagesink.
15412 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15413 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15415 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15418 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15419 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15421 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15423 * gst-libs/gst/vaapi/gstvaapicontext.c:
15424 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15425 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15426 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15427 Add 10 HEVC 10 bit decoding support
15428 Only supporting vaapidecode ! vaapisink combination for now.
15429 Missing dependencies:
15430 1: No support for P010 video format in GStreamer
15431 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15432 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15433 through GstVideoMeta.
15434 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15435 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15436 of the surfaces is implementation (driver) defined, which is P010.
15438 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15440 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15441 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15442 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15443 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15444 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15445 chroam type and dimensions. The underlying format of the surfaces is
15446 implementation (driver) defined.
15448 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15450 * gst-libs/gst/vaapi/gstvaapisurface.h:
15451 * gst-libs/gst/vaapi/gstvaapiutils.c:
15452 Add definitions for YUV420 with more than 8 bits per channel
15454 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15456 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15457 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15459 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15462 Bump version for development
15464 === release 0.7.0 ===
15466 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15471 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15476 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15481 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15486 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15488 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15489 texture: detect GL version and use the proper API
15490 When receiving the texture from the application or the video sink, we must
15491 know it size and border. To query the texture the API has changed according to
15492 the OpenGL version used in the GL context of the application/vsink.
15493 This patch checks the current context API type and queries the texture
15494 according to this detected API.
15495 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15496 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15498 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15500 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15501 texture: check for expected target and format
15502 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15503 formats GL_RGBA or GL_BGRA.
15504 This patch adds a debugging verification of those values.
15505 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15506 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15508 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15510 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15511 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15512 libs: add gl3_bind_texture_2d()
15513 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15514 needed. In particular, the Intel's Mesa implementation complains if it is
15516 This patch add a new binding function for 2D textures, without enabling
15517 gl3_bind_texture_2d()[2].
15518 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15519 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
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:14:45 +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 gl_get_current_api()
15528 In order to know which OpenGL API use, we must detect the API type of current
15529 context. This patch adds the function gl_get_current_api() which returns the
15531 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15533 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15534 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15536 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15539 * gst-libs/gst/vaapi/Makefile.am:
15540 build: Add gmodule dependency for libgstvaapi_egl
15541 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15543 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15545 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15546 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15547 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15548 * patches/videoparsers/series.frag:
15549 patches/videoparsers: h264: Disable passthorugh mode enabling
15550 This is a quick fix for regression introduced by the upstream
15551 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15552 The patch is disabling the passthrough mode, otherwise it will
15553 break multi-layer mvc stream parsing.
15554 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15556 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15558 * gst/vaapi/Makefile.am:
15559 * patches/videoparsers/Makefile.am:
15560 * patches/videoparsers/series.frag:
15561 build: add gsth265parse patches conditionally
15562 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15563 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15565 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15566 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15568 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15570 * gst/vaapi/Makefile.am:
15571 build: declare correctly parse lib built files
15572 This is a continuation of commit fc8a0d12
15573 When declaring BUILT_SOURCES, those files should not be distributed. This
15574 patch avoids the distribution of the generated source code.
15575 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15576 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15578 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15580 * ext/libvpx/sources.frag:
15581 build: libvpx: Add missing source file
15583 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15585 * gst/vaapi/gstvaapipostproc.c:
15586 vaapipostproc: Correctly detect the caps change
15587 This is a quick fix for regression introuduced by the
15588 commit 757833230bc73b8e3b4e31649e4618ba802bea51
15589 With out this, the gst_vaapipostproc_create() will
15591 https://bugzilla.gnome.org/show_bug.cgi?id=758543
15593 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15595 * ext/libvpx/Makefile.am:
15596 * ext/libvpx/sources.frag:
15597 build: libvpx: update the sources lists
15598 `make dist` broke since commit f06798 (libvpx: Update the submodule to
15599 libvpx-1.4.0) because the sources.frag does not contain all the module
15601 This patch updates thoroughly the sources.
15602 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15603 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15605 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15607 * gst/vaapi/gstvaapipostproc.c:
15608 vaapipostproc: don't set caps change at first set
15609 When the source caps change, the filter is destroyed and recreated.
15610 Nonetheless, this happens every time the vaapipostproc starts, since the caps
15611 change detection algorithm does not take in consideration when the caps are
15613 This patch intents to be an optimization, to avoid a useless filter
15614 destroy-creation cycle when the sources caps are set for first time.
15615 The new helper function video_info_update() is a refactorization to avoid
15617 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15618 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15620 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15622 * gst/vaapi/gstvaapipostproc.c:
15623 vaapipostproc: params video_info_changed() callers
15624 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15625 swapped the the order. This didn't raise problems since the comparison of both
15626 structures were not affected by its semantics.
15627 But still it would be better to fix this to keep the coherence of the code.
15628 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15629 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15631 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15633 * gst/vaapi/Makefile.am:
15634 build: declare real built files
15635 When runnig the `make dist` target from a clean tree, it fails because
15636 if could not find the copied files from codecparsers submodule.
15637 They weren't copied because they weren't declared as built sources.
15638 This patch removes the stamp mechanism and use the actual file list to copy
15639 as the built sources. Also it fixes the duplication of the parser files.
15640 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15641 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15643 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15645 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15646 decoder: vp9: Fix last/golden/altref frame index setting
15647 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15648 based on what ever reference frame indices encoded in frame header.
15650 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15652 * debian.upstream/rules:
15653 debian: remove custom parallel compilation
15654 In order to build a debian package with upstream source, the user should
15657 cp -a debian.upstream debian
15658 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15659 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15660 way to make a parallel build (-j8 in this case).
15661 This commit removes the script in debian/rules that detects the number of
15662 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15663 official in debian.
15664 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15665 https://bugzilla.gnome.org/show_bug.cgi?id=754087
15667 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15669 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15670 decoder: vp9: Fix PTS calculation of cloned frames
15672 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15674 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15675 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15676 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15677 gstvaapidecoder base calss is reponsible for handling those frames later on.
15678 No need for explicit verification of frame header's show_frame in order to
15679 do picture outputing.
15681 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15683 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15684 decoder: vp9: Fix ref picture update while doing repeat frame
15685 Don't try to do frame decoding and reference picture update
15686 while receiving a vp9 frame having show_existing_frame flag
15689 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15691 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15692 decoder: vp9: Add repeat-frame display handling
15693 If vp9 frame header come up with show_existing_frame flag set,
15694 we should duplicate the existing decoded frame as current frame to
15697 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15699 * gst/vaapi/gstvaapidecodebin.c:
15700 vaapidecodebin: add me as element co-author
15701 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15702 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15704 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15706 * gst/vaapi/gstvaapidecodebin.c:
15707 vaapidecodebin: try to get display from decoder
15708 Rather than create a dummy display, if none has propagated as a context, we
15709 should try to get the one from vaapidecode.
15710 As the bin is already in READY state, the vaapidecode should be also in that
15711 state. That means that the contexts have been negotiated, and it should have
15713 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15714 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15716 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15718 * gst/vaapi/gstvaapidecodebin.c:
15719 * gst/vaapi/gstvaapidecodebin.h:
15720 vaapidecodebin: add postprocessor dynamically
15721 The former approach to left the bin unfinished has some problems: the context
15722 cannot be shared because the vaapidecode is unlinked in many cases, leading to
15723 creating a VADisplay twice.
15724 Initially the bin is fully functional, constructed as
15725 (-----------------------------------)
15727 | (-------------) (-------) |
15728 |<--| vaapidecode |--->| queue |--->|
15729 | (-------------) (-------) |
15730 (-----------------------------------)
15731 When the context is shared and the VADisplay has VPP capabilities, before
15732 changing to READY state, the bin is reconfigured dynamically, adding the
15733 vaapipostproc element afeter the queue:
15734 (--------------------------------------------------------)
15736 | (-------------) (-------) (---------------) |
15737 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15738 | (-------------) (-------) (---------------) |
15739 (--------------------------------------------------------)
15740 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15741 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15743 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15745 * gst/vaapi/gstvaapidecodebin.c:
15746 vaapidecodebin: delay the bin configuration
15747 Delay the bin configuration until changing to READY state. This is because we
15748 should add the vaapipostproc element until the vaapidecode has emitted the
15749 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15751 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15752 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15754 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15756 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15757 decoder: vp9: Add crop rectangle support.
15758 Set crop rectange if:
15759 There is display_width and display_height which is different from actual width/height
15761 The changed resolution is less than the actual configured dimension of surfaces
15763 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15765 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15766 decoder: vp9: Fix the context and surface pool reset for multi resolution video
15767 Unlike other decoders, vp9 decoder doesn't need to reset the
15768 whole context and surfaces for each resolution change. Context
15769 reset only needed if resolution of any frame is greater than
15770 what actullay configured. There are streams where a bigger
15771 resolution set in ivf header or webm header but actual resolution
15772 of all frames are less. Also it is possible to have inter-prediction
15773 between these multi resolution frames.
15775 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15777 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15778 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15779 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15780 Preliminary fix for supproting multi resolution video decode.
15782 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15784 * gst/vaapi/gstvaapidecode.c:
15785 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15787 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15789 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15790 decoder: vp9: Set lossless flag from frame header
15792 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15794 * ext/codecparsers:
15795 codecparsers: Update to gst-vaapi-branch d9f25
15796 d9f2527: codecparsers: vp9: Set lossless flag in frame header
15798 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15800 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15801 libs: vp9: remove unused symbols
15802 clang complains about a couple variables and one label which were not
15803 used. This patch removes them.
15804 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15805 https://bugzilla.gnome.org/show_bug.cgi?id=757958
15807 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15809 * ext/codecparsers:
15810 codecparsers: Update to gst-vaapi-branch da251bb
15811 da251bb: codecparsers: vp9: Optimize the memory allocation
15812 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15814 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15816 * gst/vaapi/gstvaapipluginbase.c:
15817 * gst/vaapi/gstvaapipluginbase.h:
15818 plugin: guard pointers to pad query functions
15819 Since gstreamer 1.4 is not required to have pad query functions if the query
15821 This patch guards out the pad query functions for gstreamer < 1.4
15822 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15823 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15825 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15827 * gst/vaapi/gstvaapiencode.c:
15828 vaapiencode: use pad query vmethods
15829 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15830 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15831 while keeps support for previous versions of gstreamer.
15832 This patch is relevant since GstVideoEncoder takes care of other queries that
15833 we are currently ignoring.
15834 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15835 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15837 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15839 * gst/vaapi/gstvaapidecode.c:
15840 vaapidecode: return pad's template caps if no display
15841 A caps query can occur before the element has a display. In that case, the
15842 element can return its pad's template. But when the element already has a
15843 display, and the caps probe fails, the element shall return an empty caps, so
15844 the auto-plug could try with another decoder.
15845 If the element has a display and the caps probe works, then the computed caps
15846 should be returned.
15847 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15848 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15850 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15852 * gst/vaapi/gstvaapidecode.c:
15853 * gst/vaapi/gstvaapisink.c:
15854 plugins: don't create display at caps query
15855 Caps query can happen before the element has a bus. The display creation should
15856 be should occur on the context negotiation, when the bus is already configured.
15857 Then at caps query no display should be created.
15858 Instead of force the display creation, we graciously fail the allowed_caps()
15860 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
15861 basetransform descendant, seems to be not affected by this, nor the encoders.
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-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15867 * gst/vaapi/gstvaapidecode.c:
15868 * gst/vaapi/gstvaapiencode.c:
15869 * gst/vaapi/gstvaapipluginutil.c:
15870 * gst/vaapi/gstvaapipluginutil.h:
15871 * gst/vaapi/gstvaapipostproc.c:
15872 * gst/vaapi/gstvaapisink.c:
15873 plugins: fix context query handling
15874 The current context query handling design is flawed: the function
15875 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
15876 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
15877 pad query function should handle differently each case.
15878 This patch changes the gst_vaapi_reply_to_query() for
15879 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
15880 to match the correct context query handling.
15881 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15882 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15884 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15886 * gst/vaapi/gstvaapipluginutil.c:
15887 plugin: don't lose previous context at query
15888 When processing the GST_CONTEXT_QUERY we should not lose the previous
15889 context in the query, we should only add our display structure.
15890 This patch copies the old context, if it is there, and stamp our display on
15891 it. Otherwise, a new context is created.
15892 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15893 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15895 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15897 * gst/vaapi/gstvaapivideocontext.c:
15898 * gst/vaapi/gstvaapivideocontext.h:
15899 vaapivideocontext: add gst_vaapi_video_context_set_display()
15900 This function set the display to an already created context. This function is
15901 going to be used later.
15902 Also, gst_vaapi_video_context_new_with_display() now uses this function.
15903 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15904 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15906 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15908 * gst/vaapi/gstvaapipluginutil.c:
15909 * gst/vaapi/gstvaapivideocontext.c:
15910 * gst/vaapi/gstvaapivideocontext.h:
15911 plugins: check if display is set in sync
15912 Since the context messages are sync'ed, the display assignation happens in the
15913 same thread, hence we can know if the display was found or not as soon we call
15915 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
15916 as a new parameter, the address of the plugin's display, and reports back if
15917 the display was found and set.
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:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15923 * gst/vaapi/gstvaapipluginutil.c:
15924 * gst/vaapi/gstvaapivideocontext.c:
15925 plugins: set display through context
15926 Instead of setting the display to the plugin directly after its creation, do
15927 it through the gstreamer's context mechanism, avoiding double assignations.
15928 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15929 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15931 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15933 * gst/vaapi/gstvaapivideocontext.c:
15934 vaapivideocontext: rename context structure
15935 The context structure is named "display" which is too generic. The contrary
15936 happens, for example, with GstGL, what uses the same name as the context, and
15937 its logs make more sense.
15938 This patch renames the context structure with the same name as the
15939 context, thus GST_PTR_FORMAT can pretty print it.
15940 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15942 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15944 * gst/vaapi/gstvaapivideocontext.c:
15945 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
15946 First, refactorized run_context_query() into _gst_context_run_query(), adding
15947 a new parameter: the pad direction, in order to simplify the code.
15948 Second, added a new helper function: _gst_context_query(), which is a generic
15949 context query function. It isolates the operation of running the query and
15950 sets the context if found, also it enhances the logs.
15951 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
15952 future this helper function will be merged into the core libraries of
15954 Finally, gst_vaapi_video_context_prepare() was rewritten to use
15955 _gst_context_query().
15956 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15957 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15959 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15961 * gst/vaapi/gstvaapivideocontext.c:
15962 vaapivideocontext: refactor context category debug
15963 Refactor the extraction GST_CAT_CONTEXT logging using a only once
15964 initializator, so we could get the debug category from different code
15966 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15967 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15969 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15971 * gst/vaapi/gstvaapivideocontext.c:
15972 gstvaapivideocontext: fix indentation
15973 gst-indent does not handle correctly some expression like function
15974 declaration with attributes, breaking the following expressions.
15975 This patch makes gst-indent to ignore the attributed function
15976 declartion so the followed function definition is not mangled, such
15977 as happened in commit b4154a
15978 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15979 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15981 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15983 * gst/vaapi/gstvaapipluginbase.c:
15984 plugin: chain up set_context() vmethod
15985 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
15986 the parent class in order to broadcast all its contexts when the element
15987 is added into a bin:
15988 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
15989 There is no need to guard the call, because before GStreamer 1.7, the
15990 set_context() vmethod was NULL in the element class, hence the conditional
15992 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15993 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15995 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15997 * tests/simple-encoder.c:
15998 tests: simple-encoder: remove dead code
15999 The caps creation for codec state configuration is not used. Let's remove it.
16000 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16002 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16004 * gst/vaapi/gstvaapidecodebin.c:
16005 vaapidecodebin: fix a leaked display instance
16006 The display returned by gst_vaapi_video_context_get_display() increments the
16007 references. Thus, we have to unref the returned display.
16008 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16009 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16011 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16013 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16014 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16015 libs: remove unneeded headers
16016 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16017 required to include them in the header. It is not also required to include
16018 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16019 exposes their structures (e.g. GLXPixmap).
16020 Nonetheless, glext.h neither glxext.h are required to include, they are
16021 already included conditionally by gl.h and glx.h, respectively.
16022 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16023 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16025 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16027 * ext/codecparsers:
16028 codecparsers: Update to gst-vaapi-branch 0ea6792
16029 0ea6792: codecparsers: vp9: Add header comments
16030 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16032 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16034 * gst/vaapi/gstvaapidecode.c:
16035 VP9: plugins: Add VP9 decoder
16037 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16039 * gst-libs/gst/vaapi/Makefile.am:
16040 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16041 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16042 VP9: libgstvaapi: Add VP9 decoder
16044 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16046 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16047 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16048 VP9: gstvaapiprofile: Add profile definitions
16050 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16053 VP9: build: Check availability of vp9 decoder APIs
16055 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16059 * gst-libs/gst/codecparsers/Makefile.am:
16060 VP9: Allow building vp9 codecparser internally
16062 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16064 * ext/codecparsers:
16065 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16066 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16067 e7d9217: codecparser: h264: initialize parsing structures
16068 403d400: codecparser: h265: initialize parsing structures
16070 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16073 configure.ac: don't use an undefined variable
16074 If the environment lacks of gstreamer development packages, this error will
16075 be reported to the user: "gstreamer- was not found"
16076 This is because we are using an undefined variable in the printed message. The
16077 fix simple changes the variable for the hard-coded string "1.0".
16078 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16079 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16081 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16083 * gst/vaapi/gstvaapidecode.c:
16084 vaapidecode: relax guards for memory:VASurface capsfeature
16085 Though caps features are supported since GStreamer 1.2, there are some
16086 issues with the features caps negotiation in that version. Nonetheless,
16087 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16088 feature negotiation is relaxed for GStreamer 1.4.
16089 The guard is the same as in vaapisink's caps template.
16090 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16091 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16093 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16095 * gst/vaapi/gstvaapidecode.c:
16096 vaapidecode: decide allocation doesn't update srccaps
16097 The received caps query will bring the already negotiated caps, so they are
16098 not expected to change.
16099 This patch removes this verification which is dead code path.
16100 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16101 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16103 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16105 * gst/vaapi/gstvaapidecode.c:
16106 * gst/vaapi/gstvaapipluginutil.c:
16107 * gst/vaapi/gstvaapipluginutil.h:
16108 vaapidecode: use caps to check the features
16109 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16110 expensive, we check the caps from the allocation query, to check the
16111 negotiated feature.
16112 In order to do this verification a new utility function has been implemented:
16113 gst_vaapi_caps_feature_contains().
16114 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16115 have been refactorized.
16116 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16117 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16119 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16121 * gst/vaapi/gstvaapidecode.c:
16122 vaapidecode: set format before decide allocation
16123 There is a regression from commit 3d8e5e. It was expected the buffer pool
16124 allocation occur before the caps negotiation, but it is not.
16125 This patch fixes this regression: the caps negotiation is done regardless the
16126 allocation query from downstream.
16127 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16128 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16130 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16133 build: check for patch and fix yasm check
16134 Add configure checking for GNU patch tools and fixed configure
16135 checking YASM to correct sequence.
16136 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16137 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16139 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16141 * ext/libvpx/Makefile.am:
16142 build: Remove disable-md5 option for libvpx build
16143 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16144 has been removed in 1.4.0.
16146 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16148 * ext/libvpx/upstream:
16149 libvpx: Update the submodule to libvpx-1.4.0
16150 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16152 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16155 configure: mark support for GStreamer 1.2 as obsolete.
16156 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16157 Our goal is to support the last two stable versions of GStreamer which
16158 are 1.4 and 1.6 at the moment.
16159 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16160 release and will get rid of those in 0.8.
16162 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16164 * gst/vaapi/gstvaapidecode.c:
16165 vaapidecode: Fix buffer copy assertion
16166 Don't try to copy the NULL buffer-codec_data.
16168 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16171 build: allow builds against GStreamer 1.7.x
16172 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16174 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16176 * gst/vaapi/gstcompat.h:
16177 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16178 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16179 add an implementation if gstreamer-vaapi is linked to previous versions.
16180 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16182 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16184 * gst/vaapi/gstvaapidecode.c:
16185 vaapidecode: simplify copy of GstVideoCodecState
16186 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16188 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16190 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16191 * patches/videoparsers/series.frag:
16192 patches/videoparsers: h265parser: more API fences
16193 Add more API fences according with its version and refresh the patch.
16194 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16195 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16197 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16199 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16200 * patches/videoparsers/series.frag:
16201 patches/videoparsers: h265parser: rename patch keeping number
16202 Refresh the patch and rename it in order to keep the patch number.
16203 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16204 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16206 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16208 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16209 patches/videoparsers: h264parser: more API fences and refresh
16210 Add more API fences according with its version and refresh the patch.
16211 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16212 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16214 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16216 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16217 * patches/videoparsers/series.frag:
16218 patches/videoparsers: h264parser: fix description and refresh
16219 Fix a typo in the patch description and refresh it in order to avoid the
16220 creation of .orig files and break the distcheck target.
16221 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16222 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16224 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16226 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16227 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16228 patches/videoparsers: h264parser: refresh patches
16229 In order to avoid the creation of .orig files and break the distcheck target.
16230 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16231 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16233 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16235 * gst/vaapi/Makefile.am:
16236 build: link libgstvaapi_parse against codec parser
16237 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16238 when running configure.
16239 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16240 need it if builtin codec parsers are disabled.
16241 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16242 compilation. If builtin codec parsers are enable, this variable is null, so it
16243 should work using libgstvaapi, as normal.
16244 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16245 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16247 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16250 build: verify for H264 MVC and H265 SPS
16251 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16252 the required symbols for those were added in GStreamer 1.5
16253 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16254 parsers, the compilation fails, because the lack of those symbols.
16255 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16256 they do not, the specific built in codec parsers are enabled and used.
16257 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16258 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16260 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16262 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16263 decoder: h264: initialize PPS's slice_group_id
16264 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16265 so it contains random data.
16266 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16267 pointer uninitialized, leading to a segmentation fault when the memory is
16269 This patch prevents this by initializing the slice_group_id before the PPS
16271 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16272 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16274 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16276 * gst/vaapi/gstvaapidecode.c:
16277 vaapidecode: proper numerator and denominator for forced latency framerate
16278 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16280 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16282 * ext/codecparsers:
16283 codecparsers: Update to gst-vaapi-branch commit f9e284b
16284 dae1a84: h264parse/h265parse: Fix negotiation crash
16285 45a9f8a: codecparsers: h265 : Fix default scaling list values
16286 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16287 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16289 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16291 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16292 decoder: hevc: Don't flush dpb for EOS/EOB nal
16293 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16294 the dpb_add() itself will handle the flusing(if needed) of dpb
16295 for end of sequence and end of bitstream.
16296 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16298 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16300 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16301 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16302 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16303 just after the PicLatencyCnt setting of existing dpb frames.
16304 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16306 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16308 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16309 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16310 This fix is based on the V3 vesion of spec which was missing in older versions.
16311 When the current picture has PicOutputFlag equal to 1, for each picture in the
16312 DPB that is marked as "needed for output" and follows the current picture in output order,
16313 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16314 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16316 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16318 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16319 decoder: h265: Fix indentation
16321 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16323 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16324 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16325 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16326 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16327 * gst/vaapi/gstvaapidecode.c:
16328 * gst/vaapi/gstvaapipluginutil.c:
16329 multiview: initial attempt at stereo/multiview support
16330 Add support for marking caps and buffers for multiview or
16331 stereoscopic output.
16332 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16334 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16336 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16337 decoder: hevc: remove unused functions
16338 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16339 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16341 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16343 * gst/vaapi/gstvaapidecode.c:
16344 vaapidecode: remove (another) unused variable
16345 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16347 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16349 * gst/vaapi/gstvaapidecode.c:
16350 vaapidecode: remove unused variable
16351 Thus silence the compilation warnings.
16353 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16355 * gst/vaapi/gstvaapidecode.c:
16356 vaapidecode: compilation fix
16357 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16358 compilation where the toolchain uses restrictive flags as clang.
16359 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16361 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16363 * gst/vaapi/gstvaapidecode.c:
16364 vaapidecode: renegotiate if caps are not equal
16365 The use of gst_caps_is_always_compatible() for this optimization may lead to
16366 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16367 if it is required a re-negotiation.
16368 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16369 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16371 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16373 * gst/vaapi/gstvaapidecode.c:
16374 * gst/vaapi/gstvaapidecode.h:
16375 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16376 Delaying the pool re-negotiation untill we push all decoded (and queued)
16377 frames downstream. Otherwise for the multi-resolution videos, the
16378 GstVideoVideoMemory will be having wrong resolution and which leads
16379 to nasty behaviours, especially when using software renderers.
16380 sample media file: RAP_B_Bossen_1.bin
16382 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16383 get the final resoultion 416x240.
16384 Starting from 25 th frame, the resolution will change to 416x240. But parser
16385 elements won't report this since the effective croped resolution is same in
16386 both cases. Here the core libgstvaapi will detect this through it's internal
16387 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16388 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16389 immediately, this will not sync with the resolution of already decoded and queued
16390 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16391 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16392 untill we push all decoded frames downstream.
16393 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16395 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16397 * gst/vaapi/gstvaapidecode.c:
16398 vaapidecode: Always keep a copy of input codec state
16399 Currently we are sharing the input GstVideoCodecState with
16400 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16401 each caps change. This is troublesome in many cases, for eg: if
16402 resoultion changes with in a singe stream. Because, when ever there
16403 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16404 fields with new resolution, but since we are using the same codecstate (ref)
16405 in gstvaapidecode.c, the caps check for input caps change will always fail.
16406 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16408 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16410 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16411 decoder: hevc: Fix the scaling list scan order
16412 The default scan order of scaling lists are up-right-diagonal
16413 as per hevc specification. Use the newly implemented
16414 uprightdiagonal_to_raster conversion codecparser APIs to
16415 get the the scaling_list values in raster order, which is
16416 what the VA intel driver requires.
16418 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16420 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16421 decoder: hevc: sync with the codecparser changes
16422 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16423 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16425 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16427 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16428 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16430 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16432 * ext/codecparsers:
16433 codecparsers: Update to gst-vaapi-branch commit 69550f1
16434 c207c6d: codecparsers: h265: Fix tile row and column parsing
16435 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16436 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16437 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16438 2f0932b: h264parse: Clear SPS info after processing
16439 f57d6b0: videoparsers: enable accept-template flag
16441 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16443 * debian.upstream/control.in:
16444 debian: add yasm as build dependency
16445 As the compilation of libvpx (for vp8 parser) is enabled by default,
16446 yasm is required by default too.
16447 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16449 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16451 * debian.upstream/rules:
16452 debian: remove --with-gstreamer-api option
16453 It is no longer valid in gstreamer-vaapi.
16454 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16455 [removed unused GST_API_VERSION variable]
16456 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16457 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16459 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16461 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16462 wayland: rename is_cancelled to sync_failed
16463 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16464 sense. This commit renames this variable to sync_failed.
16466 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16468 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16469 wayland: Don't return GST_FLOW_ERROR on flushing
16470 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16471 return FALSE which makes gst_vaapi_window_wayland_render() return
16472 FALSE which ends up posting an ERROR message in
16473 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16475 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16477 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16479 * gst/vaapi/gstvaapi.c:
16480 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16481 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16483 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16485 * gst/vaapi/gstvaapidecodebin.c:
16486 vaapidecodebin: check for postproc instance
16487 If the VPP's deinterlace-method is set, first we should check if the postproc
16488 is already instanced to set it. Otherwise we just store it until the VPP is
16489 added into the bin.
16490 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16491 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16493 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16495 * gst/vaapi/gstvaapidecodebin.c:
16496 * gst/vaapi/gstvaapipluginutil.c:
16497 * gst/vaapi/gstvaapipluginutil.h:
16498 vaapidecodebin: ensure VPP before going to READY
16499 There are sometimes that the VA-API display context is not shared among the
16500 pipeline, but it is important to know it before going to READY state (when the
16501 pipeline is already linked).
16502 One instance of this case is this:
16503 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16504 This patch adds a new function in gstvaapipluginutil called
16505 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16506 display, which only will be used for verify if the VAEntrypointVideoProc is
16507 available by the hardware. Afterwards, it should be unrefed.
16508 If the vaapidecodebin is going to READY state, and the element still doesn't
16509 know if VPP is available, the last resort is to create a new instance of the
16510 VA-API display and test for it.
16511 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16513 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16515 * gst/vaapi/gstvaapidecodebin.c:
16516 vaapidecodebin: post an error message if fails
16517 If the construction of the bin fails, post an error message in the bus.
16518 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16519 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16521 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16523 * gst/vaapi/gstvaapidecodebin.c:
16524 * gst/vaapi/gstvaapidecodebin.h:
16525 vaapidecodebin: has_vpp as a tri-state variable
16526 has_vpp can be UNKNOWN while the context message hasn't being received.
16527 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16528 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16530 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16532 * gst/vaapi/gstvaapivideomemory.c:
16533 gstvaapivideomemory: native format with no derived image
16534 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16535 info based on the derived image configuration.
16536 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16537 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16539 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16541 * gst-libs/gst/vaapi/video-format.c:
16542 * gst-libs/gst/vaapi/video-format.h:
16543 * gst/vaapi/gstvaapivideomemory.c:
16544 surface pool config based on video info
16545 First added the function gst_vaapi_video_format_get_best_native(), which
16546 returns the best native format that matches a particular chroma type:
16547 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16548 RGB32 chroma and encoded format map to NV12 too.
16549 That format is used to configure, initially, the surface's pool for the
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 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16556 * gst/vaapi/gstvaapivideomemory.c:
16557 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16558 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16559 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16561 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16563 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16564 gstvaapiencoder: validate chroma according to the VA's RT format
16565 Before, only YUV420 color space where supported. With this patch, the
16566 encoder is queried to know the supported formats and admits YUV422
16567 color space if its available.
16568 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16569 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16571 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16573 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16574 decoder: hevc: Add calculation of WpOffsetHalfRangeC
16575 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16576 prediction weight table values with out using any hard coding.
16577 Fixme: We don't have parser API for sps_range_extension, so
16578 assumed zero value for high_precision_offsets_enabled_flag.
16579 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16581 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16583 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16584 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16585 Based on ITU-T rec H265(4/2015): 7-56
16586 This was a wrong equation in rec H265 (4/2013): 7-44...
16587 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16589 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16591 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16592 decoder: hevc: Fix default value assignment of pred_weight_table
16594 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16596 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16597 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16598 Assign only if ChromaArrayType != 0..
16599 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16601 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16603 * ext/codecparsers:
16604 codecparsers: Update to gst-vaapi-branch commit 1c70432
16605 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16606 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16607 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16609 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16611 * ext/codecparsers:
16612 codecparsers: Update to gst-vaapi-branch commit c18b8ad
16613 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16614 a033083: videoparsers: h265: Fix the frame start detection code
16615 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16617 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16619 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16620 decoder: hevc: Add SEI parsing
16621 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16623 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16625 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16626 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16627 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16628 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16629 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16630 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16631 is TRUE. Assuming them as MAIN profile for now.
16632 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16633 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16635 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16637 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16638 patches/videoparsers: Fix the wrong source file path
16639 This is something wrongly typed in commit 6d7b631
16641 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16643 * ext/codecparsers:
16644 codecparsers: Update to gst-vaapi-branch commit b8d8be4
16645 ee7e81b: h264parse: Don't discard first AU delimiter
16646 3690fb9: h264parse: Add more NAL types for debugging output
16647 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16648 ace61048: h265parse: expose compatible profiles to downstream
16649 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16651 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16653 * gst/vaapi/gstvaapipluginutil.c:
16654 * gst/vaapi/gstvaapivideocontext.c:
16655 * gst/vaapi/gstvaapivideocontext.h:
16656 gstvaapivideocontext: remove unused parameter
16657 gst_vaapi_video_context_prepare() received an unused parameter. This patch
16658 removes it and the structure passed by the caller.
16659 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16660 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16662 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16664 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16665 decoder: hevc: Fix decoding of stream when it has temporal sublayers
16666 We are calculating the dpb size based on max_dec_pic_buffering.
16667 But if there are more than one temporal sublayers, we are supposed
16668 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16669 size calculation (Assuming HighestTid as max_sub_layers_minus).
16670 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16671 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16672 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16674 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16676 * gst/vaapi/gstvaapidecode.c:
16677 * gst/vaapi/gstvaapidecodebin.c:
16678 * gst/vaapi/gstvaapiencode_h264.c:
16679 * gst/vaapi/gstvaapiencode_h265.c:
16680 * gst/vaapi/gstvaapiencode_jpeg.c:
16681 * gst/vaapi/gstvaapiencode_mpeg2.c:
16682 * gst/vaapi/gstvaapiencode_vp8.c:
16683 * gst/vaapi/gstvaapipluginutil.h:
16684 * gst/vaapi/gstvaapipostproc.c:
16685 * gst/vaapi/gstvaapisink.c:
16686 refactor vaapi caps strings for pad templates
16687 Refactor the main vaapi caps strings into three macros:
16688 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16689 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16690 Those are in gstvaapipluginutil.h so all the elements could use them, instead
16691 of re-declaring them every time.
16692 No functional changes.
16693 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16695 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16697 * gst/vaapi/gstvaapipostproc.c:
16698 gstvaapipostproc: fix code style
16699 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16701 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16703 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16704 decoder: hevc: Fix the decoding of dependent slice segment
16705 Decoding process for reference picture list construction needs to be
16706 invoked only for P and B slice and the value for slice_type of dependent slice
16707 segment should be taken from the previous independent slice segment header
16709 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16710 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16712 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
16714 * gst/vaapi/gstvaapipluginbase.c:
16715 plugins: reduce the noise of warnings
16716 Those messagse should be attached to the object, also the lack of
16717 caps is not an error, in particular in the case of JPEG encoding.
16718 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16719 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16721 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16723 * gst-libs/gst/vaapi/gstvaapicontext.c:
16724 gstvaapicontext: fix the JPEG encoder attribs value
16725 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16726 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16727 assigns the returned value to the attribute.
16728 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16729 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16731 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
16733 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16734 gstvaapiencoder: framerate 0/1 is valid too
16735 Framerate 0/1 is valid, and it is particularly useful for picture
16736 encoding, such as jpeg. This patch makes the encoder to admit that
16738 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16739 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16741 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16743 * gst/vaapi/gstvaapipostproc.c:
16744 vaapipostroc: GLTextureUploadMeta in sink template
16745 Advertise GLTextureUploadMeta in sink caps template.
16746 https://bugzilla.gnome.org/show_bug.cgi?id=752130
16748 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16750 * gst/vaapi/Makefile.am:
16751 * gst/vaapi/gstvaapiencode.c:
16752 * gst/vaapi/gstvaapipluginbase.c:
16753 * gst/vaapi/gstvaapipluginbase.h:
16754 * gst/vaapi/gstvaapipostproc.c:
16755 * gst/vaapi/gstvaapisink.c:
16756 * gst/vaapi/gstvaapiuploader.c:
16757 * gst/vaapi/gstvaapiuploader.h:
16758 remove gstvaapiuploader
16759 Working on bug #744042 I realized that the gstvaapiuploader is practically not
16761 This patch removes the gstvaapiuploader and add the method
16762 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16763 the system can handle, which is used by vaapisink and vaapipostproc.
16764 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16765 https://bugzilla.gnome.org/show_bug.cgi?id=752777
16767 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16769 * gst/vaapi/gstvaapidecode.c:
16770 vaapidecode: don't lost GLTextureUpload on seek
16771 When seeking, the decoder is reset, but the buffer pool is not
16772 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16773 pool has the GLTextureUpload meta.
16774 The decoder knows that GLTextureUpload meta was negotiated in
16775 decide_allocation(), but this method is not called when seeking.
16776 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16777 https://bugzilla.gnome.org/show_bug.cgi?id=752929
16779 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16781 * gst/vaapi/gstvaapipluginutil.c:
16782 plugins: don't use gst_pad_get_allowed_caps()
16783 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16784 decoders, that is OK, but in the case of the postproc might lead loops,
16785 since the gst_base_transform_query_caps() forwards the query upstream
16787 Instead of gst_pad_get_allowed_caps() we only query the peer with
16788 gst_pad_peer_query_caps() using the pad's template as filter.
16789 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16790 https://bugzilla.gnome.org/show_bug.cgi?id=752558
16792 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16797 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16799 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16800 * patches/videoparsers/series.frag:
16801 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16802 All API/ABI changes for S3D/MVC are added in 1.5, backporting
16803 them to older verison is not recommended.
16804 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16806 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16808 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16809 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16811 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16813 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16814 decoder: jpeg: Align with new API/ABI changes in codecparser
16815 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16817 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16819 * ext/codecparsers:
16820 codecparsers: Update to gst-vaapi-branch commit 800bdb2
16821 ed13220: mpegvideometa: add meta transform function
16822 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16823 7a51722: codecparsers: jpeg: fix docs for table parsing functions
16824 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16825 387a39d: codecparsers: jpeg: fix up API
16826 db9d6a9: codecparsers: jpeg: tweak API a little
16827 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16828 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16829 4658c30: codecparsers: jpeg: fix calculation of segment size
16830 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16831 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16832 9422464: h264parse: fix typo in log message
16833 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16834 77704ce: nalutils: trivial patch to check if
16835 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16836 7862f95: Revert "codecparsers: remove ignored increment of return"
16837 54017b1: h264parse: Add support for passing stereoscopic/multiview info
16838 8667ee4: h264parse: Don't switch to passthrough on set_caps()
16839 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16841 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16843 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16844 decoder: h264: track previous reference frames.
16845 Improve closure of gaps in frame_num by strictly following and trying
16846 to fill them with previous reference frames. So, they are now tracked
16847 thus avoiding insertion of dummy ("greenish") frames.
16849 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16851 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16852 decoder: h264: fix integration of second field into the DPB.
16853 If the new picture to be added to the DPB is not a first field, then
16854 it shall be the second field of the previous picture that was added
16856 This removes the need for dpb_find_picture() now that we track the
16857 immediately preceding decoded picture, in decode order.
16859 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16861 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16862 decoder: h264: fix closure of "other-field" gap.
16863 When a dummy "other-field" is inserted, it is assumed to inherit the
16864 reference flags from the first field, and the sliding window decoded
16865 reference picture marking process is also executed so that corrupted
16866 frames are moved out as early as possible.
16867 While doing so, we also try to output frames that now contain a single
16868 valid field picture, prior to inserting any other picture into the DPB.
16869 Note: this may be superfluous currently based on the fact that dpb_add()
16870 combines the two most recent pairable fields, but this process would be
16871 further simplified later on.
16873 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16875 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16876 decoder: h264: track corrupted frames.
16877 Mark the picture as "corrupted" if it is reconstructed from corrupted
16878 references or if those references are fake, e.g. resulting from lost
16880 This is useful for notifying the upper layer, or downstream elements,
16881 that the decoded frame may contain artefacts.
16882 https://bugzilla.gnome.org/show_bug.cgi?id=703921
16884 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16886 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16887 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16888 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16889 * gst/vaapi/gstvaapidecode.c:
16890 decoder: add initial infrastructure for marking corrupted output.
16891 Add initial infrastructure in core codec library and vaapidecode to mark
16892 corrupted frames as such. A corrupted frame is such a frame that was
16893 reconstructed from invalid references for instance.
16894 https://bugzilla.gnome.org/show_bug.cgi?id=751434
16895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16897 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16900 Bump version for development
16902 === release 0.6.0 ===
16904 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16909 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16914 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16916 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16917 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
16918 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
16919 Right now there is not a primary ranked parser for vc1 and the demuxers
16920 delivers caps without specifying the profile. This situation is not an issue
16921 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
16922 explicit profile defined in the negotiated caps.
16923 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
16924 negotiation admits caps subsets try outs.
16925 This patch solves the issue ignoring the profile negotiation in the caps. For
16926 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
16927 done without the vc1 parser, such as happens in gstreamer 1.5.
16928 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16930 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16932 * gst/vaapi/gstvaapi.c:
16933 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
16934 Unfortunately vaapidecodebin element is not seems to be stable
16935 enough for autoplugging ahead of vaapidecode.
16936 Lowering the rank for now (cosidering the immediate 0.6 release).
16937 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
16938 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16940 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16942 * gst-libs/gst/vaapi/Makefile.am:
16943 build: Add missing CFLAGS to Makefile.am
16945 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16947 * gst-libs/gst/vaapi/gstvaapifilter.c:
16948 gstvaapifilter: Only register STE property if it supported by corresponding VA library
16949 Fix the regression introduced in commit eb465fb.
16950 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16951 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16953 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16955 * gst/vaapi/gstvaapipostproc.c:
16956 vaapipostproc: no format convert on GL tex upload meta
16957 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
16958 color format of the buffer.
16959 https://bugzilla.gnome.org/show_bug.cgi?id=748184
16961 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16963 * gst-libs/gst/vaapi/gstvaapifilter.c:
16964 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
16965 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16966 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16968 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16970 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
16971 encoder:h265: Fix the check for packed-header support
16972 Use VA_ENC_PACKED_HEADER_* definition for checking.
16973 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16975 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16977 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16978 encoder:h264: Fix the check for packed-header support
16979 Use VA_ENC_PACKED_HEADER_* definition for checking.
16980 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16982 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16984 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16985 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
16986 One buffering_period() SEI message shall be present in every IDR access unit
16987 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
16988 use a non-CQP mode, e.g. CBR. In other words, when
16989 nal_hrd_parameters_present_flag is set to 1.
16990 One picture_timing() SEI messages shall be present in every access unit
16991 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
16992 https://bugzilla.gnome.org/show_bug.cgi?id=722734
16993 https://bugzilla.gnome.org/show_bug.cgi?id=751831
16994 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16996 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16998 * gst/vaapi/gstvaapidecodebin.c:
16999 vaapidecodebin: notify if vpp is disabled
17000 When the system is aware that VPP is not available by the VA driver,
17001 it would be useful to notify to the user that the disable-vpp property
17003 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17005 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17007 * gst/vaapi/gstvaapidecodebin.c:
17008 * gst/vaapi/gstvaapidecodebin.h:
17009 vaapidecodebin: enable vpp if it is available
17010 Instead of creating and adding VPP into the bin at setup, we wait until
17011 we are sure the VA driver supports it. We know that when the VA video
17012 context is received by the bin. Afterwards, it is decided to instanciate
17013 and link the VPP or not.
17014 This is more efficient and safer than waiting the VPP to fail and then
17016 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17018 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17020 * tests/test-display.c:
17021 * tests/test-windows.c:
17022 tests: Fix compilation while enabling egl as the only renderer in build
17023 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17025 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17028 configure: fix the build while enabling egl as the only renderer
17030 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17033 libs: Bump library major version
17035 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17037 * gst/vaapi/gstvaapi.c:
17038 * gst/vaapi/gstvaapidecodebin.c:
17039 * gst/vaapi/gstvaapiencode.c:
17040 * gst/vaapi/gstvaapiencode_jpeg.c:
17041 * gst/vaapi/gstvaapipluginbase.c:
17042 * gst/vaapi/gstvaapipluginutil.c:
17043 * gst/vaapi/gstvaapipostproc.c:
17044 * gst/vaapi/gstvaapivideobufferpool.c:
17045 * gst/vaapi/gstvaapivideocontext.c:
17046 * gst/vaapi/gstvaapivideomemory.c:
17047 * gst/vaapi/gstvaapivideometa.c:
17048 gst/vaapi: Switch to upstreram like indentation.
17049 gst-indent for all gst/vaapi/*.c source files
17051 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17053 * gst/vaapi/gstvaapidecodebin.c:
17054 * gst/vaapi/gstvaapidecodebin.h:
17055 vaapidecodebin: Add property to disable VPP
17056 Adding a new propery "disable-vpp", enabling it will prevent
17057 the insertion of vaapipostproc child element.
17058 This is helpful in debugging, specifically to narrow-down the
17059 vaapidecodebin/vaapipostproc related negotiation issues.
17060 No support for run-time disabling for now.
17061 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17063 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17065 * gst/vaapi/gstvaapipostproc.c:
17066 vaapipostproc: Fix wrong selection of passthrough mode.
17067 The Current code path is falling back to passthorugh mode if there is no
17068 vpp property set by the user explictily. But we should not use the
17069 passthrough mode if the negotiated src pad caps have a differnt color space
17070 format than sink pad caps (Even though the user didn't set the format property
17072 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17073 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17075 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17077 * gst/vaapi/gstvaapipostproc.c:
17078 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17079 This is a workaround to deal with the va-intel-driver for non-native
17080 formats while doing advanced deinterlacing. The format of reference surfaces must
17081 be same as the format used by the driver internally for motion adaptive
17082 deinterlacing and motion compensated deinterlacing.
17083 A permanent solution could be to do the color space conversion internally
17084 for reference surfaces.
17085 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17086 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17088 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17090 * gst/vaapi/gstvaapisink.c:
17091 Work around ABBA deadlock between vaapisink and vaapipostproc
17092 vaapisink takes the display lock, then does a gst_buffer_replace which can
17093 take the lock on the gst_vaapi_video_pool.
17094 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17095 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17096 surfaces, which means that gst_vaapi_surface_create is
17097 called. gst_vaapi_surface_create takes the display lock.
17098 If vaapisink and vaapipostproc are in different threads, and this happens,
17099 you get a deadlock. vaapisink holds the display lock, and wants the
17100 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17101 and wants the display lock.
17102 Work around this by releasing the display lock in vaapisink around the
17103 gst_buffer_replace.
17104 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17105 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17106 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17108 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17110 * gst/vaapi/gstvaapidecodebin.c:
17111 * gst/vaapi/gstvaapidecodebin.h:
17112 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17113 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17115 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17117 * gst/vaapi/gstvaapipostproc.c:
17118 vaapipostproc: log negotiated caps
17120 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17122 * gst/vaapi/gstvaapipostproc.c:
17123 vaapipostproc: remove useless debug message
17125 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17127 * gst/vaapi/gstvaapidecode.c:
17128 vaapidecode: log negotiated src/sink caps
17130 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17132 * gst/vaapi/gstvaapisink.c:
17133 vaapisink: error handling if rendering fails
17134 This patch enhance the code path when an error is found when rendering a
17136 If the video meta doesn't contain a surface proxy or a surface, a warning
17137 message is printed.
17138 If the rendering backend fails, a error message is posted in the bus.
17139 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17141 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17143 * gst/vaapi/gstvaapisink.c:
17144 vaapisink: Fix the conditional pad template creation.
17146 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17148 * tests/Makefile.am:
17149 build: Don't build simple-encoder test program if there is no VA Encoding support
17150 This will fix the build error against older VA-APIs <= 0.32
17152 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17154 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17155 * gst-libs/gst/vaapi/gstvaapicompat.h:
17156 Fix build error for older VA-API versions
17157 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17158 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17161 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17163 * gst/vaapi/gstvaapisink.c:
17164 vaapisink: Fix the capsfeature advertisement in padtemplate
17165 This fixes the regression introduced in 64acc74.
17166 If a pad supports multiple set of capsfeatures, it needs to add
17167 multiple equal structures with different feature sets to the caps.
17168 Because caps structures with the same name but with a non-equal
17169 set of caps features are not compatible.
17170 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17171 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17173 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17175 * gst/vaapi/gstvaapisink.c:
17176 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17177 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17178 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17179 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17181 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17183 * gst/vaapi/gstvaapipluginbase.c:
17184 vaapipluginbase: Override downstream allocation reply if no pool
17185 If the downstream replied without a pool, then override it.
17186 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17188 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17190 * gst/vaapi/gstvaapipostproc.c:
17191 * gst/vaapi/gstvaapipostproc.h:
17192 vaapipostproc: add color balance interface
17193 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17195 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17197 * gst-libs/gst/vaapi/gstvaapifilter.c:
17198 * gst-libs/gst/vaapi/gstvaapifilter.h:
17199 * gst/vaapi/gstvaapipostproc.c:
17200 * gst/vaapi/gstvaapipostproc.h:
17201 vaapipostproc: add skin tone enhancement
17202 Added the 'skin-tone-enhancement' property to vaapostproc.
17203 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17205 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17207 * docs/reference/libs/libs-docs.xml.in:
17208 doc: add VA-API reference in freedesktop
17210 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17212 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17213 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17214 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17215 patches/videoparsers: rebase all the h264parse patches
17216 In order to avoid the creation of .orig files and break the distcheck target
17218 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17220 * ext/libvpx/Makefile.am:
17221 build: don't build in parallel libvpx
17222 This fixes the distcheck -j XX target.
17224 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17226 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17227 encoder: jpeg: Fix the packed header generation
17228 This is a work-around to satisfy the va-intel-driver.
17229 Normalize the quality factor and scale QM values (only for packed header
17230 generation) similar to what VA-Intel driver is doing . Otherwise the
17231 generated packed headers will be wrong, since the driver itself is
17232 scaling the QM values using the normalized quality factor.
17233 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17234 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17236 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17238 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17239 decoder: h264: fix uninitialized variables in avcC mode.
17240 Fix uninitialized variables when decoding SPS and PPS NAL units from
17241 "codec-data" buffers. This is particularly important when seeking ops
17242 are involved, and the new persistent states are used more often.
17243 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17245 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17247 * gst/vaapi/gstvaapidecode.c:
17248 vaapidecode: remove unneeded casting
17249 And a code-style fix
17251 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17253 * gst/vaapi/gstvaapidecode.c:
17254 vaapidecode: calculate decoding latency
17255 This is a naïve approach to the calculation of the VA-API decoding latency. It
17256 takes into consideration when the frame-rate has some insane value.
17257 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17259 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17262 configure: Compiling against libgstgl requires libgstvideo
17263 Fix detection of the GstGL helper headers in uninstalled
17266 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17268 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17269 encoder: hevc: Fix the size over-flow for encoded buffer.
17270 The approximation of 6 times compression ratio migh not
17271 work in all cases. Especially when enabling I frames.
17272 Provide large enough size for coded-buffer creation.
17274 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17276 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17277 encoder: vp8: Fix the size over-flow for encoded buffer.
17278 The approximation of 4 times compression ratio will not
17279 work in all cases. Especially when enabling I frames.
17280 Provide large enough size for coded-buffer creation.
17282 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17284 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17285 encoder: hevc: fix bug in multi slice encoding.
17286 This is a work-around for satisfying the VA-Intel driver.
17287 The driver only support slices begin from CTU row start address.
17288 Multi-Slice encoding also requires a fix in va-intel-driver:
17289 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17290 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17291 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17293 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17295 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17296 decoder: h264: add initial support for loss of pictures.
17297 Implement decoding process for gaps in frame_num (8.5.2). This
17298 also somewhat supports unintentional loss of pictures.
17299 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17300 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17301 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17302 [fixed derivation of POC, ensured clone is valid for reference,
17303 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17304 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17306 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17308 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17309 decoder: h264: add support for missing first field.
17310 Try to identify missing first fields too, thus disregarding any
17311 intermediate gaps in frames. We also assume that we keep the same
17312 field sequence, i.e. if previous frames were in top-field-first
17313 (TFF) order, then so are subsequent frames.
17314 Note that insertion of dummy first fields need to operate in two
17315 steps: (i) create the original first field that the current field
17316 will inherit from, and (ii) submit that field into the DPB prior
17317 to initializing the current (other) field POC values but after any
17318 reference flag was set. i.e. copy reference flags from the child
17319 (other field) to the parent (first field).
17320 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17322 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17324 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17325 decoder: h264: add support for missing second field.
17326 Interlaced H.264 video frames always have two fields to decode and
17327 display. However, in some cases, e.g. packet loss, one of the field
17328 can be missing. This perturbs the reference picture marking process,
17329 whereby the number of references available in DPB no longer matches
17330 the expected value.
17331 This patch adds initial support for missing field within a decoded
17332 frame. The current strategy taken is to find out the nearest field,
17333 by POC value, and with the same parity.
17334 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17336 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17338 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17339 decoder: h264: improve tracking of "top-field-first" flag.
17340 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17341 does not mandate it. This will be useful for tracking missing fields, and
17342 also for more correct _split_fields() implementation for frames in the DPB.
17344 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17346 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17347 decoder: h264: skip all pictures prior the first I-frame.
17348 Don't try to decode pictures until the first I-frame is received within
17349 the currently active sequence. There is no point is decoding and then
17350 displaying frames with artifacts.
17352 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17354 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17355 decoder: h264: fix processing of EOSEQ NAL.
17356 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17357 picture for decoding again. This is pretty vintage code that dates back
17358 before the existing of the whole decoder units machinery.
17359 One issue that could be arising if that code was kept is that we could
17360 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17361 Once without the decode_only flag set, and once with that flag set. The
17362 end result is that the GstVideoDecoder would release the codec frame
17363 twice, thus releasing stale data.
17364 In short, the piece of code that is removed by this patch is for once
17365 completely obsolete for a while, and secondly error-prone in corner
17368 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17370 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17371 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17372 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17373 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17374 decoder: add utility function to clone picture objects.
17375 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17376 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17377 [added cosmetic changes, fixed propagation of "one-field" flag to
17378 children, fixed per-codec clone modes (h264)]
17379 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17381 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17383 * gst/vaapi/Makefile.am:
17384 build: don't compile HEVC encoder if not supported
17386 (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
17387 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17388 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17389 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17391 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17393 * gst-libs/gst/vaapi/gstvaapicompat.h:
17394 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17395 HEVC: decode: add missing va_dec_hevc header
17396 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17397 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17398 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17400 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17402 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17403 mpeg2: fix PTS cache for GOP start.
17404 If the GOP temporal sequence number (TSN) is interpolated from a valid
17405 PTS, then we need to compensate that PTS corresponding to the start of
17406 GOP with the next picture to be decoded, which shall be an I-frame,
17407 based on its sequence number.
17408 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17410 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17412 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17413 mpeg2: avoid crash when seeking with debug logs
17414 Move down the debug message when the state of the decoder is verified
17415 so the slice header is not NULL.
17417 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17419 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17420 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17421 Reset state and add some checks for safe state to avoid a crash and
17422 a warning after the decoder is destroyed/recreated during a seek.
17424 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17426 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17427 * patches/videoparsers/series.frag:
17428 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17429 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17431 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17433 * ext/codecparsers:
17434 codecparsers: Update to gst-vaapi-branch commit 20ee952
17435 b7dded3: h264parse: don't consider unknown stream-format as avc
17436 5110ad9: h264parse: fix up handling of input caps corner cases
17437 e51db3e: h264parse: Remove dead code
17438 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17439 8482957: h265parse: Fix profile, tier and level setting in caps
17440 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17441 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17442 6886a31: h264parse: Fix profile and level setting in caps
17443 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17444 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17445 53074fc: build: Upgrade GStreamer dependency to 1.0
17446 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17448 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17450 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17451 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17452 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17454 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17456 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17457 HEVC: decode: Update Cropping Rectangle
17458 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17460 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17462 * gst/vaapi/Makefile.am:
17463 * gst/vaapi/gstvaapi.c:
17464 * gst/vaapi/gstvaapiencode_h265.c:
17465 * gst/vaapi/gstvaapiencode_h265.h:
17466 HEVC_Encode: Add HEVC(h265) Encoder plugin
17467 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17468 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17470 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17472 * gst-libs/gst/vaapi/Makefile.am:
17473 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17474 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17475 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17476 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17477 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17479 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17482 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17483 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17484 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17486 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17488 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17489 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17490 gstvaapiutils_h265: Add H265 Tier specific utility functions
17491 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17492 -- New API: gst_vaapi_utils_h265_get_tier_string()
17493 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17494 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17496 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17498 * docs/reference/plugins/Makefile.am:
17499 doc: conditional linking for scanner
17500 Add x11 library only if it is enabled.
17501 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17503 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17505 * docs/reference/plugins/plugins.types:
17506 doc: fix scanner compilation warning
17507 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17509 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17511 * docs/reference/libs/libs-docs.xml.in:
17512 * docs/reference/libs/libs-sections.txt:
17513 doc: update sections and symbols
17514 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17516 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17520 * debian.upstream/Makefile.am:
17521 * docs/Makefile.am:
17522 * docs/reference/Makefile.am:
17523 * docs/reference/libs/Makefile.am:
17524 * docs/reference/plugins/Makefile.am:
17526 * ext/libvpx/Makefile.am:
17528 * gst-libs/Makefile.am:
17529 * gst-libs/gst/Makefile.am:
17530 * gst-libs/gst/base/Makefile.am:
17531 * gst-libs/gst/codecparsers/Makefile.am:
17532 * gst-libs/gst/vaapi/Makefile.am:
17534 * gst/vaapi/Makefile.am:
17535 * patches/Makefile.am:
17536 * patches/videoparsers/Makefile.am:
17537 * pkgconfig/Makefile.am:
17538 * tests/Makefile.am:
17540 This patch handles dinamically the gitignore files with git.mk[1].
17541 Removed the automake variable MAINTAINERCLANFILES in most of the
17542 Makefile.am files since now it is handled by the top one.
17543 1. https://github.com/behdad/git.mk/blob/master/git.mk
17544 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17546 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17548 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17549 wayland: sync() when destroy()
17550 Before pushing a the new frame, the render() method calls sync() to flush the
17551 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17552 to a memory leak too.
17553 This patch calls sync() in the destroy() to flush the pending frames before
17554 destroying the window.
17555 Also a is_cancelled flag is added. This flag tells to not flush the event
17556 queue again since the method failed previously or were cancelled by the user.
17557 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17559 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17561 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17562 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17563 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17564 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17565 * gst/vaapi/gstvaapisink.c:
17566 vaapisink: implement unlock/unlock_stop for wayland
17567 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17568 shutting down. This can happen e.g. if the wayland compositor exits while
17569 the pipeline is running.
17571 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17572 * splitted the patch removing wl_display_dispatch_queue()
17573 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17574 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17575 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17577 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17580 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17581 wayland: wl_display_dispatch_queue() can block forever.
17582 wl_display_dispatch_queue() might prevent the pipeline from shutting
17583 down. This can happen e.g. if the wayland compositor exits while the
17584 pipeline is running.
17585 This patch replaces it with these steps:
17586 - With wl_display_prepare_read() all threads announce their intention
17588 - wl_display_read_events() is thread save. On threads reads, the other
17589 wait for it to finish.
17590 - With wl_display_dispatch_queue_pending() each thread dispatches its
17592 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17593 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17594 * stripped out the unlock() unlock_stop() logic
17595 * stripped out the poll handling
17596 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17597 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17598 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17600 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17602 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17603 wayland: rename frame for last_frame
17604 Since frame in the private data means the last frame sent, it would
17605 semantically better use last_frame.
17606 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17608 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17610 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17612 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17613 wayland: use a counter as sync flag
17614 Wayland window has a pointer to the last pushed frame and use it to set the
17615 flag for stopping the queue dispatch loop. This may lead to memory leaks,
17616 since we are not keeping track of all the queued frames structures.
17617 This patch removes the last pushed frame pointer and change the binary flag
17618 for an atomic counter, keeping track of number of queued frames and use it for
17619 the queue dispatch loop.
17620 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17622 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17624 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17625 wayland: decouple wl_buffer from frame
17626 This patch takes out the wayland's buffer from the the frame structure. The
17627 buffer is queued to wayland and destroyed in the "release" callback. The
17628 frame is freed in the surface's "done" callback.
17629 In this way a buffer may be leaked but not the whole frame structure.
17630 - surface 'done' callback is used to throttle the rendering operation and to
17631 unallocate the frame, but not the buffer.
17632 - buffer 'release' callback is used to destroy wl_buffer.
17633 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17635 * kept the the event_queue for buffer's proxy
17636 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17637 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17639 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17641 * gst/vaapi/gstvaapisink.c:
17642 vaapisink: fix indentation
17644 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17646 * debian.upstream/Makefile.am:
17647 * ext/libvpx/Makefile.am:
17648 * gst-libs/gst/vaapi/Makefile.am:
17649 * gst/vaapi/Makefile.am:
17650 * tests/Makefile.am:
17651 build: fix make distcheck
17652 This patch fixes several issues found when running the `make distcheck`
17654 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17656 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17658 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17659 - The make target distcleancheck failed because some autogenerated files
17660 were not handled with the DISTCLEANFILES variable.
17661 Note: `make distcheck -jXX` is not currently supported.
17663 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17665 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17666 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17667 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17668 h264parse: update patches with upstream
17669 These patches didn't applied cleanly, breaking the `make distcleancheck`
17670 target. Re-sync'ed the patches against the current git's submodule.
17672 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17674 * tests/simple-encoder.c:
17675 tests: simple-encoder: fix build warnings on 64-bit platforms.
17676 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17677 importantly fix warnings spitted out during build on 64-bit platforms.
17678 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17679 g_warning ("Invalid VAAPI buffer size (%d)", size);
17681 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17682 g_warning ("Failed to create output buffer of size %d", size);
17685 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17687 * gst/vaapi/gstvaapipluginbase.c:
17688 * gst/vaapi/gstvaapipluginutil.c:
17689 * gst/vaapi/gstvaapipluginutil.h:
17690 * gst/vaapi/gstvaapivideocontext.h:
17691 plugins: remove gstreamer-0.10 crumbs
17692 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17693 Still, its definition was still in the code. This patch removes it.
17694 https://bugzilla.gnome.org/show_bug.cgi?id=749113
17696 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17698 * tests/Makefile.am:
17699 * tests/simple-encoder.c:
17700 * tests/y4mreader.c:
17701 * tests/y4mreader.h:
17702 tests: add simple-encoder program
17703 This patch adds a simple-encoder test program that uses libgstvaapi for video
17704 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17705 format. That can be from a regular file or standard input when the input
17707 Usage: simple-encoder [options]* <source>
17709 --output|-o output file name
17710 --codec|-c codec to use for video encoding
17711 --bitrate|-b desired bitrate (kbps)
17712 By default, and as an initial patch, the encoded stream shall conform to the
17713 minimally supported profile. That is "Constrained Baseline Profile" for H.264
17714 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17715 generated by libgstvaapi.
17716 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17717 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17718 * general code clean-up
17719 * removed the yuv reader thread
17720 * re-wrote the y4m file parser
17721 * updated used API fixed some wrong usage
17722 * fixed a lot of memory leaks
17723 * added the bitrate setting
17724 * keep fps' numerator and denominator
17725 * simplified the thread control
17726 * removed custom logging and use glib
17727 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17728 https://bugzilla.gnome.org/show_bug.cgi?id=719528
17730 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17732 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17733 libs: trivial documentation fix
17734 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17735 are not errors, so they do not have the ERROR namespace.
17736 This patch fixes this typo in documentation.
17738 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
17740 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17741 window: Correct prototype to match implementation
17742 On s390x, guintptr and GstVaapiID are not compatible types. The
17743 implementation of gst_vaapi_window_new_internal() and all its callers
17744 seem to assume that its third argument is a GstVaapiID, while the
17745 header gives it guintptr type.
17746 https://bugzilla.gnome.org/show_bug.cgi?id=744559
17748 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17750 * gst/vaapi/gstvaapidecode.c:
17751 * gst/vaapi/gstvaapidecodebin.c:
17752 vaapidecode: add guards for disabled codecs.
17753 Fix link when building plugin elements without HEVC support. e.g. don't
17754 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17755 support HEVC enabled in libgstvaapi.
17756 Also, drop disabled codecs from static template caps. Add the missing
17757 HEVC static template caps into vaapidecodebin too.
17759 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17762 * gst-libs/gst/vaapi/glibcompat.h:
17763 build: upgrade glib dependency to 2.32
17764 Since bug #745728 was fixed the oldest supported version of GStreamer is
17765 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17767 This patch changes the required version of glib in configure.ac and removes
17768 the hacks in glibcompat.h
17769 https://bugzilla.gnome.org/show_bug.cgi?id=748698
17771 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17773 * gst/vaapi/gstvaapipluginbase.c:
17774 plugins: check if the pool config is already set
17775 In commit 97b768, a regression for GStreamer 1.2 was introduced:
17776 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17777 config option is already set. This patch adds an inline function to
17778 first verify if the option is not in the pool config berfore add it.
17780 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17782 * gst/vaapi/gstvaapipostproc.c:
17783 vaapipostproc: tune up a couple of log messages
17784 In order to reduce the noise, the query type log was downgrade from INFO to
17785 DEBUG, and the shared display address log message is assigned to the object.
17787 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17789 * gst/vaapi/gstvaapipluginbase.c:
17790 plugins: check gst_buffer_pool_set_config()
17791 Check the return value of gst_buffer_pool_set_config(). If it fails an error
17792 message is posted in the bus.
17794 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17796 * gst/vaapi/gstvaapipluginbase.c:
17797 plugins: more specific log message
17798 Be more specific in the log message about the reason of creating a new pool.
17800 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17802 * gst/vaapi/gstvaapipluginbase.c:
17803 plugins: delete unused variable
17804 need_pool is a boolean variable extracted from the allocation query, but it is
17805 not used afterwards.
17807 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17809 * gst/vaapi/gstvaapipluginbase.c:
17810 vaapipluginbase: Update the pool if there was no pool in the downstream reply
17811 Fix regression introduced by bd866479, the query after decide_allocation()
17812 always needs a pool in the first slot.
17813 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17814 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17816 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
17818 * gst/vaapi/gstvaapivideobufferpool.c:
17819 videopool: Free members before chaining up finalize
17820 The finalize function in GObject frees the object memory, so
17821 everything else needs to have been freed before.
17822 https://bugzilla.gnome.org/show_bug.cgi?id=748563
17824 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
17826 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17827 wayland: don't leak the registry proxy
17828 Release the registry proxy when closing the display.
17829 https://bugzilla.gnome.org/show_bug.cgi?id=748564
17831 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17833 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17834 wayland: refactor _sync() method and rename callback
17835 This patch only intends to improve readability: in the method
17836 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17838 Also renames the frame_redraw_callback() callback into frame_done_callback(),
17839 which is a bit more aligned to Wayland API.
17841 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
17843 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17844 wayland: free frame in buffer release callback
17845 The Wayland compositor may still use the buffer when the frame done
17846 callback is called.
17847 This patch destroys the frame (which contains the buffer) until the
17848 release callback is called. The draw termination callback only controls
17849 the display queue dispatching.
17850 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17851 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17853 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17855 * gst/vaapi/gstvaapidecode.c:
17856 vaapidecode: refactor gst_vaapidecode_internal_flush()
17857 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
17858 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
17859 shares the same error message of gst_vaapidecode_internal_flush() when flush
17862 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17864 * gst/vaapi/gstvaapidecode.c:
17865 vaapidecode: refactor gst_vaapidecode_destroy()
17866 Add the method gst_vaapidecode_purge(). This method releases the
17867 flushed frames from the decoder.
17868 This new method add more readablity to gst_vaapidecode_destroy()
17870 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
17872 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17873 * gst/vaapi/gstvaapidecode.c:
17874 vaapidecode: Tell the base class about released frames on close
17875 The base class needs to be informed about frames that were still queued
17876 in the decoder on release, otherwise they are leaked.
17877 https://bugzilla.gnome.org/show_bug.cgi?id=747999
17879 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17881 * gst/vaapi/gstvaapidecode.c:
17882 vaapidecode: reduce logging noise
17883 When a frame is rejected by downstream, the message is logged twice. This
17884 patch removes one of those logging messages.
17885 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
17886 the log message from error to info.
17888 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
17890 * gst/vaapi/gstvaapidecode.c:
17891 vaapidecode: Use the GstVideoDecoder error reporting function
17892 This way, the decoder won't stop on the first decoding error,
17893 in most cases it can recover after some glitchiness.
17894 https://bugzilla.gnome.org/show_bug.cgi?id=744620
17896 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
17898 * gst/vaapi/gstvaapipluginbase.c:
17899 vaapipluginbase: The allocation query can return without a pool
17900 It is possible to return the min/max/size without actually providing
17901 a pool. This way the source knows how many buffers downstream needs.
17902 https://bugzilla.gnome.org/show_bug.cgi?id=748076
17904 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17907 * gst/vaapi/Makefile.am:
17908 * gst/vaapi/gstvaapiparse.c:
17909 * gst/vaapi/gstvaapiparse.h:
17910 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
17911 * patches/videoparsers/series.frag:
17912 plugins: Add h265 videoparser element "vaapiparse_h265"
17913 This is a mirror of h265parse element in upstream gst-plugins-bad.
17914 There could be additional patches but all should go to upstream.
17915 This is for making development faster.
17916 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
17918 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17920 * ext/codecparsers:
17921 codecparsers: Update to gst-vaapi-branch commit 43a0368
17922 45f1c28: codecparser: h265: Fix nal unit size checking
17923 f25987b: codecparser: h265: Calculate crop rectangle dimensions
17924 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
17925 4c8ec41: Add h265 videoparser plugin source files
17927 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17930 autogen: drop videoutils submodule.
17932 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17934 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17935 decoder: hevc: cosmetics.
17936 Mostly coding style updates. Avoid integer signess inconsistencies.
17937 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
17939 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17941 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17942 decoder: hevc: Add Support for tiled video decoding
17943 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
17944 the tile column width and tile row height should be calculated.
17945 Equations: 6-1, 6-2
17946 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
17948 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17950 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17951 decoder: hevc: Fix decoding when there are RASL pictures present.
17952 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
17953 -- Fix PicOutputFlag setting for RASL picture
17954 -- Fix prev_poc_lsb/prev_poc_msb calculation
17955 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
17956 -- Fixed couple of crashes and added cosmetics
17958 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
17960 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17961 display: drm: fix race condition setting device type
17962 There is a race condition where g_drm_device_type can be left set to
17963 DRM_DEVICE_RENDERNODES when it shouldn't.
17964 If thread 1 comes in and falls into the last else statement setting up both
17965 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
17966 it sets g_drm_device_type = RENDERNODES.
17967 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
17968 up that type to be tried but then encounters the lock and has to wait until the
17969 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
17970 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
17971 attempts will only try RENDERNODES.
17972 So to avoid this situation I have simply moved the acquisition of the lock higher
17973 up in the attached patch.
17974 https://bugzilla.gnome.org/show_bug.cgi?id=747914
17976 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17978 * gst/vaapi/gstvaapipostproc.c:
17979 vaapipostproc: Don't create filter on caps query
17980 The problem with this is that creating the filter causes the display to
17981 be selected, and the caps query happens while linking the element. So,
17982 if the downstream or upstream element is using a specific display
17983 object, it won't be propagated correctly to the postproc as it already
17984 has a display at this point.
17985 https://bugzilla.gnome.org/show_bug.cgi?id=747945
17987 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
17989 * gst-libs/gst/vaapi/gstvaapivideopool.c:
17990 videopool: Release lock while allocating new object
17991 The video pool can be accessed with the display lock held, for example,
17992 when releasing a buffer from inside vaapisink_render, but allocating
17993 a new object can may also take the display lock. Which means a possible
17995 https://bugzilla.gnome.org/show_bug.cgi?id=747944
17997 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17999 * gst/vaapi/gstvaapisink.c:
18000 vaapisink: use GstVideoSink vmethod show_frame()
18001 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18002 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18003 rather than call ourselves render() and preroll().
18005 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18007 * gst/vaapi/gstvaapisink.c:
18008 * gst/vaapi/gstvaapisink.h:
18009 vaapisink: add 'handoff' signal
18010 This patch adds the signal ::handoff and the property signal-handoffs. If the
18011 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18013 Based on Zhao Halley <halley.zhao@intel.com>
18014 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18016 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18018 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18019 HEVC: silence the compiler
18020 Fixed a couple of clang complains.
18022 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18024 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18025 wayland: destroy vpp buffer pool on resize
18026 Otherwise the old buffers with the old size are used.
18027 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18029 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18032 * gst-libs/gst/vaapi/Makefile.am:
18033 build: don't compile HEVC if not supported
18034 HEVC decoding was added recently libva-1.5.
18035 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18036 in the installed libva.
18037 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18039 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18041 * gst/vaapi/gstvaapidecode.c:
18042 vaapidecode: Update Author name in plugin metadata
18044 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18046 * gst/vaapi/gstvaapidecode.c:
18047 plugins: Add HEVC decoder
18048 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18050 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18052 * gst-libs/gst/vaapi/Makefile.am:
18053 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18054 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18055 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18056 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18058 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18060 * gst-libs/gst/vaapi/Makefile.am:
18061 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18062 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18063 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18064 HEVC: Add codec utility methods to core libgstvaapi
18065 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18067 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18069 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18070 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18071 HEVC: gstvaapiprofile: Add profile definitions
18072 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18074 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18077 HEVC: build: Check availability of h265 decoder APIs
18078 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18080 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18084 * gst-libs/gst/codecparsers/Makefile.am:
18085 HEVC: Allow to build h265 codecparser internally
18086 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18088 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18090 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18091 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18092 * gst-libs/gst/vaapi/gstvaapisurface.c:
18093 guard buffer export API if not available
18094 The support for buffer exports in VA-API was added in version 0.36. These
18095 interfaces are for interop with EGL, OpenCL, etc.
18096 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18097 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18098 This patch guards all the buffer exports handling (and dmabuf allocator) if
18099 the detected VA-API version is below 0.36.
18100 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18102 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18104 * ext/codecparsers:
18105 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18106 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18107 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18108 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18109 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18110 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18112 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18114 * gst/vaapi/gstvaapidecode.c:
18115 vaapidecode: unref video codec frame twice
18116 We get one reference when the frame is passed to decode_handle_frame()
18117 and create another one in gst_vaapi_decoder_push_frame().
18118 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18119 Here the frame is always released twice:
18120 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18121 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18122 In gst_vaapidecode_reset_full() both references to the frame must be
18124 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18125 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18127 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18129 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18130 libs: remove unused variables
18131 clang reports these unused variables. Let's get rid of them.
18132 This patch is a missing part of commit c82e5173
18133 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18135 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18137 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18138 decoder: mpeg4: remove an spurious comparison
18139 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18140 less than zero. Hence this pre-condition test is a no-op. This patch removes
18142 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18144 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18146 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18147 encoder: h264: casts slice_param->slice_type
18148 slice_type in slice_param is defined as (char *), but it is compared against a
18149 signed integer. clang complains about this comparison.
18150 This patch casts the variable.
18151 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18153 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18155 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18156 encoder: avoid GstVaapiCodedBuffer redefinition
18157 The symbol GstVaapiCodedBuffer is already defined in
18158 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18159 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18160 This patch removes that redefinition.
18161 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18163 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18165 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18166 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18167 libs: remove unused variables
18168 clang reports these unused variables. Let's get rid of them.
18169 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18171 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18173 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18174 encoder: mpeg2: use fabsf() instead of abs()
18175 The member value in frame_rate_tab is float, the result of the abs() function
18176 should be float too. But abs() only manages integers.
18177 This patch replaces abs() with fabsf() to handle correctly the possible floats
18179 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18181 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18183 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18184 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18185 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18186 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18187 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18188 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18189 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18190 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18191 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18193 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18198 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18202 Changing source code download links from https://gitorious to https://github
18203 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18204 -- README: Change the gstreamer-vaapi webpage link
18206 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18208 * ext/codecparsers:
18209 codecparsers: update to gst-vaapi-branch commit 1f792e4
18210 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18211 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18212 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18213 2b92a67: h264parse: reset the parser information when caps changes
18214 05eee86: codecparsers: Indent file
18215 e27a38b: codecparsers: Add READ_UE_MAX macro
18216 2036471: Constify some static arrays everywhere
18218 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18220 * gst/vaapi/gstvaapivideoconverter_glx.c:
18221 * gst/vaapi/gstvaapivideoconverter_x11.c:
18222 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18224 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18226 * gst/vaapi/gstvaapidecode.c:
18227 * gst/vaapi/gstvaapidecodebin.c:
18228 * gst/vaapi/gstvaapiencode_h264.c:
18229 * gst/vaapi/gstvaapiencode_jpeg.c:
18230 * gst/vaapi/gstvaapiencode_mpeg2.c:
18231 * gst/vaapi/gstvaapiencode_vp8.c:
18232 * gst/vaapi/gstvaapipluginbase.c:
18233 * gst/vaapi/gstvaapipluginutil.c:
18234 * gst/vaapi/gstvaapipluginutil.h:
18235 * gst/vaapi/gstvaapipostproc.c:
18236 * gst/vaapi/gstvaapisink.c:
18237 * gst/vaapi/gstvaapivideobuffer.c:
18238 * gst/vaapi/gstvaapivideobufferpool.c:
18239 * gst/vaapi/gstvaapivideocontext.c:
18240 * gst/vaapi/gstvaapivideocontext.h:
18241 * gst/vaapi/gstvaapivideoconverter_glx.h:
18242 * gst/vaapi/gstvaapivideoconverter_x11.h:
18243 * gst/vaapi/gstvaapivideomemory.h:
18244 * gst/vaapi/gstvaapivideometa_texture.c:
18245 Removal of gstreamer-1.0 support
18246 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18247 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18248 This patch removes all the pre-processor conditional code compilation guarded
18250 Thus, all the video converters were removed too.
18251 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18252 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18253 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18255 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18257 * gst-libs/gst/vaapi/gstcompat.h:
18258 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18259 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18260 * gst-libs/gst/vaapi/sysdeps.h:
18261 * gst/vaapi/gstcompat.h:
18262 * gst/vaapi/gstvaapi.c:
18263 * gst/vaapi/gstvaapidecode.c:
18264 * gst/vaapi/gstvaapidecodebin.c:
18265 * gst/vaapi/gstvaapiencode.c:
18266 * gst/vaapi/gstvaapiencode_h264.c:
18267 * gst/vaapi/gstvaapiencode_jpeg.c:
18268 * gst/vaapi/gstvaapiencode_mpeg2.c:
18269 * gst/vaapi/gstvaapiencode_vp8.c:
18270 * gst/vaapi/gstvaapiparse.c:
18271 * gst/vaapi/gstvaapipluginbase.c:
18272 * gst/vaapi/gstvaapipluginutil.c:
18273 * gst/vaapi/gstvaapipostproc.c:
18274 * gst/vaapi/gstvaapisink.c:
18275 * gst/vaapi/gstvaapiuploader.c:
18276 * gst/vaapi/gstvaapivideobuffer.c:
18277 * gst/vaapi/gstvaapivideobufferpool.c:
18278 * gst/vaapi/gstvaapivideocontext.c:
18279 * gst/vaapi/gstvaapivideoconverter_glx.c:
18280 * gst/vaapi/gstvaapivideoconverter_x11.c:
18281 * gst/vaapi/gstvaapivideomemory.c:
18282 * gst/vaapi/gstvaapivideometa.c:
18283 * gst/vaapi/gstvaapivideometa_texture.c:
18285 update and move gstcompat.h
18286 The purpose of gstcompat.h is to couple the API differences among
18287 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18288 in this compatibility layer shall be removed.
18289 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18290 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18291 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18292 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18293 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18294 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18295 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18296 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18298 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18301 * gst/vaapi/Makefile.am:
18302 autotools: remove gstreamer-1.0 support
18303 This patch only removes the support of gstreamer-1.0 in the autotools
18304 scripts. No other files are touched.
18305 In the automake file all the converters were deprecated.
18306 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18307 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18308 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18310 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18315 Remove the gstreamer-videoutils submodule
18317 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18320 * gst-libs/gst/Makefile.am:
18321 * gst-libs/gst/vaapi/Makefile.am:
18322 * gst-libs/gst/video/Makefile.am:
18323 * gst/vaapi/Makefile.am:
18324 * tests/Makefile.am:
18325 Remove libgstvaapi-videoutils.so
18326 This library was intended to add the base classes for video decoders which
18327 where not included in gstreamer-0.10.
18328 Since the support of gstreamer-0.10 is deprecated those classes are not
18329 required, thus the whole library is removed.
18330 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18331 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18332 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18334 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18337 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18338 * gst-libs/gst/vaapi/gstvaapiutils.c:
18339 * tests/test-subpicture.c:
18340 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18341 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18342 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18343 deprecated these guards are not required.
18344 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18345 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18346 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18348 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18350 * gst-libs/gst/vaapi/gstcompat.h:
18351 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18352 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18353 * gst-libs/gst/vaapi/gstvaapiimage.c:
18354 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18355 * gst-libs/gst/vaapi/video-format.c:
18356 * gst-libs/gst/vaapi/video-format.h:
18357 * gst/vaapi/gstvaapi.c:
18358 * gst/vaapi/gstvaapidecode.c:
18359 * gst/vaapi/gstvaapidecodebin.c:
18360 * gst/vaapi/gstvaapidownload.c:
18361 * gst/vaapi/gstvaapidownload.h:
18362 * gst/vaapi/gstvaapiencode.c:
18363 * gst/vaapi/gstvaapiencode_h264.c:
18364 * gst/vaapi/gstvaapiencode_jpeg.c:
18365 * gst/vaapi/gstvaapiencode_mpeg2.c:
18366 * gst/vaapi/gstvaapiencode_vp8.c:
18367 * gst/vaapi/gstvaapiparse.c:
18368 * gst/vaapi/gstvaapipluginbase.c:
18369 * gst/vaapi/gstvaapipluginbase.h:
18370 * gst/vaapi/gstvaapipluginutil.c:
18371 * gst/vaapi/gstvaapipluginutil.h:
18372 * gst/vaapi/gstvaapipostproc.c:
18373 * gst/vaapi/gstvaapisink.c:
18374 * gst/vaapi/gstvaapiupload.c:
18375 * gst/vaapi/gstvaapiupload.h:
18376 * gst/vaapi/gstvaapiuploader.c:
18377 * gst/vaapi/gstvaapivideobuffer.c:
18378 * gst/vaapi/gstvaapivideoconverter_glx.c:
18379 * gst/vaapi/gstvaapivideoconverter_x11.c:
18380 * gst/vaapi/gstvaapivideometa.c:
18381 * gst/vaapi/gstvaapivideometa.h:
18382 * tests/test-filter.c:
18383 * tests/test-subpicture.c:
18384 Removal of gstreamer-0.10 support
18385 This patch removes all the pre-processor conditional code compilation guarded
18386 for gstreamer-0.10.
18387 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18388 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18389 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18391 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18394 * debian.upstream/control.in:
18395 * gst-libs/gst/video/Makefile.am:
18396 * gst/vaapi/Makefile.am:
18397 autotools: remove gstreamer-0.10 support
18398 This patch only removes the support of gstreamer-0.10 in the autotools
18399 scripts. No other files are touched.
18400 The configuration parameter --gstreamer-api was deleted since now it is always
18402 The verification of vmethod query in GstBaseSinkClass was removed since it was
18403 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18405 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18407 The automake files were changed accordingly.
18408 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18409 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18410 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18411 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18413 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18415 * gst/vaapi/gstvaapidecode.c:
18416 vaapidecode: add drain() vmethod
18417 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18418 class. This patch implements this new method.
18419 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18420 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18421 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18423 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18425 * gst/vaapi/gstvaapidecode.c:
18426 vaapidecode: remove vmethod reset()
18427 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18428 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18429 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18430 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18431 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18433 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18435 * gst/vaapi/gstvaapidecode.c:
18436 vaapidecode: handle flush() vmethod
18437 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18438 and flush() was added.
18439 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18440 superior. Otherwise, reset() is set.
18441 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18442 was renamed to gst_vaapidecode_internal_flush().
18443 2) The new vmethod flush() always do a hard full reset.
18444 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18445 gather all collected data with gst_video_decoder_have_frame()
18446 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18447 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18448 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18450 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18452 * gst/vaapi/gstvaapidecode.c:
18453 vaapidecode: call the correct query function
18454 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18455 a bug was introduced: when calling the parent's query function of the
18456 src pad, the one of the sink pad is called instead. This patch fixes
18458 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18460 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18463 gitmodules: Use https:// url instead of git:// for submodules.
18464 Gitorious is failing to clone repositories over git:// url.
18466 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18468 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18469 vaapidisplay: mark X11 display as compatible with EGL
18470 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18471 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18472 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18473 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18475 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18477 * gst/vaapi/gstvaapidecode.c:
18478 vaapidecode: Don't crash if a buffer outlives the decoder
18479 Sometimes, for example, when switching video streams but keeping
18480 the same sink, the surface will be released after the decoder is
18481 stopped and replaced. This caused a crash because the release
18482 callback was called on an invalid pointer.
18483 The patch adding an additional reference to the decoder object in the buffer.
18484 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18485 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18486 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18488 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18490 * gst/vaapi/gstvaapidecode.c:
18491 vaapidecode: clean-ups (indentation, drop unused variables)
18493 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18495 * gst/vaapi/gstvaapidecode.c:
18496 vaapidecode: use the query virtual methods in 1.4
18497 GstVideoDecoder, the base class of vaapidecode, added support for
18498 pad queries as virtual methods. This patch enables the use of that
18499 support, while keeping support for lower versions of gstreamer.
18500 This patch is important because GstVideoDecoder takes care of other
18501 queries that might be important in the pipeline managing.
18502 v2: 1) rebase to current master
18503 2) fix indentation with gst-indent
18504 3) simplify the patch layout
18505 4) fix the context query
18506 5) initialise the filter to NULL
18507 6) improve the query log message for gst-1.2
18508 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18510 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18512 * gst/vaapi/gstvaapipostproc.c:
18513 * gst/vaapi/gstvaapipostproc.h:
18514 vaapipostproc: always activate buffer pool
18515 The vaapipostproc has a proxy flag to know if the the buffer pool is
18516 already active. But this fails in some situations where it is needed
18517 to renegotiate the buffer pool.
18518 This patch removes that flag so the renegotiation is done whenever is
18520 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18522 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18524 * gst/vaapi/gstvaapisink.c:
18525 vaapisink: fix minor memory leak in debug mode.
18526 The gst_video_colorimetry_to_string() function returns a newly created
18527 string that represents the GstVideoColorimetry value. So, that needs
18528 to be released after usage, in e.g. GST_DEBUG().
18530 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18532 * gst/vaapi/gstvaapidecodebin.h:
18533 vaapidecodebin: Avoid usage of "__" prefix in macro names
18534 Avoiding "__" prefix usage in Header File Guards as per
18535 C standard recommendation.
18537 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18539 * gst/vaapi/gstvaapi.c:
18540 plugins: Disable vaapidecodebin for GStreamer < 1.4
18541 There are autoplugging issues in GStreamer-1.2.
18542 Lets disable vaapidecodebin untill we get some workarounds for this.
18544 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18546 * gst/vaapi/Makefile.am:
18547 * gst/vaapi/gstvaapi.c:
18548 * gst/vaapi/gstvaapidecodebin.c:
18549 * gst/vaapi/gstvaapidecodebin.h:
18550 plugins: Add a vaapidecodebin element
18551 Add a "vaapidecodebin" element to vaapi plugins.
18552 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18553 The Reasons for implementing a new bin element:
18554 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18555 with out any dependency to upstream gstreamer.
18556 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18557 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18558 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18559 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18560 -- Help to maintain a single thread implementation in vaapidecode.
18561 This will result a dead-lock free vaapidecode in most of the cases.
18562 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18563 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18565 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18567 * gst/vaapi/gstvaapidecode.c:
18568 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18570 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18572 * gst/vaapi/gstvaapidecode.c:
18573 * gst/vaapi/gstvaapidecode.h:
18574 vaapidecode: Switch back to Single thread implementation
18575 Because the decoder uses the thread from handle_frame() to decode a frame,
18576 the src pad task creates an unsolveable AB-BA deadlock between
18577 handle_frame() waiting for a free surface and decode_loop() pushing
18578 decoded frames out.
18579 Instead, have handle_frame() take responsibility for pushing surfaces,
18580 and remove the deadlock completely. If you need a separate thread
18581 downstream, you can insert a queue between vaapidecode and its downstream
18583 Another justification for the single thread implementation is,
18584 there are two many point of locking in gstreamer-vaapi's current
18585 implementation which can lead to deadlocks.
18586 https://bugzilla.gnome.org/show_bug.cgi?id=742605
18587 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18588 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18589 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18591 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18593 * gst/vaapi/gstvaapipluginbase.c:
18594 plugins: fix detection of upstream v4l2src element.
18595 Improve check for upstream element that requires DMABUF buffer pool,
18596 e.g. v4l2src element. In particular, make sure to traverse through
18597 any additional capsfilter for instance.
18598 Note: the traversal to the top-most upstream element could be made
18599 more generic, but we are insofar only interested in supporting pipes
18600 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18601 specification for a desired video camera format, or resolution.
18603 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18605 * gst/vaapi/gstvaapivideomemory.c:
18606 plugins: fix allocation of DMABUF memory.
18607 The dmabuf allocator would close the DMABUF handle passed in the init
18608 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18609 to avoid a double close, ultimately in the underlying driver that owns
18612 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18614 * gst/vaapi/gstvaapidecode.c:
18615 vaapidecode: keep src caps and output state in sync
18616 vaapidecode keeps an output state that use the format
18617 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18618 for a correct negotiation.
18619 I don't see the rational behind this decoupling, it looks like
18620 unnecessary complexity. This patch simplify this logic keeping
18621 in sync the output state and the src caps.
18622 This patch improves the readability of the function
18623 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18624 the patch validates if the buffer pool has the configuration for
18625 the GL texture upload meta, in order to set the caps feature
18626 meta:GLTextureUpload. Otherwise, the I420 format is set back.
18627 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18628 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18629 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18631 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18633 * gst/vaapi/gstvaapidecode.c:
18634 vaapidecode: upload meta only if feature and allocation
18635 When vaapidecode finishes the decoding of a frame and pushes it,
18636 if, in the decide_allocation() method, it is determined if the
18637 next element supports the GL texture upload meta feature, the
18638 decoder adds the buffer's meta.
18639 Nonetheless, in the same spirit of the commit 71d3ce4d, the
18640 determination if the next element supports the GL texture upload
18641 meta needs to check both the preferred caps feature *and* if the
18642 allocation query request the API type.
18643 This patch, first removes the unused variable need_pool, and
18644 determines the attribute has_texture_upload_meta using the
18645 preferred caps feature *and* the allocation query.
18646 Also, the feature passed to GstVaapPluginBase is not longer
18647 determined by has_texture_upload_meta, but by the computed
18649 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18650 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18651 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18653 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18655 * gst/vaapi/gstvaapidecode.c:
18656 * gst/vaapi/gstvaapidecode.h:
18657 * gst/vaapi/gstvaapipluginutil.c:
18658 * gst/vaapi/gstvaapipluginutil.h:
18659 vaapidecode: delayed src caps negotiation
18660 Currently the src caps are set immediately after the sink caps are set, but in
18661 that moment the pipeline might not fully constructed and the video sink has
18662 not negotiated its supported caps and features. As a consequence, in many cases
18663 of playback, the least optimized caps feature is forced. This is partially the
18664 responsible of bug #744039.
18665 Also, vaapidecode doesn't attend the reconfigure events from downstream,
18666 which is a problem too, since the video sink can be changed with different
18668 This patch delays the src caps, setting them until the first frame arrives to
18669 the decoder, assuming until that very moment the whole pipeline is already
18670 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18671 as a consequence of a reconfiguration event from downstream.
18672 A key part of this patch is the new GstVaapiCapsFeature
18673 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18674 doesn't have a peer yet. Also, for a better report of the caps allowed
18675 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18676 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18677 v3: move the input_state unref to close(), since videodecoder resets at
18678 some events such as navigation.
18679 v4: a) the state_changed() callback replaces the input_state if the media
18680 changed, so this case is also handled.
18681 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18682 always the input_state, the parameter were removed.
18683 c) there were a lot of repeated code handling the input_state, so I
18684 refactored it with the function gst_vaapi_decode_input_state_replace().
18685 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18686 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18687 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18689 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18691 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18692 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18693 encoder: h264: add support for more than 2 views
18694 Add support for H.264 MVC Multiview High profile encoding with
18695 more than 2 views. All views within the same accesss unit are
18696 provided in increasing order of view order index (VOIdx).
18697 Upto 10 view are supported for now.
18698 A new property "view-ids" has been provided for the plugins to
18699 set the view ids (which is an array of guint values) to be used
18701 https://bugzilla.gnome.org/show_bug.cgi?id=732453
18703 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18705 * gst/vaapi/gstvaapipluginbase.c:
18706 plugins: upload meta only if feature and allocation
18707 Working on bug #743687, I realized that vaapidecode always adds to its buffer
18708 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18709 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18710 Nevertheless, there are occasions where the query has the API type, but the
18711 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18712 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18713 buffer pool configuration, and adds its buffer's meta to each output buffer,
18714 even if the negotiated caps feature is memory:SystemMemory with I420 color
18716 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18717 that relates caps <-> GL upload method. If it receives a buffer with color
18718 format I420, it assumes that it doesn't have a texture upload meta, because
18719 only those with RGB color format has it. Our buffers, with I420 format, say
18720 that they have the upload meta too. In that case the mapped method is a dummy
18721 one which does nothing. I reported this issue in bug #744039 (the patch,
18722 obviously, was rejected).
18723 This patch workarounds the problem: the buffer pool's configuration option
18724 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18725 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18726 caps feature is meta:GstVideoGLTextureUploadMeta.
18727 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18728 in all they seem to work correctly.
18729 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18730 [adapted to fit current EGL changes]
18731 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18733 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18735 * gst-libs/gst/vaapi/gstvaapitexture.c:
18736 * gst-libs/gst/vaapi/gstvaapitexture.h:
18737 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18738 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18739 * gst/vaapi/gstvaapivideometa_texture.c:
18740 plugins: add support for GstVideoGLTextureOrientation.
18741 Add support for GstVideoGLTextureOrientation modes. In particular,
18742 add orientation flags to the GstVaapiTexture wrapper and the GLX
18743 implementations. Default mode is that texture memory is laid out
18744 with top lines first, left row first. Flags indicate whether the
18745 X or Y axis need to be inverted.
18747 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18749 * gst/vaapi/gstvaapidecode.c:
18750 * gst/vaapi/gstvaapipluginbase.c:
18751 * gst/vaapi/gstvaapipluginutil.c:
18752 * gst/vaapi/gstvaapipluginutil.h:
18753 * gst/vaapi/gstvaapipostproc.c:
18754 * gst/vaapi/gstvaapivideometa_texture.c:
18755 plugins: add support for BGRA textures.
18756 Some frameworks (EFL) expect BGRA textures for storage. However,
18757 adding support for that broadly into GStreamer framework implies
18758 two kinds of hacks: (i) libgstgl helpers currently do not support
18759 BGRA textures correctly, (ii) we need to better parse downstream
18760 suggested caps and intersect them with what the VA plugin elements
18761 can offer to them for GL texturing.
18763 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18765 * gst/vaapi/gstvaapipluginutil.c:
18766 plugins: fix support for Wayland/EGL running alongside X11.
18767 When multiple display servers are available, the glimagesink element
18768 (from GStreamer 1.4) may not be able to derive a global display in
18769 Wayland. Rather, a "window"-specific display is created. In this case,
18770 the GstGLDisplay handle available through GstGLContext is invalid.
18771 So, try to improve heuristics for display server characterisation in
18772 those particular situations.
18774 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18777 * gst/vaapi/Makefile.am:
18778 * gst/vaapi/gstvaapidecode.c:
18779 * gst/vaapi/gstvaapipluginbase.c:
18780 * gst/vaapi/gstvaapipluginutil.c:
18781 * gst/vaapi/gstvaapivideobufferpool.c:
18782 * gst/vaapi/gstvaapivideometa_texture.c:
18783 plugins: add initial support for EGL.
18784 Add initial support for EGL through GstVideoGLTextureUploadMeta.
18785 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18786 downstream supplied GstGLContext configuration, i.e. use its native
18787 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18788 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18790 https://bugzilla.gnome.org/show_bug.cgi?id=741079
18792 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18794 * gst/vaapi/gstvaapivideometa_texture.c:
18795 plugins: track video texture size changes.
18796 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18797 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18798 now update the texture size from the GstVideoMeta, if any, or reset
18799 to some defaults otherwise.
18801 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18803 * gst/vaapi/gstvaapipluginbase.c:
18804 * gst/vaapi/gstvaapipluginbase.h:
18805 * gst/vaapi/gstvaapipluginutil.c:
18806 plugins: ensure VA display matches GL context expectations.
18807 If a GstGLContext is supplied by the downstream element, then make
18808 sure that the VA plugin element gets a compatible display to what
18809 is requested by the GL context. e.g. re-allocate a VA/GLX display
18810 when a GLX context is provided by the downstream element.
18812 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18815 * gst/vaapi/Makefile.am:
18816 * gst/vaapi/gstvaapipluginbase.c:
18817 * gst/vaapi/gstvaapipluginbase.h:
18818 plugins: record downstream GstGLContext.
18819 Record GL context supplied by downstream elements. This can be useful,
18820 and further needed, to enforce run-time check that the GL context is
18821 compatible for use by libgstvaapi. e.g. check that we don't create a
18822 VA/GLX display for EGL/X11 contexts.
18823 https://bugzilla.gnome.org/show_bug.cgi?id=725643
18824 Original-path-by: Matthew Waters <ystreet00@gmail.com>
18826 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18828 * tests/Makefile.am:
18831 Add initial support for EGL to tests. The new EGL backend can be selected
18832 through the --egl command line option. The OpenGL|ES version can further
18833 be selected with the --gles-version command line option, where the default
18834 of 0 means "desktop" OpenGL.
18836 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18838 * gst-libs/gst/vaapi/Makefile.am:
18839 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18840 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18841 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18842 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18843 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18844 egl: add windowing support.
18845 This provides for some basic EGL window abstraction.
18847 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18849 * gst-libs/gst/vaapi/Makefile.am:
18850 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18851 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
18852 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
18853 egl: add texture abstraction.
18854 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
18855 or import a foreign allocated one, while still allowing updates from a
18858 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18860 * gst-libs/gst/vaapi/Makefile.am:
18861 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
18862 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
18863 egl: allow for EGLImage imports into VA Surfaces.
18864 Add helpers to import EGLImage objects into VA surfaces. There are
18865 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
18866 which allows for implicit conversion from EGLImage to a VA surface
18867 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
18868 which exactly wraps the source EGLImage, typically in RGBA format
18869 with linear storage.
18870 Note: in case of (i), the EGLImage can be disposed right after the
18871 VA surface creation call, unlike in (ii) where the user shall ensure
18872 that the EGLImage is live until the associated VA surface is no longer
18874 https://bugzilla.gnome.org/show_bug.cgi?id=743847
18876 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18879 * gst-libs/gst/vaapi/Makefile.am:
18880 * gst-libs/gst/vaapi/egl_compat.h:
18881 * gst-libs/gst/vaapi/egl_vtable.h:
18882 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18883 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18884 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18885 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
18886 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
18887 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18888 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18889 * gst-libs/gst/vaapi/ogl_compat.h:
18890 Add initial support for EGL.
18891 Add initial support for EGL to libgstvaapi core library. The target
18892 display server and the desired OpenGL API can be programmatically
18893 selected at run-time.
18894 A comprehensive set of EGL utilities are provided to support those
18895 dynamic selection needs, but also most importantly to ensure that
18896 the GL command stream is executed from within a single thread.
18897 https://bugzilla.gnome.org/show_bug.cgi?id=743846
18899 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18901 * gst-libs/gst/vaapi/gstvaapivalue.c:
18902 libs: initialize GValues in a thread-safe manner.
18904 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18906 * gst-libs/gst/vaapi/gstvaapivalue.c:
18907 libs: re-indent all GValue related source code.
18909 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18911 * gst/vaapi/gstvaapidecode.c:
18912 vaapidecode: partially revert 0777f35.
18913 Reset the VA decoder after updating the base plugin caps, and most
18914 importantly, after GstVideoDecoder negotiation. The reason behind
18915 this is that the negotiation could trigger a last decide_allocation()
18916 where we could actually derive a new GstVaapiDisplay to use from the
18917 downstream element. e.g. GLX backend.
18919 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18921 * gst/vaapi/gstvaapidecode.c:
18922 vaapidecode: Caps query should return the list of all supported caps.
18923 Query caps filtering should be always done on top of allowed caps instead
18924 of existing fixed caps on a particular pad.
18925 This fixes the mvc stream decoding when there is a base view(high profile)
18926 and non-base view(stereo-high profile).
18928 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18930 * gst/vaapi/gstvaapidecode.c:
18931 vaapidecode: intersect filter from query caps
18932 According to documentation[1] when receiving a GST_QUERY_CAPS
18933 the return value should be all formats that this elements supports,
18934 taking into account limitations of peer elements further downstream
18935 or upstream, sorted by order of preference, highest preference first.
18936 This patch add those limitations intersecting with the received
18937 filter in the query. Also takes into account the already negotiated
18938 caps. Also adds the processing of the query on the SRC pad.
18939 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
18940 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18942 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18944 * gst-libs/gst/vaapi/Makefile.am:
18945 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18946 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18947 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18948 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18949 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
18950 * gst/vaapi/gstvaapivideomemory.c:
18951 Fix compiler warnings
18952 This patch fixes some warnings that gcc 4.9 reports.
18953 https://bugzilla.gnome.org/show_bug.cgi?id=744411
18955 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18957 * gst/vaapi/gstvaapidecode.c:
18958 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
18959 Hence the function name is shown in the gst-inspect-1.0 information
18960 rather than the memory address.
18961 https://bugzilla.gnome.org/show_bug.cgi?id=744330
18963 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18965 * gst/vaapi/gstvaapidecode.c:
18966 vaapidecode: log flow error name
18967 https://bugzilla.gnome.org/show_bug.cgi?id=744387
18969 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18971 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18972 VC1: decoder: Ignore VC1 user BDU's
18973 Don't return error if the processed BDU is a user one, just ignore them.
18974 https://bugzilla.gnome.org/show_bug.cgi?id=741237
18975 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18977 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
18979 * gst/vaapi/gstvaapidecode.c:
18980 * gst/vaapi/gstvaapipluginbase.c:
18981 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
18982 This is required in GStreamer, elements should never return
18983 GST_FLOW_ERROR without posting an ERROR message on the bus.
18984 https://bugzilla.gnome.org/show_bug.cgi?id=744620
18986 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18988 * gst/vaapi/Makefile.am:
18989 * gst/vaapi/gstvaapi.c:
18990 * gst/vaapi/gstvaapiencode_vp8.c:
18991 * gst/vaapi/gstvaapiencode_vp8.h:
18992 plugins: Add VP8 Encoder
18994 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18996 * gst-libs/gst/vaapi/Makefile.am:
18997 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18998 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
18999 Add VP8 Encoder to core libgstvaapi.
19001 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19004 configure: Add Check for VP8 Encoding API
19006 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19008 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19009 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19010 Added rounding control handling for VC1 simple and Main profile
19011 based on VC1 standard spec: section 8.3.7
19012 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19013 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19014 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19016 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19018 * gst/vaapi/Makefile.am:
19019 build: fix make dist when certain conditionals not met.
19020 Fix typo which was preventing the inclusion of jpeg encoder
19021 source files from make dist (when there is no jpeg encoder
19022 API support in libva).
19024 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19026 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19027 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19028 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19029 use native YUV420 format (which is i420) as default.
19031 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19033 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19034 encoder: Only support YUV420 native format as input for now
19035 Practically we should be able to support more formats, for eg:
19036 JPEG Encoder can support YUV422, RGBA and all.
19037 But this is causing more issues which need proper fix here and there.
19039 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19041 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19042 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19043 * gst/vaapi/gstvaapidecode.c:
19044 vaapidecode: Check the condition after taking the lock
19045 Otherwise the condition could become true before the lock
19046 is taken and the g_cond_signal() could be called
19047 before the g_cond_wait(), so the g_cond_wait() is never
19049 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19051 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19053 * gst/vaapi/Makefile.am:
19054 * gst/vaapi/gstvaapi.c:
19055 * gst/vaapi/gstvaapiencode_jpeg.c:
19056 * gst/vaapi/gstvaapiencode_jpeg.h:
19057 plugins: Add JPEG encoder element
19059 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19061 * gst-libs/gst/vaapi/gstvaapicontext.c:
19062 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19064 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19066 * gst-libs/gst/vaapi/gstvaapicontext.c:
19067 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19068 Don't add the VAConfigAttribRateControl to the attribute list using
19069 for the vaCreateConfig if it is not supported by the driver.
19071 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19073 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19074 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19076 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19078 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19079 gstvaapiencoder: Fix crash when handling rate control mask
19080 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19081 might not be supporting any kind of rate control mechanisms.
19084 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19086 * gst-libs/gst/vaapi/Makefile.am:
19087 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19088 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19089 encoder: Add JPEG Encoder
19091 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19093 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19094 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19095 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19097 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19099 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19100 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19101 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19102 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19103 Encode: Add support for Picture level Entrypoint
19104 This is useful for JPEG encoding which is utilizing picture level
19105 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19107 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19110 configure: Add Check for JPEG encoding API
19112 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19117 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19120 Bump version for development.
19122 === release 0.5.10 ===
19124 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19129 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19134 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19136 * gst/vaapi/gstvaapivideometa_texture.c:
19137 Fix compilation error if there is no GL/gl.h header file installed
19139 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19141 * gst/vaapi/gstvaapivideomemory.h:
19142 plugins: drop leftover declaration.
19143 GstVaapiVideoMemory quark is not needed any more, and the actual
19144 implementation was already removed bfore the merge. i.e. this is
19145 an oversight for a hunk that was not meant to be pushed.
19147 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19149 * gst/vaapi/gstvaapipluginbase.c:
19150 * gst/vaapi/gstvaapivideobufferpool.c:
19151 * gst/vaapi/gstvaapivideobufferpool.h:
19152 * gst/vaapi/gstvaapivideomemory.c:
19153 * gst/vaapi/gstvaapivideomemory.h:
19154 plugins: add support for dma_buf exports (v4l2src).
19155 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19156 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19157 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19158 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19159 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19160 with --without-libv4l2.
19161 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19163 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19166 * gst/vaapi/Makefile.am:
19167 * gst/vaapi/gstvaapipluginbase.c:
19168 plugins: add support for dma_buf imports.
19169 Allow imports of v4l2 buffers into VA surfaces for further operation
19170 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19171 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19172 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19173 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19175 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19177 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19178 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19179 surface: add support for GEM buffer imports.
19180 Add support for GEM buffer imports. This is useful for VA/EGL interop
19181 with legacy Mesa implementations, or when it is desired or required to
19182 support outbound textures for instance.
19183 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19185 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19187 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19188 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19189 surface: add support for dma_buf imports.
19190 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19191 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19192 resulting VA surface owns the supplied buffer handle.
19193 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19195 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19197 * gst-libs/gst/vaapi/gstvaapisurface.c:
19198 * gst-libs/gst/vaapi/gstvaapisurface.h:
19199 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19200 surface: add initial support for foreign buffer imports.
19201 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19202 create a VA surface from an external buffer provided throug the
19203 new GstVaapiBufferProxy object.
19205 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19207 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19208 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19209 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19210 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19211 surface: add support for GEM buffer exports.
19212 Add support for GEM buffer exports. This will only work with VA drivers
19213 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19214 to support interop with EGL and the "Desktop" GL specification. Indeed,
19215 the EXT_image_dma_buf_import extension is not going to be supported in
19216 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19218 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19219 in Desktop OpenGL context.
19220 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19222 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19224 * gst-libs/gst/vaapi/Makefile.am:
19225 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19226 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19227 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19228 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19229 surface: add support for dma_buf exports.
19230 Use the new VA buffer export APIs to allow for a VA surface to be
19231 exposed as a plain PRIME fd. This is in view to simplifying interop
19232 with EGL or OpenCL for instance.
19233 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19235 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19237 * gst-libs/gst/vaapi/Makefile.am:
19238 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19239 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19240 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19241 Add abstraction for exported VA buffers.
19242 The VA buffer export APIs work for a particular lifetime starting from
19243 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19244 it could be much more convenient to support implicit releases by simply
19245 having a refcount reaching zero.
19246 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19248 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19250 * gst-libs/gst/vaapi/Makefile.am:
19251 Add missing header file to Makefile
19252 Add gstvaapitexture_glx.h to Makefile.am
19254 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19256 * gst-libs/gst/vaapi/gstvaapicontext.c:
19257 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19258 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19259 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19260 * gst/vaapi/gstvaapipostproc.c:
19261 * gst/vaapi/gstvaapiuploader.c:
19262 * gst/vaapi/gstvaapivideobufferpool.c:
19263 * gst/vaapi/gstvaapivideomemory.c:
19264 * gst/vaapi/gstvaapivideomemory.h:
19265 * tests/test-surfaces.c:
19266 videopool: add optional flags for surface pool allocation.
19267 Reword surface pool allocation helpers so that to allow for a simple
19268 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19269 somewhat more elaborated/flexible form with optional allocation flags
19270 and precise GstVideoInfo specification.
19271 This is an API/ABI change, and SONAME version needs to be bumped.
19273 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19275 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19276 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19277 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19278 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19279 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19280 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19281 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19282 videopool: re-indent all GstVaapiVideoPool related source code.
19284 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19286 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19287 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19288 window: add toplevel display indirection for visualid and colormap.
19289 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19290 the best suitable window visual id and colormap. This is an indirection in
19291 view to supporting EGL and custom/generic replacements.
19293 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19295 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19296 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19297 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19298 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19299 window: add toplevel API to determine the colormap.
19300 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19301 currently active colormap bound to the supplied window, or actually
19302 create it if it does not already exist yet.
19304 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19306 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19307 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19308 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19309 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19310 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19311 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19312 window: add toplevel API to determine a visual id.
19313 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19314 the best suitable visual id for the supplied window. While doing so,
19315 also simplify the process by which an X11 window is created with a
19316 desired Visual, i.e. now use a visual id instead of a Visual object.
19318 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19320 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19321 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19322 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19323 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19324 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19325 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19326 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19327 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19328 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19329 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19330 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19331 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19332 window: add generic helper to create windows.
19333 Add a new generic helper function gst_vaapi_window_new() to create
19334 a window without having the caller to check for the display type
19335 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19336 to create windows, and the actual backend implementation fills it in.
19337 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19338 This is a simplification in view to supporting EGL.
19340 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19342 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19343 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19344 * gst-libs/gst/vaapi/gstvaapitexture.c:
19345 * gst/vaapi/gstvaapivideometa_texture.c:
19346 display: add utility function to check for OpenGL rendering.
19347 Add gst_vaapi_display_has_opengl() helper function to help determining
19348 whether the display can support OpenGL context to be bound to it, i.e.
19349 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19351 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19353 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19354 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19355 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19356 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19357 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19358 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19359 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19360 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19361 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19362 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19363 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19364 * gst/vaapi/gstvaapipluginutil.c:
19365 * gst/vaapi/gstvaapivideobuffer.c:
19366 * gst/vaapi/gstvaapivideometa_texture.c:
19367 display: refine the meaning of display type.
19368 Make gst_vaapi_display_get_display_type() return the actual VA display
19369 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19370 return the type of the GstVaapiDisplay instance. The former is used to
19371 identify the display server onto which the application is running, and
19372 the latter to identify the original object class.
19374 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19376 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19377 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19378 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19379 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19380 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19381 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19382 display: cosmetics (helper macros, new internal API names).
19383 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19384 Rename a few others used internally for improved consistency.
19386 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19388 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19389 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19390 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19391 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19392 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19393 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19394 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19395 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19396 display: record native display object.
19397 Record the underlying native display instance into the toplevel
19398 GstVaapiDisplay object. This is useful for fast lookups to the
19399 underlying native display, e.g. for creating an EGL display.
19401 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19403 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19404 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19405 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19406 display: use a recursive mutex for the display cache.
19407 Use a recursive mutex for the display cache so that a 3rdparty display
19408 object could be initialized during the initialization of the parent
19411 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19413 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19414 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19415 * gst-libs/gst/vaapi/gstvaapitexture.c:
19416 * gst-libs/gst/vaapi/gstvaapitexture.h:
19417 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19418 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19419 texture: add generic helper to create textures.
19420 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19421 and gst_vaapi_texture_new() to create a texture without having
19422 the caller to uselessly check for the display type himself. i.e.
19423 internally, there is now a GstVaapiDisplayClass hook to create
19424 textures, and the actual backend implementation fills it in.
19425 This is a simplification in view to supporting EGL.
19427 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19429 * gst-libs/gst/vaapi/Makefile.am:
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_glx.h:
19434 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19435 * gst/vaapi/gstvaapivideoconverter_glx.c:
19436 * gst/vaapi/gstvaapivideometa_texture.c:
19437 * tests/test-textures.c:
19438 texture: move to core libgstvaapi base library.
19439 GstVaapiTexture is a generic abstraction that could be moved to the
19440 core libgstvaapi library. While doing this, no extra dependency needs
19441 to be added. This means that a GstVaapitextureClass is now available
19442 for any specific code that needs to be added, e.g. creation of the
19443 underlying GL texture objects, or backend dependent ways to upload
19444 a surface to the texture object.
19445 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19447 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19449 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19452 * gst-libs/gst/vaapi/Makefile.am:
19453 * gst-libs/gst/vaapi/gstvaapicompat.h:
19454 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19455 * gst-libs/gst/vaapi/gstvaapitexture.c:
19456 texture: drop support for VA/GLX interfaces.
19457 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19458 ease of use, but they had other caveats to deal with. It's now better
19459 to move on to legacy mode, whereby VA/GLX interop is two be provided
19460 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19461 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19463 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19465 * gst-libs/gst/vaapi/gstvaapitexture.c:
19466 * gst-libs/gst/vaapi/gstvaapitexture.h:
19467 * gst/vaapi/gstvaapivideoconverter_glx.c:
19468 * gst/vaapi/gstvaapivideometa_texture.c:
19469 * tests/test-textures.c:
19470 texture: add support for cropping rectangle during transfer.
19471 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19472 argument that would be used during transfer for cropping the source
19473 surface to the desired dimensions.
19474 Note: from a user point-of-view, he should create the GstVaapiTexture
19475 object with the cropped size. That's the default behaviour in software
19476 decoding pipelines that we need to cope with.
19477 This is an API/ABI change, and SONAME version needs to be bumped.
19478 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19480 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19482 * gst-libs/gst/vaapi/gstvaapitexture.c:
19483 * gst-libs/gst/vaapi/gstvaapitexture.h:
19484 texture: re-indent all GstVaapiTexture related source code.
19486 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19488 * gst-libs/gst/vaapi/gstvaapisurface.c:
19489 * gst-libs/gst/vaapi/gstvaapisurface.h:
19490 surface: add more fine-grained allocation helper.
19491 Add new gst_vaapi_surface_new_full() helper function that allocates
19492 VA surface from a GstVideoInfo template in argument. Additional flags
19493 may include ways to
19494 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19495 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19496 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19498 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19500 * gst-libs/gst/vaapi/gstvaapisurface.c:
19501 * gst-libs/gst/vaapi/gstvaapisurface.h:
19502 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19503 surface: re-indent all GstVaapiSurface related source code.
19505 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19507 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19508 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19509 surfaceproxy: add helper to create a wrapped surface object.
19510 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19511 a proxy. The main use case for that is to convey additional information
19512 at the proxy level that would not be suitable to the plain surface.
19514 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19516 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19517 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19518 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19519 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19521 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19524 libs: bump library major version.
19526 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19528 * gst-libs/gst/vaapi/gstvaapitypes.h:
19529 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19530 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19531 a non-zero and invalid id. This is useful to have a value
19532 that is still invalid for cases where zero could actually
19535 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19537 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19538 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19539 libs: expose GstVaapiMiniObject APIs to all backends.
19540 Make it possible to have all libgstvaapi backends (libs) access to a
19541 common GstVaapiMiniObject API and implementation. This is a minor step
19542 towards full exposure when needed, but restrict it to libgstvaapi at
19545 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19547 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19548 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19549 * gst-libs/gst/vaapi/gstvaapiobject.c:
19550 * gst-libs/gst/vaapi/gstvaapiobject.h:
19551 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19552 libs: re-indent all GstVaapiObject related source code.
19553 Re-indent and provide additional minor cosmetical changes to the
19554 GstVaapiMiniObject and GstVaapiObject source files.
19556 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19558 * gst/vaapi/gstvaapipluginutil.c:
19559 pluginutil: Fix clearing of subtitle overlay
19560 dvbsuboverlay signals no subtitles present by not setting
19561 GstVideoOverlayCompositionMeta on a buffer.
19562 Detect this, and remove subtitles whenever we have no overlay composition to
19564 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19566 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19568 * gst/vaapi/gstvaapipostproc.c:
19569 vaapipostproc: clear state on stop
19570 Otherwise restarting may fail because the state of vaapipluginbase and
19571 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19572 initailization and not call gst_vaapi_plugin_base_set_caps()
19574 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19576 * gst/vaapi/gstvaapidecode.c:
19577 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19579 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19581 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19582 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19583 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19584 since the vaaapi context creation (gstvaapicontext.c) can still use the
19585 default chroma type which is YUV420.
19586 https://bugzilla.gnome.org/show_bug.cgi?id=743567
19587 https://bugzilla.gnome.org/show_bug.cgi?id=743035
19589 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19591 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19592 * patches/videoparsers/series.frag:
19593 h264parse: drop patches merged upstream.
19594 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19596 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19598 * ext/codecparsers:
19599 codecparsers: update to gst-vaapi-branch commit d3b5c1b
19600 8194cac: h264parse: parse SPS subset
19601 64b7f52: h264parse: expose stereo-high profile
19602 774360a: h264parse: add initial support for MVC NAL units
19603 258478f: h264parser: fix stack smashing
19605 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19607 * gst/vaapi/gstvaapivideometa_texture.c:
19608 Fix compilation error if there is no GL/gl.h header file installed
19610 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19612 * gst/vaapi/gstvaapidecode.c:
19613 vaapidecode: commit updated srcpad caps to base plugin.
19614 Make sure that the GstVaapiPluginBase instance receives the new src
19615 pad caps whenever they get updated from within the GstVaapiDecoder
19617 This also ensures that downstream elements receive correctly sized
19618 SW decoded buffers if needed.
19619 https://bugs.tizen.org/jira/browse/TC-114
19621 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19623 * gst/vaapi/gstvaapidecode.c:
19624 vaapidecode: always reset decoder on ::set_format().
19625 Split GstVideoDecoder::set_format() handler to first update the sink
19626 pad caps and reset the active VA decoder instance based on those, and
19627 then update the src pad caps whenever possible, e.g. when the caps
19628 specify a valid video resolution.
19630 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19632 * gst/vaapi/gstvaapivideomemory.c:
19633 vaapivideomemory: don't crash when trying to allocate 0x0 images.
19634 In some occasions, a buffer pool is created for pre-initialization
19635 purposes regardless of whether a valid image size is available or
19636 not. However, during actual decode stage, the vaapidecode element
19637 is expected to update the srcpad caps with the new dimensions, thus
19638 also triggering a reset of the underlying bufferpool.
19640 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19642 * ext/codecparsers:
19643 codecparsers: update to gst-vaapi-branch commit 191cb2f
19644 347605a: h264parse: expose compatible profiles to downstream
19645 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19646 24a3126: Revert "h264parse: expose compatible profiles to downstream"
19647 8661740: h264parse: expose compatible profiles to downstream
19648 8b7ef3f: codecparsers: fix some compiler warnings
19650 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19652 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19653 encoder: h264: Fix the period between I/P frames
19654 If the key-frame period is set as one, then ip_period shuld be zero
19655 https://bugzilla.gnome.org/show_bug.cgi?id=734992
19657 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19659 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19660 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19661 https://bugzilla.gnome.org/show_bug.cgi?id=734993
19663 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19665 * gst/vaapi/gstvaapisink.c:
19666 vaapisink: Protect the X11 API invokations with proper locking
19667 https://bugzilla.gnome.org/show_bug.cgi?id=739808
19669 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19671 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19672 encoder: h264: fix pixel-aspect-ratio in encoded stream.
19673 Really report sample aspect ratio (SAR) as present, and make it match
19674 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19675 really make sure VUI parameter aspect_ratio_info_present_flag is set
19676 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19677 This is a leftover from git commit a12662f.
19678 https://bugzilla.gnome.org/show_bug.cgi?id=740360
19680 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19682 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19683 decoder: mpeg4: fix uninitialized variables.
19684 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19685 GST_MPEG4_USER_DATA so that a parse error would result in skipping
19686 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19687 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19689 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19691 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19692 encoder: h264: fix profile limits.
19693 Fix ensure_profile_limits() to lower profile to the desired limits,
19694 only if the latter are actually known and the profile needed to be
19697 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19699 * gst/vaapi/gstvaapipostproc.c:
19700 vaapipostproc: fix out caps for GLMemory.
19701 If the best downstream capsfeature turns out to be GLMemory, then make
19702 sure to propagate RGBA video format in caps to that element. This fixes
19703 the following pipeline: ... ! vaapipostproc ! glimagesink.
19705 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19707 * gst/vaapi/gstvaapipostproc.c:
19708 vaapipostproc: fix check for compatible src pad capsfilters.
19709 When an explicit output video format is selected, from an src pad
19710 capsfilter, make sure that the downstream element actually supports
19711 that format. In particular, fix crash with the following pipelines:
19712 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19713 XXX is a format not supported by xvimagesink.
19714 While doing so, also reduce the set of src pad filter caps to the
19715 actual set of allowed src pad caps.
19717 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19719 * gst/vaapi/gstvaapipostproc.c:
19720 * gst/vaapi/gstvaapipostproc.h:
19721 * gst/vaapi/gstvaapiuploader.c:
19722 * gst/vaapi/gstvaapiuploader.h:
19723 plugins: re-indent all video processing related source code.
19725 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19727 * gst/vaapi/gstvaapivideomemory.c:
19728 plugins: further fixes to the new "current" storage tracker.
19729 The ensure_surface() and ensure_image() functions shall only relate
19730 to the underlying backing store. The actual current flags are to be
19731 updated only through ensure_{surface,image}_is_current() or very other
19732 particular cases in GstMemory hooks.
19734 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19736 * gst/vaapi/gstvaapivideomemory.c:
19737 plugins: fix "current" video memory flags.
19738 If the surface proxy is updated into the GstVaapiVideoMemory, then
19739 it is assumed it is the most current representation of the current
19740 video frame. Likewise, make a few more arrangements to have the
19741 "current " flags set more consistently.
19743 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19745 * gst/vaapi/gstvaapivideomemory.c:
19746 * gst/vaapi/gstvaapivideomemory.h:
19747 * gst/vaapi/gstvaapivideometa.c:
19748 plugins: ensure VA surface is current prior to using it.
19749 When interacting with SW elements, the buffers and underlying video
19750 memory could be mapped as read/write. However, we need to use those
19751 buffers again as plain VA surfaces, we have to make sure the VA image
19752 is thus committed back to VA surface memory.
19753 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19755 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19757 * gst/vaapi/gstvaapivideomemory.c:
19758 plugins: enable memory maps for read & write.
19759 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19760 buffers can be further processed in-place, e.g. with a textoverlay.
19761 https://bugzilla.gnome.org/show_bug.cgi?id=704078
19762 [ported to current git master branch, amended commit message]
19763 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19765 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19767 * gst/vaapi/gstvaapidecode.c:
19768 * gst/vaapi/gstvaapipluginutil.c:
19769 * gst/vaapi/gstvaapipluginutil.h:
19770 * gst/vaapi/gstvaapipostproc.c:
19771 plugins: preserve framerate when updating src caps video format.
19772 In the current implementation, gst_video_info_set_format() would reset
19773 the whole GstVideoInfo structure first, prior to setting video format
19774 and size. So, coleteral information like framerate or pixel-aspect-
19776 Provide and use a unique gst_video_info_change_format() for overcome
19777 this issue, i.e. only have it change the format and video size, and
19778 copy over the rest of the fields.
19779 https://bugzilla.gnome.org/show_bug.cgi?id=734665
19781 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19783 * gst/vaapi/gstvaapi.c:
19784 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19785 This is for helping decodebin to autoplug the vaapidecode element.
19786 Decodebin is selecting decoder elements only based on rank and caps.
19787 Without overriding the autoplug-* signals there is no way to autoplug
19788 HW decoders inside decodebin. An easier soulution is to raise the
19789 rank of vaapidecode, so that it gets selected first.
19790 https://bugzilla.gnome.org/show_bug.cgi?id=739332
19792 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19794 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19795 * gst/vaapi/gstvaapidecode.c:
19796 vaapidecode: only expose supported profiles when needed.
19797 JPEG and VP8 codecs do not really support the concept of "profile". So,
19798 don't try to expose any set that wouldn't be supported by jpegparse, or
19799 ivfparse for instance.
19800 https://bugzilla.gnome.org/show_bug.cgi?id=739713
19801 https://bugzilla.gnome.org/show_bug.cgi?id=739714
19803 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19805 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19806 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19807 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19808 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19809 decoder: h264: add initial support for repeat-first-field (RFF) flag.
19810 Use the SEI pic_timing() message to track and propagate down the repeat
19811 first field (RFF) flag. This is only initial support as there is one
19812 other condition that could induce the RFF flag, which is not handled
19815 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19817 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19818 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19819 Fix the decoding process for picture order count type 0 when the previous
19820 picture had a memory_management_control_operation = 5. In particular, fix
19821 the actual variable type for prev_pic_structure to hold the full bits of
19822 the picture structure.
19823 In practice, this used to work though, due to the underlying type used to
19824 express a gboolean.
19826 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19828 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19829 decoder: h264: fix detection of top-field-first (TFF) flag.
19830 Use the SEI pic_timing() message to track the pic_struct variable when
19831 present, or infer it from the regular slice header flags field_pic_flag
19832 and bottom_field_flag. This fixes temporal sequence ordering when the
19833 output pictures are to be displayed.
19834 https://bugzilla.gnome.org/show_bug.cgi?id=739291
19836 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19838 * ext/codecparsers:
19839 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19840 1241840 h264: fix derivation of MaxPicNum variable
19841 3bd718e h264: fix GstH264ParserResult documentation typo
19842 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19843 b08e4be h264parse: don't unnecesarily set src_caps
19845 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19847 * gst/vaapi/gstvaapipostproc.c:
19848 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
19849 Added the same Klass specifications used in other upstream
19850 video postprocessing elements like videoconvert, videoscale,
19851 videobalance and deinterlace.
19852 An example use case is for this is to help the playsink
19853 to autoplug the hardware accelerated deinterlacer.
19855 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19857 * gst/vaapi/gstvaapipostproc.c:
19858 vaapipostproc: Tweak the output video format setting to enable the autoplugging
19859 This is a workaround until auto-plugging is fixed when
19860 format=ENCODED + memory:VASurface caps feature are provided.
19861 Use the downstream negotiated video format as the output video format
19862 if the user didn't ask for the colorspace conversion explicitly.
19863 Usecase: This will help to connect elements like videoscale, videorate etc
19865 https://bugzilla.gnome.org/show_bug.cgi?id=739443
19867 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19869 * gst/vaapi/gstvaapipostproc.c:
19870 * gst/vaapi/gstvaapipostproc.h:
19871 vaapipostproc: allow user defined scaling mode.
19872 Add new "scale-method" property to expose the scaling mode to use during
19873 video processing. Note that this is only a hint, and the actual behaviour
19874 may differ from implementation (VA driver) to implementation.
19876 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19878 * gst-libs/gst/vaapi/gstvaapifilter.c:
19879 * gst-libs/gst/vaapi/gstvaapifilter.h:
19880 * gst-libs/gst/vaapi/gstvaapiutils.c:
19881 * gst-libs/gst/vaapi/gstvaapiutils.h:
19882 filter: add initial support for high quality scaling.
19883 Add support for video scaling options in VPP pipelines. Only the
19884 DEFAULT mode is bound to exist. Others might be folded into that
19887 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19889 * gst-libs/gst/vaapi/gstvaapifilter.c:
19890 * gst-libs/gst/vaapi/gstvaapifilter.h:
19891 filter: re-indent all GstVaapiFilter related source code.
19893 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19895 * ext/codecparsers:
19896 codecparsers: update to gst-vaapi-branch commit f9d3bde.
19897 2218b02 h264parse: expose parsed profile and level to downstream
19898 3dbfab4 h264parse: return flushing if we get chained while being set to READY
19899 d40fa8b h264: fix frame packing SEI parsing
19900 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
19901 b3e022e h264: initialize some fields of pic_timing structure
19902 a70661d vc1: fix expected level in sequence-layer parsing unit test
19903 6cee88d vc1: fix level values for simple/main profile
19904 356c189 vc1: add unit test for sequence-layer parsing
19905 ab9f641 vc1: take care of endianness when parsing sequence-layer
19906 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
19908 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19910 * gst/vaapi/gstvaapidecode.c:
19911 vaapidecode: Expose the supported profiles as caps to upstream
19912 This will allows the playbin to fallback to Software Decoder
19913 if the Hardware Decoder does not support a particular profile.
19914 https://bugzilla.gnome.org/show_bug.cgi?id=730997
19916 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19918 * gst/vaapi/gstvaapiencode.c:
19919 * gst/vaapi/gstvaapiencode.h:
19920 * gst/vaapi/gstvaapiencode_h264.c:
19921 encode: Attach the codec-data to out caps only based on negotiated caps
19922 Attach the codec_data to out_caps only if downstream needed.
19923 For eg: h264 encoder doesn't need to stuff codec_data to the
19924 src caps if the negotiated caps has a stream format of byte-stream.
19925 https://bugzilla.gnome.org/show_bug.cgi?id=734902
19927 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19930 configure: echoing installation prefix path
19932 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19934 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19935 display: add support for DRM Render-Nodes.
19936 Add support for DRM Render-Nodes. This is a new feature that appeared
19937 in kernel 3.12 for experimentation purposes, but was later declared
19938 stable enough in kernel 3.15 for getting enabled by default.
19939 This allows headless usages without authentication at all, i.e. usages
19940 through plain ssh connections is possible.
19942 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19944 * gst/vaapi/gstvaapisink.c:
19945 vaapisink: clean-ups (indentation, drop unused variables).
19947 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19950 * gst/vaapi/gstvaapisink.c:
19951 vaapisink: fix GstNavigation "key-press" / "key-release" events.
19952 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
19953 to a KeySym. In particular, there is no such Window argument. Also
19954 make sure to check for, and use, the correct <X11/XKBlib.h> header
19955 where that new function is defined. Otherwise, default to the older
19956 XKeycodeToKeysym() function.
19958 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19960 * gst/vaapi/gstvaapisink.c:
19961 vaapisink: fix GstNavigation "mouse-move" event.
19962 Really use the motion event coordinates to propagate the "mouse-move"
19963 event to upper layer, instead of those from a button event. Those are
19964 technically the same though.
19966 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19968 * gst/vaapi/gstvaapisink.c:
19969 vaapisink: implement the GstNavigation interface
19970 This is useful for things like DVD menus, where key/mouse events
19971 would need to be forwarded from the upstream sink element.
19972 https://bugzilla.gnome.org/show_bug.cgi?id=711479
19974 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19976 * gst/vaapi/gstvaapipluginbase.c:
19977 vaapipostproc: fix deinterlacing from non VA memory buffers.
19978 When we copy a buffer because we're moving it into VA-API memory, we
19979 need to copy flags. Otherwise, interlaced YUV buffers from a capture
19980 source (e.g. V4L2) don't get flagged as interlaced.
19981 https://bugzilla.gnome.org/show_bug.cgi?id=726270
19982 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19983 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
19984 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19986 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19988 * gst/vaapi/gstvaapipostproc.c:
19989 vaapipostproc: add support for GLTextureUploadMeta output.
19990 This allows for vaapipostproc to be chained to the glimagesink element
19992 https://bugzilla.gnome.org/show_bug.cgi?id=735231
19994 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19996 * gst/vaapi/gstvaapipluginutil.c:
19997 * gst/vaapi/gstvaapipluginutil.h:
19998 * gst/vaapi/gstvaapipostproc.c:
19999 vaapipostproc: add support for "download" capability.
20000 Allow implicit conversions to raw video formats, while still keeping
20001 VA surfaces underneath. This allows for chaining the vaapipostproc
20002 element to a software-only element that takes care of maps/unmaps.
20004 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20006 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20008 * gst/vaapi/gstvaapipostproc.c:
20009 * gst/vaapi/gstvaapipostproc.h:
20010 vaapipostproc: use pooled vaapi video meta.
20011 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20012 video buffer allocation. Also optimize copy of additional metadata info
20013 into the resulting video buffer: only copy the video cropping info and
20014 the source surface proxy.
20015 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20016 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20017 [fixed proxy leak, fixed double free on error, optimized meta copy]
20018 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20020 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20022 * gst/vaapi/gstvaapipostproc.c:
20023 vaapipostproc: fix passthrough mode.
20024 If no explicit output surface format is supplied try to keep the one
20025 supplied through the sink pad caps. This avoids a useless copy, even
20026 if things are kept in GPU memory.
20027 This is a performance regression from git commit dfa70b9.
20029 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20031 * gst/vaapi/gstvaapipostproc.c:
20032 * gst/vaapi/gstvaapipostproc.h:
20033 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20034 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20035 [used new infrastructure through base decide_allocation() impl]
20036 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20038 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20040 * gst/vaapi/gstvaapipostproc.c:
20041 vaapipostproc: enable advanced deinterlacing with same format.
20042 If only advanced deinterlacing is requested, i.e. deinterlacing is
20043 the only active algorithm to apply with source and output surface
20044 formats being the same, then make sure to enable VPP processing.
20045 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20048 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20050 * gst/vaapi/gstvaapivideomemory.c:
20051 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20052 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20054 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20056 * gst/vaapi/gstvaapipluginbase.c:
20057 * gst/vaapi/gstvaapipluginutil.c:
20058 plugins: fix memory leaks.
20060 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20062 * gst/vaapi/gstvaapidecode.c:
20063 * gst/vaapi/gstvaapipluginbase.c:
20064 * gst/vaapi/gstvaapipluginbase.h:
20065 plugins: factor out decide_allocation() hook.
20066 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20067 feature argument can be used to force a bufferpool with a specific kind
20070 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20072 * gst/vaapi/gstvaapivideobufferpool.c:
20073 * gst/vaapi/gstvaapivideobufferpool.h:
20074 * gst/vaapi/gstvaapivideomemory.c:
20075 plugins: allow bufferpool to not allocate vaapi video meta.
20076 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20077 can be used to disable early allocations of vaapi video metas on buffers,
20078 thus delagating that to the bufferpool user.
20080 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20082 * gst/vaapi/gstvaapivideobuffer.c:
20083 * gst/vaapi/gstvaapivideobuffer.h:
20084 * gst/vaapi/gstvaapivideobufferpool.c:
20085 * gst/vaapi/gstvaapivideobufferpool.h:
20086 * gst/vaapi/gstvaapivideocontext.c:
20087 * gst/vaapi/gstvaapivideocontext.h:
20088 * gst/vaapi/gstvaapivideoconverter_glx.c:
20089 * gst/vaapi/gstvaapivideoconverter_glx.h:
20090 * gst/vaapi/gstvaapivideoconverter_x11.c:
20091 * gst/vaapi/gstvaapivideoconverter_x11.h:
20092 * gst/vaapi/gstvaapivideomemory.c:
20093 * gst/vaapi/gstvaapivideomemory.h:
20094 * gst/vaapi/gstvaapivideometa.c:
20095 * gst/vaapi/gstvaapivideometa.h:
20096 * gst/vaapi/gstvaapivideometa_texture.c:
20097 * gst/vaapi/gstvaapivideometa_texture.h:
20098 plugins: re-indent all GstVaapiVideo* related source code.
20100 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20102 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20103 surfaceproxy: fix copy to propagate view_id.
20104 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20105 fixing random frames skipped when vaapipostproc element is used in
20106 passthrough mode. In that mode, GstMemory is copied, thus including
20107 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20109 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20111 * gst/vaapi/gstvaapipostproc.c:
20112 vaapipostproc: fix detection of output surface format changes.
20113 Default to I420 format for output surfaces so that to match the usual
20114 GStreamer pipelines. Though, internally, we could still opt for NV12
20115 surface formats, i.e. default format=ENCODED is a hint for that, thus
20116 delegating the decision to the VA driver.
20118 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20120 * gst/vaapi/gstvaapipostproc.c:
20121 vaapipostproc: fix construction of allowed sink pad caps.
20122 Fix construction of the set of caps allowed on the sink pad to filter
20123 out unsupported raw video caps with GStreamer >= 1.2.
20125 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20127 * gst/vaapi/gstvaapipostproc.c:
20128 * gst/vaapi/gstvaapipostproc.h:
20129 vaapipostproc: improve heuristics for detecting native VA surfaces.
20130 Use the new gst_caps_has_vaapi_surface() helper function to detect
20131 whether the sink pad caps contain native VA surfaces, or not, i.e.
20133 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20134 explicit as we just want a way to differentiate raw video caps from
20135 VA surfaces actually.
20137 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20139 * gst/vaapi/gstvaapipostproc.c:
20140 vaapipostproc: disable discontinuity detection code.
20141 The "discontinuity" tracking code, whereby lost frames are tentatively
20142 detected, is inoperant if the sink pad buffer timestamps are not right
20144 This is a temporary workaround until the following bug is fixed:
20145 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20147 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20149 * gst/vaapi/gstvaapipostproc.c:
20150 vaapipostproc: fix heuristic for detecting discontinuity.
20151 In order to make the discontinuity detection code useful, we need to
20152 detect the lost frames in the history as early as the previous frame.
20153 This is because some VA implementations only support one reference
20154 frame for advanced deinterlacing.
20155 In practice, turn the condition for detecting new frame that is beyond
20156 the previous frame from field_duration*2 to field_duration*3, i.e.
20157 nothing received for the past frame and a half because of possible
20158 rounding errors when calculating the field-duration either in this
20159 element (vaapipostproc), or from the upstream element (parser element).
20160 This is a regression introduced with commit faefd62.
20161 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20163 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20165 * gst/vaapi/gstvaapipluginbase.c:
20166 * gst/vaapi/gstvaapipluginbase.h:
20167 plugins: fix detection of raw video caps.
20168 Use the new gst_caps_has_vaapi_surface() helper function to better
20169 detect raw video caps, and in particular those from RGB colorspace.
20170 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20172 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20174 * gst/vaapi/gstvaapipluginutil.c:
20175 * gst/vaapi/gstvaapipluginutil.h:
20176 plugins: add helper for detecting VA surfaces in caps.
20177 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20178 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20179 implies a check for memory:VASurface caps features, and format=ENCODED
20180 for earlier versions of GStreamer.
20182 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20184 * gst/vaapi/gstvaapidecode.c:
20185 vaapidecode: start the decoder task again after finishing
20186 This allows the element to accept data again after draining without
20187 a hard reset or caps change happening in between.
20188 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20190 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20192 * gst/vaapi/gstvaapidecode.c:
20193 vaapidecode: unlock condition variables before shutting down the element
20194 Otherwise threads might wait for them, causing the shutdown of the element
20195 to deadlock on the streaming thread.
20196 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20198 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20200 * gst/vaapi/gstvaapidecode.c:
20201 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20202 Otherwise the element is not usable again after draining/EOS.
20203 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20205 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20207 * gst/vaapi/gstvaapidecode.c:
20208 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20209 This otherwise results in unnecessary error messages.
20210 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20212 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20214 * gst-libs/gst/vaapi/Makefile.am:
20215 * gst/vaapi/Makefile.am:
20216 build: fix with --no-undefined linker flags.
20217 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20219 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20221 * gst/vaapi/gstvaapisink.c:
20222 * gst/vaapi/gstvaapisink.h:
20223 vaapisink: add support for GstColorBalance interface.
20224 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20225 [fixed channel names, simplified range factor, fixed memory leak]
20226 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20228 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20230 * gst/vaapi/gstvaapisink.c:
20231 * gst/vaapi/gstvaapisink.h:
20232 vaapisink: add support for colorbalance adjustment.
20233 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20234 [fixed and simplified tracking of colorbalance value changes]
20235 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20237 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20239 * gst/vaapi/gstvaapisink.c:
20240 vaapisink: improve installation of properties.
20241 Simplify the creation and installation process of properties, by first
20242 accumulating them into a g_properties[] array, and next calling into
20243 g_object_class_install_properties().
20244 Also add missing docs and flags to some properties.
20246 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20248 * gst/vaapi/gstvaapisink.c:
20249 * gst/vaapi/gstvaapisink.h:
20250 vaapisink: code clean-ups.
20251 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20252 helper macro and use it wherever we know the object is a GstBaseSink or
20253 any base class. Drop explicit initializers for values that have defaults
20256 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20258 * gst/vaapi/gstvaapisink.c:
20259 * gst/vaapi/gstvaapisink.h:
20260 vaapisink: re-indent all GstVaapiSink related source code.
20262 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20264 * gst/vaapi/gstvaapisink.c:
20265 * gst/vaapi/gstvaapisink.h:
20266 vaapisink: introduce separate backends.
20267 Introduce new backends vtable so that to have clean separation between
20268 display dependent code and common base code. That's a "soft" separation,
20269 we don't really need dedicated objects.
20270 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20272 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20274 * gst/vaapi/gstvaapisink.c:
20275 * gst/vaapi/gstvaapisink.h:
20276 vaapisink: drop unused "synchronous" mode.
20277 Support for X11 "synchronous" mode was never implemented, and was only
20278 to be useful for debugging. Drop that altogether, that's not going to
20279 be useful in practice.
20280 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20282 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20284 * gst/vaapi/gstvaapisink.c:
20285 * gst/vaapi/gstvaapisink.h:
20286 vaapisink: drop unused variables.
20287 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20288 variables. They got merged into the GstVaapiPluginBase object.
20290 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20292 * gst/vaapi/gstvaapisink.c:
20293 * gst/vaapi/gstvaapisink.h:
20294 vaapisink: drop GLX rendering and fancy effects.
20295 Rendering with GLX in vaapisink is kind of useless nowadays, including
20296 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20297 deprecated in favor of EGL, or more direct buffer sharing with actual
20299 Should testing of interop with GLX be needed, one could still be using
20300 the modern cluttersink or glimagesink elements.
20301 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20303 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20305 * gst/vaapi/gstvaapisink.c:
20306 * gst/vaapi/gstvaapisink.h:
20307 vaapisink: listen to window size changes on X11.
20308 Allow dynamic changes to the window, e.g. performed by the user, and
20309 make sure to refresh its contents, while preserving aspect ratio.
20310 In practice, Expose and ConfigureNotify events are tracked in X11
20311 display mode by default. This occurs in a separte event thread, and
20312 this is similar to what xvimagesink does. Any of those events will
20313 trigger a reconfiguration of the window "soft" size, subsequently
20314 the render-rect when necessary, and finally _expose() the result.
20315 The default of handle_events=true can be changed programatically via
20316 gst_x_overlay_handle_events().
20317 Thanks to Fabrice Bellet for rebasing the patch.
20318 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20319 [dropped XInitThreads(), cleaned up the code a little]
20320 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20322 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20324 * gst/vaapi/gstvaapidecode.c:
20325 vaapidecode: decode and output all pending frames on normal EOS.
20326 The gst_vaapidecode_decode_loop() function is called within a separate
20327 task to fetch and output all frames that were decoded so far. So, if
20328 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20329 then we are bound to exist the task without submitting the pending
20331 If the downstream element error'ed out, then the gst_pad_push() would
20332 propagate up an error and so we will get it right for cutting off
20333 _finish() early in that case.
20334 This is a regression from 6003596.
20335 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20337 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20340 Bump version for development.
20342 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20347 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20352 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20354 * gst/vaapi/gstvaapidecode.c:
20355 vaapidecode: properly return from decode loop on downstream errors.
20356 Fixes a hang/race on shutdown where _decode_loop() had already completed
20357 its execution and _finish() was waiting on a GCond for decode_loop()
20358 to complete. Also fixes the possible race where _finish() is called
20359 but _decode_loop() endlessly returns before signalling completion
20360 iff the decoder instance returns GST_FLOW_OK.
20361 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20362 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20363 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20364 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20366 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20372 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20374 * gst/vaapi/gstvaapisink.c:
20375 vaapisink: fix GstVideoOverlay::expose() implementation.
20376 Now that we always track the currently active video buffer, it is
20377 not necessary to automatically increase its reference since this is
20378 implicitly performed in ::show_frame() through the get_input_buffer()
20379 helper from GstVaapiPluginBase class.
20380 This is a regression from a26df80.
20382 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20384 * gst/vaapi/gstvaapidecode.c:
20385 * gst/vaapi/gstvaapipluginutil.c:
20386 vaapidecode: simplify bufferpool configuration.
20387 Rework the logics behind the configuration of an adequate bufferpool,
20388 especially when OpenGL meta or additional capsfeatures are needed.
20389 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20390 and that is not system memory, is now selected by default.
20392 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20394 * gst/vaapi/gstvaapidecode.c:
20395 vaapidecode: fix auto-plugging of vaapisink element.
20396 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20397 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20398 core currently miss additional patches available in 1.5-git (1.6).
20399 This is a temporary workaround.
20401 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20404 configure: allow builds against GStreamer git (1.5.x).
20405 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20407 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20410 configure: fix build with GStreamer 1.4.0 release.
20412 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20415 * debian.upstream/Makefile.am:
20416 * debian.upstream/control.in:
20417 debian: fix packaging for new naming scheme.
20419 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20424 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20427 configure: mark support for GStreamer < 1.2 as deprecated.
20428 Supporting anything thing below GStreamer 1.2 is asking for trouble
20429 for keeping up with the required facilities to make efficient pipelines.
20430 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20433 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20436 configure: mark support for GStreamer 0.10 as obsolete.
20437 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20438 and may actually be removed altogether for a future release. There is
20439 no real point to maintain a build for such an ancient GStreamer version
20440 that is not even supported upstream.
20442 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20444 * gst/vaapi/gstvaapisink.c:
20445 * gst/vaapi/gstvaapisink.h:
20446 vaapisink: allow a specific view component to be displayed.
20447 If a multiview stream is decoded, multiple view components are submitted
20448 as is downstream. It is the responsibility of the sink element to display
20449 the required view components. By default, always select the frame buffer
20450 that matches the view-id of the very first frame to be displayed.
20451 However, introduce a "view-id" property to allow the selection of a
20452 specific view component of interest to display.
20454 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20456 * gst/vaapi/gstvaapisink.c:
20457 vaapisink: always keep the last displayed buffer around.
20458 Always record the VA surface that is currently being rendered, no matter
20459 the fact we are using texturedblit or overlay. That's because in some
20460 occasions, we need to refresh or resize the displayed contents based on
20461 new events. e.g. user-resized window.
20462 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20463 through the base sink "last-sample".
20465 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20467 * gst/vaapi/gstvaapipluginbase.c:
20468 * gst/vaapi/gstvaapipluginbase.h:
20469 * gst/vaapi/gstvaapipluginutil.c:
20470 * gst/vaapi/gstvaapisink.c:
20471 vaapisink: add support for "display-name" property.
20472 Add a "display-name" property to vaapisink so that the end user could
20473 select the desired output. Keep "display-name" in-line with the existing
20474 "display" (GstVaapiDisplayXXX type).
20475 So, for X11 or GLX, the "display-name" is the usual display name as we
20476 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20477 for wl_display_connect(); and for DRM, the "display-name" is actually the
20479 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20481 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20483 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20484 window: make gst_vaapi_window_reconfigure() thread-safe.
20485 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20486 thread-safe by default, so that upper layer users don't need to handle
20489 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20491 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20492 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20493 window: allow for updating size from current geometry.
20494 Add gst_vaapi_window_reconfigure() interface to force an update of
20495 the GstVaapiWindow "soft" size, based on the current geometry of the
20496 underlying native window.
20497 This can be useful for instance to synchronize the window size when
20498 the user changed it.
20499 Thanks to Fabrice Bellet for rebasing the patch.
20500 [changed interface to gst_vaapi_window_reconfigure()]
20501 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20503 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20505 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20506 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20507 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20508 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20509 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20510 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20511 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20512 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20513 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20514 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20515 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20516 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20517 window: re-indent all GstVaapiWindow related source code.
20519 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20521 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20522 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20523 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20524 display: add interface to retrieve the display name.
20525 Add gst_vaapi_display_get_display_name() helper function to determine
20526 the name associated with the underlying native display. Note that for
20527 raw DRM backends, the display name is actually the device path.
20529 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20531 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20532 display: fix comparison of X11 display names.
20533 Make sure to not only compare display host names, but also the actual
20534 display number. The screen number does not need to be checked at this
20537 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20539 * gst/vaapi/gstvaapidecode.c:
20540 * gst/vaapi/gstvaapivideobufferpool.c:
20541 vaapidecode: add support for VideoAlignment bufferpool option.
20542 Always add VideoAlignment bufferpool option if the downstream element
20543 expects its own pool to be used but does not offer it through a proper
20544 propose_allocation() implementation for instance, and that the ALLOCATION
20545 query does not expose the availability of the Video Meta API.
20546 This fixes propagation of video buffer stride information to Firefox.
20548 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20550 * gst/vaapi/gstvaapivideomemory.c:
20551 vaapivideomemory: always prefer native VA surface formats.
20552 Make sure to always prefer native internal formats for the VA surfaces
20553 that get allocated. Also disable "direct-rendering" mode in this case.
20554 This is needed so that to make sure that anything that gets out of the
20555 decoder, or anything that gets into the encoder, is in native format
20556 for the hardware, and thus the driver doesn't need to perform implicit
20557 conversions in there. Interop with SW elements is still available with
20558 fast implementations of VA imaging APIs.
20560 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20562 * gst/vaapi/gstvaapivideomemory.c:
20563 vaapivideomemory: disallow memory shares across buffers, use a copy.
20564 Forbid shares of GstMemory instances, and rather make copy of it. This
20565 effectively copies the GstMemory structure and enclosed metadata, but
20566 this does not copy the VA surface contents itself. It should though.
20567 This fixes preroll and makes sure to not download garbage for the first
20568 frame when a SW rendering sink is used.
20570 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20572 * gst/vaapi/gstvaapivideomemory.c:
20573 * gst/vaapi/gstvaapivideomemory.h:
20574 vaapivideomemory: use an image pool to cache objects.
20575 Use an image pool to hold VA images to be used for downloads/uploads
20576 of contents for the associated surface.
20577 This is an optmization for size. So, instead of creating as many VA
20578 images as there are buffers (then VA surfaces) allocated, we only
20579 maintain a minimal set of live VA images, thus preserving memory
20582 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20584 * gst/vaapi/gstvaapivideomemory.c:
20585 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20586 Disable read-write mappings if "direct-rendering" is not supported.
20587 Since the ordering of read and write operations is not specified,
20588 this would require to always download the VA surface on _map(), then
20589 commit the temporary VA image back to the VA surface on _unmap().
20590 Some SW decoding plug-in elements still use R/W mappings though.
20591 https://bugzilla.gnome.org/show_bug.cgi?id=733242
20593 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20595 * gst/vaapi/gstvaapivideomemory.c:
20596 vaapivideomemory: minor code clean-ups.
20597 Fix error messages introduced in the previous commit for the _map()
20598 imaplementation. Also use the new get_image_data() helper function
20599 to determine the base pixels data buffer from a GstVaapiImage when
20600 updating the video info structure from it.
20602 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20604 * gst/vaapi/gstvaapivideomemory.c:
20605 * gst/vaapi/gstvaapivideomemory.h:
20606 vaapivideomemory: add support for raw pixels mappings.
20607 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20608 cases where the buffer pool is allocated without VideoMeta API, thus
20609 individual planes cannot be mapped.
20610 This is initial support for Firefox >= 30.
20611 https://bugzilla.gnome.org/show_bug.cgi?id=731886
20613 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20615 * gst/vaapi/gstvaapivideomemory.c:
20616 vaapivideomemory: fix determination of the surface pool format.
20617 While creating the vaapi video allocator, make sure the associated
20618 surface pool has correct format instead of defaulting to NV12 video
20619 format even though there is no direct rendering support.
20620 https://bugzilla.gnome.org/show_bug.cgi?id=732691
20622 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20624 * gst/vaapi/gstvaapivideomemory.c:
20625 vaapivideomemory: fix association of surface to proxy.
20626 Make sure to always update the VA surface pointer whenever the proxy
20627 changes. This used to only work when the VA surface is written to, in
20628 interop with SW element ("upload" feature), and this now fixes cases
20629 when the VA surface is needed for reading, in interop with SW element
20630 ("download" feature).
20632 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20634 * gst/vaapi/gstvaapidecode.c:
20635 * gst/vaapi/gstvaapipluginutil.c:
20636 * gst/vaapi/gstvaapivideomemory.c:
20637 plugins: expose I420 format for interop with SW elements.
20638 Always expose I420 format by default when the VA surface could be
20639 mapped for interoperability with non harware accelerated elements.
20640 However, the default behaviour remains the auto-plugging of vaapi
20641 elements, down to the sink.
20642 Side effect: "direct-rendering" mode is also disabled most of the
20643 times as plain memcpy() from uncached speculative write combining
20644 memory is not going to be efficient enough.
20646 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20648 * gst/vaapi/gstvaapidecode.c:
20649 * gst/vaapi/gstvaapivideomemory.c:
20650 plugins: allow download capability to vaapidecode element.
20651 Fix support for VA surface download capability in vaapidecode element
20652 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20653 but also the libva-intel-driver while performing hardware accelerated
20654 conversions from the native VA surface format (NV12) to the desired
20655 output VA image format.
20656 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20657 https://bugzilla.gnome.org/show_bug.cgi?id=733243
20659 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
20661 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20662 decoder: mpeg4: fix picture decoder return value for skipped frames.
20663 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20664 when a frame should be skipped, so the stream processing is not stalled.
20665 https://bugzilla.gnome.org/show_bug.cgi?id=733324
20667 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
20669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20670 decoder: mpeg2: respect any input PTS provided for a frame.
20671 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20672 frame timestamps within a GOP, even when it's been fed input PTS for
20674 That leads to incorrect output timestamps in some situations - for example
20675 live playback where input timestamps have been scaled based on arrival time
20676 from the network and don't exactly match the framerate.
20677 https://bugzilla.gnome.org/show_bug.cgi?id=732719
20679 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20681 * gst-libs/gst/vaapi/gstvaapiobject.c:
20682 GstVaapiObject: make gst_vaapi_object_new() more robust.
20683 Forbid GstVaapiObject to be created without an associated klass spec.
20684 It is mandatory that the subclass implements an adequate .finalize()
20685 hook, so it shall provide a valid GstVaapiObjectClass.
20686 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20687 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20688 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20690 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20692 * gst-libs/gst/vaapi/gstvaapiobject.c:
20693 GstVaapiObject: initialize the derived object data with init() hook.
20694 Call the subclass .init() function in gst_vaapi_object_new(), if
20695 needed. The default behaviour is to zero initialize the subclass
20696 object data, then the .init() function can be used to initialize
20697 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20698 Also fix the gst_vaapi_object_new() description, which was merely
20699 copied from GstVaapiMiniObject.
20700 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20701 [changed to always zero initialize the subclass]
20702 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20704 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
20706 * gst/vaapi/gstvaapidecode.c:
20707 vaapidecode: make decoder work with playbin
20708 When playbin/decodebin builds the pipeline, it puts decoders and sinks
20709 into different bins and forwards the queries from bins to bins. So in
20710 the initials steps the pipeline is built iteratively by playbin and
20713 [filesrc] -> [typefind]
20714 [filesrc] -> [typefind] -> [demuxer]
20715 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20716 At this point the decoder is asked for its SRC caps and it will make a
20717 choice based on what gst_pad_peer_query_caps() returns. The problem is
20718 that the caps returns at that point includes caps features like ANY,
20719 essentially because playbin can plug in additional elements like
20720 videoscale, videoconv or deinterlace.
20721 This patch adds a another call to
20722 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20723 allocation, to make sure we asks the downstream elements when the
20724 entire pipeline has been built.
20725 https://bugzilla.gnome.org/show_bug.cgi?id=731645
20727 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20729 * gst/vaapi/gstvaapipostproc.c:
20730 vaapipostproc: don't let tmp_rect go out of scope.
20731 A compiler change showed me that tmp_rect went out of scope before
20732 it was used. Move it to the beginning of the function instead.
20733 https://bugzilla.gnome.org/show_bug.cgi?id=726363
20734 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20735 [added guards for GStreamer 0.10 builds]
20736 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20738 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20743 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20747 Drop references to deprecated plugins (vaapiupload, vaapidownload),
20748 mention that support for GStreamer 0.10 is deprecated, make overview
20749 more descriptive in certain aspects.
20751 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20756 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20760 build: mention that support for GStreamer 0.10 is deprecated.
20762 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20765 * gst/vaapi/gstvaapidecode.c:
20766 build: fix for GStreamer 0.10.
20768 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20770 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20771 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20772 * patches/videoparsers/series.frag:
20773 build: fix for GStreamer 1.0.x.
20775 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20777 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20778 decoder: h264: detect incorrectly paired fields in frames.
20779 When a DPB flush is required, e.g. at a natural and of stream or issued
20780 explicitly through an IDR, try to detect any frame left in the DPB that
20781 is interlaced but does not contain two decoded fields. In that case, mark
20782 the picture as having a single field only.
20783 This avoids a hang while decoding tv_cut.mkv.
20785 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20787 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20788 decoder: h264: simplify the DPB output process.
20789 Simplify the dpb_output() function to exclusively rely on the frame store
20790 buffer to output, since this is now always provided. Besides, also fix
20791 cases where split fields would not be displayed.
20792 This is a regression from f48b1e0.
20794 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20796 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20797 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20798 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20799 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20800 * patches/videoparsers/series.frag:
20801 h264parse: drop patches merged upstream.
20802 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20803 0005-h264parse-introduce-new-state-tracking-variables.patch
20804 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20805 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20807 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20809 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20810 decoder: h264: fix memory leak in PPS.
20811 Cope with latest changes from codecparsers/h264. It is now required
20812 to explicitly clear the GstH264PPS structure as it could contain
20813 additional allocations (slice_group_ids).
20815 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20817 * ext/codecparsers:
20818 codecparsers: update to gst-vaapi-branch commit 2d53b69.
20819 c4ace00 h264parse: fix collection of access units to preserve config headers
20820 0f9f7c9 h264parse: improve conditions for skipping NAL units
20821 9ffb25c h264parse: introduce new state tracking variables
20822 64955d3 h264parse: fix and optimize NAL collection function
20823 13cd2a3 h264: clarifications and documentation fixes
20824 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20825 18f0de0 h264: fix memory leak in GstH264PPS
20826 fdcb54c h264: fix typo in GstH264VUIParams description
20827 fd4dae9 vp8: move up built-in range decoder private data
20829 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20831 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20832 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20833 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20834 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20835 decoder: propagate MVC metadata ("view-id", head of multiview set).
20836 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20837 bundle", and really expresses the first view component of a multi
20838 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20840 Likewise, new API is exposed to retrieve the associated "view-id".
20842 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20844 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20845 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20846 decoder: propagate "one-field" flags.
20847 Allow decoders to set the "one-field" attribute when the decoded frame
20848 genuinely has a single field, or if the second field was mis-decoded but
20849 we still want to display the first field.
20851 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20853 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20854 decoder: output decoded frames only once.
20855 Make sure to output the decoded picture, and push the associated
20856 GstVideoCodecFrame, only once. The frame fully represents what needs
20857 to be output, included for interlaced streams. Otherwise, the base
20858 GstVideoDecoder class would release the frame twice.
20859 Anyway, the general process is to output decoded frames only when
20860 they are complete. By complete, we mean a full frame was decoded or
20861 both fields of a frame were decoded.
20863 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20865 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20866 decoder: h264: decode current picture earlier.
20867 Slightly optimize decoding process by submitting the current VA surface
20868 for decoding earlier to the hardware, and perform the reference picture
20869 marking process and DPB update process afterwards.
20870 This is a minor optimization to let the video decode engine kick in work
20871 earlier, thus improving parallel resources utilization.
20873 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20875 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20876 decoder: h264: fix output of second field when first field is not in DPB.
20877 Fix decoding of interlaced streams where a first field (e.g. B-slice)
20878 was immediately output and the current decoded field is to be paired
20879 with that former frame, which is no longer in DPB.
20880 https://bugzilla.gnome.org/show_bug.cgi?id=701340
20882 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20884 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20885 decoder: h264: slightly optimize the process to detect new pictures.
20886 Optimize the process to detect new pictures or start of new access
20887 units by checking if the previous NAL unit was the end of a picture,
20888 or the end of the previous access unit.
20890 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20892 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20893 decoder: h264: handle access unit ("au") optimization.
20894 Optimize parsing when buffers are supplied with access unit alignment.
20895 This helps determining faster when the end of an access unit is reached.
20897 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20899 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20900 decoder: h264: fix tracking of DPB size changes.
20901 Add support for MVC streams with multiple SPS and subset SPS headers
20902 emitted regularly, e.g. at around every I-frame. Track the maximum
20903 number of views in ensure_context() and really reset the DPB size to
20904 the expected value, always. i.e. even if it decreased. dpb_reset()
20905 only cares of ensuring the DPB allocation.
20907 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20909 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20910 decoder: h264: fix the DPB compaction process.
20911 Fix the compaction process when the DPB is cleared for a specific
20912 view, i.e. fix the process of filling in the holes resulting from
20913 removing frame buffers matching the current picture.
20915 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20917 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20918 encoder: h264: generate new SPS only when codec config changed.
20919 It is not necessary to periodically send SPS or subset SPS headers.
20920 This is up to the upper layer (e.g. transport layer) to decide on
20921 if/how to periodically submit those. For now, only generate new SPS
20922 or subset SPS headers when the codec config changed.
20923 Note: the upper layer could readily determine the config headers
20924 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
20925 https://bugzilla.gnome.org/show_bug.cgi?id=732083
20926 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20928 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20930 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20931 encoder: h264: track encoder config changes.
20932 Track and report when encoder configuration changed. For now, this covers
20933 resolution, profile/level and bitrate changes.
20935 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20937 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20938 encoder: h264: add pixel-aspect-ratio to VUI parameters.
20939 Report sample aspect ratio (SAR) as present, and make it match what
20940 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
20941 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
20943 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20945 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20946 encoder: h264: fix number of anchor and non-anchor reference pictures.
20947 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
20948 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
20951 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20953 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20954 encoder: h264: fix timing_info_present_flag value in subset SPS.
20955 When the seq_parameter_set_data() syntax structure is present in a subset
20956 sequence parameter set and vui_parameters_present_flag is equal to 1, then
20957 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
20959 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20961 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20962 encoder: h264: add cpbBrNalFactor values for MVC profiles.
20964 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20966 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20967 h264parse: fix detection of access unit boundaries for MVC.
20968 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
20969 this function is used to determine access unit boundaries, i.e. that
20970 is the key function for alignment=au output format generation.
20972 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20974 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20975 * patches/videoparsers/series.frag:
20976 h264parse: fix collection of access units to preserve config headers.
20977 Always use a GstAdapter when collecting access units (alignment="au")
20978 in either byte-stream or avcC format. This is required to properly
20979 preserve config headers like SPS and PPS when invalid or broken NAL
20980 units are subsequently parsed.
20981 More precisely, this fixes scenario like:
20982 <SPS> <PPS> <invalid-NAL> <slice>
20983 where we used to reset the output frame buffer when an invalid or
20984 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
20985 preventing the next slice unit to be decoded, should this also
20986 represent any valid data.
20987 https://bugzilla.gnome.org/show_bug.cgi?id=732203
20989 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20991 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20992 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20993 * patches/videoparsers/series.frag:
20994 h264parse: improve conditions for skipping NAL units.
20995 Carefully track cases when skipping broken or invalid NAL units is
20996 necessary. In particular, always allow NAL units to be processed
20997 and let that gst_h264_parse_process_nal() function decide on whether
20998 the current NAL needs to be dropped or not.
20999 This fixes parsing of streams with SEI NAL buffering_period() message
21000 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21001 SPS NAL unit, among other cases too.
21002 Practical examples from the H.264 AVC conformance suite include
21003 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21004 when parsing in stream-format=byte-stream,alignment=au mode.
21005 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21007 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21009 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21010 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21011 * patches/videoparsers/series.frag:
21012 h264parse: introduce new state tracking variables.
21013 Improve parser state tracking by introducing new flags reflecting
21014 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21015 robustness purposes.
21016 Older have_sps and have_pps variables are kept because they have
21017 a different meaning. i.e. they are used for deciding on when to
21018 submit updated caps or not, and rather mean "have new SPS/PPS to
21021 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21023 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21024 * patches/videoparsers/series.frag:
21025 h264parse: default to byte-stream/nalu format (Annex B).
21026 Always default to stream-format=byte-stream,alignment=nalu if avcC
21027 format was not detected. This is the natural stream format specified
21028 in the standard (Annex.B): a series of NAL units prefixed with the
21030 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21032 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21034 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21035 * patches/videoparsers/series.frag:
21036 h264parse: fix and optimize NAL collection function.
21037 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21038 NAL unit. We don't want to parse the full NAL unit, but only the
21039 header bytes and possibly the first RBSP byte for identifying the
21040 first_mb_in_slice syntax element.
21041 Also fix check for failure when returning from that function. The
21042 only success condition for that is GST_H264_PARSER_OK, so use it.
21043 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21045 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21047 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21048 encoder: h264: fix NAL unit types in packed headers.
21049 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21050 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21051 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21052 is required, with an appropriate nal_unit_header_mvc_extension() in
21053 the NAL header bytes.
21054 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21056 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21058 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21059 encoder: h264: add missing field in packed Subset SPS header.
21060 Write the missing num_level_values_signalled_minus1 syntax element
21061 into the packed header for subset sequence parameter set.
21062 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21064 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21066 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21067 decoder: h264: fix marking of non-reference picture into DPB.
21068 Fix search for a picture in the DPB that has a lower POC value than
21069 the current picture. The dpb_find_lowest_poc() function will return
21070 a picture with the lowest POC in DPB and that is marked as "needed
21071 for output", but an additional check against the actual POC value
21072 of the current picture is needed.
21073 This is a regression from 1c46990.
21074 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21076 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21078 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21079 decoder: h264: fix DPB clear when no decoding actually started.
21080 Fix dpb_clear() to clear previous frame buffers only if they actually
21081 exist to begin with. If the decoder bailed out early, e.g. when it
21082 does not support a specific profile, that array of previous frames
21083 might not be allocated beforehand.
21085 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21087 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21088 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21089 * gst/vaapi/gstvaapidecode.c:
21090 decoder: h264: add support for NALU "alignment" optimization.
21091 We can avoid scanning for start codes again if the bitstream is fed
21092 in NALU chunks. Currently, we always scan for start codes, and keep
21093 track of remaining bits in a GstAdapter, even if, in practice, we
21094 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21096 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21097 [use gst_adapter_available_fast() to determine the top buffer size]
21098 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21100 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21102 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21103 decoder: h264: fix caps to report interlace-mode accordingly.
21104 The `vaapipostproc' element could never determine if the H.264 stream
21105 was interlaced, and thus always assumed it to be progressive. Fix the
21106 H.264 decoder to report interlace-mode accordingly, thus allowing the
21107 vaapipostproc element to automatically enable deinterlacing.
21109 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21111 * gst/vaapi/gstvaapipostproc.c:
21112 vaapipostproc: don't crash with dynamic framerate (0/1).
21113 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21114 way to solve this problem is to just stick field_duration to zero.
21115 However, this means that, in presence of interlaced streams, the
21116 very first field will never be displayed if precise presentation
21117 timestamps are honoured.
21118 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21120 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21122 * gst/vaapi/gstvaapipostproc.c:
21123 vaapipostproc: create filter surface pool if it does not exist yet.
21124 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21125 recreating filter_pool. Unfortunately, this also meant it didn't create
21126 it if it did not exist.
21127 Fix it to always create the buffer pool if it does not exist.
21128 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21129 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21131 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21133 * gst/vaapi/gstvaapipostproc.c:
21134 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21135 Reset deinterlacer state, i.e. past reference frames used for advanced
21136 deinterlacing, when there is some discontinuity detected in the course
21137 of processing source buffers.
21138 This fixes support for advanced deinterlacing when a seek occurred.
21139 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21140 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21141 history buffer, reduce heuristic for detecting discontinuity]
21142 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21144 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21146 * gst/vaapi/gstvaapipostproc.c:
21147 vaapipostproc: add support for crop regions in VPP mode.
21148 Apply video cropping regions stored in GstVideoCropMeta, or in older
21149 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21150 the crop meta are already propagated to the output buffers.
21151 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21153 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21155 * gst/vaapi/gstvaapipostproc.c:
21156 vaapipostproc: make deinterlace-mode behave as expected.
21157 deinterlace-mode didn't behave in the way you'd expect if you have
21158 past experience of the deinterlace element. There were two bugs:
21159 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21160 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21161 Fix these up, and add assertions and error messages to detect cases that
21163 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21164 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21165 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21167 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21169 * gst/vaapi/gstvaapidecode.c:
21170 vaapidecode: do not discard video info props when the format changed.
21171 gst_video_info_set_format() does not preserve video info properties. In
21172 order to keep important information in the caps such as interlace mode,
21173 framerate, pixel aspect ratio, ... we need to manually copy back those
21174 properties after setting the new video format.
21175 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21177 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21179 * gst/vaapi/gstvaapidecode.c:
21180 vaapidecode: plug a memory leak.
21181 It can happen that there is a pool provided that does not advertise
21182 the vappivideometa. We should unref that pool before using our own.
21183 Discovered with vaapidecode ! {glimagesink,cluttersink}
21184 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21185 [fixed compilation by adding the missing semi-colon]
21186 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21188 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21190 * gst/vaapi/gstvaapidecode.c:
21191 vaapidecode: parse source data until a frame is obtained.
21192 Parse any pending data until a complete frame is obtained. This is a
21193 memory optimization to avoid expansion of video packets stuffed into
21194 the GstAdapter, and a fix to EOS condition to detect there is actually
21195 pending data that needs to be decoded, and subsequently output.
21196 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21198 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21200 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21201 encoder: h264: fix multiple slices support in packed headers mode.
21202 Handle packedi slice headers and packed raw data on a per-slice basis,
21203 which is necessary for multi slice encoding.
21205 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21207 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21208 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21209 encoder: add infrastructure for per-slice handling of packed headers.
21210 The packed slice header and packed raw data need to be paired with
21211 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21212 on a per-slice basis insted of a per-picture basis.
21213 [removed useless initializer]
21214 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21216 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21218 * gst/vaapi/gstvaapisink.c:
21219 vaapisink: fix initialization with "drm" display type.
21220 Force early initializatin of the GstVaapiDisplay so that to make sure
21221 that the sink element display object is presented first to upstream
21222 elements, as it will be correctly featuring the requested display type
21224 Otherwise, we might end up in situations where a VA/X11 display is
21225 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21226 (as requested by the "display" property), but this would cause a failure
21227 because we cannot acquire a DRM display that was previously acquired
21228 through another backend (e.g. VA/X11).
21230 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21232 * gst/vaapi/gstvaapipluginbase.c:
21233 plugins: fix initialization with foreign context.
21234 When a new display is settled through GstElement::set_context() (>= 1.2),
21235 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21236 associated display type.
21238 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21243 * gst/vaapi/Makefile.am:
21244 * gst/vaapi/gstvaapiparse.c:
21245 * gst/vaapi/gstvaapiparse.h:
21246 * patches/Makefile.am:
21247 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21248 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21249 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21250 * patches/videoparsers/Makefile.am:
21251 * patches/videoparsers/series.frag:
21252 plugins: add built-in video parsers as "vaapiparse" element.
21253 The built-in video parsers elements are built into a single DSO named
21254 libgstvaapi_parse.so. The various video parsers could be accessed as
21256 For now, this only includes a modified version of h264parse so that to
21257 support H.264 MVC encoded streams.
21259 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21261 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21262 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21263 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21264 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21266 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21268 * ext/codecparsers:
21269 codecparsers: update to gst-vaapi-branch commit d6325ac.
21270 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21271 d2f965a h264parse: set field_pic_flag when parsing a slice header
21272 24c15b8 Import h264parse
21273 a9283e5 bytereader: Use concistant derefence method
21274 a8252c6 bytereader: Use pointer instead of index access
21275 b1bebfc Import GstBitReader and GstByteReader
21276 2f58788 h264: recognize SVC NAL units
21277 4335da5 h264: fix SPS copy code for MVC
21278 cf9b6dc h264: fix quantization matrix conversion routine names
21279 b11ce2a h264: add gst_h264_video_calculate_framerate()
21280 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21282 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21284 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21285 decoder: h264: factor out DPB pruning for MVC.
21286 Factor out the removal process of unused inter-view only reference
21287 pictures from the DPB, prior to the possible insertion of the current
21289 Ideally, the compiler could still opt for generating two loops. But
21290 at least, the code is now clearer for maintenance.
21292 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21294 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21295 decoder: h264: clean-ups.
21296 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21297 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21299 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21301 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21302 decoder: h264: improve pruning of unused MVC inter-view frames.
21303 Improve process for the removal of pictures from DPB before possible
21304 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21305 reference components. In particular, handle cases where picture to be
21306 inserted is not the last one of the access unit and if it was already
21307 output and is no longer marked as used for reference, including for
21308 decoding next view components within the same access unit.
21310 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21312 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21313 decoder: h264: improve DPB bumping process for MVC.
21314 While invoking the DPB bumping process in presence of many views,
21315 it could be necessary to output previous pictures that are ready,
21316 in a whole. i.e. emitting all view components from the very first
21317 view order index zero to the very last one in its original access
21318 unit; and not starting from the view order index of the picture
21319 that caused the DPB bumping process to be invoked.
21320 As a reminder, the maximum number of frames in DPB for MultiView
21321 High profile with more than 2 views is not necessarily a multiple
21322 of the number of views.
21323 This fixes decoding of MVCNV-4.264.
21325 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21327 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21328 decoder: h264: fix inter-view references array growth.
21329 Let the utility layer handle dynamic growth of the inter-view pictures
21330 array. By definition, setting a new size to the array will effectively
21331 grow the array, but would also fill in the newly created elements with
21332 empty entries (NULL), thus also increasing the reported length, which
21335 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21337 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21338 decoder: h264: reduce ReferenceFrames entries to the essential set.
21339 When decoding Multiview High profile streams with a large number of
21340 views, it is not possible to make the VAPictureParameterBufferH264.
21341 ReferenceFrames[] array hold the complete DPB, with all possibly
21342 active pictures to be used for inter-view prediction in the current
21344 So reduce the scope of the ReferenceFrames[] array to only include
21345 the set of reference pictures that are going to be used for decoding
21346 the current picture. Basically, this is a union of all RefPicListX[]
21347 array, for all slices constituting the decoded picture.
21349 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21351 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21352 decoder: h264: fix MVC inter-view prediction process.
21353 The inter-view reference components and inter-view only reference
21354 components that are included in the reference picture lists shall
21355 be considered as not being marked as "used for short-term reference"
21356 or "used for long-term reference". This means that reference flags
21357 should all be removed from VAPictureH264.flags.
21358 This fixes decoding of MVCNV-2.264.
21360 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21362 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21363 decoder: h264: fix detection of profile changes for MVC.
21364 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21365 be careful to detect profiles changes and not reset the underlying
21366 VA context erroneously. In MVC situations, we could indeed get a
21367 profile_idc change for every SPS that gets activated, alternatively
21368 (base-view -> non-base view -> base-view, etc.).
21369 An improved fix would be to characterize the exact profile to use
21370 once and for all when SPS NAL units are parsed. This would also
21371 allow for fallbacks to a base-view decoding only mode.
21373 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21375 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21376 encoder: h264: drop extraneous definitions.
21377 Re-use definitions from the codecparser headers instead of duplicating
21378 them here again. That covers NALU definitions and slice types.
21380 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21382 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21383 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21384 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21386 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21388 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21389 encoder: h264: don't allow CABAC with Extended profile.
21390 The H.264 specification does not support CABAC entropy coding for the
21392 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21394 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21396 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21397 encoder: h264: use packed headers mode for MVC encoding.
21398 Exclusively use VA drivers that support raw packed headers for encoding.
21399 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21400 provides for better compatibility accross the various VA drivers and HW
21401 generations since no particular API is needed beyond what readily exists.
21403 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21405 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21406 encoder: h264: add support for packed slice headers.
21407 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21409 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21411 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21412 encoder: h264: store subset sps to generate the codec-data
21413 Store the SubsetSPS nal unit which we need for MVC specific
21414 codec_data generation.
21416 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21418 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21419 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21420 Since we are encoding each view independently from each other, we
21421 need a higher number of pre-allocated surfaces to be used as the
21422 reconstructed frames. For Stereo High profile encoding, this means
21423 to effectively double the number of frames to be stored in the DPB.
21425 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21427 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21428 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21429 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21430 * gst/vaapi/gstvaapiencode_h264.c:
21431 encoder: h264: add initial support for H.264 Stereo High profile.
21432 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21433 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21434 NALs for base-view encoding.
21435 The H.264 Stereo High profile encoding mode will be turned on when the
21436 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21437 considered as Left/Right view, alternatively.
21438 Each of the two views has its own frames reordering pool and reference
21439 frames list management system. Inter-view references are not supported
21440 yet, so the views are encoded independently from each other.
21441 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21442 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21443 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21445 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21447 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21448 encoder: h264: wrap pools for refs and frames reordering.
21449 Create structures to maintain the reference frames list (RefPool) and
21450 frames reordering (ReorderPool) logic.
21451 This is a prerequisite for H.264 MVC support.
21452 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21454 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21456 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21457 encoder: h264: add provisional support for subset SPS headers.
21458 Add provisions to write subset SPS headers to the bitstream in view
21459 to supporting the H.264 MVC specification.
21460 This assumes the libva "staging" branch is in use.
21461 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21463 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21465 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21466 * gst-libs/gst/vaapi/gstvaapiutils.c:
21467 utils: add H.264 MVC profiles.
21468 Add "MultiView High" and "Stereo High" definitions.
21469 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21470 [require VA-API >= 0.35.2 for MVC profiles]
21471 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21473 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21475 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21476 * gst-libs/gst/vaapi/gstvaapiutils.c:
21477 utils: only enable VP8 profiles for newer VA-API versions.
21478 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21479 involving VP8 codec on earlier versions of the API.
21481 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21483 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21484 decoder: h264: compute view ids only once per slice.
21485 Optimize lookups of view ids / view order indices by caching the result
21486 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21487 terribly simplifies is_new_access_unit() and find_first_field() functions.
21489 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21491 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21492 decoder: h264: add support for MVC interlaced streams.
21493 Fix support for MVC Stereo High profile streams with interlaced frames.
21494 Also improve the detection logic of the first field.
21496 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21498 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21499 decoder: h264: add MVC profiles compatibility logic.
21500 Add safe fallbacks for MVC profiles:
21501 - all MultiView High profile streams with 2 views at most can be decoded
21502 with a Stereo High profile compliant decoder ;
21503 - all Stereo High profile streams with only progressive views can be
21504 decoded with a MultiView High profile compliant decoder ;
21505 - all drivers that support slice-level decoding could normally support
21506 MVC profiles when the DPB holds at most 16 frames.
21508 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21510 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21511 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21512 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21513 decoder: h264: add initial support for MVC.
21514 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21516 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21518 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21519 decoder: h264: dynamically allocate the DPB.
21520 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21521 for supporting the MVC allocation requirements.
21523 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21525 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21526 decoder: h264: fix detection of access unit boundaries.
21527 In order to have a stricter conforming implementation, we need to carefully
21528 detect access unit boundaries. Additional operations could be necessary to
21529 perform at those boundaries.
21531 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21534 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21535 Detect the first VCL NAL unit of a picture for MVC, based on the
21536 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21538 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21540 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21542 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21543 decoder: h264: properly handle Prefix NAL units.
21544 Always cache the previous NAL unit so that we could check whether
21545 there is a Prefix NAL unit immediately preceding the current slice
21546 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21547 the current NAL unit. Otherwise, some default values are inferred,
21548 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21549 [infer default values for slice if previous NAL was not a Prefix]
21550 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21552 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21554 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21555 decoder: h264: add support for MVC base views.
21556 Allow decoding for base views of MVC encoded streams. For now, just skip
21557 the slice extension and prefix NAL units, and skip non-base view frames.
21558 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21559 [fixed memory leak, improved check for MVC NAL units]
21560 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21562 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21564 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21565 decoder: h264: simplify storage of decoded picture into DPB.
21566 Factor out process by which the decoded picture with the lowest POC
21567 is found, and possibly output. Likewise, the storage and marking of
21568 a reference decoded, or non-reference decoded picture, into the DPB
21569 could also be simplified as they mostly share the same operations.
21571 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21573 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21574 decoder: h264: minor clean-ups.
21575 Make init_picture_ref_lists() more consistent with other functions
21576 related to the reference marking process by supplying the current
21577 picture as argument.
21579 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21581 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21582 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21583 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21584 display: add utility function to query VA driver name.
21585 Add gst_vaapi_display_get_vendor_string() helper function to query
21586 the underlying VA driver name. The display object owns the resulting
21587 string, so it shall not be deallocated.
21588 That function is thread-safe. It could be used for debugging purposes,
21591 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21593 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21594 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21595 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21596 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21597 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21598 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21599 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21600 display: make cache maintenance really MT-safe.
21601 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21602 environments. This makes sure the display cache is also consistent
21603 during the whole display creation process. In the former implementation,
21604 there were risks that display cache got updated in another thread.
21606 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21608 * gst-libs/gst/vaapi/gstvaapicontext.c:
21609 context: allow dynamic growth of VA surfaces pool.
21610 Add support for dynamic growth of the VA surfaces pool. For decoding,
21611 this implies the recreation of the underlying VA context, as per the
21612 requirement from VA-API. Besides, only increases are supported, not
21615 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21617 * gst-libs/gst/vaapi/gstvaapicontext.c:
21618 context: reset VA context if VA surfaces set changed.
21619 It is a requirement from VA-API specification that the VA context got
21620 from vaCreateContext(), for decoding purposes, binds the supplied set
21621 of VA surfaces. This means that if the set of VA surfaces is to be
21622 changed for the current decode session, then the VA context needs to
21623 be recreated with the new set of VA surfaces.
21625 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21627 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21628 decoder: h264: fix assignment of LongTermFrameIdx.
21629 Complement fix committed as e95a42e.
21630 The H.264 AVC standard has to say: if the field is part of a reference
21631 frame or a complementary reference field pair, and the other field of
21632 the same reference frame or complementary reference field pair is also
21633 marked as "used for long-term reference", the reference frame or
21634 complementary reference field pair is also marked as "used for long-term
21635 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21636 This fixes decoding of MR9_BT_B in strict mode.
21637 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21638 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21640 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21642 * gst-libs/gst/vaapi/gstvaapicontext.c:
21643 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21644 * gst-libs/gst/vaapi/gstvaapiutils.c:
21645 * gst-libs/gst/vaapi/gstvaapiutils.h:
21646 decoder: h264: properly support grayscale formats.
21647 Request the correct chroma format for decoding grayscale streams.
21648 i.e. make lookups of the VA chroma format more generic, thus possibly
21649 supporting more formats in the future.
21650 This means that, if a VA driver doesn't support grayscale formats,
21651 it is now going to fail. We cannot safely assume that maybe grayscale
21652 was implemented on top of some YUV 4:2:0 with the chroma components
21655 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21657 * gst-libs/gst/vaapi/gstvaapifilter.c:
21658 * gst-libs/gst/vaapi/gstvaapifilter.h:
21659 * tests/test-filter.c:
21660 build: fix source file modes.
21661 A few source files are marked executable in error - fix them
21662 https://bugzilla.gnome.org/show_bug.cgi?id=723748
21663 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21665 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21668 * gst-libs/gst/vaapi/Makefile.am:
21669 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21670 * gst/vaapi/gstvaapidecode.c:
21671 build: fix conditional compilation of VP8 decoder.
21672 https://bugzilla.gnome.org/show_bug.cgi?id=729170
21673 [added check for VASliceParameterBufferBase fields]
21674 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21676 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21678 * gst-libs/gst/codecparsers/Makefile.am:
21679 build: fix make dist for codecparsers.
21681 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21683 * ext/codecparsers:
21684 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21685 h264: fix parsing of slice groups for map type = 2
21687 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21689 * ext/codecparsers:
21690 codecparsers: update to gst-vaapi branch commit f44edfc.
21691 h264: fix derivation of default scaling lists
21693 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
21695 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21696 decoder: h264: fix long-term reference picture marking process.
21697 Fix reference picture marking process with memory_management_control_op
21698 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21699 picture, or the current picture.
21700 This fixes decoding of FRExt_MMCO4_Sony_B.
21701 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21702 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21703 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21704 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21706 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21709 decoder: h264: fix initialization of RefPicLists for multiple slices.
21710 The initialization of reference picture lists (8.2.4.2) applies to all
21711 slices. So, the RefPicList0/1 lists need to be constructed prior to
21712 each slice submission to the HW decoder.
21713 This fixes decoding of video sequences where frames are encoded with
21714 multiple slices of different types, e.g. 4 slices in this order I, P,
21715 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21716 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21718 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
21720 * ext/codecparsers:
21721 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21722 decoder: h264: skip SPS extension and auxiliary slice NALs.
21723 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21724 are present in a video, decoders shall perform the (optional) decoding
21725 process specified for these NAL units or shall ignore them (7.4.1).
21726 Implement option 2 (skip) for now, as alpha composition is not
21727 supported yet during the decoding process.
21728 This fixes decoding of the primary coded video in alphaconformanceG.
21729 https://bugzilla.gnome.org/show_bug.cgi?id=703928
21730 https://bugzilla.gnome.org/show_bug.cgi?id=728869
21731 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21732 [skip NAL units earlier, i.e. at parsing time]
21733 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21735 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21737 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21738 decoder: h264: fix slice data bit offset with MVC NAL units.
21739 When MVC slice NAL units (coded slice extension and prefix NAL) are
21740 present, the number of NAL header bytes is 3, not 1 as usual.
21741 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21742 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21744 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21746 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21747 decoder: h264: fix activation of picture and sequence parameters.
21748 At the time the first VCL NAL unit of a primary coded picture is found,
21749 and if that NAL unit was parsed to be an SPS or PPS, then the entries
21750 in the parser may have been overriden. This means that, when the picture
21751 is to be decoded, slice_hdr->pps could point to an invalid (the next)
21753 So, one way to solve this problem is to not use the parser PPS and
21754 SPS info but rather maintain our own activation chain in the decoder.
21755 https://bugzilla.gnome.org/show_bug.cgi?id=724519
21756 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21758 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21760 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21761 decoder: h264: retain SEI messages until the end of frame.
21762 Retain the SEI messages that were parsed from the access unit until we
21763 have completely decoded the current frame. This is done so that we can
21764 peek at that data whenever necessary during decoding. e.g. for exposing
21765 3D stereoscopic information at a later stage.
21767 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21769 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21770 decoder: h264: add support for grayscale encoded clips.
21771 Fix support for grayscale encoded video clips, and possibly others if
21772 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21773 the decision that a surface with the desired chroma format is not
21774 supported to the actual VA driver implementation.
21775 https://bugzilla.gnome.org/show_bug.cgi?id=728144
21777 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21779 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21780 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21781 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21782 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21783 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21784 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21785 decoder: default to YUV 4:2:0 VA surfaces.
21786 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21787 make sure all codecs use YUV 4:2:0 output format for now, by default.
21789 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21791 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21792 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21793 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21794 decoder: re-indent GstVaapiDecoder base object.
21796 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21798 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21799 encoder: derive chroma type from video format.
21800 Cope with previous VA context change to derive the correct surface chroma
21801 type from the input video format.
21803 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21805 * gst-libs/gst/vaapi/gstvaapicontext.c:
21806 * gst-libs/gst/vaapi/gstvaapicontext.h:
21807 context: add support for non-YUV 4:2:0 formats.
21808 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21809 for the upper layer to specify the desired chroma type. If the chroma
21810 type field is not set (or yields zero), then YUV 4:2:0 format is used
21813 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21815 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21816 vp8: fix per-segment deblocking filter level in relative mode.
21817 Fix possible bug when a per-segment deblocking filter level value
21818 needs to be set in non-absolute mode, i.e. when the loop filter update
21819 value is negative in delta mode.
21820 Also clamp the resulting filter level value to 0..63 range.
21822 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21824 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21825 vp8: fix check for disabling the loop filter (again).
21826 Improve condition to disable the loop filter. The previous heuristic
21827 used to check all filter levels, for all segments. It turns out that
21828 only the base filter_level value defined in the frame header needs
21830 This fixes 00-comprehensive-013.
21832 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21834 * gst-libs/gst/codecparsers/Makefile.am:
21835 * gst/vaapi/Makefile.am:
21836 build: fix make dist with certain conditionals not met.
21837 Fix generation of source tarballs when certain conditionals are not
21838 met. e.g. always include all buildable codecparsers sources in the
21839 distribution tarball, fix plug-in element sources set to include X11
21842 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21845 build: add missing files for GStreamer 0.10.
21846 Add missing GstVideoEncoder implementation files to fix build with ancient
21847 GStreamer 0.10 stack.
21848 https://bugzilla.gnome.org/show_bug.cgi?id=723964
21850 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21853 build: add missing files for VP8 bitstream parser.
21854 Fix make dist for building the VP8 bitstream parser.
21856 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21859 * ext/libvpx/Makefile.am:
21860 * gst-libs/gst/codecparsers/Makefile.am:
21861 vp8: allow compilation without the built-in libvpx.
21862 The built-in libvpx serves multiple purposes, among which the most
21863 important ones could be: track the most up-to-date, and optimized,
21864 range decoder; allow for future hybrid implementations (non-VLD);
21865 and have a completely independent range decoder implementation.
21867 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21869 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21870 vp8: propagate PTS from demux frame.
21871 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
21872 or parser would already have determined the PTS from a previous stage.
21874 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21877 * debian.upstream/libgstvaapi.install.in:
21878 * ext/libvpx/Makefile.am:
21879 * ext/libvpx/sources.frag:
21880 * gst-libs/gst/codecparsers/Makefile.am:
21881 vp8: fix compilation with built-in libvpx.
21882 Apply correct patch from fd.o #722760 to fix several issues: update the
21883 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
21886 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21892 * ext/libvpx/Makefile.am:
21893 * ext/libvpx/gstlibvpx.c:
21894 * ext/libvpx/gstlibvpx.h:
21895 * ext/libvpx/libgstcodecparsers_vpx.vers:
21896 * ext/libvpx/sources.frag:
21897 * ext/libvpx/upstream:
21898 * gst-libs/gst/codecparsers/Makefile.am:
21899 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
21900 vp8: use range decoder from libvpx.
21901 Add libvpx submodule that tracks the upstream version 1.3.0. This is
21902 needed to build a libgstcodecparsers_vpx.so library with all symbols
21903 placed into the GSTREAMER namespace.
21905 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21907 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21908 vp8: fix check for disabling the loop filter.
21910 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
21914 * gst-libs/gst/codecparsers/Makefile.am:
21915 * gst-libs/gst/vaapi/Makefile.am:
21916 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21917 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21918 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21919 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21920 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21921 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
21922 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21923 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21924 * gst/vaapi/gstvaapidecode.c:
21925 Add initial VP8 decoder.
21926 https://bugzilla.gnome.org/show_bug.cgi?id=722761
21927 [complete overhaul, fixed support for resolution changes]
21928 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21930 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21932 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21933 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
21934 The gst_h264_parse_parse_sei() function now returns an array of SEI
21935 messages, instead of a single SEI message. Reason: it is allowed to
21936 have several SEI messages packed into a single SEI NAL unit, instead
21937 of multiple NAL units.
21939 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21941 * ext/codecparsers:
21942 codecparsers: update to gst-vaapi-branch commit a454f86.
21943 b2eb5f6 vp8: rename dboolhuff symbols
21944 b74a881 vp8: add GStreamer native utilities
21945 2940ac6 add VP8 bitstream parser
21947 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21949 * ext/codecparsers:
21950 codecparsers: update to gst-vaapi-branch commit d459bc5.
21951 d459bc5 h264: set framerate even for interlaced videos
21952 c78b82c h264: add support for Recovery Point SEI message
21953 7693bac h264: add support for Frame Packing Arrangement SEI message
21954 31fafa7 h264: add support for Stereo Video Information SEI message
21955 8b113a6 h264: parse seq_parameter_set_mvc_extension()
21956 040f9b8 h264: parse MVC syntax elements
21957 cc18ef3 h264: add nal_reader_skip_long() helper
21958 7e76a48 h264: fix slice_header() parsing for MVC
21959 caf46d8 h264: add gst_h264_parse_nalu_header() helper
21960 f75074e h264: add gst_h264_parse_sps_data() helper
21961 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
21962 4e36737 h264: fix skipping of unsupported SEI messages
21963 5300766 h264: fix SEI buffering_period() parsing
21965 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21967 * ext/codecparsers:
21968 * gst-libs/gst/codecparsers/Makefile.am:
21969 codecparsers: update to gst-vaapi-branch commit 8fadf40.
21970 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
21971 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
21972 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
21973 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
21974 8ec5816 h265: Fix segfault when parsing HRD parameter
21975 5b1730f h265: Fix segfault when parsing VPS
21976 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
21977 7ba641d h265: Fix debug output
21978 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
21980 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21982 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21983 decoder: h264: fix robustness patch for bytestream format.
21984 Fix parser and decoder state to sync at the right locations. This is
21985 because we could reset the parser state, while the decoder state was
21986 not copied yet, e.g. when parsing several NAL units from multiple frames
21987 whereas the current frame was not decoded yet.
21988 This is a regression brought in by commit 6fe5496.
21990 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21993 * pkgconfig/Makefile.am:
21994 * pkgconfig/gstreamer-vaapi-drm.pc.in:
21995 * pkgconfig/gstreamer-vaapi-glx.pc.in:
21996 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
21997 * pkgconfig/gstreamer-vaapi-x11.pc.in:
21998 build: fix pkgconfig file names (again).
21999 It turns out it is more convenient to have only pkgconfig files named
22000 after the installed GStreamer API version (1.0) instead of using all
22001 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22002 altogether anyway, so align pkgconfig file names to that.
22004 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22006 * debian.upstream/libgstvaapi-dev.install.in:
22007 * gst-libs/gst/vaapi/Makefile.am:
22008 * pkgconfig/gstreamer-vaapi.pc.in:
22009 build: fix packaging for GStreamer 1.2.
22010 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22011 the pkgconfig version (1.0) instead of the intended API version (1.2).
22012 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22013 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22015 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22018 Bump version for development.
22020 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22022 * debian.upstream/control.in:
22023 debian: fix trailing whitespace in description.
22025 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22027 * debian.upstream/control.in:
22028 * debian.upstream/copyright:
22029 debian: fix package description.
22030 Try to improve package description for the compiled plug-in elements
22031 available in there. e.g. only display vaapidownload and vaapiupload
22032 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22033 encoding is enabled, etc.
22034 Also increase the copyright notice date.
22036 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22038 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22039 build: fix warnings on 64-bit platforms.
22041 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22043 * gst-libs/gst/vaapi/gstvaapicontext.c:
22044 * gst-libs/gst/vaapi/gstvaapiutils.c:
22045 build: fix for older versions of VA-API (< 0.34.0).
22046 Fix build with older versions of VA-API (< 0.34.0), or versions without
22047 good enough headers for encoding support for instance.
22049 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22055 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22059 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22060 support. Update copyright years, list of supported Intel HD Graphics
22063 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22068 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22070 * tests/test-filter.c:
22071 tests: test-filter: fix "deinterlace" option parse.
22072 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22073 string was provided, i.e. if it remained set to NULL.
22075 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22077 * gst-libs/gst/vaapi/Makefile.am:
22078 * gst-libs/gst/vaapi/gstvaapicontext.c:
22079 * gst-libs/gst/vaapi/gstvaapicontext.h:
22080 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22081 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22082 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22083 libs: factor out usages of vaGetConfigAttributes().
22084 Add gst_vaapi_get_config_attribute() helper function that takes a
22085 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22086 is to have thread-safe VA helpers by default.
22088 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22090 * gst-libs/gst/vaapi/gstvaapiutils.c:
22091 * gst-libs/gst/vaapi/gstvaapiutils.h:
22092 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22093 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22094 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22095 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22096 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22097 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22098 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22099 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22100 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22101 libs: re-indent all source code related to VA utilities.
22103 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22105 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22106 libs: add missing file (libgstvaapi_priv_check.h).
22108 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22110 * gst-libs/gst/vaapi/gstvaapicontext.c:
22111 * gst-libs/gst/vaapi/gstvaapicontext.h:
22112 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22113 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22114 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22115 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22116 encoder: notify the encoder of the submitted packed headers.
22117 Make sure to configure the encoder with the set of packed headers we
22118 intend to generate and submit. i.e. make selection of packed headers
22119 to submit more robust.
22121 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22123 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22124 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22125 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22126 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22127 encoder: fix and factor out check for supported rate-control modes.
22128 Cache the first compatible GstVaapiProfile found if the encoder is not
22129 configured yet. Next, factor out the code to check for the supported
22130 rate-control modes by moving out vaGetConfigAttributes() to a separate
22131 function, while also making sure that the attribute type is actually
22132 supported by the encoder.
22133 Also fix the default set of supported rate control modes to not the
22134 "none" variant. It's totally useless to expose it at this point.
22136 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22138 * gst-libs/gst/vaapi/gstvaapicontext.c:
22139 * gst-libs/gst/vaapi/gstvaapicontext.h:
22140 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22141 context: move rate-control mode to encoder specific config.
22142 Move usage-specific config out of the common GstVaapiContextInfo.
22143 Create a specialized config for encoding and move rate-control mode
22146 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22148 * gst-libs/gst/vaapi/gstvaapicontext.c:
22149 * gst-libs/gst/vaapi/gstvaapicontext.h:
22150 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22151 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22152 context: introduce concept of usage.
22153 Introduce GstVaapiContextUsage so that to explicitly determine the
22154 usage of a VA context. This is useful in view to simplifying the
22155 creation of VA context for VPP too.
22157 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22159 * gst-libs/gst/vaapi/gstvaapicontext.c:
22160 context: fix get_attribute() value result.
22161 Unknown attributes, or attributes that are not supported for the given
22162 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22163 So, return failure in this case.
22165 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22167 * gst-libs/gst/vaapi/Makefile.am:
22168 * gst-libs/gst/vaapi/gstvaapicontext.c:
22169 * gst-libs/gst/vaapi/gstvaapicontext.h:
22170 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22171 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22172 * gst-libs/gst/vaapi/gstvaapisurface.c:
22173 context: move overlay composition to separate files.
22174 Move GstVideoOverlayComposition handling to separate source files.
22175 This helps keeing GstVaapiContext core implementation to the bare
22176 minimal, i.e. simpy helpers to create a VA context and handle pool
22177 of associated VA surfaces.
22179 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22181 * gst-libs/gst/vaapi/gstvaapicontext.c:
22182 * gst-libs/gst/vaapi/gstvaapicontext.h:
22183 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22184 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22185 context: clean-ups. Strip down APIs.
22186 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22187 them down to the minimal set of interfaces. They are private, so no
22188 need expose getters for instance.
22190 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22192 * gst-libs/gst/vaapi/gstvaapicontext.c:
22193 * gst-libs/gst/vaapi/gstvaapicontext.h:
22194 context: re-indent all GstVaapiContext related source code.
22196 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22198 * gst-libs/gst/vaapi/Makefile.am:
22199 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22200 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22201 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22202 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22203 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22204 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22205 * gst-libs/gst/vaapi/gstvaapiutils.h:
22206 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22207 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22208 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22209 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22210 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22211 libs: check that private headers remain private.
22212 Make sure that libgstvaapi private headers remain internally used to
22213 build libgstvaapi libraries only. All header dependencies were reviewed
22214 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22215 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22218 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22221 Bump library major version.
22222 Bump the library major version due to API/ABI changes that occurred in
22223 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22224 expose any GstCaps but provide GArray based ones e.g. to determine the
22225 set of supported decode/encode profiles.
22227 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22229 * gst-libs/gst/vaapi/glibcompat.h:
22230 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22231 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22232 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22233 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22234 * gst-libs/gst/vaapi/gstvaapicontext.c:
22235 * gst-libs/gst/vaapi/gstvaapicontext.h:
22236 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22237 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22238 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22239 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22240 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22241 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22242 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22243 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22244 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22245 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22246 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22247 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22248 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22249 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22250 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22251 * gst-libs/gst/vaapi/gstvaapifilter.c:
22252 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22253 * gst-libs/gst/vaapi/gstvaapisurface.c:
22254 * gst-libs/gst/vaapi/gstvaapisurface.h:
22255 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22256 * gst-libs/gst/vaapi/gstvaapitypes.h:
22257 * gst-libs/gst/vaapi/gstvaapiutils.c:
22258 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22259 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22260 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22261 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22262 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22263 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22264 * gst-libs/gst/vaapi/gstvaapivalue.c:
22265 * gst-libs/gst/vaapi/gstvaapivalue.h:
22266 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22267 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22268 * gst/vaapi/gstvaapidecode.c:
22269 * gst/vaapi/gstvaapiencode.c:
22270 * gst/vaapi/gstvaapiencode.h:
22271 * gst/vaapi/gstvaapiencode_h264.c:
22272 * gst/vaapi/gstvaapiencode_h264.h:
22273 * gst/vaapi/gstvaapiencode_mpeg2.c:
22274 * gst/vaapi/gstvaapiencode_mpeg2.h:
22275 * gst/vaapi/gstvaapipluginbase.c:
22276 * gst/vaapi/gstvaapipluginutil.c:
22277 * gst/vaapi/gstvaapipluginutil.h:
22278 * gst/vaapi/gstvaapipostproc.c:
22279 * gst/vaapi/gstvaapipostproc.h:
22280 * gst/vaapi/gstvaapisink.c:
22281 * gst/vaapi/gstvaapisink.h:
22282 * gst/vaapi/gstvaapivideometa_texture.c:
22283 * tests/simple-decoder.c:
22284 legal: update copyright notice dates.
22286 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22288 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22289 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22290 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22291 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22292 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22293 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22294 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22295 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22296 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22297 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22298 * gst/vaapi/gstvaapiencode.c:
22299 * gst/vaapi/gstvaapiencode.h:
22300 * gst/vaapi/gstvaapiencode_h264.c:
22301 * gst/vaapi/gstvaapiencode_h264.h:
22302 * gst/vaapi/gstvaapiencode_mpeg2.c:
22303 * gst/vaapi/gstvaapiencode_mpeg2.h:
22304 legal: add per-file authorship information.
22306 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22308 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22309 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22310 decoder: fix video codec frame number in standalone mode.
22311 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22312 stream in standalone mode. While we are at it, improve the debugging
22313 messages to also include that frame number.
22315 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22317 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22318 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22319 decoder: fix crash on invalid pointer for GST_DEBUG().
22320 When decoding failed, or that the frame was dropped, the associated
22321 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22322 message needs to check whether the proxy is actually present or not.
22323 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22324 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22325 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22327 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22329 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22330 encoder: h264: disable NAL HRD parameters for now.
22331 Don't emit NAL HRD parameters for now in the SPS headers because the
22332 SEI buffering_period() and picture_timing() messages are not handled
22333 yet. Some additional changes are necessary to get it right.
22334 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22336 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22338 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22339 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22340 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22341 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22342 encoder: h264: fix default CPB buffer size.
22343 Fix default CPB buffer size to something more reasonable (1500 ms)
22344 and that still fits the level limits. This is a non configurable
22345 property for now. The initial CPB removal delay is also fixed to
22347 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22349 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22351 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22352 encoder: h264: fix bitrate encoding for HRD conformance.
22353 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22354 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22355 that to have less losses in precision. Likewise, don't round up because
22356 that could be a strict constraint imposed by the user.
22358 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22360 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22361 encoder: h264: fix level lookup constraints wrt. bitrate.
22362 Fix the level calculation involving bitrate limits. Since we are
22363 targetting NAL HRD conformance, the check against MaxBR from the
22364 Table A-1 limits shall involve cpbBrNalFactor depending on the
22367 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22369 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22370 encoder: h264: submit sequence parameter only once.
22371 Submit sequence parameter buffers only once, or when the bitstream
22372 was reconfigured in a way that requires such. Always submit packed
22373 sequence parameter buffers at I-frame period, if the VA driver needs
22375 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22377 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22379 * gst-libs/gst/vaapi/gstvaapicontext.c:
22380 * gst-libs/gst/vaapi/gstvaapicontext.h:
22381 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22382 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22383 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22384 encoder: h264: only submit packed headers when required.
22385 Make sure to submit the packed headers only if the underlying VA driver
22386 requires those. Currently, only handle packed sequence and picture
22388 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22390 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22392 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22393 encoder: h264: fix ip_period value in sequence parameter.
22394 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22395 between the I-frame and the next P-frame. So, this also accounts for
22396 any additional B-frame in the middle of it.
22397 This fixes rate control heuristics for certain VA drivers.
22398 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22400 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22402 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22403 encoder: h264: fix level when bitrate is automatically computed.
22404 Fix level characterisation when the bitrate is automatically computed
22405 from the active coding tools. i.e. ensure the bitrate once the profile
22406 is completely characterized but before the level calculation process.
22408 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22410 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22411 encoder: h264: clean-ups.
22412 Document and rename a few functions here and there. Drop code that
22413 caps num_bframes variable in reset_properties() since they shall
22414 have been checked beforehand, during properties initialization.
22416 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22418 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22419 encoder: h264: clean-up bitwriter related utilities.
22420 Clean-up GstBitWriter related utility functions and simplify notations.
22421 While we are at it, also make bitstream writing more robust should an
22422 overflow occur. We could later optimize for writing headers capped to
22423 their maximum possible size by using the _unchecked() helper variants.
22425 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22427 * gst-libs/gst/vaapi/Makefile.am:
22428 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22429 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22430 encoder: h264: completely remove private headers.
22431 Drop private header since it was originally used to expose internals
22432 to the plugin element. The proper interface is now the properties API,
22433 thus rendering private headers totally obsolete.
22435 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22437 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22438 encoder: h264: fix PPS header packing with profile < high.
22439 Fix PPS header packing when profile is below High since 8x8 transform
22440 mode and scaling lists are High Profile features.
22442 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22444 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22445 encoder: h264: always emit VUI parameters for framerate.
22446 Always emit VUI parameters for timing_info, which includes framerate
22449 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22451 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22452 encoder: h264: really fix frame cropping rectangle calculation.
22453 Make frame cropping rectangle calculation future proof, i.e. exactly
22454 follow the specification (7-18) to (7-21), and subsampling definitions
22456 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22457 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22459 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22461 * gst/vaapi/gstvaapisink.c:
22462 * gst/vaapi/gstvaapisink.h:
22463 vaapisink: set csc render flags from sinkpad caps.
22464 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22465 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22467 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22468 [factored out code, added SMPTE240M, handle per-buffer flags]
22469 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22471 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22473 * gst-libs/gst/vaapi/gstvaapisurface.h:
22474 * gst-libs/gst/vaapi/gstvaapiutils.c:
22475 * gst/vaapi/gstvaapipostproc.c:
22476 surface: rework render flags.
22477 Pack render flags per category and provide more flags into the color
22478 standard category. In particular, cover for SMPTE-240M.
22480 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22482 * gst-libs/gst/vaapi/gstvaapifilter.c:
22483 * gst/vaapi/gstvaapipostproc.c:
22484 * gst/vaapi/gstvaapipostproc.h:
22485 vaapipostproc: add support for colorbalance filters.
22486 Add support for hue, saturation, brightness and constrat adjustments.
22487 Also fix cap info local copy to match the really expected cap subtype
22489 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22490 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22492 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22494 * gst/vaapi/gstvaapipostproc.c:
22495 vaapipostproc: fix support for "sharpen" filter.
22496 Fix copy/paste error when submitting the "sharpen" value to the
22497 GstVaapiFilter instance.
22498 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22499 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22501 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22504 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22505 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22506 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22507 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22508 * pkgconfig/gstreamer-vaapi.pc.in:
22509 pkgconfig: plugin dir should use PKG version not API version.
22510 Fix the pluginsdir and includedir variables in the generated pkgconfig
22511 (.pc) files. The location needs to be built with the PKG version in
22512 mind instead of the API version.
22513 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22514 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22515 [additional fixes for includedir and pkg requirements]
22516 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22518 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22520 * gst/vaapi/gstvaapisink.c:
22521 vaapisink: fix display initialization in GstVideoOverlay implementation.
22522 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22523 before the pipeline has been set to PLAYING, the display has not yet
22524 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22525 up-to-date. For this reason the foreign XID is not attached.
22526 Now _ensure_display() is called earlier.
22527 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22528 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22530 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22532 * gst/vaapi/gstvaapisink.c:
22533 vaapisink: expose the raw video formats in static caps template.
22534 Expose all raw video formats in the static caps template since the
22535 vaapisink is supporting raw data. We will get the exact set of formats
22536 supported by the driver dynamically through the _get_caps() routine.
22537 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22538 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22539 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22541 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22543 * gst/vaapi/gstvaapidecode.c:
22544 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22545 Fix vaapidecode to correctly report caps features downstream, when
22546 a custom pipeline is built manually.
22547 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22548 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22550 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22552 * gst/vaapi/gstvaapidecode.c:
22553 vaapidecode: add system memory caps to template caps.
22554 Since vaapidecode provides buffer that can be mapped as regular memory,
22555 those caps should be added to the template caps. That only applies to
22557 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22558 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22560 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22562 * gst/vaapi/gstvaapidecode.c:
22563 vaapidecode: fix hang on SIGINT.
22564 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22565 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22566 locked. This fixes a deadlock on state change from PAUSED to READY.
22567 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22568 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22570 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
22572 * gst/vaapi/gstvaapiencode.c:
22573 vaapiencode: fix possible hang on SIGINT.
22574 vaapiencode might hang when the pipeline is stopped without any EOS,
22575 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22576 running and locked. This fixes a possible deadlock on state change
22577 from PAUSED to READY.
22578 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22579 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22581 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22583 * gst/vaapi/gstvaapiencode.c:
22584 vaapiencode: fix typo in error message.
22585 Fix incomplete error message in gst_vaapiencode_push_frame().
22587 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22589 * gst/vaapi/gstvaapipluginutil.c:
22590 * gst/vaapi/gstvaapipluginutil.h:
22591 plugins: add helpers to create video caps with features.
22592 Add gst_vaapi_video_format_new_template_caps_with_features() helper
22593 function to add the supplied caps feature string on GStreamer >= 1.2.
22594 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22595 the "best" caps feature to use for the supplied pad. In practice, we
22596 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22597 and finally the system memory caps.
22598 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22600 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22602 * gst/vaapi/gstvaapivideometa_texture.c:
22603 plugins: don't apply overlay composition in GLTextureUpload function.
22604 The GLTextureUpload function is not in charge of doing the overlay
22605 composition if any.
22606 https://bugzilla.gnome.org/show_bug.cgi?id=721859
22607 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22609 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22611 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22612 encoder: re-order submission of VA objects.
22613 Change the submission order of VA objects so that to make that process
22614 more logical. i.e. submit sequence parameter first, if any; next the
22615 packed headers associated to sequece, picture or slices; and finally
22616 the actual picture and associated slices.
22618 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22620 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22621 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22622 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22623 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22624 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22625 encoder: clean-up objects.
22626 Various clean-ups to improve consistency and readability: rename some
22627 variables, drop unused macro definitions, drop initialization of vars
22628 that are zero-initialized from the base class, drop un-necessary casts,
22629 allocate GPtrArrays with a destroy function.
22631 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22633 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22634 encoder: h264: fix frame cropping rectangle calculation.
22635 Fix frame cropping rectangle calculation to handle horizontal resolutions
22636 that don't match a multiple of 16 pixels, but also the vertical resolution
22637 that was incorrectly computed for progressive sequences too.
22638 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22640 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22642 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22643 encoder: h264: improve automatic bitrate calculation.
22644 For non "Constant-QP" modes, we could provide more reasonable heuristics
22645 for the target bitrate. In general, 48 bits per macroblock with all the
22646 useful coding tools enable looks safe enough. Then, this rate is raised
22647 by +10% to +15% for each coding tool that is disabled.
22648 https://bugzilla.gnome.org/show_bug.cgi?id=719699
22650 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22652 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22653 encoder: h264: support "high-compression" tuning option.
22654 Add support for "high-compression" tuning option. First, determine the
22655 largest supported profile by the hardware. Next, check any target limit
22656 set by the user. Then, enable each individual coding tool based on the
22657 resulting profile_idc value to use.
22658 https://bugzilla.gnome.org/show_bug.cgi?id=719696
22660 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22662 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22663 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22664 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22665 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22666 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22667 * gst/vaapi/gstvaapiencode_h264.c:
22668 encoder: h264: allow target decoder constraints.
22669 Allow user to precise the largest profile to use for encoding due
22670 to target decoder constraints. For instance, if CABAC entropy coding
22671 mode is requested by "constrained-baseline" profile only is desired,
22672 then an error is returned during codec configuration.
22673 Also make sure that the suitable profile we derived actually matches
22674 what the HW can cope with.
22675 https://bugzilla.gnome.org/show_bug.cgi?id=719694
22677 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22679 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22680 encoder: h264: refine size of coded buffer.
22681 Refine the heuristic to determine the maximum size of a coded buffer
22682 to account for the exact number of slices. set_context_info() is the
22683 last step during codec reconfiguration, no additional change is done
22684 afterwards, so re-using the num_slices field here is fine.
22685 https://bugzilla.gnome.org/show_bug.cgi?id=719953
22687 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
22689 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22690 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22691 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22692 encoder: h264: expose more coding tools.
22693 Add new H.264 coding tools to improve compression:
22694 - "cabac": enable CABAC entropy coding (default: FALSE);
22695 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22696 https://bugzilla.gnome.org/show_bug.cgi?id=719693
22697 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22699 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22701 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22702 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22703 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22704 encoder: h264: derive profile and level from active coding tools.
22705 Automatically derive the minimum profile and level to be used for
22706 encoding, based on the activated coding tools. The encoder will
22707 be trying to generate a bitstream that has the best chances to be
22708 decoded on most platforms by default.
22709 Also change the default profile to "constrained-baseline" so that
22710 to ensure maximum compatibility when the stream is decoded.
22711 https://bugzilla.gnome.org/show_bug.cgi?id=719691
22713 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22715 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22716 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22717 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22718 encoder: h264: fix hardware profile lookup.
22719 Fix lookup for a suitable HW profile, as to be used by the underlying
22720 hardware, based on heuristics that lead to characterize the SW profile,
22721 i.e. the one used by the SW level encoding logic.
22722 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22723 as they should respectively match the baseline and main profile.
22724 https://bugzilla.gnome.org/show_bug.cgi?id=719827
22726 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22728 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22729 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22730 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22731 encoder: h264: support only the byte-stream format.
22732 The libgstvaapi core encoders are meant to support raw bitstreams only.
22733 Henceforth, we are always producing a stream in "byte-stream" format.
22734 However, the "codec-data" buffer which holds SPS and PPS headers is
22735 always available. The "lengthSizeMinusOne" field is always set to 3
22736 so that in-place "byte-stream" format to "avc" format conversion could
22739 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22741 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22742 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22743 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22744 * gst/vaapi/gstvaapiencode_h264.c:
22745 encoder: h264: clean-ups.
22746 Various clean-ups to improve consistency and readability: rename some
22747 variables, drop unused macro definitions, drop initialization of vars
22748 that are zero-initialized from the base class, drop un-necessary casts.
22750 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22752 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22753 encoder: mpeg2: fix hardware profile lookup.
22754 Fix lookup for a suitable HW profile, as to be used by the underlying
22755 hardware, based on heuristics that lead to characterize the SW profile,
22756 i.e. the one used by the SW level encoding logic.
22758 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22760 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22761 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22762 encoder: mpeg2: derive profile and level from active coding tools.
22763 Automatically derive the minimum profile and level to be used for
22764 encoding, based on the activated coding tools. Improve lookup for
22765 the best suitable level with the new MPEG-2 helper functions.
22766 Also change the default profile to "simple" so that to ensure maximum
22767 compatibility when the stream is decoded.
22768 https://bugzilla.gnome.org/show_bug.cgi?id=719703
22770 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22772 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22773 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22774 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22775 encoder: mpeg2: clean-ups.
22776 Various clean-ups to improve consistency and readability: drop unused
22777 macro definitions, drop initialization of vars that are zero-initialized
22778 from the base class, drop un-necessary casts.
22780 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22782 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22783 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22784 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22785 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22786 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22787 encoder: add tuning options API.
22788 Add encoder "tune" option to override the default behaviour that is to
22789 favor maximum decoder compatibility at the expense of lower compression
22791 Expected tuning options to be developed are:
22792 - "high-compression": improve compression, target best-in-class decoders;
22793 - "low-latency": tune for low-latency decoding;
22794 - "low-power": tune for encoding in low power / resources conditions.
22796 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22798 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22799 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22800 encoder: fix bitrate units to match kbps.
22801 Bitrate is expressed in kilobits per second (kbps). So, this exactly
22802 means in multiple of 1000 bits, not 1024 bits.
22803 https://bugzilla.gnome.org/show_bug.cgi?id=722086
22805 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22807 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22808 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22809 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22810 encoder: clean-ups.
22811 Drop obsolete and unused macros. Add a few doc comments. Slightly
22812 improve indentation of a few leftovers.
22814 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22816 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22817 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22818 * gst-libs/gst/vaapi/gstvaapivalue.c:
22819 * gst-libs/gst/vaapi/gstvaapivalue.h:
22820 encoder: filter out the supported set of rate-control properties.
22821 Only expose the exact static set of supported rate-control properties
22822 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22823 only support CQP rate control, then only add it the the exposed enum
22825 Add helper macros and functions to build a GType for an enum subset.
22827 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22829 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22830 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22831 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22832 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22833 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22834 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22835 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22836 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22837 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22838 encoder: add keyframe period API.
22839 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22840 user control the maximum distance between two keyframes. This new
22841 property can only be set prior to gst_vaapi_encoder_set_codec_state().
22842 A value of zero for "keyframe-period" gets it re-evaluated to the
22843 actual framerate during encoder reconfiguration.
22845 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22847 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22848 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22849 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22850 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22851 encoder: improve codec reconfiguration.
22852 Improve codec reconfiguration to be performed only through a single
22853 function. That is, remove the _set_context_info() hook as subclass
22854 should not alter the parent GstVaapiContextInfo itself. Besides, the
22855 VA context is constructed only at the final stages of reconfigure().
22857 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22859 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22860 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22861 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22862 encoder: fix possible memory leak of coded buffer pools.
22863 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
22864 buffer pool only if the coded buffer size actually changed.
22866 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22868 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22869 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22870 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22871 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22872 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22873 * gst/vaapi/gstvaapiencode.c:
22874 * gst/vaapi/gstvaapiencode.h:
22875 encoder: add video codec-state API.
22876 Add interface to communicate the encoder resolution and related info
22877 like framerate, interlaced vs. progressive, etc. This new interface
22878 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
22879 but rather use GstVideoCodecState.
22880 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
22881 point for codec config. This means that the encoder is reconfigured
22882 there to match the latest properties.
22884 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22886 * gst/vaapi/gstvaapiencode.c:
22887 vaapiencode: don't crash on NULL encoder on _finish().
22888 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
22889 if it was not created in the first place. Return "not-negotiated" error
22890 since this means we did not even reach GstVideoEncoder::set_format(),
22891 where the encoder could have been created.
22892 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
22893 and that we failed to negotiate either pad.
22894 https://bugzilla.gnome.org/show_bug.cgi?id=719704
22896 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22898 * gst/vaapi/gstvaapiencode.c:
22899 * gst/vaapi/gstvaapiencode.h:
22900 * gst/vaapi/gstvaapiencode_h264.c:
22901 vaapiencode: use more GstVaapiPluginBase facilities.
22902 Avoid duplication of pad references or query functions since they are
22903 provided through the GstVaapiPluginBase object.
22905 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22907 * gst/vaapi/gstvaapiencode.c:
22908 * gst/vaapi/gstvaapiencode.h:
22909 * gst/vaapi/gstvaapiencode_h264.c:
22910 * gst/vaapi/gstvaapiencode_h264.h:
22911 * gst/vaapi/gstvaapiencode_mpeg2.c:
22912 vaapiencode: fix negotiation process of output caps.
22913 The specified caps in gst_video_encoder_set_output_state() function
22914 arguments should not contain any resolution, pixel-aspect-ratio,
22915 framerate, codec-data et al. Those rather should be set through the
22916 returned GstVideoCodecState. This means that output caps creation
22917 could be delayed until before gst_video_encoder_finish_frame() is
22919 This greatly simplifies the GstVideoEncoder::set_format() callback
22922 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22924 * gst/vaapi/gstvaapiencode.c:
22925 vaapiencode: make GstVaapiEncode an abstract type.
22926 Make base GstVaapiEncode class an abstract type so that we cannot
22927 create an instance from it without going through any of the codec
22928 specific derived class.
22930 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22932 * gst/vaapi/gstvaapiencode.c:
22933 * gst/vaapi/gstvaapiencode.h:
22934 * gst/vaapi/gstvaapiencode_h264.c:
22935 * gst/vaapi/gstvaapiencode_mpeg2.c:
22936 vaapiencode: rename a few member functions.
22937 Rename a few member functions to make them more consistent:
22938 - alloc_encoder(): now reduced to allocate the encoder object only;
22939 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
22941 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22943 * gst/vaapi/gstvaapiencode.c:
22944 * gst/vaapi/gstvaapiencode.h:
22945 * gst/vaapi/gstvaapiencode_h264.c:
22946 * gst/vaapi/gstvaapiencode_h264.h:
22947 * gst/vaapi/gstvaapiencode_mpeg2.c:
22948 vaapiencode: update for new properties API.
22949 Update MPEG-2 and H.264 encode elements to cope with the new core
22950 libgstvaapi properties API. i.e. all configurable properties are now
22951 directly handled at the GstVaapiEncoder level.
22952 Besides, this also makes sure to not use or modify the GstVaapiEncoder
22953 private definitions directly. Private data need to remain private.
22954 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22956 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22958 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22959 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22960 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22961 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22962 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22963 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22964 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22965 encoder: add properties API.
22966 Add interface to communicate configurable properties to the encoder.
22967 This covers both the common ones (rate-control, bitrate), and the
22968 codec specific properties.
22969 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22971 2014-01-06 18:01:33 +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_priv.h:
22977 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22978 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22979 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22980 * gst/vaapi/gstvaapiencode.c:
22981 * gst/vaapi/gstvaapiencode_h264.c:
22982 * gst/vaapi/gstvaapiencode_mpeg2.c:
22983 encoder: add bitrate API.
22984 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
22985 the bitrate for encoding. Currently, changing this parameter is only
22986 valid before the first frame is encoded. Should the value be modified
22987 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
22989 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22991 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22993 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22994 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22995 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22996 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22997 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22998 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22999 * gst-libs/gst/vaapi/gstvaapitypes.h:
23000 * gst/vaapi/gstvaapiencode.c:
23001 * gst/vaapi/gstvaapiencode.h:
23002 * gst/vaapi/gstvaapiencode_h264.c:
23003 * gst/vaapi/gstvaapiencode_mpeg2.c:
23004 encoder: add rate control API.
23005 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23006 rate control mode for encoding. Changing the rate control mode is
23007 only valid prior to encoding the very first frame. Afterwards, an
23008 error ("operation-failed") is issued.
23009 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23011 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23013 * gst/vaapi/gstvaapiencode.c:
23014 * gst/vaapi/gstvaapiencode_h264.c:
23015 * gst/vaapi/gstvaapiencode_mpeg2.c:
23016 vaapiencode: fix indentation.
23018 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23020 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23021 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23022 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23023 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23024 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23025 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23026 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23027 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23028 * gst/vaapi/gstvaapiencode.h:
23029 encoder: fix indentation.
23031 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23033 * gst-libs/gst/vaapi/Makefile.am:
23034 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23035 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23036 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23037 utils: add new MPEG-2 helper functions.
23038 Add various helper functions to convert profile, level, chroma formats
23039 from gstreamer-vaapi world and the MPEG-2 specification world.
23041 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23043 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23044 utils: h264: don't use fatal asserts.
23045 Replace g_assert() with a g_debug() so that to not make the program
23046 abort when an unsupported value is supplied.
23048 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23050 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23051 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23052 utils: h264: add helpers for profile and level string mappings.
23053 Add profile and level helper functions to convert to/from strings.
23055 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23057 * gst-libs/gst/vaapi/Makefile.am:
23058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23059 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23060 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23061 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23062 utils: h264: expose levels in public header.
23063 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23064 H.264 levels in there. The additional helper functions are meant
23065 to be private for now.
23067 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23069 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23070 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23071 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23072 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23073 codec: add helper macros to maintain object refcount.
23074 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23075 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23077 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23079 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23080 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23081 codec: re-indent decoder objects.
23083 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23085 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23086 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23087 codec: re-indent base codec objects.
23089 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23091 * gst/vaapi/gstvaapipluginbase.c:
23092 plugins: do not free debug category in finalize method.
23093 Fixes a crash when multiple vaapidecode elements are finalized since
23094 the debug category is created once in the class init method.
23095 This is a regression from git commit 7e58d60.
23096 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23097 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23099 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23101 * gst-libs/gst/vaapi/glibcompat.h:
23102 * tests/simple-decoder.c:
23103 tests: simple-decoder: don't use deprecated g_thread_create().
23104 Use g_thread_try_new() instead of the deprecated g_thread_create()
23105 function. Provide compatibility glue for any GLib version < 2.31.2.
23107 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23109 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23110 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23111 * gst-libs/gst/vaapi/gstvaapisurface.c:
23112 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23113 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23114 * gst/vaapi/gstvaapiencode.c:
23115 Fix printf()-like formats.
23116 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23117 make size_t arguments use the %zu format specifier accordingly; force
23118 XID formats to be a 32-bit unsigned integer; and fix the format used
23119 for gst_vaapi_create_surface_with_format() error cases since we have
23120 been using strings nowadays.
23122 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23124 * gst-libs/gst/vaapi/video-format.c:
23125 * gst-libs/gst/vaapi/video-format.h:
23126 utils: format: drop unused helper functions.
23127 The following helper functions are no longer used, thus are removed:
23128 - gst_vaapi_video_format_from_structure()
23129 - gst_vaapi_video_format_from_caps()
23130 - gst_vaapi_video_format_to_caps()
23132 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23134 * gst-libs/gst/vaapi/video-format.c:
23135 * gst-libs/gst/vaapi/video-format.h:
23136 utils: re-indent GstVideoFormat related helpers.
23138 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23140 * gst/vaapi/gstvaapidownload.c:
23141 download: use GstVideoInfo facilities to build output caps.
23142 Use standard GstVideoInfo related functions to build the output caps,
23143 thus directly preserving additional fields as needed, instead of
23144 manually copying them over through gst_vaapi_append_surface_caps().
23145 Also ensure that the input caps are fixated first.
23147 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23149 * gst/vaapi/gstvaapidownload.c:
23150 * gst/vaapi/gstvaapipluginutil.c:
23151 * gst/vaapi/gstvaapipluginutil.h:
23152 * gst/vaapi/gstvaapiuploader.c:
23153 plugins: factor out construction of template caps.
23154 Add new helper functions to build video template caps.
23155 - gst_vaapi_video_format_new_template_caps():
23156 create GstCaps with size, frame rate and PAR to full range
23157 - gst_vaapi_video_format_new_template_caps_from_list():
23158 try to create a "simplified" list from the supplied formats
23160 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23162 * gst/vaapi/gstvaapipluginutil.c:
23163 * gst/vaapi/gstvaapipluginutil.h:
23164 * gst/vaapi/gstvaapipostproc.c:
23165 plugins: factor out construction of GValue from GstVideoFormat.
23166 Add new helper functions to build GValues from GstVideoFormat:
23167 - gst_vaapi_value_set_format():
23168 build a GValue from the supplied video format
23169 - gst_vaapi_value_set_format_list():
23170 build a GValue list from the supplied array of video formats
23172 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23174 * gst/vaapi/gstvaapipluginutil.c:
23175 * gst/vaapi/gstvaapipluginutil.h:
23176 * gst/vaapi/gstvaapivideocontext.c:
23177 * gst/vaapi/gstvaapivideocontext.h:
23178 plugins: re-indent common and video context creation utils.
23180 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23182 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23183 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23184 * gst/vaapi/gstvaapidecode.c:
23185 * tests/test-display.c:
23186 display: don't use GstCaps for decode or encode profiles list.
23187 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23188 more convenient APIs that return an array of GstVaapiProfile instead
23189 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23191 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23193 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23194 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23195 * gst/vaapi/gstvaapidownload.c:
23196 * gst/vaapi/gstvaapiuploader.c:
23197 * tests/test-display.c:
23198 display: don't use GstCaps for image or subpicture formats list.
23199 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23200 returned GstCaps, with more convenient APIs that return an array of
23201 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23203 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23205 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23206 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23207 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23208 display: allocate queried resources on-demand.
23209 Allocate the set of decoders or encoders on-demand, when they are
23210 queried. Likewise for VA display attributes, image and subpicture
23213 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23215 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23216 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23217 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23218 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23219 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23220 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23221 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23222 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23223 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23224 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23225 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23226 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23227 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23228 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23229 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23230 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23231 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23232 display: re-indent all GstVaapiDisplay related source code.
23234 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23236 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23237 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23238 utils: add helper functions to get codec or profile name.
23240 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23242 * gst/vaapi/gstvaapipostproc.c:
23243 * gst/vaapi/gstvaapipostproc.h:
23244 * gst/vaapi/gstvaapiuploader.c:
23245 plugins: fix permissions for certain files.
23246 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23249 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23251 * gst/vaapi/gstvaapivideometa_texture.c:
23252 plugins: implement GLTextureUploadMeta user data copy.
23253 Makes the copies of a buffer reference their own GLTextureUploadMeta
23254 user data and prevent the original buffer accessing already freed
23255 memory if its copies has been released and freed.
23256 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23257 [Propagate the original meta texture to the copy too]
23258 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23260 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23262 * gst/vaapi/gstvaapiencode.c:
23263 * gst/vaapi/gstvaapiencode.h:
23264 * gst/vaapi/gstvaapipluginbase.c:
23265 * gst/vaapi/gstvaapipluginbase.h:
23266 * gst/vaapi/gstvaapipostproc.c:
23267 * gst/vaapi/gstvaapipostproc.h:
23268 * gst/vaapi/gstvaapisink.c:
23269 * gst/vaapi/gstvaapisink.h:
23270 plugins: factor out support for raw YUV buffers on sink pads.
23271 Factor out propose_allocation() hooks, creation of video buffer pool
23272 for the sink pad, conversion from raw YUV buffers to VA surface backed
23273 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23274 with the new GstVaapiPluginBase abilities.
23276 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23278 * gst-libs/gst/vaapi/gstcompat.h:
23279 * gst/vaapi/gstvaapidecode.c:
23280 * gst/vaapi/gstvaapidecode.h:
23281 * gst/vaapi/gstvaapidownload.c:
23282 * gst/vaapi/gstvaapipluginbase.c:
23283 * gst/vaapi/gstvaapipluginbase.h:
23284 * gst/vaapi/gstvaapipostproc.c:
23285 * gst/vaapi/gstvaapipostproc.h:
23286 * gst/vaapi/gstvaapisink.c:
23287 * gst/vaapi/gstvaapiupload.c:
23288 plugins: factor out pad caps.
23290 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23292 * gst/vaapi/gstvaapidecode.c:
23293 * gst/vaapi/gstvaapidownload.c:
23294 * gst/vaapi/gstvaapiencode.c:
23295 * gst/vaapi/gstvaapipluginbase.c:
23296 * gst/vaapi/gstvaapipostproc.c:
23297 * gst/vaapi/gstvaapisink.c:
23298 * gst/vaapi/gstvaapiupload.c:
23299 plugins: factor out video context sharing code.
23301 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23303 * gst/vaapi/gstvaapidecode.c:
23304 * gst/vaapi/gstvaapidownload.c:
23305 * gst/vaapi/gstvaapiencode.c:
23306 * gst/vaapi/gstvaapipluginbase.c:
23307 * gst/vaapi/gstvaapipluginbase.h:
23308 * gst/vaapi/gstvaapipostproc.c:
23309 * gst/vaapi/gstvaapisink.c:
23310 * gst/vaapi/gstvaapiupload.c:
23311 plugins: factor out GstImplementsInterface.
23313 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23315 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23316 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23317 * gst/vaapi/gstvaapipluginbase.c:
23318 * gst/vaapi/gstvaapipluginutil.c:
23319 plugins: check type of display obtained from neighbours.
23320 Fix display creation code to check that any display obtained from a
23321 neighbour actually has the type we expect. Note: if display type is
23322 set to "any", we can then accept any VA display type.
23324 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23326 * gst/vaapi/gstvaapidecode.c:
23327 * gst/vaapi/gstvaapidownload.c:
23328 * gst/vaapi/gstvaapiencode.c:
23329 * gst/vaapi/gstvaapipluginbase.c:
23330 * gst/vaapi/gstvaapipluginbase.h:
23331 * gst/vaapi/gstvaapipluginutil.c:
23332 * gst/vaapi/gstvaapipluginutil.h:
23333 * gst/vaapi/gstvaapipostproc.c:
23334 * gst/vaapi/gstvaapisink.c:
23335 * gst/vaapi/gstvaapisink.h:
23336 * gst/vaapi/gstvaapiupload.c:
23337 plugins: factor out display creation process.
23338 Move common VA display creation code to GstVaapiPluginBase, with the
23339 default display type remaining "any". Also add a "display-changed"
23340 hook so that subclasses could perform additional tasks when/if the
23341 VA display changed, due to a new display type request for instance.
23342 All plug-ins are updated to cope with the new internal APIs.
23344 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23346 * gst/vaapi/Makefile.am:
23347 * gst/vaapi/gstvaapidecode.c:
23348 * gst/vaapi/gstvaapidecode.h:
23349 * gst/vaapi/gstvaapidownload.c:
23350 * gst/vaapi/gstvaapidownload.h:
23351 * gst/vaapi/gstvaapiencode.c:
23352 * gst/vaapi/gstvaapiencode.h:
23353 * gst/vaapi/gstvaapipluginbase.c:
23354 * gst/vaapi/gstvaapipluginbase.h:
23355 * gst/vaapi/gstvaapipostproc.c:
23356 * gst/vaapi/gstvaapipostproc.h:
23357 * gst/vaapi/gstvaapisink.c:
23358 * gst/vaapi/gstvaapisink.h:
23359 * gst/vaapi/gstvaapiupload.c:
23360 * gst/vaapi/gstvaapiupload.h:
23361 plugins: add new base object, store display in there.
23362 Introduce a new GstVaapiPluginBase object that will contain all common
23363 data structures and perform all common tasks. First step is to have a
23364 single place to hold VA displays.
23365 While we are at it, also make sure to store and subsequently release
23366 the appropriate debug category for the subclasses.
23368 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23370 * gst-libs/gst/vaapi/gstvaapiobject.h:
23371 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23372 * gst/vaapi/gstvaapivideometa_texture.c:
23373 * gst/vaapi/gstvaapivideometa_texture.h:
23374 plugins: fix GLTextureUploadMeta to work with different texture ids.
23375 The GLTextureUploadMeta implementation assumed that for each upload()
23376 sequence, the supplied texture id is always the same as the one that
23377 was previously cached into the underlying GstVaapiTexture. Cope with
23378 any texture id change the expense to recreate the underlying VA/GLX
23380 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23382 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23384 * gst/vaapi/gstvaapidecode.c:
23385 * gst/vaapi/gstvaapivideobufferpool.c:
23386 * gst/vaapi/gstvaapivideometa_texture.c:
23387 plugins: allow builds without GLX enabled for GStreamer 1.2.
23388 Don't try to build GLTextureUploadMeta related code if GLX is not
23389 enabled during GStreamer >= 1.2 builds.
23391 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23393 * gst/vaapi/gstvaapidecode.c:
23394 * gst/vaapi/gstvaapivideobufferpool.c:
23395 * gst/vaapi/gstvaapivideobufferpool.h:
23396 * gst/vaapi/gstvaapivideometa_texture.c:
23397 * gst/vaapi/gstvaapivideometa_texture.h:
23398 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23399 Requesting the GLTextureUpload meta on buffers in the bufferpool
23400 prevents such metas from being de-allocated when buffers are released
23402 This is particulary useful in terms of performance when using the
23403 GLTextureUploadMeta API since the GstVaapiTexture associated with
23404 the target texture is stored in the meta.
23405 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23406 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23408 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23410 * gst/vaapi/gstvaapivideometa_texture.c:
23411 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23412 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23413 when the GstVaapiTexture associated with the supplied texture id could
23416 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23418 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23419 h264: improve robustness when packets are missing.
23420 Improve robustness when some expected packets where not received yet
23421 or that were not correctly decoded. For example, don't try to decode
23422 a picture if there was no valid frame headers parsed so far.
23423 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23425 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23427 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23428 decoder: h264: fix decoding of BA3_SVA_C.264.
23429 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23430 extended profile specifications. However, the SPS header has the
23431 constraint_set1_flag syntax element set to 1. This means that, if
23432 a Main profile compliant decoder is available, then it should be
23433 able to decode this stream.
23434 This changes makes it possible to fall-back from Extended profile
23435 to Main profile if constraint_set1_flag is set to 1.
23436 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23438 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23440 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23441 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23442 utils: h264: add more profiles.
23443 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23444 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23445 multiview profiles (H.10.1.1, H.10.1.2).
23446 Document "Constrained Baseline" and "High 10" profiles.
23448 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23450 * ext/codecparsers:
23451 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23452 e7d0e18 h264: complete set of NAL unit types
23454 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23456 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23457 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23458 decoder: h264: add support for constrained baseline profile.
23459 Recognize streams marked as conforming to the "Constrained Baseline
23460 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23461 to baseline, main or high profile.
23462 Constrained Baseline Profile conveys coding tools that are common
23463 to baseline profile and main profile.
23464 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23465 [Added fallbacks to main and high profiles]
23466 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23468 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23470 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23471 decoder: h264: fix decoding of scaling lists.
23472 The GStreamer codecparser layer now parses the scaling lists in zigzag
23473 scan order, as expected, so that to match the original bitstream layout
23474 and specification. However, further convert the scaling lists into
23475 raster scan order to fit the existing practice in most VA drivers.
23476 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23478 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23480 * ext/codecparsers:
23481 codecparsers: update to gst-vaapi-branch commit 177c73b.
23482 a7e3255 add H.265 (HEVC) bitstream parser
23483 177c73b h264: fix picture level scaling lists derivation (rule B)
23484 14733f1 h264: fix parsing of VCL HRD parameters
23485 59a0b47 h264: store quantization matrices in zig-zag order
23486 ffb6e26 h264: add helpers to convert quantization matrices
23487 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23488 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23489 5241d8e all: remove some unused functions
23490 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23491 963c04a all: make warnings more meaningful
23493 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23495 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23496 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23497 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23498 utils: add helpers for H.264 levels.
23499 - gst_vaapi_utils_h264_get_level():
23500 Returns GstVaapiLevelH264 from H.264 level_idc value
23501 - gst_vaapi_utils_h264_get_level_idc():
23502 Returns H.264 level_idc value from GstVaapiLevelH264
23503 - gst_vaapi_utils_h264_get_level_limits():
23504 Returns level limits as specified in Table A-1 of the H.264 standard
23505 - gst_vaapi_utils_h264_get_level_limits_table():
23506 Returns the Table A-1 specification
23508 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23510 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23511 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23512 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23513 utils: add new H.264 profiles.
23514 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23515 and helper functiions.
23517 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23519 utils: add new H.264 helper functions.
23521 - gst_vaapi_utils_h264_get_profile():
23522 Returns GstVaapiProfile from H.264 profile_idc value
23523 - gst_vaapi_utils_h264_get_profile_idc():
23524 Returns H.264 profile_idc value from GstVaapiProfile
23526 - gst_vaapi_utils_h264_get_chroma_type():
23527 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23528 - gst_vaapi_utils_h264_get_chroma_format_idc():
23529 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23531 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23533 * gst-libs/gst/base/Makefile.am:
23534 * gst-libs/gst/vaapi/Makefile.am:
23535 Fix missing files in distribution tarball.
23536 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23537 [Additional fixes and clean-ups]
23538 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23540 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23542 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23543 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23544 encoder: fix computation of max coded buffer size (again).
23545 The previous fix was only valid to express the maximum size of the
23546 macroblock layer, i.e. without any headers. Now, also account for
23547 the slice headers and top picture header, but also any other header
23548 we might stuff into the VA coded buffer, e.g. sequence headers.
23550 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23552 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23553 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23554 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23555 encoder: fix computation of max coded buffer size.
23556 Fix coded buffer size for each codec. A generic issue was that the
23557 number of macroblocks was incorrectly computed. The second issue was
23558 specific to MPEG-2 were the max number of bits per macroblock, and
23559 as defined by the standard, was incorrectly mapped to the (lower)
23560 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23562 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23564 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23565 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23566 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23567 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23568 encoder: simplify VA context initialization process.
23569 Change get_context_info() into a set_context_info() function that
23570 initializes common defaults into the base class, thus allowing the
23571 subclasses to specialize the context info further on.
23572 The set_context_info() hook is also the location where additional
23573 context specific data could be initialized. At this point, we are
23574 guaranteed to have valid video resolution size and framerate. i.e.
23575 gst_vaapi_encoder_set_format() was called beforehand.
23577 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
23579 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23580 encoder: fix mpeg2 compilation error.
23581 https://bugzilla.gnome.org/show_bug.cgi?id=719746
23582 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23584 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23586 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23587 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23588 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23589 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23590 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23591 * gst/vaapi/gstvaapiencode.c:
23592 encoder: clean-ups and document public APIs.
23593 Clean public APIs up so that to better align with the decoder APIs.
23594 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23595 return the VA coded buffer proxy. Also provide useful documentation
23596 for the public APIs.
23598 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23600 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23601 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23602 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23603 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23604 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23605 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23606 through GstVaapiCodedBufferProxy user-data facility.
23607 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23609 Partial fix for the following report:
23610 https://bugzilla.gnome.org/show_bug.cgi?id=719530
23612 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23614 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23615 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23616 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23617 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23618 * gst/vaapi/gstvaapiencode.c:
23619 encoder: refactor status codes.
23620 Drop obsolete or unused status codes. Align some status codes with the
23621 decoder counterparts.
23623 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23625 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23626 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23627 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23628 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23629 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23630 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23631 encoder: fix subclassing process.
23632 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23633 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23634 thus avoiding useless run-time checks. Also simplify the subclass
23635 initialization process to be less error prone.
23637 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23639 encoder: rework GstVaapiCodedBuffer and related proxy.
23640 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23641 public and private interfaces. Besides, the map/unmap APIs should not
23642 be exposed as is but appropriate accessors should be provided instead.
23643 * GstVaapiCodedBuffer: VA coded buffer abstraction
23644 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23645 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23646 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23647 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23648 the specified max size, and bound to the supplied encoder
23649 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23650 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23651 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23652 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23653 Rationale: more optimized transfer functions might be provided in the
23654 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23655 https://bugzilla.gnome.org/show_bug.cgi?id=719775
23657 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23659 * gst/vaapi/gstvaapidecode.c:
23660 * gst/vaapi/gstvaapiencode.c:
23661 * gst/vaapi/gstvaapipostproc.c:
23662 * gst/vaapi/gstvaapisink.c:
23663 plugins: fix reference leaks of VA display objects.
23664 Fix GstElement::set_context() implementation for all plug-in elements
23665 to avoid leaking an extra reference to the VA display, thus preventing
23666 correct cleanup of VA resources in GStreamer 1.2 builds.
23668 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23670 * gst/vaapi/gstvaapipluginutil.c:
23671 * gst/vaapi/gstvaapivideocontext.c:
23672 plugins: simplify gst_vaapi_ensure_display().
23673 Return earlier if the creation of a VA display failed. Likewise, simplify
23674 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23677 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23679 * gst/vaapi/gstvaapivideomemory.c:
23680 plugins: fix memory leaks through GstVideoMeta maps.
23681 When GstVideoMeta maps were used, the supporting functions incorrectly
23682 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23683 always increasing the associated GstMemory reference count and giving
23684 zero chance to actually release that, and subsequently the VA display.
23686 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23688 * gst-libs/gst/vaapi/gstvaapifilter.c:
23689 * gst/vaapi/gstvaapiencode_h264.c:
23690 * gst/vaapi/gstvaapiencode_mpeg2.c:
23691 * gst/vaapi/gstvaapipostproc.c:
23692 * gst/vaapi/gstvaapisink.c:
23693 * gst/vaapi/gstvaapiuploader.c:
23694 plugins: use G_PARAM_STATIC_STRINGS.
23695 This avoids a few string copies during initialization.
23697 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23699 * gst/vaapi/gstvaapivideometa.c:
23700 plugins: simplify VA video meta to only reference surface proxies.
23701 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23702 now allocated from a surface pool. This also means that the local
23703 reference to the VA surface is also gone, as it could be extracted
23704 from the associated surface proxy.
23706 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23708 * gst/vaapi/gstvaapivideobuffer.c:
23709 * gst/vaapi/gstvaapivideobuffer.h:
23710 * gst/vaapi/gstvaapivideometa.c:
23711 * gst/vaapi/gstvaapivideometa.h:
23712 plugins: drop obsolete functions.
23713 Drop the following functions that are not longer used:
23714 - gst_vaapi_video_buffer_new_with_surface()
23715 - gst_vaapi_video_meta_new_with_surface()
23716 - gst_vaapi_video_meta_set_surface()
23717 - gst_vaapi_video_meta_set_surface_from_pool()
23719 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23721 * gst/vaapi/gstvaapivideometa.c:
23722 plugins: allow VA video meta to be allocated from surface proxy pools.
23723 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23724 from surface pools instead of plain VA surfaces. This is to simplify
23725 allocations now that surface proxies are created from a surface pool.
23727 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23729 * docs/reference/libs/libs-sections.txt:
23730 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23731 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23732 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23733 surfaceproxy: add copy function.
23734 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23735 proxy with the same information from the parent proxy, except that the
23736 user-defined destroy notify function is not copied over.
23737 The underlying VA surface is pushed back to the video pool only when
23738 the last reference to the parent surface proxy is released.
23740 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23742 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23743 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23744 * gst/vaapi/gstvaapiencode.c:
23745 vaapiencode: optimize _handle_frame() to avoid extra allocation.
23746 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23747 and in particular the GstVaapiEncObjUserData object. i.e. directly use
23748 the VA surface proxy from the source buffer. This also makes the user
23749 data attached to the GstVideoCodecFrame more consistent between both
23750 the decoder and encoder plug-in elements.
23752 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23754 * gst/vaapi/gstvaapiencode.c:
23755 vaapiencode: fix memory leaks in _push_frame() on error.
23756 Simplify gst_vaapiencode_push_frame(), while also removing the call
23757 to gst_video_encoder_negotiate() since this is implicit in _finish()
23758 if caps changed. Also fixed memory leaks that occured on error.
23760 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23762 * gst/vaapi/gstvaapiencode.c:
23763 * gst/vaapi/gstvaapiencode.h:
23764 * gst/vaapi/gstvaapiencode_h264.c:
23765 * gst/vaapi/gstvaapiencode_h264.h:
23766 * gst/vaapi/gstvaapiencode_mpeg2.c:
23767 vaapiencode: additional clean-ups.
23768 Constify pointers wherever possible. Drop unused variables, and use
23769 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23770 to correctly report errors, especially when in-place conversion from
23771 bytestream to avcC format failed.
23773 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23775 * gst/vaapi/gstvaapiencode.c:
23776 * gst/vaapi/gstvaapiencode.h:
23777 * gst/vaapi/gstvaapiencode_h264.c:
23778 * gst/vaapi/gstvaapiencode_h264.h:
23779 * gst/vaapi/gstvaapiencode_mpeg2.c:
23780 * gst/vaapi/gstvaapiencode_mpeg2.h:
23781 vaapiencode: move common properties to base class.
23782 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23783 base class. The actual range of supported rate control modes is currently
23784 implemented as a plug-in element hook. This ought to be determined from
23785 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23787 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23789 * gst/vaapi/gstvaapiencode_h264.c:
23790 * gst/vaapi/gstvaapiencode_mpeg2.c:
23791 vaapiencode: fix plugin description and debug name.
23792 Align the plug-in debug category to its actual name. i.e. enable debug
23793 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23794 the plug-in element description to make it more consistent with other
23797 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23800 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23801 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23802 * gst-libs/gst/video/Makefile.am:
23803 * gst/vaapi/gstvaapiencode.c:
23804 * gst/vaapi/gstvaapiencode.h:
23805 * gst/vaapi/gstvaapiencode_h264.c:
23806 * gst/vaapi/gstvaapiencode_mpeg2.c:
23807 vaapiencode: add initial support for GStreamer 0.10.
23809 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23811 * gst-libs/gst/vaapi/gstcompat.h:
23812 libs: add more GstBuffer compat glue for GStreamer 0.10.
23813 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23814 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23817 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23820 * gst-libs/gst/video/Makefile.am:
23821 libs: always use built-in videoutils for GStreamer 0.10.
23822 GStreamer 0.10.36 is the latest and ultimate version to be released
23823 from the GStreamer 0.10 branch. i.e. no further releases are to be
23824 made. So, we can safely enable the built-in videoutils replacement
23825 now that they are in sync with the 0.10 branch.
23827 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23830 videoutils: update to master commit d4a15a5.
23831 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23832 86096cc videodecoder: minor cosmetic changes to align a bit more with master
23833 b4b8b52 videodecoder: allow parse function to not use all data on adapter
23834 2145495 videodecoder: warn if frame list gets long
23835 36c3753 videodecoder: Also use the object lock to protect the output_state
23836 518c93d videodecoder: fix seeking again
23837 185fb63 video: Correct usage of the base class stream lock
23838 170e944 videodecoder: Expose _negotiate function
23840 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23843 * gst-libs/gst/vaapi/Makefile.am:
23844 * tests/Makefile.am:
23845 Fix build with GStreamer >= 1.3.
23846 http://bugzilla.gnome.org/show_bug.cgi?id=715183
23847 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23849 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23852 configure: disable encoders with GStreamer 0.10.
23853 Don't try to build video encoders for GStreamer 0.10. Support code is
23854 not there yet, and probably will never for such an ancient version.
23856 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23858 * gst/vaapi/gstvaapiencode.c:
23859 vaapiencode: fix error handling while allocating output buffers.
23860 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
23861 unmap the coded buffer prior to returning an error.
23863 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23865 * gst/vaapi/gstvaapiencode.c:
23866 vaapiencode: fix error handling in _finish() hook.
23867 Fix GstVideoEncoder::finish() implementation to really return possible
23868 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
23870 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23872 * gst/vaapi/gstvaapiencode.c:
23873 * gst/vaapi/gstvaapiencode.h:
23874 * gst/vaapi/gstvaapiencode_h264.c:
23875 * gst/vaapi/gstvaapiencode_h264.h:
23876 * gst/vaapi/gstvaapiencode_mpeg2.c:
23877 * gst/vaapi/gstvaapiencode_mpeg2.h:
23878 vaapiencode: minor clean-ups.
23879 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
23880 the GObject type system. We are guaranteed to only deal with the same
23881 plug-in element object.
23883 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23885 * gst/vaapi/gstvaapiencode.c:
23886 * gst/vaapi/gstvaapiencode_h264.c:
23887 * gst/vaapi/gstvaapiencode_mpeg2.c:
23888 vaapiencode: fix support for raw YUV sink buffers.
23889 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
23890 The most efficient way to do so is to let the vaapiencode elements
23891 allocate a buffer pool, and subsequently buffers from it. This means
23892 that upstream elements are expected to honour downstream pools.
23893 If upstream elements insist on providing their own allocated buffers
23894 to the vaapiencode elements, then it possibly would be more efficient
23895 to insert a vaapipostproc element before the vaapiencode element.
23896 This is because vaapipostproc currently has better support than other
23897 elements for "foreign" raw YUV buffers.
23899 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23901 * gst/vaapi/gstvaapiencode.c:
23902 vaapiencode: fix support for GStreamer 1.2.
23904 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
23906 * gst/vaapi/gstvaapiencode.c:
23907 * gst/vaapi/gstvaapiencode_h264.c:
23908 * gst/vaapi/gstvaapiencode_mpeg2.c:
23909 vaapiencode: initial port to GStreamer 1.2.
23910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23912 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
23914 * gst/vaapi/Makefile.am:
23915 * gst/vaapi/gstvaapi.c:
23916 * gst/vaapi/gstvaapiencode_mpeg2.c:
23917 * gst/vaapi/gstvaapiencode_mpeg2.h:
23918 plugins: add mpeg2 encoder element.
23919 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
23920 is called "vaapiencode_mpeg2".
23922 - rate-control: rate control mode (default: cqp - constant QP)
23923 - bitrate: desired bitrate in kbps (default: auto-calculated)
23924 - key-period: maximal distance between two key frames (default: 30)
23925 - max-bframes: number of B-frames between I and P (default: 2)
23926 - quantizer: constant quantizer (default: 8)
23927 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23929 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
23931 * gst/vaapi/Makefile.am:
23932 * gst/vaapi/gstvaapi.c:
23933 * gst/vaapi/gstvaapiencode_h264.c:
23934 * gst/vaapi/gstvaapiencode_h264.h:
23935 plugins: add h264 encoder element.
23936 Add GstVaapiEncodeH264 element object. The actual plug-in element
23937 is called "vaapiencode_h264".
23939 - rate-control: rate control mode (default: none)
23940 - bitrate: desired bitrate in kbps (default: auto-calculated)
23941 - key-period: maximal distance between two key frames (default: 30)
23942 - num-slices: number of slices per frame (default: 1)
23943 - max-bframes: number of B-frames between I and P (default: 0)
23944 - min-qp: minimal quantizer (default: 1)
23945 - init-qp: initial quantizer (default: 26)
23946 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23948 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
23950 * gst/vaapi/Makefile.am:
23951 * gst/vaapi/gstvaapiencode.c:
23952 * gst/vaapi/gstvaapiencode.h:
23953 plugins: add base encoder element.
23954 vaapiencode element is based on GstVideoEncoder APIs.
23955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23957 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
23959 * gst-libs/gst/vaapi/Makefile.am:
23960 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23961 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23962 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23963 encoder: add mpeg2 encoder.
23964 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
23965 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23967 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
23969 * gst-libs/gst/vaapi/Makefile.am:
23970 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23971 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23972 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23973 encoder: add h264 encoder.
23974 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23976 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
23979 * gst-libs/gst/vaapi/Makefile.am:
23980 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23981 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23982 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23983 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23984 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23985 Add initial infrastructure for video encoding.
23986 Add initial API for video encoding: only basic interfaces and small
23987 encoder objects are implemented so far.
23988 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23990 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
23993 * gst-libs/gst/Makefile.am:
23994 * gst-libs/gst/base/Makefile.am:
23995 * gst-libs/gst/base/gstbitwriter.c:
23996 * gst-libs/gst/base/gstbitwriter.h:
23997 * gst-libs/gst/vaapi/Makefile.am:
23998 libs: add generic bitstream writer.
23999 GstBitWriter provides a bit writer that can write any number of bits
24000 to a pre-allocated memory buffer. Helper functions are also provided
24001 to write any number of bits from 8, 16, 32 and 64 bit variables.
24002 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24004 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24006 * gst-libs/gst/vaapi/gstvaapicontext.c:
24007 * gst-libs/gst/vaapi/gstvaapicontext.h:
24008 libs: add support for rate-control to GstVaapiContext.
24009 Extend GstVaapiContextInfo structure to hold the desired rate control
24010 mode for encoding purposes. For decoding purposes, this field is not
24011 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24012 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24014 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24016 * gst-libs/gst/vaapi/gstvaapitypes.h:
24017 * gst-libs/gst/vaapi/gstvaapiutils.c:
24018 * gst-libs/gst/vaapi/gstvaapiutils.h:
24019 * gst-libs/gst/vaapi/gstvaapivalue.c:
24020 * gst-libs/gst/vaapi/gstvaapivalue.h:
24021 libs: add rate-control attributes.
24022 Add GstVaapiRateControl types and GType values in view to supporting
24023 rate controls for encoding. This is meant to be used for instance in
24025 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24027 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24030 Bump version for development.
24032 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24034 * gst/vaapi/Makefile.am:
24035 build: fix for Wayland headers not in standard include dirs.
24036 Fix build when Wayland headers don't live in plain system include dirs
24037 like /usr/include but rather in /usr/include/wayland for instance.
24038 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24039 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24041 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24043 * gst-libs/gst/vaapi/Makefile.am:
24044 build: link libgstvaapi-wayland against videoutils.
24045 This library is using symbols that don't exist in GStreamer 0.10 so
24046 it needs to link to built-in implementation (libgstvaapi-videoutils).
24047 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24048 Signed-off-by: Ross Burton <ross.burton@intel.com>
24049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24051 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24053 * gst-libs/gst/vaapi/gstvaapifilter.c:
24054 * gst/vaapi/gstvaapipostproc.c:
24055 vaapostproc: fix memory leaks.
24056 Destroy VPP output surface pool on exit. Also avoid a possible crash
24057 in double-free situation caused by insufficiently reference counted
24058 array of formats returned during initialization.
24060 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24062 * gst/vaapi/gstvaapipostproc.c:
24063 * gst/vaapi/gstvaapipostproc.h:
24064 vaapipostproc: fix and optimize advanced deinterlacing mode.
24065 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24066 reference buffers. This used to be 3 past reference buffers but this
24067 doesn't fit with the existing decode pipeline that only has 4 extra
24069 Also optimize references tracking to be only enabled when needed, i.e.
24070 when advanced deinterlacing mode is used. This means that we don't
24071 need to track past references for basic bob or weave deinterlacing.
24073 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24075 * gst/vaapi/gstvaapipostproc.c:
24076 vaapipostproc: fix "mixed" mode deinterlacing.
24077 In "mixed" interlaced streams, the buffer contains additional flags that
24078 specify whether the frame contained herein is interlaced or not. This means
24079 that we can alternatively get progressive or interlaced frames. Make sure
24080 to disable deinterlacing at the VPP level when the source buffer is no longer
24083 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24085 * gst/vaapi/gstvaapipostproc.c:
24086 vaapipostproc: fix memory leaks with advanced deinterlacing.
24087 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24088 of past buffers. Completely reset the deinterlace state, thus destroying
24089 any buffer currently held, on _start(), _stop() and _destroy().
24091 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24095 - GStreamer 1.2 APIs are supported ;
24096 - Video Processing (VA/VPP) features.
24098 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24101 README: update for GStreamer >= 1.0.x and VPP features.
24103 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24105 * gst-libs/gst/vaapi/glibcompat.h:
24106 * gst-libs/gst/vaapi/gstvaapicontext.h:
24107 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24108 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24109 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24110 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24111 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24112 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24113 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24114 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24115 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24116 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24117 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24118 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24119 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24120 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24121 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24122 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24123 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24124 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24125 * gst-libs/gst/vaapi/gstvaapiimage.c:
24126 * gst-libs/gst/vaapi/gstvaapiimage.h:
24127 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24128 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24129 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24130 * gst-libs/gst/vaapi/gstvaapiobject.c:
24131 * gst-libs/gst/vaapi/gstvaapiobject.h:
24132 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24133 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24134 * gst-libs/gst/vaapi/gstvaapisurface.h:
24135 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24136 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24137 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24138 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24139 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24140 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24141 * gst-libs/gst/vaapi/gstvaapitexture.c:
24142 * gst-libs/gst/vaapi/gstvaapitexture.h:
24143 * gst-libs/gst/vaapi/gstvaapitypes.h:
24144 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24145 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24146 * gst-libs/gst/vaapi/gstvaapivalue.c:
24147 * gst-libs/gst/vaapi/gstvaapivalue.h:
24148 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24149 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24150 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24151 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24152 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24153 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24154 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24155 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24156 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24157 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24158 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24159 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24160 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24161 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24162 * gst/vaapi/gstvaapi.c:
24163 * gst/vaapi/gstvaapidecode.h:
24164 * gst/vaapi/gstvaapidownload.h:
24165 * gst/vaapi/gstvaapipluginutil.c:
24166 * gst/vaapi/gstvaapipluginutil.h:
24167 * gst/vaapi/gstvaapipostproc.h:
24168 * gst/vaapi/gstvaapisink.h:
24169 * gst/vaapi/gstvaapivideoconverter_glx.h:
24173 * tests/test-display.c:
24174 * tests/test-jpeg.c:
24175 * tests/test-jpeg.h:
24176 * tests/test-mpeg4.c:
24177 * tests/test-mpeg4.h:
24178 * tests/test-surfaces.c:
24179 * tests/test-windows.c:
24180 legal: update copyright notice dates.
24182 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24184 * gst-libs/gst/vaapi/glibcompat.h:
24185 * gst-libs/gst/vaapi/gstcompat.h:
24186 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24187 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24188 * gst-libs/gst/vaapi/gstvaapicompat.h:
24189 * gst-libs/gst/vaapi/gstvaapicontext.c:
24190 * gst-libs/gst/vaapi/gstvaapicontext.h:
24191 * gst-libs/gst/vaapi/gstvaapidebug.h:
24192 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24193 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24194 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24195 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24196 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24197 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24198 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24199 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24200 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24201 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24202 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24203 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24204 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24205 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24206 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24207 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24208 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24209 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24210 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24211 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24212 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24213 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24214 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24215 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24216 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24217 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24218 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24219 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24220 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24221 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24222 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24223 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24224 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24225 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24226 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24227 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24228 * gst-libs/gst/vaapi/gstvaapifilter.c:
24229 * gst-libs/gst/vaapi/gstvaapifilter.h:
24230 * gst-libs/gst/vaapi/gstvaapiimage.c:
24231 * gst-libs/gst/vaapi/gstvaapiimage.h:
24232 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24233 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24234 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24235 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24236 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24237 * gst-libs/gst/vaapi/gstvaapiobject.c:
24238 * gst-libs/gst/vaapi/gstvaapiobject.h:
24239 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24240 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24241 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24242 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24243 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24244 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24245 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24246 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24247 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24248 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24249 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24250 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24251 * gst-libs/gst/vaapi/gstvaapisurface.c:
24252 * gst-libs/gst/vaapi/gstvaapisurface.h:
24253 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24254 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24255 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24256 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24257 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24258 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24259 * gst-libs/gst/vaapi/gstvaapitexture.c:
24260 * gst-libs/gst/vaapi/gstvaapitexture.h:
24261 * gst-libs/gst/vaapi/gstvaapitypes.h:
24262 * gst-libs/gst/vaapi/gstvaapiutils.c:
24263 * gst-libs/gst/vaapi/gstvaapiutils.h:
24264 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24265 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24266 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24267 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24268 * gst-libs/gst/vaapi/gstvaapivalue.c:
24269 * gst-libs/gst/vaapi/gstvaapivalue.h:
24270 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24271 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24272 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24273 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24274 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24275 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24276 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24277 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24278 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24279 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24280 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24281 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24282 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24283 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24284 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24285 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24286 * gst-libs/gst/vaapi/sysdeps.h:
24287 * gst-libs/gst/vaapi/video-format.c:
24288 * gst-libs/gst/vaapi/video-format.h:
24289 * gst/vaapi/gstvaapi.c:
24290 * gst/vaapi/gstvaapidecode.c:
24291 * gst/vaapi/gstvaapidecode.h:
24292 * gst/vaapi/gstvaapidownload.c:
24293 * gst/vaapi/gstvaapidownload.h:
24294 * gst/vaapi/gstvaapipluginutil.c:
24295 * gst/vaapi/gstvaapipluginutil.h:
24296 * gst/vaapi/gstvaapipostproc.c:
24297 * gst/vaapi/gstvaapipostproc.h:
24298 * gst/vaapi/gstvaapisink.c:
24299 * gst/vaapi/gstvaapisink.h:
24300 * gst/vaapi/gstvaapiupload.c:
24301 * gst/vaapi/gstvaapiupload.h:
24302 * gst/vaapi/gstvaapiuploader.c:
24303 * gst/vaapi/gstvaapiuploader.h:
24304 * gst/vaapi/gstvaapivideobuffer.c:
24305 * gst/vaapi/gstvaapivideobuffer.h:
24306 * gst/vaapi/gstvaapivideobufferpool.c:
24307 * gst/vaapi/gstvaapivideobufferpool.h:
24308 * gst/vaapi/gstvaapivideocontext.c:
24309 * gst/vaapi/gstvaapivideocontext.h:
24310 * gst/vaapi/gstvaapivideoconverter_glx.c:
24311 * gst/vaapi/gstvaapivideoconverter_glx.h:
24312 * gst/vaapi/gstvaapivideoconverter_x11.c:
24313 * gst/vaapi/gstvaapivideoconverter_x11.h:
24314 * gst/vaapi/gstvaapivideomemory.c:
24315 * gst/vaapi/gstvaapivideomemory.h:
24316 * gst/vaapi/gstvaapivideometa.c:
24317 * gst/vaapi/gstvaapivideometa.h:
24318 * gst/vaapi/gstvaapivideometa_texture.c:
24319 * gst/vaapi/gstvaapivideometa_texture.h:
24328 * tests/simple-decoder.c:
24329 * tests/test-decode.c:
24330 * tests/test-decode.h:
24331 * tests/test-display.c:
24332 * tests/test-filter.c:
24333 * tests/test-h264.c:
24334 * tests/test-h264.h:
24335 * tests/test-jpeg.c:
24336 * tests/test-jpeg.h:
24337 * tests/test-mpeg2.c:
24338 * tests/test-mpeg2.h:
24339 * tests/test-mpeg4.c:
24340 * tests/test-mpeg4.h:
24341 * tests/test-surfaces.c:
24342 * tests/test-textures.c:
24343 * tests/test-vc1.c:
24344 * tests/test-vc1.h:
24345 * tests/test-windows.c:
24346 legal: add per-file authorship information.
24347 Credit original authors on a per-file basis as we cannot expect people
24348 to know all country-specific rules, or bother browsing through the git
24351 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24357 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24362 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24364 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24365 decoder: don't include obsolete headers.
24366 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24367 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24370 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24372 * gst/vaapi/Makefile.am:
24373 * gst/vaapi/gstvaapi.c:
24374 * gst/vaapi/gstvaapipostproc.c:
24375 vaapipostproc: add initial support for GStreamer 1.2.
24376 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24377 right now so that to cope with auto-plugging issues/regressions. e.g.
24378 this happens when the correct set of expected caps are being exposed.
24379 This means that, currently, the proposed caps are not fully accurate.
24381 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24383 * gst/vaapi/gstvaapipostproc.c:
24384 * gst/vaapi/gstvaapipostproc.h:
24385 vaapipostproc: add support for denoise and sharpen filters.
24386 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24388 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24390 * gst/vaapi/gstvaapipostproc.c:
24391 * gst/vaapi/gstvaapipostproc.h:
24392 vaapipostproc: add support for advanced deinterlacing.
24393 Add initial support for advanced deinterlacing. The history buffer
24394 size is arbitrarily set to 3 references for now.
24396 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24398 * gst/vaapi/gstvaapipostproc.c:
24399 vaapipostproc: fix deinterlacing with VPP.
24400 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24401 for the first field. Render flags were supplied instead of the actual
24402 deinterlacing flags (deint_flags).
24404 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24406 * gst/vaapi/gstvaapipostproc.c:
24407 vaapipostproc: fix transform caps.
24408 Fix GstBaseTransform::transform_caps() implementation to always return
24409 the complete set of allowed sink pad caps (unfixated) even if the src
24410 pad caps we are getting are fixated. Rationale: there are just so many
24411 possible combinations, and it was wrong to provide a unique set anyway.
24412 As a side effect, this greatly simplifies the ability to derive src pad
24413 caps from fixated sink pad caps.
24415 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24417 * docs/reference/libs/libs-sections.txt:
24418 * gst-libs/gst/vaapi/gstvaapifilter.c:
24419 * gst-libs/gst/vaapi/gstvaapifilter.h:
24420 filter: add helper to specify references for deinterlacing.
24421 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24422 list of surfaces used for forward or backward reference in advanced
24423 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24424 The list of surfaces used as deinterlacing references shall be live
24425 until the next call to gst_vaapi_filter_process().
24426 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24428 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24430 * gst-libs/gst/vaapi/gstvaapifilter.c:
24431 * gst-libs/gst/vaapi/gstvaapifilter.h:
24432 * gst-libs/gst/vaapi/gstvaapiutils.c:
24433 * gst/vaapi/gstvaapipostproc.c:
24434 * tests/test-filter.c:
24435 filter: fix semantics of deinterlacing flags.
24436 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24437 flag is meant to specify the organization of reference frames used in
24438 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24439 to specify that the top-field of the supplied input surface is to be
24440 used for deinterlacing. Conversely, if not set, this means that the
24441 bottom field of the supplied input surface will be used instead.
24443 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24445 * docs/reference/libs/libs-sections.txt:
24446 * gst-libs/gst/vaapi/gstvaapifilter.c:
24447 * gst-libs/gst/vaapi/gstvaapifilter.h:
24448 filter: add helpers to check for supported/active operation.
24449 Add a couple of helper functions:
24450 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24451 advertises support for the supplied operation ;
24452 - gst_vaapi_filter_use_operation(): checks whether the supplied
24453 operation was already enabled to its non-default value.
24455 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24457 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24458 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24459 The user-defined destroy notify function is meant to be called only when
24460 the surface proxy was fully released, i.e. once it actually released the
24461 VA surface back to the underlying pool.
24463 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24465 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24466 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24467 libs: make GstVaapiVideoPool thread-safe.
24468 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24469 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24471 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24473 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24474 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24475 libs: robustify decoder objects and surface proxy initialization.
24476 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24477 sequences to have the expected default values set beforehand in case of an
24478 error raising up further during creation. i.e. make it possible to cleanly
24479 destroy those partially initialized objects.
24480 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24481 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24483 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24485 * gst/vaapi/gstvaapidecode.c:
24486 vaapidecode: fix decoder flush.
24487 There are situations where gst_video_decoder_flush() is called, and
24488 this subsequently produces a gst_video_decoder_reset() that kills the
24489 currently active GstVideoCodecFrame. This means that it no longer
24490 exists by the time we reach GstVideoDecoder::finish() callback, thus
24491 possibly resulting in a crash if we assumed spare data was still
24492 available for decode (current_frame_size > 0).
24493 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24494 that means a flush, thus performing the actual operations there like
24495 calling gst_video_decoder_have_frame() if pending data is available.
24497 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24499 * gst/vaapi/gstvaapidecode.c:
24500 * gst/vaapi/gstvaapidecode.h:
24501 vaapidecode: fix dead-locks with decoder task.
24502 Review all interactions between the main video decoder stream thread
24503 and the decode task to derive a correct sequence of operations for
24504 decoding. Also avoid extra atomic operations that become implicit under
24505 the GstVideoDecoder stream lock.
24507 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24509 * gst/vaapi/gstvaapidecode.c:
24510 vaapidecode: fix hard reset for seek cases.
24511 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24512 and completely purge any decoded output frame that may come out from
24513 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24514 state to start decoding over new buffers.
24515 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24517 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24519 * gst/vaapi/gstvaapidecode.c:
24520 * gst/vaapi/gstvaapidecode.h:
24521 vaapidecode: drop decode timeout, always wait for a free surface.
24522 vaapidecode used to wait up to one second past the expected time of
24523 presentation for the last decoded frame. This is not realistic in
24524 practice when it comes to video pause/resume. Changed behaviour to
24525 unconditionnally wait for a free VA surface prior to continuing the
24526 decoding. The decode task will continue pushing the output frames to
24527 the downstream element while also reporting errors at the same time
24528 to the main thread.
24529 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24530 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24532 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24534 * gst/vaapi/gstvaapidecode.c:
24535 vaapidecode: fix srcpad caps for GStreamer 1.2.
24536 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24537 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24538 that it relied on possibly un-initialized data. Fix srcpad caps to be
24539 initialized from a sanitized copy of GstVideoDecoder output state caps.
24540 Note: the correct way to expose the srcpad caps triggers an additional
24541 issue in core GStreamer auto-plugging capabilities as the correct caps
24542 to be exposed should be format=ENCODED with memory:VASurface caps feature
24543 at the minimum. In some situations, we could determine the underlying
24544 VA surface format, but this is not always possible. e.g. cases where it
24545 is not allowed to expose the underlying VA surface data, or when the
24546 VA driver implementation cannot actually provide such information.
24548 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24550 * gst/vaapi/gstvaapidecode.c:
24551 * gst/vaapi/gstvaapisink.c:
24552 plugins: streamline VA formats exposed in caps to a realistic set.
24553 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24554 output formats for GStreamer 1.2 in caps to a realistic subset. This
24555 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24556 underlying VA surface format, or if it is actually not allowed to get
24557 access to the surface contents.
24559 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24561 * gst/vaapi/gstvaapidecode.c:
24562 * gst/vaapi/gstvaapisink.c:
24563 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24564 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24565 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24566 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24567 we really don't support that for rendering.
24568 https://bugzilla.gnome.org/show_bug.cgi?id=711828
24570 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24573 configure: automatically detect GStreamer API version.
24574 Automatically detect GStreamer API version. The --with-gstreamer-api
24575 configure option now defaults to "autodetect" and configure then tries
24576 to derive the GStreamer API version from the highest version based on
24577 what pkg-config --modversion would report.
24578 https://bugzilla.gnome.org/show_bug.cgi?id=711657
24580 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
24582 * gst/vaapi/gstvaapipostproc.c:
24583 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24584 Fix raw YUV data uploaded as in the following pipeline:
24585 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24586 The main reason why it failed was that the videoparse element simply
24587 allocates GstBuffer with raw data chunk'ed off the sink pad without
24588 any prior knowledge of the actual frame info. i.e. it basically just
24589 calls gst_adapter_take_buffer().
24590 We could avoid the extra copy performed in vaapipostproc if the videoparse
24591 element was aware of the downstream pool and bothers copying line by
24592 line, for each plane. This means that, for a single frame per buffer,
24593 the optimizatin will be to allocate the video buffer downstream, map
24594 it, and copy each line that is coming through until we need to fills
24595 in the successive planes.
24596 Still, optimized raw YUV uploads already worked with the following:
24597 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24598 https://bugzilla.gnome.org/show_bug.cgi?id=711250
24599 [clean-ups, fixed error cases to unmap and unref outbuf]
24600 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24602 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24604 * gst/vaapi/gstvaapipostproc.c:
24605 vaapipostproc: try to downgrade deinterlace-method when needed.
24606 If the currently selected deinterlacing method is not supported by the
24607 underlying hardware, then try to downgrade the method to a supported one.
24608 At the minimum, basic bob-deinterlacing shall always be supported.
24610 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24612 * gst/vaapi/gstvaapipostproc.c:
24613 vaapipostproc: add initial support for deinterlacing with VPP.
24614 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24615 this only covers bob-deinterlacing when the output pixel format is
24618 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24620 * gst/vaapi/gstvaapipostproc.c:
24621 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24622 The size argument for GstBaseTransform::transform_size() hook is a
24623 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24625 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24627 * gst/vaapi/gstvaapipostproc.c:
24628 * gst/vaapi/gstvaapipostproc.h:
24629 vaapipostproc: add initial support for scaling.
24630 Add initial support for basic scaling with size specified through the
24631 "width" and "height" properties. If either user-provided dimension is
24632 zero and "force-aspect-ratio" is set to true (the default), then the
24633 other dimension is scaled to preserve the aspect ratio.
24635 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24637 * gst/vaapi/gstvaapipostproc.c:
24638 * gst/vaapi/gstvaapipostproc.h:
24639 vaapipostproc: add initial support for color conversion.
24640 If VPP is available, we always try to implicitly convert the source
24641 buffer to the "native" surface format for the underlying accelerator.
24642 This means that no optimization is performed yet to propagate raw YUV
24643 buffers to the downstream element as is, if VPP is available. i.e. it
24644 will always cause a color conversion.
24646 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24648 * gst/vaapi/gstvaapipostproc.c:
24649 vaapipostproc: fix bug when user disabled deinterlacing.
24650 Fix pipeline error / hang when the user disabled deinterlacing through
24651 the deinterlace-mode=disabled property setting.
24653 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24655 * gst/vaapi/gstvaapipostproc.c:
24656 * gst/vaapi/gstvaapipostproc.h:
24657 vaapipostproc: factor out operations to be applied into flags.
24658 Even if we only support deinterlacing for now, use flags to specify
24659 which filters are to be applied to each frame we receive in transform().
24660 This is preparatory work for integrating new filters.
24662 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24664 * gst/vaapi/gstvaapipostproc.c:
24665 * gst/vaapi/gstvaapipostproc.h:
24666 vaapipostproc: add support for raw YUV video source buffers.
24667 Allow video processing from raw YUV buffers coming from the sink pad,
24668 while still producing a VA surface for the downstream elements.
24670 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24672 * gst/vaapi/gstvaapipluginutil.c:
24673 * gst/vaapi/gstvaapipluginutil.h:
24674 * gst/vaapi/gstvaapipostproc.c:
24675 vaapipostproc: add support for "mixed" interlace mode.
24676 Add support for "mixed" interlace-mode, whereby the video frame buffer
24677 shall be deinterlaced only if its flags mention that's actually an
24678 interlaced frame buffer.
24680 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24682 * gst-libs/gst/vaapi/gstcompat.h:
24683 * gst/vaapi/gstvaapipostproc.c:
24684 * gst/vaapi/gstvaapipostproc.h:
24685 * gst/vaapi/gstvaapivideobuffer.c:
24686 * gst/vaapi/gstvaapivideobuffer.h:
24687 vaapipostproc: rework plug-in element.
24688 Rewrite the vaapipostproc plug-in element so that it derives from
24689 GstBaseTransform, thus simplifying the caps negotiation process.
24691 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24693 * gst/vaapi/gstvaapivideobufferpool.c:
24694 * gst/vaapi/gstvaapivideomemory.c:
24695 * gst/vaapi/gstvaapivideomemory.h:
24696 plugins: fix and optimize check for buffer pool allocator params.
24697 Reset the buffer pool allocator only if the config caps changed in a
24698 sensible way: format or resolution change. i.e. don't bother with
24699 other caps like colorimetry et al. as this doesn't affect the way to
24700 allocate VA surfaces or images.
24702 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24704 * gst/vaapi/gstvaapivideomemory.c:
24705 plugins: enable memory maps for read & write with direct-rendering.
24706 Enable read and write mappings only if direct-rendering is supported.
24707 Otherwise, this means that we may need to download data from the VA
24708 surface first for correctness, even if the VA surface doesn't need to
24709 be read at all. i.e. sometimes, READWRITE mappings are meant for
24710 surfaces that are written to first, and read afterwards for further
24712 https://bugzilla.gnome.org/show_bug.cgi?id=704078
24714 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24716 * gst/vaapi/gstvaapivideomemory.c:
24717 plugins: fix check for direct-rendering support.
24718 Fix check for direct-rendering if the creation of VA surfaces with
24719 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24720 that we tried to allocate a VA surface based on the corresponding
24721 chroma type. i.e. in that particular case, we have to make sure that
24722 the derived image has actually the expected format.
24724 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24726 * gst/vaapi/gstvaapivideobufferpool.c:
24727 * gst/vaapi/gstvaapivideomemory.c:
24728 * gst/vaapi/gstvaapivideomemory.h:
24729 plugins: fix buffer pool reset_buffer() to reset memory resources.
24730 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24731 memory resources, and more particularly the VA surface proxy. Most
24732 importantly, the GstVaapiVideoMeta is retained. Cached surface in
24733 memory are released, thus triggering a new allocation the next time
24734 we need to map the buffer.
24736 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24738 * gst/vaapi/gstvaapivideomemory.c:
24739 * gst/vaapi/gstvaapivideomemory.h:
24740 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24741 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24742 pool stored in the parent VA memory allocator.
24743 This fixes the following scenario:
24744 - VA video buffer 1 is allocated from a buffer pool
24745 - Another video buffer is created, and inherits info from buffer 1
24746 - Buffer 1 is released, thus pushing it back to the buffer pool
24747 - New buffer alloc request comes it, this yields buffer 1 back
24748 - At this stage, buffers 1 and 2 still share the same underlying VA
24749 surface, but buffer 2 was already submitted downstream for further
24750 processing, thus conflicting with additional processing we were
24751 about to perform on buffer 1.
24752 Maybe the core GstBufferPool implementation should have been fixed
24753 instead to actually make sure that the returned GstBuffer memory we
24754 found from the pool is writable?
24756 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24758 * gst/vaapi/gstvaapiuploader.c:
24759 plugins: create a proxy for GstVaapiUploader allocated buffers.
24760 Always make sure to allocate a VA surface proxy for GstVaapiUploader
24761 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24763 This fixes cases where we want to retain the underlying surface longer,
24764 instead of releasing it back to the surface pool right away.
24766 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24768 * gst/vaapi/gstvaapidecode.c:
24769 * gst/vaapi/gstvaapipluginutil.c:
24770 * gst/vaapi/gstvaapipluginutil.h:
24771 * gst/vaapi/gstvaapipostproc.c:
24772 plugins: add helper function to disable deinterlacing in caps.
24773 Add gst_caps_set_interlaced() helper function that would reset the
24774 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24775 interlaced field to "false" for GStreamer 0.10.
24777 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24779 * gst-libs/gst/vaapi/gstvaapifilter.c:
24780 filter: fix memory leak of VPP operations.
24781 Fix ensure_operations() to release the VPP operations array if non
24782 NULL, prior to returning to the caller. The former function was also
24783 renamed to a more meaningful get_operations() since the caller owns
24784 the returned array that needs to be released.
24786 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24788 * gst-libs/gst/vaapi/gstvaapifilter.c:
24789 filter: fix first-time operation lookup.
24790 Fix first-time operation lookup through find_operation() if the set
24791 of supported operations was not initially determined through the
24792 gst_vaapi_filter_get_operations() helper function.
24793 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24795 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24797 * gst-libs/gst/vaapi/gstvaapifilter.c:
24798 filter: fix colorbalance related subtypes.
24799 Fix intiialization of GstVaapiFilterOpData for colorbalance related
24800 operations. In particular, fill in the va_subtype field accordingly.
24801 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24803 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24805 * gst-libs/gst/vaapi/gstvaapifilter.c:
24806 filter: fix VA-API 0.34.0 symbol guards.
24807 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24808 that need to be guarded for libva 0.34 and 0.33, respectively.
24809 https://bugzilla.gnome.org/show_bug.cgi?id=709102
24810 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24812 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24814 * gst/vaapi/gstvaapidecode.c:
24815 * gst/vaapi/gstvaapipluginutil.c:
24816 * gst/vaapi/gstvaapisink.c:
24817 plugins: hanle the context query in any pad.
24818 Also this patch simplifies the code, since now the query is common for the
24819 decoder and the sink.
24820 https://bugzilla.gnome.org/show_bug.cgi?id=709200
24822 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24824 * gst/vaapi/gstvaapivideocontext.c:
24825 plugins: query upstream element for a GstContext.
24826 Fix gst_vaapi_video_context_prepare() to also query upstream elements
24827 for a valid GstContext. Improve comments regarding the steps used to
24828 lookup or build that context, thus conforming to the GstContext API
24830 https://bugzilla.gnome.org/show_bug.cgi?id=709112
24831 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24833 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24836 * debian.upstream/control.in:
24837 Fix detection and packaging of GStreamer 1.2.x builds.
24838 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24839 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24840 purposes, update the versioning to -1.2 suffix instead.
24842 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24844 * gst/vaapi/Makefile.am:
24845 * gst/vaapi/gstvaapidecode.c:
24846 * gst/vaapi/gstvaapidecode.h:
24847 * gst/vaapi/gstvaapisink.c:
24848 * gst/vaapi/gstvaapivideometa_texture.c:
24849 * gst/vaapi/gstvaapivideometa_texture.h:
24850 plugins: add support for GstVideoGLTextureUploadMeta.
24851 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
24852 requested, and more specifically under a GLX configuration, then add
24853 the GstVideoGLTextureUploadMeta to the output buffer.
24854 https://bugzilla.gnome.org/show_bug.cgi?id=703236
24855 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24857 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24859 * gst/vaapi/gstvaapidecode.c:
24860 * gst/vaapi/gstvaapisink.c:
24861 * gst/vaapi/gstvaapivideomemory.h:
24862 plugins: add support for GstCaps features.
24863 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
24864 as expressed in caps, to the more standard use of caps features. i.e.
24865 add "memory:VASurface" feature attribute to the associated caps.
24866 https://bugzilla.gnome.org/show_bug.cgi?id=703271
24867 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24869 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24871 * gst/vaapi/gstvaapidecode.c:
24872 * gst/vaapi/gstvaapisink.c:
24873 plugins: improve ::query() debugging messages.
24874 Fix gst_vaapidecode_query() to correctly display the query type name,
24875 instead of randomly displaying that we shared the underlying display.
24876 Also add debug info for the GstVaapiSink::query() handler, i.e. the
24877 supplied query type name actually.
24878 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24880 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24882 * gst/vaapi/gstvaapidecode.c:
24883 * gst/vaapi/gstvaapisink.c:
24884 plugins: add support for GstContext API.
24885 Add support for the new GstContext API from GStreamer 1.2.x.
24886 - implement the GstElement::set_context() hook ;
24887 - reply to the `context' query from downstream elements.
24888 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24889 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24891 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24893 * gst/vaapi/Makefile.am:
24894 * gst/vaapi/gstvaapipluginutil.c:
24895 * gst/vaapi/gstvaapivideocontext.c:
24896 * gst/vaapi/gstvaapivideocontext.h:
24897 plugins: add compat layer for GstVideoContext.
24898 Add thin compatibility layer for the deprecated GstVideoContext API.
24899 For GStreamer API >= 1.2, this involves the following two functions:
24900 - gst_vaapi_video_context_prepare(): queries if a context is already
24901 set in the pipeline ;
24902 - gst_vaapi_video_context_propagate(): propagates the newly-created
24903 context to the rest of the pipeline.
24904 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24905 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24907 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24910 * gst/vaapi/Makefile.am:
24911 * gst/vaapi/gstvaapi.c:
24912 * gst/vaapi/gstvaapidecode.c:
24913 * gst/vaapi/gstvaapipluginutil.c:
24914 * gst/vaapi/gstvaapisink.c:
24915 * gst/vaapi/gstvaapivideobuffer.c:
24916 plugins: initial port to GStreamer 1.2.
24917 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
24918 is rather minimalistic so that to test the basic functionality.
24919 Disable vaapipostproc plugin for now as further polishing is needed.
24920 Also disable GstVideoContext interface support since this API is now
24921 gone in 1.2.x. This is preparatory work for GstContext support.
24922 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24923 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24925 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24927 * tests/simple-decoder.c:
24928 tests: simple-decoder: fix for non-X11 backends.
24929 Don't try to create pixmaps if we have not requested that feature. This
24930 fixes execution for non-X11 backends, and most specifically DRM video
24933 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24935 * ext/codecparsers:
24936 codecparsers: update to gst-vaapi-branch commit b33bd32.
24937 b33bd32 jpeg: fix and optimize scan for next marker code
24939 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24941 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24942 jpeg: fix calculation of MCU count.
24943 Fix calculation of MCU count for image sizes that are not a multiple
24944 of 8 pixels in either dimension, but also for non-common sampling
24945 factors like 4:2:2 in non-interleaved mode.
24947 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24949 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24950 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24951 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24952 jpeg: add support for multiscan images.
24953 Add support for images with multiple scans per frame. The Huffman table
24954 can be updated before SOS, and thus possibly requiring multiple uploads
24955 of Huffman tables to the VA driver. So, the latter must be able to cope
24956 with multiple VA buffers of type 'huffman-table' and with the correct
24959 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24961 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24962 jpeg: improve robustness when packets are missing.
24963 Improve robustness when some expected packets where not received yet
24964 or that were not correctly decoded. For example, don't try to decode
24965 a picture if there was no valid frame headers.
24967 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24969 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24970 jpeg: minor clean-ups.
24971 Improve debugging and error messages. Rename a few variables to fit the
24972 existing naming conventions. Change some fatal asserts to non-fatal
24975 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24977 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24978 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24979 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24980 jpeg: rework and optimize parser.
24981 Split the input buffer data into decoder units that represent a JPEG
24982 segment. Handle scan decoder unit specifically so that it can include
24983 both the scan header (SOS) but also any other ECS or RSTi segment.
24984 That way, we parse the input buffer stream only once at the gst-vaapi
24985 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
24986 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
24987 determine segment boundaries and decode them.
24988 In practice, this is a +15 to +25% performance improvement.
24990 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
24992 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24993 jpeg: handle comment segments.
24994 Fix decode_buffer() function to gracefully skip comment (COM) segments.
24995 This fixes decoding of streams generated by certain cameras, e.g. like
24996 the Logitech Pro C920.
24997 https://bugzilla.gnome.org/show_bug.cgi?id=708208
24998 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25000 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25002 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25003 jpeg: fix determination of image bounds.
25004 Look for the exact image bounds characterised by the <SOI> and <EOI>
25005 markers. Use the gst_jpeg_parse() codec parser utility function to
25006 optimize the lookup for the next marker segment.
25007 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25009 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25011 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25012 jpeg: fix calculation of offset to next marker segment.
25013 Fix calculation of the offset to the next marker segment since the
25014 correction of the codecparser part to match the API specification.
25015 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25016 of the segment minus any marker prefix.
25017 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25018 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25020 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25022 * ext/codecparsers:
25023 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25024 23c7dde jpeg: fix calculation of segment size
25026 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25029 Bump version for development.
25031 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25037 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25042 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25045 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25046 configure: fix detection of VA/JPEG decoding API.
25047 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25048 More precisely, some packages were shipping with a <va/va.h> header that
25049 did not include <va/va_dec_jpeg.h>.
25050 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25051 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25053 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25055 * gst/vaapi/gstvaapisink.c:
25056 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25057 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25058 is setup in case upstream elements allocate buffers themselves without
25059 honouring our GstVaapiSink::bufer_alloc() hook.
25060 In particular, this fixes support for OGG video streams with WebKit.
25061 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25062 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25064 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25066 * gst/vaapi/gstvaapisink.c:
25067 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25068 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25071 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25073 * gst/vaapi/gstvaapisink.c:
25074 * gst/vaapi/gstvaapisink.h:
25075 vaapisink: handle raw buffers not created from VA video buffer pool.
25076 Handle raw video buffers that were not created from a VA video buffer
25077 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25078 builds instead of the GstVaapiUploader.
25079 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25081 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25083 * gst/vaapi/gstvaapidecode.c:
25084 vaapidecode: remove extraneous size information from allowed caps.
25085 Fix _getcaps() implementation to not report codecs with size information
25086 filled in the returned caps. That's totally useless nowadays. Ideally,
25087 this is a hint to insert a video parser element, thus allowing future
25088 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25089 which is able to parse the elementary bitstreams itself.
25090 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25092 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25094 * gst/vaapi/gstvaapidecode.c:
25095 * gst/vaapi/gstvaapidecode.h:
25096 vaapidecode: submit the last frame from output adapter to decoder.
25097 If there is no frame delimiter at the end of the stream, e.g. no
25098 end-of-stream or end-of-sequence marker, and that the current frame
25099 was fully parsed correctly, then assume that last frame is complete
25100 and submit it to the decoder.
25101 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25102 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25103 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25105 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25107 * gst/vaapi/gstvaapidecode.c:
25108 * gst/vaapi/gstvaapidecode.h:
25109 vaapidecode: push all decoded frames from within the task.
25110 Make sure to push all decoded frames from the task so that the unlying
25111 VA surfaces could all be rendered from the same thread.
25113 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25115 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25116 wayland: render the raw surface if VPP failed.
25117 As a last resort, if video processing capabilities (VPP) are not available,
25118 or they did not produce anything conclusive enough, then try to fallback to
25119 the original rendering code path whereby the whole VA surface is rendered
25120 as is, no matter of video cropping or deinterlacing requests.
25121 Note: under those conditions, the visual outcome won't be correct but at
25122 least, something gets displayed instead of bailing out.
25124 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25126 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25127 wayland: add supporting for video processing.
25128 Try to use VA/VPP processing capabilities to handle video cropping and
25129 additional rendering flags that may not be directly supported by the
25130 underlying hardware when exposing a suitable Wayland buffer for the
25131 supplied VA surface. e.g. deinterlacing, different color primaries than
25134 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25136 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25137 wayland: add new frame redraw infrastructure.
25138 Update the frame redraw infrastructure with a new FrameState stucture
25139 holds all the necessary information used to display the next pending
25141 While we are at it, delay the sync operation down to when it is actually
25142 needed. That way, we keep performing additional tasks meanwhile.
25144 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25146 * docs/reference/libs/libs-sections.txt:
25147 * gst-libs/gst/vaapi/gstvaapifilter.c:
25148 * gst-libs/gst/vaapi/gstvaapifilter.h:
25149 filter: allow specification of render target regions.
25150 Add support for rendering the source surface to a particular region within
25151 the supplied target surface. The default background color is black.
25153 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25155 * gst/vaapi/gstvaapivideobuffer.c:
25156 decode: fix creation of GLX video buffers for GStreamer 0.10.
25157 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25158 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25160 This fixes support for cluttersink with GStreamer 0.10 builds.
25162 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25164 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25165 mpeg2: disable video cropping as picture_display_extension() is missing.
25166 Disable video cropping in MPEG-2 codec because it is partially implemented
25167 and actually because nobody implements it that way, and the standard spec
25168 does not specify the display process either anyway.
25169 Most notably, there are two possible use cases for sequence_display_extension()
25170 horizontal_display_size & vertical_display_size: (i) guesstimating the
25171 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25172 in conjunction with picture_display_extension() information.
25173 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25175 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25177 * gst/vaapi/gstvaapisink.c:
25178 * gst/vaapi/gstvaapisink.h:
25179 vaapisink: allow scaling to ignore aspect ratio.
25180 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25181 which allows you to say that you don't want the sink to respect aspect
25182 ratio. Add the same property to vaapisink.
25183 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25184 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25186 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25188 * gst/vaapi/gstvaapisink.c:
25189 vaapisink: fix memory leak of GstVaapiUploader instance.
25190 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25191 of a former GstVaapiUploader instance prior to forcibly creating a
25193 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25195 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25197 * gst/vaapi/gstvaapisink.c:
25198 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25199 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25200 by honouring the filter caps argument. More precisely, this fixes the
25201 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25202 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25203 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25204 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25206 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25208 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25209 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25210 This fixes the following issue:
25211 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25212 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25213 'GstVaapiDecoderMpeg4Class'
25214 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25215 'GstVaapiDecoderMpeg4Class' was here
25216 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25217 make[5]: Leaving directory
25218 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25219 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25221 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25223 * tests/test-filter.c:
25224 tests: filter: add support for deinterlacing.
25225 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25226 deinterlacing filter. However, if --deinterlace option is not set but the
25227 --deinterlace-flags option is set with "top-field-first", then the very
25228 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25230 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25232 * tests/test-filter.c:
25233 tests: filter: add support for denoising and sharpening.
25234 Add --denoise option to enable noise reduction with the level specified
25235 as the option value (float). Likewise, add --sharpen option to enable
25237 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25239 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25241 * tests/test-filter.c:
25242 tests: filter: add support for frame cropping.
25243 Add support for frame cropping through the --crop-rect|-c argument.
25244 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25245 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25247 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25249 * tests/test-filter.c:
25250 tests: filter: dump supported operations and formats.
25252 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25254 * tests/Makefile.am:
25255 * tests/test-filter.c:
25256 tests: add initial test for video processing.
25257 Add minimal test case for video processing: scaling and color format
25259 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25261 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25263 * docs/reference/libs/libs-sections.txt:
25264 * gst-libs/gst/vaapi/gstvaapifilter.c:
25265 * gst-libs/gst/vaapi/gstvaapifilter.h:
25266 * gst-libs/gst/vaapi/gstvaapiutils.c:
25267 * gst-libs/gst/vaapi/gstvaapiutils.h:
25268 * gst/vaapi/gstvaapipostproc.c:
25269 * gst/vaapi/gstvaapipostproc.h:
25270 filter: add initial support for deinterlacing.
25271 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25272 the selected field from the input surface is kept for the target surface.
25273 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25274 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25275 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25276 to libgstvaapi core library.
25277 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25279 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25281 * docs/reference/libs/libs-sections.txt:
25282 * gst-libs/gst/vaapi/gstvaapifilter.c:
25283 * gst-libs/gst/vaapi/gstvaapifilter.h:
25284 filter: add support for color balance adjustment.
25285 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25286 and contrast. The respective range for each filter shall be the same as
25287 for the VA display attributes.
25288 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25290 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25292 * docs/reference/libs/libs-sections.txt:
25293 * gst-libs/gst/vaapi/gstvaapifilter.c:
25294 * gst-libs/gst/vaapi/gstvaapifilter.h:
25295 filter: add support for sharpening.
25296 Sharpening is configured with a float value. The supported range is
25297 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25299 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25301 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25303 * docs/reference/libs/libs-sections.txt:
25304 * gst-libs/gst/vaapi/gstvaapifilter.c:
25305 * gst-libs/gst/vaapi/gstvaapifilter.h:
25306 filter: add support for denoising.
25307 Noise reduction is configured with a float value. The supported range
25308 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25310 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25312 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25314 * docs/reference/libs/libs-sections.txt:
25315 * gst-libs/gst/vaapi/gstvaapifilter.c:
25316 * gst-libs/gst/vaapi/gstvaapifilter.h:
25317 filter: add support for frame cropping.
25318 Frame cropping is defined with a GstVaapiRectangle value. The default
25319 behaviour is to treat the source surface as a whole
25321 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25323 * gst-libs/gst/vaapi/gstvaapifilter.c:
25324 filter: add helper functions.
25325 Add helper functions to ensure an operation VA buffer is allocated to
25326 the right size; that filter caps get parsed and assigned to the right
25327 operation too; and that float parameters are correctly scaled to fit
25328 the reported range from the VA driver.
25330 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25333 * docs/reference/libs/libs-docs.xml.in:
25334 * docs/reference/libs/libs-sections.txt:
25335 * gst-libs/gst/vaapi/Makefile.am:
25336 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25337 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25338 * gst-libs/gst/vaapi/gstvaapifilter.c:
25339 * gst-libs/gst/vaapi/gstvaapifilter.h:
25340 Add initial infrastructure for video processing.
25341 Add initial API for video processing: only scaling and color format
25342 conversion operations are supported.
25344 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25346 * gst-libs/gst/vaapi/video-format.c:
25347 * gst-libs/gst/vaapi/video-format.h:
25348 libs: add gst_vaapi_video_format_from_string() helper.
25349 Add gst_vaapi_video_format_from_string() helper function to convert from
25350 a video format string representation to a suitable GstVideoFormat. This
25351 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25352 builds, and a proper iteration over all GstVideoFormat string representations
25353 otherwise for earlier GStreamer 0.10.x builds.
25355 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25357 * gst-libs/gst/vaapi/video-format.c:
25358 * gst-libs/gst/vaapi/video-format.h:
25359 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25360 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25361 VA fourcc value to a suitable GstVideoFormat.
25363 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25365 * gst-libs/gst/vaapi/gstvaapivalue.c:
25366 * gst-libs/gst/vaapi/gstvaapivalue.h:
25367 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25368 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25369 structures as a standard GType. This could be useful to have them
25370 described as a GValue later on.
25372 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25374 * docs/reference/libs/libs-docs.xml.in:
25375 * docs/reference/libs/libs-sections.txt:
25376 * gst-libs/gst/vaapi/Makefile.am:
25377 * gst-libs/gst/vaapi/gstvaapicontext.h:
25378 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25379 libs: drop some public APIs.
25380 Don't expose GstVaapiContext APIs and make them totally private to
25381 libgstvaapi core library. That API would also tend to disappear in
25382 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25383 but keep symbols visible so that the various render backends could
25384 share a common display cache implementation in libgstvaapi.
25385 Try to clean-up the documentation from any stale entry too.
25387 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25391 tests: image: allow creation of images with interleaved patterns.
25392 Add image_generate_full() function to create interleaved color rectangles.
25393 If flags is zero, the whole frame is generated with a unique pattern. If
25394 flags is non-zero, then each field is handled individually.
25396 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25399 tests: image: fix conversion from RGB to YUV.
25400 Fix RGB to YUV conversion to preserve full data range.
25402 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25405 tests: image: try to upload images through vaDeriveImage() too.
25406 On some platforms, vaPutImage() would fail even if it does not involve
25407 color format conversion or scaling, whereas copying raw pixels through
25408 vaDeriveImage() could work instead.
25410 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25413 tests: image: add support for packed YUV formats.
25414 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25416 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25419 tests: image: fix generation of I420/YV12 images.
25420 U/V planes were reversed, thus producing invalid images.
25422 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25425 tests: image: fix string representation for GstVideoFormat.
25427 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25429 * docs/reference/libs/libs-sections.txt:
25430 * gst-libs/gst/vaapi/Makefile.am:
25431 * gst-libs/gst/vaapi/gstvaapiimage.c:
25432 * gst-libs/gst/vaapi/gstvaapiimage.h:
25433 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25434 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25435 * gst-libs/gst/vaapi/gstvaapisurface.c:
25436 image: clean image API up.
25437 Don't expose functions that reference a GstVaapiImageRaw, those are
25438 meant to be internal only for implementing subpictures sync. Also add
25439 a few private definitions to avoid functions calls for retrieving
25440 image size and format information.
25442 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25444 * docs/reference/libs/libs-sections.txt:
25445 * gst-libs/gst/vaapi/gstvaapiimage.c:
25446 * gst-libs/gst/vaapi/gstvaapiimage.h:
25447 image: add gst_vaapi_image_copy() helper.
25448 Add gst_vaapi_image_copy() helper function to copy images of same format
25451 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25453 * gst/vaapi/gstvaapivideoconverter_x11.c:
25454 plugins: handle video cropping in X11 pixmap converter.
25455 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25456 we could decode from the stream.
25458 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25460 * gst/vaapi/Makefile.am:
25461 * gst/vaapi/gstvaapivideobuffer.c:
25462 * gst/vaapi/gstvaapivideoconverter_glx.c:
25463 * gst/vaapi/gstvaapivideoconverter_x11.c:
25464 * gst/vaapi/gstvaapivideoconverter_x11.h:
25465 plugins: add support for "x11-pixmap" video converter type.
25466 Install a new video converter that supports X11 pixmap targets for X11
25467 backends only, or make the GLX converter creation function chain up to
25468 the X11 converter whenever requested.
25470 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25472 * tests/simple-decoder.c:
25473 tests: simple-decoder: add support for pixmap API.
25474 Add support for the new render-to-pixmap API. Avoid flickering on
25475 platforms supporting video overlay by keeping up to 2 intermediate
25478 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25480 * tests/simple-decoder.c:
25481 tests: simple-decoder: add support for video cropping.
25482 Handle video cropping information attached to a VA surface proxy.
25484 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25488 * tests/test-decode.c:
25489 tests: add support for render-to-pixmap.
25490 Add --pixmap option to test-decode so that to allow copies of VA
25491 surface to an intermediate pixmap and rendering from that pixmap.
25492 Only X11 backends are supported for now.
25494 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25497 * gst-libs/gst/vaapi/Makefile.am:
25498 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25499 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25500 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25501 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25502 x11: implement pixmap rendering with RENDER extension.
25503 Use hardware accelerated XRenderComposite() function, from the RENDER
25504 extension, to blit a pixmap to screen. Besides, this can also support
25505 cropping and scaling.
25507 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25509 * docs/reference/libs/libs-docs.xml.in:
25510 * docs/reference/libs/libs-sections.txt:
25511 * gst-libs/gst/vaapi/Makefile.am:
25512 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25513 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25514 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25515 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25516 x11: implement pixmap API.
25517 Implement the new render-to-pixmap API. The only supported pixmap format
25518 that will work is xRGB, with native byte ordering. Others might work but
25519 they were not tested.
25521 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25523 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25524 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25525 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25526 x11: update x11_get_geometry() helper function with depth output.
25527 Allow x11_get_geometry() utility function to also return the depth
25528 assigned to the X drawable.
25530 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25532 * docs/reference/libs/libs-docs.xml.in:
25533 * docs/reference/libs/libs-sections.txt:
25534 * gst-libs/gst/vaapi/Makefile.am:
25535 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25536 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25537 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25538 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25539 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25540 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25541 Add initial Pixmap API.
25542 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25543 render a native pixmap, for completeness. In general, rendering to
25544 pixmap would only be useful to certain VA drivers and use cases on
25545 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25548 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25550 * docs/reference/libs/libs-sections.txt:
25551 * gst-libs/gst/vaapi/gstvaapiimage.c:
25552 * gst-libs/gst/vaapi/gstvaapisurface.c:
25553 * gst-libs/gst/vaapi/video-format.c:
25554 * gst-libs/gst/vaapi/video-format.h:
25555 libs: add and expose gst_vaapi_video_format_to_string() helper.
25556 This is just a wrapper over gst_video_format_to_string() for older
25557 GStreamer 0.10 builds.
25559 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25561 * gst/vaapi/gstvaapipluginutil.c:
25562 plugins: fix display type comparison in gst_vaapi_create_display().
25563 After the code got moved to create the gst_vaapi_create_display() helper,
25564 this comparison was not updated to dereference the newly-created
25565 pointer, so the code was comparing the pointer itself to the type, and
25566 therefore failing to retrieve the VA display.
25567 This fixes the following error (and gets gst-vaapi decoding again):
25568 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25569 https://bugzilla.gnome.org/show_bug.cgi?id=704410
25570 Signed-off-by: Emilio López <emilio@elopez.com.ar>
25572 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25575 Bump version for development.
25577 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25579 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25580 mpeg2: don't output dummy pictures.
25581 Mark dummy pictures as output already so that we don't try to submit
25582 them to the upper layer since this is purely internal / temporary
25583 picture for helping the decoder.
25585 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25587 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25588 decoder: dispose GstVideoCodecFrame earlier.
25589 Once the picture was output, it is no longer necessary to keep an extra
25590 reference to the underlying GstVideoCodecFrame. So, we can release it
25591 earlier, and maybe subsequently release the associate surface proxy
25594 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25600 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25602 * docs/reference/libs/libs-sections.txt:
25603 * gst-libs/gst/vaapi/Makefile.am:
25604 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25605 * gst-libs/gst/vaapi/gstvaapiimage.c:
25606 * gst-libs/gst/vaapi/gstvaapisurface.c:
25607 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25608 * gst-libs/gst/vaapi/video-format.c:
25609 * gst-libs/gst/vaapi/video-format.h:
25610 * gst/vaapi/gstvaapidownload.c:
25611 * gst/vaapi/gstvaapiuploader.c:
25613 * tests/test-display.c:
25614 Fix new video format API.
25615 Fix new internal video format API, based on GstVideoFormat, to not
25616 clobber with system symbols. So replace the gst_video_format_* prefix
25617 with gst_vaapi_video_format_ prefix, even if the format type remains
25620 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25623 Bump library major version.
25624 Bump the library major version due to API/ABI changes that occurred in
25625 the imaging API. In particular, GstVaapiImageFormat type was replaced
25626 with the standard GstVideoFormat type. All dependent APIs were updated
25627 to match this change.
25629 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25634 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25636 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25637 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25638 decoder: fix memory leak when processing interlaced pictures.
25639 Fix memory leak when processing interlaced pictures and that occurs
25640 because the first field, represented as a GstVideoCodecFrame, never
25641 gets released. i.e. when the picture is completed, this is generally
25642 the case when the second field is successfully decoded, we need to
25643 propagate the GstVideoCodecFrame of the first field to the original
25644 GstVideoDecoder so that it could reclaim memory.
25645 Otherwise, we keep accumulating the first fields into GstVideoDecoder
25646 private frames list until the end-of-stream is reached. The frames
25647 are eventually released there, but too late, i.e. too much memory
25648 may have been consumed.
25649 https://bugzilla.gnome.org/show_bug.cgi?id=701257
25651 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25653 * gst/vaapi/gstvaapipluginutil.c:
25654 plugins: simlpify gst_vaapi_create_display() helper.
25655 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25656 performs the necessary validation checks for the underlying VA display
25657 prior to returning to the caller. So, if an error occurred, then NULL is
25658 really returned in that case.
25660 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25662 * gst/vaapi/gstvaapipluginutil.c:
25663 plugins: add gst_vaapi_create_display() helper.
25664 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25665 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25667 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25669 * gst/vaapi/gstvaapivideobufferpool.c:
25670 plugins: don't reallocate pool allocator for the same caps.
25671 If the video buffer pool config doesn't have new caps, then it's not
25672 necessary to reinstantiate the allocator. That could be a costly
25673 operation as we could do some extra heavy checking in there.
25675 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25677 * gst/vaapi/gstvaapivideomemory.c:
25678 plugins: fix ref counting of GstVaapiVideoMemory allocator.
25679 Fix reference counting issue whereby gst_memory_init() does not hold
25680 an extra reference to the GstAllocator. So, there could be situations
25681 where the last instance of GstVaapiVideoAllocator gets released before
25682 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25684 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25686 * gst/vaapi/gstvaapiuploader.c:
25687 vaapiupload: use implicit color conversion to NV12.
25688 Always perform conversion of sources buffers to NV12 since this is
25689 the way we tested for this capability in ensure_allowed_caps(). This
25690 also saves memory bandwidth for further rendering. However, this may
25691 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25693 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25695 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25696 pool: fix deallocation of video pools.
25697 The queue of free objects to used was deallocated with g_queue_free_full().
25698 However, this convenience function shall only be used if the original queue
25699 was allocated with g_queue_new(). This caused memory corruption, eventually
25700 leading to a crash.
25701 The correct solution is to pair the g_queue_init() with the corresponding
25702 g_queue_clear(), while iterating over all free objects to deallocate them.
25704 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
25706 * gst/vaapi/gstvaapidownload.c:
25707 vaapidownload: fix src caps format error.
25708 This fixes direct linking of vaapidownload element to xvimagesink with
25709 VA drivers supporting vaGetImage() from the native VA surface format to
25710 a different VA image format. i.e. color conversion during download.
25711 http://bugzilla.gnome.org/show_bug.cgi?id=703937
25712 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25714 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25716 * gst/vaapi/gstvaapidownload.c:
25717 vaapidownload: fix debug string for image formats.
25718 The image is now expressed as a standard GstVideoFormat, which is not
25719 a FOURCC but rather a regular enum value.
25720 This is a regression introduced in commit 09397fa.
25722 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
25724 * gst-libs/gst/vaapi/gstvaapiimage.c:
25725 image: add support for raw YUY2/UYVY image copies.
25726 Implement raw image copies for YUY2 format. Add support for UYVY format
25727 too, with the same copy function as for YUY2. Even though components
25728 ordering differs, copying line strides is essentially the same.
25729 https://bugzilla.gnome.org/show_bug.cgi?id=703939
25730 https://bugzilla.gnome.org/show_bug.cgi?id=703940
25731 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25733 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25735 * gst/vaapi/gstvaapiuploader.c:
25736 plugins: clean-up video uploader helper.
25737 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25738 were already negotiated beforehand, and they are not used from the
25739 buffer in upstream elements.
25740 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25741 represented as a GstVideoInfo.
25743 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25745 * gst/vaapi/gstvaapiuploader.c:
25746 plugins: use GstVideoInfo in video uploader helper.
25748 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25750 * gst/vaapi/gstvaapivideomemory.c:
25751 plugins: allow creation of VA surfaces with explicit pixel format.
25752 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25753 with an explicit pixel format. This allows for direct rendering to
25754 VA surface memory from a software decoder.
25756 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25758 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25759 surface: fix surface pool creation with an explicit pixel format.
25760 Fix creation of surface pool objects to honour explicit pixel format
25761 specification. If this operation is not supported, then fallback to
25762 the older interface with chroma format.
25764 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25766 * gst-libs/gst/vaapi/gstvaapisurface.c:
25767 surface: try to determine the underlying VA surface format.
25768 If a VA surface was allocated with the chroma-format interface, try to
25769 determine the underlying pixel format on gst_vaapi_surface_get_format(),
25770 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25772 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25774 * docs/reference/libs/libs-sections.txt:
25775 * gst-libs/gst/vaapi/gstvaapisurface.c:
25776 * gst-libs/gst/vaapi/gstvaapisurface.h:
25777 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25778 surface: allow creation with explicit pixel format.
25779 Make it possible to create VA surfaces with a specific pixel format.
25780 This is a new capability brought in by VA-API >= 0.34.0. If that
25781 capability is not built-in (e.g. using VA-API < 0.34.0), then
25782 gst_vaapi_surface_new_with_format() will return NULL.
25784 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25786 * docs/reference/libs/libs-sections.txt:
25787 * gst-libs/gst/vaapi/video-format.c:
25788 * gst-libs/gst/vaapi/video-format.h:
25789 surface: add helper function to get chroma type from GstVideoFormat.
25790 Add gst_video_format_get_chroma_type() helper function to determine
25791 the GstVaapiChromaType from a standard GStreamer video format. It is
25792 possible to reconstruct that from GstVideoFormatInfo but it is much
25793 simpler (and faster?) to use the local GstVideoFormatMap table.
25795 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25797 * gst-libs/gst/vaapi/gstvaapisurface.c:
25798 * gst-libs/gst/vaapi/gstvaapisurface.h:
25799 * gst-libs/gst/vaapi/gstvaapiutils.c:
25800 * gst-libs/gst/vaapi/gstvaapiutils.h:
25801 surface: add new chroma formats.
25802 Add new chroma formats available with VA-API >= 0.34.0. In particular,
25803 this includes "RGB" chroma formats, and more YUV subsampled formats.
25804 Also add a new from_GstVaapiChromaType() helper function to convert
25805 libgstvaapi chroma type to VA chroma format.
25807 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25809 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25810 pool: fix image pool to check for the video format to use.
25811 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25812 image pool object, only if the underlying VA display does support the
25813 requested VA image format.
25815 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25817 * gst-libs/gst/vaapi/gstvaapicontext.c:
25818 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25819 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25820 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25821 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25822 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25823 * gst/vaapi/gstvaapidownload.c:
25824 * gst/vaapi/gstvaapiuploader.c:
25825 * tests/Makefile.am:
25826 * tests/test-surfaces.c:
25827 Use GstVideoInfo for video pools.
25828 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25829 structures instead. Those are smaller, and allows for streamlining
25832 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25834 * gst-libs/gst/vaapi/gstvaapiimage.c:
25835 * gst-libs/gst/vaapi/video-format.c:
25836 Add more video formats.
25837 Add new video format mappings to VA image formats:
25838 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25839 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25841 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25843 * gst-libs/gst/vaapi/gstvaapiimage.c:
25844 image: fix debug message with video format.
25845 Fix debug message string with image format expressed with GstVideoFormat
25846 instead of the obsolete format that turned out to be a fourcc.
25847 This is a regression from git commit e61c5fc.
25849 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25853 * tests/test-display.c:
25854 * tests/test-textures.c:
25855 * tests/test-windows.c:
25856 tests: port to new video format API.
25858 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25860 * gst/vaapi/gstvaapidownload.c:
25861 * gst/vaapi/gstvaapiuploader.c:
25862 * gst/vaapi/gstvaapivideomemory.c:
25863 plugins: port to new video format API.
25865 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25867 * gst-libs/gst/vaapi/gstvaapiimage.c:
25868 libs: use GstVideoInfo wherever possible.
25869 In particular, use gst_video_info_from_caps() helper function in VA image
25870 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
25871 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
25873 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25875 * docs/reference/libs/libs-docs.xml.in:
25876 * docs/reference/libs/libs-sections.txt:
25877 * gst-libs/gst/vaapi/Makefile.am:
25878 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25879 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25880 libs: drop GstVaapiImageFormat helpers.
25881 Drop GstVaapiImageFormat helpers since everything was moved to the new
25882 GstVideoFormat based API. Don't bother with backwards compatibility and
25883 just bump the library major version afterwards.
25885 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25887 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25888 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25889 * gst-libs/gst/vaapi/gstvaapiimage.c:
25890 * gst-libs/gst/vaapi/gstvaapiimage.h:
25891 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25892 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25893 libs: port to new video format API.
25895 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25897 * docs/reference/libs/libs-docs.xml.in:
25898 * docs/reference/libs/libs-sections.txt:
25899 * gst-libs/gst/vaapi/Makefile.am:
25900 * gst-libs/gst/vaapi/video-format.c:
25901 * gst-libs/gst/vaapi/video-format.h:
25902 Add new video format API.
25903 Leverage GstVideoFormat utilities from core GStreamer to provide an
25904 adaptation layer to VA image formats.
25906 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25911 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25913 * gst/vaapi/gstvaapisink.c:
25914 vaapisink: fix creation of GLX texture.
25915 Fix creation of GLX texture, to not depend on the GstCaps video size that
25916 could be wrong, especially in presence of frame cropping. So, use the size
25917 from the source VA surfaces.
25918 An optimization could be to reduce the texture size to the actual visible
25919 size on screen. i.e. scale down the texture size to match the screen dimensions,
25920 while preserving the VA surface aspect ratio. However, some VA drivers don't
25923 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25925 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25926 mpeg2: add support for video cropping.
25927 If the stream has a sequence_display_extenion, then attach the
25928 display_horizontal/display_vertical dimension as the cropping
25929 rectangle width/height to the GstVaapiPicture.
25930 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25932 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25934 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25935 vc1: add support for video cropping.
25936 If the Advanced profile has display_extension fields, then set the display
25937 width/height dimension as cropping rectangle to the GstVaapiPicture.
25938 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25940 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25942 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25943 h264: add support for video cropping.
25944 If the encoded stream has the frame_cropping_flag set, then associate
25945 the cropping rectangle to GstVaapiPicture.
25946 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25948 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25952 * tests/test-decode.c:
25953 * tests/test-subpicture.c:
25954 tests: add basic support for video cropping.
25955 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
25956 instead of a plain GstVaapiSurface. This means that we can now retrieve
25957 the frame cropping rectangle from the surface proxy, along with additional
25958 information if ever needed.
25960 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25962 * gst/vaapi/gstvaapidecode.c:
25963 * gst/vaapi/gstvaapisink.c:
25964 * gst/vaapi/gstvaapivideometa.c:
25965 plugins: add support for video cropping.
25966 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
25967 specific meta information to hold video cropping details. Make the sink
25968 support video cropping in X11 and GLX modes.
25970 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25972 * gst/vaapi/gstvaapivideometa.c:
25973 * gst/vaapi/gstvaapivideometa.h:
25974 plugins: add helper functions to set the render rectangle.
25975 Some video clips may have a clipping region that needs to propogate to
25976 the renderer. These helper functions make it possible to attach that
25977 clipping region, as a GstVaapiRectangle, the the video meta associated
25979 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25980 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25982 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25984 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25985 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
25986 surfaceproxy: allow for NULL cropping rectangle.
25987 Make it possible associate an empty cropping rectangle to the surface
25988 proxy, thus resetting any cropping rectangle that was previously set.
25989 This allows for returning plain NULL when no cropping rectangle was
25990 initially set up to the surface proxy, or if it was reset to defaults.
25992 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25994 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
25995 surfaceproxy: clean-up helper macros.
25996 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
25997 proxy macro argument to a GstVaapiSurfaceProxy pointer.
25999 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26001 * gst-libs/gst/vaapi/gstvaapisurface.c:
26002 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26003 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26004 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26005 surface: add simple surface info accessors as helper macros.
26006 Add helper macros to retrieve the VA surface information like size
26007 (width, height) or chroma type. This is a micro-optimization to avoid
26008 useless function calls and NULL pointer re-checks in internal routines.
26010 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26012 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26013 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26014 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26015 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26016 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26017 decoder: add support for video cropping.
26018 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26019 cropping information from raw bitstreams to each picture being decoded.
26020 Also add helper function to surface proxy to propagate that information
26021 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26022 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26023 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26025 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26027 * ext/codecparsers:
26028 codecparsers: update to gst-vaapi-branch commit f90de0a.
26029 f90de0a h264: fix calculation of the frame cropping rectangle
26030 535515c h264: parse the cropping rectangle separately
26032 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26034 * ext/codecparsers:
26035 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26036 0f68a71 mpeg2: fix video packet header size checks
26038 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26040 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26041 mpeg2: reset quantization matrices on new sequence headers.
26042 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26043 shall be reset to their default values when a Sequence_Header() is
26045 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26047 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26050 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26051 mpeg2: cope with latest codecparser changes.
26052 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26053 used in individual header parsers. Also use the new slice parsing API.
26055 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26057 * ext/codecparsers:
26058 codecparsers: update to gst-vaapi-branch commit dddd182.
26059 dddd182 mpeg2: add slice header parsing API
26060 94e6228 mpeg2: add sequence scalable extension parsing API
26061 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26062 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26064 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26066 * gst/vaapi/gstvaapisink.c:
26067 vaapisink: expose the raw video formats in static caps template.
26068 Expose all raw video formats in the static caps template since the
26069 vaapisink is supporting raw data. We will get the exact set of formats
26070 supported by the driver dynamically through the _get_caps() routine.
26071 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26072 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26073 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26075 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26077 * gst/vaapi/gstvaapisink.c:
26078 * gst/vaapi/gstvaapisink.h:
26079 vaapisink: add "use-glx" property for OpenGL rendering.
26080 Now that VA/GLX capable buffers are generated by default on X11, thus
26081 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26082 rendering since it is faster.
26083 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26084 enabling "fancy" effects to play with. This has no real value. So,
26085 disable OpenGL rendering by default.
26087 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26089 * gst/vaapi/gstvaapipluginutil.c:
26090 plugins: try to allocate a GLX display first over an X11 one.
26091 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26092 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26094 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26096 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26099 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26100 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26101 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26102 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26104 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26106 * gst-libs/gst/vaapi/gstvaapiimage.c:
26107 image: fix wrong check for rect bounds in copy_image().
26109 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26112 Bump version for development.
26114 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26120 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26125 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26128 * gst-libs/gst/codecparsers/Makefile.am:
26129 configure: always build the MPEG-4 parser.
26130 Always build the MPEG-4 parser for now as there are also core fixes
26131 included in the parser that cannot be tested for with API checks.
26133 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26136 configure: add --enable-builtin-codecparsers [default="yes"] option.
26137 Add flag to have all codecparsers built-in, thus ensuring that the
26138 resulting binaries have all the necessary bug fixes and this is what
26139 the QA has been testing anyway.
26140 Of course, for a completely up-to-date Linux distribution, you could
26141 also opt for --disable-builtin-codecparsers and use the system ones.
26142 Though, some core fixes could be missing, and those cannot be tested
26143 for with API checks.
26145 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26147 * ext/codecparsers:
26148 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26149 843ce3e jpeg: fix default Huffman tables generation.
26150 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26151 21099dc mpeg2: actually store video bitrate values
26152 dd02087 mpeg2: fix picture packet extension size check
26153 25948e9 mpeg2: increase min size for picture coding ext
26154 f1f5a40 ensure the debug category is properly initialized
26156 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26158 * debian.upstream/Makefile.am:
26159 debian: fix list of generated files for .deb packaging.
26161 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26164 * debian.upstream/Makefile.am:
26165 * debian.upstream/control.in:
26166 debian: fix libgstvaapi -dev package name.
26167 Fix libgstvaapi -dev package name so that to allow installation of both
26168 GStreamer 0.10 and 1.0.x based packages.
26170 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26175 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26177 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26178 wayland: fix memory leak of display resources.
26180 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26182 * gst/vaapi/gstvaapisink.c:
26183 vaapisink: fix build without VA/GLX support.
26185 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26187 * gst/vaapi/gstvaapivideomemory.c:
26188 * gst/vaapi/gstvaapivideomemory.h:
26189 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26190 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26191 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26192 caller. This is the only sensible enough thing to do in this mode as
26193 the underlying surface pixels need to be extracted through an explicit
26194 call to the gst_video_frame_map() function instead.
26195 A possible use-case of this is to implement a "handoff" signal handler
26196 to fakesink or identity element for further processing.
26198 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26200 * gst/vaapi/gstvaapivideomemory.c:
26201 plugins: silence check for direct-rendering mode in video memory.
26202 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26203 mode support, and not trigger fatal-criticals if either test surface or
26204 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26205 supported by most hardware vs. I420 supported by most software decoders.
26207 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26209 * gst/vaapi/gstvaapivideomemory.c:
26210 plugins: improve video memory flags safety checks.
26211 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26212 support for now. Likewise, on unmap, make sure that the VA image is
26213 unmapped for either read or write, while still committing it to the
26214 VA surface if write was requested.
26216 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26218 * gst-libs/gst/vaapi/gstvaapisurface.c:
26219 surface: fix memory leak through unreleased parent context.
26220 Break the circular references between GstVaapiContext and its children
26221 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26222 context, which holds a reference to its VA surfaces, then none of those
26224 How does this impact support for subpictures?
26225 The only situation when the parent context needs to disappear is when
26226 it is replaced with another one because of a resolution change in the
26227 video stream for instance, or a normal destroy. In this case, it does
26228 not really matter to apply subpictures to the peer surfaces since they
26229 are either gone, or those that are left in the pipe can probably bear
26230 a reinstantiation of the subpictures for it.
26231 So, parent_context is set to NULL when the parent context is destroyed,
26232 other VA surfaces can still get subpictures attached to them, individually
26233 not as a whole. i.e. subpictures for surface S1 will be created from
26234 active composition buffers and associated to S1, subpictures for S2 will
26235 be created from the next active composition buffers, etc. We don't try
26236 to cache the subpictures in those cases (pending surfaces until EOS
26237 is reached, or pending surfaces until new surfaces matching new VA context
26238 get to be used instead).
26240 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26242 * gst/vaapi/gstvaapisink.c:
26243 vaapisink: fix one-time initialization when display property is set.
26244 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26245 tasks even if the `display' property was explicitly set.
26247 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26249 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26250 window: fix GLX window initialization.
26251 Make sure to create the GLX context once the window object has completed
26252 its creation. Since gl_resize() relies on the newly created window size,
26253 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26254 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26255 window object is created in the gst_vaapi_window_glx_new*() functions.
26257 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26259 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26260 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26261 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26262 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26263 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26264 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26265 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26266 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26267 * gst-libs/gst/vaapi/gstvaapitexture.c:
26268 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26269 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26270 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26271 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26272 display: validate display types.
26274 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26276 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26277 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26278 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26279 display: drop internal NAME_PREFIX, store the real display name.
26280 Always store a valid display name/device path, instead of adding a
26281 particular prefix. i.e. make it simply a strdup(), or "" if it was
26284 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26286 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26287 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26288 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26289 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26290 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26291 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26292 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26293 display: make it possible to lookup the display cache by type.
26294 Make it possible to add extra an extra filter to most of display cache
26295 lookup functions so that the GstVaapiDisplay instance can really match
26296 a compatible and existing display by type, instead of relying on extra
26297 string tags (e.g. "X11:" prefix, etc.).
26299 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26301 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26302 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26303 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26304 display: cope with new display cache API.
26306 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26308 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26309 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26310 display: rework display cache API.
26311 Simplify display cache API, while making it more flexible. We can now create
26312 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26314 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26316 * tests/test-display.c:
26317 tests: improve check for display cache.
26318 Improve check for display cache infrastructure. In particular, for X11 and
26319 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26320 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26321 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26322 already exists will have to generate different VA displays.
26324 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26326 * gst/vaapi/gstvaapiuploader.c:
26327 uploader: fix memory leak in GStreamer 0.10 builds.
26328 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26329 but it exhibited a memory leak because the surface generated for the
26330 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26331 possible to release that surface back to the parent pool when the meta
26332 gets released, and the memory consumption kept growing.
26333 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26335 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26337 * gst/vaapi/gstvaapivideometa.c:
26338 plugins: fix gst_vaapi_video_meta_new_from_pool().
26339 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26340 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26341 was hereby totally broken. Fixed this regression by using the newly
26342 provided gst_vaapi_video_pool_get_object_type() function.
26344 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26346 * gst/vaapi/gstvaapiuploader.c:
26347 * gst/vaapi/gstvaapivideomemory.c:
26348 * gst/vaapi/gstvaapivideometa.c:
26349 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26351 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26354 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26356 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26358 * docs/reference/libs/libs-sections.txt:
26359 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26360 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26361 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26362 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26363 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26364 libs: add query for GstVaapiVideoPool object types.
26365 Add API to identify the underlying GstVaapiVideoPool object type.
26367 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26369 * docs/reference/libs/libs-sections.txt:
26370 * gst-libs/gst/vaapi/gstvaapicontext.c:
26371 * gst-libs/gst/vaapi/gstvaapicontext.h:
26372 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26373 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26374 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26375 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26376 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26377 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26378 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26379 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26380 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26381 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26382 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26383 * gst-libs/gst/vaapi/gstvaapiimage.c:
26384 * gst-libs/gst/vaapi/gstvaapiimage.h:
26385 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26386 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26387 * gst-libs/gst/vaapi/gstvaapiobject.c:
26388 * gst-libs/gst/vaapi/gstvaapiobject.h:
26389 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26390 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26391 * gst-libs/gst/vaapi/gstvaapisurface.c:
26392 * gst-libs/gst/vaapi/gstvaapisurface.h:
26393 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26394 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26395 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26396 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26397 * gst-libs/gst/vaapi/gstvaapitexture.c:
26398 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26399 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26400 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26401 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26402 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26403 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26404 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26405 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26406 libs: drop GST_VAAPI_IS_xxx() helper macros.
26407 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26408 deriving from GObject and so those were only checking for whether the
26409 argument was NULL or not. This is now irrelevant, and even confusing
26410 to some extent, because we no longer have type checking.
26411 Note: this incurs more type checking (review) but the libgstvaapi is
26412 rather small, so this is manageable.
26414 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26417 Bump library major version.
26418 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26419 This is a fundamental change that requires a new SONAME. More changes are
26420 underway to streamline the core libraries.
26421 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26422 On one particular test (sintel HD trailer), the total number of executed
26423 instruction was reduced by 8%.
26425 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26427 * docs/reference/libs/Makefile.am:
26428 * docs/reference/libs/libs-docs.xml.in:
26429 * docs/reference/libs/libs-sections.txt:
26430 * docs/reference/libs/libs.core.types:
26431 * docs/reference/libs/libs.glx.types:
26432 * docs/reference/libs/libs.x11.types:
26433 docs: cope with removed APIs.
26434 Some APIs are dead because they are no longer based on GObject.
26436 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26438 * gst/vaapi/gstvaapidecode.c:
26439 * gst/vaapi/gstvaapidownload.c:
26440 * gst/vaapi/gstvaapipluginutil.c:
26441 * gst/vaapi/gstvaapipostproc.c:
26442 * gst/vaapi/gstvaapisink.c:
26443 * gst/vaapi/gstvaapiupload.c:
26444 * gst/vaapi/gstvaapiuploader.c:
26445 * gst/vaapi/gstvaapivideobufferpool.c:
26446 * gst/vaapi/gstvaapivideoconverter_glx.c:
26447 * gst/vaapi/gstvaapivideomemory.c:
26448 * gst/vaapi/gstvaapivideometa.c:
26449 plugins: cope with new GstVaapiMiniObject objects.
26451 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26456 * tests/simple-decoder.c:
26457 * tests/test-decode.c:
26458 * tests/test-display.c:
26459 * tests/test-subpicture.c:
26460 * tests/test-surfaces.c:
26461 * tests/test-textures.c:
26462 * tests/test-windows.c:
26463 tests: cope with new GstVaapiMiniObject objects.
26465 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26467 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26468 display: fix set_synchronous() to lock display.
26470 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26472 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26473 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26474 videopool: simplify creation of video objects pool.
26476 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26478 * gst-libs/gst/vaapi/gstvaapiobject.c:
26479 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26480 * gst-libs/gst/vaapi/gstvaapitypes.h:
26481 libs: simplify GstVaapiID definitions.
26482 Make GstVaapiID a gsize instead of guessing an underlying integer large
26483 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26484 this is plain zero and that it is no longer passed as varargs.
26486 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26488 * gst-libs/gst/vaapi/Makefile.am:
26489 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26490 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26491 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26492 * gst-libs/gst/vaapi/gstvaapivalue.c:
26493 * gst-libs/gst/vaapi/gstvaapivalue.h:
26494 libs: drop obsolete function helpers and objects.
26495 Drop obsolete GstVaapiID related function helpers for passing them as
26498 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26500 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26501 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26502 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26503 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26504 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26505 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26506 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26507 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26508 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26509 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26510 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26511 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26512 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26513 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26514 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26515 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26516 * gst-libs/gst/vaapi/gstvaapiobject.c:
26517 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26518 libs: use GstVaapiMiniObject for display objects.
26520 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26522 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26523 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26524 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26525 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26526 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26527 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26528 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26529 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26530 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26531 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26532 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26533 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26534 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26535 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26536 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26537 libs: use GstVaapiMiniObject for video decoders.
26538 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26539 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26540 helper function to let the user add a callback to a function triggered
26541 whenever the codec state (e.g. caps) changes.
26543 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26545 * docs/reference/libs/libs-sections.txt:
26546 * gst-libs/gst/vaapi/Makefile.am:
26547 * gst-libs/gst/vaapi/gstvaapicontext.c:
26548 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26549 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26550 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26551 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26552 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26553 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26554 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26555 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26556 libs: use GstVaapiMiniObject for video object pools.
26557 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26558 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26559 no longer used for a long time. Make object allocators static, i.e.
26560 local to the shared library.
26562 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26564 * gst-libs/gst/vaapi/gstvaapitexture.c:
26565 * gst-libs/gst/vaapi/gstvaapitexture.h:
26566 libs: use GstVaapiObject for texture objects.
26568 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26570 * gst-libs/gst/vaapi/Makefile.am:
26571 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26572 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26573 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26574 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26575 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26576 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26577 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26578 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26579 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26580 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26581 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26582 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26583 libs: use GstVaapiObject for window objects.
26585 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26587 * gst-libs/gst/vaapi/gstvaapicontext.c:
26588 * gst-libs/gst/vaapi/gstvaapicontext.h:
26589 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26590 * gst-libs/gst/vaapi/gstvaapiimage.c:
26591 * gst-libs/gst/vaapi/gstvaapiimage.h:
26592 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26593 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26594 * gst-libs/gst/vaapi/gstvaapisurface.c:
26595 * gst-libs/gst/vaapi/gstvaapisurface.h:
26596 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26597 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26598 libs: use GstVaapiObject for VA objects.
26600 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26602 * gst-libs/gst/vaapi/Makefile.am:
26603 * gst-libs/gst/vaapi/gstvaapiobject.c:
26604 * gst-libs/gst/vaapi/gstvaapiobject.h:
26605 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26606 Port GstVaapiObject to GstVaapiMiniObject.
26608 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26610 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26611 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26612 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26613 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26614 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26615 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26616 libs: refine GstVaapiMiniObject.
26617 Drop support for user-defined data since this capability was not used
26618 so far and GstVaapiMiniObject represents the smallest reference counted
26619 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26620 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26621 is also possible to further simplify the layout of the object. i.e. merge
26622 GstVaapiMiniObjectBase into GstVaapiMiniObject.
26624 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26626 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26627 decoder: update picture size from the bitstream.
26628 Propagate the picture size from the bitstream to the GstVaapiDecoder,
26629 and subsequent user who installed a signal on notify::caps. This fixes
26630 decoding of TS streams when the demuxer failed to extract the required
26633 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26635 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26636 decoder: fix raw decoding mode.
26637 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26638 surface proxy to the caller.
26640 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26642 * docs/reference/libs/libs-sections.txt:
26643 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26644 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26645 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26646 * gst/vaapi/gstvaapidecode.c:
26647 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26648 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26649 wait for a frame to be decoded, until the specified timeout in microseconds,
26650 prior to returning to the caller.
26651 This is a fix to performance regression from 851cc0, whereby the vaapidecode
26652 loop executed on the srcpad task was called to often, thus starving all CPU
26655 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26658 Bump version for development.
26660 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26666 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26671 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26673 * gst/vaapi/gstvaapidecode.c:
26674 vaapidecode: rework heuristics to detect decode timeout.
26675 Rework heuristics to detect when downstream element ran into errors,
26676 and thus failing to release any VA surface in due time for the current
26677 frame to get decoded. In particular, recalibrate the render time base
26678 when the first frame gets submitted downstream, or when there is no
26679 timestamp that could be inferred.
26681 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26683 * gst-libs/gst/vaapi/gstcompat.h:
26684 * gst/vaapi/gstvaapidecode.c:
26685 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26686 Rework GstVideoDecoder::handle_frame() to decode the current frame,
26687 while possibly waiting for a free surface, and separately submit all
26688 decoded frames from a task. This makes it possible to pop and render
26689 decoded frames as soon as possible.
26691 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26693 * gst/vaapi/gstvaapidecode.c:
26694 * gst/vaapi/gstvaapidownload.c:
26695 * gst/vaapi/gstvaapisink.c:
26696 * gst/vaapi/gstvaapiupload.c:
26697 plugins: use gst_object_unref() wherever applicable.
26698 Use gst_object_unref() wherever applicable, e.g. objects derived from
26699 GstElement, GstVideoPool, etc.
26701 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26703 * docs/reference/plugins/plugins-docs.xml.in:
26704 * docs/reference/plugins/plugins-sections.txt:
26705 * docs/reference/plugins/plugins.types:
26706 docs: drop obsolete plug-ins.
26707 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26708 i.e. vaapiupload and vaapidownload are no longer the recommended
26711 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26713 * debian.upstream/rules:
26714 debian: fix build of GStreamer 0.10 packages.
26715 Fix build of Debian packages to scan the actual GStreamer API version
26716 from the generated changelog file.
26718 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26720 * gst/vaapi/gstvaapipostproc.c:
26721 vaapipostproc: minor clean-ups.
26722 Use g_clear_object() wherever appropriate and remove dead-code.
26724 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26726 * gst/vaapi/gstvaapipostproc.c:
26727 vaapipostproc: fix reference counting buf for passthrough mode.
26728 Fix reference counting bug for passthrough mode, whereby the input buffer
26729 was propagated as is downstream through gst_pad_push() without increasing
26730 its reference count before. The was a problem when gst_pad_push() returns
26731 an error and we further decrease the reference count of the input buffer.
26733 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26735 * gst-libs/gst/vaapi/gstcompat.h:
26736 * gst/vaapi/Makefile.am:
26737 * gst/vaapi/gstvaapi.c:
26738 * gst/vaapi/gstvaapidecode.c:
26739 * gst/vaapi/gstvaapipluginutil.h:
26740 * gst/vaapi/gstvaapipostproc.c:
26741 vaapipostproc: port to GStreamer 1.0.
26742 Add support for interlaced streams with GStreamer 1.0 too. Basically,
26743 this enables vaapipostproc, though it is not auto-plugged yet. We also
26744 make sure to reply to CAPS queries, and happily handle CAPS events.
26746 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26748 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26749 decoder: fix GstVideoCodecFrame flags for interlaced contents.
26750 Fix support for interlaced contents with GStreamer 0.10. In particular,
26751 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26753 This is a regression from commit 87e5717.
26755 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26757 * gst-libs/gst/vaapi/Makefile.am:
26758 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26759 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26760 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26761 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26762 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26763 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26764 structure was only useful to parsing and a proper GstvaapiDecoderFrame
26765 instance will be created instead.
26767 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26769 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26770 decoder: export presentation timestamp for raw decoding mode.
26771 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26772 held any information about the expected presentation timestamp, frame
26773 duration or additional flags like interlaced or top-field-first.
26775 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26777 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26778 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26779 decoder: use new GstVaapiSurfaceProxy utility functions.
26780 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26781 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26782 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26783 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26784 than gst_vaapi_picture_output().
26786 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26788 * docs/reference/libs/libs-sections.txt:
26789 * gst-libs/gst/vaapi/Makefile.am:
26790 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26791 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26792 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26793 surfaceproxy: add more attributes for raw decoding modes.
26794 Add more attributes for raw decoding modes, i.e. directly through the
26795 libgstvaapi helper library. In particular, add presentation timestamp,
26796 duration and a couple of flags (interlaced, TFF, RFF, one-field).
26798 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26800 * docs/reference/libs/libs-sections.txt:
26801 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26802 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26803 * gst/vaapi/gstvaapidecode.c:
26804 * tests/simple-decoder.c:
26805 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26806 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26807 to call some user-provided function when the surface proxy is released.
26809 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26812 * gst-libs/gst/vaapi/Makefile.am:
26813 build: link libgstvaapi-glx-1.0.so against libdl.
26814 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26815 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26817 https://bugzilla.gnome.org/show_bug.cgi?id=698046
26818 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26820 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26822 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26823 decoder: fix gst_vaapi_decoder_get_codec_state().
26824 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26825 supposed to make GstVaapiDecoder own the return GstVideoCodecState
26826 object. Only comment was updated, not the actual code.
26828 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26830 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26831 * gst/vaapi/gstvaapidecode.c:
26832 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26833 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26834 i.e. make the GstVaapiDecoder object own the return state so that callers
26835 that want an extra reference to it would just gst_video_codec_state_ref()
26836 it before usage. This aligns the behaviour with what we had before with
26837 gst_vaapi_decoder_get_caps().
26838 This is an ABI incompatible change, library major version was bumped from
26839 previous release (0.5.2).
26841 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26843 * gst/vaapi/gstvaapivideobufferpool.h:
26844 * gst/vaapi/gstvaapivideoconverter_glx.h:
26845 plugins: mark a few more functions as internal.
26846 Mark the following functions are internal, i.e. private to the vaapi plug-in:
26847 - gst_vaapi_video_buffer_pool_get_type()
26848 - gst_vaapi_video_converter_glx_get_type()
26849 - gst_vaapi_video_converter_glx_new()
26851 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26853 * gst/vaapi/gstvaapivideobuffer.c:
26854 plugins: implement GstSurfaceMeta API.
26855 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
26856 an unstable/deprecated API, this makes it possible to support Clutter
26857 sink with minimal changes. Tested against clutter-gst 1.9.92.
26859 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26861 * gst/vaapi/gstvaapisink.c:
26862 vaapisink: optimize GstVideoOverlayInterface::expose().
26863 When render-mode is "overlay", then it is not really useful to peek into
26864 the GstBaseSink::last_buffer, since we have our own video_buffer already
26865 recorded and maintained into GstVaapiSink.
26867 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26869 * gst/vaapi/gstvaapisink.c:
26870 vaapisink: fix memory leak of GstSample objects.
26871 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
26872 This also fixes extra unreferencing of the underlying GstBuffer in the common
26873 path afterwards (for both 0.10 or 1.0).
26875 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26877 * gst-libs/gst/vaapi/gstcompat.h:
26878 * gst/vaapi/gstvaapi.c:
26879 plugins: fix description for gst-inspect.
26880 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
26881 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
26882 incorrectly uses #name for creating the plug-in name, instead of using macro
26883 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
26885 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26889 Update build requirements for GStreamer 1.0.x support. Add section for
26890 ways to report bugs.
26892 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26897 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26899 * gst-libs/gst/vaapi/Makefile.am:
26900 * gst/vaapi/Makefile.am:
26901 Fix make dist to include all source files, in any case.
26902 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
26903 sure to include all source files in either case while generating source
26906 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26909 Bump library major version.
26910 Bump library major version, while preserving a major version of 0 for
26911 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
26912 0.10 based librarieS.
26914 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26916 * gst/vaapi/gstvaapivideomemory.c:
26917 * gst/vaapi/gstvaapivideomemory.h:
26918 plugins: implement direct-rendering mode for raw YUV buffer uploads.
26919 Allow direct-rendering (writes) into target VA surfaces.
26921 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26923 * gst/vaapi/gstvaapivideobufferpool.c:
26924 * gst/vaapi/gstvaapivideomemory.c:
26925 * gst/vaapi/gstvaapivideomemory.h:
26926 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
26927 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
26928 the last component is unmapped. Downloads are not supported yet. The aim
26929 was to first support SW decoding + HW accelerated rendering (vaapisink).
26932 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26934 * gst/vaapi/gstvaapidecode.c:
26935 vaapidecode: submit all decoded frames before decoding a new one.
26936 Make sure to purge all pending frames that were already decoded prior
26937 to decoding a new one. This helps release VA surfaces as early as
26940 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26942 * gst/vaapi/gstvaapidecode.c:
26943 vaapidecode: reply to CAPS queries.
26944 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
26945 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
26946 This fixes fallback to SW decoding if no HW decoder is available.
26948 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26950 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26951 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26952 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26953 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26954 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26955 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26956 decoder: fix unpaired GstBuffer map/unmaps.
26957 This possibly fixes a few memory leaks along the way.
26959 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26962 * gst-libs/gst/vaapi/gstcompat.h:
26963 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26964 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26965 * gst/vaapi/Makefile.am:
26966 * gst/vaapi/gstvaapi.c:
26967 * gst/vaapi/gstvaapidecode.c:
26968 * gst/vaapi/gstvaapisink.c:
26969 * gst/vaapi/gstvaapisink.h:
26970 * gst/vaapi/gstvaapiuploader.c:
26972 Allow build against either GStreamer API (0.10 or 1.0).
26973 Introduce a new configure option --with-gstreamer-api that determines
26974 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
26975 Also integrate more compatibility glue into gstcompat.h and plugins.
26977 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26979 * gst/vaapi/gstvaapidecode.c:
26980 * gst/vaapi/gstvaapisink.c:
26981 * gst/vaapi/gstvaapisink.h:
26982 plugins: use new video buffer pools.
26983 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
26984 GstBaseSink::propose_allocation() to expose that pool to upstream
26985 elements; and also implement GstVideoDecoder::decide_allocation() to
26986 actually use that pool (from downstream), if any, or create one.
26987 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26989 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26991 * gst/vaapi/Makefile.am:
26992 * gst/vaapi/gstvaapivideobufferpool.c:
26993 * gst/vaapi/gstvaapivideobufferpool.h:
26994 * gst/vaapi/gstvaapivideomemory.c:
26995 * gst/vaapi/gstvaapivideomemory.h:
26996 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
26997 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
26998 object currently holds a reference to GstVaapiVideoMeta.
26999 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27001 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27003 * gst/vaapi/gstvaapivideometa.c:
27004 * gst/vaapi/gstvaapivideometa.h:
27005 plugins: allow copies of GstVaapiVideoMeta objects.
27006 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27007 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27008 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27011 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27013 * gst/vaapi/gstvaapivideometa.c:
27014 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27015 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27016 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27017 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27020 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27022 * gst/vaapi/Makefile.am:
27023 * gst/vaapi/gstvaapi.c:
27024 * gst/vaapi/gstvaapidecode.c:
27025 * gst/vaapi/gstvaapidownload.c:
27026 * gst/vaapi/gstvaapipluginutil.c:
27027 * gst/vaapi/gstvaapipostproc.c:
27028 * gst/vaapi/gstvaapisink.c:
27029 * gst/vaapi/gstvaapiupload.c:
27030 * gst/vaapi/gstvaapiuploader.c:
27031 * gst/vaapi/gstvaapivideobuffer.c:
27032 * gst/vaapi/gstvaapivideoconverter_glx.c:
27033 * gst/vaapi/gstvaapivideometa.c:
27034 * gst/vaapi/gstvaapivideometa.h:
27035 plugins: initial port to GStreamer 1.0.
27036 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27037 is rather minimalistic so that to test the basic functionality.
27038 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27039 needs polishing wrt. to GStreamer 1.x functionality and the former are
27040 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27041 which are yet to be implemented.
27042 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27044 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27046 * gst-libs/gst/vaapi/gstcompat.h:
27049 * tests/simple-decoder.c:
27050 * tests/test-subpicture.c:
27051 tests: add support for GStreamer 1.0.
27053 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27056 * gst-libs/gst/vaapi/gstcompat.h:
27057 * gst-libs/gst/vaapi/gstvaapicontext.c:
27058 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27059 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27060 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27061 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27062 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27063 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27064 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27065 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27066 * gst-libs/gst/vaapi/gstvaapiimage.c:
27067 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27068 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27069 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27070 * gst-libs/gst/vaapi/gstvaapisurface.h:
27071 Add initial support for GStreamer 1.0.
27072 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27073 core decoding library. The changes are kept rather minimal here so that
27074 the library retains as little dependency as possible on core GStreamer
27076 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27078 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27080 * gst/vaapi/gstvaapisink.c:
27081 vaapisink: improve check for raw YUV format mode.
27082 Improve check for raw YUV format modes by avoiding checks against strings
27083 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27084 GstBaseSink::set_caps() is called first and if VA surface format mode is
27085 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27086 called before set_caps(), then we just make a full check. This one is
27087 pretty rare though, e.g. it usually happens once for custom pipelines.
27089 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27091 * gst/vaapi/gstvaapipluginutil.c:
27092 plugins: don't fail if there is no overlay composition to apply.
27093 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27094 was found. i.e. return success (TRUE). This was harmless though extra
27095 debug messages are not nice.
27096 This is a regression introduced by commit 95b8659.
27098 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27100 * gst/vaapi/gstvaapidecode.c:
27101 * gst/vaapi/gstvaapidecode.h:
27102 vaapidecode: expose the exact set of supported HW decoders.
27103 Don't return static caps that don't mean anything for the underlying codecs
27104 that are actually supported for decoding. i.e. always allocate a VA display
27105 and retrieve the exact set of HW decoders available. That VA display may be
27106 re-used later on during negotiation through GstVideoContext "prepare-context".
27107 This fixes fallback to SW decoding if no HW decoder is available.
27109 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27111 * docs/reference/libs/libs-sections.txt:
27112 * gst-libs/gst/vaapi/gstvaapicontext.c:
27113 * gst-libs/gst/vaapi/gstvaapicontext.h:
27114 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27115 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27116 decoder: drop obsolete functions.
27117 Drop the following functions that are now obsolete:
27118 - gst_vaapi_context_get_surface()
27119 - gst_vaapi_context_put_surface()
27120 - gst_vaapi_context_find_surface_by_id()
27121 - gst_vaapi_surface_proxy_new()
27122 - gst_vaapi_surface_proxy_get_context()
27123 - gst_vaapi_surface_proxy_set_context()
27124 - gst_vaapi_surface_proxy_set_surface()
27125 This is an API change.
27127 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27129 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27130 decoder: delegate surface size check to VA context reset.
27131 Now that the surface pool is reference counted in the surface proxy wrapper,
27132 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27133 Besides, this check is already performed in gst_vaapi_context_reset_full().
27135 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27137 * docs/reference/libs/libs-sections.txt:
27138 * gst-libs/gst/vaapi/gstvaapicontext.c:
27139 * gst-libs/gst/vaapi/gstvaapicontext.h:
27140 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27141 * gst-libs/gst/vaapi/gstvaapisurface.h:
27142 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27143 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27144 decoder: simplify acquisition/release of spare surface.
27145 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27146 proxy from the context surface pool. This change also makes sure to retain
27147 the parent surface pool in the proxy.
27148 Besides, it was also totally useless to attach/detach parent context to
27149 VA surface each time we acquire/release it. Since the whole context owns
27150 all associated VA surfaces, we can mark this as such only once and for all.
27152 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27155 Bump version for development.
27157 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27163 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27168 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27170 * gst/vaapi/gstvaapipluginutil.c:
27171 * gst/vaapi/gstvaapisink.c:
27172 plugins: fix usage of gst_vaapi_reply_to_query().
27173 Make gst_vaapi_reply_to_query() first check whether the query argument
27174 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27175 Then, make sure vaapisink propagates the query to the parent class if
27176 it is not a video-context query.
27178 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27180 * gst/vaapi/gstvaapivideobuffer.c:
27181 * gst/vaapi/gstvaapivideobuffer.h:
27182 plugins: streamline video buffers.
27183 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27184 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27185 gst_vaapi_video_buffer_get_meta().
27187 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27189 * docs/reference/libs/libs-sections.txt:
27190 * gst-libs/gst/vaapi/Makefile.am:
27191 * gst/vaapi/Makefile.am:
27192 * gst/vaapi/gstvaapidecode.c:
27193 * gst/vaapi/gstvaapidownload.c:
27194 * gst/vaapi/gstvaapipostproc.c:
27195 * gst/vaapi/gstvaapisink.c:
27196 * gst/vaapi/gstvaapiupload.c:
27197 * gst/vaapi/gstvaapiuploader.c:
27198 * gst/vaapi/gstvaapivideobuffer.h:
27199 * gst/vaapi/gstvaapivideoconverter_glx.c:
27200 * gst/vaapi/gstvaapivideometa.c:
27201 * gst/vaapi/gstvaapivideometa.h:
27202 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27203 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27204 actual plugin elements. That's only useful there. Also inline reference
27205 counting code from GstVaapiMiniObject.
27207 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27209 * gst/vaapi/Makefile.am:
27210 * gst/vaapi/gstvaapidecode.c:
27211 * gst/vaapi/gstvaapidownload.c:
27212 * gst/vaapi/gstvaapipluginbuffer.c:
27213 * gst/vaapi/gstvaapipluginbuffer.h:
27214 * gst/vaapi/gstvaapipostproc.c:
27215 * gst/vaapi/gstvaapiupload.c:
27216 * gst/vaapi/gstvaapiuploader.c:
27217 * gst/vaapi/gstvaapivideobuffer.c:
27218 * gst/vaapi/gstvaapivideobuffer.h:
27219 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27220 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27221 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27223 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27225 * docs/reference/libs/libs-sections.txt:
27226 * docs/reference/libs/libs.core.types:
27227 * gst-libs/gst/vaapi/Makefile.am:
27228 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27229 * gst/vaapi/Makefile.am:
27230 * gst/vaapi/gstvaapidownload.h:
27231 * gst/vaapi/gstvaapipluginbuffer.c:
27232 * gst/vaapi/gstvaapipostproc.h:
27233 * gst/vaapi/gstvaapivideobuffer.c:
27234 * gst/vaapi/gstvaapivideobuffer.h:
27235 * gst/vaapi/gstvaapivideoconverter_glx.h:
27236 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27237 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27238 actual plugin elements. That's only useful there.
27240 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27242 * gst/vaapi/gstvaapipluginutil.c:
27243 * gst/vaapi/gstvaapipluginutil.h:
27244 * gst/vaapi/gstvaapisink.c:
27245 * gst/vaapi/gstvaapivideoconverter_glx.c:
27246 plugins: use common helper function to apply compositions.
27247 Use common gst_vaapi_apply_composition() helper function to apply compositions
27248 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27250 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27252 * gst-libs/gst/vaapi/Makefile.am:
27253 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27254 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27255 * gst/vaapi/Makefile.am:
27256 * gst/vaapi/gstvaapipluginbuffer.c:
27257 * gst/vaapi/gstvaapivideoconverter_glx.c:
27258 * gst/vaapi/gstvaapivideoconverter_glx.h:
27259 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27260 Make sure libgstvaapi core decoding library doesn't include un-needed
27261 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27262 Besides, even if the vaapisink element is not used, we are bound to have
27263 a correctly populated GstSurfaceBuffer from vaapidecode.
27264 Also clean-up the file along the way.
27266 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27268 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27269 vc1: fix use of possibly uninitialized variable.
27270 In decode_codec_data(), force initialization of format to zero so that
27271 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27272 fields, thus making it possible to gracefully fail in this case.
27274 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27276 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27277 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27279 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27281 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27282 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27283 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27284 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27285 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27286 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27287 decoder: sanitize codec-data decoding.
27288 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27289 codec-data in the decoder sub-class. Provide a common shared helper
27290 function to do the actual work and delegating further to the sub-class.
27292 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27294 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27295 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27296 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27297 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27298 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27299 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27300 useless nowadays as creating sub-buffers doesn't bring any value. It
27301 actually means more memory allocations. We can't do without that in
27302 JPEG and MPEG-4:2 decoders.
27304 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27306 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27307 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27308 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27309 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27310 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27311 decoder: sanitize uses of codec frame input buffer (cosmetics).
27312 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27315 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27317 * gst/vaapi/gstvaapisink.c:
27318 vaapisink: add helper function to apply a composition buffer.
27319 Simplify application of a composition buffer to a GstVaapiSurface, and
27320 all its peers, until that function is eventually promoted to libgstvaapi.
27322 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27324 * gst/vaapi/gstvaapisink.c:
27325 vaapisink: fix support for raw YUV buffers.
27326 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27327 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27328 However, we previously assumed in that case that it was a "native" VA buffer,
27329 thus not calling into GstVaapiUploader::process().
27331 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27333 * gst-libs/gst/vaapi/gstcompat.h:
27334 * gst/vaapi/gstvaapidecode.c:
27335 * gst/vaapi/gstvaapidownload.c:
27336 * gst/vaapi/gstvaapipostproc.c:
27337 * gst/vaapi/gstvaapisink.c:
27338 * gst/vaapi/gstvaapiupload.c:
27339 plugins: use modern GstElement metadata information.
27340 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27341 basically is the same as gst_element_class_set_details_simple() in
27342 GStreamer 0.10 context.
27344 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27346 * gst/vaapi/gstvaapidecode.c:
27347 * gst/vaapi/gstvaapidownload.c:
27348 * gst/vaapi/gstvaapipostproc.c:
27349 * gst/vaapi/gstvaapisink.c:
27350 * gst/vaapi/gstvaapiupload.c:
27351 plugins: move up interfaces (cosmetics).
27352 Move GstImplementsInterface and GstVideoContext support functions up
27353 so that to keep a clear separation between the plugin element and its
27356 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27358 * gst/vaapi/gstvaapisink.c:
27359 * gst/vaapi/gstvaapiuploader.c:
27360 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27361 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27362 Also use the newly added gst_vaapi_image_format_from_structure() helper
27363 in GstVaapiUploader::ensure_allowed_caps().
27365 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27367 * gst/vaapi/gstvaapipluginbuffer.c:
27368 plugins: fix creation of video buffer from another source buffer.
27369 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27370 buffer video meta since it would be unreference'd from the get_buffer()
27371 helper function. For other cases, we still use (steal) the newly created
27374 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27376 * gst/vaapi/gstvaapipluginbuffer.c:
27377 * gst/vaapi/gstvaapipluginutil.c:
27378 plugins: include "sysdeps.h" header instead of "config.h".
27380 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27382 * gst-libs/gst/vaapi/gstcompat.h:
27384 tests: modernize GstTypeFind functions.
27385 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27386 exactly correspond to the expected behaviour.
27388 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27392 * tests/test-decode.c:
27393 * tests/test-display.c:
27394 * tests/test-h264.c:
27395 * tests/test-h264.h:
27396 * tests/test-jpeg.c:
27397 * tests/test-jpeg.h:
27398 * tests/test-mpeg2.c:
27399 * tests/test-mpeg2.h:
27400 * tests/test-mpeg4.c:
27401 * tests/test-mpeg4.h:
27402 * tests/test-textures.c:
27403 * tests/test-vc1.c:
27404 * tests/test-vc1.h:
27405 * tests/test-windows.c:
27406 tests: fix license templates.
27408 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27410 * tests/test-display.c:
27411 tests: use gst_vaapi_image_format_from_structure() in test-display.
27412 Use gst_vaapi_image_format_from_structure() helper in test-display and
27413 then extract a VAImageFormat from it instead of relying on GstCaps for
27414 YUV and RGB formats.
27416 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27421 * tests/test-decode.c:
27422 * tests/test-display.c:
27423 * tests/test-subpicture.c:
27424 * tests/test-textures.c:
27425 * tests/test-windows.c:
27426 tests: include "sysdeps.h" header instead of "config.h".
27428 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27430 * gst-libs/gst/vaapi/gstcompat.h:
27431 * gst-libs/gst/vaapi/gstvaapicontext.c:
27432 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27433 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27434 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27435 function with GStreamer 0.10 compatible semantics, or that tries to
27436 approach the current meaning. Basically, this is also just about moving
27437 the helper to gstcompat.h.
27439 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27441 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27442 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27443 image: add gst_vaapi_image_format_from_structure() helper.
27444 Add helper function to convert video formats from a GstStructure to a
27445 plain GstVaapiImageFormat.
27447 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27449 * gst-libs/gst/vaapi/Makefile.am:
27450 * gst-libs/gst/vaapi/gstcompat.h:
27451 * gst-libs/gst/vaapi/sysdeps.h:
27452 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27454 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27456 * gst-libs/gst/vaapi/sysdeps.h:
27457 sysdeps: add more standard includes by default.
27459 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27462 configure: improve GStreamer API version checks.
27464 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27467 * debian.upstream/Makefile.am:
27468 * debian.upstream/changelog.in:
27469 * debian.upstream/control.in:
27470 * debian.upstream/gstreamer-vaapi-doc.install.in:
27471 * debian.upstream/libgstvaapi-dev.install.in:
27472 * debian.upstream/libgstvaapi-drm.install.in:
27473 * debian.upstream/libgstvaapi-glx.install.in:
27474 * debian.upstream/libgstvaapi-wayland.install.in:
27475 * debian.upstream/libgstvaapi-x11.install.in:
27476 * debian.upstream/libgstvaapi.install.in:
27477 * docs/reference/libs/Makefile.am:
27478 * docs/reference/libs/libs-docs.xml.in:
27479 * docs/reference/plugins/Makefile.am:
27480 * docs/reference/plugins/plugins-docs.xml.in:
27481 * gst-libs/gst/vaapi/Makefile.am:
27482 * gst/vaapi/Makefile.am:
27483 * pkgconfig/Makefile.am:
27484 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27485 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27486 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27487 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27488 * pkgconfig/gstreamer-vaapi.pc.in:
27489 * tests/Makefile.am:
27490 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27492 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27495 configure: improve check for H.264 codecparser.
27497 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27499 * gst/vaapi/gstvaapiuploader.c:
27500 vaapiupload: fix illegal write in ensure_image().
27501 Fix ensure_image() to only zero-initialize the first line of each plane.
27502 Properly initializing each plane to their full vertical resolution would
27503 require to actually compute it based on the image format.
27504 In particular, for NV12 images, the UV plane has half vertical resolution
27505 vs. the Y plane. So using the full image height to initialize the UV plane
27506 will obviously lead to a buffer overflow. Likewise for other YUV format.
27507 Since ensure_image() is only a helper function to initialize something,
27508 and not necessarily the whole thing, it is fine to initializ the first
27509 line only. Besides, the target surface is not rendered either.
27510 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27512 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27514 * gst-libs/gst/codecparsers/Makefile.am:
27515 * gst-libs/gst/video/Makefile.am:
27516 build: fix compiling of local GstVideoDecoder and codecparsers.
27517 Generated source files were missing a dependency on the complete set of
27518 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27519 to build and almost every codec parser source depends on parserutils.h.
27520 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27521 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27522 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27524 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27526 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27527 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27528 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27529 there is no pred_weight_table() that was parsed.
27530 This is a workaround for the VA intel-driver on Ivy Bridge.
27532 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27534 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27535 h264: use new profile definitions from codecparsers.
27537 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27539 * ext/codecparsers:
27540 codecparsers: update to gst-vaapi-branch commit 500bc02.
27541 500bc02 h264: add profile enums
27543 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27548 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27550 * ext/codecparsers:
27551 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27552 8957fb7 mpeg2: add helpers to convert quantization matrices
27553 07c4034 mpeg2: store quantization matrices in zigzag scan order
27555 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27557 * tests/simple-decoder.c:
27558 tests: simple-decoder: fix build on older platforms.
27559 Make simple-decoder build and execute correctly on older platforms,
27560 and more precisely older versions of glib.
27562 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27564 * gst-libs/gst/vaapi/glibcompat.h:
27565 glibcompat: add replacement for g_async_queue_timeout_pop().
27566 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27567 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27568 new data to arrive in the queue.
27570 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27572 * gst-libs/gst/vaapi/glibcompat.h:
27573 glibcompat: add replacement for g_cond_wait().
27575 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27577 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27578 mpeg2: fix decoding of 4K videos.
27579 Account for slice_vertical_position_extension when vertical_size > 2800.
27581 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27583 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27584 mpeg2: fix decoding of sequence_end().
27585 There shall be only one place to call decode_current_picture(), and this
27586 is in the end_frame() hook. The EOS unit is processed after end_frame()
27587 so this means we cannot have a valid picture to decode/output at this
27590 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27592 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27593 mpeg2: improve robustness when packets are missing.
27594 Improve robustness when some expected packets where not received yet
27595 or that were not correctly decoded. For example, don't try to decode
27596 a picture if there was no valid sequence or picture headers.
27598 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27600 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27601 decoder: handle decode-only frames in raw API mode.
27602 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27603 surface proxy, i.e. with a valid VA surface. This means that any frame
27604 marked as decode-only is simply skipped.
27606 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27608 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27609 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27610 decoder: allow frames to be dropped.
27611 If the decoder was not able to decode a frame because insufficient
27612 information was available, e.g. missing sequence or picture header,
27613 then allow the frame to be gracefully dropped without generating
27615 It is also possible that a frame is not meant to be displayed but
27616 only used as a reference, so dropping that frame is also a valid
27617 operation since GstVideoDecoder base class has extra references to
27618 that GstVideoCodecFrame that needs to be released.
27620 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27622 * gst/vaapi/gstvaapidecode.c:
27623 vaapidecode: handle decode-only frames.
27624 Decode-only frames may not have a valid surface proxy. So, simply discard
27625 them gracefully, i.e. don't create meta data information. GstVideoDecoder
27626 base class will properly handle this case and won't try to push any buffer
27627 to downstream elements.
27629 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27631 * gst/vaapi/gstvaapidecode.c:
27632 vaapidecode: add support for post-seek semantics reset.
27633 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27634 and the creation of a new VA decoder.
27635 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27637 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27640 Bump version for development.
27642 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27648 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27650 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27651 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27653 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27655 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27656 decoder: fix documentation for GstVaapiDecoderFrame.
27657 Drop superfluous reference to prev_slice member.
27659 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27661 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27662 decoder: assume current frame is complete at end-of-stream.
27663 Assume we got a complete frame when the end-of-stream is reached and that
27664 the current codec frame contains at least one slice data unit.
27666 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27670 * debian.upstream/copyright:
27671 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27672 * gst-libs/gst/vaapi/gstvaapicontext.c:
27673 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27674 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27675 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27676 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27677 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27678 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27679 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27680 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27681 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27682 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27683 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27684 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27685 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27686 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27687 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27688 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27689 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27690 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27691 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27692 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27693 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27694 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27695 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27696 * gst-libs/gst/vaapi/gstvaapisurface.c:
27697 * gst-libs/gst/vaapi/gstvaapiutils.c:
27698 * gst-libs/gst/vaapi/gstvaapiutils.h:
27699 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27700 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27701 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27702 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27703 * gst-libs/gst/vaapi/sysdeps.h:
27704 * gst/vaapi/gstvaapidecode.c:
27705 * gst/vaapi/gstvaapidownload.c:
27706 * gst/vaapi/gstvaapipluginbuffer.c:
27707 * gst/vaapi/gstvaapipluginbuffer.h:
27708 * gst/vaapi/gstvaapipostproc.c:
27709 * gst/vaapi/gstvaapisink.c:
27710 * gst/vaapi/gstvaapiupload.c:
27711 * gst/vaapi/gstvaapiuploader.c:
27713 * tests/test-decode.c:
27714 * tests/test-subpicture.c:
27715 legal: fix year for some copyright notices (2013).
27717 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27719 * gst-libs/gst/vaapi/gstvaapicontext.h:
27720 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27721 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27722 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27723 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27724 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27725 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27726 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27727 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27728 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27729 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27730 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27731 * gst-libs/gst/vaapi/gstvaapisurface.c:
27732 * gst-libs/gst/vaapi/gstvaapisurface.h:
27733 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27734 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27735 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27736 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27737 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27738 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27739 * gst/vaapi/gstvaapidecode.h:
27740 * gst/vaapi/gstvaapisink.h:
27741 * tests/test-subpicture.c:
27742 legal: fix year for some copyright notices (2012).
27744 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27746 * gst-libs/gst/vaapi/gstvaapicompat.h:
27747 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27748 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27749 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27750 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27751 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27752 * gst-libs/gst/vaapi/gstvaapiobject.c:
27753 * gst-libs/gst/vaapi/gstvaapiobject.h:
27754 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27755 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27756 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27757 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27758 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27759 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27760 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27761 * gst-libs/gst/vaapi/gstvaapitexture.c:
27762 * gst-libs/gst/vaapi/gstvaapitexture.h:
27763 * gst-libs/gst/vaapi/gstvaapitypes.h:
27764 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27765 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27766 * gst-libs/gst/vaapi/gstvaapivalue.c:
27767 * gst-libs/gst/vaapi/gstvaapivalue.h:
27768 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27769 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27770 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27771 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27772 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27773 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27774 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27775 * tests/test-display.c:
27776 * tests/test-surfaces.c:
27777 * tests/test-windows.c:
27778 legal: add Intel copyright on modified files.
27780 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27785 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27787 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27788 wayland: use a local event queue to avoid lock contention.
27789 This improves performance when rendering several surfaces from within
27790 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27792 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27794 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27795 wayland: fix thread-safe issues.
27796 The Wayland API is not fully thread-safe and client applications shall
27797 perform locking themselves on key functions. Besides, make sure to
27798 release the lock if the _render() function fails.
27800 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27802 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27803 wayland: really wait until the pending redraw completed.
27804 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27805 the completion of the redraw request. Use it in _render() function to
27806 actually block until the previous draw request is completed.
27808 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27810 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27811 wayland: fix frame_redraw callback.
27812 The redraw callback needs to be attached to the surface prior to the
27813 commit. Otherwise, the callback notifies the next surface repaint,
27814 which is not the desired behaviour. i.e. we want to be notified for
27815 the surface we have just filled.
27816 Another isse was the redraw_pending was reset before the actual completion
27817 of the frame redraw callback function, thus causing concurrency issues.
27818 e.g. the callback could have been called again, but with a NULL buffer.
27820 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27822 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27823 wayland: fix display sharing.
27824 When the Wayland display is shared, we still have to create our own local
27825 shell and compositor objects, since they are not propagated from the cache.
27826 Likewise, we also need to determine the display size or vaapisink would
27827 fail to account for the display aspect ratio, and will try to create a 0x0
27830 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27832 * ext/codecparsers:
27833 codecparsers: update to gst-vaapi-branch commit 21a098e.
27834 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27835 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27837 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27839 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27840 vc1: handle frames with multiple slices.
27842 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27844 * ext/codecparsers:
27845 codecparsers: update to gst-vaapi-branch commit 3fba492.
27846 3fba492 vc1: add API to parse slice headers
27848 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27850 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27851 vc1: handle CLOSED_ENTRY.
27852 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
27853 lack a reference anchor picture, these B pictures shall be discarded.
27854 https://bugs.freedesktop.org/show_bug.cgi?id=59505
27856 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27858 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27859 vc1: cope with latest codecparser changes.
27860 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
27861 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
27862 the actual value of DQPROFILE.
27864 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27866 * ext/codecparsers:
27867 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
27868 3d2c67c vc1: simplify GstVC1VopDquant structure
27870 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27872 * ext/codecparsers:
27873 codecparsers: update to gst-vaapi-branch commit 5d33da8.
27874 5d33da8 vc1: fix bitplanes decoding
27875 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
27876 0b13d2b vc1: fix calculation of ALTPQUANT
27877 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
27879 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27881 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27882 vc1: fix size of encapsulated BDU.
27883 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
27884 the size of the BDU data, starting from offset, i.e. after any start
27886 This fixes a buffer overflow during the unescaping process.
27888 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
27890 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27891 vc1: fix decoding of WMV3 videos in AVI format.
27892 The AVI demuxer (avidemux) does not set a proper "format" attribute
27893 to the generated caps. So, try to recover the video codec format from
27894 the "wmvversion" property instead.
27895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27897 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27899 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27900 vc1: review and report errors accordingly.
27901 Use GST_ERROR() to report real errors instead of hiding them into
27904 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27906 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27907 vc1: don't create GstBuffers for all decoder units.
27908 Don't create temporary GstBuffers for all decoder units, even if they
27909 are lightweight "sub-buffers", since it is not really necessary to keep
27910 the buffer data around.
27912 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27914 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27915 vc1: implement flush() hook.
27916 Make it a simple DPB flush.
27918 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27920 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27921 vc1: implement {start,end}_frame() hooks.
27922 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
27923 that to create new VA context earlier and submit VA pictures to the
27924 HW for decoding as soon as possible. i.e. don't wait for the next
27925 frame to start decoding the previous one.
27927 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27929 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27930 vc1: fix next POC for new sequence layers.
27931 Fix next POC when a new sequence layer is reached. At this point, we
27932 need to reset any previous reference picture, i.e. non B-frame.
27934 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27936 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27937 vc1: port to common GstVaapiDpb interface.
27938 Use GstVaapiDpb interface instead of maintaining our own prev and next
27939 picture pointers. While doing so, try to derive a sensible POC value.
27940 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27942 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27944 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27945 vc1: fix decode_sequence_end() to return success, not EOS.
27947 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27949 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27950 decoder: simplify gst_vaapi_decoder_get_surface().
27951 Avoid extraenous branches, i.e. immediately return with success once we
27952 have a decoded frame available.
27954 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27956 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27957 decoder: optimize and clean decode_step() up.
27958 Avoid usage of goto. Simplify decode_step() process to first accumulate all
27959 pending buffers into the GstAdapter, and then parse and decode units from
27960 that input adapter. Stop the process once a frame is fully decoded or an
27963 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27965 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27966 display: move "vaapi" debug init to libgstvaapi_init_once().
27968 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27971 * gst-libs/gst/vaapi/Makefile.am:
27972 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27973 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
27974 display: dump gstreamer-vaapi version for debugging purposes.
27976 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27978 * tests/Makefile.am:
27979 tests: simple-decoder: fix build with built-in videoutils.
27980 Fix build with built-in videoutils, i.e. when system GStreamer installation
27981 does not know about GstVideoDecoder API.
27983 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27985 * tests/simple-decoder.c:
27986 tests: simple-decoder: flush decoded frames at EOS.
27987 Flush the remaining decoded frames when an end-of-stream is reached.
27989 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27991 * tests/simple-decoder.c:
27992 tests: simple-decoder: drop use of GstVaapiVideoMeta.
27993 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
27994 in libgstvaapi forever. Rather, that'd move to plugin elements at some
27997 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27999 * tests/simple-decoder.c:
28000 tests: simple-decoder: add benchmark mode.
28001 Add --benchmark option to enable benchmark mode where rendering is not
28002 synchronized with presentation timestamps of the decoded surfaces.
28004 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28006 * tests/Makefile.am:
28007 * tests/simple-decoder.c:
28008 tests: simple-decoder: honour framerate from the bitstream.
28009 Try to honour the framerate from the bitstream, or cap the playback to
28012 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28014 * tests/simple-decoder.c:
28015 tests: simple-decoder: set window size to the surface dimensions.
28016 Set the window size to the decoded surface dimensions, if the user has
28017 not requested the application to run in full-screen mode. Besides, no
28018 effort is made to preserve aspect ratio or to center the video within
28021 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28023 * tests/Makefile.am:
28024 * tests/simple-decoder.c:
28025 tests: add simple decoder application.
28026 Add simple decoder application to show off decoding capabilities from
28027 raw bitstreams, for debugging or performance evaluation purposes.
28029 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28031 * tests/Makefile.am:
28034 tests: add codec helper utils.
28035 Add helper functions to determine the codec type from a specific file
28036 or utility functions to convert from codec type to GstCaps or from
28037 codec name to codec type.
28039 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28042 tests: allow fullscreen mode.
28043 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28045 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28047 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28048 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28050 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28052 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28053 h264: handle end-of-stream NALU.
28054 Handle <end-of-stream> NAL unit to actually flush any pending picture
28057 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28059 * gst/vaapi/gstvaapidecode.c:
28060 vaapidecode: handle EOS events.
28061 Flush all decoded frames to downstream when EOS is received. This is
28062 performed by implementing GstVideoDecoder::finish() hook.
28064 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28066 * gst/vaapi/gstvaapidecode.c:
28067 vaapidecode: split gvd_handle_frame() into decode/push frames.
28068 Split GstVideoDecoder::handle_frame() implementation into two functions:
28069 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28070 for purging all decoded frames and submit them downstream.
28072 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28074 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28075 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28076 decoder: add GstVaapiDecoder::flush() hook.
28078 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28080 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28081 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28082 decoder: fix check for end-of-stream in raw API mode.
28083 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28084 if the end-of-stream was already reached at the previous iteration.
28086 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28088 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28089 decoder: make decode_step() return once the frame is decoded.
28090 Make sure we always have a free surface left to use for decoding the
28091 current frame. This means that decode_step() has to return once a frame
28092 gets decoded. If the current adapter contains more buffers with valid
28093 frames, they will get parsed and decoded on subsequent iterations.
28095 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28097 * ext/codecparsers:
28098 codecparsers: update to gst-vaapi-branch commit b47983a.
28099 8840c2d h264: zero-initialize SPS VUI parameters
28101 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28104 Bump version for development.
28106 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28112 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28114 * docs/reference/libs/libs-docs.xml.in:
28115 * docs/reference/libs/libs-sections.txt:
28116 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28117 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28118 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28119 docs: expose new interfaces.
28121 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28126 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28128 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28129 dpb: cosmetics (clean-ups).
28131 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28133 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28134 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28135 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28136 dpb: port to GstVaapiMiniObject.
28138 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28140 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28141 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28142 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28143 dpb: drop GstVaapiDpb2 interface, keep only one class.
28144 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28145 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28146 around the specified picture POC.
28148 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28150 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28151 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28152 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28153 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28154 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28155 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28156 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28158 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28161 Bump version for pre-release.
28163 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28168 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28171 * gst-libs/gst/vaapi/gstvaapicontext.c:
28172 * gst-libs/gst/vaapi/gstvaapiutils.c:
28173 * gst-libs/gst/vaapi/sysdeps.h:
28174 * tests/test-subpicture.c:
28175 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28176 Check for global-alpha support in GstVideoOverlayComposition API.
28177 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28179 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28181 * tests/test-subpicture.c:
28182 tests: add support for global-alpha subpictures.
28183 Add --global-alpha option to test-subpicture.
28185 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28187 * tests/Makefile.am:
28188 * tests/test-subpicture.c:
28189 tests: use GstVideoOverlayComposition API for subpicture test.
28191 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28193 * tests/Makefile.am:
28194 * tests/test-subpicture.c:
28195 tests: use common decoder helpers for subpicture test.
28196 Use common decoder helpers for subpicture test, thus allowing to decode
28197 sample images in an alternate format.
28199 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28201 * tests/Makefile.am:
28204 * tests/test-decode.c:
28205 tests: add decoder helpers.
28207 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28209 * gst-libs/gst/vaapi/gstvaapicontext.c:
28210 overlay: fix ordering of composition layers.
28211 Make sure to maintain the association order of composition layers when
28212 GstVideoOverlayRectangle objects are kept around (cached).
28214 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28216 * gst-libs/gst/vaapi/gstvaapicontext.c:
28217 overlay: fix support for global-alpha.
28218 Fix support for global-alpha subpictures. The previous changes brought
28219 the ability to check for GstVideoOverlayRectangle changes by comparing
28220 the underlying pixel buffer pointers. If sequence number and pixel data
28221 did not change, then this is an indication that only the global-alpha
28222 value changed. Now, try to update the underlying VA subpicture global-alpha
28224 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28226 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28228 * gst-libs/gst/vaapi/gstvaapicontext.c:
28229 overlay: detect render-rect changes.
28230 Don't re-upload VA subpicture if only the render rectangle changed.
28231 Rather deassociate the subpicture and re-associate it with the new
28234 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28236 * gst-libs/gst/vaapi/gstvaapicontext.c:
28237 overlay: fix check for pixels buffer change.
28238 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28239 change. However, when global-alpha is supported, it is possible to re-use
28240 the same GstVideoOverlayRectangle but with a change to the global-alpha
28241 value. This process causes a change of sequence number, so we can no longer
28243 Still, if sequence numbers did not change, then there was no change in
28244 global-alpha either. So, we need a way to compare the underlying GstBuffer
28245 pointers. There is no API to retrieve the original pixels buffer from
28246 a GstVideoOverlayRectangle. So, we use the following heuristics:
28247 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28248 format flags from which the GstVideoOverlayRectangle was created. This
28249 will work if there was no prior consumer of the GstVideoOverlayRectangle
28250 with alternate (non-"native") format flags.
28251 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28252 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28253 with flags that match the subpicture. This is needed to cope with
28254 platforms that don't support global-alpha in HW, so the gst-video
28255 layer takes care of that and fixes this up with a possibly new
28256 GstBuffer, and hence pixels data (or) in-place by caching the current
28257 global-alpha value applied. So we have to determine the rectangle
28258 was previously used, based on what previous flags were used to
28259 retrieve the ARGB pixels buffer.
28261 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28263 * gst-libs/gst/vaapi/gstvaapicontext.c:
28264 overlay: optimize cache at the GstVideoOverlayRectangle level.
28265 We previously assumed that an overlay composition changed if the number
28266 of overlay rectangles in there actually changed, or that the rectangle
28267 was updated, and thus its seqnum was also updated.
28268 Now, we can cope with cases where the GstVideoOverlayComposition grew
28269 by one or a few more overlay rectangles, and the initial overlay rectangles
28272 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28274 * gst-libs/gst/vaapi/gstvaapicontext.c:
28275 overlay: simplify caching of GstVideoOverlayComposition objects.
28276 Create the GPtrArray once in the _init() function and destroy it only
28277 in the _finalize() function. Then use overlay_clear() to remove all
28278 subpicture associations for intermediate updates, don't recreate the
28280 Make GstVaapiOverlayRectangle a reference counted object. Also make
28281 sure that overlay_rectangle_new() actually creates and associates the
28284 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28286 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28287 * gst-libs/gst/vaapi/gstvaapiutils.c:
28288 * gst-libs/gst/vaapi/gstvaapiutils.h:
28289 overlay: add support for global-alpha.
28290 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28291 the same code path could also work for premultiplied-alpha but this
28293 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28295 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28297 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28298 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28299 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28300 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28301 * gst-libs/gst/vaapi/gstvaapisurface.c:
28303 * tests/test-subpicture.c:
28304 subpicture: add support for global-alpha.
28305 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28306 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28307 to address this feature.
28308 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28310 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28312 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28313 * gst-libs/gst/vaapi/gstvaapiutils.c:
28314 * gst-libs/gst/vaapi/gstvaapiutils.h:
28315 subpicture: add premultiplied-alpha and global-alpha feature flags.
28316 Add premultiplied-alpha and global-alpha feature flags, along with converters
28317 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28318 also necessary for GstVideoOverlayComposition API.
28320 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28322 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28323 display: allow image/subpicture formats with additional flags.
28324 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28325 and any additional flags needed. Currently, all flags are set to zero.
28327 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28329 * gst-libs/gst/codecparsers/Makefile.am:
28330 * gst-libs/gst/video/Makefile.am:
28331 * tests/Makefile.am:
28332 libs: fix build of submodule wrappers.
28333 Make sure to build codecparsers/ and videoutils/ sources against the
28334 newly generated headers when out-of-source builds are used.
28336 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28339 configure: fix checks for packages installed in non-standard roots.
28341 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28343 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28344 decoder: fix mini object implementation on 64-bit systems.
28345 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28346 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28347 Only a gsize can hold all bits of a pointer.
28348 Thanks to Ouping Zhang for spotting this error.
28350 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28352 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28353 mpeg2: optimize scan for the end of the frame.
28354 Heuristic: if the second start-code is available, check whether that
28355 one marks the start of a new frame because e.g. this is a sequence
28356 or picture header. This doesn't save much, since we already cache the
28359 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28361 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28362 mpeg2: optimize scan for start codes.
28363 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28364 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28365 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28366 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28367 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28368 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28369 4. xx == 00, yy == 00, zz == 1, we have match!
28370 This algorithm requires to peek bytes from the adapter. This increases the
28371 amount of bytes copied to a temporary buffer, but this process is much faster
28372 than scanning for all the bytes and using shift/masks. So, overall, this is
28375 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28377 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28378 mpeg2: drop useless gst_adapter_peek().
28379 Drop useless gst_adapter_peek() since the returned buffer was not used
28380 and this could incur superfluous memcpy().
28382 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28384 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28385 mpeg2: cosmetics: move parse_slice() down.
28387 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28389 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28390 mpeg2: avoid too many allocations of parser info objects.
28391 Move parsing back to decoding step, but keep functions separate for now.
28392 This is needed for future optimizations that may introduce some meta data
28393 for parsed info attached to codec frames.
28395 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28397 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28398 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28399 decoder: decoder units are no longer dynamically allocated objects.
28401 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28403 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28404 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28405 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28406 decoder: optimize pre-allocation of decoder units.
28407 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28408 memory reallocations. The heuristic used is that we could have around
28409 one slice unit per macroblock line.
28411 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28413 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28414 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28415 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28416 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28417 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28418 decoder: use an array of units instead of a single-linked list.
28419 Use a GArray to hold decoder units in a frame, instead of a single-linked
28420 list. This makes 'append' calls faster, but not that much. At least, this
28421 makes things clearer.
28423 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28425 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28426 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28427 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28428 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28429 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28430 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28431 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28432 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28433 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28434 decoder: refactor decoder unit API.
28435 Allocate decoder unit earlier in the main parse() function and don't
28436 delegate this task to derived classes. The ultimate purpose is to get
28437 rid of dynamic allocation of decoder units.
28439 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28441 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28442 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28443 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28444 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28446 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28448 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28449 h264: introduce parser info instead of H.264 specific decoder unit.
28450 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28451 from GstVaapiDecoderUnit for H.264 specific parser information.
28453 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28455 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28456 h264: set default values for some header fields.
28457 The SPS, PPS and slice headers are not fully zero-initialized in the
28458 codecparsers/ library. Rather, the standard upstream behaviour is to
28459 initialize only certain syntax elements with some inferred values if
28460 they are not present in the bitstream.
28461 At the gstreamer-vaapi decoder level, we need to further initialize
28462 certain syntax elements with some sensible default values so that to
28463 not complicate VA drivers that just pass those verbatim to the HW,
28464 and also avoid an memset() of the whole decoder unit.
28465 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28466 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28468 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28470 * ext/codecparsers:
28471 codecparsers: update to gst-vaapi-rebased commit b47983a.
28472 b47983a h264: add inferred value for slice_beta_offset_div2
28474 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28476 * gst/vaapi/gstvaapidecode.c:
28477 * gst/vaapi/gstvaapidownload.c:
28478 * gst/vaapi/gstvaapipluginbuffer.c:
28479 * gst/vaapi/gstvaapipluginbuffer.h:
28480 * gst/vaapi/gstvaapipostproc.c:
28481 * gst/vaapi/gstvaapisink.c:
28482 * gst/vaapi/gstvaapiupload.c:
28483 * gst/vaapi/gstvaapiuploader.c:
28484 plugins: cope with new GstVaapiVideoMeta API.
28485 Update plugin elements with the new GstVaapiVideoMeta API.
28486 This also fixes support for subpictures/overlay because GstVideoDecoder
28487 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28488 is marked as read-only. However, when comes in the textoverlay element
28489 for example, it checks whether the input buffer is writable. Since that
28490 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28491 does not preserve the parent field, the generated buffer in textoverlay
28492 is not exploitable because we lost all VA specific information.
28493 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28494 all information are preserved through gst_buffer_copy() since the latter
28495 does copy metadata (qdata in this case).
28497 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28499 * gst-libs/gst/vaapi/Makefile.am:
28500 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28501 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28502 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28503 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28504 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28505 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28506 videobuffer: wrap video meta into a surface buffer.
28507 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28508 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28509 expecting a GstSurfaceBuffer like Clutter.
28511 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28513 * gst-libs/gst/vaapi/Makefile.am:
28514 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28515 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28516 videobuffer: add video meta information.
28517 Add new GstVaapiVideoMeta object that holds all information needed to
28518 convey gst-vaapi specific data as a GstBuffer.
28520 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28522 * gst/vaapi/gstvaapidecode.c:
28523 vaapidecode: fix calculation of the time-out value.
28524 Fix calculation of the time-out value for cases where no VA surface is
28525 available for decoding. In this case, we need to wait until downstream
28526 sink consumed at least one surface. The time-out was miscalculated as
28527 it was always set to <current-time> + one second, which is not suitable
28528 for streams with larger gaps.
28530 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28532 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28533 decoder: always use the calculated presentation timestamp.
28534 Use PTS value computed by the decoder, which could also be derived from
28535 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28536 the original one was miscomputed or only represented a DTS instead.
28538 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28540 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28541 h264: don't create sub-buffer for slice data.
28543 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28545 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28546 decoder: create new context when encoded resolution changes.
28547 Create a new VA context if the encoded surface size changes because we
28548 need to keep the underlying surface pool until the last one was released.
28549 Otherwise, either of the following cases could have happened: (i) release
28550 a VA surface to an inexistent pool, or (ii) release VA surface to an
28551 existing surface pool, but with different size.
28553 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28555 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28556 mpeg2: don't create sub-buffer for slice data.
28557 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28558 frame input buffer data. This is possible because the codec frame is valid
28559 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28560 slice data buffer is copied into the VA buffer when it is created.
28562 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28564 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28565 mpeg2: minor clean-ups.
28566 Drop explicit initialization of most fields that are implicitly set to
28567 zero. Remove some useless checks for NULL pointers.
28569 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28571 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28572 mpeg2: optimize scan for the second start code.
28573 Optimize scan for the second start code, on the next parse() call so that
28574 to avoid scanning again earlier bytes where we didn't find any start code.
28576 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28578 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28579 mpeg2: use sequence_display_extension() to compute PAR.
28580 Also compute pixel-aspect-ratio from sequence_display_extension(),
28581 should it exist in the bitstream.
28583 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28585 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28586 mpeg2: handle sequence_display_extension().
28588 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28590 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28591 mpeg2: implement {start,end}_frame() hooks.
28592 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28593 that to create new VA context earlier and submit VA pictures to the
28594 HW for decoding as soon as possible. i.e. don't wait for the next
28595 frame to start decoding the previous one.
28597 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28600 mpeg2: parse slice() header earlier.
28601 Parse slice() header and first macroblock position earlier in _parse()
28602 function instead of waiting for the _decode() stage. This doesn't change
28603 anything but readability.
28605 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28607 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28608 mpeg2: add codec specific decoder unit.
28609 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28610 GstMpegVideoPacket and additional parsed header info. Besides, we now
28611 parse as early as in the _parse() function so that to avoid un-necessary
28612 creation of sub-buffers in _decode() for video packets that are not slices.
28614 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28616 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28617 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28618 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28619 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28620 decoder: introduce lists of units to decode before/after frame.
28621 Theory of operations: all units marked as "slice" are moved to the "units"
28622 list. Since this list only contains slice data units, the prev_slice pointer
28623 was removed. Besides, we now maintain two extra lists of units to be decoded
28624 before or after slice data units.
28625 In particular, all units in the "pre_units" list will be decoded before
28626 GstVaapiDecoder::start_frame() is called and units in the "post_units"
28627 list will be decoded after GstVaapiDecoder::end_frame() is called.
28629 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28631 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28632 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28633 decoder: drop useless checks for codec objects.
28634 Codec objects are used internally only and they are bound to be created
28635 with a valid GstVaapiDecoder object.
28637 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28639 * gst/vaapi/gstvaapidecode.c:
28640 vaapidecode: use GST_ERROR to print error messages.
28642 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28644 * gst/vaapi/gstvaapidecode.c:
28645 vaapidecode: avoid double release of frame on error.
28646 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28647 was already called before and it returned an error. In that case, we were
28648 releasing the frame again, thus leading to a "double-free" condition.
28650 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28657 * gst-libs/gst/Makefile.am:
28658 * gst-libs/gst/vaapi/Makefile.am:
28659 * gst-libs/gst/video/Makefile.am:
28660 * gst/vaapi/Makefile.am:
28661 Add videoutils submodule for GstVideoDecoder APIs.
28663 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28666 configure: check for GstVideoDecoder API.
28667 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28668 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28669 parties may either use upstream git 0.10 branch or backport the necessary support
28670 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28672 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28674 * docs/reference/libs/libs.core.types:
28675 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28676 GstVaapiSurfaceProxy is no longer based on the GType system.
28678 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28680 * docs/reference/libs/libs-sections.txt:
28681 docs: fix entries for GstVaapiSurfaceProxy.
28683 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28688 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28691 * gst-libs/gst/vaapi/Makefile.am:
28692 Bump library major version.
28693 Increase library major so that to cope with API/ABI incompatible changes
28694 since 0.4.x series and avoid user issues.
28696 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28698 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28699 surfaceproxy: minor clean-ups.
28701 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28703 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28704 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28705 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28706 surfaceproxy: drop accessors to obsolete attributes.
28707 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28708 VA surface. i.e. drop any other attribute like timestamp, duration,
28709 interlaced or top-field-first.
28711 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28713 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28714 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28715 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28716 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28717 * gst/vaapi/gstvaapidecode.c:
28718 decoder: maintain decoded frames as GstVideoCodecFrame objects.
28719 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28720 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28721 the strict minimum: a context and a surface.
28723 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28725 * gst/vaapi/gstvaapidecode.c:
28726 vaapidecode: output all decoded frames as soon as possible.
28727 Make sure to push all decoded frames downstream as soon as possible.
28728 This makes sure we don't need to wait for a new frame to be ready to
28729 be decoded before receiving new decoded frames.
28730 This also separates the decode process and the output process. The latter
28731 could be moved to a specific GstTask later on.
28733 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28735 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28736 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28737 decoder: add gst_vaapi_decoder_get_frame() API.
28738 Add new gst_vaapi_decoder_get_frame() function meant to be used with
28739 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28740 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28741 as the user-data object.
28743 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28745 * gst/vaapi/gstvaapipostproc.c:
28746 vaapipostproc: use GstBuffer flags for TFF.
28747 Determine whether the buffer represents the top-field only by checking for
28748 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28749 flag. Also trust "interlaced" caps to determine whether the input frame
28750 is interleaved or not.
28752 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28754 * gst/vaapi/gstvaapipostproc.c:
28755 vaapipostproc: handle video sub-buffers.
28756 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28757 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28759 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28761 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28762 h264: optimize initialization process of decoder units.
28763 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28764 The latter don't require zero-initialization since the codecparsers/ lib
28765 will do so for key variables already. This is not a great value per se but
28766 at least it makes it possible to check whether the default initialization
28767 decisions made in the codecparsers/ lib were right or not.
28768 This can be reverted if this exposes too many issues.
28770 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28772 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28773 h264: minor clean-ups.
28774 Drop explicit initialization of most fields that are implicitly set to
28775 zero. Drop helper macros for casting to GstVaapiPictureH264 or
28776 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28778 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28780 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28781 h264: drop GstVaapiSliceH264 object.
28782 Use standard GstVaapiSlice object from now on since we already have
28783 parsed and recorded the slice headers (GstH264SliceHdr decode units).
28785 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28787 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28788 h264: detect new pictures from decode-units.
28789 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28790 of assuming frame boundaries when first_mb_in_slice is zero.
28792 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28794 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28795 h264: implement {start,end}_frame() hooks.
28796 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28797 that to create new VA context earlier and submit VA pictures to the
28798 HW for decoding as soon as possible. i.e. don't wait for the next
28799 frame to start decoding the previous one.
28801 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28803 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28804 h264: optimize scan for the second start code.
28805 Optimize scan for the second start code, on the next parse() call so that
28806 to avoid scanning again earlier bytes where we didn't find any start code.
28808 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28810 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28811 h264: add codec specific decoder unit.
28812 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28813 NAL unit header (GstH264NalUnit) and additional parsed header info.
28814 Besides, we now parse headers as early as in the _parse() function so
28815 that to avoid un-necessary creation of sub-buffers in _decode() for
28816 NAL units that are not slices.
28817 This is a performance win by ~+1.1% only.
28819 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28821 * gst/vaapi/gstvaapisink.c:
28822 vaapisink: handle sub video-buffers.
28823 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28824 for non raw YUV cases. Make sure vaapisink now understands those buffers.
28826 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28828 * gst/vaapi/gstvaapidecode.c:
28829 vaapidecode: use gst_vaapi_decoder_get_codec_state().
28830 Directly use the GstVideoCodecState associated with the VA decoder
28831 instead of parsing caps again.
28832 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28833 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28835 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28837 * gst/vaapi/gstvaapidecode.c:
28838 vaapidecode: use more standard helpers.
28839 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28842 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28844 * gst/vaapi/gstvaapidecode.c:
28845 * gst/vaapi/gstvaapidecode.h:
28846 vaapidecode: move to GstVideoDecoder base class.
28847 Make vaapidecode derive from the standard GstVideoDecoder base element
28848 class. This simplifies the code to the strict minimum for the decoder
28849 element and makes it easier to port to GStreamer 1.x API.
28850 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28851 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28853 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28855 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28856 jpeg: initial port to new GstVaapiDecoder API
28858 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28860 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28861 vc1: initial port to new GstVaapiDecoder API
28863 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28865 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28866 h264: initial port to new GstVaapiDecoder API
28868 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28870 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28871 mpeg4: initial port to new GstVaapiDecoder API
28873 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28875 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28876 mpeg2: initial port to new GstVaapiDecoder API.
28878 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28880 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28881 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28882 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28883 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28884 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28885 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28886 decoder: use GstVideoCodecState.
28887 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
28888 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
28889 it possible to drop picture size (width, height) information, framerate
28890 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
28891 and interlace mode (is_interlaced field).
28892 This is a new API with backwards compatibility maintained. In particular,
28893 gst_vaapi_decoder_get_caps() is still available.
28894 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28897 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28899 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28900 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28901 * tests/test-decode.c:
28902 * tests/test-subpicture.c:
28903 decoder: update gst_vaapi_decoder_get_surface() semantics.
28904 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
28905 API. That is, return a GstVaapiDecoderStatus and the decoded surface
28906 as a handle to GstVaapiSurfaceProxy in parameter.
28907 This is an API/ABI change.
28909 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28911 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28912 decoder: use standard helper functions.
28913 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
28914 whenever necessary.
28916 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28918 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28919 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28920 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28921 decoder: expose new parse/decode API.
28922 Introduce new decoding process whereby a GstVideoCodecFrame is created
28923 first. Next, input stream buffers are accumulated into a GstAdapter,
28924 that is then passed to the _parse() function. The GstVaapiDecoder object
28925 accumulates all parsed units and when a complete frame or field is
28926 detected, that GstVideoCodecFrame is passed to the _decode() function.
28927 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
28928 process was successful.
28930 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28932 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28933 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28934 decoder: add {start,end}_frame() hooks.
28935 The start_frame() hook is called prior to traversing all decode-units
28936 for decoding. The unit argument represents the first slice in the frame.
28937 Some codecs (e.g. H.264) need to wait for the first slice in order to
28938 determine the actual VA context parameters.
28940 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28942 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28943 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28944 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28945 decoder: add new GstVaapiDecoder API.
28946 Split decoding process into two steps: (i) parse incoming bitstreams
28947 into simple decoder-units until the frame or field is complete; and
28948 (ii) decode the whole frame or field at once.
28949 This is an ABI change.
28951 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28953 * gst-libs/gst/vaapi/Makefile.am:
28954 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28955 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28956 decoder: add new "decoder-frame" object.
28957 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
28958 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
28959 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
28960 as the user-data member element.
28961 This is a libgstvaapi internal object.
28963 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28965 * gst-libs/gst/vaapi/Makefile.am:
28966 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28967 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28968 decoder: add new "decoder-unit" object.
28969 Introduce GstVaapiDecoderUnit which represents a fragment of the source
28970 stream to be decoded. For instance, a decode-unit will be a NAL unit for
28971 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
28973 This is a libgstvaapi internal object.
28975 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28977 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28978 Port GstVaapiFrameStore to GstVaapiMiniObject.
28980 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28982 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28983 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
28984 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28985 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28986 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28987 Port codec objects to GstVaapiMiniObject.
28989 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28991 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28992 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28993 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28994 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28995 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28996 * gst/vaapi/gstvaapidecode.c:
28997 * gst/vaapi/gstvaapipluginbuffer.c:
28998 * tests/test-decode.c:
28999 * tests/test-subpicture.c:
29000 surfaceproxy: port to GstVaapiMiniObject.
29001 GstVaapiSurfaceProxy does not use any particular functionality from
29002 GObject. Actually, it only needs a basic object type with reference
29004 This is an API and ABI change.
29006 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29008 * gst-libs/gst/vaapi/Makefile.am:
29009 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29010 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29011 Add GstVaapiMiniObject.
29012 Introduce a new reference counted object that is very lightweight and
29013 also provides flags and user-data functionalities. Initialization and
29014 finalization times are reduced by up to a factor 5x vs GstMiniObject
29015 from GStreamer 0.10 stack.
29016 This is a libgstvaapi internal object.
29018 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29020 * tests/Makefile.am:
29021 * tests/test-decode.c:
29022 * tests/test-mpeg4.c:
29023 * tests/test-mpeg4.h:
29024 tests: add test for MPEG-4:2 decoding.
29026 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29028 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29029 h264: initialize VA context before allocating the first slice.
29030 Fix decode_slice() to ensure a VA context exists prior to creating a
29031 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29032 context ID. i.e. the latter was not initialized, thus causing failures
29033 on Cedar Trail for example.
29035 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29038 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29039 If GST_PLUGIN_PATH environment variable exists and points to a valid
29040 directory, then use it as the system installation path for gst-vaapi
29042 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29044 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29047 configure: downgrade glib required version to 2.28.
29049 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29051 * gst-libs/gst/vaapi/glibcompat.h:
29052 * gst/vaapi/gstvaapi.c:
29053 libs: fix compatibility with glib 2.28.
29054 Always prefer non deprecated APIs by default and provide compatibility
29055 glue for older glib versions when necessary.
29057 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29059 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29060 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29061 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29062 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29063 libs: use glib >= 2.32 semantics for mutexes.
29064 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29065 and termination. Basically, the new mutex objects can be used as static
29066 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29068 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29070 * gst-libs/gst/vaapi/Makefile.am:
29071 libs: only export gst_vaapi_*() symbols.
29072 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29073 library and the system-provided one, mainly used by videoparses/. Now,
29074 only symbols with the gst_vaapi_* prefix will be exported, if they are
29075 not marked as "hidden" to libgstvaapi.
29077 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29079 * gst/vaapi/gstvaapiuploader.c:
29080 vaapiupload: reset direct-rendering to zero when changing caps.
29081 Make sure to reset direct-rendering flag to zero when caps are changed,
29082 and only derive it to one when the next checks succeed.
29084 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29086 * gst/vaapi/gstvaapiupload.c:
29087 vaapiupload: fix sink caps to report the supported set of YUV caps.
29088 Try to allocate the GstVaapiUploader helper object prior to listing the
29089 supported image formats. Otherwise, only a single generic caps is output
29090 with no particular pixel format referenced in there.
29092 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29094 * gst/vaapi/gstvaapiupload.c:
29095 * gst/vaapi/gstvaapiupload.h:
29096 vaapiupload: use new GstVaapiUploader helper.
29097 Use GstVaapiUploader helper that automatically handles direct rendering
29098 mode, thus making the "direct-rendering" property obsolete and hence it
29100 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29101 really well supported and it could actually trigger degraded performance.
29102 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29104 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29106 * gst/vaapi/gstvaapisink.c:
29107 * gst/vaapi/gstvaapiuploader.c:
29108 * gst/vaapi/gstvaapiuploader.h:
29109 vaapisink: compute and expose the supported set of YUV caps.
29110 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29111 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29112 of supported YUV caps as source (for images). This function actually
29113 tries to zero and upload each image to a 64x64 test surface. Of course,
29114 this relies on VA drivers to not claim success if vaPutImage() is not
29115 correctly supported.
29117 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29120 * gst/vaapi/Makefile.am:
29121 * gst/vaapi/gstvaapisink.c:
29122 * gst/vaapi/gstvaapisink.h:
29123 * gst/vaapi/gstvaapiuploader.c:
29124 * gst/vaapi/gstvaapiuploader.h:
29125 vaapisink: add support for raw YUV buffers.
29126 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29127 It is up to the caller to negotiate source caps (for images) and output
29128 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29129 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29130 GstBuffer on sink pads.
29131 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29132 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29134 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29136 * gst-libs/gst/vaapi/gstvaapiimage.c:
29137 image: fix GstVaapiImage map and unmap.
29138 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29139 structure correctly filled in if the image was already mapped.
29140 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29141 was already unmapped.
29143 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29146 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29147 videobuffer: fix memory leak for surface and image.
29148 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29149 thus resulting on actual memory leak of GstVaapiImage when using them
29150 for downloads/uploads from VA surfaces and more specifically surfaces
29151 when the pipeline is shutdown. i.e. vaTerminate() was never called
29152 because the resources were not unreferenced, and thus not deallocated
29154 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29156 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29161 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29163 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29164 h264: fix picture size in macroblocks.
29165 The picture size signalled by sps->{width,height} is the actual size with
29166 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29167 and pic_height_in_map_units_minus1. VA driver expects that original size,
29169 There is another issue pending: frame cropping information needs to be
29172 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29174 * gst-libs/gst/codecparsers/Makefile.am:
29175 codecparsers: always build parserutils first.
29176 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29177 This is needed since that's the common dependency for actual codec
29178 parsers (gstvc1parser.c for instance).
29180 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29182 * gst-libs/gst/codecparsers/Makefile.am:
29183 codecparsers: always build the VC-1 parser library.
29184 ... this is useful to make sure pixel-aspect-ratio and framerate
29185 information are correctly parsed since we have no means to detect
29186 that at configure time.
29188 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29191 * gst-libs/gst/codecparsers/Makefile.am:
29192 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29193 mpeg2: fix PAR calculation from commit bd11bae.
29194 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29195 correct PAR values. While doing so, require a newer version of the
29196 bitstream parser library.
29197 Note: it may be necessary to also parse the Sequence_Display_Extension()
29199 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29200 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29202 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29204 * gst-libs/gst/vaapi/Makefile.am:
29205 Fix build with the GNU gold linker.
29206 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29207 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29209 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29212 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29213 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29214 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29215 wayland: port to 1.0 version of the protocol.
29216 This patch updates to relect the 1.0 version of the protocol. The main
29217 changes are the switch to wl_registry for global object notifications
29218 and the way that the event queue and file descriptor is processed.
29219 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29221 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29223 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29224 h264: fix incorrect integration of previous commit (4d31e1e).
29225 git am got confused somehow, though the end result doesn't change at
29226 all since we require both SPS and PPS to be parsed prior to decoding
29229 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29231 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29232 h264: start decoding slices after first SPS/PPS activation.
29233 Only start decoding slices when at least one SPS and PPS got activated.
29234 This fixes cases when a source represents a substream of another stream
29235 and no SPS and PPS was inserted before the first slice of the generated
29238 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29240 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29241 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29242 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29243 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29244 16 reference frames, thus including both fields.
29246 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29248 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29249 h264: fix interlaced stream decoding with MMCO.
29250 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29251 is equal to 1, i.e. when memory management control operations are used. In
29252 particular, when field_pic_flag is set to 0, the new reference flags shall
29253 be applied to both fields.
29255 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29257 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29258 h264: add initial support for interlaced streams.
29259 Decoded frames are only output when they are complete, i.e. when both
29260 fields are decoded. This also means that the "interlaced" caps is not
29261 propagated to vaapipostproc or vaapisink elements. Another limitation
29262 is that interlaced bitstreams with MMCO are unlikely to work.
29264 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29266 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29267 h264: split remove_reference_at() into finer units.
29268 Split remove_reference_at() into a function that actually removes the
29269 specified entry from the short-term or long-term reference picture array,
29270 and a function that sets reference flags to the desired value, possibly
29271 zero. The latters marks the picture as "unused for reference".
29273 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29275 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29276 decoder: fix gst_vaapi_picture_new_field() object type.
29277 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29278 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29279 shall generate a GstVaapiPictureH264 object.
29281 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29283 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29284 h264: add picture structure for reference picture marking process.
29285 Introduce new `structure' field to the H.264 specific picture structure
29286 so that to simplify the reference picture marking process. That local
29287 picture structure is derived from the original picture structure, as
29288 defined by the syntax elements field_pic_flag and bottom_field_flag.
29290 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29292 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29293 h264: introduce new frame store structure.
29294 The frame store represents a Decoded Picture Buffer entry, which can
29295 hold up to two fields. So far, the frame store is only used to hold
29298 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29300 * ext/codecparsers:
29301 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29302 73d6aab h264: fix rbsp_more_data() implementation
29303 25d04cf h264: fix error code for invalid size parsed in SPS
29304 84798e5 fix FSF address
29306 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29308 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29309 h264: minor clean-ups.
29310 Move DPB flush up if the current picture to decode is an IDR. Besides,
29311 don't bother to check for IDR pictures in dpb_add() function since an
29312 explicit DPB flush was already performed in this case.
29314 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29316 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29317 h264: simplify reference picture marking process.
29318 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29319 of maintaining them separately. This avoids refs/unrefs while making it
29320 possible to generate the list based on the actual picture structure.
29321 This also ensures that the list of generated ReferenceFrames[] actually
29322 matches what reference frames are available in the DPB. i.e. short_ref[]
29323 and long_ref[] entries are implied from the DPB, so there is no risk of
29324 having "dangling" references.
29326 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29328 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29329 h264: introduce per-field POC in GstVaapiPictureH264.
29330 Use the POC member available in the GstVaapiPicture base class and
29331 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29332 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29333 initialized to INT_MAX, so that to simplify picture POC calculation
29334 for non frame pictures.
29336 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29338 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29339 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29340 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29341 reference bits, thus simplifying the reference picture marking process
29342 to only track a single set of reference flags. Also introduce a new
29343 long_term_frame_idx member.
29345 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29347 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29348 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29350 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29352 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29353 h264: fill in GstVaapiPicture structure.
29354 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29356 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29358 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29359 h264: add vaapi_fill_picture() helper.
29360 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29361 to VAPictureH264 structure. This is preparatory work to get rid of the
29362 local VAPictureH264 member in GstVaapiPictureH264.
29364 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29366 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29367 h264: fix activation order of picture and sequence parameters.
29368 Delay ensure_context() until we actually need a VA context for allocating
29369 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29370 of a new picture parameter set occurs, thus also implying an activation
29371 of the related sequence parameter set.
29372 The most important thing was to drop the global pps and sps pointers since
29373 they may not have matched the currently activated picture parameter or
29374 sequence parameter sets at the specified decode point.
29375 Anoter positive side-effect is that this cleans up all occurrences of
29376 decode_current_picture() to only keep those useful in decode_picture(),
29377 before a new picture is allocated, or in decode_sequence_end() when
29378 an end-of-stream or end-of-sequence condition occurred.
29380 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29382 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29383 h264: fix scaling list generation.
29384 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29385 array was partially copied to the VAIQMatrixBufferH264. While we are
29386 at it, also improve bounds checking and avoid copying 8x8 scaling
29387 lists if transform_8x8_mode_flag is set to 0.
29389 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29391 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29392 h264: fix detection of picture boundaries.
29393 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29394 unit of a primary coded picture.
29396 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29398 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29399 h264: optimize handling of scaling lists.
29400 Don't copy scaling lists twice to an intermediate state. Rather, directly
29401 use the scaling lists from GstH264PPS since they would match those provided
29402 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29403 available in the bitstream.
29405 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29407 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29408 h264: simplify code when MMCO is 5.
29409 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29410 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29411 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29413 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29415 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29416 h264: fix MMCO-based reference picture marking process.
29417 Fix adaptive memory control decoded reference picture marking process
29418 implementation for operations 2 to 6, thus also fixing support for
29419 long-term reference pictures.
29421 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29423 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29424 h264: move MMCO handlers out of the loop (cosmetics).
29425 This change only splits each individual MMCO handler into several functions
29426 dedicated for each operation. This is needed to perform further work later
29429 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29432 debian: fix make dist for packaging.
29433 bzip2 tarballs are now used, so update the deb.upstream dependencies
29434 to include dist-bzip2 instead of plain old dist, and use the correct
29435 tar extract options to handle that format.
29437 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29440 configure: generate bzip2 tarballs in ustar format by default.
29442 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29445 configure: bump glib required version to 2.31.2.
29446 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29447 rather than g_mutex_new() and g_cond_new() respectively.
29449 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29451 * gst/vaapi/gstvaapidecode.c:
29452 * gst/vaapi/gstvaapidecode.h:
29453 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29454 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29455 inside the structure they are locking.
29456 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29457 allocation functions.
29458 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29459 initialise inside the GObject _init function and clear inside the _finalize
29460 which is guaranteed to only be called once and after the object is no longer
29463 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29465 * gst/vaapi/gstvaapidecode.c:
29466 vaapidecode: fix compiler warnings.
29467 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29468 during destruction of the element. Don't print out (uninitialised)
29469 error code when allocation of video buffer failed.
29471 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29473 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29474 h264: add flag to compile with strict DPB ordering mode.
29475 Allow build with strict DPB ordering mode whereby evicted entries
29476 are replaced by the next entries, in order instead of optimizing
29477 it away with the last entry in the DPB.
29478 This is only useful for debugging purpose, against a reference SW
29479 decoder for example.
29481 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29483 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29484 h264: drop extra code covered by built-in codecparsers.
29485 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29486 a newer version of codecparsers/ are used if the system provided one is
29487 now recent enough to have those required extensions.
29489 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29491 * gst-libs/gst/codecparsers/Makefile.am:
29492 codecparsers: fix generation of symlinks.
29493 Try to improve dependencies while generating symlinks to externally
29494 maintained copy of codecparsers (derived from upstream git master
29497 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29499 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29500 vc1: use framerate information from bitstream parser.
29502 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29504 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29505 vc1: use pixel-aspect-ratio from bitstream parser.
29506 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29507 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29509 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29511 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29512 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29513 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29514 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29516 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29519 * gst-libs/gst/codecparsers/Makefile.am:
29520 codecparsers: h264: use submodule sources.
29521 Use newer sources from the codecparsers/ submodule for
29522 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29523 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29525 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29529 * gst-libs/gst/codecparsers/Makefile.am:
29530 * gst-libs/gst/codecparsers/gstjpegparser.c:
29531 * gst-libs/gst/codecparsers/gstjpegparser.h:
29532 * gst-libs/gst/vaapi/Makefile.am:
29533 codecparsers: jpeg: use submodule sources.
29535 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29542 * ext/codecparsers:
29543 Add codecparsers submodule.
29545 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29548 .gitignore: updates.
29550 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29553 autogen: fix check for gtkdocize and autoreconf.
29554 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29555 script would fail to report that correctly because test -z was not passed
29556 any argument (empty string "" in this case).
29558 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29560 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29561 h264: use pixel-aspect-ratio from SPS header.
29562 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29563 from the sequence headers.
29564 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29565 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29567 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29569 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29570 h264: add decode_nalu() helper function.
29571 Split decode_buffer() into the core infrastructure that determines
29572 the NAL units contained in the adapter and the actual function that
29573 decodes the NAL unit.
29575 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29577 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29578 h264: fix end-of-stream conditions (flush).
29579 Decode pending data in the adapter prior to processing the actual
29580 code for end-of-stream.
29582 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29584 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29585 mpeg2: add decode_packet() helper function.
29586 Split decode_buffer() into the core infrastructure that determines
29587 the packets contained in the adapter and the actual function that
29588 decodes the packet data.
29590 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29592 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29593 mpeg2: fix end-of-stream conditions (flush).
29594 Decode pending data in the adapter prior to processing the actual
29595 code for end-of-stream. Initial code from Feng Yuan.
29597 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29600 mpeg2: fix memory leak of empty packets.
29601 Fix memory leakage of empty packets, i.e. packets that only contain
29602 the start code prefix. In particular, free empty user-data packets.
29603 Besides, the codec parser will already fail gracefully if the packet
29604 to parse does not have the minimum required size. So, we can also
29605 completely drop the block of code that used to handle packets of size 4
29606 (including the start code).
29608 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29610 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29611 mpeg2: fix return value for "no-data" conditions.
29612 Fix return value when the second scan for start code fails. This means
29613 there is not enough data to determine the full extents of the current
29614 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29615 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29617 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29619 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29620 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29621 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29622 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29623 or with a size equals to zero. In this case, that buffer is simply
29624 skipped and the function returns TRUE. A NULL buffer argument still
29625 marks the end-of-stream.
29627 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29629 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29630 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29631 decoder: drop unused functions.
29633 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
29635 * gst/vaapi/gstvaapidecode.c:
29636 vaapidecode: flush buffers when receiving EOS.
29637 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29639 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29641 * debian.upstream/Makefile.am:
29642 debian: fix make dist for packaging.
29644 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29646 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29647 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29648 wayland: cosmetics (remove tabs).
29650 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
29652 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29653 wayland: add support for windowed mode.
29654 Rather than always making the surface fullscreen instead implement the
29655 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29656 fullscreen on not depending on that.
29657 Reviewed-by: Joe Konno <joe.konno@intel.com>
29658 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29660 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29663 Bump version for development.
29665 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29669 Fix and document build dependencies better.
29671 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29673 * debian.upstream/control.in:
29674 debian: fix GStreamer build dependencies.
29676 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29679 * debian.upstream/control.in:
29680 debian: fix Wayland build dependencies.
29682 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29684 * debian.upstream/control.in:
29685 debian: fix conditional build of packages.
29686 Make it still possible to build package even if one of the build dependencies
29687 for a specific video backend is not available.
29689 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29691 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29692 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29693 utils: drop unused GLX helpers.
29694 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29695 extensions since they are not used throughout gstreamer-vaapi.
29697 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29699 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29700 utils: fix build with <GL/glext.h> version >= 85.
29701 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29702 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29703 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29704 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29705 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29706 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29707 newer versions of the <GL/glext.h> header.
29709 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29712 configure: update VA-API version requirements.
29713 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29715 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29717 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29718 h264: review and report errors accordingly.
29719 Use GST_ERROR() to report real errors instead of hiding them into
29722 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29724 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29725 h264: exclusively use GstAdapter, drop sub-buffer hack.
29726 Maintaining the sub-buffer is rather suboptimal especially since we
29727 were also maintaining a GstAdapter. Now, we only use the GstAdapter
29728 thus requiring minor extra parsing when receiving avcC buffers.
29730 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29735 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29740 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29742 * debian.upstream/gstreamer-vaapi.install.in:
29743 debian: fix packaging on recent Ubuntu platforms.
29744 Use explicit GStreamer plugins path.
29746 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29748 * docs/reference/libs/libs-docs.xml.in:
29749 * docs/reference/libs/libs.core.types:
29750 docs: fix build for make dist.
29752 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
29754 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29755 wayland: set opaque region for YUV surface.
29756 This allows the compositor to optimize redraws and cull away changes
29757 obscured by the video surface.
29758 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29760 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29763 configure: fix check for libva-glx and libva-drm.
29765 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29767 * gst-libs/gst/vaapi/glibcompat.h:
29768 glibcompat: add replacement for g_cond_wait_until().
29770 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29772 * gst/vaapi/gstvaapidecode.c:
29773 * gst/vaapi/gstvaapidownload.c:
29774 * gst/vaapi/gstvaapipostproc.c:
29775 * gst/vaapi/gstvaapisink.c:
29776 * gst/vaapi/gstvaapiupload.c:
29777 plugins: include "sysdeps.h" instead of "config.h".
29779 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29781 * gst-libs/gst/codecparsers/gstjpegparser.c:
29782 codecparsers: jpeg: add missing includes.
29784 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29786 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29787 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29788 * gst/vaapi/gstvaapidecode.c:
29789 vaapidecode: don't reset decoder if codec type is the same.
29790 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29791 if the underlying codec type actually changed. This makes it possible
29792 to be more tolerant with certain MPEG-2 streams that get parsed to
29793 form caps that are compatible with the previous state but minor changes
29796 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29798 * gst/vaapi/gstvaapidecode.c:
29799 vaapidecode: simplify codec lookup from caps.
29800 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29801 the specified caps. Don't globally expose this function since this is
29802 really trivial and only used in the vaapidecode element.
29804 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29806 * gst/vaapi/gstvaapidecode.c:
29807 * gst/vaapi/gstvaapidecode.h:
29808 vaapidecode: improve "no free surface" conditions.
29809 Previously, vaapidecode would wait up to one second until a free surface
29810 is available, or it aborts decoding. Now, vaapidecode waits until the
29811 last decoded surface was to be presented, plus one second. Besides, end
29812 times are now expressed relative to the monotonic clock.
29814 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29816 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29817 * gst/vaapi/gstvaapidecode.c:
29818 decoder: propagate buffer duration downstream.
29820 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29822 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29823 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29824 surfaceproxy: add "duration" property.
29826 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29828 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29829 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29830 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29831 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29832 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29833 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29834 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29835 decoder: cope with new GstVaapiContextInfo based API.
29836 Update decoders to report the maximum number of reference frames to use.
29838 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29840 * gst-libs/gst/vaapi/gstvaapicontext.c:
29841 context: JPEG codec does not need any reference frame.
29843 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29845 * gst-libs/gst/vaapi/gstvaapicontext.c:
29846 * gst-libs/gst/vaapi/gstvaapicontext.h:
29847 context: allow number of reference frames to be set.
29848 Make it possible to specify the maximum number of references to use within
29849 a single VA context. This helps reducing GPU memory allocations to the useful
29850 number of references to be used.
29852 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29854 * gst/vaapi/gstvaapipostproc.c:
29855 vaapipostproc: fix deinterlace-{mode,method} types definition.
29857 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29859 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29860 mpeg4: fix debug info for unsupported profile.
29862 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29864 * gst-libs/gst/vaapi/gstvaapicontext.c:
29865 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29866 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29867 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29868 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29869 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29870 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29871 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29872 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
29873 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
29874 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29875 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29876 * gst-libs/gst/vaapi/gstvaapiimage.c:
29877 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
29878 * gst-libs/gst/vaapi/gstvaapiobject.c:
29879 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29880 * gst-libs/gst/vaapi/gstvaapisurface.c:
29881 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
29882 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29883 * gst-libs/gst/vaapi/gstvaapitexture.c:
29884 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29885 * gst-libs/gst/vaapi/gstvaapivalue.c:
29886 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29887 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
29888 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29889 * gst-libs/gst/vaapi/gstvaapivideopool.c:
29890 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29891 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
29892 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29893 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29894 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29895 libs: fix build in strict ISO C mode.
29897 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29899 * gst/vaapi/gstvaapi.c:
29900 * gst/vaapi/gstvaapidecode.c:
29901 * gst/vaapi/gstvaapidownload.c:
29902 * gst/vaapi/gstvaapipostproc.c:
29903 * gst/vaapi/gstvaapisink.c:
29904 * gst/vaapi/gstvaapiupload.c:
29905 plugins: fix build in strict ISO C mode.
29907 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29909 * pkgconfig/gstreamer-vaapi-glx.pc.in:
29910 * pkgconfig/gstreamer-vaapi-x11.pc.in:
29911 * pkgconfig/gstreamer-vaapi.pc.in:
29912 pkgconfig: fix dependencies and slightly improve description.
29913 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
29914 descriptions with clearer renderer names.
29916 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
29918 * gst/vaapi/gstvaapidecode.c:
29919 vaapidecode: acquire lock only if the mutex exists.
29920 When playback stops the GstVaapiDecode object is reset into a clean
29921 state. However, surfaces may still be referenced by library users and
29922 unreferencing them after the reset triggers an access to an unset mutex.
29923 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29925 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29927 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29928 decoder: drop extraneous return for void function.
29930 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29932 * gst-libs/gst/vaapi/gstvaapiimage.c:
29933 image: don't use (void *) pointer arithmetic.
29935 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
29937 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29938 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29939 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29940 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29941 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29942 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29943 * gst-libs/gst/vaapi/gstvaapisurface.h:
29944 * gst-libs/gst/vaapi/gstvaapitypes.h:
29945 * gst/vaapi/gstvaapipostproc.h:
29946 Do not forward declare enums.
29947 Forward declaring enums is not allowed by the C standard and aborts
29948 compilation if the header file is included in a C++ project.
29949 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29951 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29954 configure: fix check for VA/DRM API.
29956 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29958 * gst/vaapi/gstvaapisink.c:
29959 vaapisink: fix calculation of window size.
29960 If either dimension is out-of-bounds, then scale window to fit the
29961 display size, even if the output is to be rotated. Use the standard
29962 gst_video_sink_center_rect() function to center and scale the window
29963 wrt. the outer (display) bounds.
29965 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
29967 * gst/vaapi/gstvaapisink.c:
29968 * gst/vaapi/gstvaapisink.h:
29969 vaapisink: add video rotation support.
29970 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29972 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29974 * gst/vaapi/gstvaapipluginutil.h:
29975 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
29976 This macro helps swapping variables while maintaining the correct underlying
29977 and primitive type.
29979 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29981 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29982 display: fix display aspect ratio when display is rotated.
29984 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29987 * gst-libs/gst/vaapi/Makefile.am:
29988 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29989 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
29990 display: fix physical display size when display is rotated.
29992 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29994 * gst-libs/gst/vaapi/gstvaapivalue.c:
29995 display: fix GstVaapiRotation enumeration of values.
29997 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29999 * docs/reference/libs/libs-docs.xml.in:
30000 * docs/reference/libs/libs-sections.txt:
30001 * gst-libs/gst/vaapi/Makefile.am:
30002 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30003 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30004 * gst/vaapi/gstvaapidecode.c:
30005 * gst/vaapi/gstvaapidownload.c:
30006 * gst/vaapi/gstvaapipostproc.c:
30007 * gst/vaapi/gstvaapisink.c:
30008 * gst/vaapi/gstvaapiupload.c:
30009 vaapisink: drop obsolete GstVaapiVideoSink interface.
30010 This interface was deprecated since 0.3.x series when the GstVideoContext
30011 interface was added to the main GStreamer APIs.
30013 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30015 * gst/vaapi/gstvaapisink.c:
30016 * gst/vaapi/gstvaapisink.h:
30017 vaapisink: automatically detect overlay rendering mode.
30018 Retain the VA surface until another surface is to be displayed only
30019 if VA display rendering mode is determined to be "overlay" mode.
30021 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30023 * gst/vaapi/gstvaapisink.c:
30024 * gst/vaapi/gstvaapisink.h:
30025 vaapisink: retain VA surface until another one is displayed.
30026 Keep VA surface proxy associated with the surface that is currently
30027 being displayed. This makes sure that surface is not released back
30028 to the pool of surfaces free to use for decoding. This is necessary
30029 with VA driver implementations that support rendering to an overlay
30030 pipe. Otherwise, there could be cases where we are decoding into a
30031 surface that is being displayed, hence some flickering.
30033 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30035 * gst/vaapi/gstvaapisink.h:
30036 vaapisink: fix build with older toolchains.
30037 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30039 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30041 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30042 display: partially revert 8ebe4d6.
30043 Don't try to fix up the initial values, this could make things worse.
30044 Simply assume the driver does not support the capability in this case.
30046 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30048 * tests/test-display.c:
30049 tests: dump VA display properties.
30051 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30053 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30054 display: fix validation process of properties during discovery.
30055 Some VA drivers (e.g. EMGD) can have completely random values for initial
30056 display attributes. So, try to improve the discovery process to check the
30057 initial display attribute values actually fall within valid bounds. If not,
30058 try to reset those to some sensible values like the default value reported
30059 through vaQueryDisplayAttributes().
30061 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30063 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30064 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30065 display: add color balance properties.
30066 Add support for hue, saturation, brightness and contrast attributes.
30068 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30070 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30071 display: initialize default attribute values.
30072 Ensure the display attribute is actually supported by trying to retrieve
30073 its current value during GstVaapiDisplay creation.
30075 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30077 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30078 display: raise "notify" for property changes.
30080 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30082 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30083 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30084 display: expose display attributes as GObject properties.
30085 Expose VA display "render-mode" and "rotation" attributes as standard
30086 GObject properties.
30088 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30090 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30091 display: install properties in batch.
30092 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30093 It is useful to maintain properties as GParamSpec so that to be able to raise
30094 "notify" signals by id instead of by name in the future.
30096 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30098 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30099 display: fix gst_vaapi_display_has_property().
30100 Append the "render-mode" and "rotation" properties, should they be supported
30101 by the underlying VA driver.
30103 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30105 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30106 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30107 * gst-libs/gst/vaapi/gstvaapitypes.h:
30108 * gst-libs/gst/vaapi/gstvaapiutils.c:
30109 * gst-libs/gst/vaapi/gstvaapiutils.h:
30110 * gst-libs/gst/vaapi/gstvaapivalue.c:
30111 * gst-libs/gst/vaapi/gstvaapivalue.h:
30112 display: add support for rotation modes.
30113 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30115 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30117 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30118 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30119 * gst-libs/gst/vaapi/gstvaapitypes.h:
30120 * gst-libs/gst/vaapi/gstvaapivalue.c:
30121 * gst-libs/gst/vaapi/gstvaapivalue.h:
30122 display: add support for rendering modes.
30123 A rendering mode can be "overlay" or "texture"'ed blit.
30124 The former mode implies that a VA surface used for rendering can't be
30125 re-used right away for decoding, so the sink shall make provisions to
30126 retain the associated surface proxy until the next surface is to be
30128 The latter mode implies that the VA surface is implicitly copied to an
30129 intermediate backing store, or back buffer of a frame buffer, so the
30130 associated surface proxy can be disposed right away.
30132 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30134 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30135 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30136 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30137 display: add initial support for display attributes.
30138 The VA display attributes are mapped to properties so that to maintain the
30139 GStreamer terminology. Properties are to be identified by name, but internal
30140 functions are available to lookup the property by the actual VA display
30143 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30145 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30146 jpeg: fix end-of-image (EOI) handler.
30147 decode_current_picture() was converted to return a gboolean instead
30148 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30149 loop as expected, or could cause an error instead.
30150 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30152 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30154 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30155 mpeg2: include start code into VA slice data buffer.
30156 Integrate the start code prefix in the slice data buffer that is submitted
30157 to the hardware. VA-API specifies that slice_data_offset is the offset to
30158 the first byte of slice data. And, for MPEG-2, slice() data begins with
30159 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30161 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30164 autogen: fix configure script generation when srcdir != builddir.
30165 This patch allows for regenerating the configure script from a build
30166 directory that is not the actual source directory.
30167 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30169 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30172 configure: use new libtool syntax.
30173 This now requires libtool >= 2.2 to regenerate the configure script.
30174 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30176 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30178 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30179 decoder: use g_object_notify_by_pspec().
30180 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30181 avoid a property name lookup. i.e. this makes notifications faster to
30182 the `vaapidecode' element.
30183 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30185 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30187 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30188 wayland: handle de-interlacing flags.
30189 VA/Wayland API was updated to allow flags for bob deinterlacing.
30190 More elaborated filters will require a complete VA/VPP pipeline.
30192 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30194 * gst-libs/gst/codecparsers/gstjpegparser.c:
30195 jpeg: fix default quantization tables.
30196 Two elements in the luminance quantization table were wrong. So,
30197 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30198 in zig-zag order from the standard ones (Tables K.1 and K.2).
30200 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30202 * gst-libs/gst/codecparsers/gstjpegparser.c:
30203 jpeg: compute default Huffman tables.
30204 ... instead of having them pre-calculated. This saves around 1.5 KB
30205 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30206 to do more work. Though, the client application may have to call that
30207 function at most once, only.
30209 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30211 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30212 display: drop VAProfileNone entries from debug messages.
30214 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30216 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30217 display: query for supported display attributes.
30218 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30220 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30222 * gst-libs/gst/vaapi/gstvaapiutils.c:
30223 * gst-libs/gst/vaapi/gstvaapiutils.h:
30224 utils: add string_of_VADisplayAttributeType() helper.
30225 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30227 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30229 * gst/vaapi/gstvaapisink.c:
30230 vaapisink: handle VA/DRM API.
30231 This is not useful in practice but for raw performance evaluation when
30232 the sink is invoked with display=drm sync=false. fakesink could also be
30235 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30237 * gst/vaapi/Makefile.am:
30238 * gst/vaapi/gstvaapipluginutil.c:
30239 plugins: add support for headless pipelines.
30241 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30243 * tests/Makefile.am:
30245 * tests/test-display.c:
30246 * tests/test-windows.c:
30247 tests: add support for headless decoding.
30249 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30253 * debian.upstream/Makefile.am:
30254 * debian.upstream/control.in:
30255 * debian.upstream/libgstvaapi-drm.install.in:
30256 * gst-libs/gst/vaapi/Makefile.am:
30257 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30258 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30259 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30260 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30261 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30262 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30263 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30264 * pkgconfig/Makefile.am:
30265 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30266 Add initial support for VA/DRM.
30268 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30271 * gst-libs/gst/vaapi/Makefile.am:
30272 Fix build without X11 (again).
30273 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30274 files list wrt. x11, glx and wayland backends.
30276 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30279 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30280 * gst-libs/gst/vaapi/gstvaapicompat.h:
30281 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30282 jpeg: update to the latest VA-API changes (0.32.1+).
30284 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30286 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30287 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30288 * gst/vaapi/gstvaapisink.c:
30289 wayland: implement display ::get_size*() hooks.
30291 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30293 * gst/vaapi/gstvaapipluginutil.c:
30294 plugins: prefer X11 rendering over GLX.
30295 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30296 for rendering instead of texturing.
30298 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30300 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30301 wayland: use scale fullscreen method.
30302 This makes the compositor scale the surface to fit and preserves aspect
30304 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30306 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30308 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30309 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30310 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30312 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30314 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30315 wayland: fix double disconnect of display.
30317 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30319 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30320 wayland: mangle display name for cache lookups.
30322 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30325 * debian.upstream/Makefile.am:
30326 * debian.upstream/control.in:
30327 * debian.upstream/libgstvaapi-wayland.install.in:
30328 * pkgconfig/Makefile.am:
30329 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30330 wayland: add packaging files.
30332 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30334 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30335 * gst/vaapi/gstvaapipluginutil.c:
30336 * gst/vaapi/gstvaapisink.c:
30337 * pkgconfig/Makefile.am:
30338 Fix build without X11.
30340 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30342 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30343 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30344 * gst/vaapi/Makefile.am:
30345 * gst/vaapi/gstvaapipluginutil.c:
30346 * gst/vaapi/gstvaapisink.c:
30347 plugins: add support for Wayland.
30349 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30351 * tests/Makefile.am:
30353 * tests/test-display.c:
30354 * tests/test-windows.c:
30355 tests: add support for Wayland.
30357 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30361 * gst-libs/gst/vaapi/Makefile.am:
30362 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30363 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30364 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30365 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30366 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30367 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30368 Add initial support for VA/Wayland.
30369 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30371 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30373 * gst/vaapi/gstvaapipluginbuffer.c:
30374 plugins: fix creation of video buffer from surface proxy.
30375 Fix a regression introduced with commit 8ef490a.
30377 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30379 * gst/vaapi/gstvaapipluginbuffer.c:
30380 * gst/vaapi/gstvaapipluginutil.c:
30381 plugins: use new display types more.
30382 In particular, simplify gst_vaapi_reply_to_query() with display types.
30383 Likewise for creating new video buffers.
30385 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30387 * gst/vaapi/gstvaapidecode.c:
30388 * gst/vaapi/gstvaapidownload.c:
30389 * gst/vaapi/gstvaapipluginutil.c:
30390 * gst/vaapi/gstvaapipluginutil.h:
30391 * gst/vaapi/gstvaapipostproc.c:
30392 * gst/vaapi/gstvaapisink.c:
30393 * gst/vaapi/gstvaapiupload.c:
30394 plugins: fix display type selection and propagation.
30395 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30396 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30397 queries from vaapidecode shall get a valid answer from vaapisink.
30399 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30401 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30402 display: fix destruction of mutex.
30404 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30406 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30407 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30408 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30409 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30410 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30411 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30412 * gst/vaapi/gstvaapipluginutil.c:
30413 * gst/vaapi/gstvaapipluginutil.h:
30414 * gst/vaapi/gstvaapisink.c:
30415 display: add display types.
30416 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30417 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30418 type to "any", and add a "display-type" attribute.
30420 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30422 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30423 display: use prefixed display names for cache lookups.
30424 This improves display name comparisons by always allocating a valid display
30425 name. This also helps to disambiguate lookups by name in the global display
30426 cache, should a new backend be implemented.
30428 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30430 * gst/vaapi/gstvaapipluginutil.h:
30431 plugins: declare helper functions as internal.
30433 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30435 * docs/reference/libs/libs-sections.txt:
30436 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30437 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30438 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30439 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30440 * gst/vaapi/Makefile.am:
30441 * gst/vaapi/gstvaapidecode.c:
30442 * gst/vaapi/gstvaapidownload.c:
30443 * gst/vaapi/gstvaapipluginbuffer.c:
30444 * gst/vaapi/gstvaapipluginbuffer.h:
30445 * gst/vaapi/gstvaapipostproc.c:
30446 * gst/vaapi/gstvaapiupload.c:
30447 videobuffer: drop deprecated functions.
30448 Move video buffer creation routines to plugin elements. That exclusively
30449 uses *_typed_new*() variants.
30451 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30453 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30454 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30455 videobuffer: mark video buffer creation routines as deprecated.
30456 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30457 plugin elements. So deprecate any explicit creation routines that are not the
30458 new *_typed_new*() variants.
30460 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30462 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30463 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30464 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30465 videobuffer: factor out base and GLX implementations.
30466 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30467 This avoids duplication of code, and makes it possible to further implement
30468 generic video buffer creation routines that automatically map to base or GLX
30471 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30473 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30474 utils: fix gl_create_context() with parent context set.
30475 If GLX window was created from a foreign Display, then that same Display shall
30476 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30477 will now use the same Display that the parent, if available.
30478 This fixes cluttersink with the Intel GenX VA driver.
30480 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30482 * gst/vaapi/gstvaapidecode.c:
30483 * gst/vaapi/gstvaapidownload.c:
30484 * gst/vaapi/gstvaapipluginutil.c:
30485 * gst/vaapi/gstvaapipluginutil.h:
30486 * gst/vaapi/gstvaapipostproc.c:
30487 * gst/vaapi/gstvaapisink.c:
30488 * gst/vaapi/gstvaapiupload.c:
30489 pluginutils: improve automatic display type selection.
30491 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30493 * gst/vaapi/gstvaapipluginutil.c:
30494 * gst/vaapi/gstvaapipluginutil.h:
30495 pluginutils: cosmetics (indentation fixes).
30497 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30500 configure: simplify video outputs summary.
30502 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30505 * gst/vaapi/gstvaapipluginutil.c:
30506 * gst/vaapi/gstvaapipluginutil.h:
30507 * gst/vaapi/gstvaapisink.c:
30508 * gst/vaapi/gstvaapisink.h:
30509 configure: drop check for --enable-vaapisink-glx.
30510 vaapisink is now built with support for multiple display types, whenever
30511 they are enabled. The new "display" attribute is used to select a particular
30514 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30517 * gst-libs/gst/vaapi/gstvaapicompat.h:
30518 * gst/vaapi/Makefile.am:
30519 * gst/vaapi/gstvaapidecode.c:
30520 * gst/vaapi/gstvaapidownload.c:
30521 * gst/vaapi/gstvaapipluginutil.c:
30522 * gst/vaapi/gstvaapipostproc.c:
30523 * gst/vaapi/gstvaapiupload.c:
30524 * tests/test-display.c:
30525 configure: drop check for --enable-vaapi-glx.
30526 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30527 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30528 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30529 we now default to use TFP+FBO.
30530 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30531 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30532 API shall be used as it covers most usages. e.g. AMD driver can't render to
30535 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30538 tests: allow GLX output, if available and selected.
30540 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30542 * tests/Makefile.am:
30545 * tests/test-decode.c:
30546 * tests/test-subpicture.c:
30547 * tests/test-surfaces.c:
30548 tests: use common display and window creation routines.
30549 Add new --output option to select the renderer. Use --list-outputs to
30550 print a list of supported renderers.
30552 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30554 * tests/Makefile.am:
30555 tests: move encoded bitstreams to libutils.la.
30557 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30559 * tests/Makefile.am:
30560 tests: build convenience library for common utilities.
30562 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30564 * tests/Makefile.am:
30565 * tests/test-display.c:
30566 tests: simplify build with various display options.
30568 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30571 configure: improve checks for X11.
30573 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30575 * tests/Makefile.am:
30576 configure: fix previous commit for GLX deps.
30578 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30581 * gst-libs/gst/vaapi/Makefile.am:
30582 configure: improve checks for GLX.
30584 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30587 * gst-libs/gst/vaapi/gstvaapicompat.h:
30588 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30589 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30590 * gst-libs/gst/vaapi/gstvaapiutils.h:
30591 Drop support for obsolete VA-API versions < 0.30.4.
30593 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30596 * gst-libs/gst/Makefile.am:
30597 * gst-libs/gst/gstutils_version.h.in:
30598 * gst/vaapi/gstvaapisink.c:
30599 vaapisink: drop checks for new APIs used by default.
30600 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30601 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30602 are no longer necessary.
30604 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30607 configure: cosmetics and some minor changes.
30608 - Better grouping of feature checks
30609 - Sort list of config files to generate
30611 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30614 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30615 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30616 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30617 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30618 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30619 * gst-libs/gst/vaapi/gstvaapiutils.h:
30620 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30621 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30622 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30624 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30626 * gst-libs/gst/vaapi/Makefile.am:
30627 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30628 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30629 Drop obsolete GstVaapiTSB.
30630 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30632 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30634 * docs/reference/libs/libs-sections.txt:
30635 docs: add missing entries for the JPEG decoder.
30637 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30640 * gst-libs/gst/vaapi/Makefile.am:
30641 * gst/vaapi/gstvaapidecode.c:
30642 * tests/test-decode.c:
30643 * tests/test-subpicture.c:
30644 Drop all references to USE_CODEC_PARSERS.
30646 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30650 * docs/reference/libs/libs-sections.txt:
30651 * docs/reference/libs/libs.core.types:
30652 * gst-libs/gst/vaapi/Makefile.am:
30653 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30654 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30655 * gst/vaapi/gstvaapidecode.c:
30656 * gst/vaapi/gstvaapidecode.h:
30657 * tests/test-decode.c:
30658 * tests/test-subpicture.c:
30659 Drop FFmpeg-based decoders.
30660 GStreamer codecparsers-based decoders are the only supported decoders now.
30661 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30663 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
30666 * debian.upstream/control.in:
30667 configure: bump glib required version to 2.28.
30668 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30670 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
30672 * gst/vaapi/gstvaapidecode.h:
30673 * gst/vaapi/gstvaapidownload.h:
30674 * gst/vaapi/gstvaapipostproc.h:
30675 * gst/vaapi/gstvaapisink.h:
30676 * gst/vaapi/gstvaapiupload.h:
30677 plugins: declare _get_type() functions as const.
30678 Declaring a function as const enables better optimization of calls to
30680 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30682 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
30684 * gst/vaapi/gstvaapidecode.c:
30685 * gst/vaapi/gstvaapidownload.c:
30686 * gst/vaapi/gstvaapipostproc.c:
30687 * gst/vaapi/gstvaapisink.c:
30688 * gst/vaapi/gstvaapiupload.c:
30689 plugins: use g_clear_object() wherever applicable.
30690 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30692 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
30694 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30695 * gst-libs/gst/vaapi/gstvaapicontext.h:
30696 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30697 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30698 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30699 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30700 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30701 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30702 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30703 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30704 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30705 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30706 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30707 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30708 * gst-libs/gst/vaapi/gstvaapiimage.h:
30709 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30710 * gst-libs/gst/vaapi/gstvaapiobject.h:
30711 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30712 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30713 * gst-libs/gst/vaapi/gstvaapisurface.h:
30714 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30715 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30716 * gst-libs/gst/vaapi/gstvaapitexture.h:
30717 * gst-libs/gst/vaapi/gstvaapivalue.h:
30718 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30719 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30720 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30721 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30722 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30723 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30724 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30725 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30726 libs: declare _get_type() functions as const.
30727 Declaring a function as const enables better optimization of calls
30729 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30731 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
30733 * gst-libs/gst/vaapi/glibcompat.h:
30734 * gst-libs/gst/vaapi/gstvaapicontext.c:
30735 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30736 * gst-libs/gst/vaapi/gstvaapiobject.c:
30737 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30738 * gst-libs/gst/vaapi/gstvaapisurface.c:
30739 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30740 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30741 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30742 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30743 libs: use g_clear_object() wherever applicable.
30744 This is a preferred thread-safe version. Also add an inline version of
30745 g_clear_object() if compiling with glib < 2.28.
30746 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30748 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
30752 * docs/reference/libs/Makefile.am:
30753 * gst-libs/gst/vaapi/Makefile.am:
30754 * gst-libs/gst/vaapi/gstvaapimarshal.list:
30755 * gst-libs/gst/vaapi/gstvaapiobject.c:
30756 libs: use generic g_cclosure_marshal_VOID__VOID().
30757 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30759 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30762 * gst-libs/gst/vaapi/glibcompat.h:
30763 glibcompat: drop explicit check for g_list_free_full().
30765 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30768 Bump version for development.
30770 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30772 * gst-libs/gst/codecparsers/Makefile.am:
30773 jpeg: fix make dist.
30775 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
30779 * docs/Makefile.am:
30780 configure: fix build without gtk-doc support.
30781 Also do not generate tamplate files as all the documentation is inline.
30782 Drop un-needed code in autogen.sh as well.
30783 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30785 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
30790 configure: put m4 macros and autogenerated files into m4/ directory.
30791 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30793 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
30796 configure: drop deprecated autoconf macros.
30797 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30798 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30800 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
30803 configure: don't use AC_SUBST for some variables.
30804 PKG_CHECK_MODULES already does this for us.
30805 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30807 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30809 * gst/vaapi/gstvaapidecode.c:
30810 * gst/vaapi/gstvaapidownload.c:
30811 * gst/vaapi/gstvaapipostproc.c:
30812 * gst/vaapi/gstvaapiupload.c:
30813 plugins: add support for GstImplementsInterface.
30815 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
30818 * gst/vaapi/gstvaapidecode.c:
30819 * gst/vaapi/gstvaapidownload.c:
30820 * gst/vaapi/gstvaapipostproc.c:
30821 * gst/vaapi/gstvaapisink.c:
30822 * gst/vaapi/gstvaapiupload.c:
30823 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30824 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30826 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30829 * gst/vaapi/gstvaapisink.c:
30830 plugins: do not use deprecated GStreamer -base symbols.
30831 Bump GStreamer plugins -base required version to 0.10.31, needed for
30832 gst_x_overlay_got_window_handle().
30833 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30835 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30838 * gst/vaapi/gstvaapidecode.c:
30839 * gst/vaapi/gstvaapidownload.c:
30840 * gst/vaapi/gstvaapipostproc.c:
30841 * gst/vaapi/gstvaapisink.c:
30842 * gst/vaapi/gstvaapiupload.c:
30843 plugins: do not use deprecated core GStreamer symbols.
30844 Bump GStreamer required version to 0.10.14, needed for
30845 gst_element_class_set_details_simple().
30846 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30848 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30850 * tests/test-decode.c:
30851 tests: fix build without JPEG decoder support.
30853 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30855 * tests/Makefile.am:
30856 * tests/test-decode.c:
30857 * tests/test-jpeg.c:
30858 * tests/test-jpeg.h:
30859 tests: add test for JPEG decoding.
30861 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30863 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30864 jpeg: update to match latest parser API.
30866 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30868 * gst-libs/gst/codecparsers/gstjpegparser.c:
30869 * gst-libs/gst/codecparsers/gstjpegparser.h:
30870 codecparsers: jpeg: tweak parser API.
30871 ... to allow for more consistent parsing API among various codec parsers.
30872 In particular, drop use of GList.
30874 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30877 jpeg: fix configure check for VA/JPEG decoding API.
30879 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30881 * gst-libs/gst/vaapi/gstvaapiprofile.c:
30882 jpeg: fix build with VA-API < 0.32.0.
30884 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30889 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30892 Bump version for development.
30894 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30900 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30905 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
30907 * gst/vaapi/gstvaapipluginutil.c:
30908 vaapiplugin: fix build when compiling without GLX.
30909 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30911 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30914 configure: disable FFmpeg-based decoders.
30915 FFmpeg decoders are still available through the --enable-ffmpeg option
30916 but are no longer maintained.
30918 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30920 * gst-libs/gst/vaapi/Makefile.am:
30921 Fix build with recent GStreamer stack.
30923 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30926 * gst-libs/gst/vaapi/gstvaapicompat.h:
30927 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30928 jpeg: update to current VA/JPEG decoding API.
30930 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30932 * gst-libs/gst/codecparsers/gstjpegparser.c:
30933 * gst-libs/gst/codecparsers/gstjpegparser.h:
30934 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30935 codecparsers: jpeg: track valid quantization and Huffman tables.
30936 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
30937 to determine whether a table actually changed since the last user
30938 synchronization point. That way, this makes it possible for some
30939 hardware accelerated decoding solution to upload only those tables
30942 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
30944 * gst-libs/gst/codecparsers/gstjpegparser.c:
30945 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
30946 Use GstByteReader *_unchecked() variants as much as possible.
30947 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30949 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
30951 * gst-libs/gst/codecparsers/gstjpegparser.c:
30952 * gst-libs/gst/codecparsers/gstjpegparser.h:
30953 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30954 jpeg: add new GstJpegHuffmanTables structure.
30955 Add new GstJpegHuffmanTables helper structure to hold all possible
30956 AC/DC Huffman tables available to all components.
30957 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30959 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
30961 * gst-libs/gst/codecparsers/gstjpegparser.c:
30962 * gst-libs/gst/codecparsers/gstjpegparser.h:
30963 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30964 jpeg: make gst_jpeg_parse() support multiple scans.
30965 gst_jpeg_parse() now gathers all scans available in the supplied
30966 buffer. A scan comprises of the scan header and any entropy-coded
30967 segments or restart marker following it. The size and offset to
30968 the associated data (ECS + RST segments) are append to a new
30969 GstJpegScanOffsetSize structure.
30970 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30972 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
30974 * gst-libs/gst/codecparsers/gstjpegparser.c:
30975 * gst-libs/gst/codecparsers/gstjpegparser.h:
30976 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30977 jpeg: update to match latest parser API.
30978 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30980 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30982 * gst-libs/gst/codecparsers/gstjpegparser.h:
30983 jpeg: simplify and optimize parser API.
30985 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
30987 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30988 mpeg: fix picture used to determine backward_reference_vop_coding_type.
30989 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
30990 but Gwenole did not apply all the bits.
30991 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30993 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
30995 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30996 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
30997 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30999 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31001 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31002 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31003 Gracefully skip non VOP coded frames.
31004 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31006 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31008 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31009 mpeg4: fix timestamp issues on too fast playback.
31010 Improve generation of presentation timestamps to be less sensitive
31011 to input stream errors. In practise, GOP is also a synchronization
31012 point for PTS calculation.
31013 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31015 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31017 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31018 Fix build without JPEG decoder.
31020 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31022 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31023 mpeg4: fix VOP coding type of backward reference pictures.
31024 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31026 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31028 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31029 mpeg4: fix handling of temporal reference distances.
31030 TRD and TRB fields are not large enough to hold the difference of PTS
31031 expressed with nanosecond resolution. So, compute them from the original
31033 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31035 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31037 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31038 dpb: mpeg2: cosmetics.
31039 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31041 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31044 * gst-libs/gst/vaapi/Makefile.am:
31045 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31046 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31047 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31048 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31049 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31050 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31051 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31052 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31053 * gst/vaapi/gstvaapidecode.c:
31054 Add initial JPEG decoder.
31055 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31057 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31060 * gst-libs/gst/Makefile.am:
31061 * gst-libs/gst/codecparsers/Makefile.am:
31062 * gst-libs/gst/codecparsers/gstjpegparser.c:
31063 * gst-libs/gst/codecparsers/gstjpegparser.h:
31064 * gst-libs/gst/vaapi/Makefile.am:
31065 codecparsers: add JPEG parser.
31066 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31068 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31070 * gst/vaapi/gstvaapidecode.c:
31071 vaapidecode: fix VA display type.
31072 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31074 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31076 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31078 * gst/vaapi/gstvaapidecode.c:
31079 vaapidecode: fix includes when compiling for a single API.
31081 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31084 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31085 mpeg2: fix calculation of macroblock_offset.
31086 Fix decoding of streams with extra slice() information before the first
31087 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31089 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31091 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31092 mpeg2: fix interpolation of GOP TSN from new PTS.
31093 New GOP TSN base could be mis-calculated. In particular, this fixes
31094 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31096 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31099 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31100 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31101 mpeg2: fix decoding of high profile streams.
31102 Allow MPEG-2 High profile streams only if the HW supports that profile
31103 or no High profile specific bits are used, and thus Main profile could
31104 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31105 set to 11 and no sequence_scalable_extension() was parsed.
31107 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31110 * gst/vaapi/gstvaapidecode.c:
31111 vaapidecode: report unsupported codec profiles.
31112 Try to gracefully abort when the HW does not support the requested
31113 profile. There is no fallback unless profiles are correctly parsed
31114 and matched through caps beforehand.
31116 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31119 * gst/vaapi/gstvaapisink.c:
31120 vaapisink: don't resize a 'foreign' X-window.
31121 Don't forcibly resize foreign X windows. The user is responsible for
31122 their size and vaapisink shall not change this.
31123 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31125 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31128 * gst/vaapi/gstvaapisink.c:
31129 * gst/vaapi/gstvaapisink.h:
31130 vaapisink: recalculate render rect only if caps are negotiated.
31131 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31132 caps got negotiated. Besides, when a foreign window is provided by the
31133 user, so should the render rect.
31134 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31136 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31139 Bump version for development.
31141 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31146 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31148 * docs/reference/libs/libs-docs.xml.in:
31149 * docs/reference/libs/libs-sections.txt:
31150 * docs/reference/plugins/plugins-docs.xml.in:
31151 * docs/reference/plugins/plugins-sections.txt:
31152 * docs/reference/plugins/plugins.types:
31153 * gst-libs/gst/vaapi/gstvaapiimage.c:
31154 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31155 * gst/vaapi/gstvaapipostproc.c:
31156 Fix a few documentation issues.
31158 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31162 Update introduction and changelog.
31164 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31166 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31167 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31168 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31169 mpeg2: allocate dummy picture for first field based I-frame.
31170 In P-pictures, prediction shall be made from the two most recently
31171 decoded reference fields. However, when the first I-frame is a field,
31172 the next field of the current picture could be a P-picture but only a
31173 single field was decoded so far. In this case, create a dummy picture
31174 with POC = -1 that will be used as reference.
31175 Some VA drivers would error out if P-pictures don't have a forward
31176 reference picture. This is true in general but not in this very specific
31179 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31181 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31182 mpeg2: fix simple to main profile fallback.
31183 Allow fallback from simple to main profile when the HW decoder does
31184 not support the former profile and that no sequence_header_extension()
31185 is available to point out this.
31187 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31189 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31190 mpeg4: improve error checking while decoding packets.
31191 decode_picture() could return an error when an MPEG-4 profile is not
31192 supported for example. In this case, the underlying VA context is not
31193 allocated and no other proper action can be taken. Likewise on exit
31194 from decode_slice().
31195 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31197 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31199 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31200 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31201 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31202 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31203 decoder: use POC to maintain the DPB.
31204 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31205 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31206 video streaming at 60 Hz.
31207 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31208 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31210 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31212 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31213 mpeg2: rework generation of presentation timestamps.
31214 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31215 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31216 max PTS from past pictures, then try to fix it up based on the duration of
31218 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31219 reconstruct a current time. Also now handle wrapped TSN correctly.
31221 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31223 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31224 mpeg2: ignore empty user-data packets.
31225 Fix tcela-8.bits conformance test.
31227 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31229 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31230 mpeg2: review and report errors accordingly.
31231 Use GST_ERROR() to report real errors instead of hiding them into
31234 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31236 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31237 mpeg2: fix invalid interlaced frame in progressive sequence.
31238 Some streams, badly constructed, could have signaled an interlaced
31239 frame while the sequence was meant to be progressive. Warn and force
31240 frame to be progressive in this case.
31242 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31244 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31245 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31246 mpeg2: add support for interlaced streams.
31247 Pictures are submitted to the HW for rendering only when both fields
31248 are decoded or current picture is a full frame.
31250 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31252 * gst-libs/gst/vaapi/Makefile.am:
31253 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31254 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31255 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31256 mpeg2: add new decoded picture buffer infrastructure.
31257 Decoded pictures are now maintained into DPB, similarly to H.264.
31258 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31260 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31262 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31263 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31264 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31265 decoder: add first-field flag to picture.
31266 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31267 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31268 as the first field. Any subsequent allocated field will become the second field.
31270 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31272 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31273 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31274 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31275 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31276 decoder: allow pictures to be cloned for field decoding.
31277 Add gst_vaapi_picture_new_field() function that clones a picture, while
31278 preserving the parent picture surface. i.e. the surface proxy reference
31279 count is increased and other fields copied as is. Besides, the picture
31280 is reset into a "non-output" mode.
31282 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31284 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31285 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31286 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31287 decoder: rework picture field flags.
31288 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31289 could be propagated to the surface proxy when it is pushed for rendering.
31290 Besides, top and bottom fields are now expressed with picture structure flags
31291 from GstVaapiSurfaceRenderFlags.
31293 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31295 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31296 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31297 decoder: add OUTPUT flag to pictures.
31298 Allow pictures to be marked as output gst_vaapi_picture_output().
31300 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31302 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31303 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31304 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31305 decoder: fix semantics of SKIPPED pictures.
31306 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31307 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31308 has nothing to do with rendering. This only means that the currently decoded
31309 picture is just a copy of its reference picture.
31311 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31313 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31314 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31315 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31316 * gst/vaapi/gstvaapipostproc.c:
31317 vaapipostproc: get "interlaced" attribute from surface proxy.
31318 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31319 vaapipostproc so that to handles cases where bitstream is interlaced
31320 but almost only frame pictures are generated. In this case, we should
31321 not be alternating between top/bottom fields.
31323 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31326 * debian.upstream/control.in:
31327 * gst/vaapi/Makefile.am:
31328 * gst/vaapi/gstvaapi.c:
31329 * gst/vaapi/gstvaapipostproc.c:
31330 * gst/vaapi/gstvaapipostproc.h:
31331 vaapipostproc: add new element for video postprocessing.
31332 Add vaapipostproc element for video postprocessing. So far, only basic
31333 bob deinterlacing is implemented. Interlaced mode is automatically
31334 detected based on sink caps ("interlaced" field).
31336 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31338 * docs/reference/libs/libs-sections.txt:
31339 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31340 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31341 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31342 * gst/vaapi/gstvaapisink.c:
31343 videobuffer: add surface render flags.
31344 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31345 to be set to the video buffer. In particular, this is mostly useful for
31346 basic deinterlacing.
31348 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31350 * gst-libs/gst/vaapi/gstvaapicompat.h:
31351 compat: add compatibility glue with VA-API 0.34+ (WIP).
31353 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31355 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31356 h264: skip all Filler Data NALs.
31358 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31360 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31361 mpeg4: check for decoder status prior to decoding packet.
31362 Make sure there is a VA surface free prior to decoding the current frame.
31363 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31365 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31367 * gst/vaapi/gstvaapidecode.c:
31368 * gst/vaapi/gstvaapidecode.h:
31369 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31370 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31371 is created and a NEWSEGMENT event arrives, downstream element may not
31372 be ready yet. So, delay this event until next element is chained in,
31373 otherwise basesink could output "Received buffer without a new-segment.
31374 Assuming timestamps start from 0".
31375 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31377 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31379 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31380 mpeg2: fix GOP timestamps when incorrect data is received.
31381 Some streams have incorrect GOP timestamps, or nothing set at all.
31382 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31383 from demuxer timestamps, which are monotonic.
31384 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31386 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31388 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31389 mpeg2: don't decode anything before the first sequence_header().
31390 Skip all pictures prior to the first sequence_header(). Besides,
31391 skip all picture_data() if there was no prior picture_header().
31392 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31394 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31396 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31397 ffmpeg: add support for interlaced streams.
31398 Evaluate interlaced stream properties.
31399 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31401 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31403 * gst/vaapi/gstvaapidecode.c:
31404 vaapidecode: propagate interlaced and TFF properties downstream.
31405 Propagate "interlaced" caps downstream and set "tff" buffer flag
31406 appropriately to output buffers for interlaced pictures.
31407 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31409 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31411 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31412 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31413 decoder: maintain caps for interlaced streams.
31414 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31416 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31418 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31420 * docs/reference/libs/libs-sections.txt:
31421 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31422 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31423 surfaceproxy: add TFF property.
31424 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31425 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31427 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31430 AUTHORS: update to match current authors.
31432 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31434 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31435 mpeg2: fix is_first_field calculation.
31436 Reset is_first_field for frame pictures. Factor out locations where
31437 the flag is updated.
31439 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31441 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31442 mpeg2: catch incorrect picture_structure from bitstreams.
31443 Assume "frame" picture structure if the syntax element was zero or if
31444 progressive_frame is set.
31446 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31448 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31449 mpeg2: fix slice_vertical_position calculation (again).
31450 VA-API expects slice_vertical_position as the initial position from the
31451 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31454 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31456 * gst/vaapi/gstvaapidecode.c:
31457 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31458 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31459 For gst_element_class_get_pad_template(), no unreferencing is necessary
31460 according to the GStreamer documentation.
31462 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31465 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31466 h264: fix slice_data_bit_offset calculation.
31467 Unlike what VA-API documentation defines, the slice_data_bit_offset
31468 represents the offset to the first macroblock in the slice data, minus
31469 any emulation prevention bytes in the slice_header().
31470 This fix copes with binary-only VA drivers that won't be fixed any
31471 time soon. Besides, this aligns with the current FFmpeg behaviour
31472 that was based on those proprietary drivers implementing the API
31475 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31477 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31478 h264: skip all Access Unit (AU) NALs.
31479 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31481 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31483 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31484 h264: fix modification process of reference picture lists.
31485 Construction of RefPicList0/1 could be off by one element.
31486 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31488 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31490 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31491 mpeg2: fix size calculation from sequence_extension().
31492 Original values from sequence_header() are 12-bit and the remaining
31493 2 most significant bits are coming from sequence_extension().
31494 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31496 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31498 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31499 mpeg2: fix slice_vertical_position calculation.
31500 Make sure to adjust slice_vertical_position if picture structure
31501 is a top or bottom field.
31503 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31505 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31506 decoder: add picture structure flags.
31508 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31510 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31511 mpeg2: fix decoding at end-of-sequence.
31513 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31515 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31516 mpeg2: fix slice_horizontal_position calculation.
31518 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31520 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31521 mpeg2: drop useless mb_y and mb_height members.
31523 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31525 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31526 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31527 6.3.15 says that "some slices may have the same slice_vertical_position,
31528 since slices may start and finish anywhere". So, we can't submit the current
31529 picture to the HW right away since subsequent slices would be missing.
31531 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31533 * gst-libs/gst/vaapi/gstvaapiimage.c:
31534 image: fix source stride in picture copy.
31536 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31538 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31539 decoder: fix double buffer free with some VA drivers.
31540 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31541 push the VA buffer object into a list of free buffers to be re-used. However,
31542 reference pictures (and data) that was kept would explicitly release the VA
31543 buffer object later on, thus possibly destroying a valid (re-used) object.
31544 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31545 semantics for VA buffers disposal and would leak memory if there is no explicit
31546 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31547 right after vaRenderPicture(). All VA drivers need to be aligned.
31549 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31551 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31552 h264: complete any current picture decoder before SPS / PPS change.
31553 This ensures the VA context is clear when the encoded resolution
31554 changes. i.e. make sure older picture is decoded with the older
31555 VA context before it changes.
31557 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31559 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31560 h264: create VA context earlier when SPS is parsed.
31562 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31564 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31565 h264: don't allocate too big data structures on stack.
31567 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31569 * gst-libs/gst/vaapi/glibcompat.h:
31570 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31571 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31572 glib: map deprecated API to glib >= 2.32 equivalents.
31573 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31574 GRecMutex, which no longer require any prior call to g_thread_init().
31576 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31578 * gst-libs/gst/vaapi/gstvaapiutils.h:
31579 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31580 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31581 glib: fix includes.
31583 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31585 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31586 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31587 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31588 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31589 cosmetics: fix warnings (drop unused variables).
31591 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31593 * gst/vaapi/gstvaapidecode.c:
31594 vaapidecode: fix another pad template ref leak.
31596 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31598 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31600 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31601 mpeg2: fix crash when there is no free surface to decode into.
31603 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
31605 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31606 display: skip profiles which have no entrypoints.
31607 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31609 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31611 * gst/vaapi/gstvaapiupload.c:
31612 vaapiupload: use g_object_unref() for GstVaapiImage.
31614 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31616 * gst/vaapi/gstvaapidecode.c:
31617 * gst/vaapi/gstvaapidownload.c:
31618 * gst/vaapi/gstvaapisink.c:
31619 * gst/vaapi/gstvaapiupload.c:
31620 plugins: fix pad template ref leaks.
31622 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31625 Bump version for development.
31627 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31633 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31637 Mention codecparsers-based decoders, FFmpeg is now optional. Update
31638 list of support HW.
31640 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31645 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31647 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31648 decoder: allocate proxy surface earlier.
31649 This simplifies gst_vaapi_picture_output() to only update the presentation
31650 timestamp and submit the proxy to the decoder for output.
31652 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31654 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31655 decoder: fix memory leak of VA objects on exit.
31656 On sequence end, if the last decoded picture is not output for rendering,
31657 then the proxy surface is not created. In this case, the original surface
31658 must be released explicitly to the context.
31660 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31662 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31663 mpeg2: use GstAdapter to track input sequence.
31664 This fixes possible memory leaks and improves performance by removing
31667 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31670 * gst-libs/gst/vaapi/Makefile.am:
31671 * gst-libs/gst/vaapi/glibcompat.h:
31672 * gst-libs/gst/vaapi/sysdeps.h:
31673 Add glib compatibility glue for older versions.
31675 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31677 * gst-libs/gst/vaapi/Makefile.am:
31678 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31679 * gst-libs/gst/vaapi/gstvaapicontext.c:
31680 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31681 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31682 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31683 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31684 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31685 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31686 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31687 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31688 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31689 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31690 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31691 * gst-libs/gst/vaapi/gstvaapiimage.c:
31692 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31693 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31694 * gst-libs/gst/vaapi/gstvaapiobject.c:
31695 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31696 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31697 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31698 * gst-libs/gst/vaapi/gstvaapisurface.c:
31699 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31700 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31701 * gst-libs/gst/vaapi/gstvaapitexture.c:
31702 * gst-libs/gst/vaapi/gstvaapiutils.c:
31703 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31704 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31705 * gst-libs/gst/vaapi/gstvaapivalue.c:
31706 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31707 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31708 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31709 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31710 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31711 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31712 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31713 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31714 * gst-libs/gst/vaapi/sysdeps.h:
31715 Add header for system-dependent definitions.
31717 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31719 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31720 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31721 * gst-libs/gst/vaapi/gstvaapiutils.c:
31722 * gst-libs/gst/vaapi/gstvaapiutils.h:
31723 decoder: optimize slice data buffers initialization.
31724 VA drivers may have a faster means to transfer user buffers to GPU
31725 buffers than using memcpy(). In particular, on Intel Gen graphics, we
31726 can use pwrite(). This provides for faster upload of bitstream and can
31727 help higher bitrates.
31728 vaapi_create_buffer() helper function was also updated to allow for
31729 un-mapped buffers and pre-initialized data for buffers.
31731 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31733 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31734 h264: simplify RefPicList reconstruction.
31736 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31738 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31739 h264: flush DPB when the end of the sequence is reached.
31741 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31743 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31744 h264: handle Decoded Picture Buffer (DPB).
31746 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31748 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31749 h264: fix pred_weight_table() reconstruction.
31750 Only the explicit pred_weight_table(), possibly with the inferred default
31751 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31752 is not set for P/SP slices.
31754 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31756 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31757 h264: execute reference picture marking process (MMCO).
31759 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31761 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31762 h264: fix presentation timestamps.
31764 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31766 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31767 h264: execute reference picture marking process (sliding window).
31769 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31771 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31772 h264: handle avcC format for decoding buffers.
31774 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31776 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31777 h264: handle codec-data.
31778 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31780 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31782 * gst-libs/gst/vaapi/Makefile.am:
31783 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31784 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31785 * gst/vaapi/gstvaapidecode.c:
31786 * tests/test-decode.c:
31787 Add initial H.264 decoder.
31789 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31791 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31792 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31793 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31794 Keep a valid reference to the proxy in GstVaapiPicture so that frames
31795 marked as "used for reference" could be kept during the lifetime of the
31796 picture. i.e. don't release them too soon as they could be re-used right
31799 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31801 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31802 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31803 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31804 decoder: properly reference count pictures.
31805 This fixes cases where a GstVaapiPicture would be destroyed whereas
31806 there is still a valid instance of it in either prev, current or
31809 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31811 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31812 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31813 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31814 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31815 decoder: simplify output of decoded frames.
31816 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31817 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31818 is already set correctly and reference count increased, if necessary.
31820 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31822 * gst-libs/gst/vaapi/Makefile.am:
31823 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31824 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31825 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31826 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31827 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31828 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31829 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31830 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31831 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31832 decoder: rework the internal VA objects API.
31833 The new API simplifies a lot reference counting and makes it more
31834 flexible for future additions/changes. The GstVaapiCodecInfo is
31835 also gone. Rather, new helper macros are provided to allocate
31836 picture, slice and quantization matrix parameter buffers.
31838 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31840 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31841 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31842 decoder: allow slices to be attached to pictures later.
31844 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31846 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31847 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31848 decoder: add ref_count to GstVaapiPicture.
31850 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31852 * gst/vaapi/gstvaapisink.c:
31853 vaapisink: cap window size to the maximum display size.
31855 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
31857 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31858 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31859 profile: match video/x-h263 as H.263 Baseline profile.
31860 HACK: qtdemux does not report profiles for H.263. So, assume plain
31861 "video/x-h263" is H.263 Baseline profile.
31862 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31864 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31866 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31867 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31868 display: report H.263 Baseline profile.
31869 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
31870 profile (VAProfileMPEG4Simple) is supported.
31872 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31874 * gst-libs/gst/vaapi/Makefile.am:
31875 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31876 Add template for workarounds.
31878 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31880 * tests/test-decode.c:
31881 tests: error out if FFmpeg|codecparsers are not supported.
31883 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31885 * docs/reference/libs/libs-sections.txt:
31886 * gst-libs/gst/vaapi/gstvaapisurface.h:
31887 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31888 surface: don't expose gst_vaapi_surface_get_parent_context().
31889 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
31890 It's just an internal helper function. However, it's still possible to get
31891 the parent context through the "parent-context" property.
31893 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31895 * tests/Makefile.am:
31896 * tests/test-subpicture.c:
31897 tests: fix build without FFmpeg.
31899 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31902 Bump version for development.
31904 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31910 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31913 * debian.upstream/copyright:
31914 * gst-libs/gst/vaapi/gstvaapicontext.c:
31915 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31916 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31917 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31918 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31919 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31920 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31921 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31922 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31923 * gst-libs/gst/vaapi/gstvaapiimage.c:
31924 * gst-libs/gst/vaapi/gstvaapiimage.h:
31925 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31926 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31927 * gst-libs/gst/vaapi/gstvaapiutils.c:
31928 * gst-libs/gst/vaapi/gstvaapiutils.h:
31929 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31930 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31931 * gst/vaapi/gstvaapi.c:
31932 * gst/vaapi/gstvaapidecode.c:
31933 * gst/vaapi/gstvaapidownload.c:
31934 * gst/vaapi/gstvaapidownload.h:
31935 * gst/vaapi/gstvaapipluginutil.c:
31936 * gst/vaapi/gstvaapipluginutil.h:
31937 * gst/vaapi/gstvaapisink.c:
31938 * gst/vaapi/gstvaapiupload.c:
31939 * gst/vaapi/gstvaapiupload.h:
31940 * tests/test-decode.c:
31941 legal: fix year for some copyright notices.
31943 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31945 * gst-libs/gst/vaapi/gstvaapicontext.c:
31946 * gst-libs/gst/vaapi/gstvaapicontext.h:
31947 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31948 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31949 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31950 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31951 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31952 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31953 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31954 * gst-libs/gst/vaapi/gstvaapiimage.c:
31955 * gst-libs/gst/vaapi/gstvaapiimage.h:
31956 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31957 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
31958 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31959 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31960 * gst-libs/gst/vaapi/gstvaapisurface.c:
31961 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31962 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31963 * gst-libs/gst/vaapi/gstvaapiutils.c:
31964 * gst-libs/gst/vaapi/gstvaapiutils.h:
31965 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31966 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31967 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31968 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31969 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31970 * gst/vaapi/gstvaapidownload.h:
31971 * gst/vaapi/gstvaapisink.h:
31972 * gst/vaapi/gstvaapiupload.h:
31973 * tests/test-decode.c:
31974 legal: add Intel copyright on modified files.
31976 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31978 * gst-libs/gst/vaapi/gstvaapi_priv.h:
31979 * gst-libs/gst/vaapi/gstvaapicompat.h:
31980 * gst-libs/gst/vaapi/gstvaapicontext.c:
31981 * gst-libs/gst/vaapi/gstvaapicontext.h:
31982 * gst-libs/gst/vaapi/gstvaapidebug.h:
31983 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31984 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31985 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31986 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31987 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31988 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31989 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31990 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31991 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
31992 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
31993 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31994 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31995 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31996 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
31997 * gst-libs/gst/vaapi/gstvaapiimage.c:
31998 * gst-libs/gst/vaapi/gstvaapiimage.h:
31999 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32000 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32001 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32002 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32003 * gst-libs/gst/vaapi/gstvaapiobject.c:
32004 * gst-libs/gst/vaapi/gstvaapiobject.h:
32005 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32006 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32007 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32008 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32009 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32010 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32011 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32012 * gst-libs/gst/vaapi/gstvaapisurface.c:
32013 * gst-libs/gst/vaapi/gstvaapisurface.h:
32014 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32015 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32016 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32017 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32018 * gst-libs/gst/vaapi/gstvaapitexture.c:
32019 * gst-libs/gst/vaapi/gstvaapitexture.h:
32020 * gst-libs/gst/vaapi/gstvaapitypes.h:
32021 * gst-libs/gst/vaapi/gstvaapiutils.c:
32022 * gst-libs/gst/vaapi/gstvaapiutils.h:
32023 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32024 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32025 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32026 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32027 * gst-libs/gst/vaapi/gstvaapivalue.c:
32028 * gst-libs/gst/vaapi/gstvaapivalue.h:
32029 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32030 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32031 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32032 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32033 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32034 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32035 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32036 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32037 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32038 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32039 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32040 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32041 * gst/vaapi/gstvaapidecode.c:
32042 * gst/vaapi/gstvaapidecode.h:
32043 * gst/vaapi/gstvaapidownload.c:
32044 * gst/vaapi/gstvaapidownload.h:
32045 * gst/vaapi/gstvaapisink.c:
32046 * gst/vaapi/gstvaapisink.h:
32047 * gst/vaapi/gstvaapiupload.c:
32048 * gst/vaapi/gstvaapiupload.h:
32051 * tests/test-decode.c:
32052 * tests/test-decode.h:
32053 * tests/test-display.c:
32054 * tests/test-h264.c:
32055 * tests/test-h264.h:
32056 * tests/test-mpeg2.c:
32057 * tests/test-mpeg2.h:
32058 * tests/test-surfaces.c:
32059 * tests/test-textures.c:
32060 * tests/test-vc1.c:
32061 * tests/test-vc1.h:
32062 * tests/test-windows.c:
32063 legal: fix copyright notices to include "Copyright" term.
32065 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32067 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32068 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32069 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32070 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32072 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32074 * gst-libs/gst/vaapi/Makefile.am:
32075 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32076 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32077 * gst/vaapi/gstvaapidecode.c:
32078 Add initial MPEG-4 decoder.
32079 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32081 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32083 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32084 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32085 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32086 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32088 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32090 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32091 vc1: fix codec-data decoding for WMV3 format.
32093 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32095 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32096 vc1: fix presentation timestamps.
32098 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32100 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32101 vc1: fix MV mode packing.
32103 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32105 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32106 vc1: handle codec-data.
32108 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32110 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32111 vc1: handle encapsulated bitstreams.
32113 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32115 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32116 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32117 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32118 vc1: fix bitplanes decoding.
32120 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32122 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32123 vc1: fix BFRACTION reconstruction.
32125 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32127 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32128 vc1: fix framerate calculation.
32130 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32132 * gst-libs/gst/vaapi/Makefile.am:
32133 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32134 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32135 * gst/vaapi/gstvaapidecode.c:
32136 * tests/test-decode.c:
32137 Add initial VC-1 decoder.
32139 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32141 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32142 mpeg2: fix first field detection.
32143 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32145 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32147 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32148 mpeg2: fix quantisation matrix construction.
32150 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32152 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32153 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32154 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32155 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32157 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32159 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32160 mpeg2: fix packets spanning over two buffers.
32162 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32164 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32165 mpeg2: ignore system start codes (PES headers).
32167 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32169 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32170 mpeg2: handle closed_gop.
32172 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32174 * gst-libs/gst/vaapi/Makefile.am:
32175 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32176 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32177 * gst/vaapi/gstvaapidecode.c:
32178 * tests/test-decode.c:
32179 Add initial MPEG-2 decoder.
32181 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32184 * gst-libs/gst/vaapi/Makefile.am:
32185 * gst/vaapi/gstvaapidecode.c:
32186 * tests/test-decode.c:
32187 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32189 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32191 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32192 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32193 Add VA decoder helpers.
32195 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32197 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32198 decoder: add new error codes.
32199 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32200 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32202 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32204 * gst-libs/gst/vaapi/Makefile.am:
32205 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32206 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32207 Add timestamp buffer store helper utils.
32209 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32211 * gst-libs/gst/vaapi/gstvaapiutils.c:
32212 * gst-libs/gst/vaapi/gstvaapiutils.h:
32213 Add VA buffer helpers.
32215 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32217 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32218 utils: slight improvements to gl_bind_texture().
32220 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32222 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32223 utils: pretty-print output of gl_get_error_string().
32225 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32227 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32228 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32230 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32232 * gst-libs/gst/vaapi/gstvaapiutils.c:
32233 utils: simplify string of VAProfile/VAEntrypoint.
32235 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32237 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32238 * gst-libs/gst/vaapi/gstvaapiutils.c:
32239 * gst-libs/gst/vaapi/gstvaapiutils.h:
32240 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32242 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32247 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32249 * tests/test-decode.c:
32250 tests: check for shared VA displays (display cache).
32252 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32254 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32255 display: always free VA display cache if it is empty.
32257 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32259 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32260 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32261 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32262 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32263 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32264 display: use VA display cache for X11 and GLX winsys.
32266 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32268 * gst-libs/gst/vaapi/Makefile.am:
32269 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32270 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32271 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32272 display: implement a VA display cache.
32274 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32276 * gst/vaapi/gstvaapipluginutil.c:
32277 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32278 This ensures the display name provided to gst_vaapi_display_*_new()
32279 maps to the system defaults, instead of forcing "" that could be different
32280 from the current DISPLAY name.
32282 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32284 * gst/vaapi/gstvaapiupload.c:
32285 vaapiupload: only set caps on newly created buffers.
32286 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32288 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32290 * gst/vaapi/gstvaapisink.c:
32291 vaapisink: ensure VA display in GstBaseSink::start() hook.
32292 This ensures a VA display is ready by the time upstream elements request
32295 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32297 * gst/vaapi/gstvaapisink.c:
32298 vaapisink: don't leak GL texture.
32299 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32301 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32303 * gst/vaapi/gstvaapisink.c:
32304 vaapisink: fix calculation of render region.
32306 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32308 * gst/vaapi/gstvaapisink.c:
32309 vaapisink: automatically fit video to window.
32311 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32313 * gst/vaapi/gstvaapisink.c:
32314 vaapisink: implement GstXOverlay::set_render_rectangle().
32316 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32318 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32319 window: always check geometry when the window is mapped.
32321 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32323 * gst-libs/gst/vaapi/gstvaapiutils.c:
32324 Add missing profiles from VA-API 0.32.0.
32325 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32327 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32330 .gitignore: add test-subpicture.
32332 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32335 Bump version for development.
32337 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32343 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32345 * tests/Makefile.am:
32346 tests: fix make dist (ship with test-subpicture-data.h).
32348 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32353 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32355 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32356 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32357 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32358 decoder: fix possible leak of VA surfaces.
32359 Under some circumstances, we could have leaked a surface, thus not
32360 releasing it to the pool of available surfaces in the VA context.
32361 The strategy is now to use a proxy earlier and automatically ref/unref
32362 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32364 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32366 * docs/reference/libs/libs-sections.txt:
32367 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32368 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32369 surfaceproxy: add helper to retrieve the VA surface ID.
32371 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32373 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32374 surfaceproxy: simplify destruction.
32375 Also make sure to always make sure to release the surface back to the
32376 pool of surfaces in the associated VA context, if any.
32378 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32380 * gst/vaapi/gstvaapidecode.c:
32381 vaapidecode: fix deinitialization order.
32383 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32385 * gst-libs/gst/vaapi/gstvaapicontext.c:
32386 context: avoid self reference loops with surfaces.
32388 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32390 * debian.upstream/control.in:
32391 debian: update control.in description for new plugins.
32393 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32395 * gst/vaapi/gstvaapiupload.c:
32396 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32397 This also fixes extra structures, beyond the one at index 0, to hold
32398 the right additional values.
32400 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32402 * gst/vaapi/gstvaapiupload.c:
32403 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32405 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32408 * docs/reference/plugins/plugins-docs.xml.in:
32409 * docs/reference/plugins/plugins-sections.txt:
32410 * docs/reference/plugins/plugins.types:
32411 * gst/vaapi/Makefile.am:
32412 * gst/vaapi/gstvaapi.c:
32413 * gst/vaapi/gstvaapidownload.c:
32414 * gst/vaapi/gstvaapidownload.h:
32415 vaapidownload: add new plugin to download pixels from VA surfaces.
32417 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32419 * gst/vaapi/gstvaapipluginutil.c:
32420 * gst/vaapi/gstvaapipluginutil.h:
32421 vaapipluingutils: add helper to append surface caps to YUV caps.
32423 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32425 * docs/reference/libs/libs-sections.txt:
32426 * gst-libs/gst/vaapi/gstvaapiimage.c:
32427 * gst-libs/gst/vaapi/gstvaapiimage.h:
32428 image: add helpers to extract pixels to user buffers.
32430 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32432 * gst-libs/gst/vaapi/gstvaapiimage.c:
32433 image: simplify initialization of raw images from video buffers.
32435 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32437 * gst-libs/gst/vaapi/gstvaapiimage.c:
32438 image: fix update from NV12 buffers.
32440 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32442 * gst/vaapi/gstvaapiupload.c:
32443 vaapiupload: fix memory leak in _init() function.
32445 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32449 * debian.upstream/control.in:
32450 * docs/reference/plugins/plugins-docs.xml.in:
32451 * docs/reference/plugins/plugins-sections.txt:
32452 * docs/reference/plugins/plugins.types:
32453 * gst/vaapi/Makefile.am:
32454 * gst/vaapi/gstvaapi.c:
32455 * gst/vaapi/gstvaapiupload.c:
32456 * gst/vaapi/gstvaapiupload.h:
32457 Rename vaapiconvert element to vaapiupload.
32459 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32462 Bump version for development.
32464 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32470 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32475 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32477 * gst-libs/gst/vaapi/gstvaapisurface.c:
32478 * gst-libs/gst/vaapi/gstvaapisurface.h:
32479 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32480 * gst/vaapi/gstvaapisink.c:
32481 surface: apply composition to the parent context, if requested.
32483 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32485 * docs/reference/libs/libs-sections.txt:
32486 * gst-libs/gst/vaapi/gstvaapicontext.c:
32487 * gst-libs/gst/vaapi/gstvaapicontext.h:
32488 context: make it possible to apply composition globally.
32490 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32492 * gst-libs/gst/vaapi/gstvaapisurface.c:
32493 surface: fix associate subpicture to not report deassociation errors.
32495 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32497 * gst-libs/gst/vaapi/gstvaapisurface.c:
32498 surface: fix typo in debug message.
32500 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32502 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32503 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32504 * gst-libs/gst/vaapi/gstvaapisurface.c:
32505 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32507 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32509 * docs/reference/libs/libs-sections.txt:
32510 * gst-libs/gst/vaapi/Makefile.am:
32511 * gst-libs/gst/vaapi/gstvaapicontext.c:
32512 * gst-libs/gst/vaapi/gstvaapisurface.c:
32513 * gst-libs/gst/vaapi/gstvaapisurface.h:
32514 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32515 surface: record parent context.
32517 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32519 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32520 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32521 * gst/vaapi/gstvaapidecode.c:
32522 * gst/vaapi/gstvaapisink.c:
32525 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32527 * gst-libs/gst/vaapi/gstvaapisurface.c:
32528 * gst-libs/gst/vaapi/gstvaapisurface.h:
32529 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32530 * gst/vaapi/gstvaapisink.c:
32531 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32533 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32536 configure: check for GstVideoOverlayComposition.
32538 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32543 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32545 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32546 converter: add support for GstVideoOverlayComposition planes.
32547 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32549 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32551 * gst/vaapi/gstvaapisink.c:
32552 vaapisink: handle GstVideoOverlayComposition planes.
32553 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32555 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32557 * gst-libs/gst/vaapi/gstvaapisurface.c:
32558 surface: use unscaled overlay rectangle for blending.
32560 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32562 * gst-libs/gst/vaapi/gstvaapisurface.c:
32563 surface: fix VA image leak when an error occurred.
32565 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32567 * gst-libs/gst/vaapi/gstvaapisurface.c:
32568 * gst-libs/gst/vaapi/gstvaapisurface.h:
32569 surface: add helper to handle GstVideoOverlayComposition.
32570 This helper resets the subpictures to reflect the current composition
32571 layers provided with the buffers.
32572 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32574 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32576 * docs/reference/libs/libs-sections.txt:
32577 * gst-libs/gst/vaapi/Makefile.am:
32578 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32579 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32580 * gst/vaapi/gstvaapiconvert.c:
32581 image: add gst_vaapi_image_format_from_video() helper.
32583 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32585 * gst-libs/gst/vaapi/gstvaapiimage.c:
32586 * gst-libs/gst/vaapi/gstvaapiimage.h:
32587 image: allow updates from GstVaapiImageRaw.
32589 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32591 * gst-libs/gst/vaapi/gstvaapiimage.c:
32592 * gst-libs/gst/vaapi/gstvaapiimage.h:
32593 * gst/vaapi/gstvaapiconvert.c:
32594 * tests/test-subpicture.c:
32595 image: allow partial updates.
32597 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32599 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32600 subpicture: fix doc for gst_vaapi_subpicture_set_image().
32602 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32604 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32605 display: fix has_image_format() to check against subpicture formats.
32607 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32609 * tests/test-subpicture.c:
32610 tests: fix subpicture test.
32612 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32614 * tests/Makefile.am:
32615 * tests/test-subpicture-data.c:
32616 * tests/test-subpicture-data.h:
32617 * tests/test-subpicture.c:
32618 tests: add test for subpictures.
32619 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32621 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32623 * gst/vaapi/gstvaapiconvert.c:
32624 * gst/vaapi/gstvaapidecode.c:
32625 Add missing video context queries.
32626 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32628 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32631 Bump version for development.
32633 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32635 * gst-libs/gst/video/Makefile.am:
32636 * gst-libs/gst/video/gstbasevideocodec.c:
32637 * gst-libs/gst/video/gstbasevideocodec.h:
32638 * gst-libs/gst/video/gstbasevideodecoder.c:
32639 * gst-libs/gst/video/gstbasevideodecoder.h:
32640 * gst-libs/gst/video/gstbasevideoutils.c:
32641 * gst-libs/gst/video/gstbasevideoutils.h:
32642 Drop unused copy of GstBaseVideoDecoder.
32644 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32650 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32653 README: update dependencies.
32655 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32660 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32663 configure: check for GstBaseSink 'query' vfunc.
32665 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32667 * gst/vaapi/Makefile.am:
32668 vaapiplugin: include local build dir to CFLAGS for generated files.
32670 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32673 autogen: don't configure if NO_CONFIGURE variable is set.
32675 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32677 * gst/vaapi/gstvaapidecode.c:
32678 * gst/vaapi/gstvaapidecode.h:
32679 vaapidecode: return sink caps template if decoder is in NULL state.
32680 Otherwise, the decoder would always create its own X display instead
32681 of probing it from the downstream element, which is not reliable.
32682 e.g. DISPLAY is not :0 or when running on Wayland.
32683 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32685 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32687 * gst/vaapi/gstvaapiconvert.c:
32688 * gst/vaapi/gstvaapidecode.c:
32689 vaapiplugin: properly set surface type to "vaapi" in caps.
32691 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32693 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32694 decoder: drop unused headers.
32696 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32698 * gst/vaapi/gstvaapiconvert.c:
32699 * gst/vaapi/gstvaapidecode.c:
32700 vaapiplugin: properly set opengl support in caps.
32701 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32703 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32705 * gst/vaapi/gstvaapiconvert.c:
32706 * gst/vaapi/gstvaapidecode.c:
32707 vaapiplugin: allocate GLX buffers when supported.
32708 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32710 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32712 * gst-libs/gst/vaapi/Makefile.am:
32713 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32714 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32715 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32716 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32717 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32718 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32719 videobuffer: add GLX buffer support.
32720 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32722 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32724 * gst-libs/gst/vaapi/Makefile.am:
32725 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32726 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32727 Port to GstSurfaceBuffer interface.
32728 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32730 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32732 * gst/vaapi/gstvaapidecode.c:
32733 * gst/vaapi/gstvaapisink.c:
32734 Don't use downstream buffer allocation.
32735 With the new video/x-surface abstraction, we can't rely on having a VA
32736 specific sink downstream. Also, there was no particular reason to do that.
32737 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32739 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32741 * gst-libs/gst/vaapi/Makefile.am:
32742 * gst-libs/gst/vaapi/gstvaapicontext.c:
32743 * gst-libs/gst/vaapi/gstvaapisurface.h:
32744 * gst/vaapi/gstvaapiconvert.c:
32745 * gst/vaapi/gstvaapisink.c:
32746 * tests/Makefile.am:
32747 * tests/test-surfaces.c:
32748 Change caps to use new video/x-surface generic type.
32749 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32751 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32754 * gst-libs/gst/vaapi/Makefile.am:
32755 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32756 * gst/vaapi/Makefile.am:
32757 * gst/vaapi/gstvaapiconvert.c:
32758 * gst/vaapi/gstvaapidecode.c:
32759 * gst/vaapi/gstvaapipluginutil.c:
32760 * gst/vaapi/gstvaapipluginutil.h:
32761 * gst/vaapi/gstvaapisink.c:
32762 * gst/vaapi/gstvaapisink.h:
32763 Port to GstVideoContext interface.
32764 This new interface allows for upstream and downstream display sharing
32765 that works in both static and dynamic pipelines.
32766 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32768 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32770 * gst/vaapi/gstvaapisink.c:
32771 vaapisink: use GST_ERROR to print error messages.
32773 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32775 * gst/vaapi/Makefile.am:
32776 vaapiplugin: link against VA/GLX when enabled.
32778 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32780 * gst/vaapi/gstvaapiconvert.c:
32781 * gst/vaapi/gstvaapisink.c:
32782 Add Intel copyright information.
32784 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32786 * gst/vaapi/gstvaapisink.c:
32787 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32789 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32793 * gst-libs/gst/Makefile.am:
32794 * gst-libs/gst/gstutils_version.h.in:
32795 Add new GStreamer version check utilities.
32797 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32799 * gst/vaapi/gstvaapisink.c:
32800 vaapisink: replace the deprecated xoverlay API with the new one.
32801 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32803 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32806 configure: allow for pre-releases.
32808 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32810 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32811 display: destroy display on creation failure.
32812 This allows element to detect that the display creation has actually
32814 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32816 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32818 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32819 display: don't crash when config is empty.
32820 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32822 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32825 * debian.upstream/copyright:
32826 doc: mention Collabora copyrights.
32828 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32831 .gitignore: refine for generated docs.
32833 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32836 * docs/reference/plugins/Makefile.am:
32838 * gst/vaapi/Makefile.am:
32839 * gst/vaapi/gstvaapi.c:
32840 * gst/vaapi/gstvaapiconvert.c:
32841 * gst/vaapi/gstvaapiconvert.h:
32842 * gst/vaapi/gstvaapidecode.c:
32843 * gst/vaapi/gstvaapidecode.h:
32844 * gst/vaapi/gstvaapisink.c:
32845 * gst/vaapi/gstvaapisink.h:
32846 * gst/vaapiconvert/Makefile.am:
32847 * gst/vaapidecode/Makefile.am:
32848 Group all plugins into the same bundle
32849 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32851 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32854 Bump version for development.
32856 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32859 * debian.upstream/control.in:
32860 debian: build against upstream libva packages.
32862 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32864 * docs/reference/libs/Makefile.am:
32865 * docs/reference/plugins/Makefile.am:
32866 * tests/Makefile.am:
32867 Fix build on Ubuntu 11.10 (Oneric).
32869 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32874 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32878 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32880 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32882 * gst/vaapiconvert/gstvaapiconvert.c:
32883 * gst/vaapidecode/gstvaapidecode.c:
32884 * gst/vaapisink/gstvaapisink.c:
32885 Update license in plugin definition
32886 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32888 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32891 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32892 decoder: fix use of invalid data at the end-of-stream.
32894 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32896 * gst/vaapiconvert/gstvaapiconvert.c:
32897 vaapiconvert: fix some warnings.
32899 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32902 * debian.upstream/changelog.in:
32903 * debian.upstream/control.in:
32904 * debian.upstream/copyright:
32905 * gst/vaapiconvert/gstvaapiconvert.c:
32906 * gst/vaapidecode/gstvaapidecode.c:
32907 * gst/vaapisink/gstvaapisink.c:
32908 Update with my current e-mail address.
32910 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32914 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
32916 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
32920 * tests/test-decode.c:
32921 * tests/test-decode.h:
32922 * tests/test-display.c:
32923 * tests/test-h264.c:
32924 * tests/test-h264.h:
32925 * tests/test-mpeg2.c:
32926 * tests/test-mpeg2.h:
32927 * tests/test-surfaces.c:
32928 * tests/test-textures.c:
32929 * tests/test-vc1.c:
32930 * tests/test-vc1.h:
32931 * tests/test-windows.c:
32932 switch tests licence to LGPL v2.1+
32934 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
32938 * debian.upstream/copyright:
32939 * gst/vaapiconvert/gstvaapiconvert.c:
32940 * gst/vaapiconvert/gstvaapiconvert.h:
32941 * gst/vaapidecode/gstvaapidecode.c:
32942 * gst/vaapidecode/gstvaapidecode.h:
32943 * gst/vaapisink/gstvaapisink.c:
32944 * gst/vaapisink/gstvaapisink.h:
32945 move plugins to LGPL v2.1+
32947 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32949 * gst/vaapidecode/gstvaapidecode.c:
32950 vaapidecode: fix sink caps to not expose size information.
32951 This fixes this particular issue:
32952 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
32953 a real subset of its template caps
32955 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32958 * gst/vaapidecode/gstvaapidecode.c:
32959 vaapidecode: fix decoding of MPEG-2 PS files.
32961 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32963 * gst-libs/gst/vaapi/Makefile.am:
32964 Cosmetics (sort source files).
32966 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32968 * gst/vaapiconvert/gstvaapiconvert.c:
32969 * gst/vaapiconvert/gstvaapiconvert.h:
32970 vaapiconvert: fix direct-rendering caps detection.
32972 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32974 * gst-libs/gst/vaapi/gstvaapiimage.c:
32975 Fix gst_vaapi_image_new_with_image().
32977 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32979 * gst/vaapiconvert/gstvaapiconvert.c:
32980 vaapiconvert: warn when surface failed to be updated with image.
32982 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32984 * gst/vaapiconvert/gstvaapiconvert.c:
32985 vaapiconvert: fix autodetection for vaDeriveImage() support.
32987 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32989 * gst/vaapiconvert/gstvaapiconvert.c:
32990 vaapiconvert: fix memory leak (VA surface image).
32992 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32995 * gst/vaapiconvert/gstvaapiconvert.c:
32996 vaapiconvert: fix direct-rendering mode.
32998 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33000 * docs/reference/libs/libs-sections.txt:
33001 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33002 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33003 Add gst_vaapi_video_buffer_new_from_buffer().
33004 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33005 Any image, surface or surface proxy will be inherited from the source buffer
33006 if it is a GstVaapiVideoBuffer.
33008 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33010 * gst/vaapiconvert/gstvaapiconvert.c:
33011 vaapiconvert: protect access to direct_rendering.
33013 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33015 * gst/vaapiconvert/gstvaapiconvert.c:
33016 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33018 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33022 * debian.upstream/copyright:
33023 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33024 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33025 * gst-libs/gst/vaapi/gstvaapisurface.h:
33026 * gst/vaapidecode/gstvaapidecode.c:
33027 * gst/vaapidecode/gstvaapidecode.h:
33028 Add Intel copyright information.
33030 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33035 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33037 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33038 Fix build with newer FFmpeg versions.
33040 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33042 * gst/vaapidecode/gstvaapidecode.c:
33043 * gst/vaapidecode/gstvaapidecode.h:
33044 Fix decoding of MPEG-2 TS files.
33046 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33048 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33049 Report caps update only once per video resolution change.
33051 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33053 * gst-libs/gst/vaapi/gstvaapisurface.h:
33054 Add canonical form (type name) of VA surface caps.
33056 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33059 Bump version for development.
33061 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33064 Use pretty build output with automake >= 1.11.
33066 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33068 * gst/vaapiconvert/Makefile.am:
33069 * gst/vaapidecode/Makefile.am:
33070 * gst/vaapisink/Makefile.am:
33071 * tests/Makefile.am:
33072 Fix build with libva headers not in a standard include dir.
33074 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33079 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33081 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33082 * gst-libs/gst/vaapi/gstvaapicompat.h:
33083 * gst-libs/gst/vaapi/gstvaapicontext.c:
33084 * gst-libs/gst/vaapi/gstvaapicontext.h:
33085 * gst-libs/gst/vaapi/gstvaapidebug.h:
33086 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33087 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33088 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33089 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33090 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33091 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33092 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33093 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33094 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33095 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33096 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33097 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33098 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33099 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33100 * gst-libs/gst/vaapi/gstvaapiimage.c:
33101 * gst-libs/gst/vaapi/gstvaapiimage.h:
33102 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33103 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33104 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33105 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33106 * gst-libs/gst/vaapi/gstvaapiobject.c:
33107 * gst-libs/gst/vaapi/gstvaapiobject.h:
33108 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33109 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33110 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33111 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33112 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33113 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33114 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33115 * gst-libs/gst/vaapi/gstvaapisurface.c:
33116 * gst-libs/gst/vaapi/gstvaapisurface.h:
33117 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33118 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33119 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33120 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33121 * gst-libs/gst/vaapi/gstvaapitexture.c:
33122 * gst-libs/gst/vaapi/gstvaapitexture.h:
33123 * gst-libs/gst/vaapi/gstvaapitypes.h:
33124 * gst-libs/gst/vaapi/gstvaapiutils.c:
33125 * gst-libs/gst/vaapi/gstvaapiutils.h:
33126 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33127 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33128 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33129 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33130 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33131 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33132 * gst-libs/gst/vaapi/gstvaapivalue.c:
33133 * gst-libs/gst/vaapi/gstvaapivalue.h:
33134 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33135 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33136 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33137 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33138 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33139 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33140 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33141 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33142 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33143 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33144 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33145 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33146 * gst/vaapiconvert/gstvaapiconvert.c:
33147 * gst/vaapiconvert/gstvaapiconvert.h:
33148 * gst/vaapidecode/gstvaapidecode.c:
33149 * gst/vaapidecode/gstvaapidecode.h:
33150 * gst/vaapisink/gstvaapisink.c:
33151 * gst/vaapisink/gstvaapisink.h:
33154 * tests/test-decode.c:
33155 * tests/test-decode.h:
33156 * tests/test-display.c:
33157 * tests/test-h264.c:
33158 * tests/test-h264.h:
33159 * tests/test-mpeg2.c:
33160 * tests/test-mpeg2.h:
33161 * tests/test-surfaces.c:
33162 * tests/test-textures.c:
33163 * tests/test-vc1.c:
33164 * tests/test-vc1.h:
33165 * tests/test-windows.c:
33166 Update copyright notice.
33168 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33171 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33172 * gst-libs/gst/vaapi/gstvaapisurface.c:
33173 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33174 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33175 * gst-libs/gst/vaapi/gstvaapitexture.c:
33176 * gst-libs/gst/vaapi/gstvaapiutils.c:
33177 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33178 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33179 * gst-libs/gst/vaapi/gstvaapivalue.c:
33180 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33181 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33182 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33183 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33184 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33185 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33186 Fix licensing terms.
33188 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33193 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33195 * debian.upstream/copyright:
33196 Fix license terms...
33198 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33200 * gst/vaapisink/gstvaapisink.c:
33201 Render pretty background only in use-reflection=true mode.
33203 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33208 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33210 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33211 Drop the GLX 1.3 requirement.
33213 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33215 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33216 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33217 Call the GLX/Pixmap related functions through the vtable.
33219 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33223 * gst-libs/gst/vaapi/Makefile.am:
33224 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33225 Drop dependency on libavformat.
33227 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33229 * gst-libs/gst/video/gstbasevideodecoder.c:
33230 * gst-libs/gst/video/gstbasevideodecoder.h:
33231 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33233 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33235 * gst-libs/gst/video/gstbasevideodecoder.c:
33236 * gst-libs/gst/video/gstbasevideoutils.c:
33237 * gst-libs/gst/video/gstbasevideoutils.h:
33238 Drop superfluous functions.
33240 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33242 * gst-libs/gst/video/gstbasevideodecoder.c:
33243 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33245 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33247 * gst-libs/gst/video/gstbasevideodecoder.c:
33248 Further drop dependency on libgstvideo.
33250 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33252 * gst-libs/gst/video/Makefile.am:
33253 * gst-libs/gst/video/gstbasevideocodec.c:
33254 * gst-libs/gst/video/gstbasevideocodec.h:
33255 * gst-libs/gst/video/gstbasevideodecoder.c:
33256 * gst-libs/gst/video/gstbasevideodecoder.h:
33257 * gst-libs/gst/video/gstbasevideoutils.c:
33258 * gst-libs/gst/video/gstbasevideoutils.h:
33259 Add GstBaseVideoDecoder from gst-plugins-bad git.
33261 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33263 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33264 Fix GLX version check.
33266 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33270 Bump version for development.
33272 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33275 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33276 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33278 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33283 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33285 * gst-libs/gst/vaapi/gstvaapicompat.h:
33286 Fix build with older VA-API 0.29-sds.
33288 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33290 * gst/vaapisink/gstvaapisink.c:
33291 * gst/vaapisink/gstvaapisink.h:
33292 Fix upscaling in foreign window (Totem).
33294 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33296 * gst/vaapisink/gstvaapisink.c:
33297 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33299 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33302 * gst/vaapisink/gstvaapisink.c:
33303 Fix video rendering rect within an embedder window (Totem).
33305 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33308 * gst/vaapisink/gstvaapisink.c:
33309 Disable GLX rendering when vaapisink uses a foreign X window.
33311 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33313 * gst/vaapisink/gstvaapisink.c:
33314 Simplify GLX rendering code.
33316 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33319 Bump version for development.
33321 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33326 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33328 * gst/vaapidecode/gstvaapidecode.c:
33329 Wait for at most one second for a VA surface to become available.
33331 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33335 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33337 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33341 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33342 Fix decoder caps to report codec aliases.
33344 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33347 * gst/vaapidecode/gstvaapidecode.c:
33348 * gst/vaapidecode/gstvaapidecode.h:
33349 Fix VC-1 decoding through the playbin2 pipeline.
33351 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33353 * docs/reference/libs/libs-sections.txt:
33354 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33355 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33356 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33357 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33358 Regularly update and expose decoder caps.
33360 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33362 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33363 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33364 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33365 Add mechanism to reinsert buffer leftovers into the queue.
33367 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33370 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33371 Fix memory leak of encoded buffers.
33373 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33375 * docs/reference/libs/libs-sections.txt:
33376 * gst-libs/gst/vaapi/gstvaapicontext.c:
33377 * gst-libs/gst/vaapi/gstvaapicontext.h:
33378 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33379 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33380 Check for out-of-free-surfaces condition.
33382 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33384 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33385 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33387 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33389 * gst/vaapisink/gstvaapisink.c:
33390 Improve debug info for gst_vaapisink_ensure_render_rect().
33392 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33395 Bump version for development.
33397 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33402 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33404 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33405 Improve previous fix.
33407 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33410 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33411 Fix a crash in the FFmpeg decoder on close.
33413 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33416 Sort platforms by name.
33418 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33422 Bump version for development.
33424 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33426 * gst/vaapisink/gstvaapisink.c:
33427 Add debug info for _show_frame().
33429 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33432 Nuke older build dir.
33434 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33436 * debian.upstream/control.in:
33437 Fix packaging deps.
33439 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33444 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33447 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33448 Fix OpenGL texture internal format (Clutter).
33450 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33455 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33457 * gst/vaapisink/gstvaapisink.c:
33458 Debug video & display PARs.
33460 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33462 * gst/vaapisink/gstvaapisink.c:
33463 Use XGetGeometry() to retrieve the window size.
33465 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33467 * gst/vaapisink/gstvaapisink.c:
33470 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33472 * gst/vaapisink/gstvaapisink.c:
33473 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33475 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33478 Drop obsolete comment.
33480 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33485 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33487 * gst/vaapidecode/gstvaapidecode.c:
33488 Fix GstVaapiDisplay refcounting in vaapidecode.
33490 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33492 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33495 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33497 * gst/vaapisink/gstvaapisink.c:
33498 * gst/vaapisink/gstvaapisink.h:
33499 Fix render rect when the foreign window size changes.
33501 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33505 * gst/vaapisink/Makefile.am:
33506 * gst/vaapisink/gstvaapisink.c:
33507 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33509 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33512 Update deps to match configure.ac versions.
33514 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33516 * gst/vaapiconvert/gstvaapiconvert.c:
33517 * gst/vaapidecode/gstvaapidecode.c:
33518 * gst/vaapisink/gstvaapisink.c:
33521 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33524 * gst/vaapidecode/Makefile.am:
33525 * gst/vaapidecode/gstvaapidecode.c:
33526 * gst/vaapidecode/gstvaapidecode.h:
33527 Fix vaapidecode to expose the HW supported caps only.
33529 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33531 * gst/vaapidecode/gstvaapidecode.c:
33532 Initialize decoder earlier.
33534 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33538 * gst/vaapidecode/gstvaapidecode.c:
33539 Fix integration within the playbin2 pipeline.
33541 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33543 * docs/reference/libs/Makefile.am:
33544 Exclude gstvaapiutils_gst.h from docs for now.
33546 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33548 * gst/vaapiconvert/gstvaapiconvert.c:
33549 * gst/vaapidecode/gstvaapidecode.c:
33550 * gst/vaapisink/gstvaapisink.c:
33551 Raise VA-API plugins ranks.
33553 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33555 * gst-libs/gst/vaapi/Makefile.am:
33556 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33557 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33558 Add gst_vaapi_display_lookup_downstream() helper.
33560 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33562 * gst/vaapidecode/gstvaapidecode.c:
33563 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33565 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33567 * docs/reference/libs/libs-sections.txt:
33568 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33569 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33570 * gst/vaapisink/gstvaapisink.c:
33571 Expose VA display through GstVaapiVideoBuffer.
33573 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33575 * gst/vaapidecode/gstvaapidecode.c:
33576 Simplify gst_vaapidecode_set_caps() and fix memory leak.
33578 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33580 * docs/reference/libs/libs-sections.txt:
33581 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33582 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33583 Expose video pool display.
33585 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33587 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33588 Stop iteration if there is no more element to examine.
33590 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33592 * gst/vaapiconvert/gstvaapiconvert.c:
33593 * gst/vaapidecode/gstvaapidecode.c:
33594 * gst/vaapisink/gstvaapisink.c:
33595 Improve plugin details.
33597 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33599 * gst-libs/gst/vaapi/gstvaapisurface.h:
33600 * gst/vaapiconvert/gstvaapiconvert.c:
33601 * gst/vaapidecode/gstvaapidecode.c:
33602 * gst/vaapisink/gstvaapisink.c:
33603 Factor out VA surface caps.
33605 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33607 * gst/vaapidecode/gstvaapidecode.c:
33608 Add gst_vaapidecode_ensure_display() helper for set-caps.
33610 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33613 Bump version for development.
33615 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33618 Really make it 0.2.0.
33620 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33625 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33627 * docs/reference/libs/Makefile.am:
33628 Don't exclude GstVaapiParamSpecs.
33630 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33632 * docs/reference/libs/Makefile.am:
33633 * docs/reference/libs/libs-sections.txt:
33634 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33635 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33638 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33640 * gst/vaapiconvert/gstvaapiconvert.c:
33641 * gst/vaapidecode/gstvaapidecode.c:
33642 * gst/vaapisink/gstvaapisink.c:
33643 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.
33645 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33647 * gst-libs/gst/vaapi/Makefile.am:
33648 Really link all helper libraries with libtool -no-undefined.
33650 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33652 * gst-libs/gst/vaapi/Makefile.am:
33653 Link helper libraries with libtool -no-undefined.
33655 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33658 * debian.upstream/gstreamer-vaapi.install.in:
33659 * gst/vaapiconvert/Makefile.am:
33660 * gst/vaapidecode/Makefile.am:
33661 * gst/vaapisink/Makefile.am:
33662 Don't build plugins with SONAME. Make them plain *.so.
33664 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33667 Improve documentation for release.
33669 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33671 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33672 Fix build with older VA-API 0.29.
33674 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33679 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33681 * tests/Makefile.am:
33684 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33686 * docs/reference/libs/Makefile.am:
33687 * docs/reference/libs/libs-docs.xml.in:
33688 * docs/reference/libs/libs-sections.txt:
33689 * docs/reference/libs/libs.core.types:
33690 * docs/reference/plugins/Makefile.am:
33691 * docs/reference/plugins/plugins-docs.xml.in:
33692 * docs/reference/plugins/plugins-sections.txt:
33693 * docs/reference/plugins/plugins.types:
33696 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33698 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33701 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33703 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33704 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33705 * gst/vaapidecode/gstvaapidecode.c:
33706 * tests/test-decode.c:
33707 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33709 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33711 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33712 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33713 Extract framerate information from caps.
33715 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33717 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33718 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33719 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33720 Move caps initialization to parent class.
33722 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33724 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33727 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33729 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33732 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33734 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33735 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33736 More simplifications.
33738 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33740 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33741 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33742 * tests/test-decode.c:
33743 Simplify GstVaapiDecoder API.
33745 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33747 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33748 Drop obsolete defs.
33750 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33752 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33753 Drop obsolete decls.
33755 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33757 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33758 * gst/vaapidecode/gstvaapidecode.c:
33759 Add more aliases for MPEG-4 decoding.
33761 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33763 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33764 Use avctx->coded_{width,height} info to create the VA context.
33766 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33768 * tests/test-decode.c:
33769 * tests/test-decode.h:
33770 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33772 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33774 * tests/test-decode.c:
33775 * tests/test-decode.h:
33776 * tests/test-h264.c:
33777 * tests/test-h264.h:
33778 * tests/test-mpeg2.c:
33779 * tests/test-mpeg2.h:
33780 * tests/test-vc1.c:
33781 * tests/test-vc1.h:
33782 Simplify tests info.
33784 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33786 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33787 Try to improve heuristics to use an AVCodecContextParser.
33789 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33791 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33792 Fix VC-1 decoding, it does not require any specific parser.
33794 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33796 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33797 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33799 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33801 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33802 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33803 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33805 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33807 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33808 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33809 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33810 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33811 * gst/vaapidecode/gstvaapidecode.c:
33812 * gst/vaapidecode/gstvaapidecode.h:
33813 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33815 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33817 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33818 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33819 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33820 Improve WMV3 detection yet further.
33822 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33824 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33825 Fix detection of plain old WMV3 contents.
33827 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33829 * tests/test-vc1.c:
33830 Add End-of-Sequence start code.
33832 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33834 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33835 * gst/vaapidecode/gstvaapidecode.c:
33836 Fix VC-1 detection.
33838 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33840 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33841 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33843 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33845 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33846 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33847 Drop obsolete (and wrong) code.
33849 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33851 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33852 Cosmetics (spelling).
33854 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33856 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33857 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33858 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33859 Try to fix timestamps (step 1). Looks OK on H55.
33861 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33863 * debian.upstream/Makefile.am:
33864 Ship with COPYING.LIB.
33866 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33871 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33872 * gst-libs/gst/vaapi/gstvaapicompat.h:
33873 * gst-libs/gst/vaapi/gstvaapicontext.c:
33874 * gst-libs/gst/vaapi/gstvaapicontext.h:
33875 * gst-libs/gst/vaapi/gstvaapidebug.h:
33876 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33877 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33878 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33879 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33880 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33881 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33882 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33883 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33884 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33885 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33886 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33887 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33888 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33889 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33890 * gst-libs/gst/vaapi/gstvaapiimage.c:
33891 * gst-libs/gst/vaapi/gstvaapiimage.h:
33892 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33893 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33894 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33895 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33896 * gst-libs/gst/vaapi/gstvaapiobject.c:
33897 * gst-libs/gst/vaapi/gstvaapiobject.h:
33898 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33899 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33900 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33901 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33902 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33903 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33904 * gst-libs/gst/vaapi/gstvaapisurface.h:
33905 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33906 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33907 * gst-libs/gst/vaapi/gstvaapitexture.h:
33908 * gst-libs/gst/vaapi/gstvaapitypes.h:
33909 * gst-libs/gst/vaapi/gstvaapiutils.h:
33910 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33911 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33912 * gst-libs/gst/vaapi/gstvaapivalue.h:
33913 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33914 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33915 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33916 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33917 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33918 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33919 Relicense gst-libs/ code to LGPL v2.1+.
33921 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33923 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33924 Drop extraneous comma.
33926 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33928 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33929 Drop variant=itu field to help codec detection.
33931 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33933 * gst/vaapidecode/gstvaapidecode.c:
33934 Decode as many surfaces as possible in gst_vaapidecode_step().
33936 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33938 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33939 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33940 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33941 * gst/vaapidecode/gstvaapidecode.c:
33942 * gst/vaapidecode/gstvaapidecode.h:
33943 * tests/test-decode.c:
33944 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
33946 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33951 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33953 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33954 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
33956 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33958 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33959 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33960 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
33962 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33964 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33965 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33966 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
33968 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33970 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33971 Document H.264 / AVC1 format case better.
33973 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33975 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33976 Fix H.264 decoding with AVC1 format bitstreams.
33978 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33980 * gst/vaapidecode/gstvaapidecode.c:
33981 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
33983 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33985 * gst/vaapisink/gstvaapisink.c:
33986 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
33988 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33990 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33991 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33992 Export gst_vaapi_video_buffer_new().
33994 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33996 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33997 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
33999 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34004 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34009 * gst/vaapidecode/Makefile.am:
34010 * gst/vaapidecode/gstvaapidecode.c:
34011 * gst/vaapidecode/gstvaapidecode.h:
34012 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34014 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34016 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34017 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34018 Add gst_vaapi_decoder_pause().
34020 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34022 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34023 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34024 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34025 Use a GstTask with start/stop semantics for the decoder thread.
34027 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34029 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34030 Drop extraneous var.
34032 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34034 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34035 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34036 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34038 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34040 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34041 Fix gst_vaapi_decoder_get_surface() status.
34043 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34045 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34046 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34047 Try to set correct timestamps to the decoded surface proxy.
34049 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34051 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34052 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34053 * tests/test-decode.c:
34054 Add timestamps to GstVaapiSurfaceProxy.
34056 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34058 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34059 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34061 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34063 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34064 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34066 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34068 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34069 Prefer profile from codec-data if any was found there.
34071 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34073 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34074 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34076 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34078 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34079 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34081 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34083 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34084 Fix VC-1 codec initialization, it really needs an extradata buffer.
34086 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34088 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34089 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34090 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.
34092 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34094 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34095 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34097 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34099 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34100 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34101 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34102 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34103 * tests/test-decode.c:
34104 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34106 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34108 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34109 Cosmetics (weird indentation).
34111 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34113 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34114 Cosmetics (extraneous variable, debug message).
34116 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34119 Fix check for VA-API enabled FFmpeg.
34121 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34123 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34124 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34125 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34126 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34127 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34129 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34131 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34132 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34133 Add more error codes. Fix documentation.
34135 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34137 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34138 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34140 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34142 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34143 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34144 * tests/test-decode.c:
34145 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34147 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34149 * tests/test-vc1.c:
34150 Drop useless End-of-Sequence marker.
34152 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34154 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34155 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.
34157 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34159 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34160 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34161 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.
34163 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34165 * tests/test-h264.c:
34166 * tests/test-vc1.c:
34167 Regenerate correct clips.
34169 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34171 * tests/Makefile.am:
34172 * tests/test-decode.c:
34173 * tests/test-h264.c:
34174 * tests/test-h264.h:
34175 * tests/test-mpeg2.c:
34176 * tests/test-mpeg2.h:
34177 * tests/test-vc1.c:
34178 * tests/test-vc1.h:
34179 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34180 XXX: only VC-1 decoding works at this time because of awful
34181 bugs left in GstVaapiDecoderFfmpeg et al.
34183 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34186 * gst-libs/gst/vaapi/Makefile.am:
34187 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34188 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34189 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34190 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34191 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34192 Add initial (multithreaded) decoder based on FFmpeg.
34193 There are tons of bugs left:
34194 - Decoder API not nice enough with error conditions
34195 - FFmpeg parser is sometimes broken
34196 - Packets queue can be lost
34198 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34200 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34201 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34202 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34204 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34206 * gst-libs/gst/vaapi/gstvaapicontext.c:
34207 * gst-libs/gst/vaapi/gstvaapicontext.h:
34208 Add VA context abstraction.
34210 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34212 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34213 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34215 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34217 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34218 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34219 Add a means to cap the number of objects allocated in the pool.
34221 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34223 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34224 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34225 Add VA entrypoint abstraction.
34227 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34229 * docs/reference/libs/libs-docs.xml.in:
34230 * docs/reference/libs/libs-sections.txt:
34231 * gst-libs/gst/vaapi/Makefile.am:
34232 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34233 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34234 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34235 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34236 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34237 * tests/test-display.c:
34238 Add VA profile abstraction.
34240 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34242 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34243 Fix OpenGL rendering on G45 systems.
34245 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34247 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34248 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34250 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34252 * gst-libs/gst/vaapi/gstvaapitexture.c:
34253 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34254 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34255 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.
34257 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34259 * gst-libs/gst/vaapi/gstvaapitexture.c:
34260 Fix get-out conditions.
34262 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34264 * gst-libs/gst/vaapi/gstvaapitexture.c:
34265 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34266 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.
34268 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34270 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34273 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34275 * docs/reference/libs/libs-sections.txt:
34276 * gst-libs/gst/vaapi/Makefile.am:
34277 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34278 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34279 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34280 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34281 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34282 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34283 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34284 * gst-libs/gst/vaapi/gstvaapitexture.c:
34285 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34286 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34287 * tests/test-windows.c:
34288 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34290 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34292 * gst-libs/gst/vaapi/Makefile.am:
34293 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34294 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34295 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34296 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34297 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34298 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34299 * gst-libs/gst/vaapi/gstvaapiimage.c:
34300 * gst-libs/gst/vaapi/gstvaapiobject.c:
34301 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34302 * gst-libs/gst/vaapi/gstvaapisurface.c:
34303 * gst-libs/gst/vaapi/gstvaapitexture.c:
34304 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34305 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34306 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34307 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34309 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34311 * gst-libs/gst/vaapi/gstvaapitexture.c:
34312 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34313 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34314 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34315 Improve handling of GL contexts.
34317 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34322 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34325 Bump version for development.
34327 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34330 * debian.upstream/Makefile.am:
34331 * debian.upstream/control.in:
34332 Rename -dev package to libgstvaapi-dev.
34334 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34340 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34342 * gst-libs/gst/vaapi/gstvaapiutils.c:
34343 Fix build with VA-API < 0.30.
34345 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34348 * gst-libs/gst/vaapi/gstvaapicompat.h:
34349 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34350 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34351 * gst-libs/gst/vaapi/gstvaapitexture.c:
34352 * tests/test-display.c:
34353 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34355 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34357 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34358 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34359 Add TFP and FBO helpers.
34361 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34363 * gst-libs/gst/vaapi/gstvaapiutils.c:
34364 * gst-libs/gst/vaapi/gstvaapiutils.h:
34365 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34367 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34369 * gst-libs/gst/vaapi/gstvaapitexture.c:
34370 * gst-libs/gst/vaapi/gstvaapiutils.c:
34371 * gst-libs/gst/vaapi/gstvaapiutils.h:
34372 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34373 Use a shorter function name.
34375 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34377 * docs/reference/libs/libs-sections.txt:
34378 * gst-libs/gst/vaapi/gstvaapisurface.c:
34379 * gst-libs/gst/vaapi/gstvaapisurface.h:
34380 * gst-libs/gst/vaapi/gstvaapiutils.c:
34381 * gst-libs/gst/vaapi/gstvaapiutils.h:
34382 Add gst_vaapi_surface_query_status() wrapper.
34384 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34386 * docs/reference/plugins/Makefile.am:
34387 Fix leftover during migration.
34389 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34393 * docs/reference/plugins/Makefile.am:
34395 * gst/vaapiconvert/Makefile.am:
34396 * gst/vaapiconvert/gstvaapiconvert.c:
34397 * gst/vaapiconvert/gstvaapiconvert.h:
34398 * gst/vaapisink/Makefile.am:
34399 * gst/vaapisink/gstvaapisink.c:
34400 * gst/vaapisink/gstvaapisink.h:
34401 Rename to gst/ as sys/ was too vague.
34403 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34405 * gst-libs/gst/vaapi/gstvaapiimage.c:
34406 * gst-libs/gst/vaapi/gstvaapiimage.h:
34407 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34408 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34409 * gst-libs/gst/vaapi/gstvaapisurface.c:
34410 * gst-libs/gst/vaapi/gstvaapisurface.h:
34411 Try to not reference VA-API types directly.
34413 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34415 * sys/vaapisink/gstvaapisink.c:
34416 Fix reflection code to preserve aspect ratio.
34418 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34420 * sys/vaapisink/gstvaapisink.c:
34421 * sys/vaapisink/gstvaapisink.h:
34422 Fix fullscreen mode.
34424 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34426 * sys/vaapisink/gstvaapisink.c:
34427 * sys/vaapisink/gstvaapisink.h:
34428 Add OpenGL reflection effect ("use-reflection").
34430 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34433 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34434 Use a projection suitable for rotation around the Y axis.
34436 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34439 * sys/vaapisink/Makefile.am:
34440 * sys/vaapisink/gstvaapisink.c:
34441 * sys/vaapisink/gstvaapisink.h:
34442 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34444 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34447 * debian.upstream/Makefile.am:
34448 * debian.upstream/control.in:
34449 * debian.upstream/libgstvaapi-glx.install.in:
34450 Add libgstvaapi-glx-0 package.
34452 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34454 * pkgconfig/Makefile.am:
34455 Really fix make distclean.
34457 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34459 * docs/reference/libs/Makefile.am:
34462 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34464 * pkgconfig/Makefile.am:
34465 Fix make distclean.
34467 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34469 * tests/Makefile.am:
34472 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34474 * docs/reference/libs/Makefile.am:
34475 * docs/reference/libs/libs.core.types:
34476 * docs/reference/libs/libs.glx.types:
34477 * docs/reference/libs/libs.x11.types:
34480 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34482 * sys/vaapisink/gstvaapisink.h:
34483 Fix build without GLX.
34485 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34490 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34492 * sys/vaapisink/Makefile.am:
34493 * sys/vaapisink/gstvaapisink.c:
34494 * sys/vaapisink/gstvaapisink.h:
34495 Add VA/GLX support to vaapisink.
34497 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34499 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34500 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34501 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34502 Add glXSwapBuffers() workaround for NVIDIA.
34504 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34506 * tests/Makefile.am:
34507 * tests/test-textures.c:
34508 Improve VA/GLX textures test.
34510 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34512 * gst-libs/gst/vaapi/gstvaapitexture.c:
34513 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34514 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34515 Fix texture rendering.
34517 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34519 * docs/reference/libs/libs-docs.xml.in:
34520 * docs/reference/libs/libs-sections.txt:
34521 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34522 * gst-libs/gst/vaapi/gstvaapitexture.c:
34525 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34527 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34528 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34529 Add gst_vaapi_window_glx_put_texture() helper.
34531 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34533 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34536 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34540 * tests/test-windows.c:
34543 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34545 * gst-libs/gst/vaapi/Makefile.am:
34546 * gst-libs/gst/vaapi/gstvaapitexture.c:
34547 * gst-libs/gst/vaapi/gstvaapitexture.h:
34548 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34549 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34550 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34552 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34554 * docs/reference/libs/libs-sections.txt:
34555 * gst-libs/gst/vaapi/gstvaapiobject.c:
34556 * gst-libs/gst/vaapi/gstvaapiobject.h:
34557 Add gst_vaapi_object_{,un}lock_display() helpers.
34559 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34561 * tests/Makefile.am:
34564 * tests/test-windows.c:
34565 Factor out image utilities.
34567 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34569 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34570 MT-Safe: lock display.
34572 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34574 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34575 Make sure window resize completed prior to resizing the GL viewport.
34577 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34579 * gst-libs/gst/vaapi/Makefile.am:
34580 gstvaapicompat.h is a private header, don't install it.
34582 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34584 * docs/reference/libs/libs-sections.txt:
34585 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34586 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34587 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34588 Add gst_vaapi_display_{sync,flush}() helpers.
34590 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34592 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34593 * sys/vaapisink/gstvaapisink.c:
34594 * sys/vaapisink/gstvaapisink.h:
34595 Add "synchronous" mode.
34597 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34599 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34600 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34601 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34603 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34605 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34606 Restore GLX context only if there is one.
34608 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34610 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34611 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34612 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34613 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34614 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34616 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34618 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34619 Check GstVaapiWindow::render() is available prior to calling it.
34621 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34623 * tests/Makefile.am:
34624 * tests/test-display.c:
34625 * tests/test-textures.c:
34626 Add VA/GLX display tests.
34628 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34631 * gst-libs/gst/vaapi/Makefile.am:
34634 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34636 * docs/reference/libs/Makefile.am:
34637 * docs/reference/libs/libs-docs.xml.in:
34638 * docs/reference/libs/libs-sections.txt:
34639 * docs/reference/libs/libs.types:
34640 Add missing API documentation.
34642 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34645 * gst-libs/gst/vaapi/Makefile.am:
34646 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34647 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34648 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34649 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34650 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34651 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34652 * pkgconfig/Makefile.am:
34653 * pkgconfig/gstreamer-vaapi-glx.pc.in:
34654 * tests/Makefile.am:
34655 * tests/test-textures.c:
34656 Add initial VA/GLX support.
34658 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34660 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34661 Add missing includes (for vaapi_check_status()).
34663 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34665 * gst-libs/gst/vaapi/gstvaapidebug.h:
34666 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34668 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34670 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34671 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34672 Add gst_vaapi_window_x11_is_foreign_xid() helper.
34674 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34676 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34677 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34678 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34679 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34680 Allow derived classes to specify custom Visual and Colormap.
34682 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34684 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34685 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34686 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34687 Allow window creation with a specific visual (e.g. for GLX support).
34689 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34691 * gst-libs/gst/vaapi/gstvaapiimage.c:
34692 Fix return value on error (though it's the same in the end).
34694 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34696 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34697 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34698 Simplify initialization of VADisplay.
34700 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34703 Move __attribute__((visibility("hidden"))) check down.
34705 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34707 * docs/reference/libs/libs-sections.txt:
34708 * gst-libs/gst/vaapi/gstvaapiimage.c:
34709 * gst-libs/gst/vaapi/gstvaapiimage.h:
34710 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34711 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34712 * gst-libs/gst/vaapi/gstvaapisurface.c:
34713 * gst-libs/gst/vaapi/gstvaapisurface.h:
34714 * tests/test-surfaces.c:
34715 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34717 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34719 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34720 Use the parent display object, no need to maintain another one.
34721 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34723 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34725 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34726 Add more internal helpers.
34728 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34730 * gst-libs/gst/vaapi/gstvaapiimage.c:
34731 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34732 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34733 * gst-libs/gst/vaapi/gstvaapisurface.c:
34734 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34735 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34736 Rename to GST_VAAPI_OBJECT_DISPLAY().
34738 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34740 * docs/reference/libs/libs-sections.txt:
34741 * gst-libs/gst/vaapi/gstvaapiimage.c:
34742 * gst-libs/gst/vaapi/gstvaapiobject.c:
34743 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34744 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34745 * gst-libs/gst/vaapi/gstvaapisurface.c:
34746 * gst-libs/gst/vaapi/gstvaapitypes.h:
34747 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34748 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34750 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34752 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34753 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34754 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34755 Make GstVaapiWindow* derive from GstVaapiObject.
34757 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34760 Factor out use gstreamer-vaapi (PACKAGE name).
34762 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34765 Improve versioning summary.
34767 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34769 * gst-libs/gst/vaapi/Makefile.am:
34770 gstvaapicompat.h is now a private header (not installed).
34772 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34774 * gst-libs/gst/vaapi/gstvaapiimage.c:
34775 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34776 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34777 * gst-libs/gst/vaapi/gstvaapiobject.c:
34778 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34779 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34780 Include gstvaapicompat.h in source files only, not headers.
34782 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34785 * gst-libs/gst/vaapi/Makefile.am:
34786 * sys/vaapiconvert/Makefile.am:
34787 * sys/vaapisink/Makefile.am:
34788 * tests/Makefile.am:
34789 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34791 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34795 * gst-libs/gst/vaapi/Makefile.am:
34796 * gst-libs/gst/vaapi/gstvaapicompat.h:
34797 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34798 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34799 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34800 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34801 * gst-libs/gst/vaapi/gstvaapisurface.c:
34802 * gst-libs/gst/vaapi/gstvaapiutils.c:
34803 * gst-libs/gst/vaapi/gstvaapiutils.h:
34804 * pkgconfig/gstreamer-vaapi-x11.pc.in:
34805 * pkgconfig/gstreamer-vaapi.pc.in:
34806 * sys/vaapiconvert/Makefile.am:
34807 * sys/vaapisink/Makefile.am:
34808 * tests/Makefile.am:
34809 Add compatibility with the original VA-API 0.29.
34811 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34813 * gst-libs/gst/vaapi/gstvaapivalue.h:
34814 Add missing file (gstvaapivalue.h).
34816 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34818 * gst-libs/gst/vaapi/gstvaapiimage.c:
34819 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34820 * gst-libs/gst/vaapi/gstvaapisurface.c:
34821 Fix g_warning() invocation.
34823 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34825 * gst-libs/gst/vaapi/gstvaapisurface.c:
34826 Deassociate subpictures while destroying the surface.
34828 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34830 * gst-libs/gst/vaapi/gstvaapisurface.c:
34831 Fix destruction order of subpictures. They should be destroyed first.
34833 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34836 * gst-libs/gst/vaapi/gstvaapiimage.c:
34837 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34838 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34839 * tests/test-windows.c:
34840 Add support for AYUV format.
34842 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34844 * tests/test-windows.c:
34845 Simplify upload process and fallback to subpictures.
34847 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34849 * docs/reference/libs/libs-docs.xml.in:
34850 * docs/reference/libs/libs-sections.txt:
34851 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34854 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34856 * gst-libs/gst/vaapi/Makefile.am:
34857 * gst-libs/gst/vaapi/gstvaapiobject.c:
34858 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34859 * gst-libs/gst/vaapi/gstvaapitypes.h:
34860 * gst-libs/gst/vaapi/gstvaapivalue.c:
34861 Move GValue specific stuff to a dedicated file.
34863 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34865 * tests/test-surfaces.c:
34866 Cosmetics (lowercase for consistency).
34868 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34870 * gst-libs/gst/vaapi/gstvaapiobject.c:
34871 Cosmetics (vertical alignment).
34873 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34875 * gst-libs/gst/vaapi/gstvaapiobject.c:
34876 Fix return value on error.
34878 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34880 * docs/reference/libs/libs-sections.txt:
34881 * gst-libs/gst/vaapi/gstvaapiimage.c:
34882 * gst-libs/gst/vaapi/gstvaapiimage.h:
34883 * gst-libs/gst/vaapi/gstvaapiobject.c:
34884 * gst-libs/gst/vaapi/gstvaapiobject.h:
34885 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34886 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34887 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34888 * gst-libs/gst/vaapi/gstvaapisurface.c:
34889 * gst-libs/gst/vaapi/gstvaapisurface.h:
34890 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34891 * tests/test-surfaces.c:
34892 Move "id" down to the GstVaapiObject base.
34894 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34896 * gst-libs/gst/vaapi/gstvaapitypes.c:
34897 Cosmetics (drop extraneous empty line).
34899 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34901 * gst-libs/gst/vaapi/Makefile.am:
34902 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34903 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34904 Add GParamSpecs for GstVaapiID.
34906 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34908 * docs/reference/libs/libs.types:
34909 Drop gst_vaapi_id_get_type().
34911 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34913 * docs/reference/libs/libs-sections.txt:
34914 * gst-libs/gst/vaapi/gstvaapitypes.h:
34915 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
34917 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34919 * docs/reference/libs/libs-sections.txt:
34920 * docs/reference/libs/libs.types:
34921 * gst-libs/gst/vaapi/Makefile.am:
34922 * gst-libs/gst/vaapi/gstvaapitypes.c:
34923 * gst-libs/gst/vaapi/gstvaapitypes.h:
34924 Add GstVaapiID abstraction.
34926 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34928 * docs/reference/libs/libs.types:
34931 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34933 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34934 * gst-libs/gst/vaapi/gstvaapiimage.c:
34935 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34936 * gst-libs/gst/vaapi/gstvaapisurface.c:
34937 Drop useless include (<va/va_backend.h>).
34939 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34941 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34942 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
34944 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34946 * gst-libs/gst/vaapi/Makefile.am:
34947 * gst-libs/gst/vaapi/gstvaapiimage.c:
34948 * gst-libs/gst/vaapi/gstvaapiobject.c:
34949 * gst-libs/gst/vaapi/gstvaapiobject.h:
34950 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34951 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34952 * gst-libs/gst/vaapi/gstvaapisurface.c:
34953 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34954 Move private definitions and accessors to gstvaapiobject_priv.h.
34956 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34958 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34959 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34960 * gst-libs/gst/vaapi/gstvaapiimage.c:
34961 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34962 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34963 * gst-libs/gst/vaapi/gstvaapiobject.c:
34964 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34965 * gst-libs/gst/vaapi/gstvaapisurface.c:
34966 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
34967 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34968 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34969 * gst-libs/gst/vaapi/gstvaapivideosink.c:
34970 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34971 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34972 Fix short descriptions.
34974 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34978 * debian.upstream/Makefile.am:
34979 * debian.upstream/changelog.in:
34980 * debian.upstream/compat:
34981 * debian.upstream/control.in:
34982 * debian.upstream/copyright:
34983 * debian.upstream/gstreamer-vaapi-doc.install.in:
34984 * debian.upstream/gstreamer-vaapi.install.in:
34985 * debian.upstream/libgstvaapi-dev.install.in:
34986 * debian.upstream/libgstvaapi-x11.install.in:
34987 * debian.upstream/libgstvaapi.install.in:
34988 * debian.upstream/rules:
34989 Generate upstream packages through make deb.upstream.
34991 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34994 Bump version for development.
34996 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34998 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34999 Use a black background for new windows.
35001 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35006 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35009 * docs/reference/libs/libs.types:
35010 * gst-libs/gst/vaapi/Makefile.am:
35011 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35012 * gst-libs/gst/vaapi/gstvaapiobject.c:
35013 * gst-libs/gst/vaapi/gstvaapiobject.h:
35014 * tests/test-surfaces.c:
35015 Add "destroy" signal.
35017 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35019 * docs/reference/libs/libs-docs.xml.in:
35020 Improve gst-plugins-vaapi Library reference template.
35022 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35024 * docs/reference/libs/libs-docs.xml.in:
35025 * docs/reference/libs/libs-sections.txt:
35026 * gst-libs/gst/vaapi/Makefile.am:
35027 * gst-libs/gst/vaapi/gstvaapiimage.c:
35028 * gst-libs/gst/vaapi/gstvaapiimage.h:
35029 * gst-libs/gst/vaapi/gstvaapiobject.c:
35030 * gst-libs/gst/vaapi/gstvaapiobject.h:
35031 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35032 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35033 * gst-libs/gst/vaapi/gstvaapisurface.c:
35034 * gst-libs/gst/vaapi/gstvaapisurface.h:
35035 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35036 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35038 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35040 * sys/vaapisink/gstvaapisink.c:
35043 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35045 * sys/vaapisink/gstvaapisink.c:
35046 Make sure VA display is valid when created with an explicit "display" name.
35048 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35050 * sys/vaapisink/gstvaapisink.c:
35051 Use plain "display" property for the X11 display name.
35053 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35055 * sys/vaapiconvert/gstvaapiconvert.c:
35056 * sys/vaapisink/gstvaapisink.c:
35057 Document vaapiconvert & vaapisink plugins.
35059 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35062 * docs/reference/Makefile.am:
35063 * docs/reference/plugins/Makefile.am:
35064 * docs/reference/plugins/plugins-docs.xml.in:
35065 * docs/reference/plugins/plugins-overrides.txt:
35066 * docs/reference/plugins/plugins-sections.txt:
35067 * docs/reference/plugins/plugins.types:
35068 Add plugins documentation template.
35070 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35072 * sys/vaapisink/gstvaapisink.c:
35073 * sys/vaapisink/gstvaapisink.h:
35074 Don't export gst_vaapisink_get_display().
35076 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35079 * docs/reference/libs/libs-docs.xml.in:
35080 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35081 * gst-libs/gst/vaapi/gstvaapiimage.c:
35082 * gst-libs/gst/vaapi/gstvaapisurface.c:
35083 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35084 Drop introspection annotations since they require gtk-doc >= 1.12.
35086 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35088 * gst-libs/gst/vaapi/gstvaapisurface.c:
35089 Add note about the fact that the surface holds an extra reference to the subpicture.
35091 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35093 * gst-libs/gst/vaapi/gstvaapiimage.c:
35094 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35095 * gst-libs/gst/vaapi/gstvaapisurface.c:
35096 Improve debugging messages.
35098 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35100 * tests/test-windows.c:
35101 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35103 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35105 * docs/reference/libs/libs-sections.txt:
35106 * gst-libs/gst/vaapi/gstvaapisurface.c:
35107 * gst-libs/gst/vaapi/gstvaapisurface.h:
35108 * tests/test-windows.c:
35109 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35111 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35113 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35114 Wait for MapNotify or UnmapNotify events on foreign windows too.
35116 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35118 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35119 Check whether the foreign XID is mapped at binding time.
35121 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35123 * sys/vaapisink/gstvaapisink.c:
35124 Add missing includes.
35126 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35129 * debian/Makefile.am:
35130 * debian/control.in:
35131 * debian/gstreamer-vaapi-doc.install.in:
35135 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35137 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35138 Fix warnings (drop extraneous var).
35140 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35142 * docs/reference/libs/libs-sections.txt:
35143 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35144 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35146 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35148 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35151 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35153 * gst-libs/gst/vaapi/Makefile.am:
35154 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35155 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35156 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35157 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35158 Try to improve switch to fullscreen mode.
35160 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35162 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35163 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35164 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35165 Improve display locking and rework X event wait functions.
35167 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35169 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35170 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35171 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35173 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35175 * gst-libs/gst/vaapi/Makefile.am:
35176 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35177 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35178 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.
35180 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35182 * docs/reference/libs/libs-sections.txt:
35183 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35184 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35185 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35187 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35189 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35190 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35191 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35192 Add gst_vaapi_window_get_display() to base.
35194 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35196 * docs/reference/libs/libs-docs.xml.in:
35197 * docs/reference/libs/libs-sections.txt:
35198 * gst-libs/gst/vaapi/Makefile.am:
35199 * gst-libs/gst/vaapi/gstvaapitypes.h:
35200 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35201 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35202 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35203 * sys/vaapisink/gstvaapisink.c:
35204 * sys/vaapisink/gstvaapisink.h:
35205 Add GstVaapiPoint & GstVaapiRectangle data structures.
35207 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35212 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35215 * sys/vaapisink/gstvaapisink.c:
35216 * sys/vaapisink/gstvaapisink.h:
35217 Allow `vaapisink` to render videos in fullscreen mode.
35219 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35221 * docs/reference/libs/libs-sections.txt:
35222 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35223 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35224 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35225 Add gst_vaapi_window_set_fullscreen() API.
35227 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35229 * sys/vaapisink/gstvaapisink.c:
35230 Size window so that to respect the video and pixel aspect ratio.
35232 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35234 * docs/reference/libs/libs-sections.txt:
35235 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35236 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35237 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35238 * tests/test-display.c:
35239 Add gst_vaapi_display_get_pixel_aspect_ratio().
35241 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35243 * docs/reference/libs/libs-sections.txt:
35246 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35248 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35249 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35250 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35251 * tests/test-display.c:
35252 Add display size accessors.
35254 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35257 * debian/control.in:
35258 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35260 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35262 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35263 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35264 * gst-libs/gst/vaapi/gstvaapiimage.h:
35265 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35266 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35267 * gst-libs/gst/vaapi/gstvaapisurface.h:
35268 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35269 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35270 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35271 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35272 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35273 Fix documentation of *Class'es.
35275 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35277 * gst-libs/gst/vaapi/gstvaapiutils.c:
35278 * gst-libs/gst/vaapi/gstvaapiutils.h:
35279 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35280 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35282 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35284 * docs/reference/libs/libs-sections.txt:
35285 * gst-libs/gst/vaapi/gstvaapisurface.h:
35286 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35287 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35289 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35291 * docs/reference/libs/libs-sections.txt:
35292 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35293 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35294 * sys/vaapisink/gstvaapisink.c:
35295 * tests/test-windows.c:
35296 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35298 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35300 * docs/reference/libs/Makefile.am:
35301 Fix make dist for --enable-gtk-doc builds.
35303 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35306 Improve autogen.sh.
35308 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35312 Generate gtk-doc.make from gtkdocize.
35314 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35319 * docs/Makefile.am:
35320 * docs/reference/Makefile.am:
35321 * docs/reference/libs/Makefile.am:
35322 * docs/reference/libs/libs-docs.xml.in:
35323 * docs/reference/libs/libs-overrides.txt:
35324 * docs/reference/libs/libs-sections.txt:
35325 * docs/reference/libs/libs.types:
35326 Document public API for libgstvaapi-*.so.*.
35328 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35330 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35331 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35332 Document GstVaapiVideoBuffer.
35334 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35336 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35337 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35338 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35339 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35340 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35341 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35342 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35344 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35346 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35347 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35348 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35349 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35350 * gst-libs/gst/vaapi/gstvaapiimage.c:
35351 * gst-libs/gst/vaapi/gstvaapiimage.h:
35352 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35353 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35354 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35355 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35356 * gst-libs/gst/vaapi/gstvaapisurface.c:
35357 * gst-libs/gst/vaapi/gstvaapisurface.h:
35358 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35359 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35360 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35361 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35362 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35363 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35364 Add tedious documentation.
35366 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35368 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35369 Beautify append_formats().
35371 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35373 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35374 Simplify GstVaapiDisplay (use GArray).
35376 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35379 * sys/vaapiconvert/gstvaapiconvert.c:
35380 * sys/vaapiconvert/gstvaapiconvert.h:
35381 Factor out direct-rendering infrastructure.
35383 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35385 * sys/vaapiconvert/gstvaapiconvert.c:
35386 * sys/vaapiconvert/gstvaapiconvert.h:
35387 Allow user to specify inout-buffers & derive-image optimizations.
35389 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35391 * sys/vaapiconvert/gstvaapiconvert.c:
35392 Reduce number of debug messaged printed out.
35394 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35396 * sys/vaapiconvert/gstvaapiconvert.c:
35397 * sys/vaapiconvert/gstvaapiconvert.h:
35398 Add vaDeriveImage() optimization.
35400 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35402 * gst-libs/gst/vaapi/gstvaapiimage.c:
35403 Fix gst_vaapi_image_create() from a foreign VA image.
35405 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35407 * gst-libs/gst/vaapi/gstvaapiimage.c:
35408 * gst-libs/gst/vaapi/gstvaapiimage.h:
35409 * gst-libs/gst/vaapi/gstvaapisurface.c:
35410 * gst-libs/gst/vaapi/gstvaapisurface.h:
35411 Add gst_vaapi_surface_derive_image() API.
35413 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35415 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35416 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35417 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35418 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().
35420 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35422 * tests/test-windows.c:
35423 Try YV12 & I420 image formats too.
35425 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35427 * gst-libs/gst/vaapi/gstvaapiimage.c:
35428 Split map/unmap functions into internal functions that don't check preconditions.
35430 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35432 * gst-libs/gst/vaapi/gstvaapiimage.c:
35433 Improve gst_vaapi_image_new() sanity checks.
35435 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35437 * tests/test-windows.c:
35440 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35442 * sys/vaapiconvert/gstvaapiconvert.c:
35443 Check if our inout buffer is still alive or default to a separate output buffer.
35445 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35447 * sys/vaapiconvert/gstvaapiconvert.c:
35448 * sys/vaapiconvert/gstvaapiconvert.h:
35449 Factor out buffers negotiation and optimization checks.
35451 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35453 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35454 * gst-libs/gst/vaapi/gstvaapiimage.c:
35455 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35456 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35457 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35458 * sys/vaapiconvert/gstvaapiconvert.h:
35461 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35463 * gst-libs/gst/vaapi/gstvaapiimage.c:
35464 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35466 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35468 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35469 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35470 * gst-libs/gst/vaapi/gstvaapiimage.c:
35471 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35472 * gst-libs/gst/vaapi/gstvaapisurface.c:
35473 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35474 Add VA display locking utilities.
35476 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35478 * sys/vaapisink/gstvaapisink.c:
35479 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35481 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35483 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35484 * tests/test-windows.c:
35485 Don't show window by default during creation.
35487 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35489 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35490 Fix gst_vaapi_window_x11_destroy().
35492 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35494 * sys/vaapiconvert/gstvaapiconvert.c:
35495 * sys/vaapiconvert/gstvaapiconvert.h:
35496 Alias sink & src pad buffers whenever possible.
35498 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35500 * gst-libs/gst/vaapi/gstvaapiimage.c:
35501 * gst-libs/gst/vaapi/gstvaapiimage.h:
35502 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35504 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35506 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35507 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35508 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35510 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35512 * sys/vaapiconvert/gstvaapiconvert.c:
35513 Fix image & surface size cache.
35515 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35518 Move gstreamer-vaapi package versioning to the top.
35520 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35523 Bump version for development.
35525 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35528 Cosmetics (shorten lines).
35530 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35536 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35538 * debian/Makefile.am:
35539 * debian/changelog.in:
35541 * debian/control.in:
35542 * debian/copyright:
35543 * debian/gstreamer-vaapi.install.in:
35544 * debian/libgstvaapi-dev.install.in:
35545 * debian/libgstvaapi-x11.install.in:
35546 * debian/libgstvaapi.install.in:
35548 Add debian packaging.
35550 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35554 Add debian packaging.
35556 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35558 * pkgconfig/Makefile.am:
35559 Silence GNU make extensions warning.
35561 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35564 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'
35566 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35570 * pkgconfig/Makefile.am:
35571 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35572 * pkgconfig/gstreamer-vaapi.pc.in:
35573 Add pkgconfig files.
35575 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35578 * gst-libs/gst/vaapi/Makefile.am:
35579 * sys/vaapisink/Makefile.am:
35580 * tests/Makefile.am:
35581 Split X11 support to libgstvaapi-x11-*.so.*
35583 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35585 * gst-libs/gst/vaapi/Makefile.am:
35586 Don't install private headers.
35588 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35590 * gst-libs/gst/vaapi/gstvaapidebug.h:
35591 * gst-libs/gst/vaapi/gstvaapiutils.c:
35592 * gst-libs/gst/vaapi/gstvaapiutils.h:
35595 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35597 * gst-libs/gst/vaapi/Makefile.am:
35598 * gst-libs/gst/vaapi/gstvaapidebug.h:
35599 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35600 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35601 * gst-libs/gst/vaapi/gstvaapiimage.c:
35602 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35603 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35604 * gst-libs/gst/vaapi/gstvaapisurface.c:
35605 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35606 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35607 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35608 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35609 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35610 Rename vaapi_debug.h to gstvaapidebug.h.
35612 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35614 * gst-libs/gst/vaapi/Makefile.am:
35615 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35616 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35617 * gst-libs/gst/vaapi/gstvaapiimage.c:
35618 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35619 * gst-libs/gst/vaapi/gstvaapisurface.c:
35620 * gst-libs/gst/vaapi/gstvaapiutils.c:
35621 * gst-libs/gst/vaapi/gstvaapiutils.h:
35622 * gst-libs/gst/vaapi/vaapi_debug.h:
35623 Move vaapi_utils.* to gstvaapiutils.*
35625 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35627 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35628 Cosmetics (remove an extra line).
35630 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35632 * gst-libs/gst/vaapi/Makefile.am:
35633 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35634 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35635 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35636 Move X11 utilties to gstvaapiutils_x11.[ch].
35638 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35640 * gst-libs/gst/vaapi/Makefile.am:
35641 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35642 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35643 * sys/vaapiconvert/gstvaapiconvert.c:
35644 * sys/vaapisink/gstvaapisink.c:
35645 Rename GstVaapiSinkBase to GstVaapiVideoSink.
35647 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35650 * tests/Makefile.am:
35651 * tests/examples/Makefile.am:
35652 * tests/examples/generic/Makefile.am:
35653 * tests/test-display.c:
35654 * tests/test-surfaces.c:
35655 * tests/test-windows.c:
35656 Move tests to top-level tests/ directory.
35658 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35660 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35661 * gst-libs/gst/vaapi/gstvaapiimage.c:
35662 * sys/vaapiconvert/gstvaapiconvert.c:
35663 * sys/vaapiconvert/gstvaapiconvert.h:
35664 Handle I420 formats internally in GstVaapiImage.
35666 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35668 * sys/vaapiconvert/gstvaapiconvert.c:
35669 * sys/vaapiconvert/gstvaapiconvert.h:
35670 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35672 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35674 * gst-libs/gst/vaapi/gstvaapiimage.c:
35675 Implement I420 and YV12 if the underlying implementation does not.
35677 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35679 * sys/vaapiconvert/Makefile.am:
35680 * sys/vaapiconvert/gstvaapiconvert.c:
35681 * sys/vaapiconvert/gstvaapiconvert.h:
35682 Add initial vaapiconvert plugin.
35684 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35686 * sys/vaapisink/gstvaapisink.c:
35687 * sys/vaapisink/gstvaapisink.h:
35690 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35692 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35695 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35697 * tests/examples/generic/test-windows.c:
35698 Generate R/G/B rects.
35700 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35702 * gst-libs/gst/vaapi/gstvaapisurface.c:
35703 * gst-libs/gst/vaapi/gstvaapisurface.h:
35704 Add gst_vaapi_surface_sync().
35706 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35708 * gst-libs/gst/vaapi/gstvaapiimage.c:
35709 Cosmetics (reverse args order).
35711 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35713 * gst-libs/gst/vaapi/gstvaapiimage.c:
35714 * gst-libs/gst/vaapi/gstvaapiimage.h:
35715 * gst-libs/gst/vaapi/gstvaapisurface.c:
35718 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35720 * gst-libs/gst/vaapi/Makefile.am:
35721 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35722 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35723 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35724 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35725 * tests/examples/generic/Makefile.am:
35726 * tests/examples/generic/test-windows.c:
35727 Add VA/X11 window abstraction.
35729 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35731 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35732 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35733 Add VA and X11 display accessors.
35735 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35737 * gst-libs/gst/vaapi/gstvaapiimage.c:
35740 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35742 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35745 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35747 * gst-libs/gst/vaapi/gstvaapiimage.c:
35748 * gst-libs/gst/vaapi/gstvaapiimage.h:
35749 * gst-libs/gst/vaapi/gstvaapisurface.c:
35750 * gst-libs/gst/vaapi/gstvaapisurface.h:
35751 Add gst_vaapi_{get,put}_image() API.
35753 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35755 * gst-libs/gst/vaapi/gstvaapiimage.c:
35756 * gst-libs/gst/vaapi/gstvaapiimage.h:
35757 Add gst_vaapi_image_update_from_buffer() helper.
35759 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35761 * sys/vaapisink/Makefile.am:
35762 * sys/vaapisink/gstvaapisink.c:
35763 * sys/vaapisink/gstvaapisink.h:
35764 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35766 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35768 * tests/examples/generic/Makefile.am:
35769 * tests/examples/generic/test-surfaces.c:
35772 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35774 * gst-libs/gst/vaapi/Makefile.am:
35775 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35776 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35777 Add basic GstVaapiVideoBuffer.
35779 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35781 * gst-libs/gst/vaapi/Makefile.am:
35782 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35783 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35784 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35785 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35786 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35787 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35788 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35790 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35792 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35793 Simplify format conversion code.
35795 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35797 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35798 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35799 Add gst_vaapi_image_format_from_caps() helper.
35801 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35803 * gst-libs/gst/vaapi/Makefile.am:
35804 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35805 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35806 Add VA surface pool (lazy allocator).
35808 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35810 * gst-libs/gst/vaapi/gstvaapisurface.c:
35811 * gst-libs/gst/vaapi/gstvaapisurface.h:
35812 Add gst_vaapi_surface_get_size() helper.
35814 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35816 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35817 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35819 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35821 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35822 Reset display-name if the user provided his own X11 display.
35824 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35826 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35827 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35828 * tests/examples/generic/test-display.c:
35829 Add gst_vaapi_display_x11_new_with_display() API.
35831 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35833 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35834 * gst-libs/gst/vaapi/gstvaapiimage.h:
35835 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35836 * gst-libs/gst/vaapi/gstvaapisurface.h:
35837 Fix *_GET_CLASS() definitions...
35839 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35841 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35842 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35843 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35844 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35845 * tests/examples/generic/test-display.c:
35846 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
35848 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35850 * gst-libs/gst/vaapi/gstvaapisurface.c:
35851 * gst-libs/gst/vaapi/gstvaapisurface.h:
35852 Use GstVaapiChromaType abstraction.
35854 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35856 * gst-libs/gst/vaapi/gstvaapiimage.c:
35857 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35858 * gst-libs/gst/vaapi/gstvaapisurface.c:
35859 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
35861 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35863 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35864 Don't warn on failure, just return an appropriate error or value.
35866 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35868 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35869 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35870 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35871 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
35873 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35875 * gst-libs/gst/vaapi/Makefile.am:
35876 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
35877 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
35878 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
35880 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35882 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35883 * gst-libs/gst/vaapi/gstvaapiimage.c:
35884 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35885 * gst-libs/gst/vaapi/gstvaapisurface.c:
35886 * gst-libs/gst/vaapi/vaapi_debug.h:
35889 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35891 * gst-libs/gst/vaapi/gstvaapiimage.c:
35892 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35893 Fix GstVaapiImage and GstVaapiSubpicture initialization.
35895 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35897 * gst-libs/gst/vaapi/gstvaapisurface.c:
35898 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
35900 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35902 * tests/examples/generic/test-display.c:
35905 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35907 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35908 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35909 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35910 Fix GstVaapiDisplay initialization.
35912 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35914 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35915 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35916 Get VA image & subpicture formats as GstCaps.
35918 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35920 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35921 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35922 Add helper to convert from GstVaapiImageFormat to GstCaps.
35924 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35926 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35927 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35928 * gst-libs/gst/vaapi/gstvaapisurface.c:
35929 Cosmetics (drop unused variables).
35931 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35934 * sys/vaapiconvert/Makefile.am:
35935 * sys/vaapiconvert/gstvaapiconvert.c:
35936 * sys/vaapiconvert/gstvaapiconvert.h:
35937 * sys/vaapisink/Makefile.am:
35938 * sys/vaapisink/gstvaapisink.c:
35939 * sys/vaapisink/gstvaapisink.h:
35940 Add boilerplate for vaapiconvert and vaapisink elements.
35942 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35946 * sys/vaapiconvert/Makefile.am:
35947 Add vaapiconvert element hierarchy.
35949 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35951 * sys/vaapisink/Makefile.am:
35952 Rename to vaapisink.
35954 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35956 * gst-libs/gst/vaapi/gstvaapisurface.c:
35957 Shorter code (and more correct).
35959 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35961 * gst-libs/gst/vaapi/gstvaapisurface.c:
35962 * gst-libs/gst/vaapi/gstvaapisurface.h:
35963 Add helper to get GstVaapiDisplay from a surface.
35965 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35967 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35968 Fix subpicture formats list length.
35970 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35972 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35973 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35974 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
35976 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35978 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35979 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35980 Cosmetics (more checks, includes).
35982 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35984 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35985 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35986 Really add VA subpicture abstraction.
35988 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35990 * gst-libs/gst/vaapi/Makefile.am:
35991 * gst-libs/gst/vaapi/gstvaapiimage.c:
35992 * gst-libs/gst/vaapi/gstvaapiimage.h:
35993 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35994 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35995 * gst-libs/gst/vaapi/gstvaapisurface.c:
35996 * gst-libs/gst/vaapi/gstvaapisurface.h:
35997 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
35999 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36002 * gst-libs/gst/vaapi/Makefile.am:
36003 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36004 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36005 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36006 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36007 * gst-libs/gst/vaapi/vaapi_debug.h:
36008 * gst-libs/gst/vaapi/vaapi_utils.c:
36009 * gst-libs/gst/vaapi/vaapi_utils.h:
36010 * tests/examples/generic/Makefile.am:
36011 * tests/examples/generic/test-display.c:
36012 Add initial VA display abstraction.
36014 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36018 * tests/Makefile.am:
36019 * tests/examples/Makefile.am:
36020 * tests/examples/generic/Makefile.am:
36021 Add tests infrastructure.
36023 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36026 Clean up VA-API checks.
36028 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36031 Check for __attribute__((visibility("hidden"))).